擂台比武NPC脚本如下:
(@@InPutString @@InPutInteger)
[@main]
#IF
#ACT
OPENMERCHANTBIGDLG 3 751 0 0 0 0 1 365 3
#IF
CHECKVAR GLOBAL 甲方名字 =
#ACT
MOV S30 <Img:1613:3:127:12>
#ELSEACT
MOV S30 <$GLOBAL(甲方属性)>
#IF
CHECKVAR GLOBAL 乙方名字 =
#ACT
MOV S31 <Img:1613:3:11:44>
#ELSEACT
MOV S31 <$GLOBAL(乙方属性)>
#IF
#say
<Img:750:3:-10:1>\
<1、进入地图内禁用回城,随机等物品。强退视为输/SCOLOR=191> \
<2、系统自动切换(单挑、组队)两个打擂的模式/SCOLOR=204> \
<3、组队打擂模式的胜败决定于(队长的死活)/SCOLOR=239>\
<$STR(S30)><$STR(S31)><Img:1613:3:-105:74>\
<摆擂方:/SCOLOR=250><$GLOBAL(甲方名字)>\
\ \
<挑战方:/SCOLOR=250><$GLOBAL(乙方名字)>\
\ \
{离<$GLOBAL(擂台状态)>时间/SCOLOR=242} <赌 注:/SCOLOR=250><$GLOBAL(打擂赌注)>\
<$GLOBAL(打擂计时)>\
<模式[/SCOLOR=250>{<$GLOBAL(擂台模式)>/SCOLOR=254}<]/SCOLOR=250>\
<申请摆擂/SCOLOR=251><Img:1614:3:-58:-5/@@InPutInteger50(请输入赌注10000-1000000之间的数字:)>\
<> <刷新时间/SCOLOR=251><Img:1614:3:-58:-5/@main>\
<接受挑战/SCOLOR=251><Img:1614:3:-58:-5/@挑战打擂> <进入观战/SCOLOR=251><Img:1614:3:-58:-5/@进入观战>\
<> <了解规则/SCOLOR=191><Img:1614:3:-58:-6|
250#关于单挑规则^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
116#当摆擂方进入地图后默认为"和平攻击模式"若(5分钟)内无^
116#人接受挑战系统会自动传送回城并退还所有赌注。^
116#当挑战方进入地图后默认为"和平攻击模式"(30秒)后系统^
116#会将打擂双方自动切换为"全体攻击模式"。^
116#单人打擂时间为(10分钟),地图内禁用回城、随机等物品^
116#强行退出游戏系统默认为战败方处理,胜利者获得挑战方^
116#的(80%)赌注并且退还自己的赌注,若(10分钟)内未分胜负^
116#则打擂结束,双方的赌注各扣除(10%)并且传送回城。^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
250#关于组队规则^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
146#组队打擂的胜败决定于(队长的死活)队长死亡或退出则输^
146#每组队员上限5人,由队长设置赌注额度并且支付相应赌注^
146#将队员带进地图,(10分钟)内若没有玩家接受挑战系统会^
146#将其队员传送回城并退还所有赌注给队长。^
146#当挑战方进入地图后(30秒)后系统会将打擂双方自动切换^
146#为"全体攻击模式"挑战时间为(15分钟)^
146#胜利者获得挑战方的(80%)赌注并且退还自己的赌注^
146#若(15分钟)内未分胜负则打擂结束,双方的赌注各扣除^
146#(10%)并且传送回城。^
>\
[@InPutInteger50]
#IF
Small N50 10000
#ACT
MESSAGEBOX 错误:最低赌注少于10000元宝,请输入正确的数值。
BREAK
#IF
large N50 1000000
#ACT
MESSAGEBOX 错误:最高赌注大于1000000元宝,请输入正确的数值。
BREAK
#IF
CHECKVAR GLOBAL 甲方名字 = <$USERNAME>
#ACT
MESSAGEBOX 你已经是本届摆擂方!
BREAK
#IF
CHECKVAR GLOBAL 甲方名字 =
#ACT
#ELSEACT
MESSAGEBOX 本届摆擂方已经存在,你可以选择挑战!
BREAK
#IF
checkjob warrior
#ACT
MOV S50 战士
#IF
checkjob wizard
#ACT
MOV S50 法师
#IF
checkjob taoist
#ACT
MOV S50 道士
#IF
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
GOTO @组队摆擂
BREAK
#IF
CHECKGAMEGOLD ? N50
CHECKVAR GLOBAL 擂台模式 = 单挑
#ACT
GAMEGOLD - <$STR(N50)>
mapmove MGleitai 45 39
SetHumAttackMode 1 65535
MOV <$GLOBAL(擂台状态)> 等待
MOV <$GLOBAL(打擂赌注)> <$STR(N50)>
MOV <$GLOBAL(甲方名字)> <$USERNAME>
MOV <$GLOBAL(甲方属性)> <Img:1613:3:127:12|253#<$USERNAME>^99#┄┄┄┄┄┄┄┄^150#等级:<$LEVEL>^239#职业:<$STR(S50)>^254#防御:<$AC>-<$MAXAC>^254#魔防:<$MAC>-<$MAXMAC>^223#攻击:<$DC>-<$MAXDC>^223#魔法:<$MC>-<$MAXMC>^223#道术:<$SC>-<$MAXSC>^>
ADDNAMELIST ..\QuestDiary\领先擂台\打擂名单.txt
SAVEVAR GLOBAL 甲方名字 ..\QuestDiary\领先擂台\擂台数据.txt
SAVEVAR GLOBAL 打擂赌注 ..\QuestDiary\领先擂台\擂台数据.txt
SendCenterMsg 254 0 <$USERNAME>:拿出[<$GLOBAL(打擂赌注)>]元宝摆擂成功,需要挑战的勇士抓紧时间 1 30
BREAK
#ELSEACT
MESSAGEBOX 本局为单挑打擂模式\ \你的元宝不足【<$STR(N50)>】无法申请摆擂。
BREAK
[@组队摆擂]
#IF
ISGROUPMASTER
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
#ELSEACT
MESSAGEBOX 本局为组队打擂模式\ \你不是队长,只有队长才能带队进入地图。
BREAK
#IF
CHECKGROUPMEMBERCOUNT < 5
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
#ELSEACT
MESSAGEBOX 每组最高限制5人
BREAK
#IF
CHECKGAMEGOLD ? N50
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
GAMEGOLD - <$STR(N50)>
GROUPMAPMOVE MGleitai 45 39 1 @攻击模式
MOV <$GLOBAL(擂台状态)> 等待
MOV <$GLOBAL(打擂赌注)> <$STR(N50)>
MOV <$GLOBAL(甲方名字)> <$USERNAME>
MOV <$GLOBAL(甲方属性)> <Img:1613:3:127:12|253#<$USERNAME>^99#┄┄┄┄┄┄┄┄^150#等级:<$LEVEL>^239#职业:<$STR(S50)>^254#防御:<$AC>-<$MAXAC>^254#魔防:<$MAC>-<$MAXMAC>^223#攻击:<$DC>-<$MAXDC>^223#魔法:<$MC>-<$MAXMC>^223#道术:<$SC>-<$MAXSC>^99#┄┄┄┄┄┄┄┄^243#小组队员人数:<$GROUPMEMBERCOUNT>^>
SAVEVAR GLOBAL 甲方名字 ..\QuestDiary\领先擂台\擂台数据.txt
SAVEVAR GLOBAL 打擂赌注 ..\QuestDiary\领先擂台\擂台数据.txt
SendCenterMsg 254 0 <$USERNAME>:拿出[<$GLOBAL(打擂赌注)>]元宝摆擂成功,需要挑战的勇士抓紧时间 1 30
BREAK
#ELSEACT
MESSAGEBOX 本局为组队打擂模式\ \你的元宝不足【<$STR(N50)>】无法申请摆擂。
BREAK
[@挑战打擂]
#IF
CHECKVAR GLOBAL 甲方名字 =
#ACT
MESSAGEBOX 当前没有玩家摆擂,无法接受挑战。
BREAK
#IF
CHECKVAR GLOBAL 乙方名字 =
#ACT
#ELSEACT
MESSAGEBOX 抱歉!你来晚了哦,你现在只能进入观战。
BREAK
#IF
checkjob warrior
#ACT
MOV S50 战士
#IF
checkjob wizard
#ACT
MOV S50 法师
#IF
checkjob taoist
#ACT
MOV S50 道士
#IF
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
GOTO @组队打擂
BREAK
#IF
CHECKGAMEGOLD ? <$GLOBAL(打擂赌注)>
CHECKVAR GLOBAL 擂台模式 = 单挑
#ACT
mapmove MGleitai 45 39
GAMEGOLD - <$GLOBAL(打擂赌注)>
SetHumAttackMode 1 65535
MOV <$GLOBAL(擂台状态)> 预备
MOV <$GLOBAL(打擂计时)> 0
MOV <$GLOBAL(乙方名字)> <$USERNAME>
MOV <$GLOBAL(乙方属性)> <Img:1613:3:11:44|253#<$USERNAME>^99#┄┄┄┄┄┄┄┄^150#等级:<$LEVEL>^239#职业:<$STR(S50)>^254#防御:<$AC>-<$MAXAC>^254#魔防:<$MAC>-<$MAXMAC>^223#攻击:<$DC>-<$MAXDC>^223#魔法:<$MC>-<$MAXMC>^223#道术:<$SC>-<$MAXSC>^>
SAVEVAR GLOBAL 乙方名字 ..\QuestDiary\领先擂台\擂台数据.txt
ADDNAMELIST ..\QuestDiary\领先擂台\打擂名单.txt
SendCenterMsg 254 252 <$USERNAME>:拿出[<$GLOBAL(打擂赌注)>]元宝进行打擂 1 30
BREAK
#ELSEACT
MESSAGEBOX 本局为单挑打擂模式\ \你的元宝不足【<$GLOBAL(打擂赌注)>】无法打擂。
BREAK
[@组队打擂]
#IF
ISGROUPMASTER
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
#ELSEACT
MESSAGEBOX 本局为组队打擂模式\ \你不是队长,只有队长才能带队进入地图。
BREAK
#IF
CHECKGROUPMEMBERCOUNT < 5
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
#ELSEACT
MESSAGEBOX 每组最高限制5人
BREAK
#IF
CHECKGAMEGOLD ? <$GLOBAL(打擂赌注)>
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
GROUPMAPMOVE MGleitai 45 39 1 @攻击模式
GAMEGOLD - <$GLOBAL(打擂赌注)>
MOV <$GLOBAL(擂台状态)> 预备
MOV <$GLOBAL(打擂计时)> 0
MOV <$GLOBAL(乙方名字)> <$USERNAME>
MOV <$GLOBAL(乙方属性)> <Img:1613:3:11:44|253#<$USERNAME>^99#┄┄┄┄┄┄┄┄^150#等级:<$LEVEL>^239#职业:<$STR(S50)>^254#防御:<$AC>-<$MAXAC>^254#魔防:<$MAC>-<$MAXMAC>^223#攻击:<$DC>-<$MAXDC>^223#魔法:<$MC>-<$MAXMC>^223#道术:<$SC>-<$MAXSC>^99#┄┄┄┄┄┄┄┄^243#小组队员人数:<$GROUPMEMBERCOUNT>^>
SAVEVAR GLOBAL 乙方名字 ..\QuestDiary\领先擂台\擂台数据.txt
SendCenterMsg 254 252 <$USERNAME>:拿出[<$GLOBAL(打擂赌注)>]元宝进行打擂 1 30
BREAK
#ELSEACT
MESSAGEBOX 本局为单挑打擂模式\ \你的元宝不足【<$GLOBAL(打擂赌注)>】无法打擂。
BREAK
[@攻击模式]
#ACT
SetHumAttackMode 1 65535
ADDNAMELIST ..\QuestDiary\领先擂台\打擂名单.txt
[@进入观战]
#IF
CHECKLEVEL 42
#ACT
#ELSEACT
MESSAGEBOX 对不起,42级以上的玩家才能进入观战。
BREAK
#IF
CHECKVAR GLOBAL 打擂赌注 = 0
#ACT
MESSAGEBOX 当前没有玩家摆擂,不能进入观战。
BREAK
#ELSEACT
mapmove MGleitai 35 30
SetOnTimer 101 1
SENDMSG 0 {擂台ぐ|151:0:1}:玩家{%s|250:0:1}进入{比武擂台|254:0:1}观战去了{。|250:0:1}
SENDMSG 5 [提示]:你当前为:安全模式
BREAK
[@IsInFilterList]
#ACT
MESSAGEBOX 输入数据中包含了非法字符,请重新编辑!
;==== 擂台管理NPC脚本如下:
(@@InPutString @@InPutInteger)
[@main]
#IF
#ACT
OPENMERCHANTBIGDLG 16 12 1 0 0 0 1 430 0
#IF
CHECKVAR GLOBAL 甲方名字 =
#ACT
MOV S30 <Img:1613:16:127:12>
#ELSEACT
MOV S30 <$GLOBAL(甲方属性)>
#IF
CHECKVAR GLOBAL 乙方名字 =
#ACT
MOV S31 <Img:1613:16:-79:44>
#ELSEACT
MOV S31 <$GLOBAL(乙方属性)>
#IF
#say
<Img:750:16:-10:1>\
<1、进入地图内禁用回城,随机等物品。强退视为输/SCOLOR=191> \
<2、系统自动切换(单挑、组队)两个打擂的模式/SCOLOR=204> \
<3、组队打擂模式的胜败决定于(队长的死活)/SCOLOR=239>\
<$STR(S30)><$STR(S31)><Img:1613:16:-285:74>\
<摆擂方:/SCOLOR=250><$GLOBAL(甲方名字)>\
\ \
<挑战方:/SCOLOR=250><$GLOBAL(乙方名字)>\
\ \
{离<$GLOBAL(擂台状态)>时间/SCOLOR=242} <赌 注:/SCOLOR=250><$GLOBAL(打擂赌注)>\
<$GLOBAL(打擂计时)>\
<模式[/SCOLOR=250>{<$GLOBAL(擂台模式)>/SCOLOR=254}<]/SCOLOR=250>\
<发布消息/SCOLOR=251><Img:1614:16:-58:-7|253#每条消息收费100元宝^/@发布消息>\
<> <刷新时间/SCOLOR=251><Img:1614:16:-58:-7/@main>\
<取消摆擂/SCOLOR=251><Img:1614:16:-58:-7/@取消摆擂> <退出观战/SCOLOR=251><Img:1614:16:-58:-7/@退出观战>\
<> <了解规则/SCOLOR=191><Img:1614:16:-58:-7|
250#关于单挑规则^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
116#当摆擂方进入地图后默认为"和平攻击模式"若(5分钟)内无^
116#人接受挑战系统会自动传送回城并退还所有赌注。^
116#当挑战方进入地图后默认为"和平攻击模式"(30秒)后系统^
116#会将打擂双方自动切换为"全体攻击模式"。^
116#单人打擂时间为(10分钟),地图内禁用回城、随机等物品^
116#强行退出游戏系统默认为战败方处理,胜利者获得挑战方^
116#的(80%)赌注并且退还自己的赌注,若(10分钟)内未分胜负^
116#则打擂结束,双方的赌注各扣除(10%)并且传送回城。^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
250#关于组队规则^
100#┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄^
146#组队打擂的胜败决定于(队长的死活)队长死亡或退出则输^
146#每组队员上限5人,由队长设置赌注额度并且支付相应赌注^
146#将队员带进地图,(10分钟)内若没有玩家接受挑战系统会^
146#将其队员传送回城并退还所有赌注给队长。^
146#当挑战方进入地图后(30秒)后系统会将打擂双方自动切换^
146#为"全体攻击模式"挑战时间为(15分钟)^
146#胜利者获得挑战方的(80%)赌注并且退还自己的赌注^
146#若(15分钟)内未分胜负则打擂结束,双方的赌注各扣除^
146#(10%)并且传送回城。^
>\
[@发布消息]
#OR
CHECKVAR GLOBAL 甲方名字 = <$USERNAME>
CHECKVAR GLOBAL 乙方名字 = <$USERNAME>
#ACT
#ELSEACT
MESSAGEBOX 你没有权利在这里发送任何消息!
BREAK
#IF
CHECKVAR GLOBAL 擂台状态 = 等待
#ACT
#ELSEACT
MESSAGEBOX 当前状态不允许发送消息!
BREAK
#IF
CHECKGAMEGOLD ? 100
#ACT
#ELSEACT
MESSAGEBOX 你的没有100元宝的费用。
BREAK
#IF
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
GAMEGOLD - 100
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}带领他的队员在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}带领他的队员在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}带领他的队员在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDTOPCHATBOARDMSG 0 149 235 60 带领他的队员在擂台内向[全服]发起宣战,需要挑战的抓紧时间。
BREAK
#ELSEACT
GAMEGOLD - 100
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDMSG 0 {擂台ぐ|151:0:1}:勇士{%s|250:0:1}在擂台内向{全服|254:0:1}发起宣战,需要挑战的抓紧时间{。|250:0:1}
SENDTOPCHATBOARDMSG 0 149 235 60 在擂台内向[全服]发起宣战,需要挑战的抓紧时间。
[@退出观战]
#IF
CHECKNAMELIST ..\QuestDiary\领先擂台\打擂名单.txt
#ACT
MESSAGEBOX 擂台上的人员不能随意退出。
BREAK
#ELSEACT
mapmove 3 330 330
BREAK
[@取消摆擂]
#IF
CHECKVAR GLOBAL 甲方名字 = <$USERNAME>
#ACT
#ELSEACT
MESSAGEBOX 你不是摆擂方,无法取消。
BREAK
#IF
CHECKVAR GLOBAL 擂台状态 = 等待
#ACT
MESSAGEBOX 现在取消打擂你将被系统扣除10%的赌注押金 @确定取消摆擂 @取消
#ELSEACT
MESSAGEBOX 已经进入挑战模式,当前状态下无法取消。
BREAK
[@确定取消摆擂]
#IF
CHECKVAR GLOBAL 擂台状态 = 等待
CHECKVAR GLOBAL 擂台模式 = 组队
#ACT
MOV D50 <$GLOBAL(打擂赌注)>
MOV D51 <$GLOBAL(打擂赌注)>
DIV D50 10
DEC D51 <$STR(D50)>
GAMEGOLD + <$STR(D51)>
GROUPMAPMOVE 3 330 330 1 @攻击模式
MOV <$GLOBAL(打擂计时)> 0
SENDMSG 6 取消摆擂成功,系统已经扣除10%费用退还赌注[<$STR(D51)>]元宝
BREAK
#ELSEACT
MESSAGEBOX 已经进入挑战模式,当前状态下无法取消。
BREAK
#IF
CHECKVAR GLOBAL 擂台状态 = 等待
CHECKVAR GLOBAL 擂台模式 = 单挑
#ACT
SetHumAttackMode 0 1
MOV D50 <$GLOBAL(打擂赌注)>
MOV D51 <$GLOBAL(打擂赌注)>
DIV D50 10
DEC D51 <$STR(D50)>
GAMEGOLD + <$STR(D51)>
mapmove 3 330 330
MOV <$GLOBAL(打擂计时)> 0
SENDMSG 6 取消摆擂成功,系统已经扣除10%费用退还赌注[<$STR(D51)>]元宝
BREAK
#ELSEACT
MESSAGEBOX 已经进入挑战模式,当前状态下无法取消。
BREAK
[@攻击模式]
#ACT
SetHumAttackMode 0 1
|