22/11/2018, 03:58 PM
hola quisiera que este top de knife osea de cuchillos sea un top normal que en vez de contar solo las kills con el knife que cuente las kills con todas las armas
(esque me gusta como se ve el top xD)
gracias de antemano
(esque me gusta como se ve el top xD)
gracias de antemano
Código PHP:
#include <amxmodx>
#include <adv_vault>
#include <amxmisc>
#define PLUGIN "Simple Knife Top"
#define VERSION "1.1"
#define AUTHOR "Destro"
enum {
CAMPO_KILLS,
CAMPO_DEATHS,
CAMPO_HS,
MAX_FIELDS
}
new g_campos[MAX_FIELDS]
new g_name[33][32], g_knife_kills[33], g_knife_deaths[33], g_knife_hs[33]
new g_msgSayText, g_maxplayers
new g_vault, g_sort
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /knifereset","top_reset",ADMIN_BAN);
register_clcmd("say /rank", "clcmd_rank")
register_clcmd("say /topk", "clcmd_top10")
register_event("DeathMsg", "event_DeathMsg", "a", "1>0")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
g_msgSayText = get_user_msgid("SayText")
g_maxplayers = get_maxplayers()
vault_init();
}
vault_init()
{
g_vault = adv_vault_open("topknife", false)
g_campos[CAMPO_KILLS] = adv_vault_register_field(g_vault, "kill")
g_campos[CAMPO_DEATHS] = adv_vault_register_field(g_vault, "death")
g_campos[CAMPO_HS] = adv_vault_register_field(g_vault, "hs")
adv_vault_init(g_vault)
g_sort = adv_vault_sort_create(g_vault, ORDER_DESC, 0, 2000, g_campos[CAMPO_KILLS])
}
public client_putinserver(id)
{
get_user_name(id, g_name[id], 31)
load_data(id)
}
public client_infochanged(id)
{
if(!is_user_connected(id)) return
static newname[32]
get_user_info(id, "name", newname, 31)
if(!equal(newname, g_name[id]))
{
copy(g_name[id], 31, newname)
load_data(id)
}
}
public event_DeathMsg()
{
static killer, victim, weapon[5]
killer = read_data(1)
victim = read_data(2)
read_data(4, weapon, 4)
if(weapon[0] != 'k' || weapon[3] != 'f') return
g_knife_kills[killer]++
g_knife_deaths[victim]++
if(read_data(3)) g_knife_hs[killer]++
}
public event_round_start()
{
for(new id=1; id <= g_maxplayers; id++)
{
if(is_user_connected(id)) save_data(id)
}
adv_vault_sort_update(g_vault, g_sort)
}
save_data(id)
{
adv_vault_set_start(g_vault)
adv_vault_set_field(g_vault, g_campos[CAMPO_KILLS], g_knife_kills[id])
adv_vault_set_field(g_vault, g_campos[CAMPO_DEATHS], g_knife_deaths[id])
adv_vault_set_field(g_vault, g_campos[CAMPO_HS], g_knife_hs[id])
adv_vault_set_end(g_vault, _, g_name[id])
}
load_data(id)
{
if(!adv_vault_get_prepare(g_vault, _, g_name[id]))
{
g_knife_kills[id] = g_knife_deaths[id] = g_knife_hs[id] = 0
return
}
g_knife_kills[id] = adv_vault_get_field(g_vault, g_campos[CAMPO_KILLS])
g_knife_deaths[id] = adv_vault_get_field(g_vault, g_campos[CAMPO_DEATHS])
g_knife_hs[id] = adv_vault_get_field(g_vault, g_campos[CAMPO_HS])
}
public clcmd_rank(id)
{
new rank_position = adv_vault_sort_key(g_vault, g_sort, 0, g_name[id])
if(!rank_position) chat_color(id, "!g-!tNo estas rankeado")
else chat_color(id, "!g-!tTu rank de knife es !y%d", rank_position)
}
public clcmd_top10(id)
{
new kills, deaths, hs, keyindex, name[46], motd[2500], len
len = formatex(motd, charsmax(motd),
"<html><style>\
body { background-color:#000000; }\
.tabel { color:#FFFFFF; }\
.header { background-color:#00BFFF; color:#000000;}\
</style><body>\
<br><br><table align=center border=1 width=90%% class=tabel>")
len += formatex(motd[len], charsmax(motd)-len,
"<tr><td class=header width=5%% align=center><strong>Rank</strong></td>\
<td class=header width=34%%><strong>Name</strong></td>\
<td class=header width=16%%><strong>KnifeKills</strong></td>\
<td class=header width=22%%><strong>KnifeDeaths</strong></td>\
<td class=header width=24%%><strong>KnifeHeadShots</strong></td></tr>")
new toploop = min(adv_vault_sort_numresult(g_vault, g_sort), 17)
for(new position=1; position <= toploop; position++)
{
keyindex = adv_vault_sort_position(g_vault, g_sort, position)
if(!adv_vault_get_prepare(g_vault, keyindex)) continue
kills = adv_vault_get_field(g_vault, g_campos[CAMPO_KILLS])
deaths = adv_vault_get_field(g_vault, g_campos[CAMPO_DEATHS])
hs = adv_vault_get_field(g_vault, g_campos[CAMPO_HS])
new asd = adv_vault_get_keyname(g_vault, keyindex, name, 15)
server_print("debug:[%d][%s]", asd, name)
replace_all(name, 45, "<", "<")
replace_all(name, 45, ">", ">")
len += formatex(motd[len], charsmax(motd)-len,
"<tr><td>%d</td>\
<td>%s</td>\
<td>%d</td>\
<td>%d</td>\
<td>%d</td>", position, name, kills, deaths, hs)
}
add(motd, charsmax(motd), "</table></body></html>")
show_motd(id, motd, "KnifeTop")
}
public top_reset(plr,level,cid) {
if(!cmd_access(plr,level,cid,0)) {
return PLUGIN_HANDLED;
}
new name[32];
get_user_name(plr, name, 31);
static knifetop[128], len;
adv_vault_closed(g_vault);
if (!len)
{
get_localinfo("amxx_datadir", knifetop, charsmax(knifetop))
add(knifetop, charsmax(knifetop), "/adv_vault/topknife/");
len = strlen(knifetop);
}
formatex(knifetop[len], charsmax(knifetop)-len, "data.dat");
if( file_exists(knifetop))
delete_file(knifetop);
formatex(knifetop[len], charsmax(knifetop)-len, "simple.dat");
if( file_exists(knifetop))
delete_file(knifetop);
formatex(knifetop[len], charsmax(knifetop)-len, "index.dat");
if( file_exists(knifetop))
delete_file(knifetop);
formatex(knifetop[len], charsmax(knifetop)-len, "fields.dat");
if( file_exists(knifetop))
delete_file(knifetop);
new i = 0;
formatex(knifetop[len], charsmax(knifetop)-len, "sort_%d.dat", i);
while (file_exists(knifetop))
{
delete_file(knifetop);
formatex(knifetop[len], charsmax(knifetop)-len, "sort_%d.dat", ++i);
}
vault_init();
chat_color(0, "!g[SOK]!y ADMIN!t %s!y reseted the KnifeTop top", name)
return PLUGIN_HANDLED;
}
stock chat_color(const id, const input[], any:...)
{
static msg[191]
if(numargs() == 2)
copy(msg, 190, input)
else
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_msgSayText, _, id)
write_byte(id)
write_string(msg)
message_end()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/