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

Вопрос Как создать NPC охраняющего территорию

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

Irvin

Участник портала
11 Июл 2021
98
7
65
Сделал чтобы при заходе в стрим создавался нпс, но не получается сагрить нпс. Ступором стоит и всё. Не знаю как применить правильно команду.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,789
1,593
211
28
Ты использовал taskCombat, который я написал с wiki?
taskShootAt на клиенте рейджа нет (во всяком случае по информации wiki ragemp js client funcs).
 

Irvin

Участник портала
11 Июл 2021
98
7
65
Можно
Пробовал taskCombat но он почему то выдаёт ошибку(видимо что то не правильно делаю). Я вот думаю как это правильно применить.
 

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,789
1,593
211
28
Есть Wiki, я кинул ссылкой - там написано что передаётся в виде аргументов, этого должно хватить. Там даже есть конкретный пример на сайте.
 

kiraz

Специалист
17 Апр 2023
424
87
83
вот тебе сгенерированный код твоим любимым чат гпт. пользуйся на здоровье

JavaScript:
interface GuardData {
    position: Vector3;
    heading: number;
    weapon: number;
    hash: number;
    range: number;
}


class SecurityGuard {
    private static readonly GUARD_CONFIG: GuardData[] = [
        {
            position: new mp.Vector3(123.45, -567.89, 25.0), // Измените координаты под вашу территорию
            heading: 180.0,
            weapon: 0x1B06D571, // WEAPON_PISTOL
            hash: mp.game.joaat('s_m_m_security_01'), // Скин охранника
            range: 30.0 // Радиус патрулирования
        }
    ];


    private guards: Map<number, PlayerMp> = new Map();
    private paths: Map<number, Vector3[]> = new Map();


    constructor() {
        this.initialize();
        this.setupEvents();
    }


    private initialize(): void {
        SecurityGuard.GUARD_CONFIG.forEach((config, index) => {
            const ped = mp.peds.new(
                config.hash,
                config.position,
                config.heading,
                mp.players.local.dimension
            );


            // Создаем маршрут патрулирования
            const patrolPoints = this.generatePatrolPath(
                config.position,
                config.range
            );
            this.paths.set(ped.id, patrolPoints);


            // Выдаем оружие
            ped.setCanBeDamaged(true);
            ped.setArmour(100);
            ped.giveWeapon(config.weapon, 999, true);


            this.startPatrol(ped, patrolPoints);
        });
    }


    private setupEvents(): void {
        mp.events.add('entityStreamIn', (entity: EntityMp) => {
            if (entity.type === 'ped' && this.guards.has(entity.id)) {
                this.onGuardStreamIn(entity);
            }
        });
    }


    private generatePatrolPath(center: Vector3, range: number): Vector3[] {
        const points: Vector3[] = [];
        const segments = 4; // Количество точек патрулирования


        for (let i = 0; i < segments; i++) {
            const angle = (i / segments) * Math.PI * 2;
            const x = center.x + Math.cos(angle) * range;
            const y = center.y + Math.sin(angle) * range;
            points.push(new mp.Vector3(x, y, center.z));
        }


        return points;
    }


    private startPatrol(ped: PedMp, points: Vector3[]): void {
        let currentPoint = 0;


        setInterval(() => {
            if (!ped || !ped.handle) return;


            const nextPoint = points[currentPoint];
            mp.game.ai.taskGoToCoordAnyMeans(
                ped.handle,
                nextPoint.x,
                nextPoint.y,
                nextPoint.z,
                1.0, // Скорость ходьбы
                0,
                false,
                786603, // Обычная ходьба
                0
            );


            // Переход к следующей точке
            currentPoint = (currentPoint + 1) % points.length;
        }, 10000); // Каждые 10 секунд меняем точку назначения
    }


    private onGuardStreamIn(guard: EntityMp): void {
        // Дополнительная логика при появлении охранника в зоне стрима
        const ped = guard as PedMp;
        
        // Устанавливаем боевой режим
        mp.game.ai.taskCombatPed(
            ped.handle,
            mp.players.local.handle,
            0,
            16
        );


        // Проверяем наличие угроз
        this.checkForThreats(ped);
    }


