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

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

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

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

Переделать players_info

Статус пользователя Andrey777best
сообщение 16.8.2015, 9:05
Сообщение #1


Стаж: 13 лет
Город: Харьков

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

Всем привет, так как автора уже давно тут нет, кто может переделать этот плагин что бы не грузил сильно сервер, убрать дисконнекты, hud, логирование..
Вообщем оставить только квары "Звук, который воспроизводится при коннекте игрока, не показывать сообщение о входе игрока если это бот, Показывать сообщение о входе игрока, если это HLTV" и так же оставить чтобы можно было настроить по вкусу connected_msg "[!gКоннект!n] !t%nick%!n (!g%ip%!n) (!g%steamid%!n)"
Cкрытый текст
Код:
/* AMX Mod X Script
*
* Последние обновление: 15 апреля, 2009
* Авторы: Eugene N. и noga модефицировал BuTaMuH
*
* По вашим предложениям писать в ICQ 235430324 или в теме на форуме
*
**/

#include <amxmodx>
#include <amxmisc>
#include <geoip>
#include <geoipse>

// Files
const XLEN = 128
new storedIps_File[XLEN] = "stored_ips.ini"
new storedIps_Count = 0
new storedIps[64][16]

new LogName_C[128]
new LogName_D[128]

// PCVARS

new gpc_c_sound_enable, sz_c_sound_file[64]
new gpc_d_sound_enable, sz_d_sound_file[64]

new gpc_c_msg_enable, gpc_c_skip_bots, gpc_c_skip_hltvs, gpc_c_msg_hudcolor, gpc_c_msg_hudxy, gpc_c_msg_type, gpcs_c_msg
new gpc_c_log_enable, gpc_c_log_skip_bots, gpc_c_log_skip_hltvs, gpcs_c_log_msg

new gpc_d_msg_enable, gpc_d_skip_bots, gpc_d_skip_hltvs, gpc_d_msg_hudcolor, gpc_d_msg_hudxy, gpc_d_msg_type, gpcs_d_msg
new gpc_d_log_enable, gpc_d_log_skip_bots, gpc_d_log_skip_hltvs, gpcs_d_log_msg


// Stuff
new steamidsProtect[][] =
{
"VALVE_ID_LAN",
"VALVE_ID_PENDING",
"STEAM_666:88:666",
"STEAM_ID_PENDING",
"STEAM_ID_LAN"
}

// ColorChat
enum ChatColor
{
CHATCOLOR_NORMAL = 1,
CHATCOLOR_GREEN,
CHATCOLOR_TEAM_COLOR,
CHATCOLOR_GREY,
CHATCOLOR_RED,
CHATCOLOR_BLUE,
}

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

new g_msgSayText
new g_msgTeamInfo

public plugin_precache()
{
register_cvar("connected_sound_file", "fvox/blip.wav")
register_cvar("disconnected_sound_file", "fvox/blip.wav")

get_cvar_string("connected_sound_file", sz_c_sound_file, sizeof sz_c_sound_file -1)
new_replacer(sz_c_sound_file, sizeof sz_c_sound_file -1, ";", "")

if(!precache_sound(sz_c_sound_file))
log_amx("Can't precache '%s' from cvar 'connected_sound_file'", sz_c_sound_file)

get_cvar_string("disconnected_sound_file", sz_d_sound_file, sizeof sz_d_sound_file -1)
new_replacer(sz_d_sound_file, sizeof sz_d_sound_file -1, ";", "")

if(!precache_sound(sz_d_sound_file))
log_amx("Can't precache '%s' from cvar 'disconnected_sound_file'", sz_d_sound_file)
}

