Hi.
Ich würde gerne einem Spieler eine Waffe geben.
Mit: /w [Playerid] [Waffenid] [Munition].
Bis jetzt habe ich jedoch nur 1 Parameter benutzt also z.B. /heal [ID].
Wie greife ich jetzt auf die anderen 2 Parameter zu?
dcmd - Mehrere Parameter
- Michael
- Geschlossen
- Erledigt
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
-
-
/push.
-
Für mehrere Parameter kannst du (wenn du dcmd schon benutzt) sscanf nutzen.
sscanfDiese Erweiterung zu dcmd erlaubt dir die einfache benutzung mehrerer Parameter.
Wird genau so wie dcmd definiert, die Funktion an sich sieht aber so aus
dcmd_weapon(playerid,params[])
{
new zielid;
new waffe,munni;
if(sscanf(params, "udd",zielid,waffe,munni))
{
return SendClientMessage(playerid,weiß,"Benutzung: /weapon [ID] [Waffen] [Munition]");
}
} -
hier wird das ganze nochmal genau auf Deutsch erklärt:
Commands mit Parameternbei sieht der command dann so aus:
dcmd_weapon(playerid, params[])
{
new pID, weaponid, ammo;
if(sscanf(params, "uii", pID, weaponid, ammo))
return SendClientMessage(playerid, COLOR_RED, "USAGE: \"/weapon [ID] [weaponid] [ammo]\"");
else
{
if(IsPlayerConnected(pID))
GivePlayerWeapon(pID, weaponid, ammo);
else
SendClientMessage(playerid, COLOR_RED, "ERROR: Spieler nicht online");
}
return 1;
}mfg
-
Nimm anstatt "i" für die id "u", denn dann kannst du sowohl die id als auch den Namen des Spielers nutzen
-
jo stimmt, habs editiert
-
sscanf("SplitText","Format",{Variablen}...);
- Text der zerlegt werden soll
- Typen die zerlegt werden sollen sprich Zahl, String, Float
- Variablen in die, die Werte kopiert werden sollen
Zu beachten : Wenn eine Variable nicht den Typ der Rückgabe im Format entspricht gibt sscanf 0 wieder andernfalls 1 ( Falsch/Wahr )
Es gibt auch andere Methode Parameter zu zerlegen da diese sich ja im Grund nur durch Spezielle Zeichen zersetzen wie Leer, Komma oder Sonstige Sonderzeichen,
auch andere Zeichen können verwendet werden um Trennzeichen anzugeben.Viele nutzen auch strtok oder Split um Parameter zu trennen, die Ressourcenschonende Methode ist sscanf sprich kann man sscanf auch
für andere aufgaben einsetzen wo Parameter getrennt werden sollen sprich kann diese Methode auch bei normalen Kommandos eingesetzt werden,
viele meinen ja das man dies nur in dcmd oder anderen Methoden anwenden kann was aber nicht stimmt,
so kann man auch Werte aus Dateien fischen und diese locker wiedergeben.So ich hoffe ich konnte dir mit dieser kurzen Erklärung helfen
-
Danke! mit sscanf ist es 1. Viel leichter und klappt 2. echt Super!
Danke :))