Ich komme mal gleich zur Sache. Mein /getguns Befehl ist leider ein klein wenig verbuggt.
Man kann sich zwar auf einmal nicht mehr als 5 Einheiten kaufen, aber man kann
/getguns 1 ,dann /getguns 2 usw. bis 4 und dann nochmal 5 Einheiten nehmen. Daher, man kann
bis zu 9 Einheiten statt 5 bekommen durch diesen Bug.
Hier der Befehl.
COMMAND:getguns(playerid,params[])
{
new gID,str[128];
if(sscanf(params, "d",gID))return SendClientMessage(playerid,0xC8C8C8FF,"/getguns [Anzahl]");
if(gID < 1 || gID > 5) return SendClientMessage(playerid,0xC8C8C8FF, "Die Anzahl muss zwischen 1 und 5 liegen!");
if(pInfo[playerid][hGuns] >= 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!"); //Sollte dies eigentlich verhindern
if(IsPlayerInRangeOfPoint(playerid,2,-14.2625,2337.2166,24.1406) && pInfo[playerid][Job] == 1)
{
for(new i = 0; i < sizeof(wdcars); i++)
{
if(GetPlayerVehicleID(playerid) == wdcars[i])
{
pInfo[playerid][hGuns]+= gID;
GivePlayerMoney(playerid,gID* -300);
format(str,sizeof(str),"Du hast dir %d Waffeneinheiten für %d$ gekauft",gID,gID* 300);
SendClientMessage(playerid,0x00A8FFFF,str);
return 1;
}
}
return SendClientMessage(playerid,0xC8C8C8FF, "Du sitzt in keinem der Pickups!");
}
else { return SendClientMessage(playerid,0xC8C8C8FF, "Du bist nicht am Waffenspot oder kein Waffendealer!"); }
}
Limit scripten
- SoulMan
- Geschlossen
- Erledigt
-
-
Ich kann aus deinem Text nicht erfassen was dein Problem ist .
Kannst du es mir vlt noch einmal erklären? -
Es sollte nicht möglich sein, mehr als 5 Waffeneinheiten gleichzeitig zu transportieren.
-
Achso, also du meinst wenn er schon 5 Einheiten besitzt , das er sich keine weiteren mehr kaufen kann?
-
Nein,nicht ganz. Das wird ja bereits teilweise geblockt.
Man kann sich aber insgesamt 9 Einheiten besorgen, wenn man zuerst
/getguns 1 /getguns 2 /getguns 3 /getguns 4 und dann /getguns 5 eingibt.Aber es sollte eig. geblockt werden, wenn die gesamtzahl die 5 überschreiten würde.
*/Edit:
Erster Satz -
Ersetze mal diese Zeile
if(pInfo[playerid][hGuns] >= 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!"); //Sollte dies eigentlich verhindern
Durch diese:
if(pInfo[playerid][hGuns] == 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!"); //Sollte dies eigentlich verhindern -
Ich bin mir ziemlich sicher, dass das nicht funktioniert.
Meine Abfrage fragt ab, ob "hGuns" gleich 5 oder über 5 ist und blockiert dann
diese Möglichkeiten. Deine Abfrage hingegen fragt doch nur ab, ob die
Anzahl gleich 5 ist.Aber um ganz sicher zu gehen, teste ich es trotzdem mal und wenn es klappt bekommste n' Lolli.
-
if(pInfo[playerid][hGuns] + gID>= 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!");
damit Fragst du ab ob die Waffen die der Spieler schon hat + die Waffen die er dazubekommen soll zusammen mehr als 5 überschreiten. -
Das is darauf nicht selbst gekommen bin.
Danke dir! -
breadfish.de
Hat das Thema geschlossen.