|
刚才发的那个脚本没有讲解清楚,现在给大家简单说明下思路,完整补充讲解下。
法玛盟主脚本https://www.hongyingbbs.com/thread-18411-1-1.html 补充。
脚本所用变量:
A61 -- 盟主人物名
G140 -- 启动挑战书30秒的读秒
G141 -- 启动挑战地图内的1秒-600秒 比赛和领奖时间的配合
G303 -- 盟主拒绝挑站次数
A66 -- 挑战者姓名
A67 -- 挑战者等级
A68 -- 攻击力
G300 -- 玩家交纳元宝5000的数量.
G328 -- 盟主打败挑站者,守护的次数.(必须连续守护成功)
需要创建的文本:
MirServer\Mir200\QuestDiary\数据文件 文件夹下:
玛法盟主.txt -- 但单独存放盟主
玛法对战.txt -- 存放挑战者与盟主 姓名
玛法挑战者.txt -- 单独存放挑战者名字
玛法服务.txt 内有在线命令的脚本 @盟主
MirServer\Mir200\QuestDiary\登陆
封号设置.TXT -- 设置封号和1.2倍攻击的.
代码你也可以放到你的封号设置里去,需要替换下 QMANGE.txt 玛法盟主-3.txt 挑战裁判-mztznpc.txt 里的#CALL 封号设置成你的
需要添加的代码:
MirServer\Mir200\Envir 测试-3.txt 创建盟主雕像的脚本,你也可以在里面写脚本.
MirServer\Mir200\Envir UserCmd.txt 配合在线命令 @盟主
MirServer\Mir200\Envir\Market_Def QFunction-0.txt 配合在线命令 @盟主
下面开始代码思路和解析
用到的变量命令
EQUAL 变量名 数值 ;检测变量是否等于指定数值
LARGE 变量名 数值 ;检测变量是否大于指定数值
SMALL 变量名 数值 ;检测变量是否小于指定数值
MOV 变量名 数值 ;给予变量赋于指定值
INC 变量名 数值 ;给予变量加上指定值
DEC 变量名 数值 ;给予变量减去指定值
$STR() 变量:
P //整数 0~9 私人
G //整数 0~99 私人
D //整数 0~99 私人
M //整数 0~99 私人
I //整数 0~99 全局
A //字符 0~99 全局
S //字符 0~99 全局
H //整数 0~99 全局
MirServer\Mir200\Envir\Market_Def\小龙龙制作 玛法盟主-3.txt
代码段 只讲解核心的了,一些简单我会删除掉不在这个文本里. 安装时请安装单个文件夹下的完整代码
[@main]
<玛法盟主 单挑 赌元宝 任务 激情无限 /SCOLOR=253><目前在任盟主:/SCOLOR=151>{【<$str(A61)>】} \
<待遇一:/SCOLOR=151><全服上线1.2倍攻击,免费洗红,变性./SCOLOR=254>\
<待遇二:/SCOLOR=151><享受 玛法盟主独霸全区 的封号/SCOLOR=254>\\
<待遇三:/SCOLOR=151><享受 唯一人物土城雕像 /SCOLOR=254>\\
<待遇四:/SCOLOR=151><疗伤药5元宝一包购买,30元宝购买苹果/SCOLOR=254>\\
<待遇五:/SCOLOR=151><免费进入三大地图,三国,霍格沃兹,武当神殿/SCOLOR=254>\\
<盟主:成功守护次数:/SCOLOR=254>{【<$str(G328)>】} 连满三次奖励10000元宝 拒绝1次清空 \
<盟主:拒绝挑战次数:/SCOLOR=254>{【<$str(G303)>】} 满三次自动下台 <变量清空/@变量清空> \
<我是盟主/@wsmz> <盟主介绍/@mzjs> <挑战盟主/@tzmz> <玛法特权/@xsmzdy> \
[@xsmzdy]
#IF
checknamelist ..\QuestDiary\数据文件\玛法盟主.txt ;----检测是否是盟主
#ACT
GOTO @mzdyxs
#ELSEACT
MESSAGEBOX 你不是盟主无法享受此待遇.
BREAK
[@tzmz]
#IF
EQUAL A61 0 ;----EQUAL 变量名 数值 ;检测变量是否等于指定数值 也就是说如果A61 变量现在是空的,也就是还未有盟主.
#ACT
GOTO @wsmz ;---- 还未有盟主,直接成为盟主. 跳入@wsmz
#ELSEACT
GOTO @tzmz1 ;---- 是有盟主的,跳入@tzmz1
break
[@wsmz]
#IF
checknamelist ..\QuestDiary\数据文件\玛法盟主.txt
#ACT
messagebox 你已经是盟主了你点什么点.
break
#IF
CHECKGAMEGOLD > 4999
EQUAL A61 0 ;再次检测盟主变量是否为空
#ACT
mov A61 <$USERNAME> ; ----<$USERNAME> 属于服务器玩家姓名变量, 直接可以使用 赋值. 现在A61内的值 为字符串 也就是盟主的姓名了.
GAMEGOLD - 5000
ADDNAMELIST ..\QuestDiary\数据文件\玛法对战.txt ; ----写入文件中将盟主名字
ADDNAMELIST ..\QuestDiary\数据文件\玛法盟主.txt ; ----写入文件中将盟主名字
GuildNoticeMsg 251 0 挑战者[<$STR(A61)>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 挑战者[<$STR(A61)>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 挑战者[<$STR(A61)>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 挑战者[<$STR(A61)>]用5000元宝顺利夺得盟主宝座
CreateNPC <$str(a61)> 3 317 334 35 测试-3 ; ----创建NPC <$str(a61)> 字符串值必须用 <$STR()> 转换后 <$STR(A61)> 显示
#CALL [\登陆\封号设置.txt] @封号设置 ; ----成为盟主 重载封号 和 1.2倍攻击力.
#ELSEACT
MESSAGEBOX 失败的原因如下:\1,你元宝不足5000个.\2,玛法盟主已经有人了,你想获得玛法盟主宝座,需要挑战盟主.
break
[@tzmz1]
#if
CheckOnline <$str(A61)> ; ----检测盟主人物是否在线,(注:现在Leg引擎M2很多都是强制人物在土安全区上线挂机,或者只强制土安全区内的,)
#ACT ;---- 所以这里 CheckOnline ( 检测是一些服在安全区外下线的)
GOTO @检测是否在线 ;---- 在线的话我们跳入 @检测是否在线
#ELSEACT
GOTO @直接成为盟主 ;---- 不在线我们跳入直接成为盟主
break
[@直接成为盟主]
#IF
checknamelist ..\QuestDiary\数据文件\玛法盟主.txt ;---- 这个刚才上面也有,没解释,其实很简单就是防止盟主自己挑战自己.
#ACT
messagebox 你已经是盟主了你点什么点.
break
#IF
CHECKGAMEGOLD > 4999
#ACT
GAMEGOLD - 5000
DelNpc <$str(a61)> ;---- 删除原盟主雕像NPC
mov A61 0 ;---- 这里其实可以不用写,只是之前编.NET时,习惯清变量了.
mov A61 <$USERNAME> ;---- MOV 变量名 数值 ;给予变量赋于指定值 将当前人物名 赋值到 A61 ,MOV 是直接赋值的 也就是有用新值并清空以前的值
CLEARNAMELIST ..\QuestDiary\数据文件\玛法对战.txt ;----CLEARNAMELIST 清空玛法对战.txt 内所有
CLEARNAMELIST ..\QuestDiary\数据文件\玛法盟主.txt ;----CLEARNAMELIST 同上
ADDNAMELIST ..\QuestDiary\数据文件\玛法对战.txt ;---- 重新将新盟姓名主写入进去
ADDNAMELIST ..\QuestDiary\数据文件\玛法盟主.txt
GuildNoticeMsg 251 0 盟主不在线[<$USERNAME>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 盟主不在线[<$USERNAME>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 盟主不在线[<$USERNAME>]用5000元宝顺利夺得盟主宝座
GuildNoticeMsg 251 0 盟主不在线[<$USERNAME>]用5000元宝顺利夺得盟主宝座
CreateNPC <$str(a61)> 3 317 334 35 测试-3 ;---- 创建新盟主雕像
#CALL [\登陆\封号设置.txt] @封号设置
#ELSEACT
MESSAGEBOX 失败的原因如下:\1,你元宝不足5000个.\2,玛法盟主已经有人了,你想获得玛法盟主宝座,需要挑战盟主.
break
[@检测是否在线]
#IF
checknamelist ..\QuestDiary\数据文件\玛法盟主.txt
#ACT
messagebox 你已经是盟主了你点什么点.
break
#IF
LARGE G140 0 ;---- LARGE 变量名 数值 ;检测变量是否大于指定数值 G140 是挑战书启动的30秒. 判断G140是否有值,有表示有其他玩家在给盟主发挑战书.
#ACT
messagebox 有人在挑战了,请稍等片刻吧.
#ELSEACT
goto @我是盟主 ;---- 跳入 @我是盟主
break
[@我是盟主]
< 【挑战盟主】/SCOLOR=254> \
<════════════════════════════/SCOLOR=250> \
\
玛法盟主{【<$str(A61)>】}拒绝挑战次数{【<$str(G303)>】}\
\
挑站被盟主拒绝的话,将返还5000元宝.\
\
<开始输入5000元宝并向盟主发送挑战窗口/@@InPutString170> <返回/@main> \
[@CallInPutString170]] ;---- 自己查看 Leg引擎 引擎说明书 ,一个窗口输入.
#IF
EQUAL s0 5000 ;---- 这个窗口得到都是@CallInPutString170 通常是为 s0 判断s0 是否等于 5000
CHECKGAMEGOLD ? <$STR(s0)> ;--- 转化为元宝的条件来判断.
#ACT
GAMEGOLD - <$STR(s0)> ;--- 用元宝来减
mov G300 <$STR(s0)> ;---赋值给 G300 方便下面的返还给被拒绝的玩家的元宝
sendmsg 6 成功交纳挑战押金<$STR(G300)>元宝.
ADDNAMELIST ..\QuestDiary\数据文件\玛法挑战者.txt ;--- 将玩家姓名写入 玛法挑战者
ADDNAMELIST ..\QuestDiary\数据文件\玛法对战.txt ;--- 将玩家姓名写入 玛法对战, 盟主名字其实也在里面,
GuildNoticeMsg 251 0 玩家[<$USERNAME>]使用5000元宝挑战玛法盟主. ;---这么做只是把盟主与挑战名字放在一起,然后可以同时传送到一个地图。
GuildNoticeMsg 251 0 玩家[<$USERNAME>]使用5000元宝挑战玛法盟主.
GuildNoticeMsg 251 0 玩家[<$USERNAME>]使用5000元宝挑战玛法盟主.
GuildNoticeMsg 251 0 玩家[<$USERNAME>]使用5000元宝挑战玛法盟主.
#CALL [\登陆\封号设置.txt] @封号设置
goto @yfqtz ;跳入 @yfqtz
#ELSEACT
messagebox 你元宝不足5000哦.或者字符输入错误
mov s0 0
mov G300 0
goto @main
break
[@yfqtz]
#IF
equal G140 0
#ACT
INC G140 30 ;--- 给G140 加 30 的值 INC 变量 增加的数值
mov A67 <$USERNAME> ; --- 将当前玩家的姓名 存入 A67
mov A68 <$LEVEL> ; --- 将当前玩家的等级 存入 A68
mov A69 <$MAXDC> ; --- 将当前玩家的等级 存入 A69
SetOnTimer 19 1 ; --- 开启定时 9 每秒执行. 这段代码在 QMANGE.txt 里,下面开始解释
goto @jrtzs
Gmexecute 开始提问 @挑战玛法 ; --- 同时开始发送挑战书. 这段代码在 QMANGE.txt 里,下面开始解释
#ELSEACT
messagebox 有玩家在挑战盟主了,请稍等片刻吧.
break
[@jrtzs]
尊敬的{【<$str(A67)>】}玩家,<挑战书我已经帮你发给盟主老人家了/SCOLOR=254>\
\
<就是不知道他有没有时间接下你的挑战书了/SCOLOR=254>\
\
<亲,请安心等待30秒,勿关闭等待窗口./SCOLOR=254>\
\
你有{【<$str(G140)>】}秒的时间等待,时间为0时为盟主自动放弃拒绝. <刷新秒数/@jrtzs> \
\
<盟主接受挑战,成功后进入地图10秒无敌模式,双方各做准备/SCOLOR=254>\
以上只是部分代码简单展示给大家,修改过的完整回帖就可以下载。
|
上一篇:传奇服务端脚本之法玛盟主脚本,激情PK,雕像,上线提示,伤害吸收.下一篇:传奇服务端等级修炼大师脚本
|