[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
  • Hey,


    Habe nur noch die Letzen vier fehler..



    C:\Users\ASUS\Desktop\GTA - San Andreas Daten\Sachen\ Reallife\gamemodes\Reallife.pwn(39455) : error 035: argument type mismatch (argument 3)
    C:\Users\ASUS\Desktop\GTA - San Andreas Daten\Sachen\ Reallife\gamemodes\Reallife.pwn(39456) : error 035: argument type mismatch (argument 3)
    C:\Users\ASUS\Desktop\GTA - San Andreas Daten\Sachen\ Reallife\gamemodes\Reallife.pwn(40749) : error 035: argument type mismatch (argument 3)
    C:\Users\ASUS\Desktop\GTA - San Andreas Daten\Sachen\ Reallife\gamemodes\Reallife.pwn(46511) : error 017: undefined symbol "mysql_num_rows"




    new EintragID;
    EintragID = cache_get_value_name_int(i,"SQLid", tmp); //39455
    new Money = cache_get_value_name_int(i,"Money", tmp); //39456




    if(!IsOnline)
    {
    cache_get_value_name_int(j,"LastLoginDatum", tmpDate); //40749


    savedTime = strval(tmpName);
    strcat(tmpDate, dater(savedTime));


    if(strfind(tmpDate, " 1970") != -1)
    tmpDate = "{FF9500}Noch nicht eingeloggt";
    }
    else tmpDate = "{4DD03C}Online";



    new Reihen = 0;
    Reihen = mysql_num_rows(); //46511



    Benutze MysQL R41-4


    Ich hoffe ihr könnt mir bei den letzen fehlern helfen danke im Vorraus!

  • Ich hoffe ihr könnt mir bei den letzen fehlern helfen danke im Vorraus!

    Du weißt, dass es ein Wiki gibt mit Beispielen, wie man die Funktionen nutzt oder? :D


    Hier mal als Beispiel: http://wiki.sa-mp.com/wiki/MyS…#cache_get_value_name_int


    C
    //Sprich so machen:
    new EintragID, Money;
    cache_get_value_name_int(i,"SQLid", EintragID); //39455
    cache_get_value_name_int(i,"Money", Money); //39456

    Und mysql_num_rows gibts nicht mehr, das heißt jetzt: cache_num_rows() :)

    ast2ufdyxkb1.png


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


  • mysql_log(ALL);

  • Ist es möglich mit eine Dialog-Liste mit unbestimmten Elementen (listitem) zu erzeugen?


    Bsp.:


    Eine Datenbank mit einigen Datensätzen. Diese sollen in der Dialog-Liste angezeigt werden und auch auswählbar sein, sodass auch was passiert wenn diese ausgewählt werden.


    Nun ist diese Liste nicht konstant, sondern ändert sich ständig (Löschen von Datensätzen bzw. Erstellen). Das Problem ist nun switch(listitem) (was ich benutze).
    Wie drückt man das aus in OnDialoResponse, da ich keine feste Anzahl an Fällen (case) habe?


    Mein Ansatz wären die Anzahl der Zeilen (rows), weitre komm ich gerade nicht.


    TL;DR: Hauptproblem: Auswählen von einer unbestimmten Anzahl an Listen-Elementen .

  • Ist es möglich für einen bestimmten Spieler ein Object zu bewegen habe da nichts gefunden,
    z.B das man es so macht wenn die "Gefängnis Zeit" abgelaufen ist sich das Tor für diesen Spieler öffnet.


    Halt so was wie
    MoveObjectForPlayer

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

  • Ist es möglich für einen bestimmten Spieler ein Object zu bewegen habe da nichts gefunden,
    z.B das man es so macht wenn die "Gefängnis Zeit" abgelaufen ist sich das Tor für diesen Spieler öffnet.


    Halt so was wie
    MoveObjectForPlayer

    Wie kann man da nichts gefunden haben?


    [wiki]MovePlayerObject[/wiki]


    Dafür musst du allerdings für jeden spieler dieses Tor einzeln erstellen erstellen mit [wiki]CreatePlayerObject[/wiki].

  • Hey, und zwar habe ich nun bei PAWNO, auf new gedrückt und erstelle theoretisch ein neues Script.
    Aber jetzt kommen schon die ersten Probleme.


    if(strcmp(cmdtext, "/skin", true) == 0)
    {
    SetPlayerSkin(playerid, 202);
    SendClientMessage(playerid,0x9ACD32AA,"Dein Skin wurde dir gesetzt.");
    return 1;
    }





    Ich kriege einfach die Antwort: "SERVER: Unkown Command"

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • returnst du das Callback OnPlayerCommandText mit 0 oder 1? Wenn 1, dann ändere es zu return 0;. [wiki]OnPlayerCommandText[/wiki] hier kannst du auch weiterlesen.

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/skin", true) == 0)
    {
    SetPlayerSkin(playerid, 202);
    SendClientMessage(playerid,0x9ACD32AA,"Dein Skin wurde dir gesetzt.");
    return 1;
    }
    return 0;
    }

  • @Cireyses


    Es ist ein IP-Bann System (Ist ein mix aus MySQL (Speicherung der gesperrten IPs) und /rcon banip bzw. unbanip )


    Beim Problem geht es hier nur um das Entbannen:


    Wenn die IP in der Liste ausgewählt wird soll diese auch entsperrt werden


    Es werden dem Admin (Bsp.: Head-Admin) nur die IPs angezeigt die er auch selber gesperrt hat.
    Nur der ranghöchste Admin (Bsp.: Projektleiter) kann alle gesperrten IPs sehen.


    Deshalb ist die Länge der Liste bei jedem Spieler anders weshalb listitem immer verschieden groß ist.

    • Offizieller Beitrag

    Ich gehe davon aus, dass du ein Array mit den IP's und der ID (o.ä.) des Admins hast?


    Du baust dir dein Dialog über eine Schleife diesen Array auf (hast du denke ich auch mal schon erledigt).


    Mit der gleichen Schleife, nur eben ohne der Zusammensetzung des Dialogs, kannst du dann mit einem Counter abfragen, welches IP angeklickt wurde.


    Hier ein Beispiel:


    Ist schnell abgetippt. Sollte so aussehen.

  • Beitrag von PigglWiggl ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Spam ().
  • Habe ein Problem:


    wie baue ich das mit else if rein? Folgender ERROR kommt: error 001: expected token: "*then", but found ";"



    if (strcmp("/loadbenzin", cmdtext, true, 10) == 0)
    {
    if (IsPlayerInRangeOfPoint(playerid, 7.0, 260.0804,1371.4133,10.4647))
    {
    ShowPlayerDialog(playerid, DIALOG_LOADBENZIN, DIALOG_STYLE_LIST, "Loadbenzin", "1000 Liter\n5000 Liter\n8000 Liter", "Einladen", "Abbrechen");
    return 1;
    }
    else if
    SendClientMessage(playerid,0xAA3333AA,"Du bist nicht in der Nähe!");
    }
    return 0;
    }

    Einmal editiert, zuletzt von Nikiark ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen