Mensajes: 385
Temas: 144
Registro en: Mar 2020
Reputación:
0
Buenas tardes, varios usuarios me están pidiendo que les agregue un estilo top 15 pero de fakas, habrá algún complemento que cumpla con tales cosas ?
Mensajes: 18
Temas: 0
Registro en: Apr 2020
Reputación:
0
(13/03/2021, 03:59 PM)Gstrigl escribió: Buenas tardes, varios usuarios me están pidiendo que les agregue un estilo top 15 pero de fakas, habrá algún complemento que cumpla con tales cosas ?
Fíjate si te sirve
Mensajes: 385
Temas: 144
Registro en: Mar 2020
Reputación:
0
13/03/2021, 07:20 PM
(Última modificación: 13/03/2021, 07:37 PM por Gstrigl. Edited 1 time in total.)
(13/03/2021, 05:45 PM)Kev. escribió: Fíjate si te sirve
me tira error con el vault.. lo puse en debug tanto a vault como el plugin de faka y me pasa lo mismo..
Código PHP: L 03/13/2021 - 19:18:38: [AMXX] Displaying debug trace (plugin "topfaka.amxx", version "1.0") L 03/13/2021 - 19:18:38: [AMXX] Run time error 10: native error (native "adv_vault_sort_create") L 03/13/2021 - 19:18:38: [AMXX] [0] topfaka.sma::plugin_init (line 30) L 03/13/2021 - 19:18:49: ERROR Invalid SortIndex: 0 L 03/13/2021 - 19:18:49: [AMXX] Displaying debug trace (plugin "topfaka.amxx", version "1.0") L 03/13/2021 - 19:18:49: [AMXX] Run time error 10: native error (native "adv_vault_sort_numresult") L 03/13/2021 - 19:18:49: [AMXX] [0] topfaka.sma::top (line 64)
Por otro lado buscaba algo que abra una ventana tipo motd y tire las estadisticas, probe el de los comentarios y nada.. tambien busco algo que se guarde de manera perma
Mensajes: 148
Temas: 8
Registro en: May 2020
Reputación:
1
Yo en algun momento usaba este.. por ahi te sirve...
Código PHP: #include <amxmodx> #include <adv_vault> #include <amxmisc>
#define PLUGIN "Simple Knife Top" #define VERSION "1.1" #define AUTHOR "Destro"
#define TAG "!t[ !gViejitos Re Loading !t]"
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 /top", "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 publicidad( id ) { chat_color( id, "%s !nTipea !g/rank !npara ver tu rank de !tfacas!n.", TAG ) chat_color( id, "%s !nTipea !g/top !npara ver el TOP10 de !tfacas!n.", TAG ) chat_color( id, "%s !nTipea !g/top10 !npara ver el TOP10", TAG ) }
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), 10)
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() }
www.GameHost.com.ar
Discord: Luzbe#6650
(05/06/2021, 01:07 AM)Hinami escribió: SON LIBRES DE PODER USAR EL PANEL, PERO EVITEN SER RATAS Y PONER QUE LO HICIERON USTEDES (DIRIGIDO A VENEZOLANOS EN GENERAL).
(09/02/2020, 06:08 PM)Skylar escribió: Capo, tu vida no nos interesa para que nos estemos informando, asi que cerra la cola
Mensajes: 385
Temas: 144
Registro en: Mar 2020
Reputación:
0
(13/03/2021, 09:08 PM)Luzbe28 escribió: Yo en algun momento usaba este.. por ahi te sirve...
Código PHP: #include <amxmodx> #include <adv_vault> #include <amxmisc>
#define PLUGIN "Simple Knife Top" #define VERSION "1.1" #define AUTHOR "Destro"
#define TAG "!t[ !gViejitos Re Loading !t]"
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 /top", "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 publicidad( id ) { chat_color( id, "%s !nTipea !g/rank !npara ver tu rank de !tfacas!n.", TAG ) chat_color( id, "%s !nTipea !g/top !npara ver el TOP10 de !tfacas!n.", TAG ) chat_color( id, "%s !nTipea !g/top10 !npara ver el TOP10", TAG ) }
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), 10)
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() }
gracias por tu aporte, funciona de 10, el tema que en los logs me sigue tirando cosas similares a lo que comenté antes
Por lo visto le estoy pifiando en algo al vault..
Código PHP: native error (native "adv_vault_sort_update")
Mensajes: 242
Temas: 106
Registro en: Apr 2020
Reputación:
0
(13/03/2021, 11:03 PM)Gstrigl escribió: gracias por tu aporte, funciona de 10, el tema que en los logs me sigue tirando cosas similares a lo que comenté antes
Por lo visto le estoy pifiando en algo al vault..
Código PHP: native error (native "adv_vault_sort_update")
yo lo quise probar y me tira este error
Load fails: Plugin uses an unknown function (name "adv_vault_closed")
Mensajes: 200
Temas: 56
Registro en: Oct 2020
Reputación:
1
prueba no lo testie
Código PHP: #include <amxmodx> #include <adv_vault> #include <csx>
#define PLUGIN "Top de Knife" #define VERSION "1.0" #define AUTHOR "El gato con botas y king :v"
#pragma semicolon 1
#define is_valid_player(%0) (1 <= %0 <= MAX_PLAYERS && is_user_alive(%0))
enum _:KNIFE_DATA { Knife };
enum _:ADV_DATA { Cargar = 0, Guardar };
new Top [] = "https://fotos.subefotos.com/f6f2aab84c1ff0f42100099158907353o.jpg";
new DataBase [] = "topknife"; new Tag [] = "^4[^1TAG^4]^1";
new PlayerData[MAX_PLAYERS + 1][_:KNIFE_DATA], PlayerName[MAX_PLAYERS + 1][MAX_NAME_LENGTH]; new g_vault, g_sort; new g_Campo[_:KNIFE_DATA];
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR);
register_event("DeathMsg", "Event_Death", "a");
register_clcmd("say topknife", "TopKnife"); register_clcmd("say_team topknife", "TopKnife");
g_vault = adv_vault_open(DataBase, false); static i; for(i = 0; i <sizeof(PlayerData[]); i++) { g_Campo[i] = adv_vault_register_field(g_vault, fmt("PLAYERDATA-#%d", i)); } adv_vault_init(g_vault); g_sort = adv_vault_sort_create(g_vault, ORDER_DESC, 0, 2000, g_Campo[Knife]); }
public DisplayTop(index) { static szMotd[5000]; static iLen; iLen = 0;
new keyindex, pj[MAX_NAME_LENGTH], count = 0;
new iData[sizeof(PlayerData[])];
new toploop = min(adv_vault_sort_numresult(g_vault, g_sort), 10);
iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "<body><style>body{color:#FFFFFF;background:url(^"%s^");\ font-family:Arial,sans-serif;\ background-position: center center}\ table{border:1px solid #FF00FF;;width:87%%;margin-top:10%%}\ td{font-size:13px;border:1px solid #FF00FF;color:white}\ th{font-size:14px;background: #1b2258;;padding:1%%}\ </style>\ <table align=center>\ <tr align=center>\ <th width=5%%>#\ <th width=30%%>Nombre\ <th width=25%%>Knife", Top);
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; } static i; for(i = 0; i <sizeof(PlayerData[]); i++) { iData[i] = adv_vault_get_field(g_vault, g_Campo[i]); }
adv_vault_get_keyname(g_vault, keyindex, pj, 31); iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "<tr align=center>"); iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "<td>%d", position); iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "<td>%s", pj); iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "<td>%d", iData[Knife]); count++; } iLen += formatex(szMotd[iLen], sizeof szMotd - iLen, "</table></body>");
if(count) { show_motd(index, szMotd, "TOP Knife 1-10"); } else { client_print_color(index, print_team_default, "%s No se encontraron jugadores posicionados en este top", Tag); } return PLUGIN_HANDLED; }
public client_putinserver(index) { get_user_name(index, PlayerName[index], charsmax(PlayerName[]));
static i; for(i = 0; i <sizeof(PlayerData[]); i++) { PlayerData[index][i] = EOS; }
adv_data(index, Cargar); }
public client_disconnected(index) { adv_data(index, Guardar); }
public Event_Death() { new Atack = read_data(1); new Victm = read_data(2); if(!is_valid_player(Atack) || !is_valid_player(Victm)) { return; } new Weapon = get_user_weapon(Atack); if(Atack == Victm) { return; }
if(Weapon == CSW_KNIFE) PlayerData[Atack][Knife]++; }
public adv_data(index, type_adv_use) { if(!is_user_connected(index)) { return; } switch(type_adv_use) { case Cargar: { if(!adv_vault_get_prepare(g_vault, _, PlayerName[index])) { return; } static i; for(i = 0; i <sizeof(PlayerData[]); i++) { PlayerData[index][i] = adv_vault_get_field(g_vault, g_Campo[i]); } return; } case Guardar: { adv_vault_set_start(g_vault); static i; for(i = 0; i <sizeof(PlayerData[]); i++) { adv_vault_set_field(g_vault, g_Campo[i], PlayerData[index][i]); } adv_vault_set_end(g_vault, 0, PlayerName[index]); adv_vault_sort_update(g_vault, g_sort); } } return; }
Pawn Básico no critiquen xD
Mensajes: 148
Temas: 8
Registro en: May 2020
Reputación:
1
(15/03/2021, 03:58 PM)cahervar escribió: yo lo quise probar y me tira este error
Load fails: Plugin uses an unknown function (name "adv_vault_closed")
Te falta el advault
www.GameHost.com.ar
Discord: Luzbe#6650
(05/06/2021, 01:07 AM)Hinami escribió: SON LIBRES DE PODER USAR EL PANEL, PERO EVITEN SER RATAS Y PONER QUE LO HICIERON USTEDES (DIRIGIDO A VENEZOLANOS EN GENERAL).
(09/02/2020, 06:08 PM)Skylar escribió: Capo, tu vida no nos interesa para que nos estemos informando, asi que cerra la cola
|