hola quiero que este top sea normal y no se knife
#1
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

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_msgSayTextg_maxplayers

new g_vaultg_sort

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
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_vaultORDER_DESC02000g_campos[CAMPO_KILLS])
}

public 
client_putinserver(id)
{
    
get_user_name(idg_name[id], 31)
    
    
load_data(id)
}

public 
client_infochanged(id)
{
    if(!
is_user_connected(id)) return

    static 
newname[32]
    
    
get_user_info(id"name"newname31)

    if(!
equal(newnameg_name[id]))
    {
        
copy(g_name[id], 31newname)
        
load_data(id)
    }
}

public 
event_DeathMsg()
{
    static 
killervictimweapon[5]
    
    
killer read_data(1)
    
victim read_data(2)   
    
read_data(4weapon4)
      
    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=1id <= g_maxplayersid++)
    {
        if(
is_user_connected(id)) save_data(id)
    }
    
    
adv_vault_sort_update(g_vaultg_sort)
}

save_data(id)
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_KILLS], g_knife_kills[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_DEATHS], g_knife_deaths[id])
    
adv_vault_set_field(g_vaultg_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_vaultg_campos[CAMPO_KILLS])
    
g_knife_deaths[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_DEATHS])
    
g_knife_hs[id] = adv_vault_get_field(g_vaultg_campos[CAMPO_HS])
}

public 
clcmd_rank(id)
{
    new 
rank_position adv_vault_sort_key(g_vaultg_sort0g_name[id])
    
    if(!
rank_positionchat_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 
killsdeathshskeyindexname[46], motd[2500], len

    len 
formatex(motdcharsmax(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_vaultg_sort), 17)

    for(new 
position=1position <= toploopposition++)
    {
        
keyindex adv_vault_sort_position(g_vaultg_sortposition)

        if(!
adv_vault_get_prepare(g_vaultkeyindex)) continue
        
        
kills adv_vault_get_field(g_vaultg_campos[CAMPO_KILLS])
        
deaths adv_vault_get_field(g_vaultg_campos[CAMPO_DEATHS])
        
hs adv_vault_get_field(g_vaultg_campos[CAMPO_HS])
        
        new 
asd adv_vault_get_keyname(g_vaultkeyindexname15)
        
server_print("debug:[%d][%s]"asdname)
        
        
replace_all(name45"<""&lt")
        
replace_all(name45">""&gt")
  
        
len += formatex(motd[len], charsmax(motd)-len,
        
"<tr><td>%d</td>\
        <td>%s</td>\
        <td>%d</td>\
        <td>%d</td>\
        <td>%d</td>"
positionnamekillsdeathshs)
    }

    
add(motdcharsmax(motd), "</table></body></html>")

    
show_motd(idmotd"KnifeTop")
}

public 
top_reset(plr,level,cid) {
    if(!
cmd_access(plr,level,cid,0)) {
        return 
PLUGIN_HANDLED;
    }
    
    new 
name[32];
    
get_user_name(plrname31);
    
    static 
knifetop[128], len;

    
adv_vault_closed(g_vault);

    if (!
len)
    {
        
get_localinfo("amxx_datadir"knifetopcharsmax(knifetop))
        
add(knifetopcharsmax(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 
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(msg190input)
    else
        
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    
message_begin(id MSG_ONE_UNRELIABLE MSG_BROADCASTg_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 }
*/ 
Responder
#2
Probá borrando la siguiente linea de event_DeathMsg()

Código PHP:
if(weapon[0] != 'k' || weapon[3] != 'f') return 

Aunque la variable guarde todos los kills y no precisamente los de knifes como su nombre lo indica, te debería funcionar correctamente.
Responder
#3
(22/11/2018, 10:36 PM)HyperstacK escribió: Probá borrando la siguiente linea de event_DeathMsg()

Código PHP:
if(weapon[0] != 'k' || weapon[3] != 'f') return 

Aunque la variable guarde todos los kills y no precisamente los de knifes como su nombre lo indica, te debería funcionar correctamente.

ahora se volvio loco el top aveces cuentas las kills y aveces se pone desordenado y aparecen otros nombres...
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)