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

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

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

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

Admin Push, помогите подправить

, Admin Push, помогите подправить
Статус пользователя BURZUM001
сообщение 20.9.2013, 5:51
Сообщение #1
Стаж: 13 лет

Сообщений: 144
Благодарностей: 5
Полезность: < 0

Помогите подправить Admin Push.
Плагин позволяет толкать игроков только своей команды админу с флагом "а"
Админ админа с флагом "а" не может толкнуть

Надо сделать чтобы админ с флагом rcon (flag "l") мог толкать любых админов, ну они соответственно его (флаг "l") не могли

Код:

#include <amxmodx>
#include <engine>
#include <cstrike>

new PLUGIN[] = "Admin Push out of the way!"
new AUTHOR[] = "jsauce"
new VERSION[] = "1.2"


#define ADMIN ADMIN_LEVEL_A
#define IMMUNE ADMIN_IMMUNITY
#define NON_ATTACKONLY // COMMENT THIS LINE OUT IF YOU DONT CARE!
#define IS_IN_USE // COMMENT TO DISABLE. IF ENABLED USE KEY MUST BE PRESSED.
// #define AUTOSENSE // UNCOMMENT TO USE AUTOSENSE!

#if defined AUTOSENSE
#include <amxmisc>

new bool:validmap = false
#endif

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
#if defined AUTOSENSE
register_cvar("amx_adminpush","0")
#else
register_cvar("amx_adminpush","1")
#endif
register_cvar("amx_adminpushlevel","30")
register_touch("player","player","admin_touched")
#if defined AUTOSENSE
new mapcfg[32],configsdir[128]
get_configsdir(configsdir,127)
format(mapcfg,31,"%s/adminpushconfig.cfg",configsdir)
if(!file_exists(mapcfg))
{
validmap = false
return PLUGIN_CONTINUE
}
else
{
new map[32],mapname[32],i=0,txtlen
get_mapname(map,31)
while(read_file(mapcfg,i++,mapname,31,txtlen))
{
if((mapname[0] == ';') || !txtlen) continue

if (equali(mapname,map))
{
validmap = true
break
}
}
}
#endif
return PLUGIN_CONTINUE
}
public is_valid_player(id)
{
if(is_valid_ent(id))
{
new szClassname[32]
entity_get_string(id,EV_SZ_classname,szClassname,31)
return (equali(szClassname,"player"))
}
return 0
}
public admin_touched ( ptr, ptd )
{
#if defined AUTOSENSE
if (validmap)
{
set_cvar_num("amx_adminpush",1)
}
#endif
if (get_cvar_num("amx_adminpush")==1)
{

if ( get_user_flags ( ptr ) & ADMIN && is_valid_player ( ptd ) )
{
if(!( get_user_flags ( ptd ) & IMMUNE ))
{
#if defined NON_ATTACKONLY
if(!(get_user_button(ptr)&IN_ATTACK))
#else
#endif
{
#if defined IS_IN_USE
if(get_user_button(ptr)&IN_USE && get_user_oldbutton(ptr))
#else
#endif
{
new CsTeams:ptrTeam = cs_get_user_team(ptr)
new CsTeams:ptdTeam = cs_get_user_team(ptd)
if (ptrTeam == ptdTeam)
{
new Float:a[2][3]
entity_get_vector ( ptr, EV_VEC_origin, a[0] )
entity_get_vector ( ptd, EV_VEC_origin, a[1] )
new b, g_cvarpush = get_cvar_num("amx_adminpushlevel")
for ( b = 0;b <= 2;b++ )
{
a[1][b] -= a[0][b]
a[1][b] *= g_cvarpush
}
entity_set_vector ( ptd, EV_VEC_velocity, a[1] )
}
}
}
}
}
}
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 20.9.2013, 8:11
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Цитата(BURZUM001 @ 20.9.2013, 7:51) *
Помогите подправить Admin Push.
Плагин позволяет толкать игроков только своей команды админу с флагом "а"
Админ админа с флагом "а" не может толкнуть

Надо сделать чтобы админ с флагом rcon (flag "l") мог толкать любых админов, ну они соответственно его (флаг "l") не могли

Код:

#include <amxmodx>
#include <engine>
#include <cstrike>

new PLUGIN[] = "Admin Push out of the way!"
new AUTHOR[] = "jsauce"
new VERSION[] = "1.2"


#define ADMIN ADMIN_LEVEL_A
#define IMMUNE ADMIN_IMMUNITY
#define NON_ATTACKONLY // COMMENT THIS LINE OUT IF YOU DONT CARE!
#define IS_IN_USE // COMMENT TO DISABLE. IF ENABLED USE KEY MUST BE PRESSED.
// #define AUTOSENSE // UNCOMMENT TO USE AUTOSENSE!

#if defined AUTOSENSE
#include <amxmisc>

new bool:validmap = false
#endif

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
#if defined AUTOSENSE
register_cvar("amx_adminpush","0")
#else
register_cvar("amx_adminpush","1")
#endif
register_cvar("amx_adminpushlevel","30")
register_touch("player","player","admin_touched")
#if defined AUTOSENSE
new mapcfg[32],configsdir[128]
get_configsdir(configsdir,127)
format(mapcfg,31,"%s/adminpushconfig.cfg",configsdir)
if(!file_exists(mapcfg))
{
validmap = false
return PLUGIN_CONTINUE
}
else
{
new map[32],mapname[32],i=0,txtlen
get_mapname(map,31)
while(read_file(mapcfg,i++,mapname,31,txtlen))
{
if((mapname[0] == ';') || !txtlen) continue

if (equali(mapname,map))
{
validmap = true
break
}
}
}
#endif
return PLUGIN_CONTINUE
}
public is_valid_player(id)
{
if(is_valid_ent(id))
{
new szClassname[32]
entity_get_string(id,EV_SZ_classname,szClassname,31)
return (equali(szClassname,"player"))
}
return 0
}
public admin_touched ( ptr, ptd )
{
#if defined AUTOSENSE
if (validmap)
{
set_cvar_num("amx_adminpush",1)
}
#endif
if (get_cvar_num("amx_adminpush")==1)
{

if ( get_user_flags ( ptr ) & ADMIN && is_valid_player ( ptd ) )
{
if(!( get_user_flags ( ptd ) & IMMUNE ))
{
#if defined NON_ATTACKONLY
if(!(get_user_button(ptr)&IN_ATTACK))
#else
#endif
{
#if defined IS_IN_USE
if(get_user_button(ptr)&IN_USE && get_user_oldbutton(ptr))
#else
#endif
{
new CsTeams:ptrTeam = cs_get_user_team(ptr)
new CsTeams:ptdTeam = cs_get_user_team(ptd)
if (ptrTeam == ptdTeam)
{
new Float:a[2][3]
entity_get_vector ( ptr, EV_VEC_origin, a[0] )
entity_get_vector ( ptd, EV_VEC_origin, a[1] )
new b, g_cvarpush = get_cvar_num("amx_adminpushlevel")
for ( b = 0;b <= 2;b++ )
{
a[1][b] -= a[0][b]
a[1][b] *= g_cvarpush
}
entity_set_vector ( ptd, EV_VEC_velocity, a[1] )
}
}
}
}
}
}
}


очевидно
Код
#define ADMIN ADMIN_LEVEL_A
#define IMMUNE ADMIN_IMMUNITY

на
Код
#define ADMIN ADMIN_RCON
#define IMMUNE ADMIN_RCON


Отредактировал: Legenda, - 20.9.2013, 8:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BURZUM001
сообщение 20.9.2013, 21:11
Сообщение #3
Стаж: 13 лет

Сообщений: 144
Благодарностей: 5
Полезность: < 0

Цитата(Legenda @ 20.9.2013, 10:11) *
очевидно
Код
#define ADMIN ADMIN_LEVEL_A
#define IMMUNE ADMIN_IMMUNITY

на
Код
#define ADMIN ADMIN_RCON
#define IMMUNE ADMIN_RCON

т.е. получится что использовать сможет только админ rcon? а другие не смогут?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 20.9.2013, 21:17
Сообщение #4


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

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

Код
#define ADMIN ADMIN_LEVEL_A // флаг, кто может пользоваться
#define IMMUNE ADMIN_RCON // флаг, иммунитет


Цитата
ADMIN_ALL //Everyone
ADMIN_IMMUNITY //Flag "a", immunity
ADMIN_RESERVATION //Flag "b", reservation
ADMIN_KICK //Flag "c", kick
ADMIN_BAN //Flag "d", ban
ADMIN_SLAY //Flag "e", slay
ADMIN_MAP //Flag "f", map change
ADMIN_CVAR //Flag "g", cvar change
ADMIN_CFG //Flag "h", config execution
ADMIN_CHAT //Flag "i", chat
ADMIN_VOTE //Flag "j", vote
ADMIN_PASSWORD //Flag "k", sv_password
ADMIN_RCON //Flag "l", rcon access
ADMIN_LEVEL_A //Flag "m", custom
ADMIN_LEVEL_B //Flag "n", custom
ADMIN_LEVEL_C //Flag "o", custom
ADMIN_LEVEL_D //Flag "p", custom
ADMIN_LEVEL_E //Flag "q", custom
ADMIN_LEVEL_F //Flag "r", custom
ADMIN_LEVEL_G //Flag "s", custom
ADMIN_LEVEL_H //Flag "t", custom
ADMIN_MENU //Flag "u", menus
ADMIN_ADMIN //Flag "y", default admin
ADMIN_USER //Flag "z", default user
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя BURZUM001
сообщение 20.9.2013, 21:39
Сообщение #5
Стаж: 13 лет

Сообщений: 144
Благодарностей: 5
Полезность: < 0

Цитата(Legenda @ 20.9.2013, 23:17) *
Код
#define ADMIN ADMIN_LEVEL_A // флаг, кто может пользоваться
#define IMMUNE ADMIN_RCON // флаг, иммунитет


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