Moin, mein Timeban Befehl geht nicht, die MEssage kommt, doch der Spieler wird nicht gebannt.
BEFEHL:
if(strcmp(cmd, "/tban", true) == 0 || strcmp(cmd, "/tb", true) == 0){
if (SpielerInfo[playerid][pAdmin] >= 5)
{
new name[256], tbl, tbt[64];
if(IsPlayerConnected(playerid)){
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SCM(playerid, 0xA734C2FF, "Verwendung: /timeban [Spieler-ID/Teil des Namens] [Bannlänge] [Bannart s/i/h/d/w/m/y] [Grund]");
SCM(playerid, 0xA734C2FF, "s: Sekunden | i: Minuten | h: Stunden | d: Tage | w: Wochen | m: Monate | y: Jahre");
return 1;
}
giveplayerid = ReturnUser(tmp);
GetPlayerName(playerid, name, sizeof(name));
if(IsPlayerConnected(giveplayerid)){
if(giveplayerid != INVALID_PLAYER_ID){
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SCM(playerid, 0xA734C2FF, "Verwendung: /timeban [Spieler-ID/Teil des Namens] [Bannlänge] [Bannart s/i/h/d/w/m/y] [Grund]");
SCM(playerid, 0xA734C2FF, "s: Sekunden | i: Minuten | h: Stunden | d: Tage | w: Wochen | m: Monate | y: Jahre");
return 1;
}
tbl = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)){
SCM(playerid, 0xA734C2FF, "Verwendung: /timeban [Spieler-ID/Teil des Namens] [Bannlänge] [Bannart s/i/h/d/w/m/y] [Grund]");
SCM(playerid, 0xA734C2FF, "s: Sekunden | i: Minuten | h: Stunden | d: Tage | w: Wochen | m: Monate | y: Jahre");
return 1;
}
format(tbt, sizeof(tbt), "%s", tmp);
if(strcmp(tbt, "s", true) == 0 || strcmp(tbt, "i", true) == 0 || strcmp(tbt, "h", true) == 0 || strcmp(tbt, "d", true) == 0 || strcmp(tbt, "w", true) == 0 || strcmp(tbt, "m", true) == 0 || strcmp(tbt, "y", true) == 0){
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, name, sizeof(name));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' ')){
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))){
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)){
SCM(playerid, 0xA734C2FF, "Verwendung: /timeban [Spieler-ID/Teil des Namens] [Bannlänge] [Bannart s/i/h/d/w/m/y] [Grund]");
SCM(playerid, 0xA734C2FF, "s: Sekunden | i: Minuten | h: Stunden | d: Tage | w: Wochen | m: Monate | y: Jahre");
return 1;
}
timeban(playerid, giveplayerid, tbl, tbt, result);
}
else{
SCM(playerid, 0xA734C2FF, "Verwendung: /timeban [Spieler-ID/Teil des Namens] [Bannlänge] [Bannart s/i/h/d/w/m/y] [Grund]");
SCM(playerid, 0xA734C2FF, "s: Sekunden | i: Minuten | h: Stunden | d: Tage | w: Wochen | m: Monate | y: Jahre");
return 1;
}
return 1;
}
}
}
return 1;
}
}
FUNKTIONEN
FUNKTION: checktimeban(playerid){
if(LogFilesJet == 1){
printf("checktimeban 1 | Name: %s", PlayerName(playerid));
}
new stringgdfg[256];
format(stringgdfg, sizeof(stringgdfg), "SELECT * FROM tb_outstanding WHERE usr_name LIKE '%s' AND status = '0' ORDER BY id ASC LIMIT 1", PlayerName(playerid));
mysql_pquery(handle, stringgdfg, "CheckTimebans", "i", playerid);
}
FUNKTION: CheckTimebans(playerid){
new rows, fields, query[256];
cache_get_row_count(rows);
cache_get_field_count(fields);
if(LogFilesJet == 1) printf("CheckTimeBanExecute 1");
if(rows){
new string[256], tba[10], tbr[256], ablauf[64];
new tbid, tbl, tbt, stamp;
if(LogFilesJet == 1) printf("CheckTimeBanExecute 2");
cache_get_value_name(0, "id", string, 128);
tbid = strval(string);
cache_get_value_name(0, "ban_ablauf", string, 128);
tbt = strval(string);
cache_get_value_name(0, "ts", string, 128);
stamp = strval(string);
cache_get_value_name(0, "ban_length", string, 128);
tbl = strval(string);
cache_get_value_name(0, "ban_reason", tbr, 128);
cache_get_value_name(0, "ban_typ", tba, 128);
cache_get_value_name(0, "ablauf", ablauf, 128);
if(LogFilesJet == 1) printf("CheckTimeBanExecute 3");
if( tbt > stamp ){
if(LogFilesJet == 1) printf("CheckTimeBanExecute 3.1");
if(strcmp(tba, "s", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Sekunden gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "i", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Minuten gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "h", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Stunden gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "d", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Tage gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "w", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Wochen gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "m", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Monate gebannt | Grund: %s", tbl, (tbr));
if(strcmp(tba, "y", true) == 0)
format(query, sizeof(query), "Du wurdest für %i Jahre gebannt | Grund: %s", tbl, (tbr));
SCM(playerid, 0xA734C2FF, query);
format(query, sizeof(query), "Der Bann läuft ab am: %s", ablauf);
SCM(playerid, 0xA734C2FF, query);
SetTimerEx("DelayKick", 2000, 0, "d", playerid);
}
else{
if(LogFilesJet == 1) printf("CheckTimeBanExecute 3.2");
format(query, sizeof(query), "UPDATE server_timeban SET status = '1' WHERE id = '%d'", tbid);
//mysql_query(query);
}
if(LogFilesJet == 1) printf("CheckTimeBanExecute 4");
}
if(LogFilesJet == 1) printf("CheckTimeBanExecute 5");
}
FUNKTION: timeban(playerid, pid, tbl, tbt[], tbr[]){
new gip[128], plip[128], gname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME], query[512];
GetPlayerIp(pid, gip, sizeof(gip));
GetPlayerIp(playerid, plip, sizeof(plip));
GetPlayerName(pid, gname, sizeof(gname));
GetPlayerName(playerid, name, sizeof(name));
if(strcmp(tbt, "s", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Sekunden gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "i", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Minuten gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "h", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Stunden gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "d", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Tage gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "w", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Wochen gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "m", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Monate gebannt | Grund: %s", gname, name, tbl, (tbr));
if(strcmp(tbt, "y", true) == 0)
format(query, sizeof(query), "Info: %s wurde von %s für %i Jahre gebannt | Grund: %s", gname, name, tbl, (tbr));
SCMTA(0xFF6347AA, query);
format(query, sizeof(query), "INSERT INTO SoM_timeban(usr_id, usr_name, usr_ip, ban_time, ban_length, ban_typ, ban_reason, adm_name, adm_ip, status) VALUES(%d,'%s', '%s', UNIX_TIMESTAMP(), '%i', '%s', '%s', '%s', '%s', '0')", SpielerInfo[pid][Spielerzid], gname, gip, tbl, tbt, (tbr), name, plip);
SCM(playerid, 0xA734C2FF, query);
// mysql_query(query);
printf(query);
SetTimerEx("DelayKick", 2000, 0, "d", pid);
}
FUNKTION: checktimeban_execute(playerid,name[]){
new rows, fields, stringkll[180];
cache_get_row_count(rows);
cache_get_field_count(fields);
if(rows > 0){
format(stringkll, sizeof(stringkll), "UPDATE `SoM_timeban` SET status = 1 WHERE `usr_name` = '%s' AND status = 0", name);
//mysql_query(stringkll);
format(stringkll,sizeof(stringkll),"%s.%s", PlayerName(playerid),name);
for(new i = 0; i <= MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
if(SpielerInfo[i][pAdmin] !=0){
format(stringkll,sizeof(stringkll),"- Admin %s hat den Spieler '%s' den Timeban weggenommen -", PlayerName(playerid), name);
SCM(i, COLOR_YELLOW, stringkll);
}
}
}
}
else
{
SCM(playerid, COLOR_RED, "Der Spieler hat keinen Timeban ..");
}
return 1;
}
TABELEN
--
-- Tabellenstruktur für Tabelle `SoM_timeban`
--
CREATE TABLE IF NOT EXISTS `SoM_timeban` (
`id` int(9) NOT NULL,
`usr_id` int(11) NOT NULL,
`usr_name` text NOT NULL,
`usr_ip` text NOT NULL,
`ban_time` int(32) NOT NULL,
`ban_length` int(9) NOT NULL,
`ban_typ` text NOT NULL,
`ban_reason` text NOT NULL,
`adm_name` text NOT NULL,
`adm_ip` text NOT NULL,
`status` int(1) NOT NULL DEFAULT '0'
) ENGINE=MyISAM AUTO_INCREMENT=16911 DEFAULT CHARSET=latin1;
--
-- Indizes für die Tabelle `SoM_navi`
--
ALTER TABLE `SoM_navi`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT für Tabelle `SoM_navi`
--
ALTER TABLE `SoM_navi`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=146;
--
-- Indizes für die Tabelle `SoM_timeban`
--
ALTER TABLE `SoM_timeban`
ADD PRIMARY KEY (`id`);
-- AUTO_INCREMENT für Tabelle `SoM_timeban`
--
ALTER TABLE `SoM_timeban`
MODIFY `id` int(9) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=16911;