下面是一个简单的FiveM NPC插件示例,包含了服务器和客户端的基本功能。这个插件会在指定的位置生成一个NPC,并让它进行简单的动作。
### server.lua
-- 创建一个命令来生成NPC
RegisterCommand("createnpc", function(source, args, rawCommand)
-- 获取玩家的位置
local playerId = source
local playerPed = GetPlayerPed(playerId)
local playerPos = GetEntityCoords(playerPed)
-- 在玩家位置生成NPC
TriggerClientEvent("npc:spawn", playerId, playerPos)
end, false)
### client.lua
local npcModel = "a_m_m_business_01" -- 选择NPC模型
-- 处理生成NPC的事件
RegisterNetEvent("npc:spawn")
AddEventHandler("npc:spawn", function(position)
-- 加载NPC模型
RequestModel(npcModel)
while not HasModelLoaded(npcModel) do
Wait(500) -- 等待模型加载
end
-- 在指定位置生成NPC
local npc = CreatePed(4, npcModel, position.x, position.y, position.z, 0.0, false, true)
-- 设置NPC为无敌状态(可选)
SetEntityInvincible(npc, true)
SetBlockingOfNonTemporaryEvents(npc, true)
-- 让NPC开始走动(可选)
TaskWanderStandard(npc, 10.0, 10)
end)
### 脚本说明:
1. **server.lua**部分:
- 使用`RegisterCommand`函数创建一个名为`createnpc`的命令,这样玩家可以通过输入该命令在游戏中生成一个NPC。
- 该命令会获取当前玩家的位置,并触发一个客户端事件。
2. **client.lua**部分:
- 定义NPC模型(可以更改为其他模型)。
- 监听名为`npc:spawn`的事件,当事件被触发时,会加载NPC模型并在指定位置生成NPC。
- NPC生成后设置为无敌状态,并可以让它随机行动。
### 使用方法:
1. 将上述代码分别保存到`server.lua`和`client.lua`文件中。
2. 将这两个文件放入你的FiveM资源目录中,并确保正确添加资源到`__resource.lua`或`fxmanifest.lua`文件。
3. 在游戏中使用 `/createnpc` 命令来生成NPC。
这样,你就能在FiveM中成功添加一个简单的NPC插件了!如有更多问题,请随时问我。 |