Witam. Przerobilem sobie troche plugin GoQ.
Lecz mam pewien problem poniewaz wyswietla mi caly czas podwojnie graczy.Nie wszystkich lecz z tego co zauwazylem to tych,ktorzy wbili na serwer pozniej.
Tutaj kod. Ma ktos jakis pomysl ?
Spoiler
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Ja"
new Array:tab_gracze
new Array:exp_gracze
new h_vault;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /top","pokaz");
h_vault = nvault_open("xxmojexx");
tab_gracze=ArrayCreate(33,128);
exp_gracze=ArrayCreate(2,128);
}
public client_connect(id){
new name[33];
get_user_name(id,name,32);
if(!sprawdz(name)) zapisz(name)
}
public sprawdz(source[33]){
new linijka=0,text[128],chars
static configdir[64],plik[128]
new nick[33],name[33]
name=source;
get_configsdir(configdir,63)
formatex(plik,127,"%s/gracze.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,32)
if (equali(name,nick)) return 1
}
while(linijka!=0)
return 0
}
public zapisz(source[33]){
new wpis[128]
new nick[33];
static configdir[64],plik[128]
nick=source
format(wpis,127,"^"%s^"",nick)
get_configsdir(configdir,63)
formatex(plik,127,"%s/gracze.ini",configdir)
write_file(plik,wpis,-1)
log_to_file("Cstats.txt","Gracz o nicku %s zostal dodany do bazy statystyk",nick)
return PLUGIN_CONTINUE
}
public WczytajDane(name[33]){ //klasa 1-10
new vaultkey[64],vaultdata[256];
new parm[2]
format(vaultkey,63,"%s-xxx", name);
format(vaultdata,255,"%i#%i", parm[0], parm[1]);
nvault_get(h_vault,vaultkey,vaultdata,255);
replace_all(vaultdata, 255, "#", " ");
new tparam[2][33]
parse(vaultdata, tparam[0], 32, tparam[1], 32);
parm[0] = str_to_num(tparam[0]);//lvl
parm[1]= str_to_num(tparam[1]);//exp
ArrayPushArray(exp_gracze,parm)
}
public pokaz(id){
create_arry(id)
new rozmiar=ArraySize(exp_gracze)>10?10:ArraySize(exp_gracze);
new tresc[1200]
format(tresc,1199,"<html><body bgcolor=^"black^"><center><img src='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKqV46VYpYEEC0rLnXdnNeoqhpW3XdZBcNPHZKdF_QxWi0Y-967g'><br /><br />")
format(tresc,1199,"%s<table width=^"700^" border=^"1^" style=^"border-collapse: collapse;border-color: black;color: white;border-style: solid;text-align: center^">",tresc)
format(tresc,1199,"%s<tbody><tr><td>Pos.</td>",tresc)
format(tresc,1199,"%s<td>Nick</td><td>Poziom</td>",tresc)
format(tresc,1199,"%s<td>Exp</td>",tresc)
for(new i=0;i<rozmiar;i++){
new tmptab[33],tmptab2[6]
ArrayGetArray(tab_gracze,i,tmptab)
ArrayGetArray(exp_gracze,i,tmptab2)
format(tresc,1199,"%s<tr><td>%d</td>",tresc,i+1)
format(tresc,1199,"%s<td>%s</td>",tresc,tmptab)
format(tresc,1199,"%s<td>%d</td>",tresc,tmptab2[0])
format(tresc,1199,"%s<td>%d</td></tr>",tresc,tmptab2[1])
}
format(tresc,1199,"%s</tbody></table></center></body><html>",tresc)
show_motd(id,tresc)
}
public create_arry(id){
new text[128],chars ,nick[33]
new linijka=0
static configdir[64],plik[128]
get_configsdir(configdir,63)
formatex(plik,127,"%s/gracze.ini",configdir)
ArrayClear(tab_gracze)
ArrayClear(exp_gracze)
do{
linijka = read_file(plik,linijka,text,127,chars)
if(!chars) continue
parse(text, nick,32)
ArrayPushString(tab_gracze,nick);
WczytajDane(nick)
}
while(linijka!=0)
sortuj()
return PLUGIN_CONTINUE
}
public sortuj(){
new size=ArraySize(exp_gracze)
for(new i=0;i<size-1;i++){
for (new j=size-1;j>i;j--){
new tptab[2]
new tptab2[2]
ArrayGetArray(exp_gracze,j,tptab)
ArrayGetArray(exp_gracze,j-1,tptab2)
if (tptab2[0]<tptab[0]){
ArraySwap(exp_gracze,j,j-1)
ArraySwap(tab_gracze,j,j-1)
}
}
}
}
Użytkownik NiczegoWinien edytował ten post 27.01.2016 00:14


Dodatki SourceMod












