世界排名功能在传奇服务端中的作用和插入方法

来源: 作者: 点击:
@无限排名运算]

{
#IF
CHECKVARLIST$STR(S62)$STR(S60)
#ACT
MOVD530
;;SENDMSG7完全一样无需操作
break
#IF
TRUE
#ACT
MOVS66$STR(S60)
#IF
POS$STR(S61)降序排列
PosInList$STR(S64)$STR(S66)S63
#ACT
;;SENDMSG7降序排列
MOVS65$STR(S63)
GOTO@计算一次大小
break
#IF
POS$STR(S61)升序排列
PosInList$STR(S64)$STR(S66)S63
#ACT
DELVARLIST$STR(S63)$STR(S60)
;;SENDMSG7删除原来成绩
MOVD531
GOTO@计算排名位置
break
#ELSEACT
;;SENDMSG7没有原来成绩
MOVD531
GOTO@计算排名位置
break

[@计算一次大小]
#IF
POS$STR(S61)强化
POS$STR(S65)=
#ACT
GETVALIDSTR$STR(S65)|D52S65
GETVALIDSTR$STR(S65)=D55S65
DECS651$STR(D51)
TrimS65
ReplaceTextS65 
MOVD52$STR(S65)
;;SENDMSG7一、有成绩做降序比较,成绩值<$STR(D54)>,比较值<$STR(D52)>
#ELSEACT
DECS651$STR(D51)
TrimS65
ReplaceTextS65 
MOVD52$STR(S65)
;;SENDMSG7二、有成绩做降序比较,成绩值<$STR(D54)>,比较值<$STR(D52)>
#IF
SMALLD54$STR(D52)
#ACT
DELVARLIST$STR(S63)$STR(S60)
MOVD531
GOTO@计算排名位置
;;SENDMSG7重新排列成绩
break
#ELSEACT
;;SENDMSG7保持原成绩
break

[@计算排名位置]
#IF
LARGED53$STR(D50)
#ACT
;;SENDMSG7服务器只记录前<$STR(D50)>名,你目前还无法达到资格。
break
#ELSEACT
ReadRandomStr$STR(S60)S65$STR(D53)
MOVD520
MOVD550
#IF
POS$STR(S61)强化
POS$STR(S65)=
#ACT
GETVALIDSTR$STR(S65)|D52S65
GETVALIDSTR$STR(S65)=D55S65
;;SENDMSG7第<$STR(D53)>行数值是<$STR(D52)>和<$STR(D55)>,需要插入数字:<$STR(D54)>
#IF
LARGED510
EQUALS65无
#ACT
MOVD520
;;SENDMSG7第<$STR(D53)>行数值是<$STR(D52)>,需要插入数字:<$STR(D54)>
#IF
LARGED510
!EQUALS65无
#ACT
DECS651$STR(D51)
TrimS65
ReplaceTextS65 
MOVD52$STR(S65)
;;SENDMSG7第<$STR(D53)>行数值是<$STR(D52)>,需要插入数字:<$STR(D54)>
;-------------------------相同情况记录下一行
#IF
!POS$STR(S61)强化
EQUALD52$STR(D54)
#ACT
INCD531
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
;;INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
GOTO@计算排名位置
break
#IF
POS$STR(S61)强化
EQUALD52$STR(D54)
EQUALD55$STR(D61)
#ACT
INCD531
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
;;INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
GOTO@计算排名位置
break
;-------------------------数值大的记录下一行
#IF
POS$STR(S61)降序排列
LARGED52$STR(D54)
#ACT
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
ReplaceTextS60..\..\
INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
break
;-------------------------数值小的记录下一行(计算比例)
#IF
POS$STR(S61)降序排列(强化)
EQUALD52$STR(D54)
LARGED55$STR(D61)
#ACT
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
break
;-------------------------数值小的记录下一行
#IF
POS$STR(S61)升序排列
SMALLD52$STR(D54)
#ACT
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
break
;-------------------------数值相同记录下一行(计算比例)
#IF
POS$STR(S61)升序排列(强化)
EQUALD52$STR(D54)
SMALLD55$STR(D61)
#ACT
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名,一个相等<$STR(D61)>...<$STR(D55)>
INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
break
;-------------------------记录最后一行
#IF
EQUALD520
#ACT
;;SENDMSG7记录完毕!你目前排名第<$STR(D53)>名
INSERTVARLIST$STR(D53)$STR(S62)$STR(S66)
break
#ELSEACT
INCD531
GOTO@计算排名位置
}
这个就是本期无度wuduy小编要为各位gm介绍的关于玩家世界排名功能设置的脚本,实际想在游戏中实现这个功能并不算很困难,gm只需要把这个脚本插入到服务器中,以后游戏中的高端玩家就可以在游戏界面找到排名功能,这些玩家就可以看到自己的排名。这对游戏的发展能起到非常重要的促进作用,能增加玩家之间的竞争,同时还让很多没有上榜的玩家有一个目标和榜样。
[顶部]