Hallo Community
Ich habe mal eine Frage,...
Wie kann ich in einem Befehl, zwei machen
also das sollte so gehen
wenn man z.B. /base schreibt
Kann man dahinter noch etwas auswählen z.B.
/base [auf/zu]
wenn mir jemand helfen kann, danke im vorraus
LG
Hallo Community
Ich habe mal eine Frage,...
Wie kann ich in einem Befehl, zwei machen
also das sollte so gehen
wenn man z.B. /base schreibt
Kann man dahinter noch etwas auswählen z.B.
/base [auf/zu]
wenn mir jemand helfen kann, danke im vorraus
LG
Also du beginnst mit einem normale Grundgerüst:
if(strcmp(cmdtext,"/befehl",true) == 0)
{
return 1;
}
Wenn du es noch nicht hast, dann machst du new tmp[256], idx; in den Public OnPlayerCommandText
Wenn das gemacht ist kannst du in den vorherigen Befehl das rein machen tmp = strtok(cmdtext,idx);
Dann folgt eine Abfrage:
if(!strlen(tmp))
{
SendClientMessage(playerid, FARBE, "BENUTZUNG: /befehl[an/aus]");
return 1;
}
Nun kommen noch die Abfragen mit "an" und "aus"
if(strcmp(tmp,"an",true) == 0)
{
SendClientMessage(playerid,FARBE,"Dein Befehl ist jetzt an");
}
else if(strcmp(tmp,"aus",true) == 0)
{
SendClientMessage(playerid,FARBE,"Dein Befehl ist jetzt aus");
}
Alles in einem sieht das dann so aus:
public OnPlayerCommandText(playerid,cmdtext[])
{
new tmp[256];
if(strcmp(cmdtext,"/befehl",true) == 0)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, FARBE, "BENUTZUNG: /befehl[an/aus]");
return 1;
}
if(strcmp(tmp,"an",true) == 0)
{
SendClientMessage(playerid,FARBE,"Dein Befehl ist jetzt an");
}
else if(strcmp(tmp,"aus",true) == 0)
{
SendClientMessage(playerid,FARBE,"Dein Befehl ist jetzt aus");
}
return 1;
}
return 0;
}
Falls kommt: Undefined Symbol strtok, machst du dann das hier ins Script:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Hei, Danke erstma
bei mir kommt dieser Error hier raus
C:\Users\Gta Server\Desktop\Neuer Ordner\SEHR WICHTIG\Selfmade\gamemodes\SelfMade-Fix.pwn(2135) : error 017: undefined symbol "idx"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
//EDIT; HABS HAT NUR new idx; gefehlt
Danke dir
Ich habe ein problem,...wenn ich dieses Befehl benutze kommt ingame
Server Unknown Command..
if(strcmp(cmdtext,"/base",true) == 0)
{
new LeaderName[MAX_PLAYER_NAME],idx;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_GREY,"FEHLER: /base [auf/zu]");
return 1;
}
if(strcmp(tmp,"auf",true) == 0)
{
GetPlayerName(playerid,LeaderName,sizeof(LeaderName));
if(SpielerInFraktion(playerid,16))
{
if(SpielerInfo[playerid][pRank] == 6)
{
if(BIKEREINGANGAUF == 1)
{
if(IsPlayerInRangeOfPoint(playerid,3,681.6220,-473.3460,16.5363))
{
format(string,sizeof string,"Fraktionsleader: %s hat die Eingangstür aufgeschlossen.",LeaderName);
SendClientMessage(playerid,COLOR_SPECIALBLUE,string);
BIKEREINGANGZU = 1;
}
else return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht an dem Eingang, deiner Fraktion");
}
else return SendClientMessage(playerid,COLOR_GREY,"Deine Base ist bereits aufgeschlossen.");
}
else return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht den benötigten Rank dafür.");
}
else return SendClientMessage(playerid,COLOR_GREY,"Du darfst dieses Befehl nicht benutzen.");
}
else if(strcmp(tmp,"zu",true) == 0)
{
if(SpielerInFraktion(playerid,16))
{
if(SpielerInfo[playerid][pRank] == 6)
{
if(BIKEREINGANGZU == 1)
{
if(IsPlayerInRangeOfPoint(playerid,3,681.6220,-473.3460,16.5363))
{
format(string,sizeof string,"Fraktionsleader: %s hat die Eingangstür aufgeschlossen.",LeaderName);
SendClientMessage(playerid,COLOR_SPECIALBLUE,string);
BIKEREINGANGAUF = 1;
}
else return SendClientMessage(playerid,COLOR_GREY,"Du bist nicht an dem Eingang, deiner Fraktion");
}
else return SendClientMessage(playerid,COLOR_GREY,"Deine Base ist bereits abgeschlossen.");
}
else return SendClientMessage(playerid,COLOR_GREY,"Du hast nicht den benötigten Rank dafür.");
}
else return SendClientMessage(playerid,COLOR_GREY,"Du darfst dieses Befehl nicht benutzen.");
}
return 1;
}