Npc
Example
------------------------------------------------------------------------------
-- Step 1: Get API
------------------------------------------------------------------------------
---@type NssLibsNpcApi
local npc_api = exports.nss_libs:getNpcApi(GetCurrentResourceName())
------------------------------------------------------------------------------
-- Step 2: Create NPC object
------------------------------------------------------------------------------
local model_name = 'S_M_M_NBXRIVERBOATDEALERS_01'
local outfit = 0 -- nil/false = random outfit
local x = 0
local y = 0
local z = 0
local heading = 180
---@type NssLibsNpcEntityApi
local npc = npc_api.create(model_name, x, y, z, heading, outfit)
------------------------------------------------------------------------------
-- Step 3: Configure NPC object
------------------------------------------------------------------------------
npc.setScale(1)
.setScenario('WORLD_HUMAN_WRITE_NOTEBOOK')
.setWeapon('weapon_shotgun_semiauto')
.addAnimation(
'amb_camp@prop_camp_butcher@resting@rabbit@male_a@idle_a',
'idle_c',
10000, -- delay/duration until next animation
true, -- looping
1, -- times to play
npc.ANIMATE_ONLY_UPPER_BODY) -- animate only upper body
.addAnimation(
'amb_camp@prop_camp_butcher@resting@rabbit@male_a@idle_a',
'idle_b',
3000, -- delay/duration until next animation
false, -- no looping
3, -- play 3 times with a delay of 3000ms
npc.ANIMATE_FULL_BODY) -- animate full body
.addTimeWindow(8, 0, 12, 0) -- visible from 8:00 to 12:00 in-game-time
.addTimeWindow(14, 0, 20, 0) -- visible from 14:00 to 20:00 in-game-time
------------------------------------------------------------------------------
-- Step 4: Show NPC
------------------------------------------------------------------------------
-- With performance mode to prevent too much entities
local spawn_radius = 20 -- in meters
npc.startRangeCheck(spawn_radius)
-- Without performance mode
npc.show()Methods
exports.nss_libs:getNpcApi(resource_name)
exports.nss_libs:getNpcApi(resource_name)NssLibsNpcApi
NssLibsNpcApi.create(model, x, y, z, heading, outfit)
.create(model, x, y, z, heading, outfit)NssLibsNpcEntityApi
NssLibsNpcEntityApi.getEntity()
.getEntity().destroy()
.destroy().show()
.show().hide()
.hide().setCoords(x, y, z, heading)
.setCoords(x, y, z, heading).setModel(model, outfit)
.setModel(model, outfit).setOutfit(outfit)
.setOutfit(outfit).setSpawnRadius(radius)
.setSpawnRadius(radius).setScale(scale)
.setScale(scale).setScenario(scenario)
.setScenario(scenario).setWeapon(weapon)
.setWeapon(weapon).resetAnimations()
.resetAnimations().addAnimation(anim_dict, anim_name, delay_in_ms, only_upper_body)
.addAnimation(anim_dict, anim_name, delay_in_ms, only_upper_body).addTimeWindow(start_hour, start_minute, end_hour, end_minute)
.addTimeWindow(start_hour, start_minute, end_hour, end_minute).startRangeCheck(radius)
.startRangeCheck(radius).update()
.update().hasTimeWindows()
.hasTimeWindows().isInTimeWindow()
.isInTimeWindow().onShow(callback)
.onShow(callback).onHide(callback)
.onHide(callback).onEnterTimeWindow(callback)
.onEnterTimeWindow(callback).onLeaveTimeWindow(callback)
.onLeaveTimeWindow(callback).disablePlaceOnGround()
.disablePlaceOnGround().enablePlaceOnGround()
.enablePlaceOnGround()Last updated
Was this helpful?