Beiträge von #save

    Guten Tag,


    mal wieder habe ich ein kleines Problem und zwar ich weis nicht wie ich die Leute die in meiner Umgebung sind (sagen wir im Radius von 5.0) zu einer bestimmten Stelle porten kann. Ich brauche das ganze für ein Knastsystem. Man fährt in die Garage vom LSPD zu dem Pickup "2 Players icon" und dann gibt man /einknasten ein und die Spieler die mindestens einen Wanted Stern haben werden dann in das Gefängnis geportet. Wie ich das realisiere weis ich nicht und brauche eure Hilfe. Das der Befehl /einknasten nur funktionieren soll wenn man mindestens sich im Radius von 5.0 befindet kann ich ja bereits mit IsPlayerInRangeOfPoint realisieren.


    PS: Ich finde an dem Forum so gut das immer einem geholfen wird ;)


    Danke schonmal :)

    OK, ich habe es herausgefunden. Ich habe jetzt die besagte stelle noch einmal neu programmiert und ich musste feststellen das bis zu mysql_query(query1); kein Fehler kommt. Die nächste Zeile mit dem ShowPlayerDialog war einfach zu lang. ICh empfehle euch einen kleinen Umbruch einzubauen bei dem Dialog das ihr in der nächsten Zeile den Text stehen habt. Ihr werdet sonst das selbe Problem eventuell bekommen.


    Vielen Dank an dich D4rkZer0 das du versucht hast mir zu helfen :)

    Guten Tag,


    nachdem ich mich ein bisschen über den Error informiert habe, hatte ich festgestellt das es an einem eingebundenem Plugin liegen kann oder die ausgewählte Zeile zu lang ist oder ich strcat verwenden soll. Da ich aber kein Plugin eingebunden habe seitdem ich mein Projekt erstellt habe, hatte ich geguckt ob meine Zeile nicht zu lang ist (hat bei einem in dem Forum hier geholfen). Für strcat sehe ich derzeit keinen Sinn. Ich stelle euch mal den Code hier rein. Ich vermute das irgendwas gefailt hat beim kompilieren und das mein Skript irgendwie zerschossen hat.


    Pastebin:
    http://pastebin.com/XhDaBtpS


    Die Zeile die den Fehler herbeiruft:
    mysql_query(query1);


    Wie ihr seht habe ich diese Zeile auskommentiert. Davor wurde der Fehler auch schon angezeigt. Normalerweise sollte das Skript nichtmal das mit kompilieren wenn ich etwas auskommentiert habe. Ich habe mit meinem Mauszeiger einmal hinter mysql_query(query1); geklickt und davor aber die Zeile ist nicht länger als hier angezeigt. Sie ist nichtmal richtig weit nach rechts eingerückt.


    Bin gerade ziemlich ratlos.


    PS: Auf pastebin.com sieht das ganze ein bisschen unübersichtlich aus. Ich habe euch noch einen Screenshot angehängt ;)


    Danke schonmal im Voraus :)

    Wie meinst du mit keiner richtigen Farbe ? Der Farbcode 0xFF0019FF steht bereits in der Tabelle. Wird eigentlich auch mit diesem Code ausgelesen. Aber das Problem kommt ja nicht In-Game. Das Problem kommt ja beim kompilieren. Mir geht es vorerst um das argument type mismatch.


    Das mit dem "PS" unten hat sich auf das bezogen als ich etwas geändert habe. Ich werde es rausnehmen damit ihr nicht durcheinander kommt ;)


    Edit: Bitte helft mir noch einmal. Das Problem hat sich noch nicht gelöst.

    Guten Tag,


    das Problem wäre ja nicht wie ich die Eingabe bei einem Dialog überprüfe, sondern wie ich überprüfe ob der Benutzer überhaupt etwas in einem DIALOG_STYLE_PASSWORD Dialog eingibt. Ich habe das folgendermaßen versucht:



    if (dialogid == 1) // Ist das der richtige Dialog ?
    {
    if (inputtext != "")
    {
    // benutzer hat was eingegeben
    }
    else
    {
    // benutzer hat nichts eingegeben
    }
    }


    Bringt folgende Meldung:

    Code
    error 033: array must be indexed (variable "inputtext")


    Da ich das gleiche Problem schon einmal hatte (mir wurde ja auch geholfen) wollte ich das genau so machen wie der, der es mir damals erklärt hatte. Ich habe dann das Skript wie folgt umgeändert:
    if(!strcmp("", inputtext, false))
    {
    // Wenn der Spieler nichts eingegeben hat soll dieser Dialog nochmal auftauchen.
    ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_PASSWORD, "Neuen Account erstellen", "Dieser Benutzername ist noch nicht registriert! Um einen Account zu erstellen, musst du unten ein Passwort eingeben.", "Registrieren", "Abbrechen");
    }


    Wenn ich in den Server gehe und dann einfach das Formular leer absende kommt auch der Dialog nochmal. Wenn ich was eingebe kommt aber der Dialog noch einmal.


    Was mache ich genau falsch ?

    Guten Tag,


    ich bin gerade dabei weiter an meinem GameMode zu skripten und ich komme gerade nicht so richtig weiter. Ich möchte ganz gerne für die Leute die in der FBI oder LSPD Fraktion sind unter dem Spielernamen den Wanted Level anzeigen lassen. Doch wie realisiere ich das ? Es muss ja eine Funktion geben mit dem ich etwas unter den Spielernamen eines Spielers schreiben kann.


    Ihr kennt das doch sicher wenn ihr auf einen Server geht und ihr einen Spieler anschaut wird der Name ja wie folgt aufgebaut:

    Code
    Spielername (ID)


    Und dann bei den Polizisten

    Code
    Spielername (ID)
    Wanted-Level: 2


    Mich würde das nicht nur bei den Spielern interessieren wie man das macht sondern auch bei Autos. Ich benötige nur die Funktion. Die Überprüfung ob der User in der LSPD oder in der FBI Fraktion ist schaffe ich denke/hoffe ich mal selber.


    Danke :)

    Es gibt einen Film der heißt Mr. Brooks. Als ich damals noch meinen alten Nicknamen hatte, dachte ich mir ich brauche einen neuen. Dann kam mir der Film Mr. Brooks wieder in Erinnerung und da dachte ich mir das Mr. Brox sich nicht schlecht anhört. Zudem Zeitpunkt dachte ich das man Mr. Brooks (den Film) eigentlich Mr. Brox schreibt und so wurde aus Mr. Brooks halt Mr. Brox ;)

    Wie FACE schon gesagt hat, bitte versuche die Tags auszuwählen das wir besser klar kommen. Könntest du bitte konkret beschreiben wo genau das Problem liegt ? Also was EIGENTLICH funktionieren sollte und was nicht funktioniert. Bitte zeige uns auch wo genau die Zeilen sind in denen der Error auftaucht. Ich sehe zwar die Errors aber nicht welche Zeile genau gemeint ist.

    Warnings sind nicht schlimm. Sie geben dir bloß eine Information das z.B (was hier nicht zutrifft) ein Objekt nie verwendet wurde. Trotzdem lässt sich der Server wie gewohnt starten. Bei einem Error ist gemeint das der Compiler das Script nicht parsen kann und der Server nicht gestartet werden kann da wie gesagt das Script Errors enthält.


    Versuche aber trotzdem so gut es geht einfach die ganzen Warnings zu entfernen. Mache ich derzeit bei meinem GameMode auch. Der Übersicht halber & das ich weis das alles in Ordnung ist ;)


    Edit: Entschuldigung das ich dir nicht wirklich helfen konnte da ich noch nicht wirklich gut in Sachen PAWN bin. Seh mein Post einfach als Information an ;)

    Könntest du mir kurz erklären wie du das ganze meinst, dann könnte ich dir eventuell helfen. Verstehe nicht ganz was der Zweck von dem Kontrollpanel ist.

    Guten Tag,


    ich habe mal wieder ein Problem. Nach einer Suche im Web habe ich festgestellt das viele das Problem haben wenn sie ein ENUM verwenden. Da ich kein ENUM verwende weis ich nicht genau was ich ändern sollte da die meisten das nicht in Verbindung mit MySQL einsetzen.


    Danke nochmal das ihr mir gestern so gut geholfen habt, ich hoffe ihr könnt mir auch bei diesem Problem weiterhelfen :)


    Also ich bekomme beim kompilieren folgende Meldung:

    Code
    error 035: argument type mismatch (argument 2)


    Die Fehlerhafte Zeile beinhaltet folgendes:
    SetPlayerColor(playerid, userGroupColor);


    Der komplette Code:

    public OnPlayerConnect(playerid)
    {
    // Objekte
    new playerName[MAX_PLAYER_NAME+1], string[24+MAX_PLAYER_NAME+1];
    new query1[180];
    new query2[180];
    new query3[180];
    new playerIP[16];
    new userRank[20];
    new userGroupID[2];
    new userGroupColor[20];


    // Spielername
    GetPlayerName(playerid, playerName, sizeof(playerName));


    // Spieler IP-Adresse
    GetPlayerIp(playerid, playerIP, sizeof(playerIP));


    // Log Eintrag schreiben
    format(query1, sizeof(query1), "INSERT INTO logs (logType, logValue, timestamp, ipAddress) VALUES ('playerConnect', 'Spieler %s hat den Server betreten.', '', '%s');", playerName, playerIP);

    // Welche Gruppe hat dieser Spieler ?
    format(query2, sizeof(query2), "SELECT groupID FROM users WHERE username = '%s'", playerName);
    mysql_query(query2);
    mysql_store_result();

    mysql_fetch_field("groupID", userGroupID);


    mysql_free_result();

    // Lade Infos von der Gruppe
    format(query3, sizeof(query3), "SELECT color FROM groups WHERE groupID = %s", userGroupID);
    mysql_query(query3);
    mysql_store_result();

    mysql_fetch_field("color", userGroupColor);

    mysql_free_result();

    // Setze Spielernamen Farbe
    SetPlayerColor(playerid, userGroupColor);

    printf("Farbe: %s", userGroupColor);

    // Willkommen auf dem Server
    SendClientMessage(playerid, yellow, "-------------------------------------------------------------------------------------------");
    SendClientMessage(playerid, white, "Willkommen auf dem ]MSAH[ Clan Reallife Server!");
    SendClientMessage(playerid, yellow, "-------------------------------------------------------------------------------------------");

    // return
    return 1;
    }


    Kurze Erklärung:
    Ich möchte aus einer Tabelle die Gruppen-ID des Spielers auslesen und dann bei der Gruppe nachgucken welchen Farbcode ich festgelegt habe. Angenommen ich komme auf den Server, so würde der Farbcode 0xFF0019FF lauten.


    Ich habe vorhin noch ein bisschen rumprobiert und zwar habe ich dann z.B. das hier
    SetPlayerColor(playerid, userGroupColor);
    in
    SetPlayerColor(playerid, mysql_fetch_field("groupID"));
    und habe dann halt mysql_free_result(); weiter unten platziert das ich mysql_fetch_field("groupID"); noch verwenden kann.


    Komme gerade auf keine Lösung.


    Danke schon einmal im Voraus :)

    Danke für den Hinweis mit strval, wusste ich nämlich garnicht. Ich habe das ganze jetzt mal so umgeformt:

    if (strcmp("/rank", cmdtext, true, 10) == 0)
    {
    // Objekte
    new query1[180];
    new rank[180];
    new userRank;

    // Bekomme Informationen von der Datenbank
    format(query1, sizeof(query1), "SELECT userRank FROM users WHERE username = '%s'", playerName);
    mysql_query(query1);
    mysql_store_result();
    mysql_fetch_field("userRank", rank);
    mysql_free_result();


    printf("%s", strval(rank));


    /*
    if (strval(rank) == "user")
    {
    return 1;
    }
    */

    // kill
    return 1;
    }


    Ich habe das kompilieren und habe dann den Server gestartet. In-Game habe ich dann /rank eingegeben und in der Konsole geschaut. Da kommt lediglich eine leere Zeile raus. Durch was müsste ich dann strval ersetzten das ein String raus kommt und kein Integer ?

    Guten Tag,


    ich benöige eure Hilfe. Ich bin derzeit ein bisschen drüber Pawn zu lernen. Da ich noch andere Skriptsprachen kann, viel es mir nicht allzuschwer in diese Skriptsprache einzusteigen. Doch jetzt stehe ich wirklich vor einem Problem an dem ich nicht weiterkomme. Ich habe mich in Google informiert und habe gesehen das dass Array bereits verwendet wird und ich es nicht verwenden kann. Ich hatte versucht das irgendwie anders zu lösen aber ich komme echt nicht dahinter.


    Also das ist mein Fehlercode:

    Code
    error 033: array must be indexed (variable "-unknown-")


    Zeile in dem der Fehler auftaucht:

    if (strval(rank) == "user")


    Kompletter Code (der Code steht in OnPlayerCommandText):

    if (strcmp("/rank", cmdtext, true, 10) == 0)
    {
    // Objekte
    new query1[180];
    new rank[180];
    new userRank;

    // Bekomme Informationen von der Datenbank
    format(query1, sizeof(query1), "SELECT userRank FROM users WHERE username = '%s'", playerName);
    mysql_query(query1);
    mysql_store_result();
    mysql_fetch_field("userRank", rank);
    mysql_free_result();


    if (strval(rank) == "user")
    {
    return 1;
    }

    // kill
    return 1;
    }


    playerName ist schon definiert, der Code dazu steht etwas weiter oben in der Funktion.


    Kurz zur Erklärung:
    Wenn man im Server /rank eingibt, soll einfach eine Nachricht erscheinen mit dem jeweiligen Rang.

    • Bei user: Du bist ein normaler User
    • Bei admin: Du bist ein Administrator

    Und das geht dann halt immer so weiter.
    Nachdem ich mich schon ein bisschen beschäftigt habe und mir den Fehler von dem Fehlerklärbär erklären habe lassen, kam ich trotzdem nicht dahinter. Wie gesagt, ich habe herausgefunden das das Array bereits verwendet wird und ich es so nicht verwenden kann. Doch wie ich es weiter verwenden kann weis ich nicht. Ich habe versucht den Rang von der MySQL Tabelle in eine Variable zu speichern aber so funktioniert das dann wohl auch nicht.
    Danke schonmal im Voraus :)