Als Leader gemacht --> gestorben --> Skin bleibt nicht?!?!?!

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
  • Hey Leute, ich hab ein sehr nerviges Problem. Wenn ich jemanden als Leader einer Fraktion mache, bekommt er ja einen Skin zugewiesen. Nach einem Tod, spawnt diese Person aber mit dem alten Skin wieder, ist aber immer noch Leader der Fraktion. Ich hab schon sehr vieles im SetPlayerSpawn und OnPlayerSpawn probiert, jedoch habe ich echt KEINE EINZIGE IDEE mehr !! ?(


    SetPlayerSpawn:
    public SetPlayerSpawn(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new rand;
    new house = PlayerInfo[playerid][pPhousekey];
    if(PlayerPaintballing[playerid] != 0)
    {
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 29, 999); //MP5
    GivePlayerWeapon(playerid, 31, 999); //Desert Eagle
    GivePlayerWeapon(playerid, 24, 999); //M4
    rand = random(sizeof(PaintballSpawns));
    SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
    return 1;
    }
    if(PlayerInfo[playerid][pJailed] == 1)
    {
    SetPlayerInterior(playerid, 6);
    SetPlayerPos(playerid,264.6288,77.5742,1001.0391);
    SendClientMessage(playerid, COLOR_LIGHTRED, "Unvollständige Gefängnisstrafe, zurück ins Gefängnis!");
    return 1;
    }
    if(PlayerInfo[playerid][pJailed] == 2)
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid,268.5777,1857.9351,9.8133);
    SetPlayerWorldBounds(playerid, 337.5694,101.5826,1940.9759,1798.7453); //285.3481,96.9720,1940.9755,1799.0811
    return 1;
    }
    if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
    {
    new string[256];
    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
    GivePlayerMoney(playerid, -cut);
    format(string, sizeof(string), "Arzt: Deine Untersuchung kostete €%d. Einen schönen Tag noch!", cut+100);
    SendClientMessage(playerid, TEAM_CYAN_COLOR, string);
    MedicBill[playerid] = 0;
    MedicTime[playerid] = 0;
    NeedMedicTime[playerid] = 0;
    PlayerInfo[playerid][pDeaths] += 1;
    SetPlayerHealth(playerid, 25.0);
    /*SetPlayerInterior(playerid, 5);
    rand = random(sizeof(gMedicSpawns));
    SetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, 270.0);
    TogglePlayerControllable(playerid, 0);
    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~y~You are recovering from your ~r~wounds~y~...", 35000, 3);
    MedicTime[playerid] = 1;
    if(PlayerInfo[playerid][pDonateRank] > 0)
    {
    NeedMedicTime[playerid] = 30;
    }
    else
    {
    NeedMedicTime[playerid] = 60;
    }
    PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
    return 1;*/
    }
    if(house != 255)
    {
    if(PlayerInfo[playerid][pSpawnchange]==1) //If 1, then you get to your house, else spawn somewhere else
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid,HouseInfo[house][hInt]);
    SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity],HouseInfo[house][hExitz]); // Warp the player
    PlayerInfo[playerid][pLocal] = house;
    PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
    return 1;
    }
    }
    if(house == 255 && PlayerInfo[playerid][pMember]==0 && PlayerInfo[playerid][pLeader]==0)
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1481.3719,-1766.7643,18.7958);
    SetPlayerFacingAngle(playerid, 356.9810);
    SetPlayerInterior(playerid, 0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pLeader] == 1)//Police Force spawn & FBI/ATF
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1530.0753,-1667.2504,6.2188);
    SetPlayerFacingAngle(playerid, 272.5623);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)//ARMY spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, -1346.2050,492.3983,11.2027);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)//Fire/Ambulance spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, -2656.0393,635.0596,14.4531);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)//LaCosaNostra spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 296.5807,-1157.2946,80.9099);
    PlayerInfo[playerid][pInt] = 0;
    if(PlayerInfo[playerid][pLeader] == 5)
    {
    SetPlayerSkin(playerid, 124);
    }
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)//Yakuza spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 1908.1816,736.5706,10.8198);
    SetPlayerFacingAngle(playerid, 219.7473);
    PlayerInfo[playerid][pInt] = 0;
    if(PlayerInfo[playerid][pLeader] == 6)
    {
    SetPlayerSkin(playerid, 120);
    }
    return 1;
    }
    if(PlayerInfo[playerid][pLeader] == 7)//Mayor spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 3);
    SetPlayerPos(playerid, 356.2998,151.9914,1025.7891);
    PlayerInfo[playerid][pInt] = 3;
    PlayerInfo[playerid][pLocal] = 241;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) //Hitman spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1102.7017,-299.0774,73.9922);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9) //News spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1669.3594,-1703.8938,15.6094);
    SetPlayerFacingAngle(playerid, 93.2321);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10) //Taxi Cab Company spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1282.3746,-1317.6866,13.3800);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(IsAFahrlehrer(playerid)) //Driving/Flying School spawn
    {
    if(SchoolSpawn[playerid] == 0)
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, -2032.6810,-117.4816,1035.1719);
    SetPlayerFacingAngle(playerid, 275.1114);
    SetPlayerInterior(playerid,3);
    PlayerInfo[playerid][pInt] = 3;
    }
    else if(SchoolSpawn[playerid] == 1)
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 414.4144,2531.9580,19.1565);
    SetPlayerFacingAngle(playerid, 4.6505);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    }
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)//ballas spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 1900.5358,-1117.2103,25.6641);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13)//ruff ryders spawn
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, -541.3298,-502.9346,25.5234);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(gTeam[playerid] == 1)
    {
    SetPlayerToTeamColor(playerid);
    rand = random(sizeof(gMedPlayerSpawns));
    SetPlayerPos(playerid, gMedPlayerSpawns[rand][0], gMedPlayerSpawns[rand][1], gMedPlayerSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, 270.0);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    return 1;
    }
    if(PlayerInfo[playerid][pFMember] != 255)
    {
    new family = PlayerInfo[playerid][pFMember];
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid, FamilyInfo[family][FamilyInterior]);
    SetPlayerPos(playerid, FamilyInfo[family][FamilySpawn][0],FamilyInfo[family][FamilySpawn][1],FamilyInfo[family][FamilySpawn][2]);
    SetPlayerFacingAngle(playerid, FamilyInfo[family][FamilySpawn][3]);
    return 1;
    }
    else
    {
    SetPlayerToTeamColor(playerid);
    if(PlayerInfo[playerid][pOrigin] == 1)//USA
    {
    SetPlayerPos(playerid,1481.1487,-1766.9633,18.7958);
    SetPlayerFacingAngle(playerid, 46.8583);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    }
    else if(PlayerInfo[playerid][pOrigin] == 2)//Europe
    {
    SetPlayerPos(playerid,1481.1487,-1766.9633,18.7958);
    SetPlayerFacingAngle(playerid, 262.9963);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    }
    else if(PlayerInfo[playerid][pOrigin] == 3)//Asia
    {
    SetPlayerPos(playerid,1481.1487,-1766.9633,18.7958);
    SetPlayerFacingAngle(playerid, 272.3543);
    SetPlayerInterior(playerid,0);
    PlayerInfo[playerid][pInt] = 0;
    }
    else
    {
    rand = random(sizeof(gRandomPlayerSpawns));
    SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, 270.0);
    SetPlayerInterior(playerid,15);
    PlayerInfo[playerid][pInt] = 15;
    }
    return 1;
    }
    }
    return 1;
    }


    Bestimmt habe ich ein paar Fehler in den Codes, nur sehe ich keinen einzigen, der das Problem mit dem Skin verursacht. Bin echt am verzweifeln, sitze schon 4 Tage drann :pinch: !!
    Ich hoffe ihr habt eine Lösung, bin nur noch auf diese angewiesen!


    Viele Grüße,


    Stylerboy

  • Da ist auch irgendwie nur 2 mal SetPlayerSkin drin. Habe lange nicht mehr mit Godfather gearbeitet.
    Aber zeig doch mal dein OnPlayerSpawn her aber dieses mal bitte mit

    Code
    [expander][/expander]

    .


    Falls er zulang ist kannste ihn bei pastebin.com hochladen ;).

    ...

  • Das hat ja dann nichts mit OnPlayerSpawn zu tun, sonder mit den Peds die du den Spielern zuteilst.
    Godfathers OnPlayerSpawn wird nur - wie der Name auch schon sagt - für den Spawn verwendest.
    Am besten du suchst mal nach Peds, die werden in einem anderen public den verschiedenen Fraktionen zugeteilt.

    [align=center]
    Mta Script Editor - Work in Progress

  • Ok, danke, werde ich mal abchecken. Ich meld mich, wenn ich was weiteres weiß. Danke Leute :)


    //Edit: Die Peds ( JoinPed ) werden den Membern nach einem /invite zugeteilt. Mein Problem bezieht sich aber auf die Leaderskins.


    Wenn ich /makeleader 0 5 (LCN) mache, ist die Person ersteinmal der LCN-Leader mit dem dazugehörigen Skin. Wenn er aber stirbt, spawnt er mit seinem alten Skin wieder, ist aber immernoch der Leader. Die " new Peds " sind bei mir alle richtig gesetzt.


    Da das Problem früher nie auftrat, habe ich das Gefühl, dass ich bei den Spawns etwas gescriptet haben könnte, dass sich widerspricht. Da mir außer OnPlayerSpawn und SetPlayerSpawn nichts mehr einfällt, was damit annähernd noch zu tun haben könnte, weiß ich auch nicht wo ich suchen sollte.


    //Edit: Ich habe gemerkt, dass das pChar und pModel richtig sind, wenn ich jemanden als Leader einstelle, aber "das Aussehen" an sich vom Spieler, nicht das ist, was ihm zugewiesen wurde. Ich habe immer gedacht, dass man jemandem mit pChar bzw. pModel eine SkinID zuweist, aber jetzt kapiere ich nichts mehr ^^. Kann mir das einer erklären?

    2 Mal editiert, zuletzt von Stylerboy ()

  • Soweit ich weiß, ist hier eig alles


    Ihr könnt euch das ja angucken:
    if(strcmp(cmd, "/makeleader", true) == 0 || strcmp(cmd, "/ml", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Befehl: /makeleader [playerID/playerName] [Number(1-13)]");
    return 1;
    }
    new para1;
    new level;
    para1 = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    level = strval(tmp);
    if(level > 13 || level < 0) { SendClientMessage(playerid, COLOR_GREY, " Gehe nicht unter Nummer 1 oder über Nummer 13!"); return 1; }
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if(PlayerInfo[para1][pMember] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist schon Member einer Familie / Fraktion!");
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >= 4 && PlayerInfo[playerid][pAdmin] < 6 && para1 == playerid)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber als Leader einer Fraktion einstellen!");
    return 1;
    }
    if(PlayerInfo[para1][pAdmin] >= 1 && PlayerInfo[playerid][pAdmin] < 6)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du kannst keinen anderen Admin als Leader einer Fraktion einstellen!");
    return 1;
    }
    new ftext[256];
    new ptext[256];
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][pLeader] = level;
    if(level == 0) { ftext = "hat dich zu einem Zivilisten gemacht"; gTeam[para1] = 1; PlayerInfo[para1][pChar] = 101; PlayerInfo[para1][pModel] = 101; }
    else if(level == 1) { ftext = "hat dir die Leaderrechte gegeben, um die Polizei zu leiten"; gTeam[para1] = 2; PlayerInfo[para1][pChar] = 288; PlayerInfo[para1][pModel] = 288; } //Police Force
    else if(level == 2) { ftext = "hat dir die Leaderrechte gegeben, um das FBI zu leiten"; gTeam[para1] = 2; PlayerInfo[para1][pChar] = 286; PlayerInfo[para1][pModel] = 286; } //FBI/ATF
    else if(level == 3) { ftext = "hat dir die Leaderrechte gegeben, um die Army zu leiten"; gTeam[para1] = 2; PlayerInfo[para1][pChar] = 287; PlayerInfo[para1][pModel] = 287; } //ARMY
    else if(level == 4) { ftext = "hat dir die Leaderrechte gegeben, um das Krankenhaus zu leiten"; gTeam[para1] = 1; PlayerInfo[para1][pChar] = 228; PlayerInfo[para1][pModel] = 228; } //Fire/Ambulance
    else if(level == 5) { ftext = "hat dir die Leaderrechte gegeben, um die LCN zu leiten"; gTeam[para1] = 5; PlayerInfo[para1][pChar] = 124; PlayerInfo[para1][pModel] = 124; } //La Cosa Nostra
    else if(level == 6) { ftext = "hat dir die Leaderrechte gegeben, um die Yakuza zu leiten"; gTeam[para1] = 5; PlayerInfo[para1][pChar] = 120; PlayerInfo[para1][pModel] = 120; } //Yakuza
    else if(level == 7) { ftext = "hat dir die Leaderrechte gegeben, um als Bürgermeister zu leiten"; gTeam[para1] = 1; PlayerInfo[para1][pChar] = 147; PlayerInfo[para1][pModel] = 147; } //Mayor
    else if(level == 8) { ftext = "hat dir die Leaderrechte gegeben, um die Hitmans zu leiten"; gTeam[para1] = 10; PlayerInfo[para1][pChar] = 294; PlayerInfo[para1][pModel] = 294; } //Hitmans
    else if(level == 9) { ftext = "hat dir die Leaderrechte gegeben, um die News Reporter zu leiten"; gTeam[para1] = 12; PlayerInfo[para1][pChar] = 188; PlayerInfo[para1][pModel] = 188; } //News Reporters
    else if(level == 10) { ftext = "hat dir die Leaderrechte gegeben, um die Taxi Company zu leiten"; gTeam[para1] = 12; PlayerInfo[para1][pChar] = 61; PlayerInfo[para1][pModel] = 61; } //Taxi Cab Company
    else if(level == 11) { ftext = "hat dir die Leaderrechte gegeben, um die Fahrschule zu leiten"; gTeam[para1] = 12; PlayerInfo[para1][pChar] = 171; PlayerInfo[para1][pModel] = 171; } //Driving/Flying School
    else if(level == 12) { ftext = "hat dir die Leaderrechte gegeben, um die Ballas zu leiten"; gTeam[para1] = 13; PlayerInfo[para1][pChar] = 102; PlayerInfo[para1][pModel] = 102; } //Ballas
    else if(level == 13) { ftext = "hat dir die Leaderrechte gegeben, um die Ruff Ryders zu leiten"; gTeam[para1] = 13; PlayerInfo[para1][pChar] = 270; PlayerInfo[para1][pModel] = 270; } //Ruff Ryders
    if(level == 0) { ptext = "zu einem Zivilisten gemacht"; }
    else if(level == 1) { ptext = "die Leaderrechte gegeben, um die Polizei leiten zu können"; }
    else if(level == 2) { ptext = "die Leaderrechte gegeben, um das FBI leiten zu können"; }
    else if(level == 3) { ptext = "die Leaderrechte gegeben, um die Army leiten zu können"; }
    else if(level == 4) { ptext = "die Leaderrechte gegeben, um das Krankenhaus leiten zu können"; }
    else if(level == 5) { ptext = "die Leaderrechte gegeben, um die LCN leiten zu können"; }
    else if(level == 6) { ptext = "die Leaderrechte gegeben, um die Yakuza leiten zu können"; }
    else if(level == 7) { ptext = "die Leaderrechte gegeben, um als Bürgermeister leiten zu können"; }
    else if(level == 8) { ptext = "die Leaderrechte gegeben, um die Hitmans leiten zu können"; }
    else if(level == 9) { ptext = "die Leaderrechte gegeben, um News Reporter leiten zu können"; }
    else if(level == 10) { ptext = "die Leaderrechte gegeben, um Taxi Company leiten zu können"; }
    else if(level == 11) { ptext = "die Leaderrechte gegeben, um die Fahrschule leiten zu können"; }
    else if(level == 12) { ptext = "die Leaderrechte gegeben, um die Ballas leiten zu können"; }
    else if(level == 13) { ptext = "die Leaderrechte gegeben, um die Ruff Ryders leiten zu können"; }
    format(string, sizeof(string), " Admin %s %s.", sendername, ftext);
    SendClientMessage(para1, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), " Du hast %s %s.", giveplayer, ptext);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[para1][pTeam] = gTeam[para1];
    SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
    OnPlayerUpdate(para1);
    }
    }//not connected
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht befugt, diesen Befehl zu nutzen!");
    }
    }
    return 1;
    }

  • Naja Thread kann geschlossen werden, habe das Problem umgangen.


    Für alle, die das gleiche Problem haben und nicht wissen wie sie es beheben können, habe ich einen Vorschlag um dieses zu umgehen. Dafür ändert man den /makeleader Befehl ein bisschen.


    Man setzt diese Teile unter " SetPlayerSkin(para1, PlayerInfo[para1][pChar]); " im /makeleader Befehl :
    OnPlayerUpdate(para1);
    gPlayerLogged[para1] = 0;
    SendClientMessage(para1, COLOR_YELLOW, "Du wurdest automatisch ausgeloggt, logge dich bitte mit /login [Passwort] ein!");
    TogglePlayerControllable(para1, 0);
    Wenn sich der Spieler dann einloggt, bekommt er den richtigen Skin zugewiesen. ;)


    Viele Grüße,


    Stylerboy