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.
Beiträge von linux_
-
-
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? -
Die einzig richtige Loesung: x, y, z, r auf Double setzen fuer die Praezision und den Besitzer auf unsigned int. Und arbeite bitte in Zukunft immer mit User ID's und NICHT mit Namen!
-
Es ist weiters auch sehr unnötig den Besitzer auf int zu setzen da du im Script den Namen und nicht die ID abfragst. Eher auf VARCHAR setzen
Wenn das Dein Ernst ist, hast Du keine Ahnung von Datenbanken.
@Bergustelo setz es bitte auf unsigned int. Alles andere ist totaler Schwachsinn... Man ordnet ID's zu und keine Namen
-
Klammerfehler vermutlich
-
Die muessen aber double sein, da float zu ungenau ist. Hast Du das mit dem Besitzer auf unsigned int geaendert?
-
Wieso ist 'besitzer' auf float und nicht unsigned int? x, y, z und r zu double machen.
-
Wie sieht die Tabellenstruktur in Deiner Datenbank zu den Fahrzeugen aus?
-
Ich weiss ehrlich gesagt nicht was Du mit PVars hier anfangen willst. Zeig mal bitte wie und wo Du die einsetzt.
-
Wieso solltest Du das wollen? PVars machen hier keinen Sinn.
-
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 300enum 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.
-
Debug mal bitte GetWeaponPickup(waffe). Ich gehe mal davon aus, dass Du auch eine valide Waffe in der Hand hattest die auch in GetWeaponPickup erkannt wird.
-
Zeig mal bitte Dein komplettes OnPlayerDeath
-
Ich schaetze, dass Du das Pickup beim Tod aufhebst. Setz mal den Pickup Type auf 1 zum Testen. Wie Dus dann dennoch aufheben kannst sag ich Dir gleich.
-
Ja meinte ich. Zeig mal OnPlayerPickUpPickup
-
Zeig mal die Funktion: GetPlayerWeapon