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

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

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

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

Team Flash Control добавить игнор флага

Kasper55
сообщение 10.8.2014, 13:22
Сообщение #1
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Кто сможет помочь добавить сюда игнор флага T , что бы не какие звуки и сообщения не выводились игроку с флагом T

Код:
/*
* Team Flash Snitch
*
* Author: Tender
* email: tender@paike.org
* web: www.paike.org
* irc: #paike @ quakenet
*
* Description:
* When teamflashed, this plugin announces who flashed you. The teamflasher
* hears a "I'm blind" an gets a message of who he flashed.
* It is also displayed for admins if someone is fully teamflashed.
* Tested on Counter-Strike and Condition Zero servers.
* This does NOT work for 100%... but almost :-)
*
* Cvars:
* tfs_adminchat, default 1
* 0 - admins will not be aware
* 1 - admins gets an adminchat of who flashed who
*
* tfs_sound: Teamflasher hears "I'm blind!", default 1
* 0 - Sound Off
* 1 - Sound On
*
*
* Changelog:
* 1.1 - fixed bug: more than one player can get a message from the same teamflash event
* new cvar: tfs_adminchat (2007-11-04)
* 1.0 - sound on/off cvar: tfs_sound 1/0 (2006-04-14)
* 0.3 - fixed bug: dead spectators will nog get message about teamflash (2006-03-16)
* 0.2 - changed flash owner code, a timer is added, "[Team Flash Snitch]" in green text (2006-03-12)
* 0.1 - initial release (2006-01-25)
*
* Credits:
* Johnny got hes gun, his plugin "Blind" helped me writing this.
* www.paike.org for testing this plugin on paike servers.
*
* STR@TEG for translation into Russian
*/

#include <amxmodx>
#include <fakemeta>

#define TEMPENTITY "23"
#define BLINDED_FULLY 255
#define BLINDED_PARTLY 200

new const TFSVERSION[] = "1.1"
new Float:FLASH_TIMER = 1.52 // Time from throwing a FB to the bang (1.52 seconds?)
new g_flasher = 0 // id of the flasher

public plugin_init()
{
register_plugin("Team Flash Snitch",TFSVERSION,"Tender")

register_cvar("tfs_sound", "1")
register_cvar("tfs_adminchat", "1")

register_event("ScreenFade", "event_blinded", "be", "4=255", "5=255", "6=255", "7>199")
register_event(TEMPENTITY, "event_flashsmokepuff", "a", "1=5", "6=25", "7=6")
register_forward(FM_SetModel, "forward_setmodel")
}

public plugin_precache()
{
precache_sound ("radio/bot/im_blind.wav")
return PLUGIN_CONTINUE
}

public event_blinded(const ID)
{
new alpha = read_data(7)
if(alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID))
return PLUGIN_CONTINUE
if(get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)
{
new message1[128], message2[128]
new flasher[32], name[32]
get_user_name(g_flasher, flasher, 31)
get_user_name(ID, name, 31)
format(message1, 127, "^x04[Team Flash Control]^x01 Вас ослепил %s", flasher)
format(message2, 127, "^x04[Team Flash Control]^x01 Вы %sослепили игрока по команде (%s)", alpha == BLINDED_FULLY ? "полностью " : "", name)
colored_msg(ID, message1)
colored_msg(g_flasher, message2)
if(get_cvar_num("tfs_sound")>0) client_cmd(g_flasher, "spk sound/radio/bot/im_blind.wav")
if(alpha == BLINDED_FULLY && get_cvar_num("tfs_adminchat")) server_cmd("amx_chat %s ослепил игрока по команде (%s)", flasher, name)
}
return PLUGIN_CONTINUE
}

public colored_msg(id, msg[])
{
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}

public event_flashsmokepuff()
{
set_task(0.05,"reset_flasher")
return PLUGIN_CONTINUE
}

public reset_flasher()
{
g_flasher = 0
}

public get_flasher(id)
{
g_flasher = (id - 524627)
}

