AMX MOD X
Пятница, 29.03.2024, 11:00:04



Приветствую Вас Гость | RSS
[ Главная ] [ Admin Flash - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » Admin Flash (можно проверить игрока на наличие чита antiflash)
Admin Flash
ШИЗИКДата: Четверг, 22.10.2009, 16:48:36 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Не в сети
Иногда, кто нибудь на сервере начинает кричать, что такой то игрок не слепнет. С помощью, этого плагина админ производит проверку игрока.

Команда:
amx_flash Nick

официальная страничка:
http://forums.alliedmods.net/showthr....p?t=829

sma

Code

#include <amxmodx>
#include <amxmisc>

new gMsgScreenFade  

public admin_flash(id,level,cid) {  
    if (!cmd_access(id,level,cid,2)) {  
       return PLUGIN_HANDLED  
    }  

    new victim[32]  
    read_argv(1,victim,31)  
//   new arg2[32]
//   read_argv(2,arg2,31)
//   new number=strtonum(arg2)
//   if (number==0) number=1

    if (victim[0]=='@') {  
       new team[32], inum  
       get_players(team,inum,"e",victim[1])  
       if (inum==0) {  
          console_print(id,"[AMX] No clients found on such team.")  
          return PLUGIN_HANDLED  
       }  
       for (new i=0;i<inum;++i) {  
          Flash(team[i])  
          client_print(id,print_chat,"[AMX] You Flashed all %s's.",victim[1])  
          //client_print(id,print_chat,"[AMX] You Flashed all %s's for %i secs.",victim[1],number)  
       }  
    }  
    else if (victim[0]=='*') {  
       new all[32], inum  
       get_players(all,inum)  
       for (new i=0;i<inum;++i) {  
          Flash(all[i])
          client_print(id,print_chat,"[AMX] You Flashed everyone.")
          //client_print(id,print_chat,"[AMX] You Flashed everyone for %i secs.",number)  
       }  
    }  
    else {  
       new player = cmd_target(id,victim,0)  
       new playername[32]  
       get_user_name(player,playername,31)  

       if (!player) {   
          return PLUGIN_HANDLED
       }  
       Flash(player)
       client_print(id,print_chat,"[AMX] You Flashed %s.",playername)
       //client_print(id,print_chat,"[AMX] You Flashed %s for %i secs.",playername,number)  
    }  

    return PLUGIN_HANDLED  
}  

public Flash(id) {
  message_begin(MSG_ONE,gMsgScreenFade,{0,0,0},id)  
  write_short( 1<<15 )  
  write_short( 1<<10 )
  write_short( 1<<12 )
  write_byte( 255 )  
  write_byte( 255 )  
  write_byte( 255 )  
  write_byte( 255 )  
  message_end()
  emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH)
}

public plugin_init() {  
    register_plugin("Admin Flash","1.0","AssKicR")  
    register_concmd("amx_flash","admin_flash",ADMIN_LEVEL_A,"< Nick, UniqueID, #userid, @TEAM, or * > flashes selected client(s)")  
    gMsgScreenFade = get_user_msgid("ScreenFade")  
    return PLUGIN_CONTINUE  
}

public plugin_precache()
{
     // FLASHBANG SOUND
     precache_sound( "weapons/flashbang-2.wav" )
}

удобно использовать через amxmodmenu и затем Client Commands.
Для этого надо в файл clcmds.ini прописать строку:
"npoBepKa Ha antiflash " "amx_flash #%userid%" "bd" "u"

Автор сделал так, что ослеплённый игрок слышит звук взрыва флешки. Для устранения этого, не нужного нам фактора, я заменил звук пустышкой (как по-другому не знаю). И подправил его название в sma. Теперь читер не подозревает о том, что админ его флешит и играет, как ни в чём не бывало.

Прошу знатоков устранить один недостаток:
нет записи в логи о том, что этот плагин применялся. Поэтому админ может злоупотреблять этим.
Моего ума хватило лишь на то, чтобы добавить в sma это:
log_amx("[AMX] Admin ocJLenuJL %s.",playername)

Но, получается такая запись в amx_log:
L 10/22/2009 - 16:19:22: [admin_flash.amxx] [AMX] Admin ocJLenuJL такого-то.

Прошу:
Нужно сделать, чтобы в логах было понятно какой админ применял этот плагин.

Изменённый мной sma + пустышка wav:

Прикрепления: AdminFlash.rar (1.2 Kb)


Сообщение отредактировал ШИЗИК - Четверг, 22.10.2009, 16:55:16
 
PomanoBДата: Четверг, 22.10.2009, 17:18:57 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Quote (ШИЗИК)
как по-другому не знаю

emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH) - убери эту строчку

После

Code

    if (!cmd_access(id,level,cid,2)) {  
       return PLUGIN_HANDLED  
    }  

Поставь
Code

new admin_name[32]
get_user_name(id, admin_name, 31)

