GM版本库 发表于 2014-5-12 16:25:40

冲级前三名脚本,完全和AFT相同,完全自己改的哦

[@升级触发]
#IF
CHECKLEVELEX = 48
#ACT
MAPMOVE 0 430 172
break
#IF
CHECKLEVELEX > 71
#ACT
GOTO @检测是不天人
CHANGELEVEL = 71
#IF
EQUAL $AmbitLevel 99
LARGE $AmbitKind 6
#ACT
SENDMSG 5 当前封顶最高境界为上仙九十九重!
BREAK
#IF
EQUAL $AmbitLevel 99
SMALL $AmbitKind 5
#ACT
AmbitLevel = 99
#CALL [\游戏功能\本体排行.txt] @本体排行
#CALL [\封号系统\封号系统.txt] @封号分类
SENDMSG 5 天人最高境界为99重,可飞身仙界了!
BREAK
#IF
LARGE $AmbitKind 2
CHECKLEVELEX \ 65
#ACT
GOTO @检测是不天人
Break
#IF
TRUE
#CALL [\游戏功能\本体排行.txt] @本体排行
#CALL [\封号系统\封号系统.txt] @封号分类以上是功能脚本里的,虽然彩虹引擎没有TOPLIST参数 1 2 3这个变量,但是用脚本完全可以实现的哦 请看下面本体排行里具体的脚本吧呵呵[@本体排行]
{
#IF
EQUAL P10 $STR(P61)
LARGE P11 $STR(S66)
#ACT
MOV P60 0
GOTO @经验降序排序

#IF
RANDOM 1
#ACT
GOTO @本体各种属性

#IF
TRUE
#ACT
MOV P60 0
GOTO @英雄降序排序


[@本体各种属性]
#IF
LARGE $AmbitLevel 0
LARGE $AmbitKind 2
SMALL $AmbitKind 5
#ACT
#IF
LARGE $AmbitLevel 0
LARGE $AmbitKind 4
SMALL $AmbitKind 7
#ACT
#IF
LARGE $AmbitLevel 0
LARGE $AmbitKind 6
#ACT
#IF
LARGE $AmbitKind 2
SMALL $AmbitKind 5
#ACT
FORMATSTR S10 飞升%s重 $NUMTOCHR($AMBITLEVEL)
MOV P10 $AmbitLevel
INC P10 71
MOV P11 $EXP
#IF
LARGE $AmbitKind 4
SMALL $AmbitKind 7
#ACT
FORMATSTR S10 飞仙%s重 $NUMTOCHR($AMBITLEVEL)
MOV P10 $AmbitLevel
INC P10 170
MOV P11 $EXP
#IF
LARGE $AmbitKind 6
#ACT
FORMATSTR S10 上仙%s重 $NUMTOCHR($AMBITLEVEL)
MOV P10 $AmbitLevel
INC P10 269
MOV P11 $EXP
#IF
SMALL $AmbitKind 3
#ACT
FORMATSTR S10 %s级 $NUMTOCHR($LEVEL)
MOV P10 $LEVEL
MOV P11 $EXP


[@英雄降序排序]
#IF
PosINLIST $USERNAME ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0
#ACT
DELVARLIST $STR(S0) ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt

#IF
LARGE P60 5
#ACT
break

#IF
random 1
#ACT
ReadRandomStr ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0 $STR(P60)
MOV P61 0
#IF
!EQUAL S0
#ACT
MOV S60
SPLIT $STR(S0) | S60
MOV P61 $STR(S61)

#IF
LARGE P10 $STR(P61)
#ACT
;本体名字|排行数据|本体等级|职业|性别|行会|当前经验
FORMATSTR S0 %s|%s|%s|%s|%S|%S|%S <$USERNAME>|<$STR(P10)>|<$LEVEL>|<$JOB>|<$GENDER>|<$GUILDNAME>|<$EXP>
INSERTVARLIST $STR(P60) $STR(S0) ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt
#ELSEACT
inc P60 1
goto @英雄降序排序


[@经验降序排序]
#IF
PosINLIST $USERNAME ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0
#ACT
DELVARLIST $STR(S0) ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt

#IF
LARGE P60 5
#ACT
break

#IF
random 1
#ACT
ReadRandomStr ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0 $STR(P60)
MOV P62 0
#IF
!EQUAL S0
#ACT
MOV S60
SPLIT $STR(S0) | S60
MOV P62 $STR(S66)

#IF
LARGE P11 $STR(P62)
#ACT
;本体名字|排行数据|本体等级|职业|性别|行会|当前经验
FORMATSTR S0 %s|%s|%s|%s|%S|%S|%S <$USERNAME>|<$STR(P10)>|<$LEVEL>|<$JOB>|<$GENDER>|<$GUILDNAME>|<$EXP>
INSERTVARLIST $STR(P60) $STR(S0) ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt
#ELSEACT
inc P60 1
goto @经验降序排序

}英雄排名榜的原理嘛,无非就是等级高的排前面,等级相等的经验高的排前面嘛,如是而已,下面就是冲级前三的脚本咯

