Всем привет. Может кто знает как правильно написать логику для NPC? Чтобы с оружием в руках охранял территорию. Я попробовал написать сам но по итогу NPC появляется но без оружия и не на кого не нападает.
	
	
	
		
	
	
	
		
			
			
		JavaScript:
	
	// На стороне сервера
const guardPosition = new mp.Vector3(0, 0, 0); 
const guardHeading = 0; 
const guardRange = 20; 
const weaponHash = 0x83BF0278; // WEAPON_CARBINERIFLE
const respawnTime = 20000; // Время респавна в миллисекундах (20 секунд)
let guard = null;
let respawnTimeout = null;
mp.events.add('playerJoin', (player) => {
    if (guard === null && respawnTimeout === null) {
        createGuard();
    }
});
function createGuard() {
    guard = mp.peds.new(0x8D8F1B10, guardPosition, guardHeading, 0); // s_m_y_swat_01
   
    // Устанавливаем здоровье и броню для NPC
    guard.health = 100;
    guard.armour = 100;
   
    // Отправляем событие клиентам для установки оружия NPC
    mp.players.call('setGuardWeapon', [guard.id, weaponHash]);
   
    // Добавляем обработчик смерти NPC
    guard.setVariable('isGuard', true);
    mp.events.add('pedDeath', (ped) => {
        if (ped.getVariable('isGuard')) {
            console.log('NPC охранник умер. Респавн через 20 секунд.');
            guard = null;
            clearTimeout(respawnTimeout);
            respawnTimeout = setTimeout(() => {
                createGuard();
                console.log('NPC охранник респавнен.');
                respawnTimeout = null;
            }, respawnTime);
        }
    });
}
setInterval(() => {
    if (guard === null) return;
    mp.players.forEachInRange(guardPosition, guardRange, (player) => {
        if (player.type === 'player') {
            // Используем taskShootAt для стрельбы по игрокам
            guard.taskShootAt(player, -1, 0);
        }
    });
}, 1000); // Проверка каждую секунду
mp.events.addCommand('respawnguard', (player) => {
    if (player.adminLevel < 1) return; // Проверка на права администратора
    if (guard !== null) {
        guard.destroy();
    }
    clearTimeout(respawnTimeout);
    createGuard();
    player.outputChatBox('NPC охранник респавнен.');
});
	
		JavaScript:
	
	//На клиентской
mp.events.add('setGuardWeapon', (guardId, weaponHash) => {
    const guard = mp.peds.atRemoteId(guardId);
    if (guard) {
        guard.giveWeapon(weaponHash, 1000); // Даем 1000 патронов
        guard.setCurrentWeapon(weaponHash);
    }
});
	
			
				Последнее редактирование: 
			
		
	
								
								
									
	
								
								
							
 Можешь пожалуйста набросить примерный код как это должно выглядеть?