Hello its possible to make this plugin top time saved by steamid? and not nick?
Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "Toptime ( Aktiflik Sureleri )"
#define VERSION "1.0"
#define AUTHOR "Fatih ~ EjderYa"
#define MOTD_KISI_SAYISI 10
#define ZAMAN_ASIMI_GUN 7
#define SIFIRLAMA_YETKISI ADMIN_RCON
#define KAYIT_DOSYA_YOLU_MOTD "TopTime15.txt"
#define KAYIT_DOSYA_YOLU "addons/amxmodx/data/vault/TopTime15.vault"
#define PuanVermePeriyotu 60
new Dosya , OyuncuIsmi[33][35] , Siralama[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("amx_toptime_sifirla","Sifirla")
register_clcmd("say /online","online_surem")
register_clcmd("say .online","online_surem")
register_clcmd("say /onlinemenu","onlinemenu")
register_clcmd("say .onlinemenu","onlinemenu")
register_clcmd("say /toptime","toptime")
register_clcmd("say .toptime","toptime")
set_task(5.0,"KayitDosyasiniOlustur")
}
public online_surem(id)
client_print_color(id,print_team_default,"^4Aktiflik Sureniz : ^1%s ^4Gunde Ortalama : ^1%s",Zaman_Ogren(id,nvault_get(Dosya,OyuncuIsmi[id])),Zaman_Ogren(id,Zaman_Farki_Hesapla(id)))
public BilgiGoster(id,Uid)
client_print_color(id,print_team_default,"^3%s ^4Oyuncusuna Ait Aktiflik Suresi : ^1%s ^4Gunde Ortalama : ^1%s",OyuncuIsmi[Uid],Zaman_Ogren(Uid,nvault_get(Dosya,OyuncuIsmi[Uid])),Zaman_Ogren(Uid,Zaman_Farki_Hesapla(Uid)))
public Zaman_Farki_Hesapla(id){
new KayitSatiri[40]
formatex(KayitSatiri,charsmax(KayitSatiri),"%s_Kyt",OyuncuIsmi[id])
// ZAMAN / GUN
new Gun = (Zaman_Hesapla() - nvault_get(Dosya,KayitSatiri))/1440
if ( Gun == 0 ) Gun = 1
return (nvault_get(Dosya,OyuncuIsmi[id]) / Gun )
}
public onlinemenu(id){
new Menu = menu_create("\r*** \wOyuncu Sec \r***", "Menu_devam")
new Oyuncular[32] , Num
get_players(Oyuncular,Num,"c")
for ( new i ; i < Num ; i++ ){
if ( id != Oyuncular[i] ){
new Isim[36],Numara[4]
get_user_name(Oyuncular[i],Isim,charsmax(Isim))
num_to_str(Oyuncular[i],Numara,charsmax(Numara))
menu_additem(Menu, Isim, Numara)
}
}
menu_setprop(Menu, MPROP_NEXTNAME, "Ileri");
menu_setprop(Menu, MPROP_BACKNAME, "Geri");
menu_setprop(Menu,MPROP_EXITNAME,"Cikis")
menu_setprop(Menu,MPROP_EXIT, MEXIT_NORMAL)
menu_display(id,Menu)
}
public Menu_devam(id, Oylama_menu , item){
if( item == MENU_EXIT )
return PLUGIN_HANDLED
new data[6], iName[64]
new acces, callback
menu_item_getinfo(Oylama_menu, item, acces, data,5, iName, 63, callback)
BilgiGoster(id,str_to_num(data))
onlinemenu(id)
return PLUGIN_CONTINUE
}
public Zaman_Hesapla(){
new str_Gun[3] , str_Ay[3] , str_Yil[5]
new str_Saat[3] , str_Dakika[3]
get_time("%d",str_Gun,charsmax(str_Gun))
get_time("%m",str_Ay,charsmax(str_Ay))
get_time("%Y",str_Yil,charsmax(str_Yil))
get_time("%H",str_Saat,charsmax(str_Saat))
get_time("%M",str_Dakika,charsmax(str_Dakika))
return str_to_num(str_Dakika) + ( str_to_num(str_Saat) * 60 ) + ( str_to_num(str_Gun) * 1440 ) + ( str_to_num(str_Ay) * 43200 ) + ( (str_to_num(str_Yil)-2000) * 518400 )
}
public KayitKontrol(id){
if ( nvault_get(Dosya,OyuncuIsmi[id]) < 180 ){
new KayitSatiri[40] , Zaman[10]
formatex(KayitSatiri,charsmax(KayitSatiri),"%s_Kyt",OyuncuIsmi[id])
formatex(Zaman,charsmax(Zaman),"%d",Zaman_Hesapla())
nvault_set(Dosya,KayitSatiri,Zaman)
}
}
public plugin_natives()
register_native("toptime_siralama_cek", "siralama_cek",1)
public siralama_cek(Sira){
new Oyuncular[32] , Numara
get_players(Oyuncular,Numara)
for ( new i ; i < Numara ; i++ )
if ( Siralama[Oyuncular[i]] == Sira )
return Oyuncular[i]
return -1
}
public OyuncularaPuanVer(){
for ( new team = 1 ; team <= 2 ; team++ ){
new Oyuncular[32] , Numara
switch(team){
case 1 : get_players(Oyuncular,Numara, "ce" , "TERRORIST")
case 2 : get_players(Oyuncular,Numara, "ce" , "CT")
}
for ( new i ; i < Numara ; i++ ){
new Sure[10]
formatex(Sure,charsmax(Sure),"%d",nvault_get(Dosya,OyuncuIsmi[Oyuncular[i]]) + PuanVermePeriyotu )
nvault_set(Dosya,OyuncuIsmi[Oyuncular[i]],Sure)
}
}
}
public VeriCek(xSiralama,Isim[36],Zaman[10]){
new Yazi[50]
read_file(KAYIT_DOSYA_YOLU,xSiralama-1,Yazi,charsmax(Yazi))
strtok(Yazi, Isim, 36, Zaman, 10 , '!' )
return Isim , Zaman
}
public Satirlari_Degistir(Birinci,Ikinci){
new Oyuncular[32] , Numara
get_players(Oyuncular,Numara,"c")
for ( new i ; i < Numara ; i++ )
if ( Siralama[Oyuncular[i]] == Birinci+1 ) Siralama[Oyuncular[i]] = Ikinci+1
else if ( Siralama[Oyuncular[i]] == Ikinci+1 ) Siralama[Oyuncular[i]] = Birinci+1
new _1Satir[128] , _2Satir[128]
read_file(KAYIT_DOSYA_YOLU,Birinci,_1Satir,charsmax(_1Satir))
read_file(KAYIT_DOSYA_YOLU,Ikinci,_2Satir,charsmax(_2Satir))
write_file(KAYIT_DOSYA_YOLU,_1Satir,Ikinci)
write_file(KAYIT_DOSYA_YOLU,_2Satir,Birinci)
new ilk_sira[4],ikinci_sira[4]
num_to_str(Birinci+1,ilk_sira,charsmax(ilk_sira))
num_to_str(Ikinci+1,ikinci_sira,charsmax(ikinci_sira))
Birinci += 8
Ikinci += 8
read_file(KAYIT_DOSYA_YOLU_MOTD,Birinci,_1Satir,charsmax(_1Satir))
read_file(KAYIT_DOSYA_YOLU_MOTD,Ikinci,_2Satir,charsmax(_2Satir))
replace(_2Satir,charsmax(_1Satir),ikinci_sira,ilk_sira)
replace(_1Satir,charsmax(_1Satir),ilk_sira,ikinci_sira)
write_file(KAYIT_DOSYA_YOLU_MOTD,_1Satir,Ikinci)
write_file(KAYIT_DOSYA_YOLU_MOTD,_2Satir,Birinci)
}
public SiralamaKontrol(Sira){
new Oyuncular[32] , OyuncuSayisi
get_players(Oyuncular,OyuncuSayisi,"c")
if ( OyuncuSayisi > 0 ){
if ( Sira >= OyuncuSayisi ) Sira = 0
new id = Oyuncular[Sira]
if ( is_user_connected(id)){
new Isim[36],Zaman[10]
VeriCek(MOTD_KISI_SAYISI , Isim , Zaman )
if ( nvault_get(Dosya,OyuncuIsmi[id]) > str_to_num(Zaman) && Siralama[id] == 0 ){
SiralamayaYazdir(id,MOTD_KISI_SAYISI)
new Oyuncular[32] , Numara
get_players(Oyuncular,Numara,"c")
for ( new i ; i < Numara ; i++ )
if ( Siralama[Oyuncular[i]] == MOTD_KISI_SAYISI ) Siralama[Oyuncular[i]] = 0
Siralama[id] = MOTD_KISI_SAYISI
}
else if ( Siralama[id] != 0 ){
SiralamayaYazdir(id,Siralama[id])
if ( Siralama[id] > 1 && Siralama[id] <= MOTD_KISI_SAYISI ){
new Isim[36],_1Zaman[10],_2Zaman[10]
VeriCek(Siralama[id]-1 , Isim , _1Zaman )
VeriCek(Siralama[id] , Isim , _2Zaman )
if ( str_to_num(_1Zaman) < str_to_num(_2Zaman) )
Satirlari_Degistir(Siralama[id]-1,Siralama[id]-2)
}
}
}
}
set_task(10.0,"SiralamaKontrol",Sira+1)
return PLUGIN_CONTINUE
}
public SiralamayaYazdir(id,Sira){
new Yazi[128]
formatex(Yazi,charsmax(Yazi),"%s!%d",OyuncuIsmi[id],nvault_get(Dosya,OyuncuIsmi[id]))
write_file(KAYIT_DOSYA_YOLU,Yazi,Sira-1)
formatex(Yazi,charsmax(Yazi),"<tr><th>%d<th>%s<th>%s<th>%s</tr>",Sira,OyuncuIsmi[id],Zaman_Ogren(id,nvault_get(Dosya,OyuncuIsmi[id])),Zaman_Ogren(id,Zaman_Farki_Hesapla(id)))
write_file(KAYIT_DOSYA_YOLU_MOTD,Yazi,Sira+7)
}
public Zaman_Ogren(id,ToplamSaniye){
new Saniye = ToplamSaniye % 60
new Dakika = ( ( ToplamSaniye - Saniye ) / 60 ) % 60
new Saat = ( ToplamSaniye - (Dakika*60) - Saniye ) / 3600
new Sure[50]
if ( Dakika != 0 && Saat != 0 ) formatex(Sure,charsmax(Sure),"%d Saat , %d Dakika",Saat,Dakika)
else if ( Dakika != 0 && Saat == 0 ) formatex(Sure,charsmax(Sure),"%d Dakika",Dakika)
else if ( Dakika == 0 && Saat != 0 ) formatex(Sure,charsmax(Sure),"%d Saat",Saat)
return Sure;
}
public toptime(id) show_motd(id,KAYIT_DOSYA_YOLU_MOTD,"EN AKTIF OYUNCULAR")
public Sifirla(id){
if( access(id,SIFIRLAMA_YETKISI) ){
nvault_prune( Dosya, 0 , get_systime() )
delete_file(KAYIT_DOSYA_YOLU)
delete_file(KAYIT_DOSYA_YOLU_MOTD)
client_print_color(0,print_team_default,"^4TopTime : ^1Aktiflik Sureleri Sifirlandi.")
new Eklenti_Ismi[64];
get_plugin(-1, Eklenti_Ismi, charsmax(Eklenti_Ismi));
pause("dc", Eklenti_Ismi )
}
else
{
client_print_color(id,print_team_default,"^4Yetkiniz Yeterli Degil.")
client_print(id,print_console,"Yetkiniz Yeterli Degil.")
}
return PLUGIN_HANDLED
}
public plugin_cfg()
{
Dosya = nvault_open( "AktiflikSureleri" );
if ( Dosya == INVALID_HANDLE )
set_fail_state( "Vault Dosyasi Acilamadi !" );
nvault_prune( Dosya , 0 , get_systime() - ( 86400 * ZAMAN_ASIMI_GUN ) );
}
public plugin_end() nvault_close( Dosya );
public client_authorized(id){
if ( file_size(KAYIT_DOSYA_YOLU) == -1 ){
set_task(3.0+float(id),"client_authorized",id)
return PLUGIN_HANDLED
}
get_user_name( id , OyuncuIsmi[id] , charsmax( OyuncuIsmi[] ) );
replace_all(OyuncuIsmi[id] , charsmax( OyuncuIsmi[] ),"!","|")
for ( new i ; i < MOTD_KISI_SAYISI ; i++ ){
new Yazi[50],Isim[36],Zaman[10]
read_file(KAYIT_DOSYA_YOLU,i,Yazi,charsmax(Yazi))
strtok(Yazi, Isim, charsmax(Isim), Zaman, charsmax(Zaman), '!' )
if ( equali(OyuncuIsmi[id],Isim) ){
Siralama[id] = i + 1
break;
}
else Siralama[id] = 0
}
set_task(5.0,"KayitKontrol",id)
return PLUGIN_CONTINUE
}
public KayitDosyasiniOlustur(){
if ( file_size(KAYIT_DOSYA_YOLU) == -1 ){
write_file(KAYIT_DOSYA_YOLU_MOTD,"<html><body background=^"https://i.hizliresim.com/7aYvrl.png^">",0)
write_file(KAYIT_DOSYA_YOLU_MOTD,"<meta charset=UTF-8><style>body{font-family:Verdana}th{background:#303B4A;color:#FFF}",1)
write_file(KAYIT_DOSYA_YOLU_MOTD,"table{padding:6px 2px;background:#EFF1F3;font-size:12px;color:#222;border:1px solid #CCC}",2)
write_file(KAYIT_DOSYA_YOLU_MOTD,"h2,h3{color:#222}#c{background:#E9EBEE}img{height:7px;background:#F8931F;margin:0 3px}",3)
write_file(KAYIT_DOSYA_YOLU_MOTD,"#r{height:7px;background:#D2232A}#clr{background:none;color:#303B4A;font-size:20px;border:0}</style>",4)
write_file(KAYIT_DOSYA_YOLU_MOTD,"<table width=100% height=100% border=0 align=center cellpadding=0 cellspacing=1>",5)
write_file(KAYIT_DOSYA_YOLU_MOTD,"<tr><th colspan=^"4^"><font size=^"5^">EN AKTİF OYUNCULAR</font><br/></th></tr>",6)
write_file(KAYIT_DOSYA_YOLU_MOTD,"<tr><th>#<th>Oyuncu İsmi<th>Oynanılan Süre Miktarı<th>Günde Ortalama</tr>",7)
for( new i ; i < MOTD_KISI_SAYISI ; i++ ){
write_file(KAYIT_DOSYA_YOLU,"xxx!0")
write_file(KAYIT_DOSYA_YOLU_MOTD,"<tr><th><th><th><th></tr>",i+8)
}
set_task(2.0,"KayitDosyasiniOlustur",0)
}
else
{
set_task(5.0,"SiralamaKontrol",0)
set_task(float(PuanVermePeriyotu), "OyuncularaPuanVer", _, _, _, "b")
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n{\\ colortbl ;\\ red0\\ green0\\ blue0;}\n\\ viewkind4\\ uc1\\ pard\\ cf1\\ f0\\ fs16 \n\\ par }
*/