找回密码
 立即注册

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

[复制链接]
◇逍遥◆MIR2◇ 发表于 2022-9-10 22:12:25 | 显示全部楼层 |阅读模式
一个传世私服服务器能否吸引玩家的因素有很多,比如说武器装备的爆出率是否合理,地图副本是否足够多足够吸引玩家,还有游戏是否做得平衡,还有游戏中的一些新功能都是吸引玩家前来玩游戏的重要因素。游戏中有一个功能可以说服务器中必不可少的一个功能,那就是世界排名功能,这个功能对游戏中的高端玩家来说非常重要,高端玩家可以通过这个功能查看自己在游戏中的名次。

@无限排名运算]

{
#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只需要把这个脚本插入到服务器中,以后游戏中的高端玩家就可以在游戏界面找到排名功能,这些玩家就可以看到自己的排名。这对游戏的发展能起到非常重要的促进作用,能增加玩家之间的竞争,同时还让很多没有上榜的玩家有一个目标和榜样。

hisbee 发表于 2022-9-11 01:23:20 | 显示全部楼层
淡定,淡定,淡定……
回复

使用道具 举报

imissa 发表于 2022-9-11 06:10:03 | 显示全部楼层
楼主加油,我们都看好你哦。
回复

使用道具 举报

weixiou588 发表于 2022-9-11 15:48:57 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

猫小灰 发表于 2022-9-12 13:25:54 | 显示全部楼层
真是难得给力的帖子啊。
回复

使用道具 举报

dc80 发表于 2022-9-13 16:01:39 | 显示全部楼层
感恩无私的分享与奉献 :)
回复

使用道具 举报

mstester2011 发表于 2022-9-13 20:58:35 | 显示全部楼层
感恩无私的分享与奉献 :)
回复

使用道具 举报

蓝大侠 发表于 2022-9-15 13:13:52 | 显示全部楼层
看到这帖子真是高兴!
回复

使用道具 举报

逆之羽 发表于 2022-9-17 01:53:08 | 显示全部楼层
感恩无私的分享与奉献 :)
回复

使用道具 举报

army22 发表于 2022-9-18 07:44:09 | 显示全部楼层
感恩无私的分享与奉献 :)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|游戏淘宝湾

GMT+8, 2024-11-21 21:53 , Processed in 0.060379 second(s), 54 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024, Oddpp Cloud.

快速回复 返回顶部 返回列表