This site is a testing version, but all data is shared with the live forum.


Raised This Month: $ Target: $400
 0% 

Help me toptime plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
diavolu111
New Member
Join Date: Apr 2020
Old 08-19-2020 , 08:50   Help me toptime plugin
Reply With Quote #1

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")
	
	new Isim[36],Numara[4]
	for ( new i ; i < Num ; i++ ){
		if ( id != Oyuncular[i] ){
			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(){
	
	new Oyuncular[32] , Numara , Sure[10]
	for ( new team = 1 ; team <= 2 ; team++ ){
		switch(team){
		case 1 : get_players(Oyuncular,Numara, "ce" , "TERRORIST")	
		case 2 : get_players(Oyuncular,Numara, "ce" , "CT")
		}

		for ( new i ; i < Numara ; i++ ){
			
			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)
				
				for ( new i ; i < OyuncuSayisi ; 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[] ),"!","|")
	
	new Yazi[50],Isim[36],Zaman[10]
	for ( new i ; i < MOTD_KISI_SAYISI ; i++ ){
		
		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\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
Errors:

Code:
MX Mod X Compiler 1.8.3-manual
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

plugin.sma(164) : error 088: number of arguments does not match definition
plugin.sma(180) : error 088: number of arguments does not match definition
plugin.sma(181) : error 088: number of arguments does not match definition
plugin.sma(193) : error 088: number of arguments does not match definition
plugin.sma(194) : error 088: number of arguments does not match definition
plugin.sma(336) : error 088: number of arguments does not match definition

6 Errors.
Could not locate output file plugin.amx (compile failed).
diavolu111 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 08-19-2020 , 09:02   Re: Help me toptime plugin
Reply With Quote #2

Code:
/* Reads line from file. Returns index of next line or 0 when end of file is reached. */ native read_file(const file[],line,text[],len,&txtlen);

read_file has 5 arguments in older AMXX versions. Either use all 5 of them or update your outdated AMXX version. 1.9 is the latest dev-build.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
tyracoyne
New Member
Join Date: Sep 2020
Old 09-04-2020 , 00:08   Re: Help me toptime plugin
Reply With Quote #3

I did everything, thanks for help.

Last edited by tyracoyne; 09-25-2020 at 05:03.
tyracoyne is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:40.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode