Teleport Filterscript im Dialog

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
  • Hi,


    ich versuche ein Filterscript zu basteln, dass Admins erlaubt, mit /atele ein Dialog aufzurufen (Dialogstyle ist LIST).
    Jedoch habe ich 2 Probleme.


    1. Ich weiß nicht, wie ich es tun kann, dass es nur ein Admin ausführen kann.
    2. Ich bekomme beim compilen keine Fehler, allerdings ist kein Effekt ingame, wenn ich Autohaus LS ingame anklicke.


    Ja, es kommen noch mehrere cases, weil ich hab ja auch mehrere Portplätze zur Auswahl.. allerdings hab ich erstmal nur das 1te genommen, um zu testen, ob es funktioniert.. tut es aber nicht. :/



    Hier mal mein PAWN-Code:



    #include <a_samp>
    #pragma tabsize 0


    #define COLOR_GREY 0xAFAFAFAA
    #define AttachObjectToVehicle


    public OnFilterScriptInit()
    {
    print("\n-----------------------------");
    print(" Filterscript loaded..");
    print("-------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/atele", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, ".=| aTele by Flo |=.", "Autohaus LS\nAutohaus SF\nZivispawn\nTankstelle\nBSN\nBSN SF\nBank\nLSPD\nSFPD\nRathaus\n24/7\nFahrschule\nBahnhof LS\nBahnhof SF\nKrankenhaus\nAlhambra\nTankstelle", "Porten", "Abbrechen");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(response)
    {
    switch(dialogid)
    {
    case 1:
    {
    switch(listitem)
    {
    case 0:
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new fahrzeug;
    fahrzeug = GetPlayerVehicleID(playerid);
    SetVehiclePos(fahrzeug,738.1456,-1334.1962,13.2458);
    }
    else
    {
    SetPlayerPos(playerid,738.1456,-1334.1962,13.2458);
    SendClientMessage(playerid, COLOR_GREY, "Du hast dich zum Autohaus LS teleportiert.");
    }
    }
    }
    }
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen,


    BL4cKKS




  • Zur ersten Frage,



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/atele", cmdtext, true, 10) == 0)
    {
    if (IsPlayerAdmin(playerid))
    {
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, ".=| aTele by Flo |=.", "Autohaus LS\nAutohaus SF\nZivispawn\nTankstelle\nBSN\nBSN SF\nBank\nLSPD\nSFPD\nRathaus\n24/7\nFahrschule\nBahnhof LS\nBahnhof SF\nKrankenhaus\nAlhambra\nTankstelle", "Porten", "Abbrechen");
    return 1;
    }
    }
    return 0;
    }


    Jetzt können nur Rcon Admin's den Befehl ausführen...
    2. Frage, versteh ich irgendwie nicht.

  • Danke erstmal für deine Hilfe.


    Die 2 Frage ist, dass ich wenn ich /atele ingame eingebe, das 1te. case, also Autohaus LS anklicke, werde ich nicht teleportiert.



    Zu der 1ten Frage.. wie kann ich es machen, dass dann, wenn man /atele eingibt, jedoch kein Admin ist, dort steht "du bist kein admin:"?



    Sorry, bin noch ziemlich neu in PAWN. Versuche eigentlich auch alle Sachen selber zu regeln, um besser zu lernen.
    Aber auf dauer funktioniert das nicht. :P


    Mit freundlichen Grüßen,


    BL4cKKS




  • Statt der Zeile:


    if (IsPlayerAdmin(playerid))


    diese:


    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,COLOR_WHITE,"Du bist kein Admin!");


    Bei der anderen Frage muss dir leider ein anderer helfen, sry.

  • ok, danke.


    nur jetzt hab ich ein anderes problem..^^


    sobald ich das fs loade, kann ich ingame ein paar befehle nicht mehr ausführen. oder ich kann sie ausführen, aber es kommt SERVER: Unknown Command.


    Grüße


    Mit freundlichen Grüßen,


    BL4cKKS




  • kann das auch von return 0;, was bei OnPlayerCommandText steht kommen?


    meines wissens nach, gehört das doch ans Ende des scripts.
    jedoch, wenn ich es compile und return 0; gelöscht habe, kommt nen warning, dass man returnen sollte.


    grüße


    Mit freundlichen Grüßen,


    BL4cKKS