关灯
开启左侧

[引擎说明书] INI_SORT 脚本例子

[复制链接]
自由论坛 发表于 2020-11-14 22:53:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
[@main]
<当前NameRank的排名(名字+数值)/@GetNameRank>   <当前NameRank的排名(名字)/@GetNameRankEx>\ \<关闭/@exit>

[@GetNameRank]
#IF
CHECKLEVEL 0
#ACT
INI_SORT_READ_SECTION_VALUES ..\QuestDiary\IniNameRank.ini NameRank 1 1 0 INI_SORTED_FLAG__NameRank_IV 0
INI_SORT_SECTION_VALUES_COUNT INI_SORTED_FLAG__NameRank_IV D0
SENDMSG 5 获取到排行数据:<$STR(D0)>条

#IF
LARGE D0 1
#ACT
INI_SORT_GET_SECTION_STRING INI_SORTED_FLAG__NameRank_IV S0
;0用于限制最多的排名次数
MOV P0 1
;;S92用于累计排名,#ELSESAY的显示调用
MOV S92
SENDMSG 5 排行数据为:<$STR(S0)>
goto @GetIdentValueLoop



;按顺序获取排行字符串(IDENT_VALUE)到S1~S20
[@GetIdentValueLoop]
#IF
LARGE D0 1
SMALL P0 21
#ACT
MOV S90 S
INC S90 <$STR(P0)>
INI_SORT_GET_IDENT_VALUE_STRING INI_SORTED_FLAG__NameRank_IV <$STR(P0)> <$STR(S90)>

MOV S91 <$STR(S
INC S91 <$STR(P0)>
INC S91 )>

INC S92 <$STR(S91)>
INC S92 \
;;SENDMSG 5 排名<$STR(P0)>:<$STR(S91)>

DEC D0 1
INC P0 1

;;如果这里的排行计算太多,可能引起引擎报死循环的错误,可以替换为:DELAYGOTO 1 @GetIdentValueLoop
GOTO @GetIdentValueLoop

#ELSESAY
<$STR(S0)>的当前排名是:\<$STR(S92)> \ \<关闭/@exit>

#ELSEACT
;;SENDMSG 5 排行信息结束
BREAK


[@GetNameRankEx]
#IF
CHECKLEVEL 0
#ACT
INI_SORT_READ_SECTION_VALUES ..\QuestDiary\IniNameRank.ini NameRank 1 1 0 INI_SORTED_FLAG__NameRank_IVEX 0
INI_SORT_SECTION_VALUES_COUNT INI_SORTED_FLAG__NameRank_IVEX D0
SENDMSG 5 获取到排行数据:<$STR(D0)>条

#IF
LARGE D0 1
#ACT
INI_SORT_GET_SECTION_STRING INI_SORTED_FLAG__NameRank_IVEX S0
;0用于限制最多的排名次数
MOV P0 1
;;S92用于累计排名,#ELSESAY的显示调用
MOV S92
SENDMSG 5 排行数据为:<$STR(S0)>
goto @GetIdentValueLoopEx

;按顺序获取排行,分别获取IDENT和VALUE到S1~S20
[@GetIdentValueLoopEx]
#IF
LARGE D0 1
SMALL P0 21
#ACT
MOV S90 S
INC S90 <$STR(P0)>
MOV S95 M
INC S95 <$STR(P0)>
INI_SORT_GET_IDENT_STRING INI_SORTED_FLAG__NameRank_IVEX <$STR(P0)> <$STR(S90)>
INI_SORT_GET_VALUE_INTEGER INI_SORTED_FLAG__NameRank_IVEX <$STR(P0)> <$STR(S95)>

MOV S91 <$STR(S
INC S91 <$STR(P0)>
INC S91 )>

MOV S93 <$STR(M
INC S93 <$STR(P0)>
INC S93 )>

INC S92 <$STR(S91)>
INC S92 "   -   整数值:"
INC S92 <$STR(S93)>
INC S92 \
;;SENDMSG 5 排名<$STR(P0)>:<$STR(S91)>

DEC D0 1
INC P0 1

;;如果这里的排行计算太多,可能引起引擎报死循环的错误,可以替换为:DELAYGOTO 1 @GetIdentValueLoop
GOTO @GetIdentValueLoopEx

#ELSESAY
<$STR(S0)>的当前排名是:\<$STR(S92)> \ \<关闭/@exit>

#ELSEACT
;;SENDMSG 5 排行信息结束
BREAK

回复

使用道具 举报

 
懒得打字嘛,点击右侧快捷回复 www.zybbk.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

排行榜

关注我们:手机浏览器扫描

手机访问

手机访问

联系方式:

0000-000-000

站长QQ:1006782340

唯一域名:www.zybbk.com

Email:1006782340#qq.com

Copyright   ©2010-2020  传奇论坛Powered by©Zybbk技术支持:Www.zybbk.Com