Wann muss ich das #pragma unused params
unter einen ocmd: befehl klemmen ?
Und was beudeutet das eigentlich ?
Wozo dienst das wann muss ich es nutzen.
>> #pragma unused params Frage <<
- ASS
- 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
-
-
also die params benutzt man wenn man ein Befehl macht z.B /givemoney [playerid] [geld] dafür braucht man auch sscanf hier ein Beispiel:
was man dafür auch braucht ist z.B eine pID
if(sscanf(params,"ii",pID,pkt))return SendClientMessage(playerid,ROT,"INFO: /givemoney [id] [geld]"); So werden die params benutzt.Jedoch wenn man sowas nicht machen muss im BEfehl schaltet man die params ab mit #pragma unused params
Hoffe ich konnt dir helfen, so gut erklären konnt ich es nicht
Lg,
-
Herbet hat ja schon teilweise erklärt was params
sind
PARAMS = parameter
parameter ist tzusagen inhalt
parameter werden heutzutage sehr oft benutzt
ocmd:hallo(playerid,params[])
{
//Hier braucht meine keine params//Man kann es wegmachen oder #pragma unused pragma
}SetTimerEx("name",time,bool,"i",id); i = der int param
i = id
u = id or namer
s=text
f=float
d=dezi
Hoffe konnte mal genauer drauf eingehen
MFG
PAWN
-
Das heisst ich brauche bei diesen Befehl keine Prams ?
ocmd:stopregister(playerid,params[])
{
#pragma unused params
new string[128];
if(!IsPlayerConnected(playerid))return 1;
if(PlayerInfo[playerid][pAdmin]<1337)return ErrorMsg(playerid,"Du hast nicht den richtigen Adminrang dazu.");
if(allowregister==0)
{
allowregister=1;
format(string,sizeof(string),"%s hat die Registrierung wieder aktiviert.",MeinName(playerid));
SendClientMessageToAll(0x0AB816FF,string);
}
if(allowregister==1)
{
allowregister=0;
format(string,sizeof(string),"%s hat die Registrierung deaktiviert.",MeinName(playerid));
SendClientMessageToAll(0x0AB816FF,string);
return 1;
}
return 1;
} -
Das heisst ich brauche bei diesen Befehl keine Prams ?
ocmd:stopregister(playerid,params[])
{
#pragma unused params
new string[128];
if(!IsPlayerConnected(playerid))return 1;
if(PlayerInfo[playerid][pAdmin]<1337)return ErrorMsg(playerid,"Du hast nicht den richtigen Adminrang dazu.");
if(allowregister==0)
{
allowregister=1;
format(string,sizeof(string),"%s hat die Registrierung wieder aktiviert.",MeinName(playerid));
SendClientMessageToAll(0x0AB816FF,string);
}
if(allowregister==1)
{
allowregister=0;
format(string,sizeof(string),"%s hat die Registrierung deaktiviert.",MeinName(playerid));
SendClientMessageToAll(0x0AB816FF,string);
return 1;
}
return 1;
}genau brauchst da keine mach es weg oder oben hin beim command #pragma unused params
-
Siehe Params verwendest du nur wenn du noch was hinten dran klemmst siehe
/give ID GELD
-
Verwende das nicht, das ist einfach nur unnötig!
Lass einfach oben den Parameter weg!
Sprich einfach so:
ocmd:give(playerid)
{}
anstatt Pragma zu nutzen!
mfg.
-
Wäre es nicht einfacher für Commands ohne parameter den public OnPlayerCommandText zu verwenden?
dafür ist der doch schließlich da. -
[quote='Grek','index.php?page=Thread&postID=1687440#post1687440']Wäre es nicht einfacher für Commands ohne parameter den public OnPlayerCommandText zu verwenden?
dafür ist der doch schließlich da.[/quote]Öhm das würde ja auch gehen
aber ocmd ist die beste cariante zcmd und ocmd deswefgeb lohnt es sich mehr
ocmd:command(playerid)
oder ocmd:command(playerid,params[])
{
#pragma unused pragma zu machen
} -
Geheimtipp: ocmd benötigt kein #pragma unused params.
Das hier geht problemlos ohne #pragma
ocmd:xyz(playerid,params[])
{
SendClientMessage(playerid,0xffffffff,"Du hast /xyz eingegeben!");
return 1;
}Also: params einfach nicht benutzen, ohne das besonders zu kennzeichnen, ist die einfachste Methode
-
-
Ah erstmal danke für soviele Antworten.
-
[quote='Grek','index.php?page=Thread&postID=1687440#post1687440']Wäre es nicht einfacher für Commands ohne parameter den public OnPlayerCommandText zu verwenden?
dafür ist der doch schließlich da.[/quote]Öhm das würde ja auch gehen
aber ocmd ist die beste cariante zcmd und ocmd deswefgeb lohnt es sich mehr
ocmd:command(playerid)
oder ocmd:command(playerid,params[])
{
#pragma unused pragma zu machen
}[/quote]- Wenn er sagen wir einen '/stats' Befehl machen möchte müsste dieser so aussehen:ocmd:stats(playerid) // Hier bei halt die params weg lassen warum? weil keine gebraucht werden da der Befehl ja direkt ausgeführt wird!
{ new string[64];
format(string,sizeof(string),"Statistiken von %s",SpielerName(playerid));
SendClientMessage(playerid,-1,string);
return 1;
}- Aber wenn er einen Befehl mit params nutzen möchte, also z.B '/getstats' muss er ja die Spieler ID angeben um die Statistiken von diesem zu erhalten!
ocmd:getstats(playerid,params[])
{
new auswahlid,string[64];
if(sscanf(params,"u",auswahlid))return SendClientMessage(playerid,-1,"Benutze: /getstats [Name/ID]");
format(string,sizeof(string),"Statistiken von %s",SpielerName(auswahlid);
SendClientMessage(playerid,-1,string);
return 1;
}
Hoffe du hast es verstanden
Grüße -
breadfish.de
Hat das Thema geschlossen.