一个通区检测同名字并改名脚本

2025-11-25 0 2

    如果引擎没有使用通用数据库作为账号数据,而是使用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 名字修改失败
}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

爱学GM资源社区 传奇技术 一个通区检测同名字并改名脚本 https://www.2xgm.com/2612.html

相关文章

发表评论
暂无评论