Beiträge von Jeffry

    Eine weitere frage habe ich noch mit der Nachricht, ich kann ja im NPC Script nicht a_samp nutzen, wie soll ich dann ispalyerinrangeofpoint nutzen um eine nachricht zusenden das man Platz machen soll ?


    Gleiche Methode. Auch über eine Datei, nur eben andersrum, du prüfst dann in deinem GameMode ob die Datei existiert und kannst ja dann in der Datei speichern, was und wem du es senden willst.


    Oder natürlich dann so wie es m4a_X sagte, das wäre am sinnvollsten.

    Ich prüfe doch, ob sie existiert oder nicht ;) Nur wenn sie existiert, lese ich das aus :rolleyes:


    Die Datei wird aber nirgends wieder entfernt, das heißt wenn du sie einmal erstellt hast, wird er sie jedes mal öffnen.
    Und wenn du nur nach 0 oder 1 fragst, reicht es wenn du fragst ob existiert (1) oder nicht (0), da brauchst du die Datei ohnehin nicht öffnen. :D

    Eine etwas bessere Möglichkeit wäre folgende:


    • Dort wo du /ausrauben machst, erstellst du in den scriptfiles eine Datei, die kann leer sein, völlig egal, nur der Name ist wichtig, von mir aus "Ausrauben.txt".
    • Im npc-Code erstellst du einen Timer, der alle 100ms prüft, ob diese Datei existiert (fexist). Wenn ja, führst du den gleichen Code aus wie der, wenn du vor dem NPC stehst, und löschst die Datei.


    Kaliber: Es ist unnötig alle 499ms die Datei zu öffnen und wieder zu schließen, fexist reicht völlig für eine Abfrage wie du es dort gemacht hast. :thumbup:


    So könntest du das indirekt steuern. In der Datei könnte man sogar noch Informationen mitgeben, falls gewünscht.

    Also, dann klappt das ja. Den Code hast du aber gut versteckt, setze ihn nächstes mal in die pwn-Tags.


    Ändere ihn zu:
    while(mysql_fetch_row_format(row_data))
    {
    mysql_fetch_field_row(tmp_var[0], "Name");
    mysql_fetch_field_row(tmp_var[1], "IP");
    format(string, sizeof(string), "%sName: %s | IP: %s\n",string, tmp_var[0], tmp_var[1]);
    }

    Keine Ahnung ob ich das schon mal gefragt habe, war in letzter Zeit etwas beschaeftigt, aber wie kann ich die Positionen links und rechts neben dem Spieler herausfinden? Bin nicht gerade ein Mathecrack ( Note 5/6 )
    Danke im Voraus.


    new Float:a, Float:x, Float:y, Float:z;
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    else GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    x += (5.0 * -floatcos(a, degrees)); //5.0 = Abstand zur Seite (wenn du die andere Seite willst, mach das "-" weg, bei beiden.
    y += (5.0 * -floatsin(a, degrees));
    //x, y = Position rechts bzw. links neben dem Spieler. z bleibt gleich, außer du willst es genau wissen, dann musst du das MapAndreas Plugin nutzen.

    case 0:
    {
    mysql_query("SELECT * FROM `Whitelist`");
    mysql_store_result();
    rows=mysql_num_rows();
    if(!rows)
    {
    ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_MSGBOX, "{0055FF}Weise Liste", "{FFFFFF}Aktuell sind keine Spieler auf der Weißen Liste!", "Schließen", "");
    }
    else if(rows>0)
    {
    new tmp_var[2][24], string[sizeof(rows)*60], row_data[256];
    while(mysql_fetch_row_format(row_data))
    {
    print(row_data);
    //Würde jetzt die gesamte Zeile printen, die musst du dann noch splitten, dann hast du die einzelnen Werte.
    //Nutze dazu: mysql_fetch_field_row
    }
    ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_LIST, "{0055FF}Weise Liste", string, "Schließen", "");
    }
    mysql_free_result();
    }


    Kannst es ja zu Testzwecken erst mal so laufen lassen, ob es alle Zeilen printet.

    Ein Viereck kannst du ganz normal über eine TextDraw-Box machen.
    Als Text nimmst du einfach nur "~n~", dann änderst du die TextSize und die LetterSize. Am Besten du nimmst dir dazu einen TextDraw-Editor.


    Text: ~n~
    LetterSize Y: Größer machen => Höherer Kasten
    TextSize X: Größer machen => Breiterer Kasten

    Bitte den Code posten der zu dieser Nachricht gehört:

    Code
    betätigt die Zündung. Der Motor springt an!


    Ohne Code können wir dir nicht helfen.

    Also den Code richtig zu posten solltest du schon hinbekommen, weil so wie er da steht gibt er mal absolut keinen Sinn, da es dir die ganzen [ i ] Indexe abgeschnitten hat.
    Wie dem auch sei, der Fehler ist das:


    i += 1;
    ^
    weg machen.


    Warum?
    for(new i=0;i<MAX_STREET_FACTIONS;i++) // Das i++ zählt schon hoch.

    Jetzt poste bitte dein OnPlayerStateChange callback und sage uns welche der Arrays davon mit 500 und 302 (nicht 301,sorry) deklariert worden sind.


    Alternativ kannst du den Code auch selbst debuggen um so herauszufinden bis wohin der Code kommt.