public plugin_init()
{
register_plugin("Players Info", "1.01", "Eugene N. & noga")

register_concmd("players_locations", "cmdShowLocations", ADMIN_ALL, "- Locations of players")


gpc_c_sound_enable = register_cvar("connected_sound_enable", "1")

gpc_c_msg_enable = register_cvar("connected_msg_enable", "1")

gpc_c_skip_bots = register_cvar("connected_skip_bots", "0")

gpc_c_skip_hltvs = register_cvar("connected_skip_hltvs", "0")

gpc_c_msg_type = register_cvar("connected_msg_type", "0")

gpc_c_msg_hudcolor = register_cvar("connected_msg_hudcolor", "255 170 000")

gpc_c_msg_hudxy = register_cvar("connected_msg_hudxy", "0.0 0.60")

gpcs_c_msg = register_cvar("connected_msg", "!t%nick%!n connected")

gpc_c_log_enable = register_cvar("connected_log_enable", "1")

gpc_c_log_skip_bots = register_cvar("connected_log_skip_bots", "0")

gpc_c_log_skip_hltvs = register_cvar("connected_log_skip_hltvs", "0")

gpcs_c_log_msg = register_cvar("connected_log_msg",
"Присоединился: %nick% [%ip%] [%steamid%] [%country% , %city%]")


gpc_d_sound_enable = register_cvar("disconnected_sound_enable", "1")

gpc_d_msg_enable = register_cvar("disconnected_msg_enable", "1")

gpc_d_skip_bots = register_cvar("disconnected_skip_bots", "0")

gpc_d_skip_hltvs = register_cvar("disconnected_skip_hltvs", "0")

gpc_d_msg_type = register_cvar("disconnected_msg_type", "0")

gpc_d_msg_hudcolor = register_cvar("disconnected_msg_hudcolor", "255 170 000")

gpc_d_msg_hudxy = register_cvar("disconnected_msg_hudxy", "0.0 0.67")

gpcs_d_msg = register_cvar("disconnected_msg", "!t%nick%!n disconnected")

gpc_d_log_enable = register_cvar("disconnected_log_enable", "1")

gpc_d_log_skip_bots = register_cvar("disconnected_log_skip_bots", "0")

gpc_d_log_skip_hltvs = register_cvar("disconnected_log_skip_hltvs", "0")

gpcs_d_log_msg = register_cvar("disconnected_log_msg",
"Отсоединился: %nick% [%ip%] [%steamid%] [%country% , %city%]")


g_msgSayText = get_user_msgid("SayText")
g_msgTeamInfo = get_user_msgid("TeamInfo")
}

public plugin_cfg()
{
new cfgdir[XLEN]
get_configsdir(cfgdir, XLEN -1)

server_cmd("exec %s/players_info.cfg", cfgdir)

format(storedIps_File, XLEN -1, "%s/%s", cfgdir, storedIps_File)

if(!file_exists(storedIps_File))
{
write_file(storedIps_File, "; Plugin by Eugene N. & noga^n; ")
write_file(storedIps_File, "; Сюда добавляйте IP игроков, которые не должны")
write_file(storedIps_File, "; показываться при коннекте\дисконнекте на сервере")
write_file(storedIps_File, "; ^n; Комментарии: // или ;^n")
}
else
{
new szFile = fopen(storedIps_File, "rt")

new buffer[16]

while(!feof(szFile))
{
fgets(szFile, buffer, sizeof buffer -1)

if((strlen(buffer) <= 0) || (buffer[0] == ';') || ((buffer[0] == '/') && (buffer[1] == '/')))
continue

parse(buffer, storedIps[storedIps_Count], 15)

storedIps_Count++
}

fclose(szFile)
}



new logsdir[XLEN]
get_localinfo("amxx_logs", logsdir, XLEN -1)

new direxists[XLEN];
format(direxists, XLEN -1, "/%s/Players Info Logs", logsdir)
if(!dir_exists(direxists))
mkdir(direxists)

format(logsdir, XLEN -1, "%s/Connected Players", direxists)
if(!dir_exists(logsdir))
mkdir(logsdir)



new monthyear[12]
get_time("%d-%m-%Y", monthyear, sizeof monthyear -1)

new file[XLEN]
format(file, XLEN -1, "%s.txt", monthyear)




format(LogName_C, XLEN -1, "%s/%s", logsdir, file)
if(!file_exists(LogName_C))
write_file(LogName_C, " ")

format(logsdir, XLEN -1, "%s/Disconnected Players", direxists)
if(!dir_exists(logsdir))
mkdir(logsdir)

format(LogName_D, XLEN -1, "%s/%s", logsdir, file)
if(!file_exists(LogName_D))
write_file(LogName_D, " ")
}

