[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
  • for(new i = 0; i < sizeof(rows); i++)
    zu:
    for(new i = 0; i < rows; i++)


    Das hast du gut versteckt ;)

    Danke :D


    Spaß haha ... Oh man ist eig. nicht ziel der sache aber nun draus gelernt.


    Ich habe jetzt die Funktion aus dem Kopf geschrieben gehabt, naja son bisschen die SpielerInfo aus deinem Tutorial halt umgesetzt. Dafür, dass ich jetzt erst angefangen habe, doch bestimmt nicht schlecht oder? :D


    haha gut jetzt gehts :D


    Vielen Dank

  • Dafür, dass ich jetzt erst angefangen habe, doch bestimmt nicht schlecht oder?

    Einwandfrei fürs erste Mal. So kleine Fehler wie das mit dem sizeof kommen auch später immer mal wieder vor. Das Tückische bei der Sache ist, sie sehen auf den ersten Blick richtig aus, weil man es ja oft so schreibt.
    Die Hauptsache ist aber immer, dass man daraus lernt.


    Vielen Dank

    Gerne!

  • Was kann ich da nochmal machen ?

    Als erste Lösung, abgesehen davon, die 6 Stunden einfach drauf zu rechnen (mit TimestampToDate), wäre zu empfehlen, die Uhrzeit der Maschine (Linux vermutlich) zu ändern. Das kannst du eventuell selbst machen, ansonsten frage bei deinem Host an, ob der dir das machen kann.


    Nur wenn das nicht möglich ist, dann würde ich die Umrechnung im Code machen.

  • Dann ist die Serverzeit falsch eingestellt.
    Du kannst einfach im Script die Uhrzeit auf die Stunden 6 draufrechnen und dann ist es gelöst.

    ehm wo mache ich das nochmal genau ?

    public AllgemeinTimer()
    {
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    new Uhrzeit[250];
    format(Uhrzeit,sizeof(Uhrzeit),"%02d:%02d",stunde,minute);
    TextDrawSetString(SERVERUHR,Uhrzeit);
    format(Uhrzeit,sizeof(Uhrzeit),"%02d.%02d.%04d",tag,monat,jahr);
    TextDrawSetString(SERVERDATUM,Uhrzeit);
    format(Uhrzeit,sizeof(Uhrzeit),"worldtime %02d:%02d",stunde,minute);
    SendRconCommand(Uhrzeit);
    return 1;
    }

  • Ich arbeite gerade an etwas, nur die Gangzone wird nicht angezeigt, beziehungsweise flasht nicht, sobald ein Fight aktiv ist


    OnGameModeInit:

    Fight_Zone = GangZoneCreate(-2129, -45, -2078, 26);
    Fight_Active = 1;


    OnPlayerSpawn:

    switch(Fight_Active)
    {
    case 0: GangZoneShowForPlayer(playerid, Fight_Zone, 0x99FF00AA);
    case 1:
    {
    GangZoneFlashForPlayer(playerid, Fight_Zone, 0x00FF5AFF);
    }
    }


    Ich habe bereits versucht, for dem flashen die Zone zu showen. Sie wird dann zwar angezeigt, aber flashed nicht.

  • Moin,


    ich hab mal eine Frage, ist es nicht möglich einen Query mit 2 WHERE Clauseln zu schreiben ?


    Ich habe nämlich folgenden Query:

    Code
    mysql_format(handle, query, sizeof(query), "SELECT * FROM cars WHERE owner = '%i' AND load = '1'", pInfo[playerid][db_id]);


    Als MySQL Error bekomme ich allerdings:


    Code
    [16:05:40] [ERROR] error #1064 while executing query "SELECT * FROM cars WHERE owner = '1' AND load = '1'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'load = '1'' at line 1

    Ich bin das irgendwie noch son bisschen durch php gewöhnt, da kann man ja sowas machen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • LOAD gehört zur SQL Syntax, daher der Fehler.
    Schreibe es so:
    mysql_format(handle, query, sizeof(query), "SELECT * FROM cars WHERE owner = '%i' AND `load` = '1'", pInfo[playerid][db_id]);


    LOAD wird damit sozusagen "escaped" und kann verwendet werden.

    Danke :) ... Hab mich erst gewundert, warum der nicht lädt. Ich hab natürlich in der Datenbank "load" als int ... Daher hab ich noch die '' weggemacht und nun klappts haha


    (für die leute die evt. ein ähnliches Problem haben :D )

  • Daher hab ich noch die '' weggemacht und nun klappts haha

    Die '' am Wert verursachen in aller Regel kein Problem, heißt diese gehen auch bei Integern.
    Für Strings zum Beispiel sind sie aber zwingend notwendig. Daher ist die grundsätzliche Empfehlung, diese immer zu nutzen. Die `` würde ich wiederrum wirklich nur im Ausnahmefall nutzen, oder gar nicht (dann lieber die Spalte umbenennen).


    Kann aber natürlich jeder so halten wie er/sie das gerne mag - und natürlich wie es funktioniert.

  • Moin :D


    ich mal wieder^^


    Ich wollte mal fragen, wie ich am besten eine Flüssige Geschwindigkeitsanzeige realisiere ? Ich würde ungern jede Sekunde updaten ... Sondern halt wirklich flüssig. Mir würde als Funktion nur nen Timer einfallen ...


    Ansonsten habe ich die Funktion OnPlayerUpdate entdeckt und frage mich wann die so aufgerufen wird ? Kann man die benutzen um eine Flüssige Geschwindigkeit anzuzeigen ?


    //EDIT also ich würde mit nem Timer jede Millisekunde nen Public aufrufen, glaube aber, dass die Performance drunter leidet


    MfG
    XonarZ

  • Sondern halt wirklich flüssig. Mir würde als Funktion nur nen Timer einfallen ...

    Entweder mit einem Timer um die 40ms (=24+ Bilder pro Sekunde = Flüssig) oder über OnPlayerUpdate.


    OnPlayerUpdate entdeckt und frage mich wann die so aufgerufen wird ?

    Zwischen 10 und 30 mal pro Sekunde, je nach dem ob du dich bewegst oder nicht. Für deine Anforderung würde das durchaus Sinn machen, das hier einzubauen.


    Damit:

    Kann man die benutzen um eine Flüssige Geschwindigkeit anzuzeigen ?

    Ja.



    also ich würde mit nem Timer jede Millisekunde nen Public aufrufen, glaube aber, dass die Performance drunter leidet

    Das bitte nicht machen, das wären 1000 Bilder pro Sekunde, das ist viel zu viel.

  • Die Minuten werden nicht richtig ausgegeben, warum?
    Fight_Time --;
    Stunden = Fight_Time/3600;
    Minuten = Fight_Time/60;
    Minuten = Minuten/60;
    Sekunden = Fight_Time - floatround(Fight_Time/60,floatround_floor)*60;
    format(string, sizeof(string),"Materialfight\n\n"HTML_WHITE"Gesperrt für "HTML_LIGHTGREEN"%d Stunden"HTML_WHITE", "HTML_LIGHTGREEN"%d Minuten"HTML_WHITE", "HTML_LIGHTGREEN"%d Sekunden", Stunden, Minuten, Sekunden);
    Update3DTextLabelText(Fight_Info, COLOR_LIGHTGREEN, string);