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

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

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

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

не могу поставить Color_print

[РЕШЕНО]
Статус пользователя sana666
сообщение 25.4.2015, 15:55
Сообщение #1


Стаж: 12 лет
Город: Новосибирск

Сообщений: 235
Благодарностей: 39
Полезность: 29

Плагин Auto-mix by p1mp.
Решил добавить в плагин Color_print. В общем везде поставил и работает как надо, но в одном месте не могу поставить, либо не компилится, либо ошибки в логах. Что с этим делать?


Вот кусок кода в котором не могу изменить цвет чата:
Код:
public handleSwitch(id, menu, item) {
if( item == MENU_EXIT ) {
menu_display(id, g_switchmenu)
return PLUGIN_HANDLED;
}

g_switchVotes[item]++
switch ( item ) {
case 0: client_print(id, 3, "%s Вы проголосовали за: Остаться", PREFIX)
case 1: client_print(id, 3, "%s Вы проголосовали за: Сменить", PREFIX)
}
return PLUGIN_CONTINUE
}

public declareSwitch(recvParam[], prevTaskId) {
new taskId = scanForTaskID()

if ( g_switchVotes[0] > g_switchVotes[1] ) {
client_print(0, 3, "%s %L ---> %L.", PREFIX, LANG_PLAYER, "KNIFE_MENU_RESULT", LANG_PLAYER, "KNIFE_MENU_STAY")
g_Twon = false
set_task(3.0, "SettingsAfter", taskId)
return PLUGIN_HANDLED
}
else
client_print(0, 3, "%s %L ---> %L.", PREFIX, LANG_PLAYER, "KNIFE_MENU_RESULT", LANG_PLAYER, "KNIFE_MENU_SWAP")

g_Twon = true

for ( new i = 1; i <= gMaxPlayers; i++ )
{
if ( is_user_connected(i) )
{
if ( cs_get_user_team(i) == CS_TEAM_CT )
cs_set_user_team(i, CS_TEAM_T)
else if ( cs_get_user_team(i) == CS_TEAM_T )
cs_set_user_team(i, CS_TEAM_CT)
}
}

set_task(3.0, "SettingsAfter", taskId)
return PLUGIN_CONTINUE
}


Вот как я делал:
Код:
public handleSwitch(id, menu, item) {
if( item == MENU_EXIT ) {
menu_display(id, g_switchmenu)
return PLUGIN_HANDLED;
}

g_switchVotes[item]++
switch ( item ) {
case 0: Color_print(id, "%s Вы проголосовали за: Остаться", PREFIX)
case 1: Color_print(id, "%s Вы проголосовали за: Сменить", PREFIX)
}
return PLUGIN_CONTINUE
}

public declareSwitch(recvParam[], prevTaskId) {
new taskId = scanForTaskID()

if ( g_switchVotes[0] > g_switchVotes[1] ) {
Color_print(0, "%s %L ---> %L.", PREFIX, LANG_PLAYER, "KNIFE_MENU_RESULT", LANG_PLAYER, "KNIFE_MENU_STAY")
g_Twon = false
set_task(3.0, "SettingsAfter", taskId)
return PLUGIN_HANDLED
}
else
Color_print(0, "%s %L ---> %L.", PREFIX, LANG_PLAYER, "KNIFE_MENU_RESULT", LANG_PLAYER, "KNIFE_MENU_SWAP")

g_Twon = true

for ( new i = 1; i <= gMaxPlayers; i++ )
{
if ( is_user_connected(i) )
{
if ( cs_get_user_team(i) == CS_TEAM_CT )
cs_set_user_team(i, CS_TEAM_T)
else if ( cs_get_user_team(i) == CS_TEAM_T )
cs_set_user_team(i, CS_TEAM_CT)
}
}

set_task(3.0, "SettingsAfter", taskId)
return PLUGIN_CONTINUE
}


Отредактировал: sana666, - 25.4.2015, 18:27


Звукозапись:
VK - vk.com/zvuk_off
TG - @zvuk_off
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя sana666
сообщение 26.4.2015, 8:33
Сообщение #2


Стаж: 12 лет
Город: Новосибирск

Сообщений: 235
Благодарностей: 39
Полезность: 29

так понимаю никто никогда не ставил color_print


Звукозапись:
VK - vk.com/zvuk_off
TG - @zvuk_off
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sana666
сообщение 26.4.2015, 10:35
Сообщение #3


Стаж: 12 лет
Город: Новосибирск

Сообщений: 235
Благодарностей: 39
Полезность: 29

Проблема решилась.
Вместо стока:

Color_print
Код:
stock Color_Print(const id, const input[], any:...)
{
new count = 1, players[32], i
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if(id)players[0] = id; else get_players(players, count, "ch")
{
for(i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}


Использовавал:
ColorPrint.inc
Код:
#if defined _colorprint_included
#endinput
#endif
#define _colorprint_included

stock ColorPrint( iReceiver, const szRawMessage[ ], any:... ) {
static iMsgSayText = 0
if( !iMsgSayText )
iMsgSayText = get_user_msgid( "SayText" )

new szMessage[192], iPlayers[32], iPlayersNum = 1, iPlayer
vformat( szMessage, charsmax(szMessage) - 1, szRawMessage, 3 )
replace_all( szMessage, charsmax(szMessage) - 1, "!y", "^1" )
replace_all( szMessage, charsmax(szMessage) - 1, "!t", "^3" )
replace_all( szMessage, charsmax(szMessage) - 1, "!g", "^4" )
if ( szMessage[0] != '^1' || szMessage[0] != '^3' || szMessage[0] != '^4' )
format( szMessage, charsmax(szMessage) - 1, "^1%s", szMessage ) // we must set initial default color if it is not provided explicitly

if ( iReceiver )
iPlayers[0] = iReceiver
else {
get_players( iPlayers, iPlayersNum, "ch" ) // skip bots and HLTV
if ( !iPlayersNum )
return // don't print useless message
}

for ( new i = 0 ; i < iPlayersNum ; i++ ) {
iPlayer = iPlayers[i]
if ( !is_user_connected(iPlayer) )
continue

message_begin( MSG_ONE_UNRELIABLE, iMsgSayText, _, iPlayer )
write_byte(iPlayer) // use target player as sender to see colors at all (and his own team color for ^3)
write_string(szMessage)
message_end()
}

/*
Function for color chat by Safety1st.
By default it prints in normal color. ML compatible. It has basic functionality.
Known limitations:
- for team color: each player will see the color of his own team, e.g. there is no support to send the same team color for all players.
- for messages to all it uses only one language for all players (that's why it is recommended to use LANG_SERVER for ML instead of LANG_PLAYER)

Colors: sma ML
normal : ^1 !y
team : ^3 !t
green : ^4 !g

Sample:
ColorPrint( 0, "Normal color ^4green color" )
ColorPrint( id, "^3Team color ^1normal color" )

Credits:
used code by xPaw & Exolent[jNr] from 'AMXX Gag' plugin
used code by Alka from 'Voteban' plugin
*/
}


Отредактировал: sana666, - 26.4.2015, 10:36


Звукозапись:
VK - vk.com/zvuk_off
TG - @zvuk_off
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: