public OnPlayerSpawn(playerid)
{
if(!isPlayerInFrakt(playerid,0) && sInfo[playerid][spawnchange]==1)
{
new fID;
fID = sInfo[playerid][fraktion];
SetPlayerInterior(playerid,fInfo[fID][f_interior]);
}
else if(isPlayerInFrakt(playerid,0) || sInfo[playerid][spawnchange]==0)
{
SetPlayerInterior(playerid,0);
}
else if(sInfo[playerid][spawnchange]==2)
{
for(new i=0; i<sizeof(hInfo); i++)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(!hInfo[i][h_id])continue;
if(!strlen(hInfo[i][h_besitzer]))continue;
if(strcmp(hInfo[i][h_besitzer],name,true))continue;
SetPlayerInterior(playerid,hInfo[i][h_interior]);
SetPlayerVirtualWorld(playerid,i);
}
}
return 1;
}
ocmd:spawn(playerid,params[])
{
new pID, text[2][60];
new sendename[MAX_PLAYER_NAME];
new empfangname[MAX_PLAYER_NAME];
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, ROT, "Du bist kein Admin oder dein Rang ist zu niedrig!");
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Befehl: /spawn [ID]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Der Spieler ist nicht online!");
GetPlayerName(playerid, sendename, MAX_PLAYER_NAME);
GetPlayerName(pID, empfangname, MAX_PLAYER_NAME);
format(text[0], sizeof(text[]), "%s hat dich gespawnt!",sendename);
format(text[1], sizeof(text[]), "Du hast %s gespawnt!",empfangname);
SendClientMessage(pID,GOLD,text[0]);
SendClientMessage(playerid,GOLD,text[1]);
//PLAYERSPAWNORT
if(!isPlayerInFrakt(pID,0) && sInfo[pID][spawnchange]==1)
{
new fID;
fID = sInfo[pID][fraktion];
SetSpawnInfo(pID,0,sInfo[pID][skinid],fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z],fInfo[fID][f_r],0,0,0,0,0,0);
}
else if(isPlayerInFrakt(playerid,0) || sInfo[playerid][spawnchange]==0)
{
SetSpawnInfo(playerid,0,sInfo[playerid][skinid], fInfo[0][f_x],fInfo[0][f_y],fInfo[0][f_z],fInfo[0][f_r], 0, 0, 0, 0, 0, 0);
}
else if(sInfo[playerid][spawnchange]==2)
{
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_id])continue;
if(!strlen(hInfo[i][h_besitzer]))continue;
if(strcmp(hInfo[i][h_besitzer],sendename,true))continue;
SetSpawnInfo(playerid,0,sInfo[playerid][skinid], hInfo[i][h_ix],hInfo[i][h_iy],hInfo[i][h_iz],0.0, 0, 0, 0, 0, 0, 0);
}
}
SpawnPlayer(pID);
return 1;
}
Jetzt ist das Problem, dass er manchmal durch das Haus durchfällt, da der Spieler ja kurz bevor ich den Interior bei OnPlayerSpawn setze spawnt.
Und wenn ich jetzt dass SetSpawnInfo lasse und alles bei OnPlayerSpawn mache hatte ich das Problem, dass es mir immer kurz den Himmel bzw. einen anderen Ort anzeigt bevor ich spawne. Natürlich nur sehr kurz, aber das nervt^^