This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Написание урона кастомного который будет зависить

Wsquad

Новый участник
16 Апр 2021
87
2
69
Написание урона кастомного для того что бы под каждое оружие был дамаг в голову тело и ногу и урон исходил из файла settings.js


JavaScript:
const {

ignoreWeapons,

damageWeapons,

damageWeaponGroups

} = require('./src/weapons/damageHandler/settings.js');

// The value from this range will determine what percentage of the original damage will be cut

const defaultPercent = {

max: 90,

min: 60

}

const randomInt = (min, max) => Math.random() * (max - min) + min;

mp.events.add("incomingDamage", (sourceEntity, sourcePlayer, targetEntity, weapon, boneIndex, damage) => {

if (targetEntity.type === "player" && sourcePlayer && !(weapon in ignoreWeapons)) {

if (global.adminGodMode) {

return true;

}

let max = defaultPercent.max;

let min = defaultPercent.max;

const weaponGroupHash = mp.game.weapon.getWeapontypeGroup(weapon);

if (weapon in damageWeapons) {

max = damageWeapons[weapon].max;

min = damageWeapons[weapon].min;

} else if (weaponGroupHash in damageWeaponGroups) {

max = damageWeaponGroups[weaponGroupHash].max;

min = damageWeaponGroups[weaponGroupHash].min;

}

const percent = randomInt(min, max) / 100;

let customDamage = damage - (damage * percent);

// Check for a hit in the head. A hit to the head carries with it much more damage than on other points of the body.

if (boneIndex === 10) {

customDamage /= 5;

}

targetEntity.applyDamageTo(parseInt(customDamage), true);

const currentHealth = targetEntity.getHealth();

// This check is necessary in order for the "PlayerDeath" event to be triggered if the player died after taking damage

if (currentHealth > 0) {

// Setting the initial damage received in the event to 0

mp.game.weapon.setCurrentDamageEventAmount(0);

}

}

})
 
Последнее редактирование модератором:

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,784
190
5
Этот код отвечает за обработку урона, зависящего от типа оружия, а также определяет урон в разные части тела. Урон исходит из файла settings.js, где указаны параметры урона для различных оружий и групп оружий. Каждый раз при нанесении урона происходит случайное уменьшение урона в заданном диапазоне (от 60% до 90% от оригинального урона). Удар по голове наносит больше повреждений, поэтому урон уменьшается в 5 раз при попадании в голову.
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24
Я бы на твоем месте перестал спамить темами, особенно используя при этом второй аккаунт. Если ты их создаешь ради ChatGPT, то не поленись, скачай ВПН и зарегистрируйся на openai
 
Реакции: Inoi

DaVilka

Старожил
16 Сен 2020
709
238
128
Ваш JavaScript код для настройки пользовательского урона в игровой среде, использующий настройки из файла settings.js, в основном хорошо структурирован, но можно внести несколько улучшений и исправлений:

1. Исправление ошибки в присваивании переменных: Вы случайно присвоили min значение defaultPercent.max вместо defaultPercent.min. Это следует исправить.

2. Уточнение индекса кости: Индекс кости для выстрела в голову (обычно 10) нужно подтвердить в соответствии с конкретной реализацией вашей игры. Разные игры могут использовать разные индексы.

3. Улучшенные комментарии и читаемость: Добавление большего количества комментариев может улучшить читаемость и обслуживаемость кода, особенно объясняя, что делает каждый раздел и почему принимаются те или иные решения (например, расчеты уменьшения урона).

Вот ваш исправленный и усовершенствованный код:
JavaScript:
// Загрузка настроек для конкретного оружия
const { ignoreWeapons, damageWeapons, damageWeaponGroups } = require('./src/weapons/damageHandler/settings.js');

// Диапазон процентов для уменьшения урона по умолчанию
const defaultPercent = {
    max: 90,
    min: 60
};

// Функция для генерации случайного целого числа в заданном диапазоне
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);

// Обработчик события входящего урона
mp.events.add("incomingDamage", (sourceEntity, sourcePlayer, targetEntity, weapon, boneIndex, damage) => {
    // Обработка только для целей-игроков и если оружие не в списке игнорирования
    if (targetEntity.type === "player" && sourcePlayer && !(weapon in ignoreWeapons)) {
        // Проверка режима бога для администраторов, чтобы игнорировать урон
        if (global.adminGodMode) {
            return true;
        }

        // Определение диапазона уменьшения урона по настройкам оружия или использование значений по умолчанию
        let max = defaultPercent.max;
        let min = defaultPercent.min;
        const weaponGroupHash = mp.game.weapon.getWeapontypeGroup(weapon);

        if (weapon in damageWeapons) {
            max = damageWeapons[weapon].max;
            min = damageWeapons[weapon].min;
        } else if (weaponGroupHash in damageWeaponGroups) {
            max = damageWeaponGroups[weaponGroupHash].max;
            min = damageWeaponGroups[weaponGroupHash].min;
        }

        // Расчёт фактического процента уменьшения урона
        const percent = randomInt(min, max) / 100;
        let customDamage = damage * (1 - percent);

        // Увеличение урона при попадании в голову (индекс кости 10 предполагается для головы)
        if (boneIndex === 10) {
            customDamage *= 5;
        }

        // Применение рассчитанного урона к целевому объекту
        targetEntity.applyDamageTo(parseInt(customDamage), true);

        // Проверка здоровья для вызова события "PlayerDeath", если необходимо
        const currentHealth = targetEntity.getHealth();
        if (currentHealth <= 0) {
            mp.events.call("PlayerDeath", targetEntity, sourcePlayer); // Обеспечение вызова события смерти игрока
        }

        // Предотвращение стандартной обработки урона, установка урона в событии в 0
        mp.game.weapon.setCurrentDamageEventAmount(0);
    }
});
 
Реакции: Inoi

Inoi

/dev/null
Команда форума
VIP
15 Окт 2020
3,411
1,598
208
35
а где ты взял код который вставил
если у тебя нет аккаунта на опен аи

на ес чо https://mistral.ai/
кроме чат жпт так то много нейросеток
 
Последнее редактирование: