| Problem - Tod nach Spawn |

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
  • Sehr geehrte Community,
    Ich habe das Problem, wenn ich auf dem Server das erste mal Connecte bin ich Tod. :(


    Dies steht bei OnPlayerConnect:



    SetPlayerHealth(playerid, 100);
    pIstTot[playerid] = 0;
    PlayerInfo[playerid][pTod] = 0;


    Muss ich dies auch bei OnPlayerRegister bzw. bei OnPlayerLogin einfügen?


    Mit freundlichen Grüßen,
    James.

  • Bei OnPlayerSpawn.


    ich habe aber bei onplayerspawn, dies:


    if(PlayerInfo[playerid][pTod] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ | Krankenhaus | ________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sie sind für 2 bis 3 Minuten im Krankenhaus.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "In 2 bis 3 Minuten kommen Sie wieder raus, da Sie gearde behandelt werden.");
    SetPlayerPos(playerid,957.6639,1733.9774,9.0391);
    TogglePlayerControllable(playerid,0);
    SetPlayerColor(playerid, COLOR_ZIVI);
    ResetPlayerWeapons(playerid);
    return 1;
    }


    Wie soll ich das hinzufügen?







    MfG
    James.

  • Dann setz es dort hin, wo der Spieler geladen wird.


    Juhu hat funktioniert :)


    Ich habe nun nur noch das Problem, wenn ich jemanden wiederbelebe bzw. jemand im krankenhaus ist, hat er seinen skin nicht mehr. Wie kann man dies machen?



    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwendung: /wiederbeleben [PlayerID]");
    return 1;
    }
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTod] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "» Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_WRED, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "» Paramedic %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, COLOR_WRED, string);
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i, 1);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    SetPlayerColor(i, COLOR_ZIVI);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast keine Berechtigung.");
    }
    }
    return 1;
    }



    und bei dem TOTTimer habe ich dies so gemacht:



    public TOTTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pTod] == 1)
    {
    pIstTot[i] += 1;
    }
    if(PlayerInfo[i][pTod] == 1 && pIstTot[i] == 3)//die 8 ändern in die anzahl der minuten die ihr im KH sein wollt
    {
    new model = PlayerInfo[i][pChar];
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerVirtualWorld(i,0);
    SetPlayerSpawn(i);
    SpawnPlayer(i);
    SendClientMessage(i, COLOR_LIGHTGREEN, "Du bist nun aus dem Krankenhaus entlassen!");
    SetPlayerPos(i,957.6639,1733.9774,9.0391);
    PlayerInfo[i][pModel] = model; //<----------------- geht aber nicht, skin wird nicht bebehalten
    TogglePlayerControllable(i,1);
    DestroyPickup(TotenKopf[i]);
    }
    }
    }
    }




    Ich bitte mal wieder um Hilfe :/




    MfG
    James.

  • Das mit dem Skin geht eigentlich recht easy.
    Sobald der Spieler stirbt, speicherst du den Skin in ein PVar.
    Das würde so aussehen:
    SetPVarInt(playerid,"tot_Skin",GetPlayerSkin(playerid);


    Achte aber darauf das du erst den skin speicherst bevor er den Krankenhaus skin bekommt.
    Sobald er dann vom Krankenhaus draußen ist, machst du dass einfach so:
    SetPlayerSkin(playerid,GetPVarInt(playerid,"tot_Skin");


    Müsste so gehen.

  • SetPVarInt(playerid,"tot_Skin",GetPlayerSkin(playerid);


    Wo müsste ich dies einfügen?


    Hier?

    if(PlayerInfo[playerid][pTod] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ | Krankenhaus | ________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sie sind für 2 bis 3 Minuten im Krankenhaus.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "In 2 bis 3 Minuten kommen Sie wieder raus, da Sie gearde behandelt werden.");
    SetPlayerPos(playerid,957.6639,1733.9774,9.0391);
    TogglePlayerControllable(playerid,0);
    SetPlayerColor(playerid, COLOR_ZIVI);
    ResetPlayerWeapons(playerid);
    return 1;
    }


    Hier?

    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwendung: /wiederbeleben [PlayerID]");
    return 1;
    }
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTod] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "» Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_WRED, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "» Paramedic %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, COLOR_WRED, string);
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i, 1);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    SetPlayerColor(i, COLOR_ZIVI);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast keine Berechtigung.");
    }
    }
    return 1;
    }


    und dies habe ich schon bei TOTTimer eingefügt,



    public TOTTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pTod] == 1)
    {
    pIstTot[i] += 1;
    }
    if(PlayerInfo[i][pTod] == 1 && pIstTot[i] == 3)//die 8 ändern in die anzahl der minuten die ihr im KH sein wollt
    {
    new model = PlayerInfo[i][pChar];
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerVirtualWorld(i,0);
    SetPlayerSpawn(i);
    SpawnPlayer(i);
    SendClientMessage(i, COLOR_LIGHTGREEN, "Du bist nun aus dem Krankenhaus entlassen!");
    SetPlayerPos(i,957.6639,1733.9774,9.0391);
    SetPlayerSkin(playerid,GetPVarInt(playerid,"tot_Skin"); // <---
    TogglePlayerControllable(i,1);
    DestroyPickup(TotenKopf[i]);
    }
    }
    }
    }

  • Speicher es sobald diese Nachricht kommt.
    Hier:
    if(PlayerInfo[playerid][pTod] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ | Krankenhaus | ________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sie sind für 2 bis 3 Minuten im Krankenhaus.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "In 2 bis 3 Minuten kommen Sie wieder raus, da Sie gearde behandelt werden.");
    SetPlayerPos(playerid,957.6639,1733.9774,9.0391);
    TogglePlayerControllable(playerid,0);
    SetPlayerColor(playerid, COLOR_ZIVI);
    ResetPlayerWeapons(playerid);
    return 1;
    }

  • Speicher es sobald diese Nachricht kommt.


    Alos muss ich dies auch hier hinmachen:



    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Verwendung: /wiederbeleben [PlayerID]");
    return 1;
    }
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTod] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "» Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_WRED, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "» Paramedic %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, COLOR_WRED, string);
    PlayerInfo[i][pTod] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i, 1);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    SetPlayerColor(i, COLOR_ZIVI);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast keine Berechtigung.");
    }
    }
    return 1;
    }