И после этого везде вставь имя админа

Code

log_amx("[AMX] Admin %s ocJLenuJL Bcex.", admin_name)


http://romanov4400.mybrute.com
 
ШИЗИКДата: Воскресенье, 25.10.2009, 16:27:21 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 19
Репутация: 0
Статус: Не в сети
Спасибо Тебе большое. Всё работает.

Code


#include <amxmodx>
#include <amxmisc>

new gMsgScreenFade  

public admin_flash(id,level,cid) {  
    if (!cmd_access(id,level,cid,2)) {  
       return PLUGIN_HANDLED  
    }  

    new admin_name[32]  
    get_user_name(id, admin_name, 31)
    new victim[32]  
    read_argv(1,victim,31)  
//   new arg2[32]
//   read_argv(2,arg2,31)
//   new number=strtonum(arg2)
//   if (number==0) number=1

    if (victim[0]=='@') {  
       new team[32], inum  
       get_players(team,inum,"e",victim[1])  
       if (inum==0) {  
          console_print(id,"[AMX] No clients found on such team.")  
          return PLUGIN_HANDLED  
       }  
       for (new i=0;i<inum;++i) {  
          Flash(team[i])  
          client_print(id,print_chat,"[AMX] TbI ocJLenuJL Bcex %s's.",victim[1])  
          //client_print(id,print_chat,"[AMX] You Flashed all %s's for %i secs.",victim[1],number)  
          log_amx("[AMX] Admin %s ocJLenuJL KoMaHDy.", admin_name)
       }  
    }  
    else if (victim[0]=='*') {  
       new all[32], inum  
       get_players(all,inum)  
       for (new i=0;i<inum;++i) {  
          Flash(all[i])
          client_print(id,print_chat,"[AMX] TbI ocJLenuJL Bcex.")
          //client_print(id,print_chat,"[AMX] You Flashed everyone for %i secs.",number)
          log_amx("[AMX] Admin %s ocJLenuJL Bcex.", admin_name)  
       }  
    }  
    else {  
       new player = cmd_target(id,victim,0)  
       new playername[32]  
       get_user_name(player,playername,31)  

       if (!player) {   
          return PLUGIN_HANDLED
       }  
       Flash(player)
       client_print(id,print_chat,"[AMX] TbI ocJLenuJL %s.",playername)
       //client_print(id,print_chat,"[AMX] You Flashed %s for %i secs.",playername,number)
       log_amx("[AMX] Admin %s npuMeHuJL amx_flash Nick.", admin_name)
       log_amx("[AMX] Admin ocJLenuJL %s.",playername)  
    }  

    return PLUGIN_HANDLED  
}  

public Flash(id) {
  message_begin(MSG_ONE,gMsgScreenFade,{0,0,0},id)  
  write_short( 1<<15 )  
  write_short( 1<<10 )
  write_short( 1<<12 )
  write_byte( 255 )  
  write_byte( 255 )  
  write_byte( 255 )  
  write_byte( 255 )  
  message_end()
  //emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH)
}

public plugin_init() {  
    register_plugin("Admin Flash","1.0","AssKicR")  
    register_concmd("amx_flash","admin_flash",ADMIN_LEVEL_A,"< Nick, UniqueID, #userid, @TEAM, or * > flashes selected client(s)")  
    gMsgScreenFade = get_user_msgid("ScreenFade")  
    return PLUGIN_CONTINUE  
}

public plugin_precache()
{
     // FLASHBANG SOUND
     precache_sound( "weapons/flashbang-2.wav" )
}

Хотел сделать, используя твои советы, чтобы писало "Admin такой-то ocJLenuJL такого-то.
Прописал это:
log_amx("[AMX] Admin %s ocJLenuJL %i.", admin_name, playername)
Но переменная %i почему-то является секундами...
поэтому решил прописать так:
log_amx("[AMX] Admin %s npuMeHuJL amx_flash Nick.", admin_name)
log_amx("[AMX] Admin ocJLenuJL %s.",playername)
Что в общем, тоже соответствует идее. Теперь можно позволить пользоваться этим плагином всем админам на сервере.

У меня есть последний вопрос по этой теме. Какую строку прописать в sma, чтобы сообщения о применении плагина, помимо log_amx выводились в админский чат во время игры. Но и без того, ещё раз огромное спасибо!

 
PomanoBДата: Воскресенье, 25.10.2009, 19:33:16 | Сообщение # 4
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
log_amx("[AMX] Admin %s ocJLenuJL %s.", admin_name, playername) - так надо

Quote (ШИЗИК)
Какую строку прописать в sma, чтобы сообщения о применении плагина, помимо log_amx выводились в админский чат во время игры.

server_cmd("amx_chat [AMX] Admin %s ocJLenuJL %s.", admin_name, playername)


http://romanov4400.mybrute.com
 
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » Admin Flash (можно проверить игрока на наличие чита antiflash)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024