lua捐献类型脚本
此脚本只有捐献功能,没有属性触发功能
触发函数需要自行解决
function main(Npc, Actor)
-- 定义捐献排行模板
local S = [[
<Text:爵 位 捐 献 说 明|
243#国王:全属性+7,HP,MP+7%,爆率增加1.0人物死亡爆率减少60%^
58#亲王:全属性+6,HP,MP+6%,爆率增加0.7,人物死亡爆率减少55%^
241#公爵:全属性+5,HP,MP+5%,爆率增加0.5,人物死亡爆率减少50%^
168#侯爵:全属性+4,HP,MP+4%,爆率增加0.4,人物死亡爆率减少40%^
180#伯爵:全属性+3,HP,MP+3%,爆率增加0.3,人物死亡爆率减少30%^
224#子爵:全属性+2,HP,MP+2%,爆率增加0.2,人物死亡爆率减少20%^
222#男爵:全属性+1,HP,MP+1%,爆率增加0.1,人物死亡爆率减少10%^
:80:0{FCOLOR=250;FSIZE=14;FNAME=黑体}>\
<──────────────────────────────/SCOLOR=150>\
<★ 爵位捐献系统可以大大提升您的知名度!/SCOLOR=150>\
<★ 每次捐献必须高于100元宝才可以进入捐献!/SCOLOR=150>\
<★ 当捐献元宝最低数额达到/SCOLOR=150><600/SCOLOR=150><时!/SCOLOR=150>\
<★ 会自动给予[男爵]爵位与相应的隐藏属性,还有绚丽的称号!/SCOLOR=150>\\
<> <Text:★为了避免玩家上头!:10:0{FCOLOR=250;FSIZE=14;FNAME=黑体}>\\
<★ 当捐献元宝到达颗时,将自动获得[国王]/SCOLOR=150>\
<★ 爵位属性与相应得隐藏属性!/SCOLOR=150>\ \
<★ 国王爵位/SCOLOR=249> 上榜名单[<$str(S0)>] 捐献金额[<$str(D0)>] \
<★ 侯爵爵位/SCOLOR=249> 上榜名单[<$str(S1)>] 捐献金额[<$str(D1)>] \
<★ 伯爵爵位/SCOLOR=249> 上榜名单[<$str(S2)>] 捐献金额[<$str(D2)>] \
<★ 子爵爵位/SCOLOR=249> 上榜名单[<$str(S3)>] 捐献金额[<$str(D3)>] \
<★ 男爵爵位/SCOLOR=249> 上榜名单[<$str(S4)>] 捐献金额[<$str(D4)>] \
<&Text:我要捐款:20:290{FCOLOR=250;FSIZE=12;FNAME=黑体}/@@InPutInteger1>
<&Text:当前捐献金额:<$str(U1)>:200:290{FCOLOR=230;FSIZE=12;FNAME=黑体}>
--vvlib:VarA
-- 初始化排行榜数据,如果没有上榜人员,则设置为'暂无人员上榜'和'暂无元宝数据'
for i = 0, 5 do
if vvlib:VarA(i) == '' then
--Actor:VarS(i,vvlib:VarA(i))
--Actor:VarN(i,vvlib:VarG(i))
Actor:VarS(i, '暂无人员上榜')
Actor:VarD(i, '暂无元宝数据')
elseif vvlib:VarA(i) ~= '' then
Actor:VarS(i, vvlib:VarA(i))
Actor:VarD(i, vvlib:VarG(i))
end
end
vvlib:OpenMerchantBigDlg(Actor, 14, 402, 1, 4, 0, 0, 1, 400, 0, 1) --盛大原有素材Prguse.wzl==14
Npc:Say(Actor, '', S, false)
end
function InPutInteger1(Npc, Actor)
--检测输入得数字是否大于100
if Actor:VarN(1) >= 100 then
-- 检查玩家是否有足够的元宝进行捐献
if Actor:CheckMoney(2, Actor:VarN(1)) then
Actor:DecGameGold(Actor:VarN(1)) -- 从玩家那里扣除捐献的元宝
local UBianLian = Actor:VarU(1) + Actor:VarN(1) -- 更新玩家的总捐献金额
Actor:VarU(1, UBianLian)
main(Npc, Actor) -- 重新显示捐献排行模板和更新后的捐献金额
JianCeGameGold(Npc, Actor) -- 更新捐献排行榜
else
Npc:MessageBox(Actor, 'ぐ【失败】:您身上元宝不足' .. Actor:VarN(1) .. '个!')
end
else
Npc:MessageBox(Actor, 'ぐ【失败】:最少捐献100元宝!')
end
end
function JianCeGameGold(Npc, Actor)
-- 获取当前玩家的总捐献金额
local JxGameGold = Actor:VarU(1)
-- 创建一个临时表来存储排行榜数据
local PaiNameList = {}
for i = 0, 4 do
local name = vvlib:VarA(i)
local gold = vvlib:VarG(i)
table.insert(PaiNameList, {name = name, gold = gold})
end
-- 检查当前玩家是否已经在排行榜上
local PaiHangBang = false
for _, PaiMing in ipairs(PaiNameList) do
if PaiMing.name == Actor.CharName then
PaiMing.gold = JxGameGold -- 更新玩家的捐献金额
PaiHangBang = true
break
end
end
-- 如果当前玩家不在排行榜上,则将其添加到排行榜
if not PaiHangBang then
table.insert(PaiNameList, {name = Actor.CharName, gold = JxGameGold})
end
-- 对排行榜列表按捐献金额降序排序
table.sort(PaiNameList, function(a, b) return a.gold > b.gold end)
-- 更新排行榜数据
for i = 0, 4 do
local PaiMing = PaiNameList[i + 1]
if PaiMing then
vvlib:VarA(i, PaiMing.name) -- 设置第i名的玩家名字
vvlib:VarG(i, PaiMing.gold) -- 设置第i名的玩家捐献金额
else
vvlib:VarA(i, '') -- 如果排行榜位置为空,设置为空字符串
vvlib:VarG(i, '') -- 如果排行榜位置为空,设置为空字符串
end
end
main(Npc, Actor) -- 更新捐献排行界面
end
屌······················· :loveliness:能不能发个新版引擎
页:
[1]