Question

Вообщем, при выдаче брони через команду /setarmour, при получении урона броня кончается, и выдается опять, и вот так до бесконечности, так скажем ГМ
Как пофиксить?

setarmour:

 

CMD:setarmour(playerid, params[])
{
    if(PI[playerid][pAdmin] < 2return SCM(playerid, COLOR_RED, NO_DOSTUP_TEXT);
    if(!ADuty{playerid}) return SCM(playerid, COLOR_GREY, NO_DUTY_TEXT);
    new target, Float:armour;
    if(sscanf(params, "uf", target, armour)) return SCM(playerid, COLOR_RED, !"Используйте: /setarmour [id] [ammount]");
    if(armour > 1000.0return SCM(playerid, COLOR_RED, !"Используйте: /setarmour [id] am < 1000");
    if(armour < 0.0return SCM(playerid, COLOR_RED, !"Используйте: /setarmour [id] am > 0");
    if(target == INVALID_PLAYER_ID) return 0;
    J_SetPlayerArmour(target, armour);
    SendAdminsMessagef(COLOR_GREY, "[A] Администратор %s установил игроку %s[%i] показатель брони на %.0f", PN(playerid), PN(target), target, armour);
    return 1;
}

 

Edited by acatsuci

Share this post


Link to post

3 answers to this question

  • 0

Такое может быть если выдаётся больше кол-во брони, то есть если выдать те же 500 брони, то полоска отображения не будет выходить за рамки, а как бы делить всю броню "по 100", то есть сначала она показывает условные от 400 до 500 ед. брони, если снять игроку до значений 300-400, то показывать будет соответственно от 300 до 400 и так далее. Это "исправить" можно только запретив выдавать более 100 брони.

Share this post


Link to post
  • 0

Нет бро, это происходит при выдаче 100 единиц брони, тоесть ты выдал 100 единиц брони и при снятии этих 100 единиц сразу же появляется новые 100 единиц, тоесть броня так скажем респавнится.

я создавал такую же тему на другом форуме под названием pawn-wiki, но на нем меня забанили за то что я забыл взять текст в рамки CODE
и там человек мне написал то что:

В твоём случае, скорее всего, прикол в этой проверке, находящейся в OnPlayerTakeDamage:
 

if(PI[playerid][pShield] >= 10.0)
            {
                GetPlayerHealth(playerid, Health);
                Health += 10;
                if(Health > 100) Health = 100;
                J_SetPlayerHealth(playerid, Health);
                PI[playerid][pShield] -= 10.0;
            }


То бишь, могу предположить, что внутри функции J_SetPlayerHealth имеется ещё и установка единиц брони игроку.


С его слов могу сделать вывод что дело в функции J_SetPlayerHealth 
Вот тебе эта функция, может найдешь в чем проблема)

J_SetPlayerHealth:

stock J_SetPlayerHealth(playerid, Float:hp, shareping = 0)
{
    if(hp < 1 && PlayerCure(playerid)) return J_SetPlayerArmour(playerid, 0), PlayerSpawn(playerid);
    new Float:health;
    GetPlayerHealth(playerid, health);
    PI[playerid][pHealth] = hp;
    UpdatePlayerDataFloat(playerid, "HP", PI[playerid][pHealth]);
    if(!shareping)
    {
        str_2[0] = EOS, f(str_2, sizeof(str_2),"+%.0f HP", (health-hp));
        SetPlayerChatBubble(playerid, str_2, COLOR_GREEN, 10.05000);
    }
    if(InventStatus{playerid})
    {
        f(str_2,sizeof(str_2),"HP: %.0f", hp),
        PlayerTextDrawSetString(playerid, Invent[playerid][38], str_2);
    }
    return SetPlayerHealth(playerid, hp);
}



Нашел еще какую то функцию связанную с setarmour, возможно она будет полезна в решении этой проблемы, вот она:

J_SetPlayerArmour:

stock J_SetPlayerArmour(playerid, Float:arm)
{
    new Float:armour;
    GetPlayerArmour(playerid, armour);
    if(InventStatus{playerid}) PlayerTextDrawSetStringf(playerid, Invent[playerid][37], "ARM: %.0f", arm);
    return SetPlayerArmour(playerid, PI[playerid][pArmour] = arm);
}

 

Share this post


Link to post
  • 0

@acatsuci,

В 30.07.2023 в 02:16, acatsuci сказал:

при снятии этих 100 единиц

 

Каким образом "снимаете"? Что у вас в OnPlayerTakeDamage? Используется ли эта функция в каких-нибудь регулярно вызываемых функциях (OnPlayerUpdate или таймеры)?

Share this post


Link to post
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By danya_white
      Доброго времени суток, сегодня выкладываю на продажу оригинальный игровой мод проекта Flin Mobile
      Данный игровой мод сейчас стоит на данном проекте, и держит стабильный онлайн.
       
      Информация о моде:
      Версия MYSQL - R41-4
      Античит - Nex-AC + Rakcheat (Настроено все)
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - Pawn CMD
      Хэширование паролей - MD5
      Остальное Все плагины обновлены до последней версии
       
      - Цена бочки снижена до 6000 тысяч вирт. - Навык влияет на ЗП. На 50 навыке продажа бочки за 13500(7500 чистыми) + надбавки за VIP, личный т/с. - Исправлен обход на количество бочек в час, теперь 25, ещё +25 с ADD VIP(в сумме 50). - Исправлено выбрасывание из автомобиля, когда игроки застревали в DFT-30. *Исправление для всех видов т/с. - Теперь когда начинаете загрузку/выгрузку вас не выбрасывает из автомобиля, нужно самому выйти. Подкорректирона работа anti +С. - Блокируется только +С и авто +С . - Сбив темпа работает. Снизили стоимость доступа. Теперь вы можете открывать контейнеры в любое время. Обновили список выпадающих предметов (окупиться или пойти в минус - все зависит от вашего везения). Добавили несколько Real Skins в контейнеры GOLD класса. Кроме того, мы добавили государственным структурам новую крутую штуку - нейтрализатор (нужен дробовик ID:25),  который позволяет быстро вывести из строя двигатель на рандомное время, что позволит полиции более эффективно выполнять свою работу и задерживать преступников. - Добавлены машины Ferrari F50 и Pegassi Toreto для погони за преступниками. - Добавление команды /сtazer для переключения между USP и Deagle. - Добавление нелетального дробовика SPAS, который парализует на 10-15 секунд. - Добавление кнопки паники (/panic) для вызова поддержки. - Фракция Police RC переименована в Los Santos Sheriff Departament (LSSD) - Доработка нейтрализатора автомобилей. - Добавлен семейный инвентарь. - Добавили команды /makegun и еще короткие команды для быстрого создания + /de /mp5 /ak47 /m4. - Добавили возможности отдавать свой личный Т/С в семью. - Добавлена команда /fonline для просмотра количества воюющих семей в онлайне. - Были заблокированы читы, которые позволяли читерам стрелять с большой скоростью - Внесены исправления и корректировки в работе нефтяника. - Изменена система контейнеров, можно открывать в любое время, так же добавлены все новые RealSkins. - Возвращены старые анимации по командам (например: /crossarms, /crossfingers, /frontfall и т.д). - Добавлены новые RP-команды (/ame, /ab, /(un)blind). - Добавлены команды для быстрого крафта оружия (/de /mp4 /m4 /ak47). - Добавлено блокирование предметов от 2 до 6 часов после их выбрасывания в мусорный бак. - Исправлена недоработка, когда можно было находиться в Т/С на ЦР. - Исправлена команда /lock, которая иногда не работала. - Исправлена проблема с меткой сдачи автомобиля на работе автоугонщика. - Исправлена причина кика игроков с ПК на работе нефтяника. Причина была в наличии посторонних CLEO/ASI у игроков. - Исправлена система посадки на мебель. - Увеличен шанс выигрыша ценных призов в рулетках , так же добавлены все новые Real Skins. - Исправлено отображение CJ скина в инвентаре на ПК. - Новая система "Карта кладов"  
    • By danya_white


      Скачать файл Игровой Мод Flin RP (последняя версия)
      Доброго времени суток, сегодня выкладываю на продажу оригинальный игровой мод проекта Flin Mobile
      Данный игровой мод сейчас стоит на данном проекте, и держит стабильный онлайн.
       
      Информация о моде:
      Версия MYSQL - R41-4
      Античит - Nex-AC + Rakcheat (Настроено все)
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - Pawn CMD
      Хэширование паролей - MD5
      Остальное Все плагины обновлены до последней версии
       
      - Цена бочки снижена до 6000 тысяч вирт. - Навык влияет на ЗП. На 50 навыке продажа бочки за 13500(7500 чистыми) + надбавки за VIP, личный т/с. - Исправлен обход на количество бочек в час, теперь 25, ещё +25 с ADD VIP(в сумме 50). - Исправлено выбрасывание из автомобиля, когда игроки застревали в DFT-30. *Исправление для всех видов т/с. - Теперь когда начинаете загрузку/выгрузку вас не выбрасывает из автомобиля, нужно самому выйти. Подкорректирона работа anti +С. - Блокируется только +С и авто +С . - Сбив темпа работает. Снизили стоимость доступа. Теперь вы можете открывать контейнеры в любое время. Обновили список выпадающих предметов (окупиться или пойти в минус - все зависит от вашего везения). Добавили несколько Real Skins в контейнеры GOLD класса. Кроме того, мы добавили государственным структурам новую крутую штуку - нейтрализатор (нужен дробовик ID:25),  который позволяет быстро вывести из строя двигатель на рандомное время, что позволит полиции более эффективно выполнять свою работу и задерживать преступников. - Добавлены машины Ferrari F50 и Pegassi Toreto для погони за преступниками. - Добавление команды /сtazer для переключения между USP и Deagle. - Добавление нелетального дробовика SPAS, который парализует на 10-15 секунд. - Добавление кнопки паники (/panic) для вызова поддержки. - Фракция Police RC переименована в Los Santos Sheriff Departament (LSSD) - Доработка нейтрализатора автомобилей. - Добавлен семейный инвентарь. - Добавили команды /makegun и еще короткие команды для быстрого создания + /de /mp5 /ak47 /m4. - Добавили возможности отдавать свой личный Т/С в семью. - Добавлена команда /fonline для просмотра количества воюющих семей в онлайне. - Были заблокированы читы, которые позволяли читерам стрелять с большой скоростью - Внесены исправления и корректировки в работе нефтяника. - Изменена система контейнеров, можно открывать в любое время, так же добавлены все новые RealSkins. - Возвращены старые анимации по командам (например: /crossarms, /crossfingers, /frontfall и т.д). - Добавлены новые RP-команды (/ame, /ab, /(un)blind). - Добавлены команды для быстрого крафта оружия (/de /mp4 /m4 /ak47). - Добавлено блокирование предметов от 2 до 6 часов после их выбрасывания в мусорный бак. - Исправлена недоработка, когда можно было находиться в Т/С на ЦР. - Исправлена команда /lock, которая иногда не работала. - Исправлена проблема с меткой сдачи автомобиля на работе автоугонщика. - Исправлена причина кика игроков с ПК на работе нефтяника. Причина была в наличии посторонних CLEO/ASI у игроков. - Исправлена система посадки на мебель. - Увеличен шанс выигрыша ценных призов в рулетках , так же добавлены все новые Real Skins. - Исправлено отображение CJ скина в инвентаре на ПК. - Новая система "Карта кладов"  
      Добавил danya_white Добавлено 10.12.2023 Категория Моды Автор danya_white  
    • By zdfgdhdrhrhd
      Доброго времени суток, столкнулся с проблемой при добавлении системы анти-флуда пикапов.
      По сути, она работает нормально, но немного напрягает тот факт, что когда встаешь на любой пикап, он отправляет сообщение по два раза, вместо одного.
      Знающие люди, помогите пожалуйста, заранее огромное спасибо!
      Откуда брал систему (инклуд прикрепил ниже):
      pickup_stop_flood.inc