脚本案例

##触发器 系统 LUA

require("test") --将文本追加给当前lua 引用视为本lua脚本
local Test1 = Ref("活动/test1");  --引用外部lua方法 将方法传递给参数调用 

--系统启动触发
function On_System_Start()
    --系统触发
    lualib.AddTrigger(system,TriggerType.Login,"On_Login_Player")
    lualib.AddTrigger(system,TriggerType.Login,"On_Login_Send")
    lualib.AddTrigger(system,TriggerType.Login,"活动/test1:On_Login_Send1")
    Test()  --require 追加方法
    Test1:Test1() --Ref 调用方法
end

--系统关闭触发
function On_System_End()

end

--登录触发
function On_Login_Player(player)

    lualib.ReceiveSystem(player,"触发器-On_login_player:欢迎登陆传奇客户端")
    lualib.AddTrigger(system,TriggerType.Login,"On_login_GM") ---测试触发器追加触发器
    lualib.AddTrigger(player,TriggerType.Attack,"On_Attack_Player")
    local flag = lualib.HasItem(player,"终极开天", ItemWhereType.Bag|ItemWhereType.Equipment)
    if flag then 
        lualib.ReceiveSystem(player,"你小子居然有终极开天!")
        local size = lualib.GetBagSize(player,true)
        print("背包空余:"..size)
        local count = lualib.GetItemsNumber(player,"随机传送卷")
        print("随机传送卷:"..count)
    end
end


function On_login_GM(player)
    lualib.ReceiveSystem(player,"触发器-on_gm_Player:欢迎GM登录")
end

function On_Attack_Player(myself,target,attack)
local odds = math.random()
    if 0.1 > odds then
        attack.Damage=attack.Damage*3;
        --lualib:FixDefenceType(6)
        lualib.ReceiveSystem(myself,odds.."触发三倍攻击无视防御-"..myself.Name.."攻击"..target.Name.."伤害"..attack.Damage)
    elseif 0.5 > odds  then
        attack.Damage=attack.Damage*2;
        lualib.ReceiveSystem(myself,odds.."触发攻击双倍-"..myself.Name.."攻击"..target.Name.."伤害"..attack.Damage)
    else
        lualib.ReceiveSystem(myself,odds.."-"..myself.Name.."攻击"..target.Name.."伤害"..attack.Damage)
    end
end

##购买 修理 回购 铁匠铺

function main(npc,player)
if player.PKPoint > 2 
then
 lualib.NPCSay("我绝对不会为你这样的恶人服务...  <Close/@Exit>");
else 
 lualib.NPCSay([[你好,请问你需要些什么?
         主城.整段旅途瞬间可达,只需要一点小钱
         <浏览/@Sell> 购买.
         <浏览/@Buy> 出售.
         <浏览/@BuySell> 商店.
         <修理/@Repair> 武器.
         <关闭/@Exit>]])
end
 end



function BuySell(npc,player)
 lualib.NPCSay([[
 你想要买卖些什么?
 <返回/@Main>
 <回购/@BuyBack>
 <关闭/@Exit>
 ]])
 lualib.OpenBuySellWindow("")
end

function BuyBack(npc,player)
lualib.OpenBuyBackWindow([[
 只要你不离线,都可以回购.
 <返回/@Main>
 <关闭/@Exit>
 ]])
end

function Sell(npc,player)
lualib.SetInt(npc,"测试Key",3213)
lualib.SetStr(npc,"测试Key","添加Key")
lualib.OpenSellWindow([[<返回/@Main>]])
end

function Buy(npc,player)
local i = lualib.GetInt(npc,"测试Key")
print(i)
local s = lualib.GetStr(npc,"测试Key")
print(s)
 lualib.OpenBuyWindow([[<返回/@Main>]])
end

function Repair(npc,player)
 lualib.OpenRepairWindow(true,
        [[你要修理什么武器?
         <返回/@Main>]])
end
作者:a475529060  创建时间:2024-12-24 17:45
最后编辑:a475529060  更新时间:2025-08-20 18:55