• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Почему не всегда проходит урон?

Статус
В этой теме нельзя размещать новые ответы.

Atashol

Дебютант
Как исправить прохождение урона? Он не всегда проходит, бывает не пробивается по 3 раза.
OnPlayerWeaponShot
PHP:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
    if(weaponid < 22 || weaponid > 34 || pTemp[playerid][pKicker] == 1) return 0;
    if(hittype == 0 && hitid == 0 && fX == 0.000000 && fY == 0.000000 && fZ == 0.000000) return 0;
    if(hittype == BULLET_HIT_TYPE_PLAYER)
    {
        if(fX >= 10 || fY >= 10 || fZ >= 10 || fX <= -10 || fY <= -10 || fZ <= -10) return 0;
         if(fX == 0.000000 && fY == 0.000000 && fZ == 0.000000) return 0;
         pTemp[playerid][pShot][1]++;
    }
    pTemp[playerid][pShot][0]++;
    if(GetTickCount() - pTemp[playerid][WeaponTime] < 120 && weaponid != 17 && weaponid <= 27 || GetTickCount() - pTemp[playerid][WeaponTime] < 30 && weaponid > 27 && weaponid <= 34)
    {
        if(pTemp[playerid][RapidFireWarning] > 3)
        {
            SendClientMessage(playerid, COLOR_LIGHTRED, "Вы кикнуты по подозрению в читерстве (0xNS31)");
             GKick(playerid, 2916434);
        }
        else pTemp[playerid][RapidFireWarning]++;
    }
    else pTemp[playerid][RapidFireWarning] = 0;
    pTemp[playerid][WeaponTime] = GetTickCount();
    new slot = GetWeaponSlot(weaponid);
    if(slot != -1 && pTemp[playerid][pGun][slot] != weaponid && PlayerInfo[playerid][pAdmin] < 1)
    {
        SendClientMessage(playerid, COLOR_LIGHTRED, "Вы кикнуты по подозрению в читерстве (0xNS23)");
        GKick(playerid, 2038);
     }
    return 1;
}
OnPlayerGiveDamage и OnPlayerTakeDamage
PHP:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
    new string[16];
    format(string, sizeof(string), "{FFFFFF}- %d hp", floatround(Float:amount, floatround_ceil)), SetPlayerChatBubble(damagedid, string, -1, 30.0, 2000);
    if(IsAAntidm(damagedid) && GetPlayerWeapon(playerid) != 3)
    {
        TogglePlayerControllable(playerid, false);
        pTemp[playerid][UnfreezeTimer] = gettime()+3;
        ShowPlayerDialog(playerid, 0, 0, "{0089FF}Предупреждение", "{D9D9D9}\t\t\t\tЗдесь запрещено драться!\n DM(Death Match) убийство или нанесение физического вреда игрокам без причины\n DM запрещается на нашем сервере, в случаее нарушения вы будете наказаны", "ОК", "");
    }
    if(GetPlayerWeapon(playerid) == 3) // Ид оружия выбираем, у меня полицейская дубинка
    {
        new suspect = GetClosestPlayer(playerid);
        if(GetPVarInt(playerid,"odet") == 0) return SendClientMessage(playerid,COLOR_WHITE,"Вы не на службе!");
        if(0 == IsPlayerCop(playerid)) return 1;
        if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "Невозможно использовать в машине!");
        if(Tazer[playerid] == 1) return  SendClientMessage(playerid, COLOR_GREY, "Перезарядка тайзера ещё не прошла!");
        if(!IsPlayerConnected(suspect)) return true;
        if(PlayerTied[playerid] > 0)  return SendClientMessage(playerid, COLOR_GREY, "Вы связаны!");
        if(PlayerCuffed[suspect] >= 1) return SendClientMessage(playerid, COLOR_RED, "Игрок уже оглушён!");
        if(GetDistanceBetweenPlayers(playerid,suspect) > 4) return SendClientMessage(playerid, COLOR_RED, "Рядом с вами никого нет!");
        if(IsPlayerInAnyVehicle(suspect)) return SendClientMessage(playerid, COLOR_RED, "Человек в машине!");
        switch(PlayerInfo[suspect][pMember])
        {
        case 1,2,3,10,19,21,25: return SendClientMessage(playerid, COLOR_RED, "Вы не можете ударить электрошокером Госсударственного работника!");
        }
        if(PlayerInfo[suspect][pWanted] < 1) return  SendClientMessage(playerid, COLOR_GREY, !"Человек должен иметь хотя бы один уровень розыска!");
        format(CommandMas, sizeof(CommandMas), "%s оглушил вас на 15 секунд.", PlayerInfo[playerid][pNames]);
        SendClientMessage(suspect, 0x6ab1ffaa, CommandMas);
        format(CommandMas, sizeof(CommandMas),"Вы оглушили %s на 15 секунд.", PlayerInfo[suspect][pNames]);
        SendClientMessage(playerid, 0x6ab1ffaa, CommandMas);
        format(CommandMas, sizeof(CommandMas), "%s проводит задержание %s", PlayerInfo[playerid][pNames] ,PlayerInfo[suspect][pNames]);
        ProxDetector(10.0, playerid, CommandMas, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        ApplyAnimation(suspect,"CRACK","CRCKIDLE2",4.1,0,1,1,1,0,0);
        PlayerCuffed[suspect] = 1;
        PlayerCuffedTime[suspect] = 15;
        Tazer[playerid] = 1;
        TazerTime[playerid] = 15;
        return true;
    }
    return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid)
{
    if(IsAAntidm(playerid) && GetPlayerWeapon(playerid) != 3)
    {
        new Float: hp; GetPlayerHealth(playerid,hp);
        new Float: ar; GetPlayerArmour(playerid,ar);
        if(weaponid >= 0) SetPlayerHealth(playerid, hp-0);
        if(weaponid >= 0) SetPlayerArmour(playerid, ar-0);
    }
    if(Kolokol[issuerid] == 0)
    {
         PlayerPlaySound(issuerid,6401,0.0,0.0,0.0);
     }
    return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу