|  | 
 
上一篇:传奇服务端脚本之法玛盟主脚本,激情PK,雕像,上线提示,伤害吸收.下一篇:传奇服务端等级修炼大师脚本| 刚才发的那个脚本没有讲解清楚,现在给大家简单说明下思路,完整补充讲解下。 
 法玛盟主脚本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>\
 
 以上只是部分代码简单展示给大家,修改过的完整回帖就可以下载。
 
 
 
 | 
 |