[@冲级前三名]
{
#IF
random 1
#ACT
ReadRandomStr ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0 0
#IF
!equal S0
#ACT
SPLIT $STR(S0) | S60
MOV A23 $STR(S60)
MOV G13 $STR(S62)
#IF
random 1
#ACT
ReadRandomStr ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0 1
#IF
!equal S0
#ACT
SPLIT $STR(S0) | S60
MOV A24 $STR(S60)
MOV G14 $STR(S62)
#IF
random 1
#ACT
ReadRandomStr ..\QuestDiary\无限排行\本体排行\英雄排名榜.txt S0 2
#IF
!equal S0
#ACT
SPLIT $STR(S0) | S60
MOV A25 $STR(S60)
MOV G15 $STR(S62)
#IF
random 1
#SAY
  为了鼓励传世英雄的等级提升.本服开区<COLOR=GREEN 第三天晚上7:30分>\
只要是<COLOR=GREEN 排行榜前三名且等级达到71级>的玩家可来我这领取奖励!\
<COLOR=897897 今天是本服开区的第[>{COLOR=yellow <$STR(G2)>}<COLOR=897897 ]天>\
<COLOR=897897 排行榜><COLOR=RED 第一名>:奖励为<COLOR=GREEN 祝福水晶+元宝100万>\
<COLOR=897897 排行榜><COLOR=RED 第二名>:奖励为<COLOR=GREEN 元宝50万+特殊戒指一个按职业领取>\
<COLOR=897897 排行榜><COLOR=RED 第三名>:奖励为<COLOR=GREEN 元宝30万>\
<我要领取/@领取第一>当前排行榜第一名是等级为{COLOR=GREEN <$STR(G13)>}级的{COLOR=GREEN <$STR(A23)>}\
<我要领取/@领取第二>当前排行榜第二名是等级为{COLOR=GREEN <$STR(G14)>}级的{COLOR=GREEN <$STR(A24)>}\
<我要领取/@领取第三>当前排行榜第三名是等级为{COLOR=GREEN <$STR(G15)>}级的{COLOR=GREEN <$STR(A25)>}\
[@领取第三]
#IF
EQUAL G2 3
#ACT
goto @发奖励3
#ELSEACT
MessageBox 要新区开区第3天后才能领取,现在新区开区才<$STR(G2)>天!\ \要第3天晚上7:30分才能产生排行榜前三名的玩家~!
break


[@发奖励3]
#IF
CHECKLEVELEX < 71
#ACT
MessageBox 你都没有71级!不要提领取奖励的事情!\ \要到71级才可以领取,否则是前三都没用~!
break
#IF
CHECKNAMELIST ..\QuestDiary\数据文件\比赛第一\排行第三奖.txt
#ACT
delnamelist ..\QuestDiary\数据文件\比赛第一\排行第三奖.txt
GAMEGOLD + 300000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第三名且等级达到71级奖励,获得:<元宝300000个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第三名且等级达到71级奖励,获得:<元宝300000个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第三名且等级达到71级奖励,获得:<元宝300000个>
#ELSEACT
messagebox \你没有权利领取排行榜奖励!\ \排行榜第三名不是你的名字!
break
close


[@领取第二]
#IF
EQUAL G2 3
#ACT
goto @发奖励2
#ELSEACT
MessageBox 要新区开区第3天后才能领取,现在新区开区才<$STR(G2)>天!\ \要第3天晚上7:30分才能产生排行榜前三名的玩家~!
break


[@发奖励2]
#IF
CHECKLEVELEX < 71
#ACT
MessageBox 你都没有71级!不要提领取奖励的事情!\ \要到71级才可以领取,否则是前三都没用~!
break
#IF
CHECKNAMELIST ..\QuestDiary\数据文件\比赛第一\排行第二奖.txt
#ACT
delnamelist ..\QuestDiary\数据文件\比赛第一\排行第二奖.txt
goto @发奖励22
#ELSEACT
messagebox \你没有权利领取排行榜奖励!\ \排行榜第第二名不是你的名字!
break


[@发奖励22]
#IF
checkjob Warrior
#ACT
give 麻痹戒指 1
GAMEGOLD + 500000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<麻痹戒指加元宝50万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<麻痹戒指加元宝50万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<麻痹戒指加元宝50万个>
close
break
#ELSEACT
#IF
checkjob Wizard
#ACT
give 护体戒指 1
GAMEGOLD + 500000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<护体戒指加元宝50万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<护体戒指加元宝50万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<护体戒指加元宝50万个>
close
break
#ELSEACT
#IF
checkjob Taoist
#ACT
give 重生戒指 1
GAMEGOLD + 500000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<重生戒指加元宝50万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<重生戒指加元宝50万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第二名且等级达到71级奖励,获得:<重生戒指加元宝50万个>
close
break

[@领取第一]
#IF
EQUAL G2 3
#ACT
goto @发奖励1
#ELSEACT
MessageBox 要新区开区第3天后才能领取,现在新区开区才<$STR(G2)>天!\ \要第3天晚上7:30分才能产生排行榜前三名的玩家~!
break



[@发奖励1]
#IF
CHECKLEVELEX < 71
#ACT
MessageBox 你都没有71级!不要提领取奖励的事情!\ \要到71级才可以领取,否则是前三都没用~!
break
#IF
CHECKNAMELIST ..\QuestDiary\数据文件\比赛第一\排行第一奖.txt
#ACT
delnamelist ..\QuestDiary\数据文件\比赛第一\排行第一奖.txt
goto @发奖励11
#ELSEACT
messagebox \你没有权利领取排行榜奖励!\ \排行榜第一名不是你的名字!
break
close




[@发奖励11]
#IF
checkjob Warrior
#ACT
give 祝福水晶 1
GAMEGOLD + 1000000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
close
break
#ELSEACT
#IF
checkjob Wizard
#ACT
give 祝福水晶 1
GAMEGOLD + 1000000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
close
break
#ELSEACT
#IF
checkjob Taoist
#ACT
give 祝福水晶 1
GAMEGOLD + 1000000
SENDMSG 8 恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 0 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
SENDMSG 13 (*)恭喜『%S』获得新区开区第3天晚上7:30排行榜第一名且等级达到71级奖励,获得:<祝福水晶加元宝100万个>
close
break
}

