Русское сообщество по скриптингу

Автовыдача флага для Steam игроков

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Автовыдача флага для Steam игроков

Сообщение Flowy » 21 сен 2019, 22:34

Попробовал написать плагин: когда заходит человек на сервер, ему выдаётся флаг (этот флаг нужен для вип меню), но с условием - нужно зайти с steam версии игры. Поискал на разных форумах как это сделать, пытался редактировать уже готовые плагины под себя. В итоге вроде получилось. Проверял на пиратке и на стиме. Но так как у меня маленькие познания в создании плагинов, есть вероятность, что может что-то пойти не так. Правильно ли всё сделано?
Код: Выделить всё
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Auto steam vip flag"
#define VERSION "0.1"
#define AUTHOR "Flowy"


public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}

public client_authorized(id)
{
    if(is_user_steam(id) == 1)
    {
        set_user_flags(id,read_flags("s"))
    }
    return PLUGIN_CONTINUE
}

stock bool:is_user_steam(id)
{
// Author Sh0oter
        static dp_pointer
        if
(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
        {
            server_cmd("dp_clientinfo %d", id)
            server_exec()
            return (get_pcvar_num(dp_pointer) == 2) ? true : false
        
}
        return false
}
Аватара пользователя
Flowy
 
Сообщения: 2
Зарегистрирован: 17 сен 2019, 21:36
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, C#, SQL, JavaScript, React.JS

Re: Автовыдача флага для Steam игроков

Сообщение Fedcomp » 25 сен 2019, 09:06

Код: Выделить всё
if(is_user_steam(id) == 1)

=>
Код: Выделить всё
if(is_user_steam(id))


Разницы в принципе нет (ибо булевы вроде в павне равнозначны цифрам), но как то правильнее код ощущается.

У тебя dproto? is_user_steam заточен под dproto, я помню как этот сниппет на этом форуме писался (там даже моя первая версия была, но усложненная).

По поводу set_user_flags мне лень смотреть. Но насколько помню если юзер не админ то у него еще выдается флаг z (могу уже не помнить за давностью лет), который часть админского функционала amxx блокирует для пользователя.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Автовыдача флага для Steam игроков

Сообщение Leonidddd » 25 сен 2019, 09:30

Fedcomp, да тоже самое, в принципе(я про true), дело вкуса .

Flowy, довольно-таки рано проверяете, может не сработать в зависимости от расположения основного админского амхх мода, где выдаются флаги доступа, лучше всего вместо client_authorized использовать client_putinserver. Инклуд cstrike лишний, там ничего из него не используется, его можно не писать, как и amxmisc. Флаг z необязательно выставлять, но так не заглючит проверка на is_user_admin (в инклуде amxmisc есть проверка как раз на наличие флага z), некоторые "вип системы и им подобные" плагины могут отлететь, но навряд ли, если корректно написаны на проверку наличия необходимых флагов доступа.

А так, в принципе, все верно.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8