Injured moves = finished
#1

Hello guys. I have one problem with my server. When someone is injured and moves he gets directly sended to hospital, this means that LSFMD cant treat him before he gets auto-dead.

Here is my OnPlayerDeath code, can you see the problem?

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(IsPlayerConnected(killerid))
    {
        new hour,minute,second, weaponname[32];
        gettime(hour,minute,second);
        FixHour(hour);
        hour = shifthour;
        GetWeaponName(reason, weaponname, sizeof(weaponname));
        format(PlayerInfo[playerid][pKillLog9], 256, "%s", PlayerInfo[playerid][pKillLog8]);
        format(PlayerInfo[playerid][pKillLog8], 256, "%s", PlayerInfo[playerid][pKillLog7]);
        format(PlayerInfo[playerid][pKillLog7], 256, "%s", PlayerInfo[playerid][pKillLog6]);
        format(PlayerInfo[playerid][pKillLog6], 256, "%s", PlayerInfo[playerid][pKillLog5]);
        format(PlayerInfo[playerid][pKillLog5], 256, "%s", PlayerInfo[playerid][pKillLog4]);
        format(PlayerInfo[playerid][pKillLog4], 256, "%s", PlayerInfo[playerid][pKillLog3]);
        format(PlayerInfo[playerid][pKillLog3], 256, "%s", PlayerInfo[playerid][pKillLog2]);
        format(PlayerInfo[playerid][pKillLog2], 256, "%s", PlayerInfo[playerid][pKillLog1]);
        format(PlayerInfo[playerid][pKillLog1], 256, "%s", PlayerInfo[playerid][pKillLog0]);
        format(PlayerInfo[playerid][pKillLog0], 256, "(%d:%d:%d) %s killed me with %s", hour,minute,second,GetPlayerNameEx(killerid), weaponname);

        format(PlayerInfo[killerid][pKillLog9], 256, "%s", PlayerInfo[killerid][pKillLog8]);
        format(PlayerInfo[killerid][pKillLog8], 256, "%s", PlayerInfo[killerid][pKillLog7]);
        format(PlayerInfo[killerid][pKillLog7], 256, "%s", PlayerInfo[killerid][pKillLog6]);
        format(PlayerInfo[killerid][pKillLog6], 256, "%s", PlayerInfo[killerid][pKillLog5]);
        format(PlayerInfo[killerid][pKillLog5], 256, "%s", PlayerInfo[killerid][pKillLog4]);
        format(PlayerInfo[killerid][pKillLog4], 256, "%s", PlayerInfo[killerid][pKillLog3]);
        format(PlayerInfo[killerid][pKillLog3], 256, "%s", PlayerInfo[killerid][pKillLog2]);
        format(PlayerInfo[killerid][pKillLog2], 256, "%s", PlayerInfo[killerid][pKillLog1]);
        format(PlayerInfo[killerid][pKillLog1], 256, "%s", PlayerInfo[killerid][pKillLog0]);
        format(PlayerInfo[killerid][pKillLog0], 256, "(%d:%d:%d) Killed %s with %s", hour,minute,second,GetPlayerNameEx(playerid), weaponname);
        if(GetPVarInt(killerid, "IsInArena") == 0) PlayerInfo[killerid][pDMKills]++;
    }

    new string[128];
    pTazer[playerid] = 0;
    InsideShamal[playerid] = INVALID_VEHICLE_ID;
    DeletePVar(playerid, "SpeedRadar");
    DeletePVar(playerid, "UsingSprunk");
    KillTimer(GetPVarInt(playerid, "firstaid5"));
    DeletePVar(playerid, "usingfirstaid");
    if(GetPVarInt(playerid, "MovingStretcher") != -1)
    {
        KillTimer(GetPVarInt(playerid, "TickEMSMove"));
        DeletePVar(GetPVarInt(playerid, "MovingStretcher"), "OnStretcher");
        SetPVarInt(playerid, "MovingStretcher", -1);
    }

    new caller = Mobile[playerid];
    if(IsPlayerConnected(Mobile[playerid]))
    {
        SendClientMessageEx(caller,  COLOR_GRAD2, "The line went dead.");
        format(string, sizeof(string), "* %s puts away their cellphone.", GetPlayerNameEx(caller));
        ProxDetector(30.0, caller, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        CellTime[caller] = 0;
        Mobile[caller] = INVALID_PLAYER_ID;
    }
    Mobile[playerid] = INVALID_PLAYER_ID;
    CellTime[playerid] = 0;
    RingTone[playerid] = 0;

    foreach(Player, i)
    {
        if(EMSAccepted[i] < 999)
        {
            if(EMSAccepted[i] == playerid)
            {
                EMSAccepted[i] = 999;
                GameTextForPlayer(i, "~w~EMS Caller~n~~r~Has Died", 5000, 1);
                EMSCallTime[i] = 0;
                DisablePlayerCheckpoint(i);
            }
        }
    }

    if( GetPVarInt(playerid, "SpecOff" ) == 1 )
    {
        SpawnPlayer(playerid);
        return 1;
    }

    if(GetPVarInt(playerid, "Injured") == 1)
    {
        SendClientMessageEx(playerid, COLOR_WHITE, "You appear to be stuck in limbo, medics are trying to revive you.");
        KillEMSQueue(playerid);
        ResetPlayerWeaponsEx(playerid);
        //SpawnPlayer(playerid);
        return 1;
    }
    if(killerid == INVALID_PLAYER_ID) //BANK ROB
    {
        if(BankJobPlayer == playerid)
        {
            SetPlayerFree(playerid,999,"eliminated");
            PlayerInfo[playerid][pWantedLevel] = 0;
            SetPlayerVirtualWorld(playerid, 0);
            PlayerInfo[playerid][pVW] = 0;
            SetPlayerWantedLevel(playerid, 0);
            PlayerInfo[playerid][pJailed] = 2;
            PlayerInfo[playerid][pJailTime] = 100;
            RemovePlayerAttachedObject(playerid, 0);
            TimeAfterBankJob = 1;
            BankJobPlayer = 999;
            BankJobTime = -1;
            BankDeliverTime = -1;
            new tmphour;
            new tmpminute;
            new tmpsecond;
            gettime(tmphour, tmpminute, tmpsecond);
            FixHour(tmphour);
            tmphour = shifthour;
            SetWorldTime(tmphour);
        }
    }
    if(BankJobPlayer == playerid) //BANK ROB
    {
        if(IsACop(killerid))
        {
            GivePlayerCash(killerid, BANK_JOB_KILLER_EARN);
            SetPlayerFree(playerid,killerid,"eliminated");
        }
        else
        {
            SetPlayerFree(playerid,999,"eliminated");
        }
        RemovePlayerAttachedObject(playerid, 0);
        PlayerInfo[playerid][pWantedLevel] = 0;
        SetPlayerVirtualWorld(playerid, 0);
        PlayerInfo[playerid][pVW] = 0;
        SetPlayerWantedLevel(playerid, 0);
        PlayerInfo[playerid][pJailed] = 2;
        PlayerInfo[playerid][pJailTime] = 150;
        TimeAfterBankJob = 0;
        BankJobPlayer = 999;
        BankJobTime = -1;
        BankDeliverTime = -1;
        new tmphour;
        new tmpminute;
        new tmpsecond;
        gettime(tmphour, tmpminute, tmpsecond);
        FixHour(tmphour);
        tmphour = shifthour;
        SetWorldTime(tmphour);
    }
    new Float:px,Float:py,Float:pz;
    if(GetPVarInt(playerid, "EventToken") == 0)
    {
        if(GetPVarInt(playerid, "IsInArena") == -1)
        {
            SetPVarInt(playerid, "Injured", 1);

            new Float:mX, Float:mY, Float:mZ;
            GetPlayerPos(playerid, mX, mY, mZ);

            SetPVarFloat(playerid, "MedicX", mX);
            SetPVarFloat(playerid, "MedicY", mY);
            SetPVarFloat(playerid, "MedicZ", mZ);
            SetPVarInt(playerid, "MedicVW", GetPlayerVirtualWorld(playerid));
            SetPVarInt(playerid, "MedicInt", GetPlayerInterior(playerid));
        }
    }
    gPlayerSpawned[playerid] = 0;
    if(GetPVarInt(playerid, "IsInArena") >= 0)
    {
        if(GetPVarInt(playerid, "AOSlotPaintballFlag") != -1)
        {
            switch(PlayerInfo[playerid][pPaintTeam])
            {
                case 1:
                {
                    DropFlagPaintballArena(playerid, GetPVarInt(playerid, "IsInArena"), 2);
                }
                case 2:
                {
                    DropFlagPaintballArena(playerid, GetPVarInt(playerid, "IsInArena"), 1);
                }
            }
        }
        if(reason >= 0 && reason <= 46)
        {
            new weapon[24];
            PlayerInfo[killerid][pKills] += 1;
            PlayerInfo[playerid][pDeaths] += 1;
            if(PlayerInfo[killerid][pPaintTeam] == 1)
            {
                if(PlayerInfo[killerid][pPaintTeam] == PlayerInfo[playerid][pPaintTeam])
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamRedKills] -= 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamBlueKills] += 1;
                    SetPlayerHealth(killerid, 0);
                    PlayerInfo[killerid][pKills] -= 2;
                    PlayerInfo[killerid][pDeaths] += 1;
                    PlayerInfo[playerid][pDeaths] -= 1;
                    SendClientMessageEx(killerid, COLOR_WHITE, "You have been warned, do not team-kill!");
                }
                else
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamRedKills] += 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamBlueDeaths] += 1;
                }
            }
            if(PlayerInfo[killerid][pPaintTeam] == 2)
            {
                if(PlayerInfo[killerid][pPaintTeam] == PlayerInfo[playerid][pPaintTeam])
                {
                    PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamBlueKills] -= 1;
                    PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamRedKills] += 1;
                    SetPlayerHealth(killerid, 0);
                    PlayerInfo[killerid][pKills] -= 2;
                    PlayerInfo[killerid][pDeaths] += 1;
                    PlayerInfo[playerid][pDeaths] -= 1;
                    SendClientMessageEx(killerid, COLOR_WHITE, "You have been warned, do not team-kill!");
                }
                PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTeamBlueKills] += 1;
                PaintBallArena[GetPVarInt(playerid, "IsInArena")][pbTeamRedDeaths] += 1;
            }
            GetWeaponName(reason,weapon,sizeof(weapon));
            if(reason == 0)
            {
                if(PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTimeLeft] < 12)
                {
                    GivePlayerCash(killerid, 1000);
                    format(string,sizeof(string),"[Paintball Arena] %s has earned $1000 bonus for a sudden death kill!",GetPlayerNameEx(killerid));
                    SendPaintballArenaMessage(GetPVarInt(killerid,"IsInArena"), COLOR_YELLOW, string);
                    SendAudioToPlayer(killerid, 19, 100, 0);
                }
                format(string,sizeof(string),"[Paintball Arena] %s has killed %s with their bare hands!",GetPlayerNameEx(killerid),GetPlayerNameEx(playerid));
            }
            else
            {
                if(PaintBallArena[GetPVarInt(killerid, "IsInArena")][pbTimeLeft] < 12)
                {
                    GivePlayerCash(killerid, 1000);
                    format(string,sizeof(string),"[Paintball Arena] %s has earned $1000 bonus for a sudden death kill!",GetPlayerNameEx(killerid));
                    SendPaintballArenaMessage(GetPVarInt(killerid,"IsInArena"), COLOR_YELLOW, string);
                    SendAudioToPlayer(killerid, 19, 100, 0);
                }
                format(string,sizeof(string),"[Paintball Arena] %s has killed %s with a %s.",GetPlayerNameEx(killerid),GetPlayerNameEx(playerid),weapon);
            }
        }
        else
        {
            PlayerInfo[playerid][pDeaths] += 1;
            format(string,sizeof(string),"[Paintball Arena] %s has died.",GetPlayerNameEx(playerid));
        }
        SendPaintballArenaMessage(GetPVarInt(playerid,"IsInArena"), COLOR_RED, string);
    }
    PlayerInfo[playerid][pLocal] = 255;
    GetPlayerPos(playerid, px, py, pz);

    if(GetPVarInt(playerid, "Injured") == 0)
    {
        if( GetPVarInt(playerid, "EventToken") >= 1 || GetPVarInt(playerid, "IsInArena") >= 0)
        {
            ResetPlayerWeapons(playerid);
        }
        else
        {
            ResetPlayerWeaponsEx(playerid);
        }
    }
    if(PlayerInfo[killerid][pAdmin] < 2)
    {
        if(reason == 49)
        {
            format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just car-rammed %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
            ABroadCast(COLOR_YELLOW, string, 2);
            print(string);
        }
        if(reason == 50)
        {
            if(IsAHelicopter(GetPlayerVehicleID(killerid)))
            {
                format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just blade-killed %s (ID %d).", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                ABroadCast(COLOR_YELLOW, string, 2);
                print(string);
            }
            else
            {
                if(GetPlayerWeapon(killerid) != 32 || GetPlayerWeapon(killerid) != 28 || GetPlayerWeapon(killerid) != 29)
                {
                    format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just car-parked %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                    ABroadCast(COLOR_YELLOW, string, 2);
                    print(string);
                }
                else
                {
                    format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) has possibly just driver-shot %s (ID %d) to death.", GetPlayerNameEx(killerid), killerid, GetPlayerNameEx(playerid), playerid);
                    ABroadCast(COLOR_YELLOW, string, 2);
                    print(string);
                }
            }
        }
    }
    if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
        DisablePlayerCheckpoint(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
    if(HaveGPS[playerid])
    {
        KillTimer(GPSTimer[playerid]);
        HaveGPS[playerid] = false;
        GPSTimer[playerid] = 0;
    }

    ClearCrime(playerid);
    if(PlayerInfo[playerid][pHeadValue] >= 1)
    {
        if(IsPlayerConnected(killerid))
        {
            if(GoChase[killerid] == playerid)
            {
                new killer[MAX_PLAYER_NAME],
                name[MAX_PLAYER_NAME];

                new takemoney = PlayerInfo[playerid][pHeadValue] / 4 * 2;
                name = GetPlayerNameEx(playerid);
                killer = GetPlayerNameEx(killerid);
                GivePlayerCash(killerid, takemoney);
                GivePlayerCash(playerid, -takemoney);
                format(string,128,"Hitman %s has fulfilled the contract on %s and collected $%d.",killer,name,PlayerInfo[playerid][pHeadValue] / 4 * 2);
                SendFamilyMessage(8, COLOR_YELLOW, string);
                format(string,128,"You have been critically injured by a hitman and lost $%d.",takemoney);
                ResetPlayerWeaponsEx(playerid);
                // SpawnPlayer(playerid);
                SendClientMessageEx(playerid, COLOR_YELLOW, string);
                // KillEMSQueue(playerid);
                PlayerInfo[playerid][pHeadValue] = 0;
                PlayerInfo[killerid][pCHits] += 1;
                GotHit[playerid] = 0;
                GetChased[playerid] = 999;
                GoChase[killerid] = 999;
            }
        }
    }
    if(IsPlayerConnected(killerid))
    {
        if(GoChase[playerid] == killerid)
        {
            new killer[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
            new takemoney = PlayerInfo[playerid][pHeadValue] / 4 * 2;
            GivePlayerCash(killerid, takemoney);
            name = GetPlayerNameEx(playerid);
            killer = GetPlayerNameEx(killerid);
            format(string,128,"Hitman %s has failed the contract on %s and lost $%d.",name,killer,PlayerInfo[killerid][pHeadValue] / 4 * 2);
            SendFamilyMessage(8, COLOR_YELLOW, string);
            GivePlayerCash(playerid, -takemoney);
            format(string,128,"You have just killed a hitman and gained $%d, removing the contact on your head.",PlayerInfo[killerid][pHeadValue] / 4 * 2);
            SendClientMessageEx(killerid, COLOR_YELLOW, string);
            PlayerInfo[killerid][pHeadValue] = 0;
            PlayerInfo[playerid][pFHits] += 1;
            GotHit[playerid] = 0;
            GetChased[killerid] = 999;
            GoChase[playerid] = 999;
        }
    }
    killerid = INVALID_PLAYER_ID;
    SetPlayerColor(playerid,TEAM_HIT_COLOR);
    return 1;
}
Reply
#2

in my opinion,,.. theres no problem with your GM
players who died will take some animations eg. laying down and cant even move am i right?
some players will try to remove/getting rid of that annoying animation
so if the player press the "F" key or "Enter" and theyre near to any vehicle the animation will not be implemented or stopped.
your gamemode will take an action for that "Enter" vehicle abuse for the player who are injured
Hence,putting their life to hell/hasten their life and then putted directly to hospital

im just trying to say is that your GM has no problem at all regarding that players sends directly to the hosptal if they try to move etc. while doing the injured animation
your GM has an Anti "f" and "g" key abuse for the injured player
Reply
#3

Quote:
Originally Posted by Quickie
Посмотреть сообщение
in my opinion,,.. theres no problem with your GM
players who died will take some animations eg. laying down and cant even move am i right?
some players will try to remove/getting rid of that annoying animation
so if the player press the "F" key or "Enter" and theyre near to any vehicle the animation will not be implemented or stopped.
your gamemode will take an action for that "Enter" vehicle abuse for the player who are injured
Hence,putting their life to hell/hasten their life and then putted directly to hospital

im just trying to say is that your GM has no problem at all regarding that players sends directly to the hosptal if they try to move etc. while doing the injured animation
your GM has an Anti "f" and "g" key abuse for the injured player
Well the problem is when the ambulance is trying to drive the patient to the hospital.

Does anyone know the solution of this?
Reply
#4

bump
Reply
#5

Quote:
Originally Posted by Quickie
Посмотреть сообщение
in my opinion,,.. theres no problem with your GM
players who died will take some animations eg. laying down and cant even move am i right?
some players will try to remove/getting rid of that annoying animation
so if the player press the "F" key or "Enter" and theyre near to any vehicle the animation will not be implemented or stopped.
your gamemode will take an action for that "Enter" vehicle abuse for the player who are injured
Hence,putting their life to hell/hasten their life and then putted directly to hospital

im just trying to say is that your GM has no problem at all regarding that players sends directly to the hosptal if they try to move etc. while doing the injured animation
your GM has an Anti "f" and "g" key abuse for the injured player
Oh now I understand, well how to do that lol?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)