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

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

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

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

2 страниц V   1 2

Как вшить colorchat в любой плагин?

Simbo
сообщение 11.9.2012, 14:50
Сообщение #1
Стаж: 13 лет

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

Допустим хочу вшить colorchat в timeleft, как это сделать?
Timeleft
/* AMX Mod X
* TimeLeft Plugin
*
* by the AMX Mod X Development Team
* originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/

#include <amxmodx>

new g_TimeSet[32][2]
new g_LastTime
new g_CountDown
new g_Switch

public plugin_init()
{
register_plugin("TimeLeft", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("timeleft.txt")
register_cvar("amx_time_voice", "1")
register_srvcmd("amx_time_display", "setDisplaying")
register_cvar("amx_timeleft", "00:00", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
register_clcmd("say timeleft", "sayTimeLeft", 0, "- displays timeleft")
register_clcmd("say thetime", "sayTheTime", 0, "- displays current time")

set_task(0.8, "timeRemain", 8648458, "", 0, "b")
}

public sayTheTime(id)
{
if (get_cvar_num("amx_time_voice"))
{
new mhours[6], mmins[6], whours[32], wmins[32], wpm[6]

get_time("%H", mhours, 5)
get_time("%M", mmins, 5)

new mins = str_to_num(mmins)
new hrs = str_to_num(mhours)

if (mins)
num_to_word(mins, wmins, 31)
else
wmins[0] = 0

if (hrs < 12)
wpm = "am "
else
{
if (hrs > 12) hrs -= 12
wpm = "pm "
}

if (hrs)
num_to_word(hrs, whours, 31)
else
whours = "twelve "

client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm)
}

new ctime[64]

get_time("%m/%d/%Y - %H:%M:%S", ctime, 63)
client_print(0, print_chat, "%L: %s", LANG_PLAYER, "THE_TIME", ctime)

return PLUGIN_CONTINUE
}

public sayTimeLeft(id)
{
if (get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()

if (get_cvar_num("amx_time_voice"))
{
new svoice[128]
setTimeVoice(svoice, 127, 0, a)
client_cmd(id, "%s", svoice)
}
client_print(0, print_chat, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60), (a % 60))
}
else
client_print(0, print_chat, "%L", LANG_PLAYER, "NO_T_LIMIT")

return PLUGIN_CONTINUE
}

setTimeText(text[], len, tmlf, id)
{
new secs = tmlf % 60
new mins = tmlf / 60

if (secs == 0)
format(text, len, "%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE")
else if (mins == 0)
format(text, len, "%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
else
format(text, len, "%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
}

setTimeVoice(text[], len, flags, tmlf)
{
new temp[7][32]
new secs = tmlf % 60
new mins = tmlf / 60

for (new a = 0;a < 7;++a)
temp[a][0] = 0

if (secs > 0)
{
num_to_word(secs, temp[4], 31)

if (!(flags & 8))
temp[5] = "seconds " /* there is no "second" in default hl */
}

if (mins > 59)
{
new hours = mins / 60

num_to_word(hours, temp[0], 31)

if (!(flags & 8))
temp[1] = "hours "

mins = mins % 60
}

if (mins > 0)
{
num_to_word(mins, temp[2], 31)

if (!(flags & 8))
temp[3] = "minutes "
}

if (!(flags & 4))
temp[6] = "remaining "

return format(text, len, "spk ^"vox/%s%s%s%s%s%s%s^"", temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6])
}

findDispFormat(time)
{
for (new i = 0; g_TimeSet[i][0]; ++i)
{
if (g_TimeSet[i][1] & 16)
{
if (g_TimeSet[i][0] > time)
{
if (!g_Switch)
{
g_CountDown = g_Switch = time
remove_task(8648458)
set_task(1.0, "timeRemain", 34543, "", 0, "b")
}

return i
}
}
else if (g_TimeSet[i][0] == time)
{
return i
}
}

return -1
}

