Hey Leute,
derzeit arbeite ich an einem Schwarzmarktsystem und hab ein kleines Problem.
Wenn ich den Befehl '/smarket' eingebe und ein Gegenstand dort auswähle, kauft er immer nur das Messer.
Heißt, ich gehe z.b. auf Desert Eagle, aber kriege dennoch ein Messer.
Hier ist mal der Code:
// Der ENUM
enum SchwarzmarktBuy_info
{
sbuyweapon,
sbuyammo,
sbuyweaponname[35],
smaterialsverbrauch
}
{
sbuyweapon,
sbuyammo,
sbuyweaponname[35],
smaterialsverbrauch
}
// Wo die Waffen mit den Preisen etc. drinne stehen.
new sBuyInfo[][SchwarzmarktBuy_info] =
{
{4,1,"Messer",410},
{5,1,"Baseballschläger",150},
{22,145,"9mm Pistole",550},
{23,145,"schallgedämpfte Pistole",420},
{24,75,"Desert Eagle",900},
{25,50,"Shotgun",1250},
{29,300,"MP5",2500},
{30,225,"AK-47",3500},
{31,225,"M4A1",3500},
{33,60,"Country Rifle",3000},
{34,30,"Sniper Rifle",8000},
{0,1,"Dünger",5}
};
new sBuyInfo[][SchwarzmarktBuy_info] =
{
{4,1,"Messer",410},
{5,1,"Baseballschläger",150},
{22,145,"9mm Pistole",550},
{23,145,"schallgedämpfte Pistole",420},
{24,75,"Desert Eagle",900},
{25,50,"Shotgun",1250},
{29,300,"MP5",2500},
{30,225,"AK-47",3500},
{31,225,"M4A1",3500},
{33,60,"Country Rifle",3000},
{34,30,"Sniper Rifle",8000},
{0,1,"Dünger",5}
};
// Der Befehl
COMMAND:smarket(playerid,params[])
{
new string[512];
for(new sm=1;sm<MAX_SMARKETS;sm++){
for(new i=0;i<sizeof(sBuyInfo);i++){
format(string,sizeof(string),"%s\n%s (%i$)",string,sBuyInfo[i][sbuyweaponname],SmarkInfo[sm][sartikel][i]);
}}
ShowPlayerDialog(playerid,DIALOG_SMARKT_KAUF,DIALOG_STYLE_LIST,"Schwarzmarkt",string,"Auswählen","Zurück");
return 1;
}
COMMAND:smarket(playerid,params[])
{
new string[512];
for(new sm=1;sm<MAX_SMARKETS;sm++){
for(new i=0;i<sizeof(sBuyInfo);i++){
format(string,sizeof(string),"%s\n%s (%i$)",string,sBuyInfo[i][sbuyweaponname],SmarkInfo[sm][sartikel][i]);
}}
ShowPlayerDialog(playerid,DIALOG_SMARKT_KAUF,DIALOG_STYLE_LIST,"Schwarzmarkt",string,"Auswählen","Zurück");
return 1;
}
//Der Dialog, also bei OnDialogResponse
case DIALOG_SMARKT_KAUF:
{
new string[128];
if(response == 0)
{
SendClientMessage(playerid, WEISS, "Kauf abgebrochen!");
TogglePlayerControllable(playerid,1);
return 1;
}
else
{
for(new sm=1;sm<MAX_SMARKETS;sm++)
{
for(new i=0;i<sizeof(sBuyInfo);i++)
{
if((GetACMoney(playerid) - SmarkInfo[sm][sartikel][i]) < 0)return SendClientMessage(playerid,GRAU,"Nicht genug Geld dabei!");
if((SmarkInfo[sm][smaterials] - sBuyInfo[i][smaterialsverbrauch]) < 0)return SendClientMessage(playerid,GRAU,"Diese Waffe ist nicht mehr im Lager vorhanden.");
ACMoney(playerid,-SmarkInfo[sm][sartikel][i]);
SmarkInfo[sm][skasse] += SmarkInfo[sm][sartikel][i];
SmarkInfo[sm][smaterials] -= sBuyInfo[i][smaterialsverbrauch];
format(string,sizeof(string),"Du hast dir den Gegenstand %s für %i$ gekauft!",sBuyInfo[i][sbuyweaponname],SmarkInfo[sm][sartikel][i]);
SendClientMessage(playerid,GELB,string);
if(i >= sizeof(sBuyInfo)-1)
{
format(string,sizeof(string),"Das %s kannst du mit '/truncatduenger' auf eine Drogenpflanze schütten.",sBuyInfo[i][sbuyweaponname]);
SendClientMessage(playerid,GELB,string);
SendClientMessage(playerid,GELB,"Es bewirkt das die Produktion von Drogen um ein Viertel verschnellert wird.");
Spieler[playerid][pDuenger]++;
}
else GiveWeapon(playerid,sBuyInfo[i][sbuyweapon],sBuyInfo[i][sbuyammo],true);
return 1;
}
}
TogglePlayerControllable(playerid,1);
}
}
{
new string[128];
if(response == 0)
{
SendClientMessage(playerid, WEISS, "Kauf abgebrochen!");
TogglePlayerControllable(playerid,1);
return 1;
}
else
{
for(new sm=1;sm<MAX_SMARKETS;sm++)
{
for(new i=0;i<sizeof(sBuyInfo);i++)
{
if((GetACMoney(playerid) - SmarkInfo[sm][sartikel][i]) < 0)return SendClientMessage(playerid,GRAU,"Nicht genug Geld dabei!");
if((SmarkInfo[sm][smaterials] - sBuyInfo[i][smaterialsverbrauch]) < 0)return SendClientMessage(playerid,GRAU,"Diese Waffe ist nicht mehr im Lager vorhanden.");
ACMoney(playerid,-SmarkInfo[sm][sartikel][i]);
SmarkInfo[sm][skasse] += SmarkInfo[sm][sartikel][i];
SmarkInfo[sm][smaterials] -= sBuyInfo[i][smaterialsverbrauch];
format(string,sizeof(string),"Du hast dir den Gegenstand %s für %i$ gekauft!",sBuyInfo[i][sbuyweaponname],SmarkInfo[sm][sartikel][i]);
SendClientMessage(playerid,GELB,string);
if(i >= sizeof(sBuyInfo)-1)
{
format(string,sizeof(string),"Das %s kannst du mit '/truncatduenger' auf eine Drogenpflanze schütten.",sBuyInfo[i][sbuyweaponname]);
SendClientMessage(playerid,GELB,string);
SendClientMessage(playerid,GELB,"Es bewirkt das die Produktion von Drogen um ein Viertel verschnellert wird.");
Spieler[playerid][pDuenger]++;
}
else GiveWeapon(playerid,sBuyInfo[i][sbuyweapon],sBuyInfo[i][sbuyammo],true);
return 1;
}
}
TogglePlayerControllable(playerid,1);
}
}
Ich weiß garnicht, woran das liegen kann