Wer findet den Fehler?

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
  • Hallo Comunity,
    Ich habe folgendes Problem ich wollte, dass wenn der Spieler aus dem Fahrzeug aussteigt ein Pickup hinter dem Fahrzeug erstellt wird.
    Und wenn der Spieler dieses betritt, sich ein Menu öffnet bis dahin kein Problem. Pickup wird erstellt usw. ABER: Das Menü öffnet sich komischerweise nicht.
    Hier das Script:
    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new Vehicleid = GetPlayerVehicleID(playerid);
    new Float:x4, Float:y4, Float:z4;
    if GetVehicleModel(vehicleid)==407*then
    GetPlayerPos(playerid, x4, y4, z4);
    gerate=CreatePickup(1318,0,x4 ,y4 -4.5,z4);

    }
    und
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if (pickupid==gerate)
    {
    ShowMenuForPlayer(geratefach,playerid);
    TogglePlayerControllable(playerid,1);
    }

    }
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    new Menu:CurrentMenu = GetPlayerMenu(playerid); // checkt ob der Player das Menü Skaten offen hat
    if(CurrentMenu == geratefach)
    {
    switch(row)
    {
    case 0: // ist der Unterpunkt 1
    {
    TogglePlayerControllable(playerid, true); // spieler wird wieder unfreezed
    GivePlayerWeapon(playerid,9,0);


    }
    case 1:
    {



    TogglePlayerControllable(playerid, true);
    GivePlayerWeapon(playerid,42,500);


    }
    case 2:
    {




    TogglePlayerControllable(playerid, true);
    AttachObjectToPlayer(8873,playerid,1.5, 0.5, 0, 0, 1.5, 2 );


    }
    case 3:
    {



    TogglePlayerControllable(playerid, true);


    }
    }

    }
    }

  • Pickup-Type 0 wundert mich. Bin mir nicht sicher, ob das der Auslöser ist, aber versuch mal folgendes:


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    new Vehicleid = GetPlayerVehicleID(playerid);
    new Float:x4, Float:y4, Float:z4;
    if GetVehicleModel(vehicleid)==407*then
    GetPlayerPos(playerid, x4, y4, z4);
    gerate=CreatePickup(1318,1,x4 ,y4 -4.5,z4);


    }

  • Meinst du das ?
    public OnGameModeInit()
    {


    geratefach=CreateMenu("geratefach",2,200.0, 100.0, 150.0, 150.0);
    AddMenuItem(geratefach,0, "Motorsaege");
    AddMenuItem(geratefach,0,"Feuerloescher");
    AddMenuItem(geratefach,0,"Lichtmast");
    AddMenuItem(geratefach,0,"Verlassen");
    return 1;
    }

  • aus new gerate;
    new gerate[MAX_PLAYERS];


    und bei OnPlayerExitVehicle
    gerate[playerid]=CreatePickup(1318,0,x4 ,y4 -4.5,z4);


    bei OnPlayerEnterVehicle
    DestroyPickup(gerate[playerid]); // damit die Variable wieder frei ist für das nächste pickup...


    oder sowas in der Art :)

  • Okay Jungs, passt auf ich habe noch mal nachgeforscht, und bin auf etwas interessantes gestoßen!
    GERTEF~1.PWN198 : warning 217: loose indentation


    Und in der Zeile 198 steht folgendes:
    if(CurrentMenu == geratefach)


    könnte euch das helfen?

  • Okay Jungs, passt auf ich habe noch mal nachgeforscht, und bin auf etwas interessantes gestoßen!
    GERTEF~1.PWN198 : warning 217: loose indentation


    Und in der Zeile 198 steht folgendes:
    if(CurrentMenu == geratefach)


    könnte euch das helfen?


    Nein, das heißt einfach nur, dass der Code an dieser Stelle falsch eingerückt ist und hat nichts mit dem Problem zu tun. Sonst noch Warnings?

  • (109) : warning 204: symbol is assigned a value that is never used: "Vehicleid"
    (117) : warning 204: symbol is assigned a value that is never used: "Vehicleid"


    new Vehicleid = GetPlayerVehicleID(playerid);



    new Vehicleid = GetPlayerVehicleID(playerid);


    mehr nicht