Mehrere Menu Pickups

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
  • also ich hab zwei verschiedene Pickups die je ein anderes Menu zeigen sollen.


    Allerdings gehts nur beim ersten...


    was ist hierran falsch?


    public OnGameModeInit()
    {
    Gangmenu = CreateMenu("Gangmenu",2,200.0,100.0,150.0,150.0);
    Gangcreationmenu = AddStaticPickup(1245,2,1469.3644,-1771.0142,18.7958);






    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid == Fahrschulemenu)
    {
    if(IsInAutoPruefung[playerid] == 0 && IsInMotorradPruefung[playerid] == 0 && IsInFlugPruefung[playerid] == 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Fahrschulmenu,playerid);
    }
    else
    {
    SendClientMessage(playerid, DUNKELROT,"Du befindest dich bereits in einer Prüfung!");
    }
    }
    else if (pickupid == Gangcreationmenu)
    {
    if(SpielerInfo[playerid][Leader] >= 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Gangmenu,playerid);
    }
    else
    {
    SendClientMessage(playerid, DUNKELROT,"Du bist nicht Leader einer Fraktion!");
    }
    }
    return 1;
    }

  • Das eine ist unter dem anderen.


    Ich zeige dir das mal an folgendem Beispiel, da ichs nit richtig erklären kann:

    new antwort = 1+1;
    If(antwort == 1)
    {
    //unmöglich
    if(antwort == 2)
    {
    //um d as hier auszulösen,müsste 1 + 1 erstmal 1 sein,dann 2 sein,damit die Funktion ausgeführt wird, d.h. Klammer zu oder verschieben
    }
    }

  • Setz die Maus auf
    if (pickupid == Fahrschulemenu)

    vor das if.


    Dann rutsch nach unten.
    Damit das Script funktioniert, müsstest du nun auf
    else if (pickupid == Gangcreationmenu)

    treffen.


    Das tust du aber nicht....


    Lösung: Lösche das Tabzeichen vor
    else if (pickupid == Gangcreationmenu)

  • das sieht im gamemode nicht so aus wie hier. hier im Forum kann ich ja keine Tabs machen.



    also so:
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid == Fahrschulemenu)
    {
    if(IsInAutoPruefung[playerid] == 0 && IsInMotorradPruefung[playerid] == 0 && IsInFlugPruefung[playerid] == 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Fahrschulmenu,playerid);
    }
    else
    {
    SendClientMessage(playerid, DUNKELROT,"Du befindest dich bereits in einer Prüfung!");
    }
    }
    else if (pickupid == Gangcreationmenu)
    {
    if(SpielerInfo[playerid][Leader] >= 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Gangmenu,playerid);
    }
    else
    {
    SendClientMessage(playerid, DUNKELROT,"Du bist nicht Leader einer Fraktion!");
    }
    }
    return 1;
    }

  • es funzt aber nicht... wenn ich das Pickup mit dem Gangcreation gehe dann passiert NICHTS! ich hab kA woran das liegen kann

  • so?



    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid == Fahrschulemenu)
    {
    if(IsInAutoPruefung[playerid] == 0 && IsInMotorradPruefung[playerid] == 0 && IsInFlugPruefung[playerid] == 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Fahrschulmenu,playerid);
    }
    else SendClientMessage(playerid, DUNKELROT,"Du befindest dich bereits in einer Prüfung!");
    }
    else if (pickupid == Gangcreationmenu)
    {
    if(SpielerInfo[playerid][Leader] >= 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Gangmenu,playerid);
    }
    else SendClientMessage(playerid, DUNKELROT,"Du bist nicht Leader einer Fraktion!");
    }
    return 1;
    }

  • Eher so:

    else if (pickupid == Gangcreationmenu)
    {
    if(SpielerInfo[playerid][Leader] >= 0)
    {
    TogglePlayerControllable(playerid,0);
    ShowMenuForPlayer(Gangmenu,playerid);
    }
    else SendClientMessage(playerid, DUNKELROT,"Du bist nicht Leader einer Fraktion!");
    }
    else
    {
    SendClientMessage(playerid,DUNKELROT,"Es wurde kein Pickup identifiziert");
    }


    /edit:
    SPiele mal mit der FUnktion "PlayerToPoint" rum und schaue dort einfach nach,ob die Person in einem gewissen Radius zu dem Pickup steht.
    Koords musse dann aber per hand eintragen !

  • also würde es lieber gerne über pickups machen und nicht mit playertopoint, außerdem hab ich noch vor einige weitere Pickups mit Menüs zu erstellen,


    Weiß evtl jemand eine Lösung dafür?