Jump to content
  • 0

pomoc Timeban


MaTiX98

Dotaz

7 odpovědí na tuto otázku

Recommended Posts

  • 0

Sry kód je zde:

 

#include 
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

#define SCMF(%0,%1,%2,%3) new _string[128]; format(_string,sizeof(_string),%2,%3); print(_string); SendClientMessage(%0,%1,_string)
#define SCMTAF(%0,%1,%2) new _tring[128]; format(_tring,sizeof(_tring),%1,%2); SendClientMessageToAll(%0,_tring)
#define SCM SendClientMessage
#define SCMTA SendClientMessageToAll
#define HODINA(%0) 3600*%0
#define DIALOG_ID 874
new bool:admin[MAX_PLAYERS];

public OnPlayerCommandText(playerid,cmdtext[]){
dcmd(nban,4,cmdtext);
dcmd(tban,4,cmdtext);
dcmd(pban,4,cmdtext);
dcmd(tcmds,5,cmdtext);
dcmd(tadmin,6,cmdtext);

}

public OnPlayerConnect(playerid){
admin[playerid] = false;
new name[MAX_PLAYER_NAME],str[100],string[128],ip[20];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(str,100,"TimeBan/Admin/%s.txt",name);
if(fexist(str)){
admin[playerid] = true;
}

GetPlayerIp(playerid,ip,20);
format(str,100,"TimeBan/Nick/%s.txt",name);
if(fexist(str)){
new File:a = fopen(str,io_read);
new dovod[75],Admin[25],kedy,dokedy;
fread(a,string); DelChar(string);
format(ip,20,"%s",string);
fread(a,string); DelChar(string);
format(dovod,75,"%s",string);
fread(a,string); DelChar(string);
format(Admin,25,"%s",string);
fread(a,string); DelChar(string);
kedy = strval(string);
fread(a,string); DelChar(string);
dokedy = strval(string);
fclose(a);
if(gettime() > dokedy){
//vypršal
SCM(playerid,0xFF0404FF,"[ TimeBan ] ban ti vypršel doufám že jsi se poučil");
fremove(str);
}else{
new bigstring[500];
format(bigstring,500,"Tvůj ban ještě stále nevypršel !\nNick:\t\t\t%s\nIP:\t\t\t%s\nDôvod:\t\t\t%s\nAdmin:\t\t\t%s\nKdy:\t\t\t%s\nPlatí do:\t\t%s",name,ip,dovod,Admin,date(kedy),date(dokedy));
ShowPlayerDialog(playerid,DIALOG_ID,0,"TimeBan",bigstring,"Ok","");
Kick(playerid);
}
}

format(str,100,"TimeBan/IP/%s.txt",ip);
if(fexist(str)){
new File:a = fopen(str,io_read);
new dovod[75],Admin[25],kedy,dokedy;
fread(a,string); DelChar(string);
format(name,20,"%s",string);
fread(a,string); DelChar(string);
format(dovod,75,"%s",string);
fread(a,string); DelChar(string);
format(Admin,25,"%s",string);
fread(a,string); DelChar(string);
kedy = strval(string);
fread(a,string); DelChar(string);
dokedy = strval(string);
fclose(a);
if(gettime() > dokedy){
//vypršal
SCM(playerid,0xFF0404FF,"[ TimeBan ] ban ti vypršel doufám že jsi se poučil");
fremove(str);
}else{
new bigstring[500];
format(bigstring,500,"Tvůj ban ještě stále nevypršel !\nNick:\t\t\t%s\nIP:\t\t\t%s\nDůvod:\t\t\t%s\nAdmin:\t\t\t%s\nKdy:\t\t\t%s\nPlatí do:\t\t%s",name,ip,dovod,Admin,date(kedy),date(dokedy));
ShowPlayerDialog(playerid,DIALOG_ID,0,"TimeBan",bigstring,"Ok","");
Kick(playerid);
}
}
format(str,100,"TimeBan/Perma/%s.txt",ip);
if(fexist(str)){
new File:a = fopen(str,io_read);
new dovod[75],Admin[25],kedy;
fread(a,string); DelChar(string);
format(name,20,"%s",string);
fread(a,string); DelChar(string);
format(dovod,75,"%s",string);
fread(a,string); DelChar(string);
format(Admin,25,"%s",string);
fread(a,string); DelChar(string);
kedy = strval(string);
fclose(a);
new bigstring[500];
format(bigstring,500,"Tvůj ban ještě stále nevypršel !\nNick:\t\t\t%s\nIP:\t\t\t%s\nDůvod:\t\t\t%s\nAdmin:\t\t\t%s\nKedy:\t\t%s",name,ip,dovod,Admin,date(kedy));
ShowPlayerDialog(playerid,DIALOG_ID,0,"TimeBan",bigstring,"Ok","");
Kick(playerid);
}

}
// Nick Ban
dcmd_nban(playerid, params[]){
if(admin[playerid] == false) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nejsi Admin !");
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš být ve výběru postav !");
new a[3][60],id,hodiny;
if(UnFormat(params,a,' ',3) != 3) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Použi: /nban [iD] [HODINY] [DOVOD]");
id = strval(a[0]);
if(!IsPlayerConnected(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč není na serveru !");
//if(id == playerid) return SCM(playerid,0x0000FFFF,"[ TimeBan ] Nemôžeš zabanovať sám seba !");
if(IsPlayerAdmin(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš zabanovat Hlavního Admina !");
hodiny = strval(a[1]);
new name[MAX_PLAYER_NAME],str[100],str2[75];
GetPlayerName(id,name,MAX_PLAYER_NAME);
format(str,100,"TimeBan/Nick/%s.txt",name);
print("[ TimeBan ] Ak sa vypol server (spadol) tak v ScriptFiles chyba zlozka 'TimeBan' a v nej zlozka 'Nick'");
new File:s = fopen(str,io_write);
GetPlayerIp(id,str2,75);
format(str,75,"%s\r\n",str2);
fwrite(s,str);
format(str,75,"%s\r\n",a[2]);
fwrite(s,str);
format(str,75,"%s\r\n",Jmeno(playerid));
fwrite(s,str);
format(str,75,"%d\r\n",gettime());
fwrite(s,str);
format(str,75,"%d\r\n",HODINA(hodiny)+gettime());
fwrite(s,str);
fclose(s);
SCMTAF(0xFF0404FF,"[ TimeBan ] Admin %s dal hráčovy %s ban na %d hodin Důvod: %s",Jmeno(playerid),name,hodiny,a[2]);
SCMF(playerid,0xFF0404FF,"[ TimeBan ] Dostal si ban na %d hodin Důvod: %s",hodiny,a[2]);
Kick(id);
return true;
}
// Time Ban
dcmd_tban(playerid, params[]){
if(admin[playerid] == false) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nejsi Admin !");
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš být ve výběru postav !");
new a[3][60],id,hodiny;
if(UnFormat(params,a,' ',3) != 3) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Použi: /tban [iD] [HODINY] [DOVOD]");
id = strval(a[0]);
if(!IsPlayerConnected(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč není na serveru !");
//if(id == playerid) return SCM(playerid,0x0000FFFF,"[ TimeBan ] {FF0000}Nemôžeš zabanovať sám seba !");
if(IsPlayerAdmin(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš zabanovat hlavního admina !");
hodiny = strval(a[1]);
new name[MAX_PLAYER_NAME],str[100],str2[75];
GetPlayerIp(id,str2,75);
format(str,100,"TimeBan/IP/%s.txt",str2);
print("[ TimeBan ] Ak sa vypol server (spadol) tak v ScriptFiles chyba zlozka 'TimeBan' a v nej zlozka 'IP'");
new File:s = fopen(str,io_write);
GetPlayerName(id,name,MAX_PLAYER_NAME);
format(str,75,"%s\r\n",name);
fwrite(s,str);
format(str,75,"%s\r\n",a[2]);
fwrite(s,str);
format(str,75,"%s\r\n",Jmeno(playerid));
fwrite(s,str);
format(str,75,"%d\r\n",gettime());
fwrite(s,str);
format(str,75,"%d\r\n",HODINA(hodiny)+gettime());
fwrite(s,str);
fclose(s);
SCMTAF(0x0000FFFF,"[ TimeBan ] Admin %s dal hráčovy %s ban na %d hodin Důvod: %s",Jmeno(playerid),name,hodiny,a[2]);
SCMF(playerid,0xFF0404FF,"[ TimeBan ] Dostal si ban na %d hodin Důvod: %s",hodiny,a[2]);
Kick(id);
return true;
}
// Perma Ban
dcmd_pban(playerid, params[]){
if(admin[playerid] == false) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nejsi admin !");
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš být ve výběru postav !");
new a[2][60],id;
if(UnFormat(params,a,' ',2) != 2) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Použi: /pban [iD] [DOVOD]");
id = strval(a[0]);
if(!IsPlayerConnected(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč není na serveru!");
//if(id == playerid) return SCM(playerid,0x0000FFFF,"[ TimeBan ] Nemůžeš zabanovat sám sebe !");
if(IsPlayerAdmin(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Nemůžeš zabanovat hlavního admina !");
new name[MAX_PLAYER_NAME],str[100],str2[75];
GetPlayerIp(id,str2,75);
format(str,100,"TimeBan/Perma/%s.txt",str2);
print("[ TimeBan ] Ak sa vypol server (spadol) tak v ScriptFiles chyba zlozka 'TimeBan' a v nej zlozka 'Perma'");
new File:s = fopen(str,io_write);
GetPlayerName(id,name,MAX_PLAYER_NAME);
format(str,75,"%s\r\n",name);
fwrite(s,str);
format(str,75,"%s\r\n",a[1]);
fwrite(s,str);
format(str,75,"%s\r\n",Jmeno(playerid));
fwrite(s,str);
format(str,75,"%d\r\n",gettime());
fwrite(s,str);
fclose(s);
SCMTAF(0xFF0404FF,"[ TimeBan ] Admin %s dal hráčovy %s pernamentný ban Důvod: %s",Jmeno(playerid),name,a[1]);
SCMF(playerid,0xFF0404FF,"[ TimeBan ] Dostal si trvalý ban Důvod: %s",a[1]);
Kick(id);
return true;
}
// Admin Level
dcmd_tadmin(playerid, params[]){
if(!IsPlayerAdmin(playerid)) return 0;
new a[2][5],id,level;
if(UnFormat(params,a,' ',2) != 2) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Použi: /tadmin [iD] [0-1]");
id = strval(a[0]);
if(!IsPlayerConnected(id)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč není na servery !");
level = strval(a[1]);
if(level > 1 || level < 0) return SCM(playerid,0xFF0404FF,"Použi: /tadmin [iD] [0-1]");
new str[100];
print("[ TimeBan ] Ak sa vypol server (spadol) tak v ScriptFiles chyba zlozka 'TimeBan' a v nej zlozka 'Admin'");
if(level == 0){
format(str,100,"TimeBan/Admin/%s.txt",Jmeno(id));
if(!fexist(str)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč nemá právo dat Ban na čas !");
fremove(str);
admin[id] = false;
SCMTAF(0xFF0404FF,"[ TimeBan ] Admin %s odobral hráčovy %s admin level",Jmeno(playerid),Jmeno(id));
}else{
format(str,100,"TimeBan/Admin/%s.txt",Jmeno(id));
if(fexist(str)) return SCM(playerid,0xFF0404FF,"[ TimeBan ] Hráč má právo dat Ban na čas !");
fcreate(str);
admin[id] = true;
SCMTAF(0xFF0404FF,"[ TimeBan ] Admin %s dal hráčovy %s admin level",Jmeno(playerid),Jmeno(id));
}
return true;
}

dcmd_tcmds(playerid, params[]){
#pragma unused params
SCM(playerid,-1,"------------------------------------------------------------------------------------------------------------------------------------");
SCM(playerid,-1,"sss");
SCM(playerid,0xFF0404FF,"/nban - Zabanuje nick hráče na určený čas");
SCM(playerid,0xFF0404FF,"/tban - Zabanuje ip hráče na určený čas");
SCM(playerid,0xFF0404FF,"/pban - Zabanuje hráče natrvalo");
SCM(playerid,0xFF0404FF,"/tadmin - Dá hráčovy možnost použít tento příkaz");
SCM(playerid,-1,"Děkuju za Používání Tbanu");
return true;
}

stock fcreate(filename[]) {
new File:file;
if (fexist(filename)) return false;
file=fopen(filename,io_write);
fclose(file);
return true;
}

stock DelChar(tstring[])
{
new ln = strlen(tstring);
if(tstring[ln-2] == '\r')tstring[ln-2] = '\0';
if(tstring[ln-1] == '\n')tstring[ln-1] = '\0';
}

stock Jmeno(playerid){
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid,n,MAX_PLAYER_NAME);
return n;
}

stock UnFormat(str[],variables[][],cha,m=0)
{
new len = strlen(str),chcount,i,start,varcount;
while(i < len+1){
if(i == len && chcount != 0){
strmid(variables[varcount],str,start+1,strlen(str),128);
chcount++;
}
if(str[i] == cha){
if((m == 0) || (chcount != m-1)){
strmid(variables[varcount],str,start + ((start == 0) ? 0 : 1),i,128);
start = i;
chcount++;
varcount++;
}
}
i++;
}
return chcount;
}

stock date( timestamp, _form=1 )
{
/*
~ convert a Timestamp to a Date.
~ 10.07.2009

date( 1247182451, 0) will print >> 09.07.2009-23:34:11
date( 1247182451) will print >> 09/07/2009, 23:34:11
date( 1247182451, 2) will print >> July 09, 2009, 23:34:11
date( 1247182451, 3) will print >> 9 Jul 2009, 23:34
*/
new year=1970, day=0, month=0, hour=0, mins=0, sec=0;

new days_of_month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
new names_of_month[12][10] = {"Januar","Februar","Marec","April","Maj","Jun","Jul","August","September","Oktober","November","December"};
new returnstring[32];

while(timestamp>31622400){
timestamp -= 31536000;
if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp -= 86400;
year++;
}

if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) )
days_of_month[1] = 29;
else
days_of_month[1] = 28;


while(timestamp>86400){
timestamp -= 86400, day++;
if(day==days_of_month[month]) day=0, month++;
}

while(timestamp>60){
timestamp -= 60, mins++;
if( mins == 60) mins=1, hour++;
}

sec=timestamp;

switch( _form ){
case 1: format(returnstring, 31, "%02d/%02d/%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);
case 2: format(returnstring, 31, "%s %02d, %d, %02d:%02d:%02d", names_of_month[month],day+1,year, hour, mins, sec);
case 3: format(returnstring, 31, "%d %c%c%c %d, %02d:%02d", day+1,names_of_month[month][0],names_of_month[month][1],names_of_month[month][2], year,hour,mins);

default: format(returnstring, 31, "%02d.%02d.%d %02d:%02d:%02d", day+1, month+1, year, hour, mins, sec);
}

return returnstring;
}





Link to comment
Share on other sites

  • 0

Niekedy qwera ľutujem ak bi nebolo jeho na pawne je o ... dobrich scriptou menej.

A odmena zato je to že mažete jeho meno. Hanba takim ľuďom

.

Nema niekto nahodou aj BanList.php od timebanu ?

Link to comment
Share on other sites

  • 0

1. Serverové nastavenie má zle nastavený čas -> nastavíš ho

2. TimeBan nepracuje s posunom času (alebo uberá čas z nejakého iného dôvodu) -> ten čas ktorý ti uberie musíš pripočítať. Ak to je 1 hodina tak ku všetkým výpisom, ukladaniam musíš prirátať 3600 (v timestampe je to 1 hodina). Ak 2 tak 7200..proste čo hodina to 3600..

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...