Русское сообщество по скриптингу

[INC] Цветной чат

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

[INC] Цветной чат

Сообщение DJ_WEST » 23 сен 2009, 09:40

Автор: ConnorMcLeod

Данные функции могут быть использованы любым плагином. Также поддерживается мультиязычность.

Функция:
Код: Выделить всё
client_print_color(id, iColor=DontChange, const szMsg[], any:...) 


Использование:
В своем .sma исходнике используйте ^4 для отображения текста зеленым цветом, ^1 для отображения текста обычным цветом (который зависит от клиентской настройки con_color) и ^3 для отображения специальным цветом (второй аргумент).
В мультиязычных файлах используйте !g для отображения текста зеленым, !n для отображения текста обычным цветом и !t для отображения специальным цветом (второй аргумент).

Второй аргумент может быть: DontChange (оставить цвет в зависимости от команды игрока), Red (красный), Blue (синий) и Grey (серый).

Например:
Код: Выделить всё
client_print_color(id, Red, "Hello, world!") 

Код: Выделить всё
client_print_color(id, DontChange, "^1Hello, ^4world!") 


[align=center]
color_char.jpg
[/align]
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: [INC] Цветной чат

Сообщение Тамерлан » 05 мар 2012, 14:36

я установил на свой сервер colorchat.amxx и я изменил в statsx.txt строчку
Код: Выделить всё
YOUR_RANK_IS = Вы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

на
Код: Выделить всё
YOUR_RANK_IS = !gВы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

и всеравно на сервере когда набираю /rank то пишет
Код: Выделить всё
!gВы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

В чем дело подскажите мне?
Аватара пользователя
Тамерлан
 
Сообщения: 91
Зарегистрирован: 05 мар 2012, 02:26
Забанен
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: [INC] Цветной чат

Сообщение Plrip » 30 май 2012, 16:54

statsx
редактируй, добавь сток
[pawn]
  1. stock Color_Print(const id, const input[], any:...)

  2. {

  3.         new count = 1, players[32]

  4.         static msg[191]

  5.         vformat(msg, 190, input, 3)

  6.        

  7.         replace_all(msg, 190, "!g", "^4") // Green Color

  8.         replace_all(msg, 190, "!y", "^1") // Default Color

  9.         replace_all(msg, 190, "!team", "^3") // Team Color

  10.        

  11.         if (id) players[0] = id; else get_players(players, count, "ch")

  12.         {

  13.                 for (new i = 0; i < count; i++)

  14.                 {

  15.                         if (is_user_connected(players[i]))

  16.                         {

  17.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])

  18.                                 write_byte(players[i]);

  19.                                 write_string(msg);

  20.                                 message_end();

  21.                         }

  22.                 }

  23.         }

  24. }
[/pawn]

Status:
Аватара пользователя
Plrip
Скриптер
 
Сообщения: 2903
Зарегистрирован: 03 дек 2011, 19:33
Откуда: Ukraine
Благодарил (а): 237 раз.
Поблагодарили: 603 раз.
Языки программирования: Counter-Strike 1.6
X-Ray
Killing-Floor [low]

Re: [INC] Цветной чат

Сообщение Горы Облака » 14 авг 2012, 20:42

Тамерлан писал(а):я установил на свой сервер colorchat.amxx и я изменил в statsx.txt строчку
Код: Выделить всё
YOUR_RANK_IS = Вы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

на
Код: Выделить всё
YOUR_RANK_IS = !gВы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

и всеравно на сервере когда набираю /rank то пишет
Код: Выделить всё
!gВы занимаете %d-е место из %d (убив %d, попав %d раз, %0.2f%% ЭФФ. и %0.2f%% АКК.)

В чем дело подскажите мне?

Такая же проблема. В библиотеке строчка выглядит так –

[pawn]
  1. SCAN_RESULTS = !g[BIOSCAN] Result: You're
[/pawn]
Ниже часть скрипта к которому привязана библиотека. Я так полагаю нужно что-то менять здесь, в этом фрагменте кода –

