[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Okay keine Ahnung ob ich einen Denkfehler habe, aber wenn ich z.B. Strings verwendet habe musste ich nur beim Definieren ihre Array-Länge angeben,
    Jetzt habe ich folgendes Problem:


    Oben im gamemode


    new KKOwner[MAX_PLAYER_NAME];


    Gamemodeinit:


    Falls die .ini nicht existiert > dini_Set("/Server/RLRP/Biz/Krankenkasse.ini", "Owner", "NONE");


    KKOwner = dini_Get("/Server/RLRP/Biz/Krankenkasse.ini", "Owner");


    und kriege dabei folgenden Fehler: error 047: array sizes do not match, or destination array is too small




    Ich habe halt vor den Spielernamen später mit KKOwner zu vergleichen um herauszufinden ob er die Krankenkasse besitzt.
    Und ich lade immer am Anfang alles in eine Variable (hier: KKOwner) um diese dann über den ganzen Gamemode zu verwenden und bei Gamemodeexit speicher ich den neuen Wert ein, falls dieser verändert wurde.
    Damit ich nicht immer 100x im Script die gleichen dini Funktionen habe


    Würde das ganze auch über MySQL machen habe aber 0 Ahnung wie ich vernünftig mySQL im Script einbinde :P


    Edit //
    Ähm ja klar Denkfehler xD,
    so geht es jetzt:


    new str2[MAX_PLAYER_NAME];
    format(str2, sizeof(str2), "%s", dini_Get("/Server/RLRP/Biz/Krankenkasse.ini", "Owner"));
    KKOwner = str2;

    SA:MP in 2020?

  • Irgendwie klappt das immer nicht...

    format(string,sizeof(string),"Du bist also %s Jahre alt.",inputtext);
    SendClientMessage(playerid,Gelb,string);
    format(query,sizeof(query),"UPDATE user SET 'alter'='%s' WHERE id='%i'",inputtext,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");

    Code
    [17:55:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''alter'='18' WHERE id='24'' at line 1
  • Um die Spaltennamen zu escapen musst du Backticks ( ` ) verwenden, für String verwendestest du weiterhin die -> '
    Also muss es so sein:

    kurze frage aber ist Alter nicht eine Zahl ? also ein integer ?


    muss das dann nicht alter='%i' sein ?

    Du willst mich kennenlernen? Kauf mein Buch, Bia*ch!


  • ^ zu oben
    Scheint mir unnötig kompliziert ich würde ja eher strval(inputtext) nehmen statt eine Zahl als String zu speichern


    Außerdem habe ich da mal eine Frage
    Wie wäre es gut ein .ini Speichersystem zu verwenden welches sich automatisch beim Gamemode exit selbst speichert
    Wie ich festgestellt habe ist gamemodeexit zu schnell um die .inis für die Fraktionen und sonstigen Dateien zu speichern
    Jedes mal einen Rollback zu haben wenn man den Server ausschaltet ist ja auch nicht so toll, außerdem weiß ich nicht ob es auch die Spieler speichern könnte wenn mehr als nur ich aufm Server sind


    Bis jetzt würde mir nur einfallen alle 5 Minuten einmal alles zu speichern

    SA:MP in 2020?

  • Du kannst dir mit den File-Commands ganz einfach so ein eigenes System schreiben.
    Das ist vom Grundsatz her wirklich nur Basiswissen.


    Es geht wesentlich einfacher: direkt speichern. ;)

    Jo ich versuch gerade zu finden wo OnGameModeExit definiert ist oder Rcon Command "exit" aber ich finde nur die natives und nicht die funktion, weißt du wo die sind?

    SA:MP in 2020?

  • Jo ich versuch gerade zu finden wo OnGameModeExit definiert ist oder Rcon Command "exit" aber ich finde nur die natives und nicht die funktion, weißt du wo die sind?

    Ich habe keine Ahnung, was du suchst.



    This callback is called when a gamemode ends, either through 'gmx', the server being shut down, or [wiki]GameModeExit[/wiki].



    This callback will NOT be called if the server crashes or the process is killed by other means, such as using the Linux kill command or pressing the close-button on the Windows console.


    Ich empfehle dir einen eigenen restart befehl, wo du alles speicherst und danach dann den Server neustartest :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich habe keine Ahnung, was du suchst.


    Ich empfehle dir einen eigenen restart befehl, wo du alles speicherst und danach dann den Server neustartest :)

    Jo jetzt habe ich einen Befehl und schließe den Server nur noch über "exit" über der Konsole, bist jetzt klappt es, ich hoffe das geht auch in Zukunft mit exit über Konsole auch wenn mehrere Spieler on sind, wäre ja doof jedes mal extra in SA:MP einzuloggen um den Server runterzufahren

    SA:MP in 2020?

  • Guten Morgen,
    kann mir einer auf die Sprünge Helfen?
    Ich möchte gerne Abfragen, ob jemand auf mein Fahrzeug geschossen hat und dem Fahrer dann eine Nachricht ausgeben,
    weiß nur nicht mit welchen Funktion ich dies Abfragen kann/sollte.


    Mit freundlichen Grüßen.

  • Wie mache ich das, dass ich in meinem Dialog in dem Titel ( //18.12...) das Datum und die aktuelle Uhrzeit (string) anzeigen lasse?
    Es gab doch dieses Timestamp?

    Code
    forward PlayerLoginTimer(playerid);
    public PlayerLoginTimer(playerid)
    {
    	ShowPlayerDialog(playerid, DIALOG_LOGINKICK, DIALOG_STYLE_MSGBOX, "//18.12.2018 19:01Uhr","X", "Verlassen","");
    	_Kick(playerid);
    	return 1;
    }

    danke im Vorraus :D

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wie lässt man bei dini Namen auslesen?



    if( strcmp( key , "BanReason" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBanReason] = strval( val ); }
    if( strcmp( key , "BanAdmin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBanAdmin] = strval( val ); }