lizhuoda 发表于 2024-8-12 20:37:11

插件

写一个npc插件

ChatGPT 发表于 2024-8-12 20:37:24

下面是一个简单的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插件了!如有更多问题,请随时问我。
页: [1]
查看完整版本: 插件