public forward_setmodel(const ENTITY, model[])
{
if(!equal(model, "models/w_flashbang.mdl"))
return FMRES_IGNORED

new owner = pev(ENTITY, pev_owner)
if (owner == 0)
return FMRES_IGNORED

set_task(FLASH_TIMER, "get_flasher", 524627+owner)

return FMRES_IGNORED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
serfreeman1337
сообщение 10.8.2014, 13:40
Сообщение #2
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Функция get_user_flags.
Код:
if(get_user_flags(g_flasher) & ADMIN_LEVEL_H && get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 10.8.2014, 13:50
Сообщение #3
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(serfreeman1337 @ 10.8.2014, 13:40) *
Функция get_user_flags.
Код:
if(get_user_flags(g_flasher) & ADMIN_LEVEL_H && get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)

благодарю все получилось
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 10.8.2014, 19:21
Сообщение #4
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(serfreeman1337 @ 10.8.2014, 13:40) *


блин игнорирование идет на все , а мне бы хотелось что бы только оповещение если ослепили с флагом T не было а вот когда он кого то ослепил был бы звук и оповещение

а если добавляю игнор то почему то вообще перестает работать плагин , но комплимится без единой ошибки

Отредактировал: Kasper55, - 10.8.2014, 20:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.8.2014, 20:27
Сообщение #5
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Kasper55,
вам нужно только чтоб все события происходили С флагом Т или без?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 10.8.2014, 20:35
Сообщение #6
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(Orty_Hart @ 10.8.2014, 20:27) *
Kasper55,
вам нужно только чтоб все события происходили С флагом Т или без?

что все происходили без флага T а если стоит флаг T то бы не показывало кто его ослепил , но показывало и был звук кого ослепил игрок с флагом T
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.8.2014, 20:44
Сообщение #7
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Kasper55,
попробуйте
Код
if(alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID) || !(get_user_flags(ID) & ADMIN_LEVEL_H))


я сильно не вникал в код, но вероятней всего это и есть ваше решение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 10.8.2014, 20:47
Сообщение #8
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

Цитата(Orty_Hart @ 10.8.2014, 20:44) *
Kasper55,
попробуйте
Код
if(alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID) || !(get_user_flags(ID) & ADMIN_LEVEL_H))


я сильно не вникал в код, но вероятней всего это и есть ваше решение.


Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.8.2014, 22:03
Сообщение #9
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Kasper55,
это ошибки в строке 6, 7 и 9
вот, компелируется на ура

Скрытый текст
Код
#include <amxmodx>
#include <fakemeta>

#define TEMPENTITY   "23"
#define BLINDED_FULLY   255
#define BLINDED_PARTLY   200

new Float:FLASH_TIMER = 1.52   // Time from throwing a FB to the bang (1.52 seconds?)
new g_flasher = 0      // id of the flasher

public plugin_init()
{
   register_plugin("Team Flash Snitch", "1.1" ,"Tender")

   register_cvar("tfs_sound", "1")
   register_cvar("tfs_adminchat", "1")

   register_event("ScreenFade", "event_blinded", "be", "4=255", "5=255", "6=255", "7>199")
   register_event(TEMPENTITY, "event_flashsmokepuff", "a", "1=5", "6=25", "7=6")
   register_forward(FM_SetModel, "forward_setmodel")
}

public plugin_precache()
{
   precache_sound ("radio/bot/im_blind.wav")
   return PLUGIN_CONTINUE
}

public event_blinded(const ID)
{
   new alpha = read_data(7)
   if(!(get_user_flags(ID) & ADMIN_LEVEL_H) || alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID))
      return PLUGIN_CONTINUE
   if(get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)
   {
      new message1[128], message2[128]
      new flasher[32], name[32]
      get_user_name(g_flasher, flasher, 31)
      get_user_name(ID, name, 31)
      format(message1, 127, "^x04[Team Flash Control]^x01 Вас ослепил %s", flasher)
      format(message2, 127, "^x04[Team Flash Control]^x01 Вы %sослепили игрока по команде (%s)", alpha == BLINDED_FULLY ? "полностью " : "", name)
      colored_msg(ID, message1)
      colored_msg(g_flasher, message2)
      if(get_cvar_num("tfs_sound")>0) client_cmd(g_flasher, "spk sound/radio/bot/im_blind.wav")
      if(alpha == BLINDED_FULLY && get_cvar_num("tfs_adminchat")) server_cmd("amx_chat %s ослепил игрока по команде (%s)", flasher, name)
   }
   return PLUGIN_CONTINUE
}

public colored_msg(id, msg[])
{
   message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id)
   write_byte(id)
   write_string(msg)
   message_end()
}

public event_flashsmokepuff()
{
   set_task(0.05,"reset_flasher")
   return PLUGIN_CONTINUE
}

public reset_flasher()
{
   g_flasher = 0
}

public get_flasher(id)
{
   g_flasher = (id - 524627)
}

public forward_setmodel(const ENTITY, model[])
{
   if(!equal(model, "models/w_flashbang.mdl"))
      return FMRES_IGNORED

   new owner = pev(ENTITY, pev_owner)
   if (owner == 0)
      return FMRES_IGNORED

   set_task(FLASH_TIMER, "get_flasher", 524627+owner)

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