Spawnproblem

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
  • Beitrag von IceWave ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • ja SetSpawnInfo und dann beim Login z.b.TogglePlayerSpectating(playerid, 0);


    Und bei dem Befehl spawn eben spawn(playerid);


    Ist das wirklich Alles was bei OnPlayerSpawn steht ? Kannst du nicht bitte einfach den Code von SpawnInfo und OnPlayerSpawn etc. schicken ?
    Ansonsten kann man nur sehr schwer helfen.

  • 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^^