Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Флаги на плагины

Статус пользователя Marine
сообщение 11.2.2017, 18:23
Сообщение #1
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Здравствуйте, можно как-либо сделать доступ к плагину для игроков с определенным флагом? Без влезания в сам код.
В cmdaccess.ini можно менять только для плагинов с меню (ну вы поняли :) ) или я просто не умею с ним работать..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Adrenal1n4ik
сообщение 11.2.2017, 19:19
Сообщение #2


Стаж: 10 лет

Сообщений: 379
Благодарностей: 178
Полезность: 348

Меценат Меценат

Пример:
"amx_weap" "z"; weap.amxx

Расшифруем:
"amx_weap" - команда для использования админом в консоле.
"z" - флаг доступа, на который будем вешать команду.
"weap.amxx" - название плагина, к которому относится команда (не обязательно может быть написано).

Отредактировал: Adrenal1n4ik, - 11.2.2017, 19:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 11.2.2017, 20:21
Сообщение #3
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Adrenal1n4ik,
А как сделать тоже самое только для плагинов, которые без команд работают ? Например damager
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 11.2.2017, 20:44
Сообщение #4


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

Marine, без правки кода никак


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 12.2.2017, 8:34
Сообщение #5
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Цитата(energydance @ 11.2.2017, 20:44) *
Marine, без правки кода никак

А в код лезть, есть что-то универсальное? Для большинства плагинов?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 12.2.2017, 8:57
Сообщение #6


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

Marine, ну можно например кваром вывести , в некоторых случаях так же требуется править код


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 12.2.2017, 11:41
Сообщение #7
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Цитата(energydance @ 12.2.2017, 8:57) *
Marine, ну можно например кваром вывести , в некоторых случаях так же требуется править код

Можно подробнее, я в скриптинге ноль
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 12.2.2017, 11:46
Сообщение #8


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

Marine, какие например плагины?


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 12.2.2017, 21:40
Сообщение #9
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Цитата(energydance @ 12.2.2017, 11:46) *
Marine, какие например плагины?

Тот же дамагер
Гуглил, все что находил про него не работало, урон показывал всем хоть и через раз
Код
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")
    
    g_MsgSync = CreateHudSyncObj()
    g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
    if(pev_valid(id))
    {
        pid = get_user_attacker(id)
        damage = read_data(2)
        
        set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
        ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)
        
        if(pev(pid, pev_flags) & FL_CLIENT)
        {
            set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
            ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
        }
    }
}


Отредактировал: Marine, - 12.2.2017, 21:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AVOG
сообщение 12.2.2017, 21:44
Сообщение #10


Стаж: 7 лет 5 месяцев
Город: Актобе

Сообщений: 25
Благодарностей: 3
Полезность: 14

почему просто не сделать в кварах?

Код:
register_cvar("access_plugin", "a");


Код:
new string_cvar[28];
get_cvar_string("access_plugin", string_cvar, charsmax(string_cvar));


и потом проверяешь флаги у игрока
Код:
if(get_user_flags(id) & read_flags(string_cvar)) {
//Есть флаг у игрока
} else {
//Нету флага у игрока
}


OverCS.Ru - Магазин цифровых товаров.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AVOG
сообщение 12.2.2017, 21:48
Сообщение #11


Стаж: 7 лет 5 месяцев
Город: Актобе

Сообщений: 25
Благодарностей: 3
Полезность: 14

Цитата(Marine @ 12.2.2017, 23:40) *
Тот же дамагер
Гуглил, все что находил про него не работало, урон показывал всем хоть и через раз
Код
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")
    
    g_MsgSync = CreateHudSyncObj()
    g_MsgSync2 = CreateHudSyncObj()
}

public EVENT_Damage(id)
{
    if(pev_valid(id))
    {
        pid = get_user_attacker(id)
        damage = read_data(2)
        
        set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
        ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)
        
        if(pev(pid, pev_flags) & FL_CLIENT)
        {
            set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
            ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
        }
    }
}


Код:
#include <amxmodx>
#include <fakemeta>

new const PLUGIN[] = "Damager"
new const VERSION[] = "2.0"
new const AUTHOR[] = "Prayer"

new g_MsgSync
new g_MsgSync2

new pid
new damage
new string_access[28], user_flags[33];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("damager_flags", "a");

register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")

g_MsgSync = CreateHudSyncObj()
g_MsgSync2 = CreateHudSyncObj()
}

public plugin_cfg() {
get_cvar_string("damager_flags", string_access, charsmax(string_access));
}

public client_putinserver(id) {
user_flags[id] = get_user_flags(id);
}

public EVENT_Damage(id)
{
if(pev_valid(id) && user_flags[id] & read_flags(string_access))
{
pid = get_user_attacker(id)
damage = read_data(2)

set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
ShowSyncHudMsg(id, g_MsgSync2, "%i", damage)

if(pev(pid, pev_flags) & FL_CLIENT)
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(pid, g_MsgSync, "%i", damage)
}
}
}


OverCS.Ru - Магазин цифровых товаров.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 12.2.2017, 21:49
Сообщение #12


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

Marine, ну можно же сделать чтоб для определенного флага действовало


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AVOG
сообщение 12.2.2017, 21:50
Сообщение #13


Стаж: 7 лет 5 месяцев
Город: Актобе

Сообщений: 25
Благодарностей: 3
Полезность: 14

Цитата(energydance @ 12.2.2017, 23:49) *
Marine, ну можно же сделать чтоб для определенного флага действовало

не нужно ограничивать человека, можно сделать всё


OverCS.Ru - Магазин цифровых товаров.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 12.2.2017, 22:11
Сообщение #14


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

AVOG, ну сделайте =)


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 14.2.2017, 15:06
Сообщение #15
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

Ваш метод работает только на половину
Показывает только полученный урон

Отредактировал: Marine, - 14.2.2017, 15:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marine
сообщение 14.2.2017, 15:21
Сообщение #16
Стаж: 7 лет 2 месяца
Город: Барановичи

Сообщений: 26
Благодарностей: 1
Полезность: 30

energydance,
Я и хочу для определенного
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: