In der Funktion OnAccountCheckPW da gibt es folgende Zeile:
Schreib mal direkt darüber folgendes:
Und dann schau mal im serverlog und in der DB, was da so unter Passwort steht.
In der Funktion OnAccountCheckPW da gibt es folgende Zeile:
Schreib mal direkt darüber folgendes:
Und dann schau mal im serverlog und in der DB, was da so unter Passwort steht.
MySQL Log hinzugefügt
Danke, die letzten 100 Zeilen hätten schon genügt.
Da steht der Fehler:
Nur name und passwort, werden gesetzt durch das INSERT Query, der ganze Rest benötigt default values.
Also Verbinde dich am Besten mit phpmyadmin und bearbeite die Tabellen Struktur so, dass alles andere Default Values hat, also in diesem Fall einfach 0, damit niemand automatisch admin ist.
Falls du eine .sql Datei hast, die die Datenbank erstellt hat, kannst du das auch einfach einer KI geben, und die ergänzt dir das automatisch ![]()
1. Wird dir denn der Dialog "Herzlich Willkommen auf Calikartell-Deathmatch...." angezeigt?
2. Bekommst du, wenn du das Skript kompilierst eine Info wo irgendwas von Stack/Heap Size steht und Total requirements?
3. Check mal die Ordner, ob es einen Log Ordner gibt mit einem mysql log? Ansonsten unter OnGameModeInit, mal mysql_log(LOG_ALL); schreiben und dann nochmal probieren und prüfen. ![]()
Hätte ja sein können, dass ein Account bereits in der Datenbank existiert, den du manuell angelegt oder noch von einem früheren Server hattest.
Du hast dich oben etwas missverständlich ausgedrückt.
Aber na gut, dann brauchen wir natürlich die: OnPlayerCreateAccount Funkion ![]()
Und hast du dich auch eingeloggt oder wolltest du dich registrieren?
Hattest du das Skript auch neu kompiliert, als du die Log Funktion angepasst hattest? ![]()
Und wie sieht die OnPlayerLoadAccount ![]()
Und schreib die Log-Funktion mal so:
stock Log(const string[], ...) {
new log_categories[32], entry[512], query[1024];
mysql_escape_string(string, entry);
for (new i = 1; i < numargs(); i++) {
format(log_categories, sizeof(log_categories), "%s|%d", log_categories, @arg[i]);
}
print(string);
format(query, sizeof(query), "INSERT INTO logs (entry, timestamp) VALUES ('%s', %d);", entry, gettime());
mysql_tquery(mysql, query, "OnLogEntrySaved", "s", log_categories);
}
Alles anzeigen
und dann logge dich nochmal ein und poste den server.log
Und wie sieht LoadAccount aus? ![]()
Und zeig gerne mal die Log Funktion, dann kannst du auch herausfinden, wo das hingeschrieben wird und besser nachvollziehen oder du packst da ein printf Statement rein, dann siehst du es direkt in der Konsole, bzw im Server-log.
Okay, und wie sieht OnAccountCheckPW aus? ![]()
Zeig gerne mal den Code von DIALOG_LOGIN unter OnDialogResponse.
Dann wissen wir, was passiert, wenn du das Passwort beim Login eingegeben hast.
PS: Gerne mal crashdetect laden und damit mal auf den Serverjoinen und dann die server.log nochmal anschauen/hier posten.
Katernberger98 ich vermute, da hat sich jemand einen Scherz erlaubt.
Downloade dir mal den Anhang.
Und ersetze mal deine pawno.exe damit, vllt geht es dann.
Irgendwie finde ich das so lustig, ich kann nicht mehr, hahahaha 😂😂😂😂
Was passiert bei dem Knopf rechts daneben?
Und starte Pawno mal als Admin ![]()
Das macht ja irgendwie keinen Sinn, dass sich da SA:MP öffnet.
Kannst du davon mal ein Video machen? ![]()
Welche Software nutzt du denn? Also nutzt du Pawno oder Visual Studio Code?
Welche Compiler Version nutzt du? (Rechtsklick auf die pawnc.dll im Pawno Ordner und da unter Version), wenn es nicht die 3.10 Version ist, bitte einspielen: https://github.com/pawn-lang/compiler/releases/tag/v3.10.10
Oder willst du OMP nutzen?
Paar mehr Infos wären gut ![]()
Und deshalb bist du hier Admin GangstaSunny Ehre!
Nein, das geht nicht direkt.
Musst jemanden finden, der sie dir tauscht.
Kleinanzeigen, Discord, Subreddits, oder vllt sogar hier im Forum.
Um das kurz klarzustellen: Es handelt sich nicht um eine klassische API im Entwickler-Sinne. Der Bot läuft direkt auf deinem Server, verfügt über ein Web-Dashboard, in dem du alles einstellen kannst, und kann wichtige Ereignisse in einen Discord-Channel schicken. Die beiden „Interfaces“ sind also eher das Dashboard im Browser und die Discord-Benachrichtigungen, nicht wirklich eine offene API zum Programmieren.
Wieso klingt das so nach KI hahaha 😅
Natürlich läuft der "Bot" direkt auf meinem Server, das habe ich nie in Frage gestellt.
Aber das Web-Dashboard schickt doch Ereignisse wieder an deinen "Bot", und vom Discord aus, kann man den "Bot" doch auch steuern.
Ergo müssen diese Befehle, sowohl aus dem Web-Dashboard, als auch aus dem Discord, an EINE Schnittstelle gesendet werden oder gibt es da mehrere?
Ich glaube die KI hat in dem Kontext "API" falsch verstanden. Mit API meine ich ein Interface, nichts offenes "zum Programmieren" 😅
Zum Thema IP: Das habe ich mir noch einmal überlegt. Im TS3-Client sieht der Server-Admin die IP von jedem Nutzer ohnehin das ist also nichts, was mein Bot neu einführt. Ich zeige die IP hauptsächlich, damit man erkennt, ob jemand mit VPN verbunden ist, und vor allem, um bei ernsteren Vorfällen wie Beleidigungen, Betrug oder anderen Regelverstößen die Person dauerhaft sperren zu können. Ein Namens-Ban bringt wenig, wenn sich jemand einfach neu verbindet. Ich gebe dir aber recht, dass man damit verantwortungsvoll umgehen sollte. Deshalb werde ich im Dashboard einen deutlichen Hinweis ergänzen, dass IPs vertraulich zu behandeln sind.
Natürlich siehst du die IP, wenn der User auf den TS3-Server kommt, da ist er ja auch wirklich. (Self-Hosted + User ist anwesend)
Beim SA:MP Server, auch kein Problem. (Self-Hosted)
Aber stell dir vor, der User ist nicht auf Discord und kommt nur auf den TS3-Server und plötzlich werden personenbezogene Daten IP-(DSGVO) an die Discord-Server (Amerika) geschickt, wobei der Nutzer dort nie war...also ohne deinen Bot, wären die Daten da nie gelandet. Das ist technisch nicht DSGVO konform.
Ein ähnliches Problem ergibt sich, wenn du Schriftarten oder CSS, via Google Link auf deine Webseite einbettest, dann wird auch die IP einfach mal so eben von dem Nutzer zu Google übertragen, obwohl er das vllt gar nicht will.
Das ist halt nicht so schön. Man könnte es wie gesagt, juristisch rechtfertigen, aber why, muss ja nicht.
Und die SA:MP-Integration: das ist tatsächlich eine Idee, die mich selbst reizt, weil ich aus der SA:MP-Szene komme. Mal schauen, ob ich das irgendwann einbauen kann.
Da dein Bot lokal läuft und der SA:MP Server am Besten auch, kannst du einfach diese Funktion nutzen: http
Dadurch kannst du in SAMP die Gleiche Schnittstelle nutzen, wie dein Web-Dashboard ohne irgendwas extra zu programmieren.
Halt nur in SA:MP die entsprechenden Befehle oder Übersichten, um das alles darzustellen.
Ja, viel Erfolg, falls du konkret fragen hast, kannst du das gerne hier im Forum tun, ein paar alte Hasen, wie ich z.B. sind ja noch unterwegs.