Hallo,
und zwar wollte ich über Dialoge ein kleines System machen,
in dem man Waffen aussuchen kann und sie gesaved werden
und jedes mal wieder gegeben werden, wenn man sich ausloggt/abkackt.
Der Fehler ist aber, dass immer nur eine Waffe gesaved wird....
Hier mal der PWN Code:
/// Enums
enum sInfo
{
Deagle,
M4A1,
AK47,
Sniper,
SDPistole,
Shotgun,
Mp5
}
new SpielerInfo[MAX_PLAYERS][sInfo];
/// ONPlayerSpawn
/// Gibt Waffen
if(SpielerInfo[playerid][Deagle] == 1)
{
GivePlayerWeapon(playerid, 24, 1000);
}
if(SpielerInfo[playerid][M4A1] == 1)
{
GivePlayerWeapon(playerid, 31, 1000);
}
if(SpielerInfo[playerid][AK47] == 1)
{
GivePlayerWeapon(playerid, 30, 1000);
}
if(SpielerInfo[playerid][Mp5] == 1)
{
GivePlayerWeapon(playerid, 29, 1000);
}
if(SpielerInfo[playerid][SDPistole] == 1)
{
GivePlayerWeapon(playerid, 23, 1000);
}
if(SpielerInfo[playerid][Shotgun] == 1)
{
GivePlayerWeapon(playerid, 25, 1000);
}
if(SpielerInfo[playerid][Sniper] == 1)
{
GivePlayerWeapon(playerid, 34, 1000);
}
/// DIALOG
if(dialogid == DIALOG_msg)
{
if(listitem == 0)
{
GivePlayerWeapon(playerid, 24, 1000);}
if(listitem == 1)
{
GivePlayerWeapon(playerid, 23, 1000);}
if(listitem == 2)
{
GivePlayerWeapon(playerid, 29, 1000);}
if(listitem == 3)
{
GivePlayerWeapon(playerid, 25, 1000);}
if(listitem == 4)
{
GivePlayerWeapon(playerid, 31, 1000);}
if(listitem == 5)
{
GivePlayerWeapon(playerid, 30, 1000);}
if(listitem == 6)
{
GivePlayerWeapon(playerid, 34, 1000);}
if(response == 1)
{
SendClientMessage(playerid, ROT, "Du hast dein Waffenset nicht gespeichert!");
}
if(response == 0)
{
SendClientMessage(playerid, COLOR_GREEN, "Dein Waffenset wurde gespeichert.");
if(GetPlayerWeapon(playerid) == 24)
{
SpielerInfo[playerid][Deagle]=1;
}
if(GetPlayerWeapon(playerid) == 23)
{
SpielerInfo[playerid][SDPistole]=1;
}
if(GetPlayerWeapon(playerid) == 29)
{
SpielerInfo[playerid][Mp5]=1;
}
if(GetPlayerWeapon(playerid) == 25)
{
SpielerInfo[playerid][Shotgun]=1;
}
if(GetPlayerWeapon(playerid) == 30)
{
SpielerInfo[playerid][AK47]=1;
}
if(GetPlayerWeapon(playerid) == 31)
{
SpielerInfo[playerid][M4A1]=1;
}
if(GetPlayerWeapon(playerid) == 34)
{
SpielerInfo[playerid][Sniper]=1;
}
}
}
/// DER BEFEHL
ocmd:waffen(playerid,params[])
{
if(SpielerInfo[playerid][Jail] == 0)
{
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, ROT, "Du darfst den Befehl nicht im Auto benutzen!");
if(sscanf(params,""))return SendClientMessage(playerid, ROT,"Benutze: /waffen");
ShowPlayerDialog(playerid,DIALOG_msg,DIALOG_STYLE_LIST,"{00FF00}Stelle deine Waffen zusammen:","Deagle \nSD Pistole \nMp5 \nShotgun \nM4A1 \nAK47 \nSniper","Abbrechen","Fertig");
}
else
{
SendClientMessage(playerid, ROT, "Du darfst das Waffenmenü nicht benutzen!");
}
return 1;
}
/// IM DINI SYSTEM
// Bei Regestrieren stock:
dini_IntSet(Spielerdatei,"Deagle",0);
dini_IntSet(Spielerdatei,"SDPistole",0);
dini_IntSet(Spielerdatei,"Shotgun",0);
dini_IntSet(Spielerdatei,"Sniper",0);
dini_IntSet(Spielerdatei,"M4A1",0);
dini_IntSet(Spielerdatei,"AK47",0);
dini_IntSet(Spielerdatei,"Mp5",0);
/// Beim Login stock
SpielerInfo[playerid][Deagle]=dini_Int(Spielerdatei,"Deagle");
SpielerInfo[playerid][M4A1]=dini_Int(Spielerdatei,"M4A1");
SpielerInfo[playerid][Mp5]=dini_Int(Spielerdatei,"Mp5");
SpielerInfo[playerid][SDPistole]=dini_Int(Spielerdatei,"SDPistole");
SpielerInfo[playerid][AK47]=dini_Int(Spielerdatei,"AK47");
SpielerInfo[playerid][Sniper]=dini_Int(Spielerdatei,"Sniper");
SpielerInfo[playerid][Shotgun]=dini_Int(Spielerdatei,"Shotgun");
/// Beim speichern stock
dini_IntSet(Spielerdatei,"Deagle",SpielerInfo[playerid][Deagle]);
dini_IntSet(Spielerdatei,"Mp5",SpielerInfo[playerid][Mp5]);
dini_IntSet(Spielerdatei,"M4A1",SpielerInfo[playerid][M4A1]);
dini_IntSet(Spielerdatei,"AK47",SpielerInfo[playerid][AK47]);
dini_IntSet(Spielerdatei,"Sniper",SpielerInfo[playerid][Sniper]);
dini_IntSet(Spielerdatei,"Shotgun",SpielerInfo[playerid][Shotgun]);
dini_IntSet(Spielerdatei,"SDPistole",SpielerInfo[playerid][SDPistole]);
Freue mich wenn jemand den Fehler gefunden hat
MfG FaridBangSAMP