Compare commits

...

6 Commits

16 changed files with 1891 additions and 1759 deletions

View File

@ -83,18 +83,8 @@ public:
inline bool IsBot() inline bool IsBot()
{ {
if ((pEdict->v.flags & FL_FAKECLIENT) == FL_FAKECLIENT)
{
return true;
}
const char *auth = GETPLAYERAUTHID(pEdict); const char *auth = GETPLAYERAUTHID(pEdict);
if (auth && (strcmp(auth, "BOT") == 0)) return auth && !strcmp(auth, "BOT");
{
return true;
}
return false;
} }
inline bool IsAlive() inline bool IsAlive()

View File

@ -37,18 +37,38 @@ amx_show_activity 2
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600 // Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600 amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600
// Center typed colored messages (last parameter is a color in RRRGGGBBB format) // Center typed colored info messages (last parameter is a color in RRRGGGBBB format)
// //
// Default values: "Welcome to %hostname%" "000255100" // Default values: "Welcome to %hostname%" "000255100"
// "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255" // "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100" amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255" amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"
// Frequency in seconds of colored messages // Frequency in seconds of info messages
// //
// Default value: 180 // Default value: 180
amx_freq_imessage 180 amx_freq_imessage 180
// X position on the screen for info messages
//
// Default value: -1.0
amx_imessage_x_pos -1.0
// Y position on the screen for info messages
//
// Default value: 0.2
amx_imessage_y_pos 0.2
// Hold time for info messages
//
// Default value: 12.0
amx_imessage_holdtime 12.0
// Set to 1 if you want to show info messages only to dead clients
//
// Default value: 0
amx_imessage_only_dead 0
// Ban times for the main ban menu (amx_banmenu) // Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban. // Use 0 for permanent ban.
// Default values: 0 5 10 15 30 45 60 // Default values: 0 5 10 15 30 45 60
@ -181,13 +201,3 @@ amx_debug 1
// //
// Default value: "" // Default value: ""
amx_mldebug "" amx_mldebug ""
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -37,18 +37,38 @@ amx_show_activity 2
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600 // Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600 amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600
// Center typed colored messages (last parameter is a color in RRRGGGBBB format) // Center typed colored info messages (last parameter is a color in RRRGGGBBB format)
// //
// Default values: "Welcome to %hostname%" "000255100" // Default values: "Welcome to %hostname%" "000255100"
// "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255" // "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100" amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255" amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"
// Frequency in seconds of colored messages // Frequency in seconds of info messages
// //
// Default value: 180 // Default value: 180
amx_freq_imessage 180 amx_freq_imessage 180
// X position on the screen for info messages
//
// Default value: -1.0
amx_imessage_x_pos -1.0
// Y position on the screen for info messages
//
// Default value: 0.2
amx_imessage_y_pos 0.2
// Hold time for info messages
//
// Default value: 12.0
amx_imessage_holdtime 12.0
// Set to 1 if you want to show info messages only to dead clients
//
// Default value: 0
amx_imessage_only_dead 0
// Ban times for the main ban menu (amx_banmenu) // Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban // Use 0 for permanent ban
// Default values: 0 5 10 15 30 45 60 // Default values: 0 5 10 15 30 45 60
@ -220,13 +240,3 @@ amx_statsx_freeze -2.0
// - // -
// Default value: 0 // Default value: 0
amx_restrmapsettings 0 amx_restrmapsettings 0
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -37,18 +37,38 @@ amx_show_activity 2
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600 // Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600 amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600
// Center typed colored messages (last parameter is a color in RRRGGGBBB format) // Center typed colored info messages (last parameter is a color in RRRGGGBBB format)
// //
// Default values: "Welcome to %hostname%" "000255100" // Default values: "Welcome to %hostname%" "000255100"
// "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255" // "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100" amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255" amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"
// Frequency in seconds of colored messages // Frequency in seconds of info messages
// //
// Default value: 180 // Default value: 180
amx_freq_imessage 180 amx_freq_imessage 180
// X position on the screen for info messages
//
// Default value: -1.0
amx_imessage_x_pos -1.0
// Y position on the screen for info messages
//
// Default value: 0.2
amx_imessage_y_pos 0.2
// Hold time for info messages
//
// Default value: 12.0
amx_imessage_holdtime 12.0
// Set to 1 if you want to show info messages only to dead clients
//
// Default value: 0
amx_imessage_only_dead 0
// Ban times for the main ban menu (amx_banmenu) // Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban. // Use 0 for permanent ban.
// Default values: 0 5 10 15 30 45 60 // Default values: 0 5 10 15 30 45 60
@ -218,14 +238,3 @@ amx_idle_ignore_immunity 1
// //
// Default value: 4 // Default value: 4
amx_unstuck_frequency 4 amx_unstuck_frequency 4
// Performance monitor
//
// If function executed more than amx_perflog_ms milliseconds
// print plugin and function name to current amxmodx log file.
//
// Time in milliseconds
// Default value: 1.0
//
amx_perflog_ms 1.0

View File

@ -232,6 +232,15 @@ namespace AMXX
*/ */
virtual const char *ValueToString(JS_Handle value) = 0; virtual const char *ValueToString(JS_Handle value) = 0;
/**
* @brief Gets a string data length.
*
* @param value JSON handle
*
* @return Length of string data
*/
virtual size_t ValueToStringLen(JS_Handle value) = 0;
/** /**
* @brief Gets a number. * @brief Gets a number.
* *
@ -277,6 +286,16 @@ namespace AMXX
*/ */
virtual const char *ArrayGetString(JS_Handle array, size_t index) = 0; virtual const char *ArrayGetString(JS_Handle array, size_t index) = 0;
/**
* @brief Gets string data length from the array.
*
* @param array JSON handle
* @param index Position in the array (starting from 0)
*
* @return Length of string data
*/
virtual size_t ArrayGetStringLen(JS_Handle array, size_t index) = 0;
/** /**
* @brief Gets a number from the array. * @brief Gets a number from the array.
* *
@ -468,6 +487,20 @@ namespace AMXX
*/ */
virtual const char *ObjectGetString(JS_Handle object, const char *name, bool dotfunc = false) = 0; virtual const char *ObjectGetString(JS_Handle object, const char *name, bool dotfunc = false) = 0;
/**
* @brief Gets string data length from the object.
*
* @note If dot notation is used some values may be inaccessible
* because valid names in JSON can contain dots.
*
* @param object JSON handle
* @param name Key name
* @param dotfunc True to use dot notation, false to not
*
* @return Length of string data
*/
virtual size_t ObjectGetStringLen(JS_Handle object, const char *name, bool dotfunc = false) = 0;
/** /**
* @brief Gets a number from the object. * @brief Gets a number from the object.
* *
@ -696,6 +729,15 @@ namespace AMXX
*/ */
virtual char *SerialToString(JS_Handle value, bool pretty) = 0; virtual char *SerialToString(JS_Handle value, bool pretty) = 0;
/**
* @brief Slashes should be escaped or not when serializing JSON.
*
* @note This function sets a global setting and is not thread safe.
*
* @param escape_slashes True to escape slashes, false to not
*/
virtual void EscapeSlashes(int escape_slashes) = 0;
/** /**
* @brief Frees serialized string. * @brief Frees serialized string.
* *

View File

@ -465,3 +465,8 @@ char *JSONMngr::SerialToString(JS_Handle value, bool pretty)
return (result) ? result : nullptr; return (result) ? result : nullptr;
} }
void JSONMngr::EscapeSlashes(int escape_slashes)
{
json_set_escape_slashes(escape_slashes);
}

View File

@ -69,6 +69,10 @@ class JSONMngr : public IJSONMngr
// Convert functions // Convert functions
const char *ValueToString(JS_Handle value) override; const char *ValueToString(JS_Handle value) override;
inline size_t ValueToStringLen(JS_Handle value) override
{
return json_value_get_string_len(m_Handles[value]->m_pValue);
}
inline double ValueToNum(JS_Handle value) override inline double ValueToNum(JS_Handle value) override
{ {
return json_value_get_number(m_Handles[value]->m_pValue); return json_value_get_number(m_Handles[value]->m_pValue);
@ -81,6 +85,10 @@ class JSONMngr : public IJSONMngr
// Wrappers for Array API // Wrappers for Array API
bool ArrayGetValue(JS_Handle array, size_t index, JS_Handle *handle) override; bool ArrayGetValue(JS_Handle array, size_t index, JS_Handle *handle) override;
const char *ArrayGetString(JS_Handle array, size_t index) override; const char *ArrayGetString(JS_Handle array, size_t index) override;
inline size_t ArrayGetStringLen(JS_Handle array, size_t index) override
{
return json_array_get_string_len(m_Handles[array]->m_pArray, index);
}
inline bool ArrayGetBool(JS_Handle array, size_t index) override inline bool ArrayGetBool(JS_Handle array, size_t index) override
{ {
return json_array_get_boolean(m_Handles[array]->m_pArray, index) == 1; return json_array_get_boolean(m_Handles[array]->m_pArray, index) == 1;
@ -142,6 +150,15 @@ class JSONMngr : public IJSONMngr
// Get functions // Get functions
bool ObjectGetValue(JS_Handle object, const char *name, JS_Handle *handle, bool dotfunc) override; bool ObjectGetValue(JS_Handle object, const char *name, JS_Handle *handle, bool dotfunc) override;
const char *ObjectGetString(JS_Handle object, const char *name, bool dotfunc) override; const char *ObjectGetString(JS_Handle object, const char *name, bool dotfunc) override;
inline size_t ObjectGetStringLen(JS_Handle object, const char *name, bool dotfunc) override
{
if (!dotfunc)
{
return json_object_get_string_len(m_Handles[object]->m_pObject, name);
}
return json_object_dotget_string_len(m_Handles[object]->m_pObject, name);
}
double ObjectGetNum(JS_Handle object, const char *name, bool dotfunc) override; double ObjectGetNum(JS_Handle object, const char *name, bool dotfunc) override;
bool ObjectGetBool(JS_Handle object, const char *name, bool dotfunc) override; bool ObjectGetBool(JS_Handle object, const char *name, bool dotfunc) override;
inline size_t ObjectGetCount(JS_Handle object) override inline size_t ObjectGetCount(JS_Handle object) override
@ -171,6 +188,7 @@ class JSONMngr : public IJSONMngr
bool SerialToBuffer(JS_Handle value, char *buffer, size_t size, bool pretty) override; bool SerialToBuffer(JS_Handle value, char *buffer, size_t size, bool pretty) override;
bool SerialToFile(JS_Handle value, const char *filepath, bool pretty) override; bool SerialToFile(JS_Handle value, const char *filepath, bool pretty) override;
char *SerialToString(JS_Handle value, bool pretty) override; char *SerialToString(JS_Handle value, bool pretty) override;
void EscapeSlashes(int escape_slashes) override;
inline void FreeString(char *string) override inline void FreeString(char *string) override
{ {
json_free_serialized_string(string); json_free_serialized_string(string);

View File

@ -231,6 +231,19 @@ static cell AMX_NATIVE_CALL amxx_json_get_number(AMX *amx, cell *params)
return static_cast<cell>(JsonMngr->ValueToNum(value)); return static_cast<cell>(JsonMngr->ValueToNum(value));
} }
//native json_get_string_len(const JSON:value);
static cell AMX_NATIVE_CALL amxx_json_get_string_len(AMX *amx, cell *params)
{
auto value = params[1];
if (!JsonMngr->IsValidHandle(value))
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON value! %d", value);
return 0;
}
return JsonMngr->ValueToStringLen(value);
}
//native Float:json_get_real(const JSON:value); //native Float:json_get_real(const JSON:value);
static cell AMX_NATIVE_CALL amxx_json_get_real(AMX *amx, cell *params) static cell AMX_NATIVE_CALL amxx_json_get_real(AMX *amx, cell *params)
{ {
@ -290,6 +303,19 @@ static cell AMX_NATIVE_CALL amxx_json_array_get_string(AMX *amx, cell *params)
return MF_SetAmxStringUTF8Char(amx, params[3], string, strlen(string), params[4]); return MF_SetAmxStringUTF8Char(amx, params[3], string, strlen(string), params[4]);
} }
//native json_array_get_string_len(const JSON:array, index);
static cell AMX_NATIVE_CALL amxx_json_array_get_string_len(AMX *amx, cell *params)
{
auto array = params[1];
if (!JsonMngr->IsValidHandle(array, Handle_Array))
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON array! %d", array);
return 0;
}
return JsonMngr->ArrayGetStringLen(array, params[2]);
}
//native json_array_get_number(const JSON:array, index); //native json_array_get_number(const JSON:array, index);
static cell AMX_NATIVE_CALL amxx_json_array_get_number(AMX *amx, cell *params) static cell AMX_NATIVE_CALL amxx_json_array_get_number(AMX *amx, cell *params)
{ {
@ -578,6 +604,22 @@ static cell AMX_NATIVE_CALL amxx_json_object_get_string(AMX *amx, cell *params)
return MF_SetAmxStringUTF8Char(amx, params[3], string, strlen(string), params[4]); return MF_SetAmxStringUTF8Char(amx, params[3], string, strlen(string), params[4]);
} }
//native json_object_get_string_len(const JSON:object, const name[], bool:dotfunc = false);
static cell AMX_NATIVE_CALL amxx_json_object_get_string_len(AMX *amx, cell *params)
{
auto object = params[1];
if (!JsonMngr->IsValidHandle(object, Handle_Object))
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON object! %d", object);
return 0;
}
int len;
auto name = MF_GetAmxString(amx, params[2], 0, &len);
return JsonMngr->ObjectGetStringLen(object, name, params[3] != 0);
}
//native json_object_get_number(const JSON:object, const name[], bool:dotfunc = false); //native json_object_get_number(const JSON:object, const name[], bool:dotfunc = false);
static cell AMX_NATIVE_CALL amxx_json_object_get_number(AMX *amx, cell *params) static cell AMX_NATIVE_CALL amxx_json_object_get_number(AMX *amx, cell *params)
{ {
@ -871,6 +913,13 @@ static cell AMX_NATIVE_CALL amxx_json_serial_to_file(AMX *amx, cell *params)
return JsonMngr->SerialToFile(value, path, params[3] != 0); return JsonMngr->SerialToFile(value, path, params[3] != 0);
} }
//native json_set_escape_slashes(bool:escape_slashes = true);
static cell AMX_NATIVE_CALL amxx_json_set_escape_slashes(AMX *amx, cell *params)
{
JsonMngr->EscapeSlashes(params[1] != 0);
return 1;
}
AMX_NATIVE_INFO JsonNatives[] = AMX_NATIVE_INFO JsonNatives[] =
{ {
{ "json_parse", amxx_json_parse }, { "json_parse", amxx_json_parse },
@ -888,11 +937,13 @@ AMX_NATIVE_INFO JsonNatives[] =
{ "json_deep_copy", amxx_json_deep_copy }, { "json_deep_copy", amxx_json_deep_copy },
{ "json_free", amxx_json_free }, { "json_free", amxx_json_free },
{ "json_get_string", amxx_json_get_string }, { "json_get_string", amxx_json_get_string },
{ "json_get_string_len", amxx_json_get_string_len },
{ "json_get_number", amxx_json_get_number }, { "json_get_number", amxx_json_get_number },
{ "json_get_real", amxx_json_get_real }, { "json_get_real", amxx_json_get_real },
{ "json_get_bool", amxx_json_get_bool }, { "json_get_bool", amxx_json_get_bool },
{ "json_array_get_value", amxx_json_array_get_value }, { "json_array_get_value", amxx_json_array_get_value },
{ "json_array_get_string", amxx_json_array_get_string }, { "json_array_get_string", amxx_json_array_get_string },
{ "json_array_get_string_len", amxx_json_array_get_string_len },
{ "json_array_get_count", amxx_json_array_get_count }, { "json_array_get_count", amxx_json_array_get_count },
{ "json_array_get_number", amxx_json_array_get_number }, { "json_array_get_number", amxx_json_array_get_number },
{ "json_array_get_real", amxx_json_array_get_real }, { "json_array_get_real", amxx_json_array_get_real },
@ -913,6 +964,7 @@ AMX_NATIVE_INFO JsonNatives[] =
{ "json_array_clear", amxx_json_array_clear }, { "json_array_clear", amxx_json_array_clear },
{ "json_object_get_value", amxx_json_object_get_value }, { "json_object_get_value", amxx_json_object_get_value },
{ "json_object_get_string", amxx_json_object_get_string }, { "json_object_get_string", amxx_json_object_get_string },
{ "json_object_get_string_len", amxx_json_object_get_string_len },
{ "json_object_get_number", amxx_json_object_get_number }, { "json_object_get_number", amxx_json_object_get_number },
{ "json_object_get_real", amxx_json_object_get_real }, { "json_object_get_real", amxx_json_object_get_real },
{ "json_object_get_bool", amxx_json_object_get_bool }, { "json_object_get_bool", amxx_json_object_get_bool },
@ -931,6 +983,7 @@ AMX_NATIVE_INFO JsonNatives[] =
{ "json_serial_size", amxx_json_serial_size }, { "json_serial_size", amxx_json_serial_size },
{ "json_serial_to_string", amxx_json_serial_to_string }, { "json_serial_to_string", amxx_json_serial_to_string },
{ "json_serial_to_file", amxx_json_serial_to_file }, { "json_serial_to_file", amxx_json_serial_to_file },
{ "json_set_escape_slashes", amxx_json_set_escape_slashes },
{ nullptr, nullptr } { nullptr, nullptr }
}; };

File diff suppressed because it is too large Load Diff

View File

@ -14,110 +14,133 @@
#include <amxmodx> #include <amxmodx>
#include <amxmisc> #include <amxmisc>
#define X_POS -1.0 const MAX_MSG_LEN = 384;
#define Y_POS 0.20 const TASK_MSG = 12345;
#define HOLD_TIME 12.0
new Array:g_Values enum _:MessageInfo
new Array:g_Messages {
new g_MessagesNum Message[MAX_MSG_LEN],
new g_Current R,
G,
B
}
new amx_freq_imessage; new Array:g_messages;
new g_messagesNum;
new g_hudObject;
new g_current;
new g_hostname[64];
new Float:g_amx_freq_imessage;
new Float:g_amx_imessage_x_pos;
new Float:g_amx_imessage_y_pos;
new Float:g_amx_imessage_holdtime;
new g_amx_imessage_only_dead;
public plugin_init() public plugin_init()
{ {
g_Messages=ArrayCreate(384); register_plugin("Info. Messages", AMXX_VERSION_STR, "AMXX Dev Team");
g_Values=ArrayCreate(3); register_srvcmd("amx_imessage", "setMessage", _, "<message> <color in RRRGGGBBB format>");
register_plugin("Info. Messages", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("imessage.txt")
register_dictionary("common.txt")
register_srvcmd("amx_imessage", "setMessage")
amx_freq_imessage=register_cvar("amx_freq_imessage", "10")
new lastinfo[8] register_dictionary("imessage.txt");
get_localinfo("lastinfomsg", lastinfo, charsmax(lastinfo)) register_dictionary("common.txt");
g_Current = str_to_num(lastinfo)
set_localinfo("lastinfomsg", "") g_messages = ArrayCreate(MessageInfo);
g_hudObject = CreateHudSyncObj();
bind_pcvar_num(create_cvar("amx_imessage_only_dead", "0", _, "Set to 1 to show info messages only to dead clients", true, 0.0, true, 1.0), g_amx_imessage_only_dead);
bind_pcvar_float(create_cvar("amx_freq_imessage", "180", _, "Frequency in seconds of info messages", true, 0.0), g_amx_freq_imessage);
bind_pcvar_float(create_cvar("amx_imessage_x_pos", "-1.0", _, "X position for info messages", true, -1.0, true, 1.0), g_amx_imessage_x_pos);
bind_pcvar_float(create_cvar("amx_imessage_y_pos", "0.2", _, "Y position for info messages", true, -1.0, true, 1.0), g_amx_imessage_y_pos);
bind_pcvar_float(create_cvar("amx_imessage_holdtime", "12.0", _, "Hold time for info messages", true, 0.0), g_amx_imessage_holdtime);
bind_pcvar_string(get_cvar_pointer("hostname"), g_hostname, charsmax(g_hostname));
new lastinfo[8];
get_localinfo("lastinfomsg", lastinfo, charsmax(lastinfo));
g_current = str_to_num(lastinfo);
set_localinfo("lastinfomsg", "");
} }
public infoMessage() public infoMessage()
{ {
if (g_Current >= g_MessagesNum)
g_Current = 0
// No messages, just get out of here // No messages, just get out of here
if (g_MessagesNum==0) if (!g_messagesNum)
{ {
return; return;
} }
new values[3]; // If the last message is reached, go back to the first one
new Message[384]; if (g_current >= g_messagesNum)
{
g_current = 0;
}
ArrayGetString(g_Messages, g_Current, Message, charsmax(Message)); static message[MessageInfo];
ArrayGetArray(g_Values, g_Current, values); ArrayGetArray(g_messages, g_current, message);
replace_stringex(message[Message], charsmax(message[Message]), "%hostname%", g_hostname);
new hostname[64]; set_hudmessage(message[R], message[G], message[B], g_amx_imessage_x_pos, g_amx_imessage_y_pos, 0, 0.5, g_amx_imessage_holdtime, 2.0, 2.0, -1);
get_cvar_string("hostname", hostname, charsmax(hostname)); if (g_amx_imessage_only_dead)
replace(Message, charsmax(Message), "%hostname%", hostname); {
new players[MAX_PLAYERS], pnum;
get_players_ex(players, pnum, GetPlayers_ExcludeAlive);
set_hudmessage(values[0], values[1], values[2], X_POS, Y_POS, 0, 0.5, HOLD_TIME, 2.0, 2.0, -1); for (new player, i; i < pnum; i++)
{
player = players[i];
show_hudmessage(0, "%s", Message); ShowSyncHudMsg(player, g_hudObject, message[Message]);
console_print(player, message[Message]);
}
}
else
{
ShowSyncHudMsg(0, g_hudObject, message[Message]);
console_print(0, message[Message]);
}
client_print(0, print_console, "%s", Message); g_current++;
++g_Current;
new Float:freq_im = get_pcvar_float(amx_freq_imessage); if (g_amx_freq_imessage > 0.0)
{
if (freq_im > 0.0) set_task(g_amx_freq_imessage, "infoMessage", TASK_MSG);
set_task(freq_im, "infoMessage", 12345); }
} }
public setMessage() public setMessage()
{ {
remove_task(TASK_MSG);
new Message[384]; static message[MessageInfo];
read_argv(1, message[Message], charsmax(message[Message]));
replace_string(message[Message], charsmax(message[Message]), "\n", "^n");
remove_task(12345) new fullcolor[10];
read_argv(1, Message, charsmax(Message)) read_argv(2, fullcolor, charsmax(fullcolor));
while (replace(Message, charsmax(Message), "\n", "^n")) {} message[B] = str_to_num(fullcolor[6]);
fullcolor[6] = 0;
new mycol[12] message[G] = str_to_num(fullcolor[3]);
new vals[3]; fullcolor[3] = 0;
read_argv(2, mycol, charsmax(mycol)) // RRRGGGBBB message[R] = str_to_num(fullcolor[0]);
vals[2] = str_to_num(mycol[6]) fullcolor[0] = 0;
mycol[6] = 0 g_messagesNum++;
vals[1] = str_to_num(mycol[3]) ArrayPushArray(g_messages, message);
mycol[3] = 0 if (g_amx_freq_imessage > 0.0)
vals[0] = str_to_num(mycol[0]) {
set_task(g_amx_freq_imessage, "infoMessage", TASK_MSG);
}
g_MessagesNum++ return PLUGIN_HANDLED;
new Float:freq_im = get_pcvar_float(amx_freq_imessage)
ArrayPushString(g_Messages, Message);
ArrayPushArray(g_Values, vals);
if (freq_im > 0.0)
set_task(freq_im, "infoMessage", 12345)
return PLUGIN_HANDLED
} }
public plugin_end() public plugin_end()
{ {
new lastinfo[8] ArrayDestroy(g_messages);
set_localinfo("lastinfomsg", fmt("%i", g_current));
num_to_str(g_Current, lastinfo, charsmax(lastinfo))
set_localinfo("lastinfomsg", lastinfo)
ArrayDestroy(g_Messages)
ArrayDestroy(g_Values)
} }

View File

@ -228,6 +228,16 @@ native bool:json_free(&JSON:handle);
*/ */
native json_get_string(const JSON:value, buffer[], maxlen); native json_get_string(const JSON:value, buffer[], maxlen);
/**
* Gets string data length.
*
* @param value JSON handle
*
* @return Length of string data
* @error If passed value is not a valid handle
*/
native json_get_string_len(const JSON:value);
/** /**
* Gets a number. * Gets a number.
* *
@ -284,6 +294,17 @@ native JSON:json_array_get_value(const JSON:array, index);
*/ */
native json_array_get_string(const JSON:array, index, buffer[], maxlen); native json_array_get_string(const JSON:array, index, buffer[], maxlen);
/**
* Gets string data length from the array.
*
* @param array Array handle
* @param index Position in the array (starting from 0)
*
* @return Length of string data from the array
* @error If passed handle is not a valid array
*/
native json_array_get_string_len(const JSON:array, index);
/** /**
* Gets a number from the array. * Gets a number from the array.
* *
@ -519,6 +540,21 @@ native JSON:json_object_get_value(const JSON:object, const name[], bool:dot_not
*/ */
native json_object_get_string(const JSON:object, const name[], buffer[], maxlen, bool:dot_not = false); native json_object_get_string(const JSON:object, const name[], buffer[], maxlen, bool:dot_not = false);
/**
* Gets string data length from the object.
*
* @note If dot notation is used some values may be inaccessible
* because valid names in JSON can contain dots.
*
* @param object Object handle
* @param name Key name
* @param dot_not True to use dot notation, false to not
*
* @return Length of string data from the object
* @error If passed handle is not a valid object
*/
native json_object_get_string_len(const JSON:object, const name[], bool:dot_not = false);
/** /**
* Gets a number from the object. * Gets a number from the object.
* *
@ -775,3 +811,13 @@ native json_serial_to_string(const JSON:value, buffer[], maxlen, bool:pretty = f
* @error If passed handle is not a valid value * @error If passed handle is not a valid value
*/ */
native bool:json_serial_to_file(const JSON:value, const file[], bool:pretty = false); native bool:json_serial_to_file(const JSON:value, const file[], bool:pretty = false);
/**
* Sets if slashes should be escaped or not when serializing JSON. By default slashes are escaped.
*
* @note This function sets a global setting and is not thread safe.
*
* @param escape_slashes True to escape slashes, false to not
*/
native json_set_escape_slashes(bool:escape_slashes = true);

View File