补充下哦,为了能像排行榜那样时时刷新还应该加上一句
[@main]
#ACT
#CALL [\游戏功能\本体排行.txt] @本体排行;就是这句哦
#CALL [\游戏功能\冲级奖励.txt] @冲级前三名


最后当然就是在机器人下添加第三天7:30排名产生啦

#IF
EQUAL G2 3
#ACT
ADDVARLIST $GLOBAL(A23) ..\QuestDiary\数据文件\比赛第一\排行第一奖.txt
ADDVARLIST $GLOBAL(A24) ..\QuestDiary\数据文件\比赛第一\排行第二奖.txt
ADDVARLIST $GLOBAL(A25) ..\QuestDiary\数据文件\比赛第一\排行第三奖.txt
ADDCASTLEWARGUILD ALL 沙城 0
SENDMSG 15 [{新区开区前3天冲级第一获奖者已经产生}]
SENDMSG 0 [{新区开区前3天冲级第一获奖者已经产生}]
SENDMSG 0 (+)[全服所有行会统计攻沙列表加载成功]



浦先生。 发表于 2014-5-13 00:15:07

我只是路过,不发表意见

传奇私服发布站 发表于 2014-5-14 02:52:25

报告!别开枪,我就是路过来看看的。。。

嫂子别这样 发表于 2014-5-14 19:34:59

我了个去,顶了

小尖刀 发表于 2014-5-15 16:57:24

纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下

聂博文 发表于 2014-5-16 13:44:50

支持,赞一个

gm论坛 发表于 2014-5-18 01:12:06

好好 学习了 确实不错

传奇私服 发表于 2014-5-18 21:15:08

呵呵。。。不错啊
页: [1]
查看完整版本: 冲级前三名脚本,完全和AFT相同,完全自己改的哦