public setDisplaying()
{
new arg[32], flags[32], num[32]
new argc = read_argc() - 1
new i = 0

while (i < argc && i < 32)
{
read_argv(i + 1, arg, 31)
parse(arg, flags, 31, num, 31)

g_TimeSet[i][0] = str_to_num(num)
g_TimeSet[i][1] = read_flags(flags)

i++
}
g_TimeSet[i][0] = 0

return PLUGIN_HANDLED
}

public timeRemain(param[])
{
new gmtm = get_timeleft()
new tmlf = g_Switch ? --g_CountDown : gmtm
new stimel[12]

format(stimel, 11, "%02d:%02d", gmtm / 60, gmtm % 60)
set_cvar_string("amx_timeleft", stimel)

if (g_Switch && gmtm > g_Switch)
{
remove_task(34543)
g_Switch = 0
set_task(0.8, "timeRemain", 8648458, "", 0, "b")

return
}

if (tmlf > 0 && g_LastTime != tmlf)
{
g_LastTime = tmlf
new tm_set = findDispFormat(tmlf)

if (tm_set != -1)
{
new flags = g_TimeSet[tm_set][1]
new arg[128]

if (flags & 1)
{
new players[32], pnum

get_players(players, pnum, "c")

for (new i = 0; i < pnum; i++)
{
setTimeText(arg, 127, tmlf, players[i])

if (flags & 16)
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, -1)
else
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, -1)

show_hudmessage(players[i], "%s", arg)
}
}

if (flags & 2)
{
setTimeVoice(arg, 127, flags, tmlf)
client_cmd(0, "%s", arg)
}
}
}
}

Colorchat
/* Fun functions
*
* by Numb
*
* This file is provided as is (no warranties).
*/

#if defined _colorchat_included
#endinput
#endif
#define _colorchat_included

enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}

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

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
new message[256];

switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}

vformat(message[1], 251, msg, 4);

// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';

new team, ColorChange, index, MSG_Type;

if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}

team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);

ShowColorMessage(index, MSG_Type, message);

if(ColorChange)
{
Team_Info(index, MSG_Type, TeamName[team]);
}
}

ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}

Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();

return 1;
}

ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}

return 0;
}

FindPlayer()
{
new i = -1;

while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}

return -1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
cah9
сообщение 11.9.2012, 15:10
Сообщение #2
Стаж: 13 лет

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

Всмысле цветные сообщения сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 11.9.2012, 15:22
Сообщение #3
Стаж: 13 лет

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

Именно=)
Что бы просто в txt вставлять !g и было цветное сообщение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 11.9.2012, 15:31
Сообщение #4
Стаж: 56 лет


Благодарностей:

http://www.amx-x.ru/viewtopic.php?f=9&t=4566
Перейти в начало страницы     
Поблагодарили 1 раз
   + Цитировать сообщение
Simbo
сообщение 11.9.2012, 15:53
Сообщение #5
Стаж: 13 лет

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

Хотите сказать заменив
Код
client_print(0, print_chat, "%L:   %s", LANG_PLAYER, "THE_TIME", ctime)

на
Код
PrintChatColor(id, PRINT_COLOR_RED, "%L":   %s", LANG_PLAYER, "THE_TIME", ctime)

у меня будут выводиться цветные сообщения?

Отредактировал: Simbo, - 11.9.2012, 15:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 11.9.2012, 15:55
Сообщение #6


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Цитата(Simbo @ 11.9.2012, 15:53) *
Хотите сказать заменив
Код
client_print(0, print_chat, "%L:   %s", LANG_PLAYER, "THE_TIME", ctime)

на
Код
PrintChatColor(id, PRINT_COLOR_RED, "%L":   %s", LANG_PLAYER, "THE_TIME", ctime)

у меня будут выводиться цветные сообщения?

Инклюд при компиляции не забывай!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 11.9.2012, 16:05
Сообщение #7
Стаж: 13 лет

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

Скинте инклюд с того сайта, а то не регает, мыло занято...

Отредактировал: Simbo, - 11.9.2012, 16:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя knix
сообщение 11.9.2012, 16:21
Сообщение #8


Стаж: 14 лет

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

про сток не забывайте?!!

Отредактировал: knix, - 11.9.2012, 16:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 11.9.2012, 16:22
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Цитата(Simbo @ 11.9.2012, 17:05) *
Скинте инклюд с того сайта, а то не регает, мыло занято...


Подожди ща бекдур запихаю...Не уж то на гугле забанили????

Отредактировал: f1nik, - 11.9.2012, 16:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 11.9.2012, 16:40
Сообщение #10
Стаж: 56 лет


Благодарностей:

http://rghost.ru/40308547
Чтобы не было больше разных вопросов, напишу здесь малую инструкцию.
Simbo, Да будут выводиться, если хочешь чтобы какое нибудь слово было зеленым, перед ним поставь !g(в txt файле при наличии инклуда и функции про которую ты спрашивал), и будет выводиться разными цветами сообщения, и будет мир во всем мире.

Отредактировал: underwoker, - 11.9.2012, 16:40
Перейти в начало страницы     
Поблагодарили 1 раз
   +
Simbo
сообщение 11.9.2012, 19:02
Сообщение #11
Стаж: 13 лет

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

Ошибка на 58 строке...

Скрытый текст
#include <amxmodx>
#include <WPMGPrintChatColor>

new g_TimeSet[32][2]
new g_LastTime
new g_CountDown
new g_Switch

public plugin_init()
{
register_plugin("TimeLeft", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("timeleft.txt")
register_cvar("amx_time_voice", "1")
register_srvcmd("amx_time_display", "setDisplaying")
register_cvar("amx_timeleft", "00:00", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
register_clcmd("say timeleft", "sayTimeLeft", 0, "- displays timeleft")
register_clcmd("say thetime", "sayTheTime", 0, "- displays current time")

set_task(0.8, "timeRemain", 8648458, "", 0, "b")
}

public sayTheTime(id)
{
if (get_cvar_num("amx_time_voice"))
{
new mhours[6], mmins[6], whours[32], wmins[32], wpm[6]

get_time("%H", mhours, 5)
get_time("%M", mmins, 5)

new mins = str_to_num(mmins)
new hrs = str_to_num(mhours)

if (mins)
num_to_word(mins, wmins, 31)
else
wmins[0] = 0

if (hrs < 12)
wpm = "am "
else
{
if (hrs > 12) hrs -= 12
wpm = "pm "
}

if (hrs)
num_to_word(hrs, whours, 31)
else
whours = "twelve "

client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm)
}

new ctime[64]

get_time("%m/%d/%Y - %H:%M:%S", ctime, 63)
PrintChatColor(0, PRINT_COLOR_RED, "%L": %s", LANG_PLAYER, "THE_TIME", ctime)

return PLUGIN_CONTINUE
}

public sayTimeLeft(id)
{
if (get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()

if (get_cvar_num("amx_time_voice"))
{
new svoice[128]
setTimeVoice(svoice, 127, 0, a)
client_cmd(id, "%s", svoice)
}
PrintChatColor(0, PRINT_COLOR_RED, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60), (a % 60))
}
else
PrintChatColor(0,PRINT_COLOR_RED, "%L", LANG_PLAYER, "NO_T_LIMIT")

return PLUGIN_CONTINUE
}

setTimeText(text[], len, tmlf, id)
{
new secs = tmlf % 60
new mins = tmlf / 60

if (secs == 0)
format(text, len, "%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE")
else if (mins == 0)
format(text, len, "%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
else
format(text, len, "%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
}

setTimeVoice(text[], len, flags, tmlf)
{
new temp[7][32]
new secs = tmlf % 60
new mins = tmlf / 60

for (new a = 0;a < 7;++a)
temp[a][0] = 0

if (secs > 0)
{
num_to_word(secs, temp[4], 31)

if (!(flags & 8))
temp[5] = "seconds " /* there is no "second" in default hl */
}

if (mins > 59)
{
new hours = mins / 60

num_to_word(hours, temp[0], 31)

if (!(flags & 8))
temp[1] = "hours "

mins = mins % 60
}

if (mins > 0)
{
num_to_word(mins, temp[2], 31)

if (!(flags & 8))
temp[3] = "minutes "
}

if (!(flags & 4))
temp[6] = "remaining "

return format(text, len, "spk ^"vox/%s%s%s%s%s%s%s^"", temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6])
}

findDispFormat(time)
{
for (new i = 0; g_TimeSet[i][0]; ++i)
{
if (g_TimeSet[i][1] & 16)
{
if (g_TimeSet[i][0] > time)
{
if (!g_Switch)
{
g_CountDown = g_Switch = time
remove_task(8648458)
set_task(1.0, "timeRemain", 34543, "", 0, "b")
}

return i
}
}
else if (g_TimeSet[i][0] == time)
{
return i
}
}

return -1
}

public setDisplaying()
{
new arg[32], flags[32], num[32]
new argc = read_argc() - 1
new i = 0

while (i < argc && i < 32)
{
read_argv(i + 1, arg, 31)
parse(arg, flags, 31, num, 31)

g_TimeSet[i][0] = str_to_num(num)
g_TimeSet[i][1] = read_flags(flags)

i++
}
g_TimeSet[i][0] = 0

return PLUGIN_HANDLED
}

public timeRemain(param[])
{
new gmtm = get_timeleft()
new tmlf = g_Switch ? --g_CountDown : gmtm
new stimel[12]

format(stimel, 11, "%02d:%02d", gmtm / 60, gmtm % 60)
set_cvar_string("amx_timeleft", stimel)

if (g_Switch && gmtm > g_Switch)
{
remove_task(34543)
g_Switch = 0
set_task(0.8, "timeRemain", 8648458, "", 0, "b")

return
}

if (tmlf > 0 && g_LastTime != tmlf)
{
g_LastTime = tmlf
new tm_set = findDispFormat(tmlf)

if (tm_set != -1)
{
new flags = g_TimeSet[tm_set][1]
new arg[128]

if (flags & 1)
{
new players[32], pnum

get_players(players, pnum, "c")

for (new i = 0; i < pnum; i++)
{
setTimeText(arg, 127, tmlf, players[i])

if (flags & 16)
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, -1)
else
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, -1)

show_hudmessage(players[i], "%s", arg)
}
}

if (flags & 2)
{
setTimeVoice(arg, 127, flags, tmlf)
client_cmd(0, "%s", arg)
}
}
}
}

Код
PrintChatColor(0, PRINT_COLOR_RED, "%L":   %s", LANG_PLAYER, "THE_TIME", ctime)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 11.9.2012, 19:04
Сообщение #12


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Цитата(Simbo @ 11.9.2012, 20:02) *
Ошибка на 58 строке...

Скрытый текст
#include <amxmodx>
#include <WPMGPrintChatColor>

new g_TimeSet[32][2]
new g_LastTime
new g_CountDown
new g_Switch

public plugin_init()
{
register_plugin("TimeLeft", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("timeleft.txt")
register_cvar("amx_time_voice", "1")
register_srvcmd("amx_time_display", "setDisplaying")
register_cvar("amx_timeleft", "00:00", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
register_clcmd("say timeleft", "sayTimeLeft", 0, "- displays timeleft")
register_clcmd("say thetime", "sayTheTime", 0, "- displays current time")

set_task(0.8, "timeRemain", 8648458, "", 0, "b")
}

public sayTheTime(id)
{
if (get_cvar_num("amx_time_voice"))
{
new mhours[6], mmins[6], whours[32], wmins[32], wpm[6]

get_time("%H", mhours, 5)
get_time("%M", mmins, 5)

new mins = str_to_num(mmins)
new hrs = str_to_num(mhours)

if (mins)
num_to_word(mins, wmins, 31)
else
wmins[0] = 0

if (hrs < 12)
wpm = "am "
else
{
if (hrs > 12) hrs -= 12
wpm = "pm "
}

if (hrs)
num_to_word(hrs, whours, 31)
else
whours = "twelve "

client_cmd(id, "spk ^"fvox/time_is_now %s_period %s%s^"", whours, wmins, wpm)
}

new ctime[64]

get_time("%m/%d/%Y - %H:%M:%S", ctime, 63)
PrintChatColor(0, PRINT_COLOR_RED, "%L": %s", LANG_PLAYER, "THE_TIME", ctime)

return PLUGIN_CONTINUE
}

public sayTimeLeft(id)
{
if (get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()

if (get_cvar_num("amx_time_voice"))
{
new svoice[128]
setTimeVoice(svoice, 127, 0, a)
client_cmd(id, "%s", svoice)
}
PrintChatColor(0, PRINT_COLOR_RED, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60), (a % 60))
}
else
PrintChatColor(0,PRINT_COLOR_RED, "%L", LANG_PLAYER, "NO_T_LIMIT")

return PLUGIN_CONTINUE
}

setTimeText(text[], len, tmlf, id)
{
new secs = tmlf % 60
new mins = tmlf / 60

if (secs == 0)
format(text, len, "%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE")
else if (mins == 0)
format(text, len, "%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
else
format(text, len, "%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND")
}

setTimeVoice(text[], len, flags, tmlf)
{
new temp[7][32]
new secs = tmlf % 60
new mins = tmlf / 60

for (new a = 0;a < 7;++a)
temp[a][0] = 0

if (secs > 0)
{
num_to_word(secs, temp[4], 31)

if (!(flags & 8))
temp[5] = "seconds " /* there is no "second" in default hl */
}

if (mins > 59)
{
new hours = mins / 60

num_to_word(hours, temp[0], 31)

if (!(flags & 8))
temp[1] = "hours "

mins = mins % 60
}

if (mins > 0)
{
num_to_word(mins, temp[2], 31)

if (!(flags & 8))
temp[3] = "minutes "
}

if (!(flags & 4))
temp[6] = "remaining "

return format(text, len, "spk ^"vox/%s%s%s%s%s%s%s^"", temp[0], temp[1], temp[2], temp[3], temp[4], temp[5], temp[6])
}

findDispFormat(time)
{
for (new i = 0; g_TimeSet[i][0]; ++i)
{
if (g_TimeSet[i][1] & 16)
{
if (g_TimeSet[i][0] > time)
{
if (!g_Switch)
{
g_CountDown = g_Switch = time
remove_task(8648458)
set_task(1.0, "timeRemain", 34543, "", 0, "b")
}

return i
}
}
else if (g_TimeSet[i][0] == time)
{
return i
}
}

return -1
}

public setDisplaying()
{
new arg[32], flags[32], num[32]
new argc = read_argc() - 1
new i = 0

while (i < argc && i < 32)
{
read_argv(i + 1, arg, 31)
parse(arg, flags, 31, num, 31)

g_TimeSet[i][0] = str_to_num(num)
g_TimeSet[i][1] = read_flags(flags)

i++
}
g_TimeSet[i][0] = 0

return PLUGIN_HANDLED
}

public timeRemain(param[])
{
new gmtm = get_timeleft()
new tmlf = g_Switch ? --g_CountDown : gmtm
new stimel[12]

format(stimel, 11, "%02d:%02d", gmtm / 60, gmtm % 60)
set_cvar_string("amx_timeleft", stimel)

if (g_Switch && gmtm > g_Switch)
{
remove_task(34543)
g_Switch = 0
set_task(0.8, "timeRemain", 8648458, "", 0, "b")

return
}

if (tmlf > 0 && g_LastTime != tmlf)
{
g_LastTime = tmlf
new tm_set = findDispFormat(tmlf)

if (tm_set != -1)
{
new flags = g_TimeSet[tm_set][1]
new arg[128]

if (flags & 1)
{
new players[32], pnum

get_players(players, pnum, "c")

for (new i = 0; i < pnum; i++)
{
setTimeText(arg, 127, tmlf, players[i])

if (flags & 16)
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, -1)
else
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, -1)

show_hudmessage(players[i], "%s", arg)
}
}

if (flags & 2)
{
setTimeVoice(arg, 127, flags, tmlf)
client_cmd(0, "%s", arg)
}
}
}
}

Код
PrintChatColor(0, PRINT_COLOR_RED, "%L":   %s", LANG_PLAYER, "THE_TIME", ctime)


Во первых какая ошибка?... во вторых где исход инклюда колорчата... тут телепатов нет, или в отпуске...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 11.9.2012, 19:10
Сообщение #13
Стаж: 13 лет

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

Скрытый текст
#if defined WPMGPrintChatColorIncluded
#endinput
#endif

#define WPMGPrintChatColorIncluded

#include <cstrike>

// Максимальное количество %L в сообщении
#define MAX_LANG_ARGS 5

// Цвета сообщений
enum
{
PRINT_COLOR_GREY, // Серый
PRINT_COLOR_RED, // Красный
PRINT_COLOR_BLUE, // Синий
PRINT_COLOR_PLAYERTEAM // Цвет команды игрока которому мы отсылаем или цвет команды определённого игрока (если PRINT_COLOR_PLAYERTEAM + id)
};

// Имена команд
static const g_aszTeamNames[][] =
{
"UNASSIGNED",
"TERRORIST",
"CT",
"SPECTATOR"
};

stock PrintChatColor(pReceiver, iColor = PRINT_COLOR_PLAYERTEAM, const szMessage[], any:...)
{
// Сообщение
new szBuffer[256];

// Количество аргументов
new iArgs = numargs();

// Отсылаем одному игроку
if (pReceiver)
{
// Заменяем все LANG_PLAYER, на ID получателя
for (new iArg = 3; iArg < iArgs; iArg++)
{
// Если аргумент не равен LANG_PLAYER идём дальше
if (getarg(iArg) != LANG_PLAYER)
continue;

// Меняем численное значение аргумента
setarg(iArg, _, pReceiver);
}

// Форматируем сообщение
vformat(szBuffer, 255, szMessage, 4);

// Заменяем !y, !t, !g на цвета
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}

// Если цвет PLAYERTEAM
if (iColor >= PRINT_COLOR_PLAYERTEAM)
// Отсылаем сообщение игроку, за отправителя берём либо получателя, либо указанного игрока
UTIL_SayText(MSG_ONE, _, pReceiver, (iColor > PRINT_COLOR_PLAYERTEAM) ? iColor - PRINT_COLOR_PLAYERTEAM : pReceiver, szBuffer);
else
{
// Получаем команду получателя
new iTeam = _:cs_get_user_team(pReceiver);

// Если команда равна цвету сразу отслылаем сообщение
if (iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer);
else
{
// Меняем команду (для цвета)
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iColor]);
// Отсылаем сообщение
UTIL_SayText(MSG_ONE, _, pReceiver, pReceiver, szBuffer);
// Возвращаем команду
UTIL_TeamInfo(MSG_ONE, _, pReceiver, pReceiver, g_aszTeamNames[iTeam]);
}
}
}
// Отсылаем всем
else
{
// Массив для аргументов
new aiChangeArgs[MAX_LANG_ARGS];
// Количество аргументов, текущий аргумент
new iChangeArgs, iArg;

// Записываем все аргументы содержащие LANG_PLAYER
for (iArg = 3; iArg < iArgs; iArg++)
{
// Если аргумент не равен LANG_PLAYER идём дальше
if (getarg(iArg) != LANG_PLAYER)
continue;

// Записываем в массив
aiChangeArgs[iChangeArgs++] = iArg;

// Если достигнут максимум выходим из цикла
if (iChangeArgs == MAX_LANG_ARGS)
break;
}

// Массив из игроков
new apPlayers[32];
// Всего игроков
new iPlayers;
// Последний игрок
new pPlayer;

// Получаем игроков
get_players(apPlayers, iPlayers);

// Делаем цикл из игроков
for (new i = 0; i < iPlayers; i++)
{
// Сохраняем последнего игрока
pPlayer = apPlayers[i];

// Меняем аргументы LANG_PLAYER на ID игрока
for (iArg = 0; iArg < iChangeArgs; iArg++)
setarg(aiChangeArgs[iArg], _, pPlayer);

// Форматируем сообщение
vformat(szBuffer, 255, szMessage, 4);

// Заменяем !y, !t, !g на цвета
while (replace(szBuffer, 255, "!y", "^1")) {}
while (replace(szBuffer, 255, "!t", "^3")) {}
while (replace(szBuffer, 255, "!g", "^4")) {}

// Если цвет PLAYERTEAM
if (iColor >= PRINT_COLOR_PLAYERTEAM)
// Отсылаем сообщение игроку, за отправителя берём либо получателя, либо указанного игрока
UTIL_SayText(MSG_ONE, _, pPlayer, (iColor > PRINT_COLOR_PLAYERTEAM) ? iColor - PRINT_COLOR_PLAYERTEAM : pPlayer, szBuffer);
else
{
// Получаем команду получателя
new iTeam = _:cs_get_user_team(pPlayer);

// Если команда равна цвету сразу отслылаем сообщение
if (iTeam % 3 == iColor)
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer);
else
{
// Меняем команду (для цвета)
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iColor]);
// Отсылаем сообщение
UTIL_SayText(MSG_ONE, _, pPlayer, pPlayer, szBuffer);
// Возвращаем команду
UTIL_TeamInfo(MSG_ONE, _, pPlayer, pPlayer, g_aszTeamNames[iTeam]);
}
}
}
}
}