@ -9,15 +9,15 @@ ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banned BANNED = banned
REASON = reason REASON = reason
FOR_MIN = for %s min FOR_MIN = for %d min
PERM = permanently PERM = permanently
CLIENT_BANNED = Client "%s" banned CLIENT_BANNED = Client "%s" banned
ADMIN_SLAY_1 = ADMIN: slay %s ADMIN_SLAY_1 = ADMIN: slay %s
ADMIN_SLAY_2 = ADMIN %s: slay %s ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Client "%s" slayed CLIENT_SLAYED = Client "%n" slayed
ADMIN_SLAP_1 = ADMIN: slap %s with %d damage ADMIN_SLAP_1 = ADMIN: slap %s with %d damage
ADMIN_SLAP_2 = ADMIN %s: slap %s with %d damage ADMIN_SLAP_2 = ADMIN %s: slap %s with %d damage
CLIENT_SLAPED = Client "%s" slapped with %d damage CLIENT_SLAPPED = Client "%n" slapped with %d damage
MAP_NOT_FOUND = Map with that name not found or map is invalid MAP_NOT_FOUND = Map with that name not found or map is invalid
ADMIN_MAP_1 = ADMIN: changelevel %s ADMIN_MAP_1 = ADMIN: changelevel %s
ADMIN_MAP_2 = ADMIN %s: changelevel %s ADMIN_MAP_2 = ADMIN %s: changelevel %s
@ -74,6 +74,38 @@ ADMIN_EXTEND_2 = ADMIN %s: extend map for %d minutes
MAP_EXTENDED = Map "%s" has been extended for %d minutes MAP_EXTENDED = Map "%s" has been extended for %d minutes
ADMIN_MUST_TEMPBAN = You can only temporarily ban players, for up to %d minutes ADMIN_MUST_TEMPBAN = You can only temporarily ban players, for up to %d minutes
ADMIN_MUST_TEMPUNBAN = You can only unban players that you have recently banned ADMIN_MUST_TEMPUNBAN = You can only unban players that you have recently banned
AMX_KICK_SYNTAX = <name or #userid> [reason]
AMX_BAN_SYNTAX = <name or #userid> <minutes> [reason]
AMX_BANIP_SYNTAX = <name or #userid> <minutes> [reason]
AMX_ADDBAN_SYNTAX = <"authid" or ip> <minutes> [reason]
AMX_UNBAN_SYNTAX = <"authid" or ip>
AMX_SLAY_SYNTAX = <name or #userid>
AMX_SLAP_SYNTAX = <name or #userid> [power]
AMX_LEAVE_SYNTAX = <tag> [tag] [tag] [tag]
AMX_PAUSE_SYNTAX = - pause or unpause the game
AMX_WHO_SYNTAX = - displays who is on server
AMX_CVAR_SYNTAX = <cvar> [value]
AMX_XVAR_SYNTAX = <xvar> [value]
AMX_PLUGINS_SYNTAX = [starting entry]
AMX_MODULES_SYNTAX = - displays loaded modules
AMX_MAP_SYNTAX = <mapname>
AMX_EXTENDMAP_SYNTAX = <number of minutes> - extend map
AMX_CFG_SYNTAX = <filename>
AMX_NICK_SYNTAX = <name or #userid> <new nick>
AMX_LAST_SYNTAX = shows info about the last few disconnected clients
AMX_RCON_SYNTAX = <command line>
ADMIN_KICK_CON = Client "%n" kicked
ADMIN_CANNOT_BAN = Cannot ban %s
ADMIN_BAN_ONLY_RECENT = You may only ban recently disconnected clients. Use "amx_last" to view
ADMIN_IP_ADDED = IP %s added to ban list
ADMIN_AUTHID_ADDED = AuthID %s added to ban list
MODULE_RUNNING = running
MODULE_BAD_LOAD = bad load
MODULE_UNKNOWN = unknown
ADMIN_CFG_CON = Executing file %s
ADMIN_PAUSE_CON = Server PAUSED
ADMIN_UNPAUSE_CON = Server UNPAUSED
ADMIN_OLD_CONNS_SAVED = %d old connections saved
[de] [de]
ADMIN_KICK_1 = ADMIN: kickt %s ADMIN_KICK_1 = ADMIN: kickt %s
@ -91,10 +123,10 @@ PERM = für immer
CLIENT_BANNED = Spieler "%s" gebannt CLIENT_BANNED = Spieler "%s" gebannt
ADMIN_SLAY_1 = ADMIN: killt %s ADMIN_SLAY_1 = ADMIN: killt %s
ADMIN_SLAY_2 = ADMIN %s: killt %s ADMIN_SLAY_2 = ADMIN %s: killt %s
CLIENT_SLAYED = Spieler "%s" wurde gekillt CLIENT_SLAYED = Spieler "%n" wurde gekillt
ADMIN_SLAP_1 = ADMIN: schlägt %s mit %d Schaden ADMIN_SLAP_1 = ADMIN: schlägt %s mit %d Schaden
ADMIN_SLAP_2 = ADMIN %s: schlägt %s mit %d Schaden ADMIN_SLAP_2 = ADMIN %s: schlägt %s mit %d Schaden
CLIENT_SLAPED = Spieler "%s" wurde mit %d Schaden geschlagen CLIENT_SLAPPED = Spieler "%n" wurde mit %d Schaden geschlagen
MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulässig MAP_NOT_FOUND = Diese Map ist nicht vorhanden oder unzulässig
ADMIN_MAP_1 = ADMIN: wechselt zur Map %s ADMIN_MAP_1 = ADMIN: wechselt zur Map %s
ADMIN_MAP_2 = ADMIN %s: wechselt zur Map %s ADMIN_MAP_2 = ADMIN %s: wechselt zur Map %s
@ -126,8 +158,8 @@ PAUSED = pausiert
UNPAUSED = fortgesetzt UNPAUSED = fortgesetzt
UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt. UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt.
SERVER_PROC = Server führt %s aus SERVER_PROC = Server führt %s aus
PAUSING = pausiert den Server... PAUSING = Pausiere
UNPAUSING = setzt den Server fort... UNPAUSING = setze fort
PAUSE = Pause PAUSE = Pause
UNPAUSE = Fortsetzen UNPAUSE = Fortsetzen
COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet
@ -138,11 +170,11 @@ ACCESS = Berechtigung
TOTAL_NUM = Total %d TOTAL_NUM = Total %d
SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s") SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s")
SKIP_IMM = Überspringe "%s" (Immunität) SKIP_IMM = Überspringe "%s" (Immunität)
KICK_PL = Kicke "%s" KICK_PL = Kickt "%s"
YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt
KICKED_CLIENTS = %d Spieler gekickt KICKED_CLIENTS = Kickt %d clients
ADMIN_LEAVE_1 = ADMIN: Spieler ohne Berechtigung %s %s %s %s verlassen den Server! ADMIN_LEAVE_1 = ADMIN: erlaubt %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: Spieler ohne Berechtigung %s %s %s %s verlassen den Server! ADMIN_LEAVE_2 = ADMIN %s: erlaubt %s %s %s %s
ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s" ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s"
ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s" ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s"
CHANGED_NICK = Name von %s zu "%s" geändert CHANGED_NICK = Name von %s zu "%s" geändert
@ -161,15 +193,15 @@ ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banovan BANNED = banovan
REASON = razlog REASON = razlog
FOR_MIN = na %s min FOR_MIN = na %d min
PERM = za stalno PERM = za stalno
CLIENT_BANNED = Klijent "%s" je banovan CLIENT_BANNED = Klijent "%s" je banovan
ADMIN_SLAY_1 = ADMIN: slay %s ADMIN_SLAY_1 = ADMIN: slay %s
ADMIN_SLAY_2 = ADMIN %s: slay %s ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Klijent "%s" slayed CLIENT_SLAYED = Klijent "%n" slayed
ADMIN_SLAP_1 = ADMIN: samar %s with %d stete ADMIN_SLAP_1 = ADMIN: samar %s with %d stete
ADMIN_SLAP_2 = ADMIN %s: samar %s with %d stete ADMIN_SLAP_2 = ADMIN %s: samar %s with %d stete
CLIENT_SLAPED = Klijent "%s" je osamaren sa %d stete CLIENT_SLAPPED = Klijent "%n" je osamaren sa %d stete
MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca
ADMIN_MAP_1 = ADMIN: changelevel %s ADMIN_MAP_1 = ADMIN: changelevel %s
ADMIN_MAP_2 = ADMIN %s: changelevel %s ADMIN_MAP_2 = ADMIN %s: changelevel %s
@ -226,82 +258,79 @@ ADMIN_EXTEND_2 = ADMIN %s: produziti mapu za %d minuta
MAP_EXTENDED = Mapa "%s" je produzena za %d minuta MAP_EXTENDED = Mapa "%s" je produzena za %d minuta
[tr] [tr]
ADMIN_KICK_1 = ADMIN, %s kisisini atti ADMIN_KICK_1 = ADMIN: at %s
ADMIN_KICK_2 = ADMIN %s, %s kisisini atti ADMIN_KICK_2 = ADMIN %s: at %s
IP_REMOVED = Ip "%s" ban listesinden kaldirildi IP_REMOVED = Ip "%s" ban listesinden silindi
AUTHID_REMOVED = Authid "%s" ban listesinden kaldirildi AUTHID_REMOVED = Authid "%s" ban listesinden silindi
ADMIN_UNBAN_1 = ADMIN, %s kisisinin banini kaldirdi ADMIN_UNBAN_1 = ADMIN: ban kalkdi %s
ADMIN_UNBAN_2 = ADMIN %s, %s kisisinin banini kaldirdi ADMIN_UNBAN_2 = ADMIN %s: ban kalkdi %s
ADMIN_ADDBAN_1 = ADMIN, %s kisisini banladi ADMIN_ADDBAN_1 = ADMIN: banla %s
ADMIN_ADDBAN_2 = ADMIN %s, %s kisisini banladi ADMIN_ADDBAN_2 = ADMIN %s: banla %s
BANNED = banlandi BANNED = banlandi
REASON = neden REASON = Neden
FOR_MIN = %s dakika FOR_MIN = %d dakika ban
PERM = kalici olarak PERM = suresiz
CLIENT_BANNED = Kullanici "%s" banlandi CLIENT_BANNED = Oyuncu "%s" banlandi
ADMIN_SLAY_1 = ADMIN, %s kisisini oldurdu ADMIN_SLAY_1 = ADMIN: oldurdu %s
ADMIN_SLAY_2 = ADMIN %s, %s kisisini oldurdu ADMIN_SLAY_2 = ADMIN %s: oldurdu %s
CLIENT_SLAYED = Kullanici "%s" olduruldu CLIENT_SLAYED = Oyuncu "%n" olduruldu
ADMIN_SLAP_1 = ADMIN, %s kisisini %d hasarla tokatladi ADMIN_SLAP_1 = ADMIN: %s tokatla verilen zarar %d
ADMIN_SLAP_2 = ADMIN %s, %s kisini %d hasarla tokatladi ADMIN_SLAP_2 = ADMIN %s: %s tokatla verilen zarar %d
CLIENT_SLAPED = Kullanici "%s" %d zarar ile tokatlandi CLIENT_SLAPPED = Oyuncu "%n" tokatlandi %d zarar ile
MAP_NOT_FOUND = O isimde bir harita bulunamadi yada harita gecersizdir MAP_NOT_FOUND = Map ismi bulunamadi yada mevcud degildir
ADMIN_MAP_1 = ADMIN, haritayi %s olarak degistirdi ADMIN_MAP_1 = ADMIN: %s mapina degisdirdi
ADMIN_MAP_2 = ADMIN %s, haritayi %s olarak degistirdi ADMIN_MAP_2 = ADMIN %s: %s mapina degisdirdi
NO_MORE_CVARS = Rcon erisimi icin daha fazla cvar eklenemiyor NO_MORE_CVARS = Rcon'a daha cvar ekliyemiyorsunuz!
UNKNOWN_CVAR = Bilinmeyen cvar: %s UNKNOWN_CVAR = Bilinmeyen cvar: %s
UNKNOWN_XVAR = Bilinmeyen xvar: %s UNKNOWN_XVAR = Bilinmeyen xvar: %s
CVAR_NO_ACC = O cvara erisim hakkiniz yok CVAR_NO_ACC = O cvar'a giris hakkiniz yok
XVAR_NO_ACC = O xvara erisim hakkiniz yok XVAR_NO_ACC = O xvar'a giris hakkiniz yok
CVAR_IS = Cvar "%s" budur "%s" CVAR_IS = Cvar "%s" budur "%s"
XVAR_IS = Xvar "%s" budur "%s" XVAR_IS = Xvar "%s" budur "%s"
PROTECTED = KORUMALI PROTECTED = GUVENLI
SET_CVAR_TO = %s %s cvarini "%s" olarak degistirdi SET_CVAR_TO = %s cvar ayari %s onaylandi "%s"
SET_XVAR_TO = %s %s xvarini "%s" olarak degistirdi SET_XVAR_TO = %s xvar ayari %s onaylandi "%s"
CVAR_CHANGED = Cvar "%s" "%s" olarak degistirildi CVAR_CHANGED = Cvar "%s" degisimi "%s" tamamlandi
XVAR_CHANGED = Xvar "%s" "%s" olarak degistirildi XVAR_CHANGED = Xvar "%s" degisimi "%s" tamamlandi
LOADED_PLUGINS = Suanda yuklenen eklentiler LOADED_PLUGINS = Su anki yuklenen Plugin'ler
NAME = isim NAME = isim
VERSION = versiyon VERSION = versiyon
AUTHOR = yaratici AUTHOR = ureten
FILE = dosya FILE = dosya
STATUS = statu STATUS = durum
PLUGINS_RUN = %d eklenti, %d tanesi calisiyor PLUGINS_RUN = %d plugin, %d calisiyor
LOADED_MODULES = Suanda yuklenen moduller LOADED_MODULES = Su anki yuklenen module'ler
NUM_MODULES = %d modul NUM_MODULES = %d module'ler
FILE_NOT_FOUND = "%s" dosyasi bulunamadi FILE_NOT_FOUND = "%s" Dosya bulunamadi
ADMIN_CONF_1 = ADMIN, %s configini gerceklestirdi ADMIN_CONF_1 = ADMIN: %s Config dosyasi acildi
ADMIN_CONF_2 = ADMIN %s, %s configini gerceklestirdi ADMIN_CONF_2 = ADMIN %s: %s Config dosyasi acildi
PAUSED = durduruldu PAUSED = Gecici olarak durduruldu
UNPAUSED = devam ettirildi UNPAUSED = Tekrar baslatildi
UNABLE_PAUSE = Server oyunu durdurmak icin musait degildi. Serverde gercek oyuncular gerekli. UNABLE_PAUSE = Server gecici olarak durdurulamadi. Serverde gercek oyuncu gerek.
SERVER_PROC = Server devami %s SERVER_PROC = Server devami %s
PAUSING = durduruluyor PAUSING = Gecici olarak durduruldu
UNPAUSING = tekrar baslatiliyor UNPAUSING = Tekrar baslatildi
PAUSE = durdur PAUSE = durdur
UNPAUSE = tekrar baslat UNPAUSE = baslat
COM_SENT_SERVER = Komut satiri "%s" server konsoluna gonderildi COM_SENT_SERVER = Emir "%s" server consoluna gonderildi
CLIENTS_ON_SERVER = Serverdeki kullanicilar CLIENTS_ON_SERVER = Serverde olan oyuncular
IMMU = dokunulmazlik IMMU = dokunulmaz
RESERV = reservasyon RESERV = reservasyon
ACCESS = erisim ACCESS = giris
TOTAL_NUM = Toplam %d TOTAL_NUM = Tam %d
SKIP_MATCH = "%s" atlaniyor ("%s" eslesiyor) SKIP_MATCH = "%s" kullanilamiyor (benzeri ise "%s")
SKIP_IMM = "%s" atlaniyor (dokunulmazlik) SKIP_IMM = "%s" kullanilamiyor (dokunulmazlik)
KICK_PL = "%s" atiliyor KICK_PL = "%s" atin
YOU_DROPPED = Adminin sadece belirli kullanici gruplarini birakmasindan dolayi dusuruldunuz YOU_DROPPED = Sadece ozel gurupa mevcud oldugu icin atildiniz
KICKED_CLIENTS = %d kullanici atildi KICKED_CLIENTS = %d oyuncular atildi
ADMIN_LEAVE_1 = ADMIN, %s %s %s %s kisilerini birakti ADMIN_LEAVE_1 = ADMIN: %s %s %s %s gitdi
ADMIN_LEAVE_2 = ADMIN %s, %s %s %s %s kisilerini birakti ADMIN_LEAVE_2 = ADMIN %s: %s %s %s %s gitdi
ADMIN_NICK_1 = ADMIN, %s kisinin ismini "%s" olarak degistirdi ADMIN_NICK_1 = ADMIN: %s kisinin ismini buna degisdirdi "%s"
ADMIN_NICK_2 = ADMIN %s, %s kisinin ismini "%s" olarak degistirdi ADMIN_NICK_2 = ADMIN %s: %s kisinin ismini buna degisdirdi "%s"
CHANGED_NICK = %s kisinin ismi, "%s" olarak degistirildi CHANGED_NICK = %s kisinin nickini buna degisdirdi "%s"
ADMIN_EXTEND_1 = ADMIN, haritayi %d dakika uzatti ADMIN_EXTEND_1 = ADMIN: haritayi %d dakika uzatti
ADMIN_EXTEND_2 = ADMIN %s, haritayi %d dakika uzatti ADMIN_EXTEND_2 = ADMIN %s: haritayi %d dakika uzatti
MAP_EXTENDED = Harita "%s" %d dakika uzatildi MAP_EXTENDED = Harita "%s" %d dakika uzatildi
ADMIN_MUST_TEMPBAN = Oyunculari sadece gecici olarak banlayabilirsin, %d dakikaya kadar
ADMIN_MUST_TEMPUNBAN = Sadece yakinlarda banladigin oyuncularin banini kaldirabilirsin
[fr] [fr]
ADMIN_KICK_1 = ADMIN: kick %s ADMIN_KICK_1 = ADMIN: kick %s
@ -314,15 +343,15 @@ ADMIN_ADDBAN_1 = ADMIN: banni %s
ADMIN_ADDBAN_2 = ADMIN %s: banni %s ADMIN_ADDBAN_2 = ADMIN %s: banni %s
BANNED = a ete banni BANNED = a ete banni
REASON = raison REASON = raison
FOR_MIN = pour %s mn FOR_MIN = pour %d mn
PERM = a vie (permanent) PERM = a vie (permanent)
CLIENT_BANNED = Client "%s" a ete banni CLIENT_BANNED = Client "%s" a ete banni
ADMIN_SLAY_1 = ADMIN: foudroie %s ADMIN_SLAY_1 = ADMIN: foudroie %s
ADMIN_SLAY_2 = ADMIN %s: foudroie %s ADMIN_SLAY_2 = ADMIN %s: foudroie %s
CLIENT_SLAYED = Client "%s" a ete foudroye CLIENT_SLAYED = Client "%n" a ete foudroye
ADMIN_SLAP_1 = ADMIN: frappe %s avec %d points de degat ADMIN_SLAP_1 = ADMIN: frappe %s avec %d points de degat
ADMIN_SLAP_2 = ADMIN %s: frappe %s avec %d points de degat ADMIN_SLAP_2 = ADMIN %s: frappe %s avec %d points de degat
CLIENT_SLAPED = Client "%s" a ete frappe avec %d points de degat CLIENT_SLAPPED = Client "%n" a ete frappe avec %d points de degat
MAP_NOT_FOUND = La carte avec ce nom n'a pas ete trouvee, ou le nom n'est pas valide MAP_NOT_FOUND = La carte avec ce nom n'a pas ete trouvee, ou le nom n'est pas valide
ADMIN_MAP_1 = ADMIN: a change la carte pour %s ADMIN_MAP_1 = ADMIN: a change la carte pour %s
ADMIN_MAP_2 = ADMIN %s: a change la carte pour %s ADMIN_MAP_2 = ADMIN %s: a change la carte pour %s
@ -389,15 +418,15 @@ ADMIN_ADDBAN_1 = ADMIN: bannlys %ss
ADMIN_ADDBAN_2 = ADMIN %s: bannlys %ss ADMIN_ADDBAN_2 = ADMIN %s: bannlys %ss
BANNED = bannlyst BANNED = bannlyst
REASON = orsak REASON = orsak
FOR_MIN = i %s minuter FOR_MIN = i %d minuter
PERM = permanent PERM = permanent
CLIENT_BANNED = Klient "%s" bannlyst CLIENT_BANNED = Klient "%s" bannlyst
ADMIN_SLAY_1 = ADMIN: slakta %s ADMIN_SLAY_1 = ADMIN: slakta %s
ADMIN_SLAY_2 = ADMIN %s: slakta %s ADMIN_SLAY_2 = ADMIN %s: slakta %s
CLIENT_SLAYED = Klient "%s" slaktad CLIENT_SLAYED = Klient "%n" slaktad
ADMIN_SLAP_1 = ADMIN: smiska %s med %d skada ADMIN_SLAP_1 = ADMIN: smiska %s med %d skada
ADMIN_SLAP_2 = ADMIN %s: smiska %s med %d skada ADMIN_SLAP_2 = ADMIN %s: smiska %s med %d skada
CLIENT_SLAPED = Klient "%s" smiskad med %d skada CLIENT_SLAPPED = Klient "%n" smiskad med %d skada
MAP_NOT_FOUND = Kan inte hitta karta med det namnet eller felaktig karta MAP_NOT_FOUND = Kan inte hitta karta med det namnet eller felaktig karta
ADMIN_MAP_1 = ADMIN: byt karta %s ADMIN_MAP_1 = ADMIN: byt karta %s
ADMIN_MAP_2 = ADMIN %s: byt karta %s ADMIN_MAP_2 = ADMIN %s: byt karta %s
@ -464,15 +493,15 @@ ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banned BANNED = banned
REASON = grund REASON = grund
FOR_MIN = for %s min FOR_MIN = for %d min
PERM = permanent PERM = permanent
CLIENT_BANNED = klient "%s" banned CLIENT_BANNED = klient "%s" banned
ADMIN_SLAY_1 = ADMIN: draeb %s ADMIN_SLAY_1 = ADMIN: draeb %s
ADMIN_SLAY_2 = ADMIN %s: draeb %s ADMIN_SLAY_2 = ADMIN %s: draeb %s
CLIENT_SLAYED = Klient "%s" draebt CLIENT_SLAYED = Klient "%n" draebt
ADMIN_SLAP_1 = ADMIN: klaps %s med %d skade ADMIN_SLAP_1 = ADMIN: klaps %s med %d skade
ADMIN_SLAP_2 = ADMIN %s: klaps %s med %d skade ADMIN_SLAP_2 = ADMIN %s: klaps %s med %d skade
CLIENT_SLAPED = Klient "%s" klapset med %d skade CLIENT_SLAPPED = Klient "%n" klapset med %d skade
MAP_NOT_FOUND = Bane med det navn blev ikke fundet eller banen er ugyldig MAP_NOT_FOUND = Bane med det navn blev ikke fundet eller banen er ugyldig
ADMIN_MAP_1 = ADMIN: Skift bane %s ADMIN_MAP_1 = ADMIN: Skift bane %s
ADMIN_MAP_2 = ADMIN %s: Skift bane %s ADMIN_MAP_2 = ADMIN %s: Skift bane %s
@ -539,15 +568,15 @@ ADMIN_ADDBAN_1 = ADMIN: baniu %s
ADMIN_ADDBAN_2 = ADMIN %s: baniu %s ADMIN_ADDBAN_2 = ADMIN %s: baniu %s
BANNED = banido BANNED = banido
REASON = motivo REASON = motivo
FOR_MIN = por %s minutos FOR_MIN = por %d minutos
PERM = permanentemente PERM = permanentemente
CLIENT_BANNED = Cliente "%s" banido CLIENT_BANNED = Cliente "%s" banido
ADMIN_SLAY_1 = ADMIN: matou %s ADMIN_SLAY_1 = ADMIN: matou %s
ADMIN_SLAY_2 = ADMIN %s: matou %s ADMIN_SLAY_2 = ADMIN %s: matou %s
CLIENT_SLAYED = Cliente "%s" foi morto CLIENT_SLAYED = Cliente "%n" foi morto
ADMIN_SLAP_1 = ADMIN: deu tapa em %s com dano de %d ADMIN_SLAP_1 = ADMIN: deu tapa em %s com dano de %d
ADMIN_SLAP_2 = ADMIN %s: deu tapa em %s com dano de %d ADMIN_SLAP_2 = ADMIN %s: deu tapa em %s com dano de %d
CLIENT_SLAPED = Cliente "%s" levou tapa com dano de %d CLIENT_SLAPPED = Cliente "%n" levou tapa com dano de %d
MAP_NOT_FOUND = Mapa com nome nao encontrado ou mapa invalido MAP_NOT_FOUND = Mapa com nome nao encontrado ou mapa invalido
ADMIN_MAP_1 = ADMIN: mudou para %s ADMIN_MAP_1 = ADMIN: mudou para %s
ADMIN_MAP_2 = ADMIN %s: mudou para %s ADMIN_MAP_2 = ADMIN %s: mudou para %s
@ -614,15 +643,15 @@ ADMIN_ADDBAN_1 = Admin zbanowal %s
ADMIN_ADDBAN_2 = Admin %s zbanowal %s ADMIN_ADDBAN_2 = Admin %s zbanowal %s
BANNED = zbanowany BANNED = zbanowany
REASON = przyczyna REASON = przyczyna
FOR_MIN = na %s min FOR_MIN = na %d min
PERM = permanentnie PERM = permanentnie
CLIENT_BANNED = Gracz "%s" zbanowany CLIENT_BANNED = Gracz "%s" zbanowany
ADMIN_SLAY_1 = Admin zgladzil %s ADMIN_SLAY_1 = Admin zgladzil %s
ADMIN_SLAY_2 = Admin %s zgladzil %s ADMIN_SLAY_2 = Admin %s zgladzil %s
CLIENT_SLAYED = Gracz "%s" zgladzony CLIENT_SLAYED = Gracz "%n" zgladzony
ADMIN_SLAP_1 = Admin uderzyl %s zadajac %d obrazen ADMIN_SLAP_1 = Admin uderzyl %s zadajac %d obrazen
ADMIN_SLAP_2 = Admin %s uderzyl %s zadajac %d obrazen ADMIN_SLAP_2 = Admin %s uderzyl %s zadajac %d obrazen
CLIENT_SLAPED = Gracz "%s" zostal uderzony z sila %d obrazen CLIENT_SLAPPED = Gracz "%n" zostal uderzony z sila %d obrazen
MAP_NOT_FOUND = Nie ma takiej mapy! MAP_NOT_FOUND = Nie ma takiej mapy!
ADMIN_MAP_1 = Admin zmienia mape na %s ADMIN_MAP_1 = Admin zmienia mape na %s
ADMIN_MAP_2 = Admin %s zmienia mape na %s ADMIN_MAP_2 = Admin %s zmienia mape na %s
@ -689,15 +718,15 @@ ADMIN_ADDBAN_1 = ADMIN: verban %s
ADMIN_ADDBAN_2 = ADMIN %s: verban %s ADMIN_ADDBAN_2 = ADMIN %s: verban %s
BANNED = verbannen BANNED = verbannen
REASON = reden REASON = reden
FOR_MIN = voor %s minuten FOR_MIN = voor %d minuten
PERM = permanent PERM = permanent
CLIENT_BANNED = Speler "%s" verbannen CLIENT_BANNED = Speler "%s" verbannen
ADMIN_SLAY_1 = ADMIN: slacht %s ADMIN_SLAY_1 = ADMIN: slacht %s
ADMIN_SLAY_2 = ADMIN %s: slacht %s ADMIN_SLAY_2 = ADMIN %s: slacht %s
CLIENT_SLAYED = Speler "%s" geslacht CLIENT_SLAYED = Speler "%n" geslacht
ADMIN_SLAP_1 = ADMIN: slaat %s met %d schade ADMIN_SLAP_1 = ADMIN: slaat %s met %d schade
ADMIN_SLAP_2 = ADMIN %s: slaat %s met %d schade ADMIN_SLAP_2 = ADMIN %s: slaat %s met %d schade
CLIENT_SLAPED = Speler "%s" geslagen met %d schade CLIENT_SLAPPED = Speler "%n" geslagen met %d schade
MAP_NOT_FOUND = Map met die naam niet gevonden of de map is ongeldig MAP_NOT_FOUND = Map met die naam niet gevonden of de map is ongeldig
ADMIN_MAP_1 = ADMIN: verander map naar %s ADMIN_MAP_1 = ADMIN: verander map naar %s
ADMIN_MAP_2 = ADMIN %s: verander map naar %s ADMIN_MAP_2 = ADMIN %s: verander map naar %s
@ -764,15 +793,15 @@ ADMIN_ADDBAN_1 = ADMIN: %s baneado
ADMIN_ADDBAN_2 = ADMIN %s: %s baneado ADMIN_ADDBAN_2 = ADMIN %s: %s baneado
BANNED = baneado BANNED = baneado
REASON = motivo REASON = motivo
FOR_MIN = por %s minutos FOR_MIN = por %d minutos
PERM = permanentemente PERM = permanentemente
CLIENT_BANNED = El cliente "%s" ha sido baneado CLIENT_BANNED = El cliente "%s" ha sido baneado
ADMIN_SLAY_1 = ADMIN: %s asesinado ADMIN_SLAY_1 = ADMIN: %s asesinado
ADMIN_SLAY_2 = ADMIN %s: %s asesinado ADMIN_SLAY_2 = ADMIN %s: %s asesinado
CLIENT_SLAYED = El cliente "%s" ha sido asesinado CLIENT_SLAYED = El cliente "%n" ha sido asesinado
ADMIN_SLAP_1 = ADMIN: %s ha sido bofeteado con %d de danyo ADMIN_SLAP_1 = ADMIN: %s ha sido bofeteado con %d de danyo
ADMIN_SLAP_2 = ADMIN %s: %s ha sido bofeteado con %d de danyo ADMIN_SLAP_2 = ADMIN %s: %s ha sido bofeteado con %d de danyo
CLIENT_SLAPED = Has pegado al cliente "%s" con %d de danyo CLIENT_SLAPPED = Has pegado al cliente "%n" con %d de danyo
MAP_NOT_FOUND = No se encontro ningun mapa con ese nombre o el mapa es invalido MAP_NOT_FOUND = No se encontro ningun mapa con ese nombre o el mapa es invalido
ADMIN_MAP_1 = ADMIN: cambiando a %s ADMIN_MAP_1 = ADMIN: cambiando a %s
ADMIN_MAP_2 = ADMIN %s: cambiando a %s ADMIN_MAP_2 = ADMIN %s: cambiando a %s
@ -839,15 +868,15 @@ ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = zabanovan BANNED = zabanovan
REASON = duvod REASON = duvod
FOR_MIN = na %s minut FOR_MIN = na %d minut
PERM = permanentne PERM = permanentne
CLIENT_BANNED = Klient "%s" zabanovan CLIENT_BANNED = Klient "%s" zabanovan
ADMIN_SLAY_1 = ADMIN: zabil %s ADMIN_SLAY_1 = ADMIN: zabil %s
ADMIN_SLAY_2 = ADMIN %s: zabili %s ADMIN_SLAY_2 = ADMIN %s: zabili %s
CLIENT_SLAYED = Klient "%s" byl zabit CLIENT_SLAYED = Klient "%n" byl zabit
ADMIN_SLAP_1 = ADMIN: placnul %s za %d damage ADMIN_SLAP_1 = ADMIN: placnul %s za %d damage
ADMIN_SLAP_2 = ADMIN %s: placnul %s za %d damage ADMIN_SLAP_2 = ADMIN %s: placnul %s za %d damage
CLIENT_SLAPED = Klient "%s" dostal facku za %d damage CLIENT_SLAPPED = Klient "%n" dostal facku za %d damage
MAP_NOT_FOUND = Mapa s takovym jmenem nenalezena MAP_NOT_FOUND = Mapa s takovym jmenem nenalezena
ADMIN_MAP_1 = ADMIN: zmenil level na %s ADMIN_MAP_1 = ADMIN: zmenil level na %s
ADMIN_MAP_2 = ADMIN %s: zmenili level na %s ADMIN_MAP_2 = ADMIN %s: zmenili level na %s
@ -914,15 +943,15 @@ ADMIN_ADDBAN_1 = ADMIN: bannasi %s
ADMIN_ADDBAN_2 = ADMIN %s: bannasi %s ADMIN_ADDBAN_2 = ADMIN %s: bannasi %s
BANNED = bannittu BANNED = bannittu
REASON = syy REASON = syy
FOR_MIN = %s minuutiksi FOR_MIN = %d minuutiksi
PERM = pysyvasti PERM = pysyvasti
CLIENT_BANNED = Clinu "%s" bannattiin CLIENT_BANNED = Clinu "%s" bannattiin
ADMIN_SLAY_1 = ADMIN: slayasi %s ADMIN_SLAY_1 = ADMIN: slayasi %s
ADMIN_SLAY_2 = ADMIN %s: slayasi %s ADMIN_SLAY_2 = ADMIN %s: slayasi %s
CLIENT_SLAYED = Client "%s" slayattiin CLIENT_SLAYED = Client "%n" slayattiin
ADMIN_SLAP_1 = ADMIN: slappasi %s %d damagella ADMIN_SLAP_1 = ADMIN: slappasi %s %d damagella
ADMIN_SLAP_2 = ADMIN %s: slappasi %s %d damagella ADMIN_SLAP_2 = ADMIN %s: slappasi %s %d damagella
CLIENT_SLAPED = Client "%s" slapattiin %d damagella CLIENT_SLAPPED = Client "%n" slapattiin %d damagella
MAP_NOT_FOUND = Mappia ei loytynyt tai nimi on vaarin MAP_NOT_FOUND = Mappia ei loytynyt tai nimi on vaarin
ADMIN_MAP_1 = ADMIN: vaihtoi mapin: %s ADMIN_MAP_1 = ADMIN: vaihtoi mapin: %s
ADMIN_MAP_2 = ADMIN %s: vaihtoi mapin: %s ADMIN_MAP_2 = ADMIN %s: vaihtoi mapin: %s
@ -988,15 +1017,15 @@ ADMIN_UNBAN_2 = ADMINISTRATOR %s: unbanna %s
ADMIN_ADDBAN_1 = ADMINISTRATOR: banna %s ADMIN_ADDBAN_1 = ADMINISTRATOR: banna %s
ADMIN_ADDBAN_2 = ADMINISTRATOR %s: banna %s ADMIN_ADDBAN_2 = ADMINISTRATOR %s: banna %s
BANNED = banna BANNED = banna
FOR_MIN = za %s minuti FOR_MIN = za %d minuti
PERM = zavinagi PERM = zavinagi
CLIENT_BANNED = Igrachut "%s" e bannat CLIENT_BANNED = Igrachut "%s" e bannat
ADMIN_SLAY_1 = ADMINISTRATOR: slayna %s ADMIN_SLAY_1 = ADMINISTRATOR: slayna %s
ADMIN_SLAY_2 = ADMINISTRATOR %s: slayna %s ADMIN_SLAY_2 = ADMINISTRATOR %s: slayna %s
CLIENT_SLAYED = Igrachut "%s" e slaynat CLIENT_SLAYED = Igrachut "%n" e slaynat
ADMIN_SLAP_1 = ADMINISTRATOR: slapna %s s %d shteta ADMIN_SLAP_1 = ADMINISTRATOR: slapna %s s %d shteta
ADMIN_SLAP_2 = ADMINISTRATOR %s: slapna %s s %d shteta ADMIN_SLAP_2 = ADMINISTRATOR %s: slapna %s s %d shteta
CLIENT_SLAPED = Igrachut "%s" e slapnat s %d shteta CLIENT_SLAPPED = Igrachut "%n" e slapnat s %d shteta
MAP_NOT_FOUND = Karta s tova ime ne e namerena ili nevalidna MAP_NOT_FOUND = Karta s tova ime ne e namerena ili nevalidna
ADMIN_MAP_1 = ADMINISTRATOR: smeni kartata na %s ADMIN_MAP_1 = ADMINISTRATOR: smeni kartata na %s
ADMIN_MAP_2 = ADMINISTRATOR %s: smeni kartata na %s ADMIN_MAP_2 = ADMINISTRATOR %s: smeni kartata na %s
@ -1055,115 +1084,147 @@ MAP_EXTENDED = Kartata "%s" beshe uduljena s %d minuti
[ro] [ro]
ADMIN_KICK_1 = ADMIN: kick %s ADMIN_KICK_1 = ADMIN: kick %s
ADMIN_KICK_2 = ADMIN %s: kick %s ADMIN_KICK_2 = ADMIN %s: kick %s
IP_REMOVED = IP-ul "%s" a fost eliminat din lista de banuri IP_REMOVED = Ip-ul "%s" a fost inlaturat din lista de ban-uri
AUTHID_REMOVED = AuthID-ul "%s" a fost eliminat din lista de banuri AUTHID_REMOVED = ID-ul "%s" a fost inlaturat din lista de ban-uri
ADMIN_UNBAN_1 = ADMIN: unban %s ADMIN_UNBAN_1 = ADMIN: unban %s
ADMIN_UNBAN_2 = ADMIN %s: unban %s ADMIN_UNBAN_2 = ADMIN %s: unban %s
ADMIN_ADDBAN_1 = ADMIN: ban %s ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banat BANNED = banat
REASON = motiv REASON = motiv
FOR_MIN = pentru %s minute FOR_MIN = pentru %d min
PERM = permanent PERM = permanent
CLIENT_BANNED = Jucătorul "%s" a primit ban CLIENT_BANNED = Jucatorul "%s" a primit ban
ADMIN_SLAY_1 = ADMIN: slay %s ADMIN_SLAY_1 = ADMIN: slay %s
ADMIN_SLAY_2 = ADMIN %s: slay %s ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Jucătorul "%s" a primit slay CLIENT_SLAYED = Jucatorul "%n" a primit slay
ADMIN_SLAP_1 = ADMIN: slap %s cu %d damage ADMIN_SLAP_1 = ADMIN: slap %s cu %d dmg
ADMIN_SLAP_2 = ADMIN %s: slap %s cu %d damage ADMIN_SLAP_2 = ADMIN %s: slap %s cu %d dmg
CLIENT_SLAPED = Jucătorul "%s" a primit slap cu %d damage CLIENT_SLAPPED = Jucatorul "%n" a primit slap %d dmg
MAP_NOT_FOUND = Harta cu acel nume nu a fost găsită, sau este invalidă MAP_NOT_FOUND = Harta cu acel nume nu a fost gasita sau este invalida
ADMIN_MAP_1 = ADMIN: schimbă harta pe %s ADMIN_MAP_1 = ADMIN: schimbare harta pe %s
ADMIN_MAP_2 = ADMIN %s: schimbă harta pe %s ADMIN_MAP_2 = ADMIN %s: schimbare harta pe %s
NO_MORE_CVARS = Nu se mai pot adăuga comenzi pentru accesul rcon! NO_MORE_CVARS = Nu se pot adauga mai multe comenzi pentru accesul rcon!
UNKNOWN_CVAR = Comanda nerecunoscută: %s UNKNOWN_CVAR = Comanda nerecunoscuta: %s
UNKNOWN_XVAR = Comanda nerecunoscută: %s UNKNOWN_XVAR = Comanda nerecunoscuta: %s
CVAR_NO_ACC = Nu ai acces la această comandă CVAR_NO_ACC = Nu ai acces la aceasta comanda
XVAR_NO_ACC = Nu ai acces la această comandă XVAR_NO_ACC = Nu ai acces la aceasta comanda
CVAR_IS = Comanda "%s" este "%s" CVAR_IS = Comanda "%s" este "%s"
XVAR_IS = Comanda "%s" este "%s" XVAR_IS = Comanda "%s" este "%s"
PROTECTED = PROTEJAT PROTECTED = PROTEJAT
SET_CVAR_TO = %s setează comanda %s pe "%s" SET_CVAR_TO = %s seteaza comanda %s pe "%s"
SET_XVAR_TO = %s setează comanda %s pe "%s" SET_XVAR_TO = %s seteaza comanda %s pe "%s"
CVAR_CHANGED = Comanda "%s" a fost schimbată pe "%s" CVAR_CHANGED = Comanda "%s" a fost schimbata pe "%s"
XVAR_CHANGED = Comanda "%s" a fost schimbată pe "%s" XVAR_CHANGED = Comanda "%s" a fost schimbata pe "%s"
LOADED_PLUGINS = Pluginuri încărcate LOADED_PLUGINS = Plugin-uri incarcate
NAME = nume NAME = nume
VERSION = versiune VERSION = versiune
AUTHOR = autor AUTHOR = autor
FILE = fișier FILE = fisier
STATUS = status STATUS = statut
PLUGINS_RUN = %d pluginuri, %d funcționale PLUGINS_RUN = %d plugin-uri, %d functionale
LOADED_MODULES = Module încărcate LOADED_MODULES = Moduluri incarcate
NUM_MODULES = %d module NUM_MODULES = %d moduluri
FILE_NOT_FOUND = Fișierul "%s" nu a fost găsit FILE_NOT_FOUND = Fisier-ul "%s" nu a fost gasit
ADMIN_CONF_1 = ADMIN: executare config %s ADMIN_CONF_1 = ADMIN: executare config %s
ADMIN_CONF_2 = ADMIN %s: executare config %s ADMIN_CONF_2 = ADMIN %s: executare config %s
PAUSED = joc întrerupt PAUSED = s-a intrerupt jocul
UNPAUSED = s-a revenit la joc UNPAUSED = s-a revenit la joc
UNABLE_PAUSE = Serverul nu a putut întrerupe jocul. Este nevoie de jucători reali pe server. UNABLE_PAUSE = Server-ul nu a putut intrerupe jocul. Este nevoie de jucatori adevarati.
SERVER_PROC = Continuare server %s SERVER_PROC = Continuare server %s
PAUSING = jocul se întrerupe PAUSING = se interupe jocul
UNPAUSING = se revine la joc UNPAUSING = se revine la joc
PAUSE = întrerupe jocul PAUSE = intrerupe jocul
UNPAUSE = revino la joc UNPAUSE = revino la joc
COM_SENT_SERVER = Comanda "%s" a fost trimisă în consola serverului COM_SENT_SERVER = Comanda "%s" a fost trimisa in consola server-ului
CLIENTS_ON_SERVER = Jucători pe server CLIENTS_ON_SERVER = Jucatori pe server
IMMU = imu IMMU = imu
RESERV = rez RESERV = rez
ACCESS = acces ACCESS = acces
TOTAL_NUM = Total %d TOTAL_NUM = Total %d
SKIP_MATCH = Se sare peste "%s" (criteriu "%s") SKIP_MATCH = Se trece peste "%s" (criteriu "%s")
SKIP_IMM = Se sare peste "%s" (imunitate) SKIP_IMM = Se trece peste "%s" (imunitate)
KICK_PL = Kick "%s" KICK_PL = Kick "%s"
YOU_DROPPED = Ai fost dat afară deoarece adminul a lăsat doar un grup specific de jucători pe server. YOU_DROPPED = Ai fost dat afara deoarece admin-ul permite doar un grup specificat de jucatori pe server
KICKED_CLIENTS = %d jucători au primit kick KICKED_CLIENTS = %d jucatori au primit kick
ADMIN_LEAVE_1 = ADMIN: ieșire %s %s %s %s ADMIN_LEAVE_1 = ADMIN: iesire %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: ieșire %s %s %s %s ADMIN_LEAVE_2 = ADMIN %s: iesire %s %s %s %s
ADMIN_NICK_1 = ADMIN: schimbă numele lui %s cu "%s" ADMIN_NICK_1 = ADMIN: schimbare nume %s cu "%s"
ADMIN_NICK_2 = ADMIN %s: schimbă numele lui %s cu "%s" ADMIN_NICK_2 = ADMIN %s: schimbare nume %s cu "%s"
CHANGED_NICK = Numele lui %s a fost schimbat cu "%s" CHANGED_NICK = Numele %s a fost schimbat cu "%s"
ADMIN_EXTEND_1 = ADMIN: extinde harta pentru %d minute ADMIN_EXTEND_1 = ADMIN: extinde harta pentru %d minute
ADMIN_EXTEND_2 = ADMIN %s: extinde harta pentru %d minute ADMIN_EXTEND_2 = ADMIN %s: extinde harta pentru %d minute
MAP_EXTENDED = Harta "%s" a fost extinsă pentru %d minute MAP_EXTENDED = Harta "%s" a fost extinsa pentru %d minute
ADMIN_MUST_TEMPBAN = Poți să dai numai ban temporar jucătorilor, până la %d minute ADMIN_MUST_TEMPBAN = Poți interzice jucători doar temporar, cel mult %d minute
ADMIN_MUST_TEMPUNBAN = Poți să dai unban numai jucătorilor pe care i-ai banat recent. ADMIN_MUST_TEMPUNBAN = Doar jucătorii recent interziși de tine pot fi scoși din listă
AMX_KICK_SYNTAX = <nume sau #userid> [motiv]
AMX_BAN_SYNTAX = <nume sau #userid> <minute> [motiv]
AMX_BANIP_SYNTAX = <nume sau #userid> <minute> [motiv]
AMX_ADDBAN_SYNTAX = <"authid" sau ip> <minute> [motiv]
AMX_UNBAN_SYNTAX = <"authid" sau ip>
AMX_SLAY_SYNTAX = <nume sau #userid>
AMX_SLAP_SYNTAX = <nume sau #userid> [putere]
AMX_LEAVE_SYNTAX = <etichetă> [etichetă] [etichetă] [etichetă]
AMX_PAUSE_SYNTAX = — pune jocul pe pauză sau invers
AMX_WHO_SYNTAX = — afișează jucătorii conectați
AMX_CVAR_SYNTAX = <cvar> [valoare]
AMX_XVAR_SYNTAX = <xvar> [valoare]
AMX_PLUGINS_SYNTAX = [intrare]
AMX_MODULES_SYNTAX = — afișează extensiile atașate
AMX_MAP_SYNTAX = <numele hărții>
AMX_EXTENDMAP_SYNTAX = <minute> — extinde harta curentă
AMX_CFG_SYNTAX = <numele fișierului cfg>
AMX_NICK_SYNTAX = <nume sau #userid> <poreclă nouă>
AMX_LAST_SYNTAX = afișează detalii privind ultimii jucători deconectați
AMX_RCON_SYNTAX = <linie de comandă>
ADMIN_KICK_CON = Jucătorul "%n" a fost deconectat
ADMIN_CANNOT_BAN = %s nu poate fi interzis
ADMIN_BAN_ONLY_RECENT = Poți interzice doar jucători recent deconectați — amx_last
ADMIN_IP_ADDED = %s a fost interzis
ADMIN_AUTHID_ADDED = %s a fost interzis
MODULE_RUNNING = rulează
MODULE_BAD_LOAD = neatașat
MODULE_UNKNOWN = necunoscut
ADMIN_CFG_CON = %s a fost executat
ADMIN_PAUSE_CON = Pauza a început
ADMIN_UNPAUSE_CON = Pauza s-a terminat
ADMIN_OLD_CONNS_SAVED = %d conexiuni salvate
[hu] [hu]
ADMIN_KICK_1 = ADMIN: %s kirúgva ADMIN_KICK_1 = ADMIN: %s kirúgva
ADMIN_KICK_2 = ADMIN %s: %s kirúgva ADMIN_KICK_2 = ADMIN %s: %s kirúgva
IP_REMOVED = IP "%s" eltávolítva a banlistáról IP_REMOVED = IP "%s" eltávolítva a ban-listárol
AUTHID_REMOVED = Authid "%s" eltávolítva a banlistáról AUTHID_REMOVED = Authid "%s" eltávolítva a ban-listáról
ADMIN_UNBAN_1 = ADMIN: %s ban visszavonva ADMIN_UNBAN_1 = ADMIN: %s ban visszavonva
ADMIN_UNBAN_2 = ADMIN %s: %s ban visszavonva ADMIN_UNBAN_2 = ADMIN %s: %s ban visszavonva
ADMIN_ADDBAN_1 = ADMIN: bannolta %s játékost ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: bannolta %s játékost ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = Bannolva BANNED = Bannolva
REASON = Indok REASON = Indok
FOR_MIN = %s percre FOR_MIN = %d percre
PERM = örökre PERM = örökre
CLIENT_BANNED = felhasználó "%s" bannolva CLIENT_BANNED = felhasználó "%s" bannolva
ADMIN_SLAY_1 = ADMIN: %s megölve ADMIN_SLAY_1 = ADMIN: %s megölve
ADMIN_SLAY_2 = ADMIN %s: %s megölve ADMIN_SLAY_2 = ADMIN %s: %s megölve
CLIENT_SLAYED = "%s" játékos megölve CLIENT_SLAYED = "%n" játékos megölve
ADMIN_SLAP_1 = ADMIN: %s megütve %d sebzéssel ADMIN_SLAP_1 = ADMIN: %s megütve %d sebzéssel
ADMIN_SLAP_2 = ADMIN %s: %s megütve %d sebzéssel ADMIN_SLAP_2 = ADMIN %s: megütve %s %d sebzéssel
CLIENT_SLAPED = "%s" játékos megütve %d sebzéssel CLIENT_SLAPPED = "%n" játékos megütve %d sebzéssel
MAP_NOT_FOUND = Nem található ilyen nevű pálya MAP_NOT_FOUND = Nem található ilyen nevű pálya
ADMIN_MAP_1 = ADMIN: pályaváltás %s ADMIN_MAP_1 = ADMIN: pályaváltás %s
ADMIN_MAP_2 = ADMIN %s: pályaváltás %s ADMIN_MAP_2 = ADMIN %s: pályaváltás %s
NO_MORE_CVARS = Nem lehet több cvart hozzáadni az rcon hozzáféréshez! NO_MORE_CVARS = Nem lehet több cvart hozzáadni az rcon hozzáféréshez!
UNKNOWN_CVAR = Ismeretlen cvar: %s UNKNOWN_CVAR = Ismeretlen cvar: %s
UNKNOWN_XVAR = Ismeretlen xvar: %s UNKNOWN_XVAR = Ismeretlen xvar: %s
CVAR_NO_ACC = Nincs engedélyed a cvarhoz CVAR_NO_ACC = Nincs engedélyed a cvar-hoz
XVAR_NO_ACC = Nincs engedélyed az xvarhoz XVAR_NO_ACC = Nincs engedélyed a xvar-hoz
CVAR_IS = Cvar "%s" jelenleg "%s" CVAR_IS = Cvar "%s" jelenleg "%s"
XVAR_IS = Xvar "%s" jelenleg "%s" XVAR_IS = Xvar "%s" jelenleg "%s"
PROTECTED = Védett PROTECTED = Védett
SET_CVAR_TO = %s cvar átállítva: %s -> "%s" SET_CVAR_TO = %s beállítva cvar %s -> "%s"
SET_XVAR_TO = %s xvar átállítva: %s -> "%s" SET_XVAR_TO = %s beállítva xvar %s -> "%s"
CVAR_CHANGED = Cvar "%s" átállítva "%s" értékre. CVAR_CHANGED = Cvar "%s" átállítva "%s"-ra.
XVAR_CHANGED = Xvar "%s" átállítva "%s" értékre. XVAR_CHANGED = Xvar "%s" átállítva "%s"-ra.
LOADED_PLUGINS = Jelenleg betöltött pluginok LOADED_PLUGINS = Jelenleg betöltött pluginok
NAME = Név NAME = Név
VERSION = Verzió VERSION = Verzió
@ -1196,11 +1257,11 @@ YOU_DROPPED = Le lettél csatlakoztatva, mert az admin csak bizonyos csapat tagj
KICKED_CLIENTS = kirúgva %d felhasználó KICKED_CLIENTS = kirúgva %d felhasználó
ADMIN_LEAVE_1 = ADMIN: ledobta %s %s %s %s ADMIN_LEAVE_1 = ADMIN: ledobta %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: ledobta %s %s %s %s ADMIN_LEAVE_2 = ADMIN %s: ledobta %s %s %s %s
ADMIN_NICK_1 = ADMIN: %s nevét átírta, mostantól a neve "%s" ADMIN_NICK_1 = ADMIN: névváltás %s-ról "%s"-ra
ADMIN_NICK_2 = ADMIN %s: %s nevét átírta, mostantól a neve "%s" ADMIN_NICK_2 = ADMIN %s: nevváltás %s-ról "%s"ra
CHANGED_NICK = %s neve mostantól: "%s" CHANGED_NICK = Névváltás %s-ról "%s"ra
ADMIN_EXTEND_1 = ADMIN: Pálya hosszabbítása %d perccel ADMIN_EXTEND_1 = ADMIN: Páya hosszabbítása %d perccel
ADMIN_EXTEND_2 = ADMIN %s: Pálya hosszabbítása %d perccel ADMIN_EXTEND_2 = ADMIN %s: Páya hosszabbítása %d perccel
MAP_EXTENDED = %s pálya meghosszabbítva %d perccel MAP_EXTENDED = %s pálya meghosszabbítva %d perccel
ADMIN_MUST_TEMPBAN = Csak időhöz kötött bant tudsz kiosztani, maximum %d percet ADMIN_MUST_TEMPBAN = Csak időhöz kötött bant tudsz kiosztani, maximum %d percet
ADMIN_MUST_TEMPUNBAN = Csak a nemrég általad bannolt játékosokat oldhatod fel ADMIN_MUST_TEMPUNBAN = Csak a nemrég általad bannolt játékosokat oldhatod fel
@ -1215,15 +1276,15 @@ ADMIN_UNBAN_2 = ADMINAS %s: atbanino %s
ADMIN_ADDBAN_1 = ADMINAS: isbanino %s ADMIN_ADDBAN_1 = ADMINAS: isbanino %s
ADMIN_ADDBAN_2 = ADMINAS %s: isbanino %s ADMIN_ADDBAN_2 = ADMINAS %s: isbanino %s
BANNED = isbanintas BANNED = isbanintas
FOR_MIN = %s minutem FOR_MIN = %d minutem
PERM = visam laikui PERM = visam laikui
CLIENT_BANNED = Klientas "%s" isbanintas CLIENT_BANNED = Klientas "%s" isbanintas
ADMIN_SLAY_1 = ADMINAS: slayna %s ADMIN_SLAY_1 = ADMINAS: slayna %s
ADMIN_SLAY_2 = ADMINAS %s: slayna %s ADMIN_SLAY_2 = ADMINAS %s: slayna %s
CLIENT_SLAYED = Klientas "%s" nuzudytas CLIENT_SLAYED = Klientas "%n" nuzudytas
ADMIN_SLAP_1 = ADMINAS: slapina %s su %d zala ADMIN_SLAP_1 = ADMINAS: slapina %s su %d zala
ADMIN_SLAP_2 = ADMINAS %s: slapina %s su %d zala ADMIN_SLAP_2 = ADMINAS %s: slapina %s su %d zala
CLIENT_SLAPED = Klientas "%s" nuslapintas su %d zala CLIENT_SLAPPED = Klientas "%n" nuslapintas su %d zala
MAP_NOT_FOUND = Zemelapis siuo pavadinimu nerastas. MAP_NOT_FOUND = Zemelapis siuo pavadinimu nerastas.
ADMIN_MAP_1 = ADMINAS: keicia mapa i %s ADMIN_MAP_1 = ADMINAS: keicia mapa i %s
ADMIN_MAP_2 = ADMINAS %s: keicia mapa i %s ADMIN_MAP_2 = ADMINAS %s: keicia mapa i %s
@ -1290,15 +1351,15 @@ ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = zabanovany BANNED = zabanovany
REASON = pricina REASON = pricina
FOR_MIN = na %s minut FOR_MIN = na %d minut
PERM = permanentne PERM = permanentne
CLIENT_BANNED = Hrac "%s" zabanovany CLIENT_BANNED = Hrac "%s" zabanovany
ADMIN_SLAY_1 = ADMIN: zabil %s ADMIN_SLAY_1 = ADMIN: zabil %s
ADMIN_SLAY_2 = ADMIN %s: zabili %s ADMIN_SLAY_2 = ADMIN %s: zabili %s
CLIENT_SLAYED = Hrac menom "%s" bol zabity CLIENT_SLAYED = Hrac menom "%n" bol zabity
ADMIN_SLAP_1 = ADMIN: placnul %s o sile %d damage ADMIN_SLAP_1 = ADMIN: placnul %s o sile %d damage
ADMIN_SLAP_2 = ADMIN %s: placnul %s o sile %d damage ADMIN_SLAP_2 = ADMIN %s: placnul %s o sile %d damage
CLIENT_SLAPED = Hrac menom "%s" dostal facku o sile %d damage CLIENT_SLAPPED = Hrac menom "%n" dostal facku o sile %d damage
MAP_NOT_FOUND = Mapa s t<>mto menom nenajdena MAP_NOT_FOUND = Mapa s t<>mto menom nenajdena
ADMIN_MAP_1 = ADMIN: zmenil mapu na %s ADMIN_MAP_1 = ADMIN: zmenil mapu na %s
ADMIN_MAP_2 = ADMIN %s: zmenili mapu na %s ADMIN_MAP_2 = ADMIN %s: zmenili mapu na %s
@ -1365,15 +1426,15 @@ ADMIN_ADDBAN_1 = ADMIN: banira %s
ADMIN_ADDBAN_2 = ADMIN %s: banira %s ADMIN_ADDBAN_2 = ADMIN %s: banira %s
BANNED = baniran BANNED = baniran
REASON = prichina REASON = prichina
FOR_MIN = za %s min FOR_MIN = za %d min
PERM = zasekogash PERM = zasekogash
CLIENT_BANNED = Igrachot "%s" e baniran CLIENT_BANNED = Igrachot "%s" e baniran
ADMIN_SLAY_1 = ADMIN: slayna %s ADMIN_SLAY_1 = ADMIN: slayna %s
ADMIN_SLAY_2 = ADMIN %s: slayna %s ADMIN_SLAY_2 = ADMIN %s: slayna %s
CLIENT_SLAYED = Igrachot "%s" beshe slaynat CLIENT_SLAYED = Igrachot "%n" beshe slaynat
ADMIN_SLAP_1 = ADMIN: mu udri shamar na %s so %d shteta ADMIN_SLAP_1 = ADMIN: mu udri shamar na %s so %d shteta
ADMIN_SLAP_2 = ADMIN %s: mu udri shamar na %s so %d shteta ADMIN_SLAP_2 = ADMIN %s: mu udri shamar na %s so %d shteta
CLIENT_SLAPED = Igrachot "%s" e nashamaran so %d shteta CLIENT_SLAPPED = Igrachot "%n" e nashamaran so %d shteta
MAP_NOT_FOUND = Mapa so toa ime ne e pronajdena ili ne postoi MAP_NOT_FOUND = Mapa so toa ime ne e pronajdena ili ne postoi
ADMIN_MAP_1 = ADMIN: ja smeni mapata na %s ADMIN_MAP_1 = ADMIN: ja smeni mapata na %s
ADMIN_MAP_2 = ADMIN %s: ja smeni mapata na %s ADMIN_MAP_2 = ADMIN %s: ja smeni mapata na %s
@ -1428,6 +1489,40 @@ CHANGED_NICK = Smeneto e imeto na %s na "%s"
ADMIN_EXTEND_1 = ADMIN: ja prodolzhi mapata za %d minuti ADMIN_EXTEND_1 = ADMIN: ja prodolzhi mapata za %d minuti
ADMIN_EXTEND_2 = ADMIN %s: ja prodolzhi mapata za %d minuti ADMIN_EXTEND_2 = ADMIN %s: ja prodolzhi mapata za %d minuti
MAP_EXTENDED = Mapata "%s" e prodolzhena za %d minuti MAP_EXTENDED = Mapata "%s" e prodolzhena za %d minuti
ADMIN_MUST_TEMPBAN = Mozhete samo privremeno da banirate igrachi do %d minuti
ADMIN_MUST_TEMPUNBAN = Mozhete da unbanirate samo igrachi koi skoro ste gi banirale
AMX_KICK_SYNTAX = <ime ili #userid> [prichina]
AMX_BAN_SYNTAX = <ime ili #userid> <minutes> [prichina]
AMX_BANIP_SYNTAX = <ime ili #userid> <minutes> [prichina]
AMX_ADDBAN_SYNTAX = <"authid" ili ip> <minutes> [prichina]
AMX_UNBAN_SYNTAX = <"authid" ili ip>
AMX_SLAY_SYNTAX = <ime ili #userid>
AMX_SLAP_SYNTAX = <ime ili #userid> [sila]
AMX_LEAVE_SYNTAX = <tag> [tag] [tag] [tag]
AMX_PAUSE_SYNTAX = - ja pauzira ili unpauzira igrata
AMX_WHO_SYNTAX = - spisok so igrachi vo serverot
AMX_CVAR_SYNTAX = <cvar> [vrednost]
AMX_XVAR_SYNTAX = <xvar> [vrednost]
AMX_PLUGINS_SYNTAX = [pocheten plugin]
AMX_MODULES_SYNTAX = - gi prikazhuva vchitanite moduli
AMX_MAP_SYNTAX = <ime na mapa>
AMX_EXTENDMAP_SYNTAX = <broj na minuti>
AMX_CFG_SYNTAX = <ime na fajl>
AMX_NICK_SYNTAX = <ime ili #userid> <novo ime>
AMX_LAST_SYNTAX = pokazhuva informacija za poslednite nekolku diskonektirani igrachi
AMX_RCON_SYNTAX = <komanda>
ADMIN_KICK_CON = Igrachot "%n" e kiknat
ADMIN_CANNOT_BAN = Ne mozhete da go banirate %s
ADMIN_BAN_ONLY_RECENT = Mozhete da banirate samo igrachi koi skoro go napushtile serverot. Napishete "amx_last" za da go vidite spisokot
ADMIN_IP_ADDED = IP %s e dodadeno vo ban listata
ADMIN_AUTHID_ADDED = AuthID %s e dodadeno vo ban listata
MODULE_RUNNING = vkluchen
MODULE_BAD_LOAD = greshka
MODULE_UNKNOWN = nepoznato
ADMIN_CFG_CON = Fajlot %s se izvrshuva
ADMIN_PAUSE_CON = Serverot e PAUZIRAN
ADMIN_UNPAUSE_CON = Serverot e UNPAUZIRAN
ADMIN_OLD_CONNS_SAVED = %d stari konekcii se zashtiteni
[hr] [hr]
ADMIN_KICK_1 = ADMIN: kickao %s ADMIN_KICK_1 = ADMIN: kickao %s
@ -1439,15 +1534,15 @@ ADMIN_UNBAN_2 = ADMIN %s: odban %s
ADMIN_ADDBAN_1 = ADMIN: banao %s ADMIN_ADDBAN_1 = ADMIN: banao %s
ADMIN_ADDBAN_2 = ADMIN %s: banao %s ADMIN_ADDBAN_2 = ADMIN %s: banao %s
BANNED = banan BANNED = banan
FOR_MIN = na %s min FOR_MIN = na %d min
PERM = za stalno PERM = za stalno
CLIENT_BANNED = Klijent "%s" je banan CLIENT_BANNED = Klijent "%s" je banan
ADMIN_SLAY_1 = ADMIN: slayao %s ADMIN_SLAY_1 = ADMIN: slayao %s
ADMIN_SLAY_2 = ADMIN %s: slayao %s ADMIN_SLAY_2 = ADMIN %s: slayao %s
CLIENT_SLAYED = Klijent "%s" slayan CLIENT_SLAYED = Klijent "%n" slayan
ADMIN_SLAP_1 = ADMIN: samar %s sa %d stete ADMIN_SLAP_1 = ADMIN: samar %s sa %d stete
ADMIN_SLAP_2 = ADMIN %s: samar %s sa %d stete ADMIN_SLAP_2 = ADMIN %s: samar %s sa %d stete
CLIENT_SLAPED = Klijent "%s" je osamaren sa %d stete CLIENT_SLAPPED = Klijent "%n" je osamaren sa %d stete
MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca
ADMIN_MAP_1 = ADMIN: promjena mape na %s ADMIN_MAP_1 = ADMIN: promjena mape na %s
ADMIN_MAP_2 = ADMIN %s: mjenja mapu na %s ADMIN_MAP_2 = ADMIN %s: mjenja mapu na %s
@ -1513,15 +1608,15 @@ ADMIN_UNBAN_2 = ADMIN %s: unban %s
ADMIN_ADDBAN_1 = ADMIN: ban %s ADMIN_ADDBAN_1 = ADMIN: ban %s
ADMIN_ADDBAN_2 = ADMIN %s: ban %s ADMIN_ADDBAN_2 = ADMIN %s: ban %s
BANNED = banovan BANNED = banovan
FOR_MIN = na %s min FOR_MIN = na %d min
PERM = za stalno PERM = za stalno
CLIENT_BANNED = Klijent "%s" je banovan CLIENT_BANNED = Klijent "%s" je banovan
ADMIN_SLAY_1 = ADMIN: slay %s ADMIN_SLAY_1 = ADMIN: slay %s
ADMIN_SLAY_2 = ADMIN %s: slay %s ADMIN_SLAY_2 = ADMIN %s: slay %s
CLIENT_SLAYED = Klijent "%s" slayed CLIENT_SLAYED = Klijent "%n" slayed
ADMIN_SLAP_1 = ADMIN: samar %s with %d stete ADMIN_SLAP_1 = ADMIN: samar %s with %d stete
ADMIN_SLAP_2 = ADMIN %s: samar %s with %d stete ADMIN_SLAP_2 = ADMIN %s: samar %s with %d stete
CLIENT_SLAPED = Klijent "%s" je osamaren sa %d stete CLIENT_SLAPPED = Klijent "%n" je osamaren sa %d stete
MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca MAP_NOT_FOUND = Mapa sa tim imenom nije nadjena ili nije vazeca
ADMIN_MAP_1 = ADMIN: changelevel %s ADMIN_MAP_1 = ADMIN: changelevel %s
ADMIN_MAP_2 = ADMIN %s: changelevel %s ADMIN_MAP_2 = ADMIN %s: changelevel %s
@ -1588,15 +1683,15 @@ ADMIN_ADDBAN_1 = АДМИНИСТРАТОР: забанил %s
ADMIN_ADDBAN_2 = АДМИНИСТРАТОР %s: забанил %s ADMIN_ADDBAN_2 = АДМИНИСТРАТОР %s: забанил %s
BANNED = забанен BANNED = забанен
REASON = причина REASON = причина
FOR_MIN = на %s минут FOR_MIN = на %d минут
PERM = навсегда PERM = навсегда
CLIENT_BANNED = Игрок "%s" забанен CLIENT_BANNED = Игрок "%s" забанен
ADMIN_SLAY_1 = АДМИНИСТРАТОР: убил %s ADMIN_SLAY_1 = АДМИНИСТРАТОР: убил %s
ADMIN_SLAY_2 = АДМИНИСТРАТОР %s: убил %s ADMIN_SLAY_2 = АДМИНИСТРАТОР %s: убил %s
CLIENT_SLAYED = Игрок "%s" убит CLIENT_SLAYED = Игрок "%n" убит
ADMIN_SLAP_1 = АДМИНИСТРАТОР: стукнул %s на %d HP ADMIN_SLAP_1 = АДМИНИСТРАТОР: стукнул %s на %d HP
ADMIN_SLAP_2 = АДМИНИСТРАТОР %s: стукнул %s на %d HP ADMIN_SLAP_2 = АДМИНИСТРАТОР %s: стукнул %s на %d HP
CLIENT_SLAPED = Игрок "%s" стукнут на %d HP CLIENT_SLAPPED = Игрок "%n" стукнут на %d HP
MAP_NOT_FOUND = Карта не найдена или не существует MAP_NOT_FOUND = Карта не найдена или не существует
ADMIN_MAP_1 = АДМИНИСТРАТОР: сменил карту на %s ADMIN_MAP_1 = АДМИНИСТРАТОР: сменил карту на %s
ADMIN_MAP_2 = АДМИНИСТРАТОР %s: сменил карту на %s ADMIN_MAP_2 = АДМИНИСТРАТОР %s: сменил карту на %s
@ -1663,15 +1758,15 @@ ADMIN_ADDBAN_1 = 管理员: 封禁 %s
ADMIN_ADDBAN_2 = 管理员 %s: 封禁 %s ADMIN_ADDBAN_2 = 管理员 %s: 封禁 %s
BANNED = 封禁 BANNED = 封禁
REASON = 原因 REASON = 原因
FOR_MIN = %s 分钟 FOR_MIN = %d 分钟
PERM = 永久 PERM = 永久
CLIENT_BANNED = 玩家 "%s" 被封禁 CLIENT_BANNED = 玩家 "%s" 被封禁
ADMIN_SLAY_1 = 管理员: 处死 %s ADMIN_SLAY_1 = 管理员: 处死 %s
ADMIN_SLAY_2 = 管理员 %s: 处死 %s ADMIN_SLAY_2 = 管理员 %s: 处死 %s
CLIENT_SLAYED = 玩家 "%s" 被处死 CLIENT_SLAYED = 玩家 "%n" 被处死
ADMIN_SLAP_1 = 管理员: 给予玩家 %s %d 点伤害 ADMIN_SLAP_1 = 管理员: 给予玩家 %s %d 点伤害
ADMIN_SLAP_2 = 管理员 %s: 给予玩家 %s %d 点伤害 ADMIN_SLAP_2 = 管理员 %s: 给予玩家 %s %d 点伤害
CLIENT_SLAPED = 玩家 "%s" 受到 %d 点伤害 CLIENT_SLAPPED = 玩家 "%n" 受到 %d 点伤害
MAP_NOT_FOUND = 无法找到该地图或者该地图无效 MAP_NOT_FOUND = 无法找到该地图或者该地图无效
ADMIN_MAP_1 = 管理员: 更换地图为 %s ADMIN_MAP_1 = 管理员: 更换地图为 %s
ADMIN_MAP_2 = 管理员 %s: 更换地图为 %s ADMIN_MAP_2 = 管理员 %s: 更换地图为 %s
@ -1726,157 +1821,3 @@ CHANGED_NICK = 改变 %s 的昵称为 "%s"
ADMIN_EXTEND_1 = 管理员: 将地图时间延长 %d 分钟 ADMIN_EXTEND_1 = 管理员: 将地图时间延长 %d 分钟
ADMIN_EXTEND_2 = 管理员 %s: 将地图时间延长 %d 分钟 ADMIN_EXTEND_2 = 管理员 %s: 将地图时间延长 %d 分钟
MAP_EXTENDED = "%s" 该地图已经被延长 %d 分钟 MAP_EXTENDED = "%s" 该地图已经被延长 %d 分钟
[al]
ADMIN_KICK_1 = ADMIN: largoi %s
ADMIN_KICK_2 = ADMIN %s: largoi %s
IP_REMOVED = IP "%s" u fshi nga lista dënimit
AUTHID_REMOVED = Authid "%s" u fshi nga lista ndalimit
ADMIN_UNBAN_1 = ADMIN: i fshiu dënimin %s
ADMIN_UNBAN_2 = ADMIN %s: fshiu dënimin %s
ADMIN_ADDBAN_1 = ADMIN: dënoj %s
ADMIN_ADDBAN_2 = ADMIN %s: dënoj %s
BANNED = dënoj
REASON = arsyeja
FOR_MIN = për %s min
PERM = përgjithëmon
CLIENT_BANNED = Lojtari "%s" morri dënim në server
ADMIN_SLAY_1 = ADMIN: vrau %s
ADMIN_SLAY_2 = ADMIN %s: vrau %s
CLIENT_SLAYED = Lojtari "%s" u vra
ADMIN_SLAP_1 = ADMIN: ndëshkoi %s me %d dëmtime
ADMIN_SLAP_2 = ADMIN %s: ndëshkoi %s me %d dëmtime
CLIENT_SLAPED = Lojtari "%s" mori ndëshkim me %d dëmtime
MAP_NOT_FOUND = Harta me atë emër nuk u gjetë ose është e pavlefshme
ADMIN_MAP_1 = ADMIN: ndryshoi hartën në %s
ADMIN_MAP_2 = ADMIN %s: ndryshoi hartën në %s
NO_MORE_CVARS = Nuk mund të shtoni cvars për rcon!
UNKNOWN_CVAR = Cvar Panjohur: %s
UNKNOWN_XVAR = Cvar Panjohur: %s
CVAR_NO_ACC = Ju nuk keni qasje në këtë cvar
XVAR_NO_ACC = Ju nuk keni qasje në këtë cvar
CVAR_IS = Cvar "%s" është "%s"
XVAR_IS = Xvar "%s" është "%s"
PROTECTED = MBROJTUR
SET_CVAR_TO = %s vendosi cvar %s në "%s"
SET_XVAR_TO = %s vendosi cvar %s në "%s"
CVAR_CHANGED = Cvar "%s" ndryshoi në "%s"
XVAR_CHANGED = Xvar "%s" ndryshoi në "%s"
LOADED_PLUGINS = Pluginat e ngarkuar aktualë
NAME = emri
VERSION = verzioni
AUTHOR = autori
FILE = skedari
STATUS = statusi
PLUGINS_RUN = %d plugins, %d duke punuar
LOADED_MODULES = Modulet e ngarkuar aktuale
NUM_MODULES = %d modules
FILE_NOT_FOUND = Skedari "%s" nuk u gjetë
ADMIN_CONF_1 = ADMIN: ekzekutoj konfigurimet %s
ADMIN_CONF_2 = ADMIN %s: ekzekutoj konfigurimet %s
PAUSED = pushim
UNPAUSED = rikthim
UNABLE_PAUSE = Serveri nuk ishte në gjendje të ndalte lojën. Lojtarët e vërtetë në server janë të nevojshëm.
SERVER_PROC = Serveri vazhdon %s
PAUSING = pushuar
UNPAUSING = rikthyer
PAUSE = pusho
UNPAUSE = rikthe
COM_SENT_SERVER = Komandat e rreshtit "%s" dërgoi në server në konsole
CLIENTS_ON_SERVER = Lojtarët në server
IMMU = imunitet
RESERV = res
ACCESS = qasje
TOTAL_NUM = Totali %d
SKIP_MATCH = Anashkaloi "%s" (koordinim "%s")
SKIP_IMM = Anashkaloi "%s" (imunitet)
KICK_PL = Largoi "%s"
YOU_DROPPED = Ju jeni larguar sepse administratori ka lënë vetëm grupin e caktuar të lojtarëve
KICKED_CLIENTS = Largoi %d lojtarët
ADMIN_LEAVE_1 = ADMIN: largoi %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: largoi %s %s %s %s
ADMIN_NICK_1 = ADMIN: i ndryshoi emrin prej %s në "%s"
ADMIN_NICK_2 = ADMIN %s: i ndryshoi emrin prej %s në "%s"
CHANGED_NICK = Ndryshoi emrin prej %s në "%s"
ADMIN_EXTEND_1 = ADMIN: vazhdojë hartën për %d minuta
ADMIN_EXTEND_2 = ADMIN %s: vazhdojë hartën për %d minuta
MAP_EXTENDED = Harta "%s" është vazhduar për %d minuta
ADMIN_MUST_TEMPBAN = Ju mund të ndaloni lojtarët përkohësisht, deri në %d minuta
ADMIN_MUST_TEMPUNBAN = Ju vetem mund të zhbllokoni lojtarët që keni ndaluar kohët e fundit
[pt]
ADMIN_KICK_1 = ADMIN: expulsou %s
ADMIN_KICK_2 = ADMIN %s: expulsou %s
IP_REMOVED = O IP "%s" foi removido da lista de bans
AUTHID_REMOVED = O authid "%s" foi removido da lista de bans
ADMIN_UNBAN_1 = ADMIN: desbaniu %s
ADMIN_UNBAN_2 = ADMIN %s: desbaniu %s
ADMIN_ADDBAN_1 = ADMIN: baniu %s
ADMIN_ADDBAN_2 = ADMIN %s: baniu %s
BANNED = banido
REASON = razão
FOR_MIN = por %s minutos
PERM = permanentemente
CLIENT_BANNED = O cliente "%s" foi banido
ADMIN_SLAY_1 = ADMIN: matou %s
ADMIN_SLAY_2 = ADMIN %s: matou %s
CLIENT_SLAYED = O cliente "%s" foi morto
ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d de dano
ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d de dano
CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d de dano
MAP_NOT_FOUND = O mapa com esse nome não foi encontrado ou é inválido
ADMIN_MAP_1 = ADMIN: mudou de mapa para %s
ADMIN_MAP_2 = ADMIN %s: mudou de mapa para %s
NO_MORE_CVARS = Não é possível adicionar mais cvars para acesso rcon!
UNKNOWN_CVAR = Cvar desconhecida: %s
UNKNOWN_XVAR = Xvar desconhecida: %s
CVAR_NO_ACC = Tu não tens acesso a essa cvar
XVAR_NO_ACC = Tu não tens acesso a essa xvar
CVAR_IS = A cvar "%s" é "%s"
XVAR_IS = A xvar "%s" é "%s"
PROTECTED = PROTEGIDO
SET_CVAR_TO = %s mudou a cvar %s para "%s"
SET_XVAR_TO = %s mudou a xvar %s para "%s"
CVAR_CHANGED = A cvar "%s" foi mudada para "%s"
XVAR_CHANGED = A xvar "%s" foi mudada para "%s"
LOADED_PLUGINS = Plugins atualmente carregados
NAME = nome
VERSION = versão
AUTHOR = autor
FILE = ficheiro
STATUS = estado
PLUGINS_RUN = %d plugins, %d ativos
LOADED_MODULES = Módulos atualmente carregados
NUM_MODULES = %d módulos
FILE_NOT_FOUND = O ficheiro "%s" não foi encontrado
ADMIN_CONF_1 = ADMIN: executou a config %s
ADMIN_CONF_2 = ADMIN %s: executou a config %s
PAUSED = pausado
UNPAUSED = despausado
UNABLE_PAUSE = O servidor não pôde pausar o jogo. É preciso jogadores reais no servidor.
SERVER_PROC = O servidor procedeu %s
PAUSING = a pausar
UNPAUSING = a despausar
PAUSE = pausar
UNPAUSE = despausar
COM_SENT_SERVER = A linha de comando "%s" foi enviada para a consola do servidor
CLIENTS_ON_SERVER = Clientes no servidor
IMMU = imunidade
RESERV = reservação
ACCESS = acesso
TOTAL_NUM = Total %d
SKIP_MATCH = A saltar "%s" (a coincidir com "%s")
SKIP_IMM = A saltar "%s" (imunidade)
KICK_PL = A expulsar "%s"
YOU_DROPPED = Tu foste desconectado pois o admin só deixa entrar um grupo de clientes específico
KICKED_CLIENTS = Foram expulsos %d clientes
ADMIN_LEAVE_1 = ADMIN: deixou %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: deixou %s %s %s %s
ADMIN_NICK_1 = ADMIN: mudou o nome de %s para "%s"
ADMIN_NICK_2 = ADMIN %s: mudou o nome de %s para "%s"
CHANGED_NICK = Mudou o nome de %s para "%s"
ADMIN_EXTEND_1 = ADMIN: extendeu o mapa por %d minutos
ADMIN_EXTEND_2 = ADMIN %s: extendeu o mapa por %d minutos
MAP_EXTENDED = O mapa "%s" foi extendido por %d minutos
ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente, até %d minutos
ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que baniste recentemente

