您当前的位置:首页 > 传奇技术

世界排名功能在游戏中的作用和插入方法

本文出处:网游动力作者:本站发布时间:2016-08-14阅读次数:

 一个传世私服服务器能否吸引玩家的因素有很多,比如说武器装备的爆出率是否合理,地图副本是否足够多足够吸引玩家,还有游戏是否做得平衡,还有游戏中的一些新功能都是吸引玩家前来玩游戏的重要因素。游戏中有一个功能可以说服务器中必不可少的一个功能,那就是世界排名功能,这个功能对游戏中的高端玩家来说非常重要,高端玩家可以通过这个功能查看自己在游戏中的名次。

@无限排名运算] 
 
#IF 
CHECKVARLIST $STR(S62) $STR(S60) 
#ACT 
MOV D53 0 
;;SENDMSG 7 完全一样无需操作 
break 
#IF 
TRUE 
#ACT 
MOV S66 $STR(S60) 
#IF 
POS $STR(S61) 降序排列 
PosInList $STR(S64) $STR(S66) S63 
#ACT 
;;SENDMSG 7 降序排列 
MOV S65 $STR(S63) 
GOTO @计算一次大小 
break 
#IF 
POS $STR(S61) 升序排列 
PosInList $STR(S64) $STR(S66) S63 
#ACT 
DELVARLIST $STR(S63) $STR(S60) 
;;SENDMSG 7 删除原来成绩 
MOV D53 1 
GOTO @计算排名位置 
break 
#ELSEACT 
;;SENDMSG 7 没有原来成绩 
MOV D53 1 
GOTO @计算排名位置 
break 
 
[@计算一次大小] 
#IF 
POS $STR(S61) 强化 
POS $STR(S65) = 
#ACT 
GETVALIDSTR $STR(S65) | D52 S65 
GETVALIDSTR $STR(S65) = D55 S65 
DEC S65 1 $STR(D51) 
Trim S65 
ReplaceText S65   
MOV D52 $STR(S65) 
;;SENDMSG 7 一、有成绩做降序比较,成绩值<$STR(D54)>,比较值<$STR(D52)> 
#ELSEACT 
DEC S65 1 $STR(D51) 
Trim S65 
ReplaceText S65   
MOV D52 $STR(S65) 
;;SENDMSG 7 二、有成绩做降序比较,成绩值<$STR(D54)>,比较值<$STR(D52)> 
#IF 
SMALL D54 $STR(D52) 
#ACT 
DELVARLIST $STR(S63) $STR(S60) 
MOV D53 1 
GOTO @计算排名位置 
;;SENDMSG 7 重新排列成绩 
break 
#ELSEACT 
;;SENDMSG 7 保持原成绩 
break 
 
[@计算排名位置] 
#IF 
LARGE D53 $STR(D50) 
#ACT 
;;SENDMSG 7 服务器只记录前<$STR(D50)>名,你目前还无法达到资格。 
break 
#ELSEACT 
ReadRandomStr $STR(S60) S65 $STR(D53) 
MOV D52 0 
MOV D55 0 
#IF 
POS $STR(S61) 强化 
POS $STR(S65) = 
#ACT 
GETVALIDSTR $STR(S65) | D52 S65 
GETVALIDSTR $STR(S65) = D55 S65 
;;SENDMSG 7 第<$STR(D53)>行数值是<$STR(D52)>和<$STR(D55)>,需要插入数字:<$STR(D54)> 
#IF 
LARGE D51 0 
EQUAL S65 无 
#ACT 
MOV D52 0 
;;SENDMSG 7 第<$STR(D53)>行数值是<$STR(D52)>,需要插入数字:<$STR(D54)> 
#IF 
LARGE D51 0 
!EQUAL S65 无 
#ACT 
DEC S65 1 $STR(D51) 
Trim S65 
ReplaceText S65   
MOV D52 $STR(S65) 
;;SENDMSG 7 第<$STR(D53)>行数值是<$STR(D52)>,需要插入数字:<$STR(D54)> 
;-------------------------相同情况记录下一行 
#IF 
!POS $STR(S61) 强化 
EQUAL D52 $STR(D54) 
#ACT 
INC D53 1 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
;;INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
GOTO @计算排名位置 
break 
#IF 
POS $STR(S61) 强化 
EQUAL D52 $STR(D54) 
EQUAL D55 $STR(D61) 
#ACT 
INC D53 1 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
;;INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
GOTO @计算排名位置 
break 
;-------------------------数值大的记录下一行 
#IF 
POS $STR(S61) 降序排列 
LARGE D52 $STR(D54) 
#ACT 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
ReplaceText S60 ..\ ..\ 
INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
break 
;-------------------------数值小的记录下一行(计算比例) 
#IF 
POS $STR(S61) 降序排列(强化) 
EQUAL D52 $STR(D54) 
LARGE D55 $STR(D61) 
#ACT 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
break 
;-------------------------数值小的记录下一行 
#IF 
POS $STR(S61) 升序排列 
SMALL D52 $STR(D54) 
#ACT 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
break 
;-------------------------数值相同记录下一行(计算比例) 
#IF 
POS $STR(S61) 升序排列(强化) 
EQUAL D52 $STR(D54) 
SMALL D55 $STR(D61) 
#ACT 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名,一个相等<$STR(D61)>...<$STR(D55)> 
INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
break 
;-------------------------记录最后一行 
#IF 
EQUAL D52 0 
#ACT 
;;SENDMSG 7 记录完毕!你目前排名第<$STR(D53)>名 
INSERTVARLIST $STR(D53) $STR(S62) $STR(S66) 
break 
#ELSEACT 
INC D53 1 
GOTO @计算排名位置 
}
这个就是本期小编要为各位gm介绍的关于玩家世界排名功能设置的脚本,实际想在游戏中实现这个功能并不算很困难,gm只需要把这个脚本插入到服务器中,以后游戏中的高端玩家就可以在游戏界面找到排名功能,这些玩家就可以看到自己的排名。这对游戏的发展能起到非常重要的促进作用,能增加玩家之间的竞争,同时还让很多没有上榜的玩家有一个目标和榜样。