[pawn]
  1. public task_spawned(taskid)

  2. {

  3.         static id

  4.         id = taskid - TASKID_SPAWNDELAY

  5.        

  6.         if(is_user_alive(id))

  7.         {

  8.                 if(g_welcomemsg[id])

  9.                 {

  10.                         g_welcomemsg[id] = false

  11.                        

  12.                         static message[192]

  13.                         formatex(message, 191, "%L", id, "WELCOME_TXT")

  14.                         replace(message, 191, "#Version#", VERSION)

  15.                        

  16.                         client_print(id, print_chat, message)

  17.                 }

  18.                

  19.                 if(g_suicide[id])

  20.                 {

  21.                         g_suicide[id] = false

  22.                        

  23.                         user_silentkill(id)

  24.                         remove_task(TASKID_CHECKSPAWN + id)

  25.  

  26.                         client_print(id, print_chat, "%L", id, "SUICIDEPUNISH_TXT")

  27.                        

  28.                         return

  29.                 }

  30.                

  31.                 if(get_pcvar_num(cvar_weaponsmenu) && g_roundstarted && g_showmenu[id])

  32.                         is_user_bot(id) ? bot_weapons(id) : display_equipmenu(id)

  33.                

  34.                 if(!g_gamestarted)

  35.                         client_print(id, print_chat, "%L %L", id, "SCAN_RESULTS", id, g_preinfect[id] ? "SCAN_INFECTED" : "SCAN_CLEAN")

  36.                 else

  37.                 {

  38.                         static team

  39.                         team = fm_get_user_team(id)

  40.                        

  41.                         if(team == CS_TEAM_T)

  42.                                 fm_set_user_team(id, CS_TEAM_CT)

  43.                 }

  44.         }

  45. }
[/pawn]
Последний раз редактировалось Горы Облака 15 авг 2012, 18:47, всего редактировалось 1 раз.
Аватара пользователя
Горы Облака
 
Сообщения: 7
Зарегистрирован: 14 авг 2012, 18:30
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: [INC] Цветной чат

Сообщение Горы Облака » 15 авг 2012, 18:29

Спасибо за помощь. Было необходимо заменить client_print на client_print_color.
Аватара пользователя
Горы Облака
 
Сообщения: 7
Зарегистрирован: 14 авг 2012, 18:30
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: [INC] Цветной чат

Сообщение maFFyoZZyk » 04 дек 2012, 12:43

Всем привет, опытные скриптеры подскажите пожалуйста
Вот есть плагин demorecoder

Код: Выделить всё
/****************************************/
/*               */
/*   Auto Demo Recorder      */
/*   by IzI            */
/*               */
/****************************************/

#include <amxmodx>
#pragma semicolon 1

new g_Toggle, g_DMod, g_UseNI, g_RStartAfter, g_DemoName;

public plugin_init()
{
   register_plugin("Auto Demo Recorder", "1.4", "IzI");
   g_Toggle       = register_cvar("amx_demo",      "1");
   g_DMod         = register_cvar("amx_demo_mode",   "0");
   g_UseNI       = register_cvar("amx_demo_steamid",   "0");
   g_RStartAfter       = register_cvar("amx_demo_rectime",   "15");   // If it is less than 5, it will automatically set to 5, but willn't apply the changes to the console. I recoment to use default settings.
   g_DemoName       = register_cvar("amx_demo_name",   "Autorecorded demo");
   register_dictionary("demorecorder.txt");
}

public client_putinserver(id)
{
   if(get_pcvar_num(g_Toggle))
   {
      new Float:delay = get_pcvar_float(g_RStartAfter);
      if(delay < 5)
         set_pcvar_float(g_RStartAfter, (delay = 5.0));
      set_task(delay, "Record", id);
   }
}

public Record(id)
{
   if(!is_user_connected(id) || get_pcvar_num(g_Toggle) != 1)
      return;

   // Getting time, client SteamID, server's name, server's ip with port.
   new iSName[64], iTimedata[9];
   new iUseIN = get_pcvar_num(g_UseNI);
   new iDMod = get_pcvar_num(g_DMod);
   get_time("%H:%M:%S", iTimedata, 8);

   switch(iDMod)
   {
      case 0: get_pcvar_string(g_DemoName, iSName, 63);
      case 1: get_user_ip(0, iSName, 63, 0);
      case 2: get_user_name(0, iSName, 63);
   }

   // Replacing signs.
   replace_all(iSName, 31, ":", "_");
   replace_all(iSName, 31, ".", "_");
   replace_all(iSName, 31, "*", "_");
   replace_all(iSName, 31, "/", "_");
   replace_all(iSName, 31, "|", "_");
   replace_all(iSName, 31, "\", "_");
   replace_all(iSName, 31, "?", "_");

   if(iUseIN)
   {
      new iCID[32];
      get_user_authid(id, iCID, 31);
      format(iSName, 63, "[%s]%s", iCID, iSName);
   }

   // Displaying messages.
   client_cmd(id, "stop; record ^"%s^"", iSName);
   client_print(id, print_chat, "[AMXX] %L ^"%s.dem^"", LANG_PLAYER, "RECORDINGIN", iSName);
   client_print(id, print_chat, "[AMXX] %L", LANG_PLAYER, "RECORDINGAT", iTimedata);
}


очень хотелось бы чтобы к примеру [AMXX] было зеленым
и так же хотелось бы чтобы в самом файле плагина в текстовом можно было использовать цвета
перечитал всю тему, попытался сделать так же как говорят многие, запихивал и сток и объявлял функцию colorchat но все тщетно, постоянно выдает мне ошибку при добавлении функции chat_print_color

Судя по по примеру топикстартера client_print(id, print_chat можно заменить на client_print_color(id, DontChange и тогда можно расписывать цветами свою надпись
но в строках

client_print_color(id, DontChange, "[AMXX] %L ^"%s.dem^"", LANG_PLAYER, "RECORDINGIN", iSName); все равно пишет ошибку, мог бы кто-нибудь сам поменять плагин так как я прошу, чтобы я уже смотрел на готовом примере того что мне надо.

просто в дальнейшем хотелось бы многие плагины переписать, но я еще в этом зелен, заранее спасибо :-X
Аватара пользователя
maFFyoZZyk
 
Сообщения: 5
Зарегистрирован: 04 дек 2012, 12:24
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: [INC] Цветной чат

Сообщение .gif_T » 23 дек 2012, 13:20

formatex(no, 255, "%L", LANG_PLAYER, "NO")
menu_additem(d_menu, no, "2")
Игнорируется перенос строки ^n. Как быть? С другими инклудами или вообще без все отлично. Версию colorchat'а использую последнюю с alliedmods.
Аватара пользователя
.gif_T
 
Сообщения: 46
Зарегистрирован: 10 янв 2012, 21:24
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [INC] Цветной чат

Сообщение poduna2012 » 01 апр 2013, 22:32

admincmd вообще никак не получается(((
Аватара пользователя
poduna2012
 
Сообщения: 65
Зарегистрирован: 18 ноя 2012, 16:29
Благодарил (а): 21 раз.
Поблагодарили: 1 раз.

Re: [INC] Цветной чат

Сообщение GaMeRs » 01 апр 2013, 22:36

Всё получается если руки откуда надо растут, кстати poduna2012, читани ЛС
Аватара пользователя
GaMeRs
 
Сообщения: 1574
Зарегистрирован: 12 мар 2012, 17:25
Благодарил (а): 84 раз.
Поблагодарили: 468 раз.

Re: [INC] Цветной чат

Сообщение poduna2012 » 02 апр 2013, 01:13

GaMeRs писал(а):Всё получается если руки откуда надо растут, кстати poduna2012, читани ЛС


Ниче не получится даже примеров нет как именно плагин admincmd цветной чат добавить.
Аватара пользователя
poduna2012
 
Сообщения: 65
Зарегистрирован: 18 ноя 2012, 16:29
Благодарил (а): 21 раз.
Поблагодарили: 1 раз.

Re: [INC] Цветной чат

Сообщение StudeNNNt:) » 09 апр 2013, 19:11

Горы Облака писал(а):Спасибо за помощь. Было необходимо заменить client_print на client_print_color.

у тебя получилось?
Аватара пользователя
StudeNNNt:)
 
Сообщения: 24
Зарегистрирован: 16 июл 2012, 18:05
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron