[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
  • Genau, das würde dann so aussehen. Die Schleife mit dem Array Durchlauf durch string sollte daher nur bei Dialogen verwendet werden, da die keine Tilden zur Formatierung nutzen (außer man will Tilden im Text haben, dann muss man sich ein anderes Zeichen suchen).


    Für Textdraws benötigt man keine "Übersetzung", das kann 1:1 aus der Datenbank gelesen werden, daher darf man für einen String der im Textdraw genutzt wird die Schleife nicht voranstellen (in einem Textdraw gibt es keine Formatierung mit Backslash).


    Ich denke das ist was du meinst, dass man die Tilde nicht als Zeilenumbruch Platzhalter nutzen darf, wenn sie anderweitig verwendet werden soll.

  • ich habe mal eine Frage bezüglich des MySQL's.
    Frage lautet: Ist es möglich in der MySQL abfrage einzubauen das er prüft ob der Spieler bereits einen Dateneinsatz hat?
    Nicht das alles doppelt drinne ist?


    geht dies oder muss ich anderes vorgehn?
    da bin ich grad etwas übefragt :D

  • Inwiefern möchtest du das einbauen (d.h. soll es in einer Abfrage selbst vorkommen)?
    Du kannst natürlich mit dem SELECT-Statement und entsprechenden WHERE-Selektionen prüfen, ob ein Datensatz existiert. Mit der Abfrage (* num_rows in PHP, o.ä.) kannst du dir dann anzeigen lassen wie viele Zeilen deine Anfrage geliefert hat

  • ich habe mal eine Frage bezüglich des MySQL's.
    Frage lautet: Ist es möglich in der MySQL abfrage einzubauen das er prüft ob der Spieler bereits einen Dateneinsatz hat?
    Nicht das alles doppelt drinne ist?


    geht dies oder muss ich anderes vorgehn?
    da bin ich grad etwas übefragt :D

    Nein, du kannst es direkt mit einer einzigen SQL Abfragen erledigen. :)
    Hier der grobe Vorgang (man kann mehrere Varianten verwenden, um ans Ziel zu gelangen. :) )


    Als erstes erstellst du deine Abfrage.
    Danach fragst du mittels den gegeben Funktionen ab, wieviele Zeilen du erhalten hast.
    Und richtest danach deine Bedingung aus.


    if(rows == 1) -> ein datensatz gegeben, keine doppelten
    allerdings wenn z.B.
    if(rows > 1) -> mehrere accounts vorhanden


    Es wäre gut grob zu sagen, was du vor hast.
    Wenn du z.B. damit ein "Account Daten Laden" machen möchtest und das MySQL Plugin Version R35+ verwendest, so kannst du z.B. eine effiziente Variante nutzen, die sogar im Wiki dokumentiert ist.

  • Du kannst den Actor an der Position des Interiors erstellen, er ist dann automatisch drin.
    Du kannst dem Actor aber kein spezielles Interior zuweisen, also wenn eine Position (z.B. Haus) von zwei Interior IDs verwendet wird, dann steht er in beiden Interior IDs drin.


  • Ich versteh nicht warum in der Datenbank dies nicht erstellt wird, hat wer eine Idee oder sieht den Fehler ?


    ERROR MELDUNG: [ERROR] CMySQLQuery::Execute[OnQueryFinish] - (error #1146) Table 'servernamen.gm_races' doesn't exist


  • Möglicheweise ist die Query-Variable zu klein.


    Aber: Mach das bitte nicht so. Das geht völlig am Sinn einer Datenbank vorbei.


    Erstelle eine Tabelle mit:

    • RaceID (PRIMARY KEY)
    • Name
    • fID (was auch immer das ist)
    • rmode


    Und die zweite Tabelle mit

    • RaceID (PRIMARY KEY)
    • CheckpointID (PRIMARY KEY)
    • x
    • y
    • z
    • cp_typ
    • cp_size


    Dann sparst du dir so eine Monster-Tabelle, die komplett unübersichtlich ist, sondern hast schön jeden Checkpoint für sich stehen.

  • if(!sInfo[playerid][pLogIn] == 1)

    Klingt zwar vollkommen bescheuert :D


    Aber man könnte das wirklich so schreiben:


    if(!sInfo[playerid][pLogIn] == true) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");


    Aber natürlich wäre hier offensichtlicher entweder:


    //Direkt so:
    if(!sInfo[playerid][pLogIn]) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");


    oder:


    if(sInfo[playerid][pLogIn] != true) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt.");

    ast2ufdyxkb1.png


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

  • Guten Abend ich möchte in meinem Spawnvehicle befehl es verhindern wenn ein Trailer angekoppelt ist das er dann spawn


    wie mach ich das am besten ?

    for(new v=0; v<MAX_VEHICLES; v++)
    {
    if(!IsVehicleEmpty(v))continue;
    {
    SetVehicleToRespawn(v);
    }
    }

  • So am besten:


    ast2ufdyxkb1.png


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