以下是一个基于 复古传奇1.76版本 的NPC脚本示例,适用于手游中的经典NPC(如“老兵”或“药店老板”),包含对话、交易和传送功能:
lua
function main
Talk(1, "欢迎来到玛法大陆,勇士!我是比奇城的老兵,可以为你提供传送和补给服务。")
while true do
local option = AskOption("我需要传送服务", "购买补给药品", "回收装备", "离开")
if option == 0 then -
HandleTeleport
elseif option == 1 then -
HandleShop
elseif option == 2 then -
HandleRecycle
else -
Talk(1, "愿战神保佑你!")
break
end
end
end
function HandleTeleport
Talk(1, "告诉我你想去的地方:")
local dest = AskOption("盟重土城", "毒蛇山谷", "沃玛森林", "返回")
if dest == 0 then
if CheckGold(1000) then -
TakeGold(1000) -
Talk(1, "即将传送至盟重土城!")
Teleport(3, 330, 330) -
else
Talk(1, "金币不足!需要1000金币。")
end
elseif dest == 1 then
end
end
function HandleShop
Talk(1, "看看我的货物吧:")
OpenShop(101) -
end
function HandleRecycle
Talk(1, "将不需要的装备交给我兑换金币:")
local itemList = {
{name="修罗斧", value=5000, id=15},
{name="魔杖", value=8000, id=20},
{name="铂金戒指", value=3000, id=25}
for _, item in ipairs(itemList) do
if CheckItem(item.id) then
TakeItem(item.id, 1)
GiveGold(item.value)
Talk(1, string.format("回收【%s】获得%d金币!", item.name, item.value))
return
end
end
Talk(1, "背包中没有可回收的装备!")
end
关键功能说明:
1. 基础对话
2. 传送服务
3. 商店系统
4. 装备回收
脚本特点:
使用1.76经典装备/道具名称(修罗斧、铂金戒指等)
层级菜单不超过3级,符合手游操作习惯
传送/回收价格符合1.76版本经济体系(传送1000金币)
扩展建议:
1. 增加随机事件
lua
if math.random(1,100) <= 5 then
Talk(1, "听说祖玛教主最近在祖玛七层现身了!")
end
2. 任务系统集成
lua
if CheckQuestStatus("沃玛任务") == 2 then
Talk(1, "你完成了沃玛寺庙的任务!这是你的奖励...")
GiveItem("沃玛号角", 1)
end
3. 等级限制传送
lua
if GetPlayerLevel < 30 then
Talk(1, "盟重省很危险!达到30级再来吧!")
return
end
> 此脚本需配合游戏引擎的Lua接口实现,实际开发中需根据不同引擎调整API调用(如 `CheckItem` `Teleport` 等函数)。