Hallo,
ich habe folgendes Enum:
enum SpielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
Float:pHealth,
pWeaponId[13],
pWeaponAmmo[13]
}
In pWeaponId[13] würde ich gerne alle Waffen während der Laufzeit abspeichern, die der Spieler hat.
Analog dazu in pWeaponAmmo[13] die jeweilige Anzahl der "Waffen" (Das mache ich mit zwei Variablen, da zweidimensionale Arrays nicht erlaubt sind in Enums).
Davon gibt es natürlich noch eine Variable:
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
Wenn der Spieler in ein bestimmtes Pickup läuft, will ich, dass alle aktuellen Waffen des Spielers in seinem Enum abgespeichert werden:
public OnPlayerPickUpPickup(playerid, pickupid)
{
if (pickupid == pickup_parcel)
{
new WaffenP[13][2];
new Waffen_namen[13][128];
new weapon_slot = 1;
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, WaffenP[i][0], WaffenP[i][1]);
if (WaffenP[i][0] > 0 && WaffenP[i][1] > 0)
{
GetWeaponNameDE(WaffenP[i][0], Waffen_namen[weapon_slot]);
printf(Waffen_namen[weapon_slot]);
SpielerInfo[playerid][weaponId:weapon_slot] = WaffenP[i][0];
SpielerInfo[playerid][weaponAmmo:weapon_slot] = WaffenP[i][1];
new test[256];
new test1[256];
format(test, sizeof(test), "%i", SpielerInfo[playerid][weaponId:weapon_slot]);
printf(test);
format(test1, sizeof(test1), "%i", SpielerInfo[playerid][weaponAmmo:weapon_slot]);
printf(test1);
weapon_slot++;
}
}
}
return 1;
}
Allerdings speichert er die Waffendaten falsch im Enum ab..
Zur Info: GetWeaponNameDE ist nichts als die normale GetWeaponName Funktion, nur returne ich die deutschen Namen davon.
Gruß
legend