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:
#Edit: Funktioniert das eventuell allgemein gar nicht, weil es bei anderen auch nicht geht? (Muss ich nun zu Variablen umsteigen?)