Hallo Community.
ich arbeite grade an dem Job "Waffendealer". Ich möchte das die Spieler z.b. "/materials get 10" eingeben und sie dann 10 mats pakete bekommen. Da ich mit sscanf und ocmd arbeite nimmt er aber jetzt (denke ich) get 10 als einen string. Wie kann ich den quasi splitten ? das es funktioniert?
Code:
ocmd:materials(playerid, params[])
{
if(Eingeloggt[playerid] != 1) { return 1; }
if(Spieler[playerid][Beruf] != JOB_Waffendealer) { return SendInfoMsg(playerid, "Du bist kein Waffendealer!"); }
new auswahl[10], tmpstr[128], anzahl;
if(sscanf(params,"s",auswahl)) {
return SendNutzMsg(playerid, "/materials [get/deliver]");
}
if(!strcmp(auswahl, "get", true)) {
if(!IsPlayerInRangeOfPoint(playerid, 5.0, -90.8883,-1576.5775,2.6172)) return SendInfoMsg(playerid, "Du bist nicht am Materials Get Punkt! (/navi)");
if(SpielerVariablen[playerid][PaketeDabei] >= 10) return SendInfoMsg(playerid, "Du kannst höchstens 10 Materials Pakete holen!");
if(sscanf(params,"i",anzahl)) {
return SendNutzMsg(playerid, "/materials get [Anzahl]");
}
if(anzahl+SpielerVariablen[playerid][PaketeDabei] > 10) {
format(tmpstr, sizeof tmpstr, "Soviele Pakete kannst du nicht tragen! (Maximal 10 Du hast: %d.)",SpielerVariablen[playerid][PaketeDabei]);
SendInfoMsg(playerid, tmpstr);
return 1;
}
if(anzahl*400 > Spieler[playerid][Geld]) {
format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld. Du brauchst: $%d und hast $%d.",anzahl*400,Spieler[playerid][Geld]);
SendInfoMsg(playerid, tmpstr);
return 1;
}
SpielerVariablen[playerid][PaketeDabei] += anzahl;
Spieler[playerid][Geld] -= anzahl*400;
format(tmpstr, sizeof tmpstr, " Du hast dir %d Pakete für $%d gekauft! Du musst sie nun ausliefern!",anzahl, anzahl*400);
SendClientMessage(playerid, FARBE_Hellblau, tmpstr);
return 1;
} [ ... ]