    private checkForThreats(guard: PedMp): void {
        const interval = setInterval(() => {
            if (!guard || !guard.handle) {
                clearInterval(interval);
                return;
            }


            // Проверяем близлежащих игроков
            mp.players.forEachInRange(guard.position, 20, (player: PlayerMp) => {
                if (player.handle !== mp.players.local.handle) return;


                // Если игрок держит оружие, охранник атакует
                if (player.weapon !== 0) {
                    mp.game.ai.taskCombatPed(
                        guard.handle,
                        player.handle,
                        0,
                        16
                    );
                }
            });
        }, 1000);
    }
}


// Создаем экземпляр класса при запуске скрипта
const securitySystem = new SecurityGuard();
 
Реакции: Irvin

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,829
1,885
208
35
Ваще ноль претензий если честно к тому как ты "пишешь" код.
Ты не понял типа, ну, никто не порицает никого за использование нейросеток если чесна.
С хуяли это плохо? Это ведь идиотизм - не пользоваться самым гениальным инструментом современности.
Я пользуюсь разными нейронками, в том числе жпт - буквально каждый день для самых разных задач, от подрочить до написания целых алгоритмов

Тебе же просто сказали что не стоит полностью задачу отдавать нейронке, когда ты фулл булочка - и это абсолютно справедливое замечание.
Если ты не умеешь кататься на велосипеде - ты будешь с него ебашиться по кд.
Не умеешь жать на педали - расхуяришь папину девятку о первое же дерево.
Не понимаешь как писать код - чатжпт у тебя будет писать хуйню.
Ну типа, так не получится

И никто вроде ниче те особо не говорил, просто ну, справедливо вежливо подметили
Хуесосить тебя начали после вот этого


Потому что это очевидный пиздёж
Код, написанный нейронкой с хуёвым промптом - всегда видно, а когда ты комментарии, где она к тебе на "вы" обращается при этом не убрал - это ваще мем конечно

Ну юзаешь и юзаешь, врать то зачем
Пиздаболов никто не любит
 
Реакции: kiraz и XDeveluxe

Irvin

Участник портала
11 Июл 2021
98
7
65
а теперь запусти и проверь умник
 

Irvin

Участник портала
11 Июл 2021
98
7
65
ещё один проф нарисовалсяя всегда когда пишу даже перед координатами комент. Потому что я не ставлю сразу корды и чтобы не забыть всегда пишу комент. Ну бля, как тебе объяснить. Знаешь от ого учился джипити? от людей. А значит не я один такой кто так делал. И тебе советую так делать. Это очень удобно когда пишешь много кода и когда возвращаешься в начало быстро глазами просматриваешь коменты и видишь где что забыл добавить. Ну я не виноват что так похоже написал как джипити. Хотите верьте или нет. Больше я на вашу тупость отвечать не стану. Ещё раз повторю, я не использую джипити и пока что не стану его использовать пока сам нормально не научусь писать код.
 

kiraz

Специалист
17 Апр 2023
424
87
83
все все чувачек, своими последующими коммами ты лишь отталкиваешь людей, которые хоть как-то хотят или хотели тебе помочь. гуляй васек
 

Irvin

Участник портала
11 Июл 2021
98
7
65
не думал что столько токсиков соберу одним вопросом Вы тут наверное специально сидите и ищете кого обосрать.
 

Irvin

Участник портала
11 Июл 2021
98
7
65
к нашему великому счастью мы не ищем, а вы сами собой находитесь
я тебя запомнил, буду специально смотреть как ты себя ведёшь на форуме. И всегда буду за тех на кого твоя собачья морда открылась
 

Mi-Zaft

Гений
VIP
9 Окт 2020
1,752
442
175
Чел, а чего ты проигнорировал очень важное замечание по поводу того, что в твоих сообщениях ошибка через каждое слово, а в комментариях к коду нет ошибок?
Ты во время написания комментариев сидишь с учебником или что?

