Arena Fehler

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
  • 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!"