/wiederbeleben belebt sich selber wieder?

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
  • Hallo,


    Unszwar bei diesen wiederbeleb befehl wenn jetzt jemand gestorben ist & er /wiederbeleben macht belebt er sich irgentwie selber wieder.


    Code:



    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTot] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    OnePlayAnim(playerid,"MEDIC","CPR",4.0,0,0,0,0,0);
    SendClientMessage(playerid, COLOR_GREEN, "Du fängst jetzt mit der Reanimierung an!");
    // new string[99];
    new pname[20];
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "Du hast %s wiederbelebt.",pname);
    SendClientMessage(playerid, COLOR_GREEN, string);
    GetPlayerName(playerid, pname, 256);
    SetPlayerWorldBounds(playerid, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
    format(string, 256, "Arzt %s hat dich wiederbelebt (100$-)",pname);
    SendClientMessage(playerid, COLOR_WHITE, string);
    PlayerInfo[playerid][pTot] = 0;
    pIstTot[playerid] = 0;
    SetPlayerPos(playerid,PlayerInfo[playerid][pTx],PlayerInfo[playerid][pTy],PlayerInfo[playerid][pTz]);
    SetCameraBehindPlayer(playerid);
    DestroyPickup(TotenKopf[playerid]);
    SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    GivePlayerMoney(playerid, -100);
    GivePlayerMoney(playerid, 100);
    PlayerInfo[playerid][pTx] = 0.0;
    PlayerInfo[playerid][pTy] = 0.0;
    PlayerInfo[playerid][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(playerid,tempheal);
    SetPlayerHealth(playerid,50.0);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Medic!");
    }
    }
    return 1;
    }

  • Du musst abfragen ist der Spieler Admin?
    Wen ja dann soll die playerid die pID wiederbeleben!
    Wen nein dann soll ne SendClientMessage kommt mit der Antwort du kannst nich wiederbeleben.
    Was auch wichtig ist du musst mit playerid und pID arbeiten!
    playerid heißt so viel wie du selber
    pID heißt so viel wie ein Spieler bzw. die Id des Spielers.

  • Oben fragst du nach deiner Schleife ab, ob Spieler >>>i<<< tot ist und arbeitest dann unten mit playerid weiter.
    Ist doch klar dass wenn du z.B. Spieler playerid Geld abziehst und dann playerid wieder Geld gibst, dass es keinen Sinn ergibt.



    Genauso gibst du dem Spieler playerid (also der Arzt) die Nachricht "Arzt .. hat dich wiederbelebt".


    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTot] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    OnePlayAnim(playerid,"MEDIC","CPR",4.0,0,0,0,0,0);
    SendClientMessage(playerid, COLOR_GREEN, "Du fängst jetzt mit der Reanimierung an!");
    // new string[99];
    new pname[20];
    GetPlayerName(i, pname, 256);
    format(string, 256, "Du hast %s wiederbelebt.",pname);
    SendClientMessage(playerid, COLOR_GREEN, string);
    SetPlayerWorldBounds(i, 20000.0000, -20000.0000, 20000.0000, -20000.0000);
    format(string, 256, "Arzt %s hat dich wiederbelebt (100$-)",pname);
    SendClientMessage(i, COLOR_WHITE, string);
    PlayerInfo[i][pTot] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[playerid][pTx],PlayerInfo[playerid][pTy],PlayerInfo[playerid][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    SetPlayerSkin(i, PlayerInfo[playerid][pChar]);
    SetPlayerVirtualWorld(i,0);
    TogglePlayerControllable(i,1);
    GivePlayerMoney(i, -100);
    GivePlayerMoney(playerid, 100);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    SetPlayerHealth(i,50.0);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Medic!");
    }
    }
    return 1;
    }


    So müsste es stimmen.