Как да направим обикновените чат съобщения цветни

В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да направим обикновените чат съобщения цветни

Мнение от OciXCrom » 29 Ное 2016, 14:01

В тази тема ще ви покажа лесен начин как да замените обикновено чат съобщение в който да е плъгин, с цветно такова.

1. Теглите cromchat.inc от тук и го поставяте в cstrike/addons/amxmodx/scripting/include.
2. Отваряте .sma файла на въпросния плъгин и под всички #include редове добавяте #include <cromchat>.
3. Използвайте търсачката (Ctrl+F) за лесно да намерите съобщението което искате да замените.
4. След като сте завършили с промените, трябва да компилирате файла локално.
Чат съобщенията са подобни на следното:

Код за потвърждение: Избери целия код

client_print(0, print_chat, "Player %s has just reset his score", szName)
За да направите горното съобщение цветно, просто заместете client_print с CC_SendMessage, а print_chat изцяло го премахнете заедно със запетайката след него. Трябва да се получи това:

Код за потвърждение: Избери целия код

CC_SendMessage(0, "Player %s has just reset his score", szName)
Цветовете се добавят като в съобщението сложите един от следните "символи":

&x07 = червено
&x06 = синьо
&x05 = бяло
&x04 = зелено
&x03 = според отбора
&x01 = нормално


Можете да ползвате и друг вид символи, примерно !t, {red}, ^3 и прочие. За да разберете как да направите това, погледнете тази тема.

Всичко написано след дадения символ ще бъде с цвета, който сте избрали. Имайте предвид, че не можете да комбинирате червено, синьо, бяло и според отбора. Само един от тези цветове може да се съдържа в едно чат съобщение.
За горното съобщение да изглежда по този начин: Player OciXCrom has just reset his score, трябва да напишете следното:

Код за потвърждение: Избери целия код

CC_SendMessage(0, "Player &x03%s &x01has just &x04reset his score", szName)
Не сложих &x01 преди "Player", тъй като по подразбиране съобщението започва с обикновения цвят, тъй че няма нужда да го добавяте.
Ако искате да добавите префикс (с или без цветове) преди всички съобщения, просто добавете следния код във функцията plugin_init():

Код за потвърждение: Избери целия код

CC_SetPrefix("&x04[Cool Prefix]")
Вече съобщението ще изглежда така: [Cool Prefix] Player OciXCrom has just reset his score

Някои плъгини може да ползват функциите show_activity, show_activity_id или show_activity_key за изпращане чат съобщение. В такъв случай единствено трябва да добавите #include <cromchat> в .sma файла и библиотеката автоматично ще замести функциите с цветни такива. След това, просто трябва да си добавите цветните кодове в lang файла на въпросния плъгин.


Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от OciXCrom » 19 Мар 2017, 21:12

Ъпдейт на темата.

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от devilchy » 26 Мар 2017, 23:14

Нещо не се получава изпълних всичките стъпки но не става дава следната грешка при компилиране.

Код за потвърждение: Избери целия код

//// high_ping_kicker.sma
// C:\Users\musi\Desktop\high_ping_kicker.sma(0) : fatal error 101: cannot write to file: "C:\Users\musi\Desktop\compiled\high_ping_kicker.amx"
//
// Compilation aborted.
// 1 Error.
// Could not locate output file C:\Users\musi\Desktop\compiled\high_ping_kicker.amx (compile failed).
//
// Compilation Time: 0,22 sec

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от OciXCrom » 26 Мар 2017, 23:22

Дай да видим какво си направил де.

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от devilchy » 26 Мар 2017, 23:46

Код за потвърждение: Избери целия код

/* AMX Mod script. 
* 
* (c) 2002-2003, OLO 
* modified by shadow
* This file is provided as is (no warranties). 
* 
* Players with immunity won't be checked 
*/ 

#include <amxmodx>
#include <amxmisc>
#include <cromchat>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
  register_plugin("High Ping Kicker (WON)","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","30")
  register_cvar("amx_hpk_check","12")
  register_cvar("amx_hpk_tests","5")
  register_cvar("amx_hpk_delay","10")
  
  if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 )
  if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_hpk_tests" , 3 )
}

public client_disconnect(id) 
  remove_task( id )

public client_putinserver(id) 
{    
  g_Ping[id] = 0 
  g_Samples[id] = 0

  if ( !is_user_bot(id) ) 
  {
    new param[1]
    param[0] = id 
    set_task( 10.0 , "showWarn" , id , param , 1 )
    
    if (get_cvar_num("amx_hpk_tests") != 0) {
	    set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1)
    }
    else {	    
    	set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
	}
	
  }
} 

public showWarn(param[])
  CC_SendMessage( param[0]"&x04[CS-BULGARIA]&x01 Igrachi s ping po visok ot %d shte budat kicknat-i!", get_cvar_num( "amx_hpk_ping" ) )

public taskSetting(param[]) {
	new name[32]
	get_user_name(param[0],name,31)
	set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}

kickPlayer( id ) 
{ 
	new name[32],authid[32]
	get_user_name(id,name,31)
	get_user_authid(id,authid,31)

  	client_print(0,print_chat,"** Player %s disconnected due to high ping",name)
	client_cmd(id,"echo ^"** Sujalqvame, no imate tvurde visok ping, Opitayte po kusno!!!^";disconnect")
	remove_task(id)
	log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")", 
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

} 

public checkPing(param[]) 
{ 
  new id = param[ 0 ] 

  if ( get_user_flags(id) & ADMIN_IMMUNITY ) return

  new p, l 

  get_user_ping( id , p , l ) 

  g_Ping[ id ] += p
  ++g_Samples[ id ]

  if ( (g_Samples[ id ] > get_cvar_num( "amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "amx_hpk_ping" ))  )    
    kickPlayer(id) 
}

  
public cmdHpk(id,level,cid){
  if (!cmd_access(id,level,cid,1))
    return PLUGIN_HANDLED
    
  new ping[5]
  new check_arr[5]
  new tests_arr[5]
  new delay_arr[5]
  read_argv(1,ping,4)
  read_argv(2,check_arr,4)
  read_argv(3,tests_arr,4)
  read_argv(4,delay_arr,4)
  
  new check = str_to_num(check_arr)
  new tests = str_to_num(tests_arr)
  new delay = str_to_num(delay_arr)
  
  
  if ( check < 5 ) check = 5
  if ( tests < 3 ) tests = 3
  

  if (read_argc() > 1){
    set_cvar_string("amx_hpk_ping",ping)
  }
  if (read_argc() > 2) {
	set_cvar_num("amx_hpk_check",check)
  }
  if (read_argc() > 3) {
	set_cvar_num("amx_hpk_tests",tests)
  }
  if (read_argc() > 4) {
	  set_cvar_num("amx_hpk_delay",delay)
 }

  console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
  console_print(id,"Current High_Ping_Kicker Settings:")
  console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
  return PLUGIN_HANDLED    
}

Ето го и оригиналния.

Код за потвърждение: Избери целия код

/* AMX Mod script. 
* 
* (c) 2002-2003, OLO 
* modified by shadow
* This file is provided as is (no warranties). 
* 
* Players with immunity won't be checked 
*/ 

#include <amxmodx> 
#include <amxmisc>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
  register_plugin("High Ping Kicker (WON)","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","100")
  register_cvar("amx_hpk_check","12")
  register_cvar("amx_hpk_tests","5")
  register_cvar("amx_hpk_delay","60")
  
  if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 )
  if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_hpk_tests" , 3 )
}

public client_disconnect(id) 
  remove_task( id )

public client_putinserver(id) 
{    
  g_Ping[id] = 0 
  g_Samples[id] = 0

  if ( !is_user_bot(id) ) 
  {
    new param[1]
    param[0] = id 
    set_task( 10.0 , "showWarn" , id , param , 1 )
    
    if (get_cvar_num("amx_hpk_tests") != 0) {
	    set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1)
    }
    else {	    
    	set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
	}
	
  }
} 

public showWarn(param[])
  client_print( param[0] ,print_chat,"* Players with ping higher than %d will be kicked!", get_cvar_num( "amx_hpk_ping" ) )

public taskSetting(param[]) {
	new name[32]
	get_user_name(param[0],name,31)
	set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}

kickPlayer( id ) 
{ 
	new name[32],authid[32]
	get_user_name(id,name,31)
	get_user_authid(id,authid,31)

  	client_print(0,print_chat,"** Player %s disconnected due to high ping",name)
	client_cmd(id,"echo ^"** Sorry but you have too high ping, try later...^";disconnect")
	remove_task(id)
	log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")", 
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

} 

public checkPing(param[]) 
{ 
  new id = param[ 0 ] 

  if ( get_user_flags(id) & ADMIN_IMMUNITY ) return

  new p, l 

  get_user_ping( id , p , l ) 

  g_Ping[ id ] += p
  ++g_Samples[ id ]

  if ( (g_Samples[ id ] > get_cvar_num( "amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "amx_hpk_ping" ))  )    
    kickPlayer(id) 
}

  
public cmdHpk(id,level,cid){
  if (!cmd_access(id,level,cid,1))
    return PLUGIN_HANDLED
    
  new ping[5]
  new check_arr[5]
  new tests_arr[5]
  new delay_arr[5]
  read_argv(1,ping,4)
  read_argv(2,check_arr,4)
  read_argv(3,tests_arr,4)
  read_argv(4,delay_arr,4)
  
  new check = str_to_num(check_arr)
  new tests = str_to_num(tests_arr)
  new delay = str_to_num(delay_arr)
  
  
  if ( check < 5 ) check = 5
  if ( tests < 3 ) tests = 3
  

  if (read_argc() > 1){
    set_cvar_string("amx_hpk_ping",ping)
  }
  if (read_argc() > 2) {
	set_cvar_num("amx_hpk_check",check)
  }
  if (read_argc() > 3) {
	set_cvar_num("amx_hpk_tests",tests)
  }
  if (read_argc() > 4) {
	  set_cvar_num("amx_hpk_delay",delay)
 }

  console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
  console_print(id,"Current High_Ping_Kicker Settings:")
  console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
  return PLUGIN_HANDLED    
}

Аватар
Unbr3akable
Извън линия
Потребител
Потребител
Мнения: 178
Регистриран на: 21 Дек 2016, 20:50
Получена благодарност: 6 пъти

Re: Как да направим обикновените чат съобщения цветни

Мнение от Unbr3akable » 26 Мар 2017, 23:56

CC_SendMessage( param[0]"&x04[CS-BULGARIA]&x01 Igrachi s ping po visok ot %d shte budat kicknat-i!", get_cvar_num( "amx_hpk_ping" ) )

=>

CC_SendMessage( param[0],"&x04[CS-BULGARIA]&x01 Igrachi s ping po visok ot %d shte budat kicknat-i!", get_cvar_num( "amx_hpk_ping" ) )

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от devilchy » 27 Мар 2017, 00:08

Замених ето тази грешка идва:

Код за потвърждение: Избери целия код

Error: Cannot read from file: "cromchat" on line 12
Compilation aborted.
1 Error.
Could not locate output file C:\Users\musi\Desktop\high_ping_kicker.amx (compile failed).
и плъгина не е компилиран.

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от SmirnoffBG » 27 Мар 2017, 00:11

Нещо не мога да изтегля файлът.
The selected attachment does not exist anymore.
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
devilchy
Извън линия
Потребител
Потребител
Мнения: 223
Регистриран на: 03 Фев 2017, 14:08
Местоположение: Burgas
Се отблагодари: 3 пъти
Получена благодарност: 6 пъти
Обратна връзка:

Re: Как да направим обикновените чат съобщения цветни

Мнение от devilchy » 27 Мар 2017, 00:32

Много ми е интересно какво се мъчиш да изтеглиш ...?

Аватар
Unbr3akable
Извън линия
Потребител
Потребител
Мнения: 178
Регистриран на: 21 Дек 2016, 20:50
Получена благодарност: 6 пъти

Re: Как да направим обикновените чат съобщения цветни

Мнение от Unbr3akable » 27 Мар 2017, 01:26

Изтеглил ли си библиотеката?
ПС: И аз не мога да изтегля библиотеката, явно линкът временно е спрян.
cromchat.inc
(2.9 KiB) Свалено 270 пъти
cromchat.inc
(2.9 KiB) Свалено 270 пъти

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Полезни кодове/уроци”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 8 госта