|
登录后可查看完整内容和下载
您需要 登录 才可以下载或查看,没有帐号?立即注册
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 名字修改失败
}
|
|