TBan
TBanEx
Unban
b_OnGameModeInit()
#if defined _tban_included#endinput#endif#define _tban_included#include <dini> // By: GameStarstock second(time){time = time * 1000;return time;}stock minute(time) return time; stock hour(time){time = time*60;return time;}stock day(time){time = hour(time) * 24;return time;} #define MAX_BANN 100 new BannTime[MAX_BANN];forward b_OnGameModeInit();forward Banntimers(banid);public b_OnGameModeInit(){new bf[128];for(new b; b<=MAX_BANN; b++){format(bf,128,\"/BannTime/%d.ini\",b);if(dini_Exists(bf)){ BannTime = dini_Int(bf,\"time\"); SetTimerEx(\"Banntimers\",60000,1,\"i\",b);}}return 1;} stock TBan(playerid,type,time){new ip[128],b[128];new nextb = NextBan();format(b,128,\"/BannTime/%d.ini\",nextb);dini_Create(b);dini_Set(b,\"Name\",GetName(playerid));GetPlayerIp(playerid,ip,sizeof(ip));dini_Set(b,\"IP\",ip);if(type == 1) {minute(time); }if(type == 2) {hour(time); }if(type == 3) {day(time); }dini_IntSet(b,\"time\",time);BannTime[nextb] = time;SetTimerEx(\"Banntimers\",60000,1,\"i\",nextb);Ban(playerid);return 1;}stock TBanEx(playerid,reason[],type,time){new b[128],ip[128];new nextb = NextBan();format(b,128,\"/BannTime/%d\",nextb);dini_Create(b);dini_Set(b,\"Name\",GetName(playerid));GetPlayerIp(playerid,ip,sizeof(ip));dini_Set(b,\"IP\",ip);if(type == 1) {minute(time); }if(type == 2) {hour(time); }if(type == 3) {day(time); }dini_IntSet(b,\"time\",time);BannTime[nextb] = time;SetTimerEx(\"Banntimers\",60000,1,\"i\",nextb);BanEx(playerid,reason);return 1;}stock GetName(playerid){new name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,sizeof(name));return name;}public Banntimers(banid){new b[128];format(b,128,\"/BannTime/%d.ini\",banid);if(dini_Exists(b)){BannTime[banid] -= 1;dini_IntSet(b,\"time\",BannTime[banid]);if(dini_Int(b,\"time\") == 0) return UnBan(b);}return 1;}stock UnBan(file[]){new ub[128];if(dini_Exists(file)){format(ub,128,\"unbanip %s\",dini_Get(file,\"IP\"));SendRconCommand(ub);dini_Remove(file);}return 1;} stock NextBan(){new b[128];for(new bc; bc<=MAX_BANN; bc++){format(b,128,\"/BannTime/%d.ini\",bc);if(bc != 0 && !dini_Exists(b)) return bc;}return 1;}
#include <a_samp>#include <tban>#include <zcmd>#include <sscanf2> CMD:tban(playerid,params[]){new p,time;if(sscanf(params,\"ui\",p,time)) return 1;TBan(p,2,time); //órareturn 1;}CMD:tbanex(playerid,params[]){new p,time;if(sscanf(params,\"ui\",p,time)) return 1;TBanEx(p,\"asd\",2,time); //órareturn 1;}
Köszkösz.Amugy elsõ függvénykönyvtárad?Mert függvénykönyvtárakba nem szokás beágyazni az alap a_samp függvénykönyvtárat.
Köszkösz.Amugy elsõ függvénykönyvtárad?Mert függvénykönyvtárakba nem szokás beágyazni az alap a_samp függvénykönyvtárat. Nem, sokadik. De, sokszor és sokan ágyazzák be, mert egyes funkciók csak úgy mûködnek. Egyébként nem tesz keresztbe semminek és senkinek [/quote]Ha elõtte be van ágyazva (mint minden normális script elején, amit használni akarsz) akkor nem kell. Maximum, ha a függvénykönytárból akarsz scriptet csinálni.Most, hogy átnézem, van benne pár hiba.
stock NextBan(){ new b[128]; for(new bc; bc<=MAX_BANN; bc++) { format(b,128,\"\\BannTime\\%d.ini\",bc); if(!dini_Exists(b)) return bc; return 1; } stock GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } public Bantimers() { new b[128]; for(new bc; bc<=MAX_BANN; bc++) { format(b,128,\"\\BannTime\\%d.ini\",bc); if(dini_Exists(b)) { BannTime[bc] -= 1; dini_IntSet(b,\"time\",BannTime[bc]); if(dini_Int(b,\"time\") == 0) return UnBan(b); } } return 1; } stock UnBan(file[]) { new ub[128]; if(dini_Exists(file)) { format(ub,128,\"unbanip %s\",dini_Get(file,\"IP\")); SendRCONCommand(ub); dini_Remove(file); } return 1; } Tesztelted is?
stock NextBan(){ new b[128]; for(new bc; bc<=MAX_BANN; bc++) { format(b,128,\"\\BannTime\\%d.ini\",bc); if(!dini_Exists(b)) return bc; return 1; } stock GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } public Bantimers() { new b[128]; for(new bc; bc<=MAX_BANN; bc++) { format(b,128,\"\\BannTime\\%d.ini\",bc); if(dini_Exists(b)) { BannTime[bc] -= 1; dini_IntSet(b,\"time\",BannTime[bc]); if(dini_Int(b,\"time\") == 0) return UnBan(b); } } return 1; } stock UnBan(file[]) { new ub[128]; if(dini_Exists(file)) { format(ub,128,\"unbanip %s\",dini_Get(file,\"IP\")); SendRCONCommand(ub); dini_Remove(file); } return 1; }
Sajnos nem tudom tesztelni, ha valaki talál benne még hibát szóljon, javítom.
a 36-41. sorig levan hagyva a \" ; \" (pontos vesszõ) jel a dini.dtest -ben [/quote]
NE publikálj nem mûködõ scriptet [WRONG] tagek-kel SEM![/quote]Illetve vonatkozik azokra a scriptekre, gyûjteményekre, gamemodokra, amely nem lett tesztelve!
Idézek, csak neked a Szabályzatból: NE publikálj nem mûködõ scriptet [WRONG] tagek-kel SEM!Illetve vonatkozik azokra a scriptekre, gyûjteményekre, gamemodokra, amely nem lett tesztelve! [/quote]Ha hazaérek fogom tesztelni.Dupla hozzászólás automatikusan összefûzve. ( 2012. június 17. - 13:33:23 )Javított 1.2-es verzió hozzáadva.
NE publikálj nem mûködõ scriptet [WRONG] tagek-kel SEM!