View File

@ -0,0 +1,75 @@
[en]
PLUGINCVARMENU_DESC = - displays the plugin cvar menu
PLUGINCMDMENU_DESC = - displays the plugin command menu
PLUGIN_NOT_RUNNING = Plugin %s is not running
CVAR_NOT_CHANGED = Cvar not changed
CVAR_PTR_ERROR = There was an error extracting the cvar pointer (name = "%s")
CVAR_TYPE_NEW_VALUE = Type in the new value for %s or !cancel to cancel
CVARS = Cvars
CMD_NAME_ERROR = There was an error extracting the command name
CMD_TYPE_PARAMS = Type in the parameters for %s or !cancel to cancel
CMD_EXEC_NO_PARAMS = Command "%s" executed with no parameters
EXEC_WITH_PARAMS = Execute with parameters
EXEC_WITHOUT_PARAMS = Execute with no parameters
CMD_NOT_EXECUTED = Command not executed
CMD_EXECUTED = Command "%s" executed with "%s"
COMMANDS = Commands
PLUGIN_CVAR_MENU = Plugin Cvar Menu
PLUGIN_CMD_MENU = Plugin Command Menu
[mk]
PLUGINCVARMENU_DESC = - prikazhuva menu so cvarovi za pluginite
PLUGINCMDMENU_DESC = - prikazhuva menu so komandi za pluginite
PLUGIN_NOT_RUNNING = Pluginot %s ne raboti
CVAR_NOT_CHANGED = Cvarot ne e promenen
CVAR_PTR_ERROR = Se pojavi greshka pri izvlekuvanje na cvar pointerot (ime = "%s")
CVAR_TYPE_NEW_VALUE = Vnesete ja novata vrednost za %s ili !cancel za da otkazhete
CVARS = Cvarovi
CMD_NAME_ERROR = Se pojavi greshka pri izvlekuvanjeto na imeto na komandata
CMD_TYPE_PARAMS = Vnesete gi parametrite za %s ili !cancel za da otkazhete
CMD_EXEC_NO_PARAMS = Komandata "%s" e izvrshena bez parametri
EXEC_WITH_PARAMS = Izvrshi so parametri
EXEC_WITHOUT_PARAMS = Izvrshi bez parametri
CMD_NOT_EXECUTED = Komandata ne e izvrshena
CMD_EXECUTED = Komandata "%s" e izvrshena so "%s"
COMMANDS = Komandi
PLUGIN_CVAR_MENU = Menu so cvarovi za pluginite
PLUGIN_CMD_MENU = Menu so komandi za pluginite
[bg]
PLUGINCVARMENU_DESC = - pokazva menu s cvarove za pluginite
PLUGINCMDMENU_DESC = - pokazva menu s komandi za pluginite
PLUGIN_NOT_RUNNING = Pluginut %s ne raboti
CVAR_NOT_CHANGED = Cvarut ne e promenen
CVAR_PTR_ERROR = Poqvi se greshka pri izvlichaneto na cvar pointera (ime = "%s")
CVAR_TYPE_NEW_VALUE = Vuvedete novata stoinost za %s ili !cancel za da otkajete
CVARS = Cvarove
CMD_NAME_ERROR = Poqvi se gresha pri izvlichaneto na imeto na komandata
CMD_TYPE_PARAMS = Vuvedete parametrite za %s ili !cancel za da otkajete
CMD_EXEC_NO_PARAMS = Komandata "%s" e izpulnena bez parametri
EXEC_WITH_PARAMS = Izpulni s parametri
EXEC_WITHOUT_PARAMS = Izpulni bez parametri
CMD_NOT_EXECUTED = Komandata ne e izpulnena
CMD_EXECUTED = Komandata "%s" e izpulnena s "%s"
COMMANDS = Komandi
PLUGIN_CVAR_MENU = Menu s cvarove za pluginite
PLUGIN_CMD_MENU = Menu s komandi za pluginite
[de]
PLUGINCVARMENU_DESC = - zeigt das Plugin-CVAR-Menü an
PLUGINCMDMENU_DESC = - zeigt das Plugin-Befehlsmenü an
PLUGIN_NOT_RUNNING = Plugin %s läuft nicht
CVAR_NOT_CHANGED = CVAR unverändert
CVAR_PTR_ERROR = Beim Versuch den Wert der CVAR (Name = "%s") auszugeben ist ein Fehler aufgetreten.
CVAR_TYPE_NEW_VALUE = Geben Sie den neuen Wert für %s ein - oder "!cancel", um abzubrechen.
CVARS = CVARs
CMD_NAME_ERROR = Beim Versuch den Befehlsnamen auszugeben ist ein Fehler aufgetreten.
CMD_TYPE_PARAMS = Geben Sie die Parameter für %s ein - oder "!cancel", um abzubrechen.
CMD_EXEC_NO_PARAMS = Befehl "%s" wurde ohne Parameter ausgeführt.
EXEC_WITH_PARAMS = Mit Parameter(n) ausführen
EXEC_WITHOUT_PARAMS = Ohne Parameter ausführen
CMD_NOT_EXECUTED = Befehl wurde nicht ausgeführt.
CMD_EXECUTED = Befehl "%s" wurde mit "%s" ausgeführt.
COMMANDS = Befehle
PLUGIN_CVAR_MENU = Plugin-CVAR-Menü
PLUGIN_CMD_MENU = Plugin-Befehlsmenü

