Funktion klappt nicht ganz

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
  • Was ist daran falsch?
    Hey. Ich möchte, das wenn man in der /dm Arena ist, das man nicht sofort zu einer anderen Arena wechseln kann.
    Man sollte davor mit /exit die Arena verlassen. Hab das auch gemacht, klappt aber nicht.



    Beispiel mit /dm
    if(strcmp("/dm",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 0)
    {
    if(IstInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[ARENA] Der Spieler {FFFFFF}%s {8200FF}ist der DM-Arena {FFFFFF}[/DM] {8200FF}beigetreten.",SpielerName(playerid));
    SendClientMessageToAll(LILA,string);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    new rand=random(sizeof(DMSpawn));
    SetPlayerPos(playerid,DMSpawn[rand][0],DMSpawn[rand][1],DMSpawn[rand][2]);
    SetPlayerFacingAngle(playerid,DMSpawn[rand][3]);
    GivePlayerWeapon(playerid,24,2208);
    GivePlayerWeapon(playerid,25,2201);
    GivePlayerWeapon(playerid,34,2201);
    IstInArena[playerid] = 1;
    IstInDM[playerid] = 1;
    }
    }
    else if(IstInArena[playerid] == 1)
    {
    SendClientMessage(playerid,GRAU,"Du bist bereits in einer Arena!");
    return 1;
    }


    }



    Der /exit befehl
    if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 1;
    }
    else if(IstInArena[playerid] == 1)
    {
    SendClientMessage(playerid,GRAU,"Du bist schon in der /dm Arena!");
    return 1;
    }
    return 1;
    }


    Ich verlinke mal Jeffry: und Danny: :D

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr

  • Hey,



    Bei /exit fragst du ab ob er in keiner arena ist! ((== 0))
    Du musst ja ja abfragen ist er in einer arena also(( == 1)) wenn ja Soll dann der Rest ausgeführt werden mit Spawn und so und dann IstInArena[playerid] = 0;


    Und bei Anderen /deagle abfragen

    if(IstInArena[playerid] == 1)
    {
    //nachricht senden Das er in einer arena ist
    }
    //und hier falls der nicht ist, alles ausführen mit spawn und so weiter




  • Wie genau meinst es?
    Kannst mir den kompletten Absatz posten?^^

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr


  • if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 1;
    }
    else if(IstInArena[playerid] == 1)
    {
    SendClientMessage(playerid,GRAU,"Du bist schon in der /dm Arena!");
    return 1;
    }
    return 1;
    }
    Das ergibt irgendwie kein Sinn.
    if(IstInArena[playerid] == 0) Wenn er nicht in der Arena ist kann er sie verlassen
    else if(IstInArena[playerid] == 1) Wenn er in der Arena ist ist er schon in der Arena?
    Das ist ein bissl fail


    So sollte es sein:

    if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 0;
    }
    else if(IstInArena[playerid] == 0)
    {
    SendClientMessage(playerid,GRAU,"Du bist nicht in der Arena!");
    return 1;
    }
    return 1;
    }

    MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • Sry, bin irgendwie durcheinander, bin müde und joa.. .:D


    Ist das denn jetzt so richtig, wie du es gepostet hast?

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr

  • HIer so in etwa bin bisschen müde sry wegen meiner rechtschreibung :D


    [list=1][*][size=10]if(strcmp("/dm",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1)//Hier wird abgefragt ob er in einer arena ist wenn ja den text sicken und nich soll passieren.
    {
    //Hier musst du das einfach bei jeden befehl von den arenaers einfügen!
    SendClientMessage(playerid,GRAU,"Du bist bereits in einer Arena!");
    return 1;
    }
    //Hier wird direkt gefragt ob er in keiner arena ist wenn nciht soll das ausgefühlt werden.
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[ARENA] Der Spieler {FFFFFF}%s {8200FF}ist der DM-Arena {FFFFFF}[/DM] {8200FF}beigetreten.",SpielerName(playerid));
    SendClientMessageToAll(LILA,string);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    new rand=random(sizeof(DMSpawn));
    SetPlayerPos(playerid,DMSpawn[rand][0],DMSpawn[rand][1],DMSpawn[rand][2]);
    SetPlayerFacingAngle(playerid,DMSpawn[rand][3]);
    GivePlayerWeapon(playerid,24,2208);
    GivePlayerWeapon(playerid,25,2201);
    GivePlayerWeapon(playerid,34,2201);
    IstInArena[playerid] = 1;//Hier wird auf 1 gesätz damit wir bei /exit abfragen können ob er in einer arena ist.
    }


    if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1)//Hier wieder abfragen aber heir fragst du ihn ob er in einer ist also wenn ja soll alles ausgefuhlt werden.
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 0;//Da der spieler aus der arena geht soll auf 0 gesätzt werden da er ja in keiner arena ist!
    }
    else if(IstInArena[playerid] == 0)// wenn erin keiner ist einfach ein text z.b
    {
    SendClientMessage(playerid,GRAU,"Du bist in keiner Arena!");
    return 1;
    }
    return 1;
    }

    Mfg

  • MfG SkrilLinux


    Ich habe euch erfolgreich geholfen?
    -Dann wäre es nett wenn ihr 1x auf Bedanken klickt :)

  • if(strcmp("/dm",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 0)
    {
    if(IstInDM[playerid] == 0)
    {
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[ARENA] Der Spieler {FFFFFF}%s {8200FF}ist der DM-Arena {FFFFFF}[/DM] {8200FF}beigetreten.",SpielerName(playerid));
    SendClientMessageToAll(LILA,string);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    new rand=random(sizeof(DMSpawn));
    SetPlayerPos(playerid,DMSpawn[rand][0],DMSpawn[rand][1],DMSpawn[rand][2]);
    SetPlayerFacingAngle(playerid,DMSpawn[rand][3]);
    GivePlayerWeapon(playerid,24,2208);
    GivePlayerWeapon(playerid,25,2201);
    GivePlayerWeapon(playerid,34,2201);
    IstInArena[playerid] = 1;
    IstInDM[playerid] = 1;
    }
    }
    else if(IstInArena[playerid] == 1)
    {
    SendClientMessage(playerid,GRAU,"Du bist bereits in einer Arena!");
    return 1;
    }


    Was ist damit? Ist das hier denn richtig? ^^

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also. Sobald ich die DM Arena betrete und anschließend verlasse, erkennt das System mein /dm Befehl nicht mehr.
    Also nach /exit will ich wieder in die /DM arena, aber SERVER: Unbekannter Befehl.

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr

  • if(strcmp("/dm",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1) return SendClientMessage(playerid,GRAU,"Du bist bereits in einer Arena!");
    if(IstInDM[playerid] == 1) return SendClientMessage(playerid,GRAU,"Du bist bereits in einem DM!");
    new name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"[ARENA] Der Spieler {FFFFFF}%s {8200FF}ist der DM-Arena {FFFFFF}[/DM] {8200FF}beigetreten.",SpielerName(playerid));
    SendClientMessageToAll(LILA,string);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,10);
    new rand=random(sizeof(DMSpawn));
    SetPlayerPos(playerid,DMSpawn[rand][0],DMSpawn[rand][1],DMSpawn[rand][2]);
    SetPlayerFacingAngle(playerid,DMSpawn[rand][3]);
    GivePlayerWeapon(playerid,24,2208);
    GivePlayerWeapon(playerid,25,2201);
    GivePlayerWeapon(playerid,34,2201);
    IstInArena[playerid] = 1;
    IstInDM[playerid] = 1;
    return 1;
    }


    if(strcmp("/exit",cmdtext,true,10)==0)
    {
    if(IstInArena[playerid] == 1 || IstInDM[playerid] == 1)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerPos(playerid,-50.1974,-288.3651,5.4297);
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,GRAU,"Du hast die DM Arena verlassen.");
    SetPlayerColor(playerid,WEIß);
    IstInArena[playerid] = 0;
    IstInDM[playerid] = 0;
    }
    else
    {
    SendClientMessage(playerid,GRAU,"Du bist noch nicht in der /dm Arena!");
    return 1;
    }
    return 1;
    }


    Je nach dem wie das ganze System aussieht, muss man vielleicht noch die ein oder andere Änderung vornehmen.

  • Oh. Vergessen. Ist schon geklärt. Aber danke trotzdem euch. :)

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr