Ich möchte das wenn man in der Deathmatch Arena ist das alle Commands außer /exit gesperrt werden wie mach ich das ?
Mfg AlmaN
[Noch nicht gelöst] Commands Sperren
- [TGS]AlmaN
- 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
-
-
Du fragst mit einer Variable ab ob er in Der Area ist bei jedem Command wenn ja dann kann er es nicht machen wenn nein dann ja
new InArena[MAX_PLAYERS];
InArena[playerid] = 1; //Arena Eintritt
InArena[playerid] = 0; //Arena AustrittIf(InArena[playerid] == XX)
If(InArena[playerid] == 1)
{
SendClientMessage(playerid,DEINEFARBE,"Hier gehen keine Commands ausser /exit");
return 1;
} -
also muss ich bei jedem command eine abfrage erstellen ?
-
Richtig.
-
ganz oben in OnPlayerCommandText
if(InArena[playerid] == 1 && strcmp(cmd, "/exit", false) == 0) return SendClientMessage(playerid,-1,"Du kannst in der Arena keine Befehle verwenden, außer /exit");
@Quini
Quatsch -
Ok mein fehler ich verwende Dcmd daher bin davon ausgegangen das man es so machen muss.
-
Ok mein fehler ich verwende Dcmd daher bin davon ausgegangen das man es so machen muss.
Wenn die dcmd nach den strcmp Funktionen, oder gar extra aufgerufen werden, dann geht meins natürlich nicht
dafür wird es aber auch eine simple Lösung geben -
if(InArena[playerid] == 1 && strcmp(cmd, "/exit", false) == 0) return SendClientMessage(playerid,-1,"Du kannst in der Arena keine Befehle verwenden, außer /exit");
was meinst du mit cmd bei /exit -
Eig. nicht man könnte es noch anders machen bei onplayercommandtext einfach eine abfrage machen ob er in arenen ist so ungefähr
public OnPlayerCommandText(playerid, cmdtext[])
{
if(arena[playerid] != 1)
{
if(strcmp("/help",cmdtext,true)==0)
{
}
u.s.w
}
return 0;
}
hoffe du kannst es nachvollziehen -
Du sagtest alle Befehle außer /exit,
daher die Abfrage ob nicht der Befehl /exit eingegeben wurde -
public OnPlayerCommandText(playerid, cmdtext[])
{
if(InArena[playerid] == 1 && strcmp("/exit", cmdtext , false) == 0) return SendClientMessage(playerid,-1,"Du kannst in der Arena keine Befehle verwenden, außer /exit");
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
InArena[playerid] = 1; //Arena Eintritt
new rand = random(sizeof(RandomSpawn));
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,99999);
GivePlayerWeapon(playerid,31,99999);
GivePlayerWeapon(playerid,16,5);
GivePlayerWeapon(playerid,34,100);
SetPlayerArmour(playerid,100);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena betreten.");
minigun[playerid] = 1;
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
SetPlayerHealth(playerid,99.5);
return 1;
}
if(strcmp("/exit",cmdtext,true,15) == 0)
{
InArena[playerid] = 0; //Arena Austritt
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena verlassen.");
minigun[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
return 1;
}
return 0;
}ingame funktioniert es nicht :((
-
if(InArena[playerid] == 1 && strcmp(cmdtext ,"/exit", false)) return SendClientMessage(playerid,-1,"Du kannst in der Arena keine Befehle verwenden, außer /exit");probiers mal so
-
exit geht nicht
if(strcmp("/exit",cmdtext,true,15) == 0)
{
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena verlassen.");
minigun[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
InArena[playerid] = 0; //Arena Austritt
return 1;
} -
if(InArena[playerid] == 1 && strcmp("/exit",cmdtext,true,15) == 1)
evtl. so,
ansonsten steh ich grad voll aufm Schlauch -
vllt mal so?
public OnPlayerCommandText(playerid, cmdtext[])
{
if(InArena[playerid] == 1 && strcmp("/exit", cmdtext , true == 0)
{
}
else
{
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
InArena[playerid] = 1; //Arena Eintritt
new rand = random(sizeof(RandomSpawn));
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,99999);
GivePlayerWeapon(playerid,31,99999);
GivePlayerWeapon(playerid,16,5);
GivePlayerWeapon(playerid,34,100);
SetPlayerArmour(playerid,100);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena betreten.");
minigun[playerid] = 1;
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
SetPlayerHealth(playerid,99.5);
return 1;
}
if(strcmp("/exit",cmdtext,true,15) == 0)
{
InArena[playerid] = 0; //Arena Austritt
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena verlassen.");
minigun[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
return 1;
}
}
return 0;
} -
tut sich immer noch nix
-
da ist ein else drin aber kein problem H4rd_B4se xD
Alman versuche es jetzt habe ausversehen vergessen aus dem false ein true zu machen
if(InArena[playerid] == 1 && strcmp("/exit", cmdtext , [color=#ff6600]true[/color] == 0) da war ein false
-
geht immer noch nicht warum ?
if(InArena[playerid] == 1 && strcmp(cmdtext ,"/exit", false)) return SendClientMessage(playerid,-1,"Du kannst in der Arena keine Befehle verwenden, außer /exit");
if (strcmp("/dm", cmdtext, true, 10) == 0)
{
InArena[playerid] = 1; //Arena Eintritt
new rand = random(sizeof(RandomSpawn));
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,99999);
GivePlayerWeapon(playerid,31,99999);
GivePlayerWeapon(playerid,16,5);
GivePlayerWeapon(playerid,34,100);
SetPlayerArmour(playerid,100);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena betreten.");
minigun[playerid] = 1;
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
SetPlayerHealth(playerid,99.5);
return 1;
}
if(InArena[playerid] == 1 && strcmp("/exit", cmdtext ,true)== 0)
{
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,-1,"Du hast die Deathmatch Arena verlassen.");
minigun[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
InArena[playerid] = 0; //Arena Austritt
return 1;
} -
breadfish.de
Hat das Thema geschlossen.