public client_putinserver(id)
{
if(get_pcvar_num(gpc_c_sound_enable))
{
if(strlen(sz_c_sound_file))
{
new_replacer(sz_c_sound_file, sizeof sz_c_sound_file -1, ";", "")

client_cmd(0, "spk %s", sz_c_sound_file)
}
}

new isBot = is_user_bot(id)
new isHltv = is_user_hltv(id)

if
(
get_pcvar_num(gpc_c_msg_enable)
&&
(
(isBot && get_pcvar_num(gpc_c_skip_bots))
|| (isHltv && get_pcvar_num(gpc_c_skip_hltvs))
|| (!isBot && !isHltv)
)
)

{
showMessage(id, 0)
}

if
(
get_pcvar_num(gpc_c_log_enable)
&&
(
(isBot && get_pcvar_num(gpc_c_log_skip_bots))
|| (isHltv && get_pcvar_num(gpc_c_log_skip_hltvs))
|| (!isBot && !isHltv)
)
)

{
logging(id, 0)
}
}

public client_disconnect(id)
{
if(get_pcvar_num(gpc_d_sound_enable))
{
if(strlen(sz_d_sound_file))
{
client_cmd(0, "spk %s", sz_d_sound_file)
}
}

new isBot = is_user_bot(id)
new isHltv = is_user_hltv(id)

if
(
get_pcvar_num(gpc_d_msg_enable)
&&
(
(isBot && get_pcvar_num(gpc_d_skip_bots))
|| (isHltv && get_pcvar_num(gpc_d_skip_hltvs))
|| (!isBot && !isHltv)
)
)

{
showMessage(id, 1)
}

if
(
get_pcvar_num(gpc_d_log_enable)
&&
(
(isBot && get_pcvar_num(gpc_d_log_skip_bots))
|| (isHltv && get_pcvar_num(gpc_d_log_skip_hltvs))
|| (!isBot && !isHltv)
)
)

{
logging(id, 1)
}
}