Ну и как бы @Inoi - реально крутой и мозговитый мужик, в отличии от тебя. Его тут знают если не все, то очень многие.
А ты - вылупился хз откуда, но уже обосрал львиную долю завсегдатаев местных. Ты кем себя возомнил?

Я понимаю, что если пиздеть, то до конца, но ты уже спалился хуже никуда.
Ты уже в дерьме по шею, зачем окунать еще и голову?

К слову про твой супер крутой совет о написании комментариев. Если ты пишешь код, то ты его можешь и читать. Да, комментариями надо выделять сложные участки кода, но не каждую же блять самую примитивную строку.

P.S. чтобы что-то не забыть, умные люди (ты к ним не относишься, естественно) придумали TODO, но ты продолжай пытаться нам доказывать что-то.
Хоть поржать можно с твоего кринжа.
 
Реакции: Inoi и XDeveluxe

Inoi

/dev/null
Команда форума
Moderator
VIP
15 Окт 2020
3,829
1,885
208
35
Господи, тебе что двенадцать? Зачем ты продолжаешь отнекиваться и оправдываться лол

Зачем расстояние при работе с зоной стрима?
Зачем удалять нпс?
Зачем вообще написано столько хуйни лишней?
Тебе буквально нужно поставить нпс и дать ему в руки пушку

Потом прописать ему https://wiki.rage.mp/index.php?title=Ped::setRelationshipBetweenGroups
И прописать taskCombat

Всё
Нахуй тебе сейчас респавны какие то, проверки на игроков и прочая срань?


Ага ага верим
Обычно ведь так и пишут комментарии самому себе "Замените на нужные"! "Радиус зоны в МЕТРАХ блять" (в гта то да всё в метрах)



Именно так всегда и выглядят комментарии
А совсем не так


Не так


И совершенно точно не так



Ага верим верим, пиздец всем селом верим в несуществующий админлвл
Дед прибежал на лыжах стоит в окно смотрит, крестится, кричит что тоже верит



Пиздец

 
Последнее редактирование:
Реакции: XDeveluxe

Irvin

Участник портала
11 Июл 2021
98
7
65
Знаешь почему я тут ошибки делаю? Потому что пишу быстро и нет времени на ваш тупизм отвечать. Маленький ты мой друг, тебе советую пойти учить уроки а то получишь двойку и батя отхлистает тебя ремешком.Так смешно смотреть как высерают тут маленькие шкирдяи и пытаются тут что то доказать. И я не кого не обсирал. Просто написал правду а они про какой то джипити затирают. Тему кстати можно закрыть так как я решил свою проблему. Хочу поблагодарить XDeveluxe так как он реально помог дав пару подсказок и у меня всё получилось
 

Mi-Zaft

Гений
VIP
9 Окт 2020
1,752
442
175
Хватит оправдываться, всем насрать, чувак)
Оставь свои влажные фантазии о бате с ремешком, они нас не особо интересуют. Личное остается личным.
Никого не обсирал? Перечитай свои сообщения, у тебя провалы в памяти.
 

Dmitry_V

Гений
23 Июн 2023
2,118
346
131
27
Открою тебе секрет как ролевик со стажем в 10+ лет. Один раз научившись писать хорошо, плохо писать ты не сможешь. Ты же просто пиздабол
 
Реакции: Irvin

Irvin

Участник портала
11 Июл 2021
98
7
65
Прикинь вот эти строки в верху я взял с другого форума как образец. И там так было написано А на проверку администратора это лишний код который я забыл удалить, да и много кода там лишнего было, я просто тестировал. Я писал выше что сам написал код(не совсем я) Я брал куски с других форумов и просто дополнял своим кодом. Большая часть коментов написал я чтобы не запутаться) А вы всёпро своё джипити втираете Господи как это смешно
 
Реакции: derrsak

Mi-Zaft

Гений
VIP
9 Окт 2020
1,752
442
175
Понятно. Один дуралей залил код из жпт на какой-то форум, а другой дуралей скопировал код (не понимая его смысла) к себе в сборку.
Апплодисменты, занавес.
 
Реакции: Irvin
Статус
В этой теме нельзя размещать новые ответы.