Heyho Breadfish Member,
ich habe das Problem das ich bei meinem kleinen Arenen System eine "Fehlfunktion" habe.
Nämlich habe ich die Commands /dm und /deagle womit man jeweils 2 verschieden Arenen betritt. Mit /exit soll mal beide Arenen verlassen können.
Jetzt bekomme ich aber das Problem wenn ich /dm eingebe: Komme ich ganz normal in die Arena und mir wird auch normal alles zugewiesen, wenn ich jetzt aber /exit eingebe sagt er ich bin in keiner Arena obwohl ich den Spieler im Script auf DMArena1 = 1 gesetzt habe. Wenn ich dann in der /dm Arena /deagle eingebe funktioniert das obwohl das nicht passieren soll.
So, wenn ich in keiner Arena bin und /deagle eingeben werde ich ganz normal in die Arena gesetzt mir wird alles gegeben und ich kann auch nicht /dm oder /deagle mehr eingeben. Denn dann kommt die Nachricht: "Du bist bereits in einer Arena, benutze /exit um sie zu verlassen." Das funktioniert alles nur bei /dm nicht aber warum? Ich hoffe ihr könnt mir helfen. Vllt. könnt ihr mir auch ein paar Vorschläge machen um es ein bisschen übersichtlicher zu machen.
/Dm Befehl:
ocmd:dm(playerid,params[])
{
if(DMArena1[playerid] == 0)
{
DMArena1[playerid] = 1; // Die DM Arena 1 zugewiesen
SetPlayerInterior(playerid, 10); // Interrior zu 10 gesetzt
SetPlayerPos(playerid, -1079.99, 1061.58, 1343.04); // Position gesetzt
GameTextForPlayer(playerid, "Nutze /exit zum verlassen!", 3000, 4); // a little game text to tell him how to exit if he's bored from the arena.
SendClientMessage(playerid, Dunkelgruen, "Willkommen in der Deatmatch Arena!"); // Welcoming him to the arena..
ResetPlayerWeapons(playerid); // Waffen entfernt
GivePlayerWeapon(playerid, 26, 750);
GivePlayerWeapon(playerid, 28, 750);
GivePlayerWeapon(playerid, 24, 750);
GivePlayerWeapon(playerid, 34, 750);
return 1;
}
else if(DGArena[playerid] == 1)
{
SendClientMessage(playerid,Rot,"Du bist bereits in einer Arena, nutze /exit zum verlassen der Arena!");
return 1;
}
else if(DMArena1[playerid] == 1)
{
SendClientMessage(playerid,Rot,"Du bist bereits in einer Arena, nutze /exit zum verlassen der Arena!");
return 1;
}
return 0;
}
/Deagle Befehl:
ocmd:deagle(playerid,params[])
{
if(DGArena[playerid] == 0)
{
DGArena[playerid] = 1;// Die Arena wurde zu 1 gesetzt
SetPlayerInterior(playerid,10);
SetPlayerPos(playerid,-1079.99, 1061.58, 1343.04);
SetPlayerVirtualWorld(playerid,1);
GameTextForPlayer(playerid, "Nutze /exit zum verlassen!", 3000, 4); // a little game text to tell him how to exit if he's bored from the arena.
SendClientMessage(playerid, Dunkelgruen, "Willkommen in der Deagle Arena!"); // Welcoming him to the arena..
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,24,750);
return 1;
}
else if(DMArena1[playerid] == 1)
{
SendClientMessage(playerid,Rot,"Du bist bereits in einer Arena, nutze /exit zum verlassen der Arena!");
return 1;
}
else if(DGArena[playerid] == 1)
{
SendClientMessage(playerid,Rot,"Du bist bereits in einer Arena, nutze /exit zum verlassen der Arena!");
return 1;
}
return 0;
}
und der /exit befehl:
ocmd:exit(playerid,params[])
{
if(DGArena[playerid] == 1)
{
DGArena[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,Dunkelgruen,"Du hast die Deagle Arena verlassen.");
new string[64], sName[MAX_PLAYER_NAME];
GetPlayerName(playerid,sName,MAX_PLAYER_NAME);
format(string,sizeof string,"[Arenen]: %s hat die Deagle Arena verlassen.",sName);
SendClientMessageToAll(Grau,string);
return 1;
}
else if(DGArena[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Du bist in keiner Arena.");
return 1;
}
else if(DMArena1[playerid] == 1)
{
DMArena1[playerid] = 0;
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SpawnPlayer(playerid);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid,Dunkelgruen,"Du hast die Deathmatch Arena verlassen.");
new string[64], sName[MAX_PLAYER_NAME];
GetPlayerName(playerid,sName,MAX_PLAYER_NAME);
format(string,sizeof string,"[Arenen]: %s hat die Deathmatch Arena 1 verlassen.",sName);
SendClientMessageToAll(Grau,string);
return 1;
}
else if (DMArena1[playerid] == 0)
{
SendClientMessage(playerid,Rot,"Du bist in keiner Arena.");
return 1;
}
return 0;
}
//Edit:
Wenn ich bereits in der Dm Arena bin und wieder /dm eingebe sagt er aber "Du bist bereits in einer Arena, nutze /exit zum verlassen!"