public showMessage(id, mode)
{
static message[191], name[32], ip[16], steamid[35], country[32], city[32], i = 0

get_user_name(id, name, sizeof name -1)

if(strlen(name) > 20)
add(name, 20, "...")

get_user_ip(id, ip, sizeof ip -1, 1)

if(IsLocalIp(ip))
{
country = "Украина"
city = "Киев ISP N-line"
}
else
{
geoip_country(ip, country, sizeof country -1)
geoip_city(ip, city, sizeof city -1)
}

for(i=0;i<storedIps_Count -1;i++)
{
if(equali(ip, storedIps[i]))
{
ip = "protected"

break
}
}

get_user_authid(id, steamid, sizeof steamid -1)

for(i=0;i<sizeof steamidsProtect;i++)
{
if(equali(steamid, steamidsProtect[i]))
{
steamid = "No Steam ID"

break
}
}

switch(mode)
{
case 0: get_pcvar_string(gpcs_c_msg, message, sizeof message -1)
case 1: get_pcvar_string(gpcs_d_msg, message, sizeof message -1)
}

new_replacer(message, sizeof message -1, "%nick%", name)
new_replacer(message, sizeof message -1, "%ip%", ip)
new_replacer(message, sizeof message -1, "%steamid%", steamid)
new_replacer(message, sizeof message -1, "%country%", country)
new_replacer(message, sizeof message -1, "%city%", city)

new players[32], num
get_players(players, num)

switch(mode)
{
case 0:
{
switch(get_pcvar_num(gpc_c_msg_type))
{
case 1:
{
new szCvarHudTemp[12], RGB[3] = { 255, 170, 0 }, tempstrnu[3][4]
get_pcvar_string(gpc_c_msg_hudcolor, szCvarHudTemp, sizeof szCvarHudTemp -1)

parse(szCvarHudTemp, tempstrnu[0], 3, tempstrnu[1], 3, tempstrnu[2], 3)
RGB[0] = str_to_num(tempstrnu[0])
RGB[1] = str_to_num(tempstrnu[1])
RGB[2] = str_to_num(tempstrnu[2])

new Float:Hud_XY[2] = { 0.0, 0.60 }, tempstrflo[2][6]
get_pcvar_string(gpc_c_msg_hudxy, szCvarHudTemp, sizeof szCvarHudTemp -1)

parse(szCvarHudTemp, tempstrflo[0], 5, tempstrflo[1], 5)
Hud_XY[0] = str_to_float(tempstrflo[0])
Hud_XY[1] = str_to_float(tempstrflo[1])

new_replacer(message, sizeof message -1, "!t", "")
new_replacer(message, sizeof message -1, "!g", "")
new_replacer(message, sizeof message -1, "!n", "")

for(i=0;i<num;i++)
{
set_hudmessage(RGB[0], RGB[1], RGB[2], Hud_XY[0], Hud_XY[1], 0, 6.0, 6.0, 0.1, 0.2, 3)
show_hudmessage(players[i], "%s", message)
}
}
default:
{
new_replacer(message, sizeof message -1, "!t", "^x03")
new_replacer(message, sizeof message -1, "!g", "^x04")
new_replacer(message, sizeof message -1, "!n", "^x01")

for(i=0;i<num;i++)
{
colorChat(players[i], CHATCOLOR_NORMAL, "%s", message)
}
}
}
}
case 1:
{
switch(get_pcvar_num(gpc_d_msg_type))
{
case 1:
{
new szCvarHudTempDis[12], RGBDis[3] = { 255, 170, 0 }, tempstrnuDis[3][4]
get_pcvar_string(gpc_d_msg_hudcolor, szCvarHudTempDis, sizeof szCvarHudTempDis -1)

parse(szCvarHudTempDis, tempstrnuDis[0], 3, tempstrnuDis[1], 3, tempstrnuDis[2], 3)
RGB[0] = str_to_num(tempstrnuDis[0])
RGB[1] = str_to_num(tempstrnuDis[1])
RGB[2] = str_to_num(tempstrnuDis[2])

new Float:Hud_YX[2] = { 0.0, 0.67 }, tempstrfloDis[2][6]
get_pcvar_string(gpc_d_msg_hudxy, szCvarHudTempDis, sizeof szCvarHudTempDis -1)

parse(szCvarHudTempDis, tempstrfloDis[0], 5, tempstrfloDis[1], 5)
Hud_YX[0] = str_to_float(tempstrfloDis[0])
Hud_YX[1] = str_to_float(tempstrfloDis[1])

new_replacer(message, sizeof message -1, "!t", "")
new_replacer(message, sizeof message -1, "!g", "")
new_replacer(message, sizeof message -1, "!n", "")

for(i=0;i<num;i++)
{
set_hudmessage(RGBDis[0], RGBDis[1], RGBDis[2], Hud_YX[0], Hud_YX[1], 0, 6.0, 6.0, 0.1, 0.2, 3)
show_hudmessage(players[i], "%s", message)
}
}
default:
{
new_replacer(message, sizeof message -1, "!t", "^x03")
new_replacer(message, sizeof message -1, "!g", "^x04")
new_replacer(message, sizeof message -1, "!n", "^x01")

for(i=0;i<num;i++)
{
colorChat(players[i], CHATCOLOR_NORMAL, "%s", message)
}
}
}
}
}
}

