Beiträge von linux_

    sizeof(WeaponPickups) tut es auch und ist besser, wenn Du mal die Groesse des Arrays veraendern willst. Ich wuerde Dir trotzdem jetzt raten das Filterscript nicht zu verwenden. Nicht weil ich Jeffry's Filterscript schlecht finde, sondern weil Du jetzt schon fast fertig bist und wenn Du es fertig programmiert hast, Du ein Erfolgserlebnis haben wirst und die Arbeit von mir und von Dir nicht umsonst war.

    Nein, tut er nicht. Wenn Spieler B stirbt und seine Desert Eagle droppt, dann wird in seine PVar geschrieben "Desert Eagle" und "24 Schuss". Wenn er jetzt ein Pickup aufhebt (irrelevant welches), dann fragt er in SEINER PVar ab, welche Waffe mit wie viel Schuss drinnen steht. Verstehst Du jetzt worauf ich hinaus will? Das mit PVars kann nie klappen.

    Denkaufgabe:
    Spieler B wird von Spieler C erschossen und hat eine Desert Eagle gedroppt mit 24 Schuss. Spieler B erschiesst irgendwann 5 Minuten spaeter den Spieler A der eine Shotgun mit 50 Schuss in der Hand hat. Das Shotgun Pickup wird erstellt. Wenn Spieler B jetzt zum Pickup von Spieler A hinrennt, welche Waffe bekommt Spieler B?

    Mit break; brichst Du nur die Schleife ab und der Code ausserhalb der Schleife wird fortgefuehrt. Mit return; brichst Du die Schleife und die Funktion, in der die Schleife laeuft ab. Ammo: [wiki]GetPlayerAmmo[/wiki]

    Ich wuerde das so machen: In OnPlayerDeath noch neben der Waffen ID die Munition des Spielers abspeichern. Dann erstellst Du Dir ein globales Array meinetwegen wie folgt:



    #define MAX_WEAPON_PICKUPS 300


    enum t_WeaponPickups
    {
    WeaponPickupID,
    WeaponPickupWeaponID,
    WeaponPickupAmmo
    };


    new WeaponPickups[MAX_WEAPON_PICKUPS][t_WeaponPickups];


    Jetzt iterierst Du in OnPlayerDeath durch das Array WeaponPickups und wenn ein Eintrag mit "WeaponPickupID == 0" gefunden wurdest, kannst Du in diesen Index die ID des erstellten Pickups schreiben, die Waffe und die Ammo. Danach die Schleife direkt unterbrechen, damit nicht das mehrmals ausgefuehrt wird - sondern nur, wenn WeaponPickupID == 0 ist bei einem Slot.


    Bei OnPlayerPickUpPickup iterierst Du ebenfalls durch Dein WeaponPickups Array und wenn er die "pickupid == WeaponPickupID" hat, dann liest Du aus dem Index die Weapon ID und die Ammo aus und gibst dem Spieler mit GivePlayerWeapon die Waffe. Aber loesch das Pickup und setze die Indexe auf 0 zurueck, damit der Platz frei wird fuer ein neues Pickup in OnPlayerDeath. Sonst laeuft das Array ja voll und irgendwann gibts nach 300 Pickups keine mehr weil das Array voll ist.

    @HandsUpper bitte mal einen Screen posten wie Du es konfiguriert hast. Kannst ja einen Teil davon zensieren wenn Dir das wichtig ist. Aber ist gut fuer andere, die auch mal das Problem haben werden.

    Du musst aber dann noch zu der Abfrage von hav0K das Pickup loeschen und dem Spieler die Waffe geben. Versuch aber mal bitte ob nicht doch der Pickup Type 2 den Trick tut. Wenn nicht, dann musst Du wohl oder uebel die Pickups in einem Array speichern und sagen was fuer ein Inhalt sich in dem Pickup befindet (welche Waffe). Anders kannst Du nicht rausfinden, was fuer eine Art von Pickup der Spieler gerade aufgehoben hat bzw. aufheben will.