Allso meine Frage Wie erstellt man ein Befehl mir mehreren parametern ?
wie jez zb. /dance [Tanzid] so soll es sein wie macht man das ?
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Die schlauste, variante währe wenn du sscanf benutzt, aber es geht natürlich auch anderst...
Hab mal was rausgesucht : http://wiki.sa-mp.com/wiki/Fast_Commands
/E: Ein command processer wie DCMD ist auch zu empfehelen
-
-
Ja ich weiss wie das mit sscanf geht aber ich meine /dance id und bei der id gibt es 4 tänze jede zahl ein anderer tanz
-
Ja, mit sscanf kriegst du ganz einfach in deine Variable eine Zahl ..
Eine einfache abfrage reicht ?if(DeinInteger == 1) {
}
zB oder ein switch statement -
Wenns jetzt nur um so einen einfachen Befehl geht reichts doch wenn man den string mit strval zu einem Integerwert konvertiert und dann mit switch & case guckt welche ID angegeben wurde.
CMD:tanzen(playerid, params[])
{
new tanzid = strval(params);
switch(tanzid)
{
case 1: //deine animation
case 2: // blubb
}
return 1;
}
Das ist jetzt für zcmd -
fehlt da nicht irgentwie noch was mit sscanf ?
-
fehlt da nicht irgentwie noch was mit sscanf ?
nein nicht wirklich das ist auch eine möglichkeit
hier ein beispiel wie das mit sscanf ausehen kann
ocmd:dance(playerid,params[])
{
new dancestyle;
if(sscanf(params,"i",dancestyle))return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /dance [1-4]");
if(dancestyle<1||dancestyle>4)return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /dance [1-4]");
if(dancestyle == 1) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
else if(dancestyle == 2) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
else if(dancestyle == 3) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
else if(dancestyle == 4) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
return 1;
}
//edit
hierzu kannst du auch d nehmen was für Zahlen steht das macht kein unterschied -
breadfish.de
Hat das Thema geschlossen.