jjey1 писал(а): 50рублей думаю хватит! в интернете плагинов много золотых! но не где нету с количеством патронов!
Тут делать по сути нехрен) Взял любой плагин в интернете золотого оружия! того же Калаша!
Есть 3 модели сразу в одном из них! потом переписал на M4A1, потом переписал на Deagle! Комплит!
Готовые три плагина! с золотыми оружиями!!
Модератор: Leonidddd
Asmodai писал(а):Угадайте чо будет при message = "%s%s%s%s%s%s%s%s". Оно еще и из юзер-инпут данных поступает, вообще шик.
Subb98 писал(а):Pain96 писал(а):1.
- Код: Выделить всё
ChatColor(0, "%s", Message)
Почему бы не (?):
- Код: Выделить всё
ChatColor(0, Message)
RevCrew писал(а):Pain96, насчет первого, так как вы написали делать небезопасно.
Всё-таки, хочется увидеть информацию по данному заявлению. Мой опыт показывает, что "небезопасным" является как раз такой:
- Код: Выделить всё
ChatColor(0, "%s", Message)
вариант и может работать некорректно в некоторых случаях (в каких именно - сейчас затрудняюсь ответить, нужно тестировать).
Pain96 писал(а):Subb98, тут скорее нет логики, я поэтому и обратила на это внимание. Если бы аргументов было несколько, то форматирование строки имело бы место быть, а здесь же мы содержим уже готовый буфер с отформатированным сообщением, который уже можно использовать, но автор отнесся к моему совету как к критике, почему-то.
Пример, где это "имеет место быть":
- Код: Выделить всё
ChatColor(0, "^4[Некий префикс]^1 %s", Message)
L 02/20/2017 - 20:34:24: Start of error session.
L 02/20/2017 - 20:34:24: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 20:34:24: replace() buffer not big enough (98>=97)
L 02/20/2017 - 20:34:24: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 20:34:24: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 20:34:24: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 20:34:24: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 20:34:24: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 20:54:59: Start of error session.
L 02/20/2017 - 20:54:59: Info (map "de_inferno_2x2") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 20:54:59: replace() buffer not big enough (98>=97)
L 02/20/2017 - 20:54:59: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 20:54:59: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 20:54:59: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 20:54:59: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 20:54:59: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:11:29: Start of error session.
L 02/20/2017 - 21:11:29: Info (map "css_cache") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 21:11:29: replace() buffer not big enough (98>=97)
L 02/20/2017 - 21:11:29: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:11:29: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:11:29: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:11:29: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 21:11:29: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:21:57: Start of error session.
L 02/20/2017 - 21:21:57: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 21:21:57: replace() buffer not big enough (98>=97)
L 02/20/2017 - 21:21:57: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:21:57: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:21:57: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:21:57: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 21:21:57: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:22:53: Start of error session.
L 02/20/2017 - 21:22:53: Info (map "cs_globalstrike") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 21:22:53: replace() buffer not big enough (98>=97)
L 02/20/2017 - 21:22:53: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:22:53: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:22:53: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:22:53: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 21:22:53: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:38:52: Start of error session.
L 02/20/2017 - 21:38:52: Info (map "awp_india") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 21:38:52: replace() buffer not big enough (16>=15)
L 02/20/2017 - 21:38:52: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:38:52: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:38:52: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:38:52: [AMXX] [1] info_connect.sma::ReplaceMessage (line 145)
L 02/20/2017 - 21:38:52: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:40:31: replace() buffer not big enough (88>=86)
L 02/20/2017 - 21:40:31: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:40:31: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:40:31: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:40:31: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 21:40:31: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:43:31: Start of error session.
L 02/20/2017 - 21:43:31: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20170220.log")
L 02/20/2017 - 21:43:31: replace() buffer not big enough (16>=15)
L 02/20/2017 - 21:43:31: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:43:31: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:43:31: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:43:31: [AMXX] [1] info_connect.sma::ReplaceMessage (line 145)
L 02/20/2017 - 21:43:31: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 21:43:46: replace() buffer not big enough (88>=86)
L 02/20/2017 - 21:43:46: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 21:43:46: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 21:43:46: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 21:43:46: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 21:43:46: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
L 02/20/2017 - 22:04:31: replace() buffer not big enough (98>=97)
L 02/20/2017 - 22:04:31: [AMXX] Displaying debug trace (plugin "info_connect.amxx", version "1.1")
L 02/20/2017 - 22:04:31: [AMXX] Run time error 10: native error (native "replace")
L 02/20/2017 - 22:04:31: [AMXX] [0] string.inc::replace_all (line 906)
L 02/20/2017 - 22:04:31: [AMXX] [1] info_connect.sma::ReplaceMessage (line 150)
L 02/20/2017 - 22:04:31: [AMXX] [2] info_connect.sma::client_putinserver (line 119)
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <geoip>
#define PLUGIN "InfoConnect"
#define VERSION "1.1"
#define AUTHOR "revcrew"
#define PLUGIN_NAME "connect load"
#define get_user_state(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
#define add_user_state(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
#define remove_user_state(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
new g_user_steam
const MAX_LENGHT = 25
const PLAYERS = 32
/* Cvars */
enum _:pCvars
{
CVAR_SOUND,
CVAR_CONNECT,
CVAR_PUTIN,
CVAR_DISC,
CVAR_CONNECT_M,
CVAR_PUTIN_M,
CVAR_DISC_M,
}
static gCvar[pCvars]
enum INFO
{
NAME,
STEAMID,
IP,
COUNTRY,
CITY
}
new InfoChat[PLAYERS + 1][INFO][MAX_LENGHT]
new MSGid
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
MSGid = get_user_msgid("SayText")
server_print("%s RUN",PLUGIN_NAME)
RegisterCvars()
}
RegisterCvars()
{
static value[64]
get_configsdir(value,63)
gCvar[CVAR_SOUND] = register_cvar("ic_enable_sound","1")
gCvar[CVAR_CONNECT] = register_cvar("ic_enable_connect","1")
gCvar[CVAR_PUTIN] = register_cvar("ic_enable_putin","1")
gCvar[CVAR_DISC] = register_cvar("ic_enable_disc","1")
gCvar[CVAR_CONNECT_M] = register_cvar("ic_enable_connect_m","")
gCvar[CVAR_PUTIN_M] = register_cvar("ic_enable_putin_m","")
gCvar[CVAR_DISC_M] = register_cvar("ic_enable_disc_m","")
formatex(value, 63, "%s/infochat.cfg",value)
if(file_exists(value))
{
server_cmd("exec %s",value)
server_exec();
}
}
public client_connect(id)
{
is_user_steam(id) ? add_user_state(g_user_steam, id) : remove_user_state(g_user_steam, id)
get_user_name(id,InfoChat[id][NAME], charsmax(InfoChat[][]))
get_user_authid(id,InfoChat[id][STEAMID], charsmax(InfoChat[][]))
get_user_ip(id,InfoChat[id][IP], charsmax(InfoChat[][]), 1)
geoip_country(InfoChat[id][IP], InfoChat[id][COUNTRY], charsmax(InfoChat[][]))
geoip_city(InfoChat[id][IP], InfoChat[id][CITY], charsmax(InfoChat[][]))
if(!get_pcvar_num(gCvar[CVAR_CONNECT]))
return;
static Message[160]
get_pcvar_string(gCvar[CVAR_CONNECT_M], Message, charsmax(Message))
if(!Message[0])
return;
ReplaceMessage(id,Message,charsmax(Message))
ChatColor(0, "%s", Message)
}
public client_putinserver(id)
{
static szNum[ 8 ];
if(get_pcvar_num(gCvar[CVAR_SOUND]))
client_cmd(0,"spk buttons/bell1.wav")
if(!get_pcvar_num(gCvar[CVAR_PUTIN]))
return;
static Message[160]
get_pcvar_string(gCvar[CVAR_PUTIN_M], Message, charsmax(Message))
if(!Message[0])
return;
replace_all(Message,charsmax(Message),"%connect%", szNum)
ReplaceMessage(id,Message,charsmax(Message))
ChatColor(0, "%s", Message)
}
public client_disconnected(id)
{
if(get_pcvar_num(gCvar[CVAR_SOUND]))
client_cmd(0,"spk buttons/blip1.wav")
if(!get_pcvar_num(gCvar[CVAR_DISC]))
return;
static Message[160]
get_pcvar_string(gCvar[CVAR_DISC_M], Message, charsmax(Message))
if(!Message[0])
return;
ReplaceMessage(id,Message,charsmax(Message))
ChatColor(0, "%s", Message)
}
ReplaceMessage(id,msg[], len)
{
replace_all(msg,len,"%name%", InfoChat[id][NAME])
replace_all(msg,len,"%steamid%", InfoChat[id][STEAMID])
replace_all(msg,len,"%ip%", InfoChat[id][IP])
replace_all(msg,len,"%country%", InfoChat[id][COUNTRY])
replace_all(msg,len,"%city%", InfoChat[id][CITY])
if( get_user_state(g_user_steam, id) )
replace_all(msg,len,"%steam%", "STEAM")
else
replace_all(msg,len,"%steam%", "NON-STEAM")
replace_all(msg,len,"%4%", "^4")
replace_all(msg,len,"%3%", "^3")
replace_all(msg,len,"%1%", "^1")
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, MSGid, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
return 1;
}
stock bool:is_user_steam(id)
{
// Author Sh0oter
static dp_pointer
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id)
server_exec()
return (get_pcvar_num(dp_pointer) == 2) ? true : false
}
return false
}
stock get_configsdir(name[],len)
{
return get_localinfo("amxx_configsdir",name,len);
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
ic_enable_putin_m "%4%[qq] %1%игрок %4%%name% %1%(%3%%steam%%1%) зашёл на сервер из %1%(%4%%country%%1%) %1%(%4%%city%%1%)"
ic_enable_disc_m "%4%[Бай-бай] %1%игрок %4%%name% %1%вышел с сервера"
Вернуться в Утвержденные плагины
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9