• Страница 1 из 1
  • 1
Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Вопрос ("Топ 10 самых тупых вопросов")
Вопрос
Дата: Вторник, 25.09.2018, 19:35 | Сообщение # 1
Любитель
Offline
  • pro1000kill
  • Репутация: 17
  • Сообщений:27
  • Постоянный
  • Статус пользователя Релизер Army Bonus System
На днях я увидел что все плагины на чат, префиксы не работают на ботах. Ну то есть они пишут совсем не в чат, или как сказать плагины не отлавливают их сообщения. Можно их как-то отловить? У меня стоит PodBot и чат включен. Вот к примеру стоит плагин армии (не важно, любой) и в чате выводится твоё звание, когда пишет бот, ничего нету, он пишет ванильным текстом. Конечно глуповатый вопрос, но все же.
Сообщение отредактировал pro1000kill - Вторник, 25.09.2018, 19:35
Дата: Вторник, 25.09.2018, 20:04 | Сообщение # 2
Друг XP
Профи
Offline
  • sklin
  • Репутация: 44
  • Сообщений:181
  • VIP
  • Статус пользователя 46.174.48.44:27203
Цитата pro1000kill ()
На днях я увидел что все плагины на чат, префиксы не работают на ботах. Ну то есть они пишут совсем не в чат, или как сказать плагины не отлавливают их сообщения. Можно их как-то отловить? У меня стоит PodBot и чат включен. Вот к примеру стоит плагин армии (не важно, любой) и в чате выводится твоё звание, когда пишет бот, ничего нету, он пишет ванильным текстом. Конечно глуповатый вопрос, но все же.
боюсь спросить зачем боты вообще нужны?
Дата: Вторник, 25.09.2018, 20:30 | Сообщение # 3
Легендарный
Мастер
Offline
  • Quin
  • Репутация: 55
  • Сообщений:115
  • Опытный Скриптер
Предполагаю что боты, они же и PODBOT, общаются через модуль, т.е. сообщение отправляется раньше хука через say. Попробуйте отлавливать SayText и там подменивать сообщения. Может и сработает.

UPD
У меня так работает biggrin
Прикрепления: 3938913.png(102.8 Kb)
Сообщение отредактировал Quin - Вторник, 25.09.2018, 20:45
Дата: Среда, 26.09.2018, 19:10 | Сообщение # 4
Любитель
Offline
  • pro1000kill
  • Репутация: 17
  • Сообщений:27
  • Постоянный
  • Статус пользователя Релизер Army Bonus System
Ну вот я и про это, как мне через SayText зарегистрировать, сам кусок кода можно? я в таких вещах особо не шарю.
Дата: Среда, 26.09.2018, 19:16 | Сообщение # 5
Мл. Начальник
Профи-ветеран
Offline
  • pro100web
  • Репутация: 58
  • Сообщений:249
  • Скриптер / Модератор
  • Статус пользователя Большой статус
pro1000kill, попробуй amxmodx разместить в списке выше чем podbot в plugins.ini  метамода, не пробовал, но должно прокатить. Так как данный способ реализуем между плагинами amxmodx smile
Дата: Среда, 26.09.2018, 19:23 | Сообщение # 6
Любитель
Offline
  • pro1000kill
  • Репутация: 17
  • Сообщений:27
  • Постоянный
  • Статус пользователя Релизер Army Bonus System
В том то дело что podbot и стоит всегда у меня последним.
Дата: Среда, 26.09.2018, 21:18 | Сообщение # 7
Мл. Начальник
Профи-ветеран
Offline
  • pro100web
  • Репутация: 58
  • Сообщений:249
  • Скриптер / Модератор
  • Статус пользователя Большой статус
pro1000kill, тогда вариант остаётся один, боты передают сообщения по какому то каналу свои сообщения.
Возможно получиться отловить изменения путём register_message и get_user_msgid, но вроде чат не упоминается в библиотеках.
Дата: Четверг, 27.09.2018, 15:18 | Сообщение # 8
Легендарный
Мастер
Offline
  • Quin
  • Репутация: 55
  • Сообщений:115
  • Опытный Скриптер
Пример кода который работал у меня. 

Код
#include amxmodx

public plugin_init( )
{
   register_message( get_user_msgid( "SayText" ), "msg_SayText" );
}

public msg_SayText( msgid, msgdest, msgentity )
{
   static player; player = get_msg_arg_int( 1 );
   if ( !is_user_connected( player ) || !is_user_bot( player ) ) return PLUGIN_CONTINUE;

   new szTmp[256],szTmp2[256]; 
   get_msg_arg_string(2,szTmp, charsmax( szTmp ) ) // поулчаем написаное сообщение

   new szPrefix[64] = "^x04[Бот]"; // Наш префикс 

   if(!equal(szTmp,"#Cstrike_Chat_All")) // Если чат между коммандой
   {
      add(szTmp2,charsmax(szTmp2),szPrefix); // Ставим наш префикс
      add(szTmp2,charsmax(szTmp2)," ");
      add(szTmp2,charsmax(szTmp2),szTmp); // Сообщение
   }
   else
   {
      add(szTmp2,charsmax(szTmp2),szPrefix); //наш префикс 
      add(szTmp2,charsmax(szTmp2)," ^x03%s1^x01: ^x04%s2") // Имя игрока и сообщение
   }

   set_msg_arg_string(2,szTmp2); //Устанавливаем вид который мы сделали выше
   return PLUGIN_CONTINUE;
}

Форум » Counter-Strike 1.6 » Сервер Counter-Strike 1.6 » Помощь по скриптингу » Вопрос ("Топ 10 самых тупых вопросов")
  • Страница 1 из 1
  • 1
Поиск:
(threadpage)