Random Pickup Spawn

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


    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    //Battlefield DM
    if(pickupid == BF_WEAPON[0] || pickupid == BF_WEAPON[1] || pickupid == BF_WEAPON[2] || pickupid == BF_WEAPON[3])
    {
    GivePlayerWeapon(playerid, GRENADE, 5);
    DestroyDynamicPickup(pickupid);
    }
    else if(pickupid == BF_WEAPON[4] || pickupid == BF_WEAPON[5] || pickupid == BF_WEAPON[6] || pickupid == BF_WEAPON[7] || pickupid == BF_WEAPON[8] || pickupid == BF_WEAPON[9])
    {
    GivePlayerWeapon(playerid, HEAT_SEEKER, 5);
    DestroyDynamicPickup(pickupid);
    }


    for(new i; i < 9; i++)
    {
    if(pickupid == BF_WEAPON[i])
    {
    SetTimerEx("PickupRespawn", 60000, false, "i", i);
    }
    }
    return 1;
    }


    forward PickupRespawn(pickupid);
    public PickupRespawn(pickupid)
    {
    if(pickupid == BF_WEAPON[0]) return CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[1]) return CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[2]) return CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[3]) return CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); //Grenade
    if(pickupid == BF_WEAPON[4]) return CreateDynamicPickup(360, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[5]) return CreateDynamicPickup(360, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[6]) return CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[7]) return CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[8]) return CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); //Heat Seeker
    if(pickupid == BF_WEAPON[9]) return CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    return 1;
    }


    Ich habe nun einmal probeweise ein Pickup aufgenommen und abgewartet, ob es nach 60 Sekunden wieder auftaucht - tut es nicht. Wenn ich mehrere Pickups in dem DM aufnehme, respawnen einige Pickups zufällig wieder, ich hab da aber kein wirkliches System darin erkannt...
    Weiß jemand weiter?

  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • SetTimerEx("PickupRespawn", 60000, false, "i", i);


    Zu
    SetTimerEx("PickupRespawn", 60000, false, "i", BF_WEAPON[i]);



    Außerdem muss die erneute Erstellung so aussehen:
    if(pickupid == BF_WEAPON[0]) BF_WEAPON[0]=Create...
    weil sich die ID ja ändern kann wenn du es neu erstellst. Natürlich für alle Nummern, nicht nur 0.

  • Darauf wäre ich nie im Leben gekommen.^^


    Es klappt, vielen herzlichen Dank!


    -----------------------------------------------------


    Ich muss mal den Totengräber spielen.
    Mir ist gestern Abend bei einem Test mit einem Kumpel aufgefallen, dass etwas seeehr herumspinnt.



    Das Minigun Pickup wurde als dieses komische Konstrukt angezeigt. Die Waffe war unsichtbar.


    Desweiteren ist es dazu gekommen, dass Pickups plötzlich nicht mehr verschwinden wollten, nachdem man sie aufgenommen hatte.


    Hier nochmal der ganze Code im Überblick.


    public OnGameModeInit()
    {
    BF_WEAPON[0] = CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[1] = CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[2] = CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[3] = CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[4] = CreateDynamicPickup(360, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[5] = CreateDynamicPickup(360, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[6] = CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[7] = CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[8] = CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[9] = CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); //Heat Seeker

    new Random = random(sizeof(RandomSpawnsBF_Minigun));
    BF_WEAPON[10] = CreateDynamicPickup(362, 1, RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 7, -1, -1, 100.0);
    MapIcon_Minigun = CreateDynamicMapIcon(RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 23, C_TURQUOISE, 7, -1, -1, 250.0);
    return DM_OnGameModeInit();
    }


    forward DM_OnGameModeInit();
    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit DM_OnGameModeInit


    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    if(pickupid == BF_WEAPON[0] || pickupid == BF_WEAPON[1] || pickupid == BF_WEAPON[2] || pickupid == BF_WEAPON[3])
    {
    GivePlayerWeapon(playerid, GRENADE, 3);
    DestroyDynamicPickup(pickupid);
    printf("%i aufgenommen.", pickupid);
    }
    else if(pickupid == BF_WEAPON[4] || pickupid == BF_WEAPON[5] || pickupid == BF_WEAPON[6] || pickupid == BF_WEAPON[7] || pickupid == BF_WEAPON[8] || pickupid == BF_WEAPON[9])
    {
    GivePlayerWeapon(playerid, HEAT_SEEKER, 1);
    DestroyDynamicPickup(pickupid);
    printf("%i aufgenommen.", pickupid);
    }
    else if(pickupid == BF_WEAPON[10]) //Minigun Event
    {
    new stringDE[128],
    stringEN[128],
    MinigunWielder[MAX_PLAYER_NAME];
    GetPlayerName(playerid, MinigunWielder, sizeof(MinigunWielder));
    format(stringDE, sizeof(stringDE), "»DEATHMATCH« {%06x}%s "#C_DM_E"hat die Minigun aufgenommen! Nehmt euch in Acht!", GetPlayerColor(playerid) >>> 8, MinigunWielder);
    format(stringEN, sizeof(stringEN), "»DEATHMATCH« {%06x}%s "#C_DM_E"has picked up the minigun! Watch out!", GetPlayerColor(playerid) >>> 8, MinigunWielder);
    SendLanguageMessage(playerid, C_DM, stringDE, stringEN);
    GivePlayerWeapon(playerid, MINIGUN, 250);
    DestroyDynamicPickup(pickupid);
    DestroyDynamicMapIcon(MapIcon_Minigun);
    printf("%i aufgenommen.", pickupid);
    }
    for(new i = 0; i < 11; i++)
    {
    switch (i)
    {
    case 0..9: if(pickupid == BF_WEAPON[i]) SetTimerEx("PickupRespawn", 60*1000, false, "i", BF_WEAPON[i]);
    case 10: if(pickupid == BF_WEAPON[i]) SetTimerEx("MinigunRespawn", 3*60*1000, false, "i", BF_WEAPON[i]);
    }
    }
    return _OnPlayerPickUpDynamicPickup(playerid, pickupid);
    }


    forward _OnPlayerPickUpDynamicPickup(playerid, pickupid);
    #if defined ALS_OnPlayerPickUpDynamicPickup
    #undef OnPlayerPickUpDynamicPickup
    #else
    #define ALS_OnPlayerPickUpDynamicPickup
    #endif
    #define OnPlayerPickUpDynamicPickup _OnPlayerPickUpDynamicPickup


    forward PickupRespawn(pickupid);
    public PickupRespawn(pickupid)
    {
    if(pickupid == BF_WEAPON[0]) return BF_WEAPON[0] = CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid); //Grenade
    if(pickupid == BF_WEAPON[1]) return BF_WEAPON[1] = CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Grenade
    if(pickupid == BF_WEAPON[2]) return BF_WEAPON[2] = CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Grenade
    if(pickupid == BF_WEAPON[3]) return BF_WEAPON[3] = CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Grenade
    if(pickupid == BF_WEAPON[4]) return BF_WEAPON[4] = CreateDynamicPickup(360, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    if(pickupid == BF_WEAPON[5]) return BF_WEAPON[5] = CreateDynamicPickup(360, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    if(pickupid == BF_WEAPON[6]) return BF_WEAPON[6] = CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    if(pickupid == BF_WEAPON[7]) return BF_WEAPON[7] = CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    if(pickupid == BF_WEAPON[8]) return BF_WEAPON[8] = CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    if(pickupid == BF_WEAPON[9]) return BF_WEAPON[9] = CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); printf("%i respawnt.", pickupid);//Heat Seeker
    return 1;
    }


    forward MinigunRespawn(pickupid);
    public MinigunRespawn(pickupid)
    {
    DestroyDynamicPickup(BF_WEAPON[10]);
    DestroyDynamicMapIcon(MapIcon_Minigun);
    if(pickupid == BF_WEAPON[10])
    {
    new Random = random(sizeof(RandomSpawnsBF_Minigun));
    BF_WEAPON[10] = CreateDynamicPickup(362, 1, RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 7, -1, -1, 100.0);
    MapIcon_Minigun = CreateDynamicMapIcon(RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 23, C_TURQUOISE, 7, -1, -1, 250.0);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerVirtualWorld(i) == 7)
    {
    GameTextForPlayer(i, "~r~Minigun Event!", 3000, 4);
    SendLanguageMessage(i, C_DM, "»DEATHMATCH« Die Minigun wurde gespawnt! Schnapp sie dir!", "»DEATHMATCH« The minigun has been spawned! Go get it!");
    }
    }
    printf("%i respawnt.", pickupid);
    }
    return 1;
    }


    -------------------------------------------------------------------


    Kleines Update. Ich habe das Ganze mal debuggt (printf's sind im obigen Code drinnen), beim Aufnehmen und beim Respawnen. Folgendes ist dabei herausgekommen.
    [18:22:24] 6 aufgenommen.
    [18:23:24] 6 respawnt.
    [18:23:24] 6 respawnt.
    [18:23:24] 6 respawnt.
    Es wird 3x respawnt, ich habe aber keinen Schimmer wieso.

    2 Mal editiert, zuletzt von Manyula ()

  • Das sind wohl sich überschneidende IDs.
    Das kannst du ganz leicht beheben:


    DestroyDynamicPickup(pickupid);


    zu:
    DestroyDynamicPickup(pickupid);
    BF_WEAPON[10] = -1;


    natürlich auch bei den pickups 0-9 so machen.



    Außerdem ist der ganze Time falsch, das wird nicht klappen, für beide Timer:
    SetTimerEx("MinigunRespawn", 3*60*1000, false, "i", BF_WEAPON[i]);
    zu:
    SetTimerEx("MinigunRespawn", 3*60*1000, false, "i", i);



    Und:
    Bei den beiden Timern für den Respawn:
    if(pickupid == BF_WEAPON[0])
    zu:
    if(pickupid == 0)


    Du darfst nicht die pickupid übergeben, sondern die Index ID, weil die Pickup ID sich immer wieder ändert.
    Beispiel:


    0 erstellt
    1 erstellt
    2 frei


    => Erstelle 2
    0 erstellt
    1 erstellt
    2 erstellt


    => Lösche 1
    0 erstellt
    1 frei
    2 erstellt


    => Lösche 2
    0 erstellt
    1 frei
    2 frei


    => Erstelle 2
    0 erstellt
    1 erstellt ====>>> Index 2 hat jetzt die pickupid 1.
    2 frei


  • ------------------------------------------------------------------------------------------------------------



    Du stehst aber jetzt irgendwie im Widerspruch zu deinem vorigen Post...
    Außerdem macht das für mich keinen Sinn. "pickupid == BF_WEAPON[0]" ist doch nicht zwangsweise dasselbe wie "pickupid == 0". Wie übergebe ich denn nun die Index ID?

    Einmal editiert, zuletzt von Manyula ()

  • Manyula:
    Ich weiß, dass es sich mit dem was ich zuerst gesagt habe widerspricht. Das liegt daran, dass ich übersehen habe, dass du das Pickup beim Aufnehmen entfernst (fehlerfrei bin ich leider auch nicht :D).
    Der Code würde nur dann Sinn geben, wenn du das Pickup nicht, oder erst später, löschst, so wie ich es mir fälschlicherweise gedacht habe.


    Sorry um die Verwirrung. Ich mache dir das heute Abend richtig, falls du es nicht selbst schaffst.

  • Jetzt war ja die Rede davon die Index ID abzufragen - wenn dem so ist, dann ist "pickupid" doch der falsche Vergleichsparameter, oder?


    Ich habe mal probeweise die Deklarationen durch die eigentlichen pickupid's ersetzt, aber dabei kommt ein noch größerer Quark raus.

  • Jetzt war ja die Rede davon die Index ID abzufragen - wenn dem so ist, dann ist "pickupid" doch der falsche Vergleichsparameter, oder?


    Ich habe es dir jetzt mal umgebastelt und versucht, deinen Style so weit wie möglich beizubehalten, damit du es auch noch verstehst und nachvollziehen kannst.
    Testen kann ich es leider nicht, da ich es ja nicht kompilieren kann, den Part musst du übernehmen.


    Falls es nicht klappt, beschreibe bitte was nicht klappt. Bei so langen Codes ist es immer schwer es auf Anhieb ohne es zu kompilieren und testen hinzubekommen.


    Spoiler anzeigen
    public OnGameModeInit()
    {
    BF_WEAPON[0] = CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[1] = CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[2] = CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[3] = CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); //Grenade
    BF_WEAPON[4] = CreateDynamicPickup(360, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[5] = CreateDynamicPickup(360, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[6] = CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[7] = CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[8] = CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); //Heat Seeker
    BF_WEAPON[9] = CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); //Heat Seeker

    new Random = random(sizeof(RandomSpawnsBF_Minigun));
    BF_WEAPON[10] = CreateDynamicPickup(362, 1, RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 7, -1, -1, 100.0);
    MapIcon_Minigun = CreateDynamicMapIcon(RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 23, C_TURQUOISE, 7, -1, -1, 250.0);
    return DM_OnGameModeInit();
    }

    Spoiler anzeigen
    forward DM_OnGameModeInit();
    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit DM_OnGameModeInit

    Spoiler anzeigen
    public OnPlayerPickUpDynamicPickup(playerid, pickupid)
    {
    if(pickupid == BF_WEAPON[0] || pickupid == BF_WEAPON[1] || pickupid == BF_WEAPON[2] || pickupid == BF_WEAPON[3])
    {
    GivePlayerWeapon(playerid, GRENADE, 3);
    DestroyDynamicPickup(pickupid);
    printf("%i aufgenommen.", pickupid);
    }
    else if(pickupid == BF_WEAPON[4] || pickupid == BF_WEAPON[5] || pickupid == BF_WEAPON[6] || pickupid == BF_WEAPON[7] || pickupid == BF_WEAPON[8] || pickupid == BF_WEAPON[9])
    {
    GivePlayerWeapon(playerid, HEAT_SEEKER, 1);
    DestroyDynamicPickup(pickupid);
    printf("%i aufgenommen.", pickupid);
    }
    else if(pickupid == BF_WEAPON[10]) //Minigun Event
    {
    new stringDE[128],
    stringEN[128],
    MinigunWielder[MAX_PLAYER_NAME];
    GetPlayerName(playerid, MinigunWielder, sizeof(MinigunWielder));
    format(stringDE, sizeof(stringDE), "»DEATHMATCH« {%06x}%s "#C_DM_E"hat die Minigun aufgenommen! Nehmt euch in Acht!", GetPlayerColor(playerid) >>> 8, MinigunWielder);
    format(stringEN, sizeof(stringEN), "»DEATHMATCH« {%06x}%s "#C_DM_E"has picked up the minigun! Watch out!", GetPlayerColor(playerid) >>> 8, MinigunWielder);
    SendLanguageMessage(playerid, C_DM, stringDE, stringEN);
    GivePlayerWeapon(playerid, MINIGUN, 250);
    DestroyDynamicPickup(pickupid);
    DestroyDynamicMapIcon(MapIcon_Minigun);
    printf("%i aufgenommen.", pickupid);
    }
    for(new i = 0; i < 11; i++)
    {
    switch (i)
    {
    case 0..9:
    {
    if(pickupid == BF_WEAPON[i])
    {
    SetTimerEx("PickupRespawn", 60*1000, false, "i", i);
    BF_WEAPON[i] = -1;
    }
    }
    case 10:
    {
    if(pickupid == BF_WEAPON[i])
    {
    SetTimer("MinigunRespawn", 3*60*1000, false);
    BF_WEAPON[i] = -1;
    }
    }
    }
    }
    return _OnPlayerPickUpDynamicPickup(playerid, pickupid);
    }

    Spoiler anzeigen
    forward _OnPlayerPickUpDynamicPickup(playerid, pickupid);
    #if defined ALS_OnPlayerPickUpDynamicPickup
    #undef OnPlayerPickUpDynamicPickup
    #else
    #define ALS_OnPlayerPickUpDynamicPickup
    #endif
    #define OnPlayerPickUpDynamicPickup _OnPlayerPickUpDynamicPickup

    Spoiler anzeigen
    forward PickupRespawn(index);
    public PickupRespawn(index)
    {
    switch(index)
    {
    case 0: BF_WEAPON[0] = CreateDynamicPickup(342, 1, 120.5242, 1934.8777, 22.7578, 7, -1, -1, 100.0); //Grenade
    case 1: BF_WEAPON[1] = CreateDynamicPickup(342, 1, 279.4142, 1829.5718, 21.4766, 7, -1, -1, 100.0); //Grenade
    case 2: BF_WEAPON[2] = CreateDynamicPickup(342, 1, 116.2530, 1875.0065, 22.4375, 7, -1, -1, 100.0); //Grenade
    case 3: BF_WEAPON[3] = CreateDynamicPickup(342, 1, 136.4600, 1874.9723, 22.4375, 7, -1, -1, 100.0); //Grenade
    case 4: BF_WEAPON[4] = CreateDynamicPickup(360, 1, 189.9938, 1940.4785, 17.6406, 7, -1, -1, 100.0); //Heat Seeker
    case 5: BF_WEAPON[5] = CreateDynamicPickup(360, 1, 206.2279, 1932.8312, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    case 6: BF_WEAPON[6] = CreateDynamicPickup(360, 1, 144.0044, 1850.1791, 25.2610, 7, -1, -1, 100.0); //Heat Seeker
    case 7: BF_WEAPON[7] = CreateDynamicPickup(360, 1, 211.4619, 1809.8109, 25.1172, 7, -1, -1, 100.0); //Heat Seeker
    case 8: BF_WEAPON[8] = CreateDynamicPickup(360, 1, 146.3869, 1907.3638, 26.3924, 7, -1, -1, 100.0); //Heat Seeker
    case 9: BF_WEAPON[9] = CreateDynamicPickup(360, 1, 197.3199, 1835.0059, 23.2422, 7, -1, -1, 100.0); //Heat Seeker
    }
    printf("Index %d respawnt", index);
    return 1;
    }

    Spoiler anzeigen
    forward MinigunRespawn();
    public MinigunRespawn()
    {
    new Random = random(sizeof(RandomSpawnsBF_Minigun));
    BF_WEAPON[10] = CreateDynamicPickup(362, 1, RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 7, -1, -1, 100.0);
    MapIcon_Minigun = CreateDynamicMapIcon(RandomSpawnsBF_Minigun[Random][0], RandomSpawnsBF_Minigun[Random][1], RandomSpawnsBF_Minigun[Random][2], 23, C_TURQUOISE, 7, -1, -1, 250.0);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerVirtualWorld(i) == 7)
    {
    GameTextForPlayer(i, "~r~Minigun Event!", 3000, 4);
    SendLanguageMessage(i, C_DM, "»DEATHMATCH« Die Minigun wurde gespawnt! Schnapp sie dir!", "»DEATHMATCH« The minigun has been spawned! Go get it!");
    }
    }
    printf("Minigun respawnt.");
    return 1;
    }

  • Es klappt fehlerfrei! Danke für deine große Mühe!


    Nur zum besseren Verständnis: Diese ganzen Umstände nur, weil ich in einer Variable Indexe verwende? Heißt das, dass ich das Ganze hätte umgehen können, wenn ich statt "BF_WEAPON[0], BF_WEAPON[2],..." einfach "Waffe1, Waffe2,..." geschrieben hätte?