// Утилита отсылки SayText
stock UTIL_SayText(iDest, const vecOrigin[3] = {0, 0, 0}, pEntity, pSender, const szMessage[], const szArg1[] = "", const szArg2[] = "")
{
// Получаем ID сообщения SayText
static msgSayText;

if (!msgSayText)
msgSayText = get_user_msgid("SayText");

// Отсылаем SayText
message_begin(iDest, msgSayText, vecOrigin, pEntity);
write_byte(pSender);
write_string(szMessage);
if (szArg1[0])
{
write_string(szArg1);

if (szArg2[0])
write_string(szArg2);
}
message_end();
}

// Утилита отсылки TeamInfo
stock UTIL_TeamInfo(iDest, const vecOrigin[3] = {0, 0, 0}, pEntity, pPlayer, const szTeamName[])
{
// Получаем ID сообщения TeamInfo
static msgTeamInfo;

if (!msgTeamInfo)
msgTeamInfo = get_user_msgid("TeamInfo");

// Отсылаем TeamInfo
message_begin(iDest, msgTeamInfo, vecOrigin, pEntity);
write_byte(pPlayer);
write_string(szTeamName);
message_end();
}

Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cah9
сообщение 12.9.2012, 7:24
Сообщение #14
Стаж: 13 лет

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

http://amx-x.ru/viewtopic.php?f=9&t=85
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя edge
сообщение 12.9.2012, 13:06
Сообщение #15


Стаж: 14 лет

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

Та же ошибка, не компилится...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
arsenkaa
сообщение 12.9.2012, 13:07
Сообщение #16
Стаж: 13 лет

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

Цитата(edge @ 12.9.2012, 14:06) *
Та же ошибка, не компилится...

Модуль вставь вверху, вместо colorchat, chatcolor.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя edge
сообщение 12.9.2012, 13:24
Сообщение #17


Стаж: 14 лет

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

arsenkaa,
Щито ?! Подробней...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
arsenkaa
сообщение 12.9.2012, 15:01
Сообщение #18
Стаж: 13 лет

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

Цитата(edge @ 12.9.2012, 14:24) *
arsenkaa,
Щито ?! Подробней...

#include <chatcolor> вверх вставь и не забудь скачать chatcolor.inc
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя edge
сообщение 12.9.2012, 17:38
Сообщение #19


Стаж: 14 лет

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

arsenkaa,
Спасибо капитан !
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
arsenkaa
сообщение 12.9.2012, 17:49
Сообщение #20
Стаж: 13 лет

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

Цитата(edge @ 12.9.2012, 17:38) *
arsenkaa,
Спасибо капитан !

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