[S. HILFE!]Pickup für eine Gewisse Zeit deaktivieren?

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 Leute,


    ich habe vor einigen Tagen schon eine ähnliche Frage gestellt und leider keine Antworten bekommen,
    Gestern Abend kurz vorm schlafen gehen kam mir dann allerdings von selbst ein Teil der Lösung.


    Das Ziel:
    Das Ziel ist es für meine DM-Arena Pickups zu erstellen, die beim durchrennen zufalls Waffen
    geben und dann für 30 Sekunden für alle Spieler Deaktiviert sind und nach den 30 Sekunden wieder
    beim durchlaufen zufalls Waffen geben.


    So weit bin ich:
    Bisher habe ich es geschafft das die Pickups beim durchrennen zufalls Waffen geben, allerdings kann man danach sofort wieder durchrennen und bekommt nochmals waffen.



    //Für die Pickups.
    new Waffen_1;
    new Waffen_2;
    new Waffen_3;
    new Waffen_4;


    //Die Waffen die random gegeben werden sollen.
    new EKCPickups[5][2] =
    {
    {29,90},
    {24,70},
    {33,15},
    {26,20},
    {17,3}
    };


    //Hier werden die Pickups erstellt.
    public OnGameModeInit()
    {
    Waffen_1 = CreatePickup(1247,2,1106.6630,-1419.4806,15.9016,1);
    Waffen_2 = CreatePickup(1247,2,1123.2914,-1500.5405,26.9832,1);
    Waffen_3 = CreatePickup(1247,2,1162.5978,-1483.7084,15.6393,1);
    Waffen_4 = CreatePickup(1247,2,1095.3788,-1460.1050,22.7376,1);
    return 1;
    }


    //Was passieren soll wenn man durch einen der Pickups läuft.
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==Waffen_1)
    {
    new rWaffen;
    rWaffen = random(sizeof(EKCPickups));
    GivePlayerWeapon(playerid,EKCPickups[rWaffen][0],EKCPickups[rWaffen][1C]);
    }
    if(pickupid==Waffen_2)
    {
    new rWaffen;
    rWaffen = random(sizeof(EKCPickups));
    GivePlayerWeapon(playerid,EKCPickups[rWaffen][0],EKCPickups[rWaffen][1&]);
    }
    if(pickupid==Waffen_3)
    {
    new rWaffen;
    rWaffen = random(sizeof(EKCPickups));
    GivePlayerWeapon(playerid,EKCPickups[rWaffen][0],EKCPickups[rWaffen][1P]);
    }
    if(pickupid==Waffen_4)
    {
    new rWaffen;
    rWaffen = random(sizeof(EKCPickups));
    GivePlayerWeapon(playerid,EKCPickups[rWaffen][0],EKCPickups[rWaffen][1woanders, MfG AlphaGen!]);
    }
    return 1;
    }


    Ich weiß halt nicht wie ich die Pickups für 30 Sekunden deaktivieren soll.
    Sie sollen halt noch sichtbar sein aber beim durchlaufen soll in den 30 Sekunden nichts passieren.


    Ich hoffe jemand kann mir helfen!




    Mit freundlichen Grüßen
    Alpha

    DIVIDE ET IMPERA

  • Jetzt allein mit der Variable, meinst Du das etwa so?



    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==Waffen_1)
    {
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(playerid,"EKCW1")==0)
    {
    new rWaffen;
    SetPVarInt(i,"EKW1",1);
    rWaffen = random(sizeof(EKCPickups));
    GivePlayerWeapon(playerid,EKCPickups[rWaffen][0],EKCPickups[rWaffen][1]);
    //Der Timer kommt nachher
    }
    else
    {
    SendClientMessage(playerid,ROT,"Die Waffen aus diesem Pickup wurden vor kurzem erst aufgesammelt, versuch es später nochmal!");
    }
    }
    }
    }
    return 1;
    }

    DIVIDE ET IMPERA