传奇服务端

 找回密码
 立即注册

简单一步 , 微信登陆

查看: 107|回复: 1
收起左侧

[技术文章] 一个通区检测同名字并改名脚本

[复制链接]

TA在排名榜Top100

金币:暂未上榜

发帖:NO. 76

在线:暂未上榜

576

帖子

5655

金币

29

主题

LV15

Rank: 15Rank: 15Rank: 15

积分
1085
银蛋
8
     在线时间
0 小时
发表于 2024-10-8 16:40:29 | 显示全部楼层 |阅读模式

登录后可查看完整内容和下载

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 154736268 于 2024-10-22 17:12 编辑

    如果引擎没有使用通用数据库作为账号数据,而是使用DBC2000,这个脚本就可以用。
    如果引擎使用通用数据库,如MSSQL,MYSQL等S/C模式的数据库,可以让其他IP存取数据,就不需要这个脚本。
    这个脚本原本不需要,但是某些引擎在合区时,发现无限制仓库在遇到两个相同名字时,会丢失一个角色的仓库数据,这个脚本可以在玩家登录后检测名字是否与其他区的玩家重复,然后改名,来确保无限制仓库在合区时不出现BUG。如果引擎没这个问题,这个脚本无意义。
    检测内容分两个部分,一个首次登录时名字没有其他人使用,就记录下来名字账号和所有在区服,正常游戏。二是,检测到有相同名字后,且不是相同区服和相同ID时,就要弹出改名NPC,改名后正常游戏。

[@名称检测]
{
#IF
NOT checknamelist ..\..\..\同名检测\游戏名称表.txt
#ACT;
addnamelist ..\..\..\同名检测\游戏名称表.txt
AddTextListEx ..\..\..\同名检测\游戏ID号.txt <$USERNAME>:<$USERID>:<$SERVERNAME>:X
BREAK

#IF
checknamelist ..\..\..\同名检测\游戏名称表.txt
#ACT
MOV S90 <$USERNAME>:<$USERID>:<$SERVERNAME>:X

#IF
checknamelist ..\..\..\同名检测\游戏名称表.txt
NOT CheckTextList ..\..\..\同名检测\游戏ID号.txt <$STR(S90)>
#ACT
;这里加锁定脚本,可以限制玩家移动来强制玩家改名============
#SAY
< >\   \
游戏中名字应该是唯一,你的名字已经有人使用了<!!!!>\  \
<输入修改名字/@@InPutString6>\\

[@InPutString6]
#IF
NOT CheckTextList  ..\..\..\同名检测\游戏名称表.txt <$STR(S6)>
#ACT
;角色名称<$username>修改为<$str(s6)>
CHANGEHUMNAME <$username> <$str(s6)>
addnamelist ..\..\..\同名检测\游戏名称表.txt
AddTextListEx ..\..\..\同名检测\游戏ID号.txt <$USERNAME>:<$USERID>:<$SERVERNAME>:X
;添加解除锁定脚本,玩家正常游戏==============
BREAK

#IF
CheckTextList  ..\..\..\同名检测\游戏名称表.txt <$STR(S6)>
#SAY
\  \
【<$str(s6)>】已经被人使用了!!!!!\  \
<重新输入新名字/@@InPutString6>\\

[@ChangeHumNameOK]
#act
SENDMSG 0 【名字修改成功】
CLOSE
;CLOSE可以关闭NPC
[@ChangeHumNameFail]
#act
SENDMSG 0 名字修改失败
}

===改为单文件检测==================================
[@名称检测]
{
#IF
NOT CheckTextList ..\..\..\同名检测\游戏ID号.txt <$USERNAME>
#ACT
AddTextListEx ..\..\..\同名检测\游戏ID号.txt <$USERNAME>:<$USERID>:<$SERVERNAME>:X
BREAK

#IF
;检测到有这个名字,但不是在同个服务区和ID时,要改名。如果有相同ID和区,就正常游戏
CheckTextList ..\..\..\同名检测\游戏ID号.txt <$USERNAME>
NOT CheckTextList ..\..\..\同名检测\游戏ID号.txt <$USERNAME>:<$USERID>:<$SERVERNAME>:X
#ACT
;这里加锁定脚本,可以限制玩家移动来强制玩家改名============
#SAY
< >\   \
游戏中名字应该是唯一,你的名字已经有人使用了<!!!!>\  \
<输入修改名字/@@InPutString6>\\

[@InPutString6]
#IF
NOT CheckTextList  ..\..\..\同名检测\游戏ID号.txt <$STR(S6)>
#ACT
;角色名称<$username>修改为<$str(s6)>
CHANGEHUMNAME <$username> <$str(s6)>
AddTextListEx ..\..\..\同名检测\游戏ID号.txt <$USERNAME>:<$USERID>:<$SERVERNAME>:X
;添加解除锁定脚本,玩家正常游戏==============
BREAK

#IF
CheckTextList  ..\..\..\同名检测\游戏名称表.txt <$STR(S6)>
#SAY
\  \
【<$str(s6)>】已经被人使用了!!!!!\  \
<重新输入新名字/@@InPutString6>\\

[@ChangeHumNameOK]
#act
SENDMSG 0 【名字修改成功】
CLOSE
;CLOSE可以关闭NPC
[@ChangeHumNameFail]
#act
SENDMSG 0 名字修改失败
}









TA在排名榜Top100

金币:暂未上榜

发帖:暂未上榜

在线:暂未上榜

620

帖子

4566

金币

1

主题

LV12

Rank: 12Rank: 12

积分
628
银蛋
0
     在线时间
0 小时
发表于 6 天前 | 显示全部楼层
感谢分享啊
回复 支持 反对

使用道具 举报

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

本版积分规则

查看内容

传奇版本

金装版本

精华版本

商业版本

赚金币方法

如此玩金币

新手教程

返回顶部

手机版|小黑屋|如此玩

Copyright © 2001-2018 RuCiWan Inc. Template by Comsenz Inc. 传奇服务端 | 联系QQ:84985880 | 鲁公网安备 37131102371507号

Powered by RuCiWanX3.4( 陕ICP备19019536号-1 )

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