public logging(id, mode)
{
static message[191], name[32], ip[16], steamid[35], country[32], city[32], i = 0

get_user_name(id, name, sizeof name -1)

if(strlen(name) > 20)
add(name, 20, "...")

get_user_ip(id, ip, sizeof ip -1, 1)

if(IsLocalIp(ip))
{
country = "Украина"
city = "Киев ISP N-line"
}
else
{
geoip_country(ip, country, sizeof country -1)
geoip_city(ip, city, sizeof city -1)
}

for(i=0;i<storedIps_Count -1;i++)
{
if(equali(ip, storedIps[i]))
{
ip = "protected"

break
}
}

get_user_authid(id, steamid, sizeof steamid -1)

for(i=0;i<sizeof steamidsProtect;i++)
{
if(equali(steamid, steamidsProtect[i]))
{
steamid = "No Steam ID"

break
}
}

switch(mode)
{
case 0: get_pcvar_string(gpcs_c_log_msg, message, sizeof message -1)
case 1: get_pcvar_string(gpcs_d_log_msg, message, sizeof message -1)
}

new_replacer(message, sizeof message -1, "%nick%", name)
new_replacer(message, sizeof message -1, "%ip%", ip)
new_replacer(message, sizeof message -1, "%steamid%", steamid)
new_replacer(message, sizeof message -1, "%country%", country)
new_replacer(message, sizeof message -1, "%city%", city)

switch(mode)
{
case 0: log_to_file(LogName_C, "%s", message)
case 1: log_to_file(LogName_D, "%s", message)
}
}

public cmdShowLocations(id)
{
new players[32], num
get_players(players, num, "ch")

if(num <= 0)
{
console_print(id, "Sorry, players not found on server")

return PLUGIN_HANDLED
}

console_print(id, "%s %-22.22s %-22.22s %-22.22s", "#", "Player", "Country", "City")

new pid, name[32], ip[16], country[32], city[32]

for(new i=0;i<num;i++)
{
pid = players[i]

get_user_name(pid, name, 31)

if(strlen(name) > 17)
add(name, 17, "...")

get_user_ip(pid, ip, 15, 1)

if(IsLocalIp(ip))
{
country = "Украина"
city = "Киев ISP N-line"
}
else
{
geoip_country(ip, country, 31)
geoip_city(ip, city, 31)
}

console_print(id, "%-2d %-22.22s %-22.22s %-22.22s", i+1, name, country, city)
}

return PLUGIN_HANDLED
}

stock new_replacer(text[], len, const what[], const with[])
while(replace(text, len, what, with)) {}

bool:IsLocalIp(checked_ip[16])
{
new temp[32]

copy(temp, 3, checked_ip)

if(equal(temp, "10.") || equal(temp, "127"))
return true

copy(temp, 7, checked_ip)

if(equal(temp, "192.168"))
return true

return false
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...)
{
new team, index, MSG_Type
new bool:teamChanged = false
static message[192]

switch(color)
{
case CHATCOLOR_NORMAL:
{
message[0] = 0x01
}
case CHATCOLOR_GREEN:
{
message[0] = 0x04
}
default:
{
message[0] = 0x03
}
}

vformat(message[1], 190, msg, 4)

if(id == 0)
{
index = findAnyPlayer()
MSG_Type = MSG_ALL
}
else
{
index = id
MSG_Type = MSG_ONE
}

if(index != 0)
{
team = get_user_team(index)

if(color == CHATCOLOR_RED && team != 1)
{
messageTeamInfo(index, MSG_Type, g_TeamName[1])
teamChanged = true
}
else if(color == CHATCOLOR_BLUE && team != 2)
{
messageTeamInfo(index, MSG_Type, g_TeamName[2])
teamChanged = true
}
else if(color == CHATCOLOR_GREY && team != 0)
{
messageTeamInfo(index, MSG_Type, g_TeamName[0])
teamChanged = true
}

messageSayText(index, MSG_Type, message)

if(teamChanged)
{
messageTeamInfo(index, MSG_Type, g_TeamName[team])
}
}
}

messageSayText(id, type, message[])
{
message_begin(type, g_msgSayText, _, id)
write_byte(id)
write_string(message)
message_end()
}

messageTeamInfo(id, type, team[])
{
message_begin(type, g_msgTeamInfo, _, id)
write_byte(id)
write_string(team)
message_end()
}

findAnyPlayer()
{
static players[32], inum, pid

get_players(players, inum, "ch")

for (new a = 0; a < inum; a++)
{
pid = players[a]

if(is_user_connected(pid))
return pid
}

return 0
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

Прикрепленный файл  join_ip.sma ( 15,73 килобайт ) Кол-во скачиваний: 6
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: