Hallo gibt es hier die ein oder anderen die sich mit Scripten auskennen und mir mal eine Private Nachricht hinterlassen können?
[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
-
-
Hallo gibt es hier die ein oder anderen die sich mit Scripten auskennen und mir mal eine Private Nachricht hinterlassen können?
Nein. Entweder du stellst die Frage direkt hier oder du wirst keine Hilfe erhalten.
Dein Problem in einer privaten Nachricht zu klären, ist nicht der Sinn eines Forums.
-
Beim Registrieren ruft er anscheinend nichts auf.
Edit: Das sind die Funktionen für die Registrierung.
Das liegt an dieser Abfrage:
if(strlen(inputtext) < 6 strlen(inputtext) > 24)
Das ändere mal zu:
6 <= strlen(inputtext) <= 24
Schließlich soll das Passwort zwischen 6 und 24 Zeichen liegen..und nicht kleiner 6 oder größer 24...
Du musst lernen solche Fehler aufgrund der vorliegenden logischen Schlüsse zu ziehen
-
Das liegt an dieser Abfrage:
if(strlen(inputtext) < 6 strlen(inputtext) > 24)
Das ändere mal zu:
6 <= strlen(inputtext) <= 24
Schließlich soll das Passwort zwischen 6 und 24 Zeichen liegen..und nicht kleiner 6 oder größer 24...
Du musst lernen solche Fehler aufgrund der vorliegenden logischen Schlüsse zu ziehen
Habs geändert, bringt leider nichts. Der Account ist leider nicht in der DB vorhanden.
-
...gibst du denn ein Passwort ein?
Dann pack da mal ein paar prints rein...
Wo bleibt der Code hängen...
Kommen Fehler? (Mysql Log...Server Log?)
-
Ja, ich gebe ein Passwort ein
Hab mal Prints reingepackt, AccountCheck und den Dialog ruft er auf, den Rest nicht.
Ich klicke nach der PW eingabe auf Bestätigen, ab da tut sich dann nix mehr.
Fehler kommen nirgends.
-
Warte mal...der Dialog beim Registrieren...macht da keinen Sinn?
Lösch den mal aus der Abfrage über dem bcrypt_hash
...kannst die außerhalb der if-Abfrage packen.
Bei Account Check...bzw danach muss doch der Dialog_Register Dialog aufgerufen werden...
Was steht denn unter Dialog_Info?!
-
Dialog_Info war garnichts, der stand da falschdrin. Hab den Fehlert gefunden, lag an der DB.
Edit: Wenn ich bei der Registrierung die IP anzeigen und Mail Adresse abfragen möchte, kann ich die in der DB irgendwie verschlüsseln mit bcrypt?
Um es Datenschutzkonform zu machen würde ich natürlich nen Hinweistext machen wieso ich die IP und Mail abspeichere.
-
Beitrag von Klex ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: hat sich erledigt (). -
Moin,
wie nutzt man denn OnPlayerCommandText bei ocmd?
Nutzt man OnPlayerCommandText oder z.B ocmdOnPlayerCommandText gibt er nur "Unbekannter Befehl" zurück.
-
-
Kannst du die Frage präziser formulieren? Was möchtest du denn machen / in Erfahrung bringen?
-
Moin,
wie nutzt man denn OnPlayerCommandText bei ocmd?
Nutzt man OnPlayerCommandText oder z.B ocmdOnPlayerCommandText gibt er nur "Unbekannter Befehl" zurück.
Du nutzt es da garnicht, sondern iwo im Script, z.B. ganz unten unter allen Publics,
Zb. So:
ocmd:BEFEHLNAME(playerid,params[])
{
BlablablaReturn 1;
}
-
Ja klar,
allerdings läuft ocmd ja über OnPlayerCommandText.
Wenn ich einen "ocmd Befehl" Befehl eingebe, bekomme ich dort, falls er nicht existiert
genau die gleiche Nachricht wie wenn ich einen Befehl eingebe, der mit strcmp geschrieben wurde.
Nur weil ich bei OnPlayerCommandText "SCM(playerid,-1,"Der Befehl wurde nicht gefunden, Verwende {6EF83C}/help!");" returne.
Das muss also irgendwie möglich sein, ocmd_[Befehl] ist mir auch bekannt, ist aber nicht das, was ich meine. Es soll halt genauso
funktionierten wie OnPlayerCommandText
(Auszug aus dem ocmd include)
Code
Alles anzeigenpublic OnPlayerCommandText(playerid,cmdtext[]) { #if defined OCMD_BEFORE_CALLBACK if(!ocmdInit) { if(funcidx("BeforePlayerCommandText")!=-1)ocmdBeforeCallback=true; ocmdInit=true; } #endif new ocmdStr[32]="ocmd_", ocmdI=1, #if defined OCMD_COMMAND_LOG ocmdName[MAX_PLAYER_NAME], #endif bool:ocmdNoParams; #if defined OCMD_COMMAND_LOG GetPlayerName(playerid,ocmdName,sizeof ocmdName); printf(OCMD_COMMAND_LOG_FORMAT,ocmdName,cmdtext); #endif #if defined OCMD_BEFORE_CALLBACK if(ocmdBeforeCallback&&!CallLocalFunction("BeforePlayerCommandText","ds",playerid,cmdtext))return 1; #endif for(;ocmdI<128;ocmdI++) { if(!cmdtext[ocmdI]||cmdtext[ocmdI]==' ') { if(!cmdtext[ocmdI]||!cmdtext[ocmdI+1])ocmdNoParams=true; break; } ocmdStr[ocmdI+4]=tolower(cmdtext[ocmdI]); } if(!ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid,cmdtext[ocmdI+1]))return 1; if(ocmdNoParams&&CallLocalFunction(ocmdStr,"ds",playerid," "))return 1; return CallLocalFunction("ocmdOnPlayerCommandText","ds",playerid,cmdtext); } #if defined _ALS_OnPlayerCommandText #undef OnPlayerCommandText #else #define _ALS_OnPlayerCommandText #endif #define OnPlayerCommandText ocmdOnPlayerCommandText
-
weiß ehrlich gesagt nicht genau worauf du aus bist aber meinst du vielleicht BeforePlayerComandText?
-
Hallo!
Ich bin gerade dabei einen Befehl zu machen um ein Tor zu öffnen und zu schließen.
Wie mache ich es am besten, das man dieses Tor nur in einer bstimmten Range auf und zu machen kann und dass beide BEfehle in einem sind?
Meine Befehle:
C
Alles anzeigenocmd:torzu(playerid) { IsPlayerInRangeOfPoint(playerid, 20, 276.0239, 113.3367, 3.2570); { MoveDynamicObject(tor,276.0239, 113.3367, 3.2570,5); return 1; } } ocmd:gateauf(playerid) { IsPlayerInRangeOfPoint(playerid, 20, 233.8682, 100.4255, 5.3460); { MoveDynamicObject(gate,233.8682, 100.4255, 9.6560,5); return 1; } }
MfG
-
Du hast bei beiden Befehlen das if vor dem IsPlayerInRangeOfPoint vergessen, so kann das nicht funktionieren.
-
Danke, und wie mache ich aus beiden Befehlen einen Befehl?
-
Erstell eine Variable ob das Tor offen ist und frag diese innerhalb des Befehls ab, beim schließen / öffnen des Tores änderst du diese Variable dann.
-
So?
C
Alles anzeigenocmd:gateauf(playerid) { if(gate) { if(IsPlayerInRangeOfPoint(playerid, 20.0, 276.0239, 113.3367, 3.2570)) { MoveDynamicObject(gate,276.5659, 104.4732, 3.2570,5); } else { SendClientMessage(playerid, 0xFF3333FF, "Du bist zu weit vom Gate entfernt"); } } else { if(IsPlayerInRangeOfPoint(playerid, 20.0, 276.0239, 113.3367, 3.2570)) { MoveDynamicObject(gate,276.0239, 113.3367, 3.2570,5); } else { SendClientMessage(playerid, 0xFF3333FF, "Du bist zu weit vom Gate entfernt"); } } return 1; }
if(gate) nehm ich von gate = CreateDynamicObject(, 276.0239, 113.3367, 3.2570, 0.0000, 0.0000, -86.4999, -1, -1, -1, 300.0, 300.0, -1);
Dies ist die Position wenn das Gate geschlossen ist.
-
Du musst gate auf true oder false setzen, entsprechend ob das Tor offen oder zu ist, du brauchst also 2 Variablen. Eine für den Status des Gates und eine für das Gate selber.