hi,
ist sscanf() voraussetzung für dcmd?
heißt: muss ich auch sscanf() verwenden wenn ich mit dcmd arbeiten will? oder kann ich NUR mit dcmd auch arbeiten?
mfg
hi,
ist sscanf() voraussetzung für dcmd?
heißt: muss ich auch sscanf() verwenden wenn ich mit dcmd arbeiten will? oder kann ich NUR mit dcmd auch arbeiten?
mfg
sscanf is meines wissens ja nur dafür da, wenn du mit parametern arbeiten willst.
wenn du dcmd für cmds ohne parameter benutzen willst, dann mach einfach
dcmd_beispiel(playerid,params[])
{
#pragma unused params
und dann einfach den cmd weiter
du musst bei parametern meistens mit sscanf arbeiten, außer du arbeitest nur mit PlayerID's als Parameter z.B. Kick [playerid]
sonst geht es so (hier mal mein goto command) :
dcmd_gotop(playerid, params[])
{
new
Float:x, Float:y, Float:z,
pID;
if(sscanf(params, "u", pID))
{
return SendClientMessage(playerid, COLOR_RED, "Benutzung: /gotop PlayerID");
}
if(!IsPlayerConnected(pID))
{
return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
}
GetPlayerPos(pID, x, y , z);
SetPlayerPos(playerid, x, y, z+2);
SendClientMessage(pID,COLOR_WHITE,"AN ADMIN HAS TELEPORTED HIMSELF TO YOU");
return 1;
}
Mfg GHOSTY
Sscanf ist keine Voraussetzung für Dcmd. Dcmd Befehle mit einem Parameter funktionieren auch ohne sscanf, allerdings benötigt man ab 2 Parametern oder mehr etwas um diese zu unterteilen, und das ist meist sscanf
achso
naja ich hab mich das nur gefragt weil ich sscanf überhaupt nicht kapiere
aber dcmd schon halbwegs...
keinen plan wie sscanf funktioniert..
noch ne kurze frage:
was ist denn ein pragma??
(also z.b. pragma unused params oder so..)
mfg
Das setzt den integer params[] auf unbenutzt.
und was ist der Integer params[]??
wo kommt der vor und wo braucht man ihn?
Das setzt den integer params[] auf unbenutzt.
alleine schon am [] sieht man dass params ein String ist!
Demnach
ZitatString != Integer
@ Jackpot der String 'Params' ist der Teil bei einem dcmd Befehl der nach dem eigentlichen Befehl kommt
dcmd_test(playerid, params[])
{
#pragma unused params, playerid // Unterdrückt eine Warnung, laut der die Variable 'params' und 'playerid' nicht benutzt werden ;)
return 1;
}
Und wenn du jetzt /test 1 eingibst, ist test der Befehl und 1 ist der Parameter der im String params[] gespeichert wird.
aaah ich glaub ich verstehe
also dcmd_test definiert statt strcmp den befehl "/test".
und in params wird gespeichert was du eingibts oder? also z.b beim gov-chat: "/gov text"
params ist der "text", hab ich das richtig verstanden?
und params unterdrückt im prinzip, wie du sagtest, nur die errormeldung, oder?
wenn das so ist dann hast du super erklärt!
nur noch eine frage:
bleibt
#pragma unused params, playerid
return 1;
immer gleich oder müssen da auch andere werte eingesetzt werdeN?
Du brauchst dieses pragma unused params wenn du eine der durch den Befehl oben erstellte Variablen nicht benutzt, da diese sonst eine Warnung erzeugen würden
Zitatsymbol 'xyz' is never used
achso also weil z.b bei /gov...
man braucht den string damit man den text im spiel dann später verarbeiten kann
aber im script ist der string (also params[]) noch nicht definiert..
und damit keine warnung kommt das #pragma oder??
und könnte man stock dann theoretisch auch benutzen?
Params[] steht ja auch erst im Befehl....
dcmd_test(playerid, params[]) // <- der String
und wofür willst du Stock benutzen? Mit Stock erstellt man Funktionen
ja hab ich auch grad bemerkt
ich bin eben noch kein profi da kann man solche dummen fragen schon mal stellen
aber ich glaub ich hab #pragma jetzt eh kapiert
also danke für deine hilfe