Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Проблема с Event'ом
Vitaminoz Дата: Суббота, 04.01.2014, 23:13:40 | Сообщение # 1
Сообщений: 141
Репутация: 1 [ +/- ]
Всем привет, есть код:
Код
public Action:Hook_ServerCvar(Handle:event, const String:name[],    bool:dontBroadcast)
{
  if (!dontBroadcast) SetEventBroadcast(event, true);
  decl String:cvar_name[32];
  GetEventString(event, "cvarname", cvar_name, sizeof(cvar_name));
  if (StrContains(cvar_name, "zh_"))
  {
   decl String:cvar_value[16];
   GetEventString(event, "cvarvalue", cvar_value, sizeof(cvar_value));
   PrintToChatAll("[ZH] Серверная переменная %s изменена на %s", cvar_name, cvar_value);
   PrintToServer("[ZH] Server Value %s change to %s", cvar_name, cvar_value);
  }
  return Plugin_Handled;
}

Никак не могу получить то что хочу, а именно почему то
Код
PrintToServer("[ZH] Server Value %s change to %s", cvar_name, cvar_value);

Делается не только на команды zh_ но и на все команды. Что не так в коде ?
И еще я что-то не совсем понимаю return Plugin_Handled/Plugin_Continue. Даже после того как прочитал статтью про Event'ы.
Кто может на каком-либо примере объяснить ?
 
_wS_ Дата: Понедельник, 06.01.2014, 13:35:55 | Сообщение # 2
Цитата Vitaminoz ()
if (StrContains(cvar_name, "zh_"))

Потому что это не bool: функция, которая возвращает только true или false.
Если совпадение не найдено, возвращает -1, а -1 это true.
 
Vitaminoz Дата: Понедельник, 06.01.2014, 13:48:18 | Сообщение # 3
Сообщений: 141
Репутация: 1 [ +/- ]
То есть надо сделать вот так ?
if (StrContains(cvar_name, "zh_") != -1)
 
_wS_ Дата: Понедельник, 06.01.2014, 13:51:58 | Сообщение # 4
Да. Но если хочешь ловить только те квары, которые начинаются с zh_, то лучше:
Код
if (StrContains(cvar_name, "zh_", false) == 0)
 
Vitaminoz Дата: Понедельник, 06.01.2014, 13:58:46 | Сообщение # 5
Сообщений: 141
Репутация: 1 [ +/- ]
Спасибо!
 
  • Страница 1 из 1
  • 1
Поиск: