Funktioniert.
Beiträge von LeonMrBonnie
-
-
BANNED in `BANNED` zu ändern hat nichts gebracht, was meinst du mit der Query die ich dort eingeben soll? Das was in der Konsole steht? der stock BanWithReason?
-
Query: INSERT INTO BANNED (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('LeonMrBonnie', '127.0.0.1', 'test', 'LeonMrBonnie', '2017-2-15', '18:21:59')
-
Nichts, rein garnichts außer: "[ban] [%s]: Erfolgreich %s's Bann Info hinzugefügt" und "Query: (Die ganzen Daten wie gebannte Person, IP usw. die auch stimmen)"
-
Hast du die Datenbank mal neu geöffnet, nachdem du den Spieler gebannt hast?
Funktioniert das CREATE TABLE Query am Anfang (Lösche die Tabelle und lasse sie vom Code erstellen)?
1: Ja habe ich.
2: Ja habe ich grad versucht funktioniert.
-
InFight[issuerid] = 1;
zu:
if(issuerid != INVALID_PLAYER_ID) InFight[issuerid] = 1;Hat funktioniert, danke.
-
Hi,
wenn ich mich auf meinen Server connecte kriege ich folgenden Fehler:
[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 65535 past array upper bound 999
[debug] AMX backtrace:
[debug] #0 00021620 in public OnPlayerTakeDamage (playerid=0, issuerid=65535, Float:amount=4.95000, weaponid=54, bodypart=3) at C:\Users\Agando\Desktop\Garage\AnotherLife Keybinder\SAMP 1HK Server\gamemodes\1hk.pwn:1329In meinem Script auf Zeile 1329 ist das:
Was ist daran falsch? -
-
Versuche es so:
stock BanWithReason(playerid = INVALID_PLAYER_ID, targetid, reason[]){ if(playerid == INVALID_PLAYER_ID) return 1; new Query[256], string[145], day, month, year, second, minute, hour, datestring[24], timestring[24]; getdate(day, month, year); gettime(hour, minute, second); format(datestring, sizeof(datestring), "%i-%i-%i", day, month, year); format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second); format(Query, sizeof(Query), "INSERT INTO BANNED (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", GetName(targetid), PlayerIP(targetid), reason, GetName(playerid), datestring, timestring); db_query(bans,Query); format(string, sizeof(string), "BAN: %s(%d) wurde von %s(%d) gebannt. [Grund: %s]", GetName(targetid), targetid, GetName(playerid), playerid, reason); SendClientMessageToAll(-1, string), string = "\1"; printf("[ban] [%s]: Erfolgreich %s's Bann Info hinzugefügt", GetName(playerid), GetName(targetid)); printf("Query: %s", Query); SetTimerEx("KickTimer", 100, true, "i", targetid); return 1;}Danke, das hat schonmal funktioniert, InGame steht nun dass ich gebannt wurde und in der Konsole stehen auch die Daten die in die DB soll, aber die Daten sind leider nicht in der DB.
-
Wenn ich versuche jemanden zu bannen zu bannen kriege ich nur den Fehler: "SERVER: Fehler beim Bannen von (Name)"
Ich denke mal der Fehler ist das der Query garnicht abgeschickt wird, kenne mich mit SQLite leider nicht sehr aus.
Fehlermeldungen in der Konsole habe ich keine und logs habe ich auch keine die erstellt werden. -
Entferne die Zeile, das Ergebnis liest du bereits eine Zeile drüber aus.
Ja aber dann funktioniert der Befehl immer noch nicht
-
Fehler gefunden.
stock BanWithReason(playerid = INVALID_PLAYER_ID, targetid, reason[])
{
new Query[240], string[112], DBResult:result, day, month, year, second, minute, hour, datestring[24], timestring[24];
getdate(day, month, year);
gettime(hour, minute, second);format(datestring, sizeof(datestring), "%i-%i-%i", day, month, year);
format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second);if(playerid != INVALID_PLAYER_ID)
{
format(Query, sizeof(Query), "INSERT INTO BANNED (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", GetName(targetid), PlayerIP(targetid), reason, GetName(playerid), datestring, timestring);
result = db_query(bans,Query);
Query = db_query(bans,Query);
if(result)
{
format(string, sizeof(string), "BAN: %s(%d) wurde von %s(%d) gebannt. [Grund: %s]", GetName(targetid), targetid, GetName(playerid), playerid, reason);
SendClientMessageToAll(-1, string), string = "\1";
printf("[ban] [%s]: Erfolgreich %s's Bann Info hinzugefügt", GetName(playerid), GetName(targetid));
}
else
{
format(string, sizeof(string), "SERVER: Fehler beim Bannen von '%s'", GetName(targetid));
SendClientMessageToAll(-1, string), string = "\1";
printf("[ban] [%s]: Fehler beim hinzufügen von %s's Bann Info", GetName(playerid), GetName(targetid));
}
}
/*
else
{
format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', 'Server', '%s', '%s')", DB_Escape(GetName(targetid)), DB_Escape(PlayerIP(targetid)), reason, datestring, timestring);
result = db_query(bans, Query);
format(string, sizeof(string), "BAN: %s(%d) has been banned by the Server due to %s", GetName(targetid), targetid, reason);
SendClientMessageToAll(COLOR_RED, string), string = "\1";
}
for anti-cheat purposes ^
*/
Query = "\1", db_free_result(result);
SetTimerEx("KickTimer", 100, true, "i", targetid);
}Die markierte Stelle funktioniert aber leider nicht obwohl es sollte. "error 033: array must be indexed (variable "Query")"
@Jeffry -
Schick mir mal TV daten von dir dann schau ich rüber
Sorry aber irgend nen random lass ich nicht auf meinen PC. Ich kann es dir per Skype Bildschirmübertragung zeigen falls dir das reicht.
-
Hab geguckt habe aber nur die server_log und dort steht nur:
[15:43:00] [ban] [LeonMrBonnie]: Fehler beim hinzufügen von LeonMrBonnie's Bann Info
[15:43:00] [part] LeonMrBonnie has left the server (0:2) -
Erstelle bitte mal in den pawno Ordner eine
config.cfg mit folgendem inhalt
-d3
danach führst du den ban befehl aus und sendest mir die neu erstellte Log datei. Bei mir im Sampordner/logs/plugins/mysql.log
Vielleicht kann ich dir dann danach helfen
Compilen nicht vergessen !
Welchen Sampordner meinst du?
-
Ich benutze kein MySQL sondern SQLite, ich habe keine MySQL.log
-
Du kriegst kein if(result) dadurch kommt der Fehler
Aber die Person wird auch nicht gebannt...
-
Hallo,
ich arbeite momentan an meinem eigenen Gamemode und habe es nach vielen Versuchen immer noch nicht hingekriegt zu fixxen, dass mein Ban Befehl ordentlich funktioniert, hier ist der Code:Code
Alles anzeigenCMD:pban(playerid, params[]) { if(Player[playerid][Level] < 2 && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid,"Du musst ein Senior Supporter sein um diesen Command benutzen zu können."); new targetid, Reason[128]; if(sscanf(params, "ds", targetid, Reason)) return SendUsageMessage(playerid,"/pban [ID] [Grund]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"Der gewählte Spieler ist nicht auf dem Server."); if(strlen(Reason) > 128) return SendErrorMessage(playerid,"Der gewählte Grund ist zu lang."); BanWithReason(playerid, targetid, Reason); return 1; }
Und den stock BanWithReason den ich benutze:Code
Alles anzeigenstock BanWithReason(playerid = INVALID_PLAYER_ID, targetid, reason[]) { new Query[240], string[112], DBResult:result, day, month, year, second, minute, hour, datestring[24], timestring[24]; getdate(day, month, year); gettime(hour, minute, second); format(datestring, sizeof(datestring), "%i-%i-%i", day, month, year); format(timestring, sizeof(timestring), "%i:%i:%i", hour, minute, second); if(playerid != INVALID_PLAYER_ID) { format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", GetName(targetid), PlayerIP(targetid), reason, GetName(playerid), datestring, timestring); result = db_query(bans, Query); if(result) { format(string, sizeof(string), "BAN: %s(%d) wurde von %s(%d) gebannt [Grund: %s]", GetName(targetid), targetid, GetName(playerid), playerid, reason); SendClientMessageToAll(-1, string), string = "\1"; printf("[ban] [%s]: Erfolgreich %s's Bann Info hinzugefügt", GetName(playerid), GetName(targetid)); } else { format(string, sizeof(string), "SERVER: Fehler beim Bannen von '%s'", GetName(targetid)); SendClientMessageToAll(-1, string), string = "\1"; printf("[ban] [%s]: Fehler beim hinzufügen von %s's Bann Info", GetName(playerid), GetName(targetid)); } } /* else { format(Query, sizeof(Query), "INSERT INTO `BANNED` (`NAME`, `IP`, `REASON`, `ADMIN`, `DATE`, `TIME`) VALUES ('%s', '%s', '%s', 'Server', '%s', '%s')", DB_Escape(GetName(targetid)), DB_Escape(PlayerIP(targetid)), reason, datestring, timestring); result = db_query(bans, Query); format(string, sizeof(string), "BAN: %s(%d) has been banned by the Server due to %s", GetName(targetid), targetid, reason); SendClientMessageToAll(COLOR_RED, string), string = "\1"; } for anti-cheat purposes ^ */ Query = "\1", db_free_result(result); SetTimerEx("KickTimer", 100, true, "i", targetid); }
Wenn ich versuche jemanden InGame zu bannen kriege ich den Fehler: "Fehler beim Bannen von (name)" und ich mache eigentlich auch alles richtig also ich nutze /pban 1 Test
Wobei 1 die ID ist und Test der Grund, aber warum funktioniert es immer noch nicht? Ich hoffe ihr könnt mir helfen.