Entweder strtok/strval oder sscanf, nicht beides gleichzeitig. Ich habe mal die falsche Stellen entfernt. Du musst den Code noch um die restlichen Waffen vervollständigen, damit er richtig funktioniert...
dcmd_givegun(playerid, params[])
{
if(PlayerInfo[playerid][pJob] != 2)
{
SendClientMessage(playerid, COLOR_RED, "Du bist kein Waffenhändler");
return 1;
}
new
string[60], // Dein Output kann maximal 128 groß sein, nicht 256, in deinem Fall noch weniger
giveplayerid,
price,
weapon,
mats,
ammo;
if(sscanf(params, "uddd", giveplayerid, weapon, ammo, price))
{
SendClientMessage(playerid, COLOR_GREEN, "________________________________________________");
SendClientMessage(playerid, COLOR_WHITE, "*** Waffen ***");
SendClientMessage(playerid, COLOR_RED, "Verwendung: /givegun [ID] [WAFFEN ID] [AMMO] [PREIS]");
SendClientMessage(playerid, COLOR_GRAD5, "Waffen: 1.flowers(25) 2.sdpistol(100) 3.eagle(200) 4.mp5(200) 5.shotgun(200)");
SendClientMessage(playerid, COLOR_GRAD5, "Waffen: 6.ak47(600) 7.m4(600) 8.rifle(600)");
SendClientMessage(playerid, COLOR_GREEN, "________________________________________________");
}
else if(giveplayerid == INVALID_PLAYER_ID)
{
SendClientMessage(playerid, COLOR_RED, "Dieser Spieler exitiert nicht");
}
else if(weapon < 1 | weapon > 8)
{
SendClientMessage(playerid, COLOR_RED, "Diese Waffe existiert nicht");
}
else
{
if(weapon == 1)
{
weapon = 14;
mats = 25,
}
else if(weapon == 2)
{
weapon = WAFFENID;
mats = MATS,
}
// hier immer so weiter
if(PlayerInfo[playerid][pMats] < mats)
{
SendClientMessage(playerid, COLOR_RED, "Du hast so viele Materialien nicht");
return 1;
}
GivePlayerWeapon(giveplayerid, weapon, price);
GivePlayerMoney(giveplayerid, -price);
GivePlayerMoney(playerid, price);
format(string, sizeof(string), "Du hast eine %d mit %d Munition für $%d verkauft", weapon, ammo, price);
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string), "Du hast eine %d mit %d Munition für $%d gekauft", weapon, ammo, price);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
}
return 1;
}