CSPLague
Plugin istek - Printable Version

+- CSPLague (https://www.csplague.com)
+-- Forum: CS 1.6 Plugin (Eklenti) Bölümü (https://www.csplague.com/forumdisplay.php?fid=6)
+--- Forum: [İSTEK] Cs 1.6 Plugin İstek Bölümü (https://www.csplague.com/forumdisplay.php?fid=80)
+---- Forum: Çözülmüş İstekler (https://www.csplague.com/forumdisplay.php?fid=87)
+---- Thread: Plugin istek (/showthread.php?tid=7769)



Plugin istek - t4t1fati - 15-06-13

Arkadaslar bana bi plugin gerekyo harita degistinde 1 oylama yapcak en iyi admin ve onu loglarla saklicak sagolun Smile.


Cevap: Plugin istek - akcaliberkk - 15-06-13

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admin Voting"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"

#define ADMIN_FLAG ADMIN_KICK

new const file[] = "addons/amxmodx/configs/admin_oylama.txt"

new gOylananlar[640];
new 
gCounter[20];
public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    if(!
file_exists(file)) {
        new 
fopen(file,"wt");
        
fclose(f);
    }
    
    
set_task(300.0,"BeginVoting")
}
public 
BeginVoting() {
    new 
menu menu_create("\rEn Iyi Admini Seciniz","voting_handler")
    
    new 
players[32],inum;
    static 
tempid,name[32],szID[6];
    
get_players(players,inum)
    for(new 
i;i<inum;i++) {
        
tempid players[i];
        if(!
access(tempid,ADMIN_FLAG)) continue;
        
get_user_name(tempid,name,31)
        
num_to_str(tempid,szID,5)
        
menu_additem(menu,name,szID)
    }
    
menu_setprop(menu,MPROP_EXIT,MEXIT_NEVER)
    for(new 
i;i<inum;i++) {
        
tempid players;
        if(!
access(tempid,ADMIN_FLAG)) menu_display(tempid,menu,0);
    }
    
set_task(15.0,"FinishVoting")
}
public 
voting_handler(id,menu,item) {
    new 
name[32],szID[6];
    new 
access,callback;
    
menu_item_getinfo(menu,item,access,szID,5,name,31,callback)
    new 
tempid;
    
gCounter[tempid]++;
    
client_print(id,print_chat,"[ADMIN VOTE] Oy Verdiginiz Admin: %s. Oy Kullandiginiz Icin Tesekkur Ederiz.",name)
    
menu_destroy(menu)
}
public 
FinishVoting() {
    new 
kazananid;
    new 
players[32],inum;
    
get_players(players,inum)
    static 
tempid,name[32];
    for(new 
i;i<inum;i++) {
        
tempid players
        
if(access(tempid,ADMIN_FLAG)) {
            if(
kazananid) {
                if(
gCounter[tempid] > gCounter[kazananid]) {
                    
kazananid tempid;
                }
            }
            else 
kazananid tempid;
            
get_user_name(tempid,name,31)
            if(!
gOylananlar[0]) format(gOylananlar,639,"%s [%d Oy]",name,gCounter[tempid])
            else 
format(gOylananlar,639,"%s --- %s [%d Oy]",gOylananlar,name,gCounter[tempid])
        }
    }
    
log_file(kazananid,gOylananlar)
}
public 
log_file(kazanan, const oylananlar[]) {
    new 
name[32];
    
get_user_name(kazanan,name,31)
    new 
mapname[32];
    
get_mapname(mapname,31)
    new 
szTime[32];
    
get_time("%d/%m/%Y-%H:%M:%S",szTime,31);
    new 
logtext[1000];
    
formatex(logtext,999,"[%s] [%s] Oylananlar: %s => Kazanan: %s",szTime,mapnameoylananlarname)
    
write_file(file,logtext)


Bilgiler, configs klasöründe oluşan admin_oylama.txt dosyasına kaydolur.
Denemeye fırsatım olmadı. Bir denersin problem olursa log dosyasının içeriğini yapıştırırsın.[/i][/i][/i]


Cevap: Plugin istek - eneskaraca55 - 20-02-15

good