[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Hey,
benutz mal &&, da ja beide Abfragen zutreffen müssen und nicht nur eine
||heißt entweder oder
&& heißt beide müssen zutreffen -
@PermanenT
Das spielt bei der Abfrage keine Rolle
Entweder ist es kleiner oder es ist größer
die meldung kommt trotzdem -
Dann würde diese Abfrage nie zutreffen, der Text kann nämlich nicht kleiner als 4 aber auch gleichzeitig größer als 64 sein.
Beavis hat da schon recht.
-
Und deswegen ist die Abfrage ja richtig, wenn es zu wenig oder zuviele Zeichen sind, gibt's einen Fehler, nicht wenn es zuwenig und zuviele gleichzeitig sind
-
Seine Abfrage lautet if(strlen(Text) < 4 || strlen(Text) > 64), du möchtest das diese
if(strlen(Text) < 4 && strlen(Text) > 64) so aussehen soll.Gehen wir das Szenario mal durch, mit if(strlen(Text) < 4 && strlen(Text) > 64):
Setzen wir mal Text auf 1.Laut deiner Abfragen wird geprüft, ob der Text kleiner als 4 ist und gleichzeitig größer als 64.
Text < 4 trifft ein, Text > 64 nicht, da Text gleich 1 ist. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden.Text ist jetzt 70.
Text < 4 trifft nicht zu, da Text gleich 70, Text > 64 trifft zu. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden.Text ist jetzt 40 (also im erlaubten Bereich).
Text < 4 trifft nicht zu, da Text gleich 40, Text > 64 trifft nicht zu, da Text gleich 40. Es wird nicht returned und auch keine Meldung abgegeben, da beide Bedingungen nicht erfüllt wurden. (Hier würde es zwar funktionieren, aber nicht wie es soll.__
Gehen wir das Szenario mal durch, mit if(strlen(Text) < 4 || strlen(Text) > 64):
Setzen wir mal Text auf 1.Laut der Abfragen wird geprüft, ob der Text kleiner als 4 oder größer als 64.
Text < 4 trifft ein, Text > 64 nicht, da Text gleich 1 ist. Es wird returned und auch eine Meldung abgegeben, da eine Bedingungen von zwei erfüllt wurden.Text ist jetzt 70.
Text < 4 trifft nicht zu, da Text gleich 70, Text > 64 trifft zu. Es wird returned und auch eine Meldung abgegeben, da eine Bedingungen von zwei erfüllt wurden.Text ist jetzt 40 (also im erlaubten Bereich).
Text < 4 trifft nicht zu, da Text gleich 40, Text > 64 trifft nicht zu, da Text gleich 40. Es wird nicht returned und auch keine Meldung abgegeben, da keines der Bedingungen erfüllt wurden. Weiter geht es hier wie gewünscht.Edit:
Alternativ würde zwar if(strlen(Text) > 4 && strlen(Text) < 64) funktionieren, müsste aber in einem Block gesetzt werden und in der else die Meldung abgeben.
-
Hat jemand Tipps wie ich das MySQL Plugin von BlueG zum laufen kriege? Ich bekomme immer die Meldung: Loading plugin: mysql failed.
Die alten C++ Redist Packages kann ich auch nicht installieren, laesst Windows 10 leider nicht zu, da angeblich von allem neuere Versionen installiert sind. -
Die alten C++ Redist Packages kann ich auch nicht installieren, laesst Windows 10 leider nicht zu, da angeblich von allem neuere Versionen installiert sind.
Sicher? Das ist sehr merkwürdig.
https://forum.sa-mp.com/showpost.php?p=3696651&postcount=3
Mal überall versucht die x86 zu installieren?
-
Genau, habe ich mal probiert. Nur 1 Package davon war noch nicht vorhanden.
Ach wir muessen mal wieder eine TS Sitzung machen -
Wie kriege ich es hin die zukünftige unix zeit in ein genaues datum umzuwandeln, ist sowas möglich?
z.B. spieler kriegt 12 stunden ban, beim login wird ihn ein dialog angzeigt bis zu welchem datum + uhrzeit dieser gebannt ist also tag/monat/jahr uhrzeit
-
-
Eventuell so?
https://forum.sa-mp.com/showthread.php?t=617081Ansonsten hier ne Include
https://forum.sa-mp.com/showthread.php?t=347605 -
Nutze die Include (zweiter Link von Canna), die funktioniert dafür perfekt.
Beachte aber meinen Post auf Seite 8 in dem Thread, das muss noch eingebaut werden, sonst kann es zu Fehlern kommen: https://forum.sa-mp.com/showthread.php?t=347605&page=8 -
Danke für den Fix und die Include, die ist wirklich perfekt dafür
-
So ich versuche mich nun ein wenig in MySQL einzufinden.
Jedoch weiss ich leider nicht wie ich Fehlersuche betreiben kann.Habe mir gerade ein Script gezogen, und versuche damit auf die Datenbank zu verbinden.
User, IP und Datenbankname habe ich gecheckt, existiert alles.
Jedoch kann ich leider nicht verbinden, dieses Script meldet mir hier einen Fehler.Wie kann ich rausfinden woran es genau liegt?
Code
Alles anzeigenpublic OnGameModeInit() { new MySQLOpt: option_id = mysql_init_options(); mysql_set_option(option_id, AUTO_RECONNECT, true); // We will set that option to automatically reconnect on timeouts. Database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE, option_id); // Setting up the "Database" handle on the given MySQL details above. if(Database == MYSQL_INVALID_HANDLE || mysql_errno(Database) != 0) // Checking if the database connection is invalid to shutdown. { print("I couldn't connect to the MySQL server, closing."); // Printing a message to the log. SendRconCommand("exit"); // Sending console command to shut down server. return 1; } print("I have connected to the MySQL server."); // If the given MySQL details were all okay, this message prints to the log. // Now, we will set up the information table of the player's information. mysql_tquery(Database, "CREATE TABLE IF NOT EXISTS `PLAYERS` (`ID` int(11) NOT NULL AUTO_INCREMENT,`USERNAME` varchar(24) NOT NULL,`PASSWORD` char(65) NOT NULL,`SALT` char(11) NOT NULL,`SCORE` mediumint(7), `KILLS` mediumint(7), `CASH` mediumint(7) NOT NULL DEFAULT '0',`DEATHS` mediumint(7) NOT NULL DEFAULT '0', PRIMARY KEY (`ID`), UNIQUE KEY `USERNAME` (`USERNAME`))"); // So, this code is probably the only one which you haven't understood. // Well, we firstly create a table only if not existing in the database which is "USERS". // We create "ID" and set it as a primary key with auto increment to use it in retrieving information and many more uses. // We create "USERNAME" and set it as a unique key, the USERNAME stores every player's name in the database so you can // Control the players in offline mode and when a player leaves everything storted like kills, deaths, password and Saltion key // Wouldn't be lost upon server's close or player's disconnection. // We store kills, deaths, score and cash as written above so they might be useful for further use. return 1; }
-
Database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATABASE, option_id); // Setting up the "Database" handle on the given MySQL details above.
Also mein MySQL Connect sieht so aus: mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DBSE, MYSQL_PASS, 3306, true);
Bei dir fehlt ein Port, jedoch weiß ich nicht welche version und welche MySQL include du verwendest (falls es mehrere gibt)Sonst versuch mal beim OnGameModeInit mysql_log(); einzufügen und schick dann mal den error code aus der .txt die im hauptordner erstellt werden sollte
-
Hier mal das Log.
Da scheint der ja mit einem anderen Port verbinden zu wollen.Code[15:57:29] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:30] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:31] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:32] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)'
-
Hier mal das Log.
Da scheint der ja mit einem anderen Port verbinden zu wollen.Code[15:57:29] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:30] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:31] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)' [15:57:32] [plugins/mysql] CConnection::CConnection - establishing connection to MySQL database failed: #2002 'Can't connect to MySQL server on '192.168.3.0' (10061)'
Es scheint eine andere MySQL Version zu sein, als die, die ich verwende von daher bin ich mir unsicher.
Ich möchte jetzt nicht zu viel sagen, da ich mir hier echt nicht sicher bin, aber hier hast du erstmal mögliche Fehlerquellen bis sich ein Anderer meldet
Hast du schon probiert dein Port einzufügen in mysql_connect wie ich es vorher beschrieben habe?Aber mögliche Fehler könnten sein:
Es ist nicht auf deinem lokalen PC, und der Port den du angeben hast ist dort nicht freigschaltet
Hast einen falschen Port angegeben
Dein MySQL Server ist offline
Falsches passwort / username vom MySQL User -
Ich sehe gerade, das Problem ist: Ich kann keinen Remote Zugriff auf meinen MYSQL Server ausfuehren. Der liegt ja nicht lokal auf meinem PC, sondern auf meinem Server im Netzwerk.
Ich will jedoch mein Script hier auf dem PC testen, wobei ich dann auf die Datenbank auf den Server zugreifen muss.
Weiss jemand wie ich Remote Zugriff aktivieren kann bei MySQL? -
Weiss jemand wie ich Remote Zugriff aktivieren kann bei MySQL?
Das ist nicht zu empfehlen, vor allem dann, wenn der Server aktiv ist und du parallel von deinem PC auf die gleiche Datenbank zugreifst.
Man sollte für einen lokalen Testserver auch eine lokale Datenbank einrichten. Installiere dir z.B. XAMPP und lade dir dort eine Kopie der Datenbank vom Server rein.XAMPP Installation: [jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)
-
Sagt mal.. ne kurze Frage.. Habe aktuell Schwierigkeiten mit der Telekom.. also kein Internet.. ist es möglich dennoch irgendwie zu entwickeln ?
Benötige ich für die Plugins eine Internetverbindung ?
Grüße