SetPlayerTeam -> GetPlayerTeam

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
  • Guten Abend,
    ich habe ein kleines Problem.
    Bin grade dabei eine TDM-Arena zu schreiben, nur ist das Problem, wenn jemand in der Arena stirbt, dass er am Login/Registerspawn gespawnt wird, was ich eigentlich nicht wollte.


    Wie folgt sieht es aus:


    Befehl:
    ocmd:teamdm(playerid,params[])
    {
    if(TDM[playerid]>=1 && DM1[playerid]>=1 && DM2[playerid]>=1 && DM3[playerid]>=1 && DM4[playerid]>=1)return SendClientMessage(playerid,Grau,"Du bist bereits in einer Arena.");
    new string[64];
    format(string,sizeof(string),"Team Blau: (%d Spieler)\nTeam Rot: (%d Spieler)",TDMBLAU,TDMROT);
    ShowPlayerDialog(playerid,DIALOG_TDM,DIALOG_STYLE_LIST,"» Team-Deathmatch {FFFFFF}• {007B54}Unlimited DM",string,"Auswählen","Abbrechen");
    return 1;
    }


    public OnDialogResponse:
    ...
    else if(dialogid==18)
    {
    if(response)
    {
    if(listitem==0)
    {
    if(TDMBLAU>TDMROT)
    {
    new string[64];
    format(string,sizeof(string),"Team Blau: (%d Spieler)\nTeam Rot: (%d Spieler)",TDMBLAU,TDMROT);
    ShowPlayerDialog(playerid,DIALOG_TDM,DIALOG_STYLE_LIST,"Team-Deathmatch",string,"Auswählen","Abbrechen");
    SendClientMessage(playerid,Grau,"Team Blau ist überfüllt, gehe bitte ins rote Team.");
    return 1;
    }
    else
    {
    SetPlayerTeam(playerid,1);
    TDMBLAU++;
    TDM[playerid]=1;
    DM1[playerid]=2;
    DM2[playerid]=2;
    DM3[playerid]=2;
    DM4[playerid]=2;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,-971.5698,1067.3772,1345.0168);
    SetPlayerFacingAngle(playerid,86.8408);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,31,99999);
    SetPlayerColor(playerid,Blau);
    new string1[128];
    format(string1,sizeof(string1),"%s hat Team-Deathmatch betreten.",SpielerName(playerid));
    SendClientMessageToAll(Orange,string1);
    TextDrawShowForPlayer(playerid,Text:Textdraw12);
    return 1;
    }
    }
    if(listitem==1)
    {
    if(TDMROT>TDMBLAU)
    {
    new string[64];
    format(string,sizeof(string),"Team Blau: (%d Spieler)\nTeam Rot: (%d Spieler)",TDMBLAU,TDMROT);
    ShowPlayerDialog(playerid,DIALOG_TDM,DIALOG_STYLE_LIST,"Team-Deathmatch",string,"Auswählen","Abbrechen");
    SendClientMessage(playerid,Grau,"Team Rot ist überfüllt, gehe bitte ins blaue Team.");
    }
    else
    {
    SetPlayerTeam(playerid,2);
    TDMROT++;
    TDM[playerid]=1;
    DM1[playerid]=2;
    DM2[playerid]=2;
    DM3[playerid]=2;
    DM4[playerid]=2;
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,-1134.0437,1052.0115,1345.7622);
    SetPlayerFacingAngle(playerid,267.9492);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,31,99999);
    SetPlayerColor(playerid,Rot);
    new string1[128];
    format(string1,sizeof(string1),"%s hat Team-Deathmatch betreten.",SpielerName(playerid));
    SendClientMessageToAll(Orange,string1);
    TextDrawShowForPlayer(playerid,Text:Textdraw12);
    }
    }
    }
    }
    return 1;


    public OnPlayerSpawn:
    ...
    else if(TDM[playerid]==1 && DM1[playerid]==2 && DM2[playerid]==2 && DM3[playerid]==2 && DM4[playerid]==2)
    {
    if(GetPlayerTeam(playerid)==1)
    {
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,-971.5698,1067.3772,1345.0168);
    SetPlayerFacingAngle(playerid,86.8408);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,31,99999);
    return 1;
    }
    else if(GetPlayerTeam(playerid)==2)
    {
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,-1134.0437,1052.0115,1345.7622);
    SetPlayerFacingAngle(playerid,267.9492);
    SetCameraBehindPlayer(playerid);
    GivePlayerWeapon(playerid,24,99999);
    GivePlayerWeapon(playerid,25,99999);
    GivePlayerWeapon(playerid,31,99999);
    return 1;
    }
    }


    In den Serverlogs wird folgendes ausgegeben:

    Code
    [death] Spielername died 255


    #Edit: Funktioniert das eventuell allgemein gar nicht, weil es bei anderen auch nicht geht? (Muss ich nun zu Variablen umsteigen?)

  • 1. Frage. Warum soviel dm variablen? 2. Vor else if return t man nicht. Schau ob uber deinem 1. Else if returnt wird und nimm es ebebfals bei getplayerteam raus..printe dir einfach einzelne stellen aus und schau wo es stockt


    E1

    KleineHilfe 2.0

  • 1. Frage. Warum soviel dm variablen?

    Damit ich nicht in die anderen Arenen kann, während ich in einer bin. (Oder geht das viel simpler?)


    2. Vor else if return t man nicht. Schau ob uber deinem 1. Else if returnt wird und nimm es ebebfals bei getplayerteam raus..printe dir einfach einzelne stellen aus und schau wo es stockt

    Wie meinst du das genau?

  • Versteh ich irgendwie nicht.
    Wenn du damit andere Arenen blocken möchtest dann setz doch einfach eine Variable. In jeder Arena +1 Vari = 1 , = 2 usw. Und dann bei Exit fragst du ab ob Vari != 0 ist .

    KleineHilfe 2.0

  • Versteh ich irgendwie nicht.
    Wenn du damit andere Arenen blocken möchtest dann setz doch einfach eine Variable. In jeder Arena +1 Vari = 1 , = 2 usw. Und dann bei Exit fragst du ab ob Vari != 0 ist .

    Nehme ich mir zu Herzen.
    Wie sieht es mit dem "eigentlichen" Problem aus?
    Habe nicht ganz verstanden, was du mir mit...

    2. Vor else if return t man nicht. Schau ob uber deinem 1. Else if returnt wird und nimm es ebebfals bei getplayerteam raus..printe dir einfach einzelne stellen aus und schau wo es stockt

    ...mitteilen wolltest.