File diff suppressed because it is too large Load Diff

View File

@ -14,94 +14,136 @@
#include <amxmodx> #include <amxmodx>
#include <amxmisc> #include <amxmisc>
#define SPEED 0.3 const SCROLLMSG_SIZE = 512;
#define SCROLLMSG_SIZE 512 const SCROLLMSG_TASK = 123;
new g_startPos new g_hostname[64];
new g_endPos new g_amx_scrollmsg_color_red;
new g_scrollMsg[SCROLLMSG_SIZE] new g_amx_scrollmsg_color_green;
new g_displayMsg[SCROLLMSG_SIZE] new g_amx_scrollmsg_color_blue;
new Float:g_xPos new g_amx_scrollmsg_only_dead;
new g_Length new Float:g_amx_scrollmsg_speed;
new g_Frequency new Float:g_amx_scrollmsg_x_move_amount;
new Float:g_amx_scrollmsg_x_start_pos;
new Float:g_amx_scrollmsg_x_end_pos;
new Float:g_amx_scrollmsg_y_pos;
new g_start_pos;
new g_end_pos;
new g_scroll_msg[SCROLLMSG_SIZE];
new g_display_msg[SCROLLMSG_SIZE];
new g_length;
new g_frequency;
new g_hud_object;
new Float:g_x_pos;
public plugin_init() public plugin_init()
{ {
register_plugin("Scrolling Message", AMXX_VERSION_STR, "AMXX Dev Team") register_plugin("Scrolling Message", AMXX_VERSION_STR, "AMXX Dev Team");
register_dictionary("scrollmsg.txt")
register_dictionary("common.txt") register_dictionary("scrollmsg.txt");
register_srvcmd("amx_scrollmsg", "setMessage") register_dictionary("common.txt");
register_srvcmd("amx_scrollmsg", "setMessage", _, "<message> <frequency>");
bind_pcvar_string(get_cvar_pointer("hostname"), g_hostname, charsmax(g_hostname));
bind_pcvar_num(create_cvar( "amx_scrollmsg_color_red", "200", _, "Red color amount", true, 0.0, true, 255.0), g_amx_scrollmsg_color_red);
bind_pcvar_num(create_cvar( "amx_scrollmsg_color_green", "100", _, "Green color amount", true, 0.0, true, 255.0), g_amx_scrollmsg_color_green);
bind_pcvar_num(create_cvar( "amx_scrollmsg_color_blue", "0", _, "Blue color amount", true, 0.0, true, 255.0), g_amx_scrollmsg_color_blue);
bind_pcvar_num(create_cvar( "amx_scrollmsg_only_dead", "0", _, "Display the message only to dead clients?", true, 0.0, true, 1.0), g_amx_scrollmsg_only_dead);
bind_pcvar_float(create_cvar( "amx_scrollmsg_speed", "0.3", _, "The rate at which the message will move", true, 0.0), g_amx_scrollmsg_speed);
bind_pcvar_float(create_cvar( "amx_scrollmsg_x_move_amount", "0.0063", _, "The amount of units to move on the X axis"), g_amx_scrollmsg_x_move_amount);
bind_pcvar_float(create_cvar( "amx_scrollmsg_x_start_pos", "0.35", _, "Starting position on the X axis", true, -1.0, true, 1.0), g_amx_scrollmsg_x_start_pos);
bind_pcvar_float(create_cvar( "amx_scrollmsg_x_end_pos", "0.65", _, "Ending position on the X axis", true, -1.0, true, 1.0), g_amx_scrollmsg_x_end_pos);
bind_pcvar_float(create_cvar( "amx_scrollmsg_y_pos", "0.9", _, "The Y position of the message", true, -1.0, true, 1.0), g_amx_scrollmsg_y_pos);
g_hud_object = CreateHudSyncObj();
AutoExecConfig();
} }
public showMsg() public showMsg()
{ {
new a = g_startPos, i = 0 new a = g_start_pos, i = 0;
while (a < g_endPos) while (a < g_end_pos)
g_displayMsg[i++] = g_scrollMsg[a++]
g_displayMsg[i] = 0
if (g_endPos < g_Length)
g_endPos++
if (g_xPos > 0.35)
g_xPos -= 0.0063
else
{ {
g_startPos++ g_display_msg[i++] = g_scroll_msg[a++];
g_xPos = 0.35
} }
set_hudmessage(200, 100, 0, g_xPos, 0.90, 0, SPEED, SPEED, 0.05, 0.05, 2) g_display_msg[i] = 0;
show_hudmessage(0, "%s", g_displayMsg)
if (g_end_pos < g_length)
{
g_end_pos++;
}
if (g_x_pos > g_amx_scrollmsg_x_start_pos)
{
g_x_pos -= g_amx_scrollmsg_x_move_amount;
}
else
{
g_start_pos++;
g_x_pos = g_amx_scrollmsg_x_start_pos;
}
set_hudmessage(g_amx_scrollmsg_color_red, g_amx_scrollmsg_color_green, g_amx_scrollmsg_color_blue, g_x_pos, g_amx_scrollmsg_y_pos, 0, g_amx_scrollmsg_speed, g_amx_scrollmsg_speed, 0.05, 0.05, 2);
if (g_amx_scrollmsg_only_dead)
{
new players[MAX_PLAYERS], pnum;
get_players_ex(players, pnum, GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV | GetPlayers_ExcludeAlive);
for (new i; i < pnum; i++)
{
ShowSyncHudMsg(players[i], g_hud_object, g_display_msg);
}
}
else
{
ShowSyncHudMsg(0, g_hud_object, g_display_msg);
}
} }
public msgInit() public msgInit()
{ {
g_endPos = 1 g_end_pos = 1;
g_startPos = 0 g_start_pos = 0;
g_xPos = 0.65 g_x_pos = g_amx_scrollmsg_x_end_pos;
new hostname[64] replace_stringex(g_scroll_msg, charsmax(g_scroll_msg), "%hostname%", g_hostname);
get_cvar_string("hostname", hostname, charsmax(hostname)) g_length = strlen(g_scroll_msg);
replace(g_scrollMsg, charsmax(g_scrollMsg), "%hostname%", hostname)
g_Length = strlen(g_scrollMsg) set_task_ex(g_amx_scrollmsg_speed, "showMsg", SCROLLMSG_TASK, "", 0, SetTask_RepeatTimes, g_length + 48);
console_print(0, g_scroll_msg);
set_task(SPEED, "showMsg", 123, "", 0, "a", g_Length + 48)
client_print(0, print_console, "%s", g_scrollMsg)
} }
public setMessage() public setMessage()
{ {
remove_task(123) /* remove current messaging */ remove_task(SCROLLMSG_TASK); /* remove current messaging */
read_argv(1, g_scrollMsg, charsmax(g_scrollMsg)) read_argv(1, g_scroll_msg, charsmax(g_scroll_msg));
g_Length = strlen(g_scrollMsg) g_length = strlen(g_scroll_msg);
g_frequency = read_argv_int(2);
new mytime[32] if (g_frequency > 0)
read_argv(2, mytime, charsmax(mytime))
g_Frequency = str_to_num(mytime)
if (g_Frequency > 0)
{ {
new minimal = floatround((g_Length + 48) * (SPEED + 0.1)) new minimal = floatround((g_length + 48) * (g_amx_scrollmsg_speed + 0.1));
if (g_Frequency < minimal) if (g_frequency < minimal)
{ {
server_print("%L", LANG_SERVER, "MIN_FREQ", minimal) server_print("%L", LANG_SERVER, "MIN_FREQ", minimal);
g_Frequency = minimal g_frequency = minimal;
} }
server_print("%L", LANG_SERVER, "MSG_FREQ", g_Frequency / 60, g_Frequency % 60) server_print("%L", LANG_SERVER, "MSG_FREQ", g_frequency / 60, g_frequency % 60);
set_task(float(g_Frequency), "msgInit", 123, "", 0, "b") set_task_ex(float(g_frequency), "msgInit", SCROLLMSG_TASK, "", 0, SetTask_Repeat);
} }
else else
server_print("%L", LANG_SERVER, "MSG_DISABLED") {
server_print("%L", LANG_SERVER, "MSG_DISABLED");
return PLUGIN_HANDLED }
return PLUGIN_HANDLED;
} }

View File

@ -399,6 +399,7 @@ datafiles = [
'nextmap.txt', 'nextmap.txt',
'pausecfg.txt', 'pausecfg.txt',
'plmenu.txt', 'plmenu.txt',
'pluginmenu.txt',
'restmenu.txt', 'restmenu.txt',
'scrollmsg.txt', 'scrollmsg.txt',
'stats_dod.txt', 'stats_dod.txt',