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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.
2 страниц V   1 2

3 сообщения в чат

Статус пользователя sexmachine
сообщение 27.12.2015, 11:28
Сообщение #1


Стаж: 10 лет

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

Люди, подскажите пожалуйста, как сделать через ColorChat, чтобы всем игрокам отсылалось сразу 3 сбщ в чат.
Т.е через определенный промежуток времени.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Norman111
сообщение 27.12.2015, 11:30
Сообщение #2


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

сет_таском запускаешь функцию через опредленные N секунд, а в самой функции выводишь 3 раза ColorChat(id,...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sexmachine
сообщение 27.12.2015, 11:42
Сообщение #3


Стаж: 10 лет

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

Цитата(Norman111 @ 27.12.2015, 0:26) *
сет_таском запускаешь функцию через опредленные N секунд, а в самой функции выводишь 3 раза ColorChat(id,...

а без сет_таска никак? грузит сервер этот сет таск до ужаса!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
sevcs
сообщение 27.12.2015, 11:50
Сообщение #4
Стаж: 11 лет

Сообщений: 407
Благодарностей: 169
Полезность: 254

Возможно то что тебе надо, сразу в несколько строк выводит сообщение.
Text In Сhat
Код
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "text in chat"
#define VERSION "1.0"
#define AUTHOR "patr1g / Pr4yer"


enum ChatColor
{
   CHATCOLOR_YELLOW = 1,    // ЖЁЛТЫЙ
   CHATCOLOR_GREEN,    // ЗЕЛЁНЫЙ
   CHATCOLOR_TEAM_COLOR,    // Цвет, в зависимости от команды. (T - красный, CT - синий, CPEC - серый)
   CHATCOLOR_GREY,    // СЕРЫЙ
   CHATCOLOR_RED,       // КРАСНЫЙ
   CHATCOLOR_BLUE,    // СИНИЙ
}

new g_TeamName[][] =
{
   "",
   "TERRORIST",
   "CT",
   "SPECTATOR"
}

new g_msgSayText
new g_msgTeamInfo
  

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
    
   register_cvar("text_chat", "1")
   register_cvar("text_chat_interval", "25")
    
   register_cvar("text_chat_1", "PETYX 1")
   register_cvar("text_chat_2", "PETYX 2")
   register_cvar("text_chat_3", "PETYX 3")
   register_cvar("text_chat_4", "PETYX 4")
   register_cvar("text_chat_5", "PETYX 5")
    
   g_msgSayText = get_user_msgid("SayText")
   g_msgTeamInfo = get_user_msgid("TeamInfo")
}

public plugin_cfg()
{
  set_task(get_cvar_float("text_chat_interval"), "showMsg", 12345, "", _, "b")
}

public showMsg()
{
  if(get_cvar_num("text_chat") == 1)
  {
    static
            msg1[128],
            msg2[128],
            msg3[128],
            msg4[128],
            msg5[128]
    
    get_cvar_string("text_chat_1", msg1, 127)
    get_cvar_string("text_chat_2", msg2, 127)
    get_cvar_string("text_chat_3", msg3, 127)
    get_cvar_string("text_chat_4", msg4, 127)
    get_cvar_string("text_chat_5", msg5, 127)
    
    colorChat(0, CHATCOLOR_YELLOW, "%s", msg1)
    colorChat(0, CHATCOLOR_RED, "%s", msg2)
    colorChat(0, CHATCOLOR_GREEN, "%s", msg3)
    colorChat(0, CHATCOLOR_GREY, "%s", msg4)
    colorChat(0, CHATCOLOR_BLUE, "%s", msg5)
  }
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...)
{
   new team, index, MSG_Type
   new bool:teamChanged = false
   new message[192]
    
   switch(color)
   {
      case CHATCOLOR_YELLOW:
      {
         message[0] = 0x01;
      }
      case CHATCOLOR_GREEN:
      {
         message[0] = 0x04;
      }
      default:
      {
         message[0] = 0x03;
      }
   }
    
   vformat(message[1], 190, msg, 4);
    
   if (id == 0)
   {
      index = findAnyPlayer();
      MSG_Type = MSG_ALL;
   }
   else
   {
      index = id;
      MSG_Type = MSG_ONE;
   }
   if (index != 0)
   {
      team = get_user_team(index);  
      if (color == CHATCOLOR_RED && team != 1)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[1])
         teamChanged = true
      }
      else
      if (color == CHATCOLOR_BLUE && team != 2)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[2])
         teamChanged = true
      }
      else
      if (color == CHATCOLOR_GREY && team != 0)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[0])
         teamChanged = true
      }
      messageSayText(index, MSG_Type, message);
      if (teamChanged)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[team]);
      }
   }
}

messageSayText(id, type, message[])
{
   message_begin(type, g_msgSayText, _, id)
   write_byte(id)      
   write_string(message)
   message_end()
}
    
messageTeamInfo(id, type, team[])
{
   message_begin(type, g_msgTeamInfo, _, id)
   write_byte(id)
   write_string(team)
   message_end()
}
    
findAnyPlayer()
{
   new players[32], inum
    
   get_players(players, inum)
    
   for (new a = 0; a < inum; ++a)
   {
      if(is_user_connected(players[a]))
      {
         return players[a]
      }
   }
   return 0
}

Настройки
Код
text_chat "1" // 0 - выключить . 1 - включить плагин
text_chat_interval "180" // интервал между показами сообщения. в секундах
    
text_chat_1 "ТЕКСТ 1"
text_chat_2 "ТЕКСТ 2"
text_chat_3 "ТЕКСТ 3"
text_chat_4 "ТЕКСТ 4"
text_chat_5 "ТЕКСТ 5"

Ссылка на тему, пост # 14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sexmachine
сообщение 27.12.2015, 11:51
Сообщение #5


Стаж: 10 лет

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

Цитата(sevcs @ 27.12.2015, 0:45) *
Возможно то что тебе надо, сразу в несколько строк выводит сообщение.
Text In Сhat
Код
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "text in chat"
#define VERSION "1.0"
#define AUTHOR "patr1g / Pr4yer"


enum ChatColor
{
   CHATCOLOR_YELLOW = 1,    // ЖЁЛТЫЙ
   CHATCOLOR_GREEN,    // ЗЕЛЁНЫЙ
   CHATCOLOR_TEAM_COLOR,    // Цвет, в зависимости от команды. (T - красный, CT - синий, CPEC - серый)
   CHATCOLOR_GREY,    // СЕРЫЙ
   CHATCOLOR_RED,       // КРАСНЫЙ
   CHATCOLOR_BLUE,    // СИНИЙ
}

new g_TeamName[][] =
{
   "",
   "TERRORIST",
   "CT",
   "SPECTATOR"
}

new g_msgSayText
new g_msgTeamInfo
  

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
    
   register_cvar("text_chat", "1")
   register_cvar("text_chat_interval", "25")
    
   register_cvar("text_chat_1", "PETYX 1")
   register_cvar("text_chat_2", "PETYX 2")
   register_cvar("text_chat_3", "PETYX 3")
   register_cvar("text_chat_4", "PETYX 4")
   register_cvar("text_chat_5", "PETYX 5")
    
   g_msgSayText = get_user_msgid("SayText")
   g_msgTeamInfo = get_user_msgid("TeamInfo")
}

public plugin_cfg()
{
  set_task(get_cvar_float("text_chat_interval"), "showMsg", 12345, "", _, "b")
}

public showMsg()
{
  if(get_cvar_num("text_chat") == 1)
  {
    static
            msg1[128],
            msg2[128],
            msg3[128],
            msg4[128],
            msg5[128]
    
    get_cvar_string("text_chat_1", msg1, 127)
    get_cvar_string("text_chat_2", msg2, 127)
    get_cvar_string("text_chat_3", msg3, 127)
    get_cvar_string("text_chat_4", msg4, 127)
    get_cvar_string("text_chat_5", msg5, 127)
    
    colorChat(0, CHATCOLOR_YELLOW, "%s", msg1)
    colorChat(0, CHATCOLOR_RED, "%s", msg2)
    colorChat(0, CHATCOLOR_GREEN, "%s", msg3)
    colorChat(0, CHATCOLOR_GREY, "%s", msg4)
    colorChat(0, CHATCOLOR_BLUE, "%s", msg5)
  }
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...)
{
   new team, index, MSG_Type
   new bool:teamChanged = false
   new message[192]
    
   switch(color)
   {
      case CHATCOLOR_YELLOW:
      {
         message[0] = 0x01;
      }
      case CHATCOLOR_GREEN:
      {
         message[0] = 0x04;
      }
      default:
      {
         message[0] = 0x03;
      }
   }
    
   vformat(message[1], 190, msg, 4);
    
   if (id == 0)
   {
      index = findAnyPlayer();
      MSG_Type = MSG_ALL;
   }
   else
   {
      index = id;
      MSG_Type = MSG_ONE;
   }
   if (index != 0)
   {
      team = get_user_team(index);  
      if (color == CHATCOLOR_RED && team != 1)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[1])
         teamChanged = true
      }
      else
      if (color == CHATCOLOR_BLUE && team != 2)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[2])
         teamChanged = true
      }
      else
      if (color == CHATCOLOR_GREY && team != 0)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[0])
         teamChanged = true
      }
      messageSayText(index, MSG_Type, message);
      if (teamChanged)
      {
         messageTeamInfo(index, MSG_Type, g_TeamName[team]);
      }
   }
}

messageSayText(id, type, message[])
{
   message_begin(type, g_msgSayText, _, id)
   write_byte(id)      
   write_string(message)
   message_end()
}
    
messageTeamInfo(id, type, team[])
{
   message_begin(type, g_msgTeamInfo, _, id)
   write_byte(id)
   write_string(team)
   message_end()
}
    
findAnyPlayer()
{
   new players[32], inum
    
   get_players(players, inum)
    
   for (new a = 0; a < inum; ++a)
   {
      if(is_user_connected(players[a]))
      {
         return players[a]
      }
   }
   return 0
}

Настройки
Код
text_chat "1" // 0 - выключить . 1 - включить плагин
text_chat_interval "180" // интервал между показами сообщения. в секундах
    
text_chat_1 "ТЕКСТ 1"
text_chat_2 "ТЕКСТ 2"
text_chat_3 "ТЕКСТ 3"
text_chat_4 "ТЕКСТ 4"
text_chat_5 "ТЕКСТ 5"

Ссылка на тему, пост # 14

этот не подходит, он выводит определенный цвет у сообщений!
А мне именно нужно чтобы !g,!t,!n ^1;^3;^4
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sexmachine
сообщение 27.12.2015, 11:58
Сообщение #6


Стаж: 10 лет

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

желательно без set_task
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя IAMHARD
сообщение 27.12.2015, 13:05
Сообщение #7
Стаж: 11 лет

Сообщений: 194
Благодарностей: 57
Полезность: 234

Просто лови какое нибудь событие и к нему привязывай 3 colorchat'a
К примеру респавн лови, или начало раунда
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 27.12.2015, 13:07
Сообщение #8


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

Цитата(IAMHARD @ 27.12.2015, 14:01) *
К примеру респавн лови, или начало раунда

Если у него паблик, это не одно и то же?

sexmachine, можно через хлтв евент сделать, если не хочешь таском делать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя IAMHARD
сообщение 27.12.2015, 13:08
Сообщение #9
Стаж: 11 лет

Сообщений: 194
Благодарностей: 57
Полезность: 234

Цитата(IAMHARD @ 27.12.2015, 14:01) *
Просто лови какое нибудь событие и к нему привязывай 3 colorchat'a
К примеру респавн лови, или начало раунда


PS я не думаю, что если ты задашь set_task через аждую минуту-две, будет грузить сервер "до ужаса") Ибо он практически в каждом плагине есть. Мб я не прав. Хочется услышать мнение опытных людей.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vaqtincha
сообщение 27.12.2015, 14:17
Сообщение #10
Стаж: 11 лет

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

IAMHARD, автор сильно обиделся от тасков гг...
Таски бывают разными... Пусть читает эту http://amxxmodx.ru/core/amxmodxinc/70-set_...moe-vremya.html

Отредактировал: Vaqtincha, - 27.12.2015, 14:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sexmachine
сообщение 27.12.2015, 18:54
Сообщение #11


Стаж: 10 лет

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

Цитата(IAMHARD @ 27.12.2015, 1:01) *
Просто лови какое нибудь событие и к нему привязывай 3 colorchat'a
К примеру респавн лови, или начало раунда

мне нужно через определенный промежуток времени.
Допустим [min=10сек; max=25сек]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sexmachine
сообщение 27.12.2015, 19:48
Сообщение #12


Стаж: 10 лет

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

в общем, вот что получилось:
Код:
#include <amxmodx>
#include <colorchat>

#defline PLUGIN "test reklama"
#defline VERSION "1.0"
#defline AUTHOR "Excessus"

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR);
}

public client_putinserver(id)
{
set_task(10.0, "text", id);
}

public text(id)
{
ColorChat(0, "^4[test] ^3Купить привилегию ^1On-Line: ^4U123")
ColorChat(0, "^4[test2] ^3Наш сайт доступен по ^1ссылке: ^4http://xyi.tv")
ColorChat(0, "^4[test3] ^3Наша группа VK: ^4vk.com/sexboys ^1Вступай!")
}

Только проблема в том, что данный плагин будет работать в том случае, если игрок приконнектился на сервер.
А мне вот нужно чтобы всем в чат писалось (5-10 time)

Отредактировал: sexmachine, - 27.12.2015, 19:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 27.12.2015, 20:17
Сообщение #13


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

sexmachine,
Код
ColorChat(0, "^4[test2] ^3Наш сайт доступен по ^1ссылке: ^4http://xyi.tv")

Сайт автора плагина? Хех, пропиарил конечно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vaqtincha
сообщение 27.12.2015, 21:53
Сообщение #14
Стаж: 11 лет

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

sexmachine, вот именно такие таски оочень опасные...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 27.12.2015, 22:06
Сообщение #15
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

sexmachine, в plugin_init Код:
set_task(10.0, "text", _, _, _, "b")

и в самом text проверку присутствия на сервере стоит добавить, и выводить не каждому отдельному игроку, а всем сразу.

Отредактировал: proff_q, - 27.12.2015, 22:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Norman111
сообщение 27.12.2015, 22:11
Сообщение #16


Стаж: 13 лет

Сообщений: 328
Благодарностей: 230
Полезность: 403

proff_q, можно и так Код:
set_task(10.0, "text", .flags="b")

Че всякие прочерки ставить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Vaqtincha
сообщение 27.12.2015, 22:19
Сообщение #17
Стаж: 11 лет

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

proff_q, ага с "бесконечным таском" классная идея....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 27.12.2015, 22:20
Сообщение #18
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Vaqtincha, Мне нравится, спасибо
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 27.12.2015, 22:34
Сообщение #19
Стаж: 11 лет

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

proff_q, еще вот так
Код:
client_PreThink(id)
{
set_task(10.0, "msg1", id)
set_task(20.0, "msg2", id)
set_task(30.0, "msg3", id)
}

ваще классно будет грузит. Но это неважно нам нужна реклама.

Отредактировал: Vaqtincha, - 27.12.2015, 22:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 27.12.2015, 22:42
Сообщение #20
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Vaqtincha, Я считаю, что современное оборудование позволяет обработать один "бесконечный таск". Тем более другого варианта варианта для выполнения функции через определенное время я не вижу (с) взгляд рядового пользователя.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: