传奇变量-文本相关
功能: 创建新目录.
ForceDirectories \QuestDiary\新目录\
在指定位置建立一个文本文件.
CreateFile ..\QuestDiary\NewFile.txt
检查行会名字是不是在列表中
CHECKGUILDLIST GuildList.txt
将人物行会名加入列表
ADDGUILDLIST guildlist.txt
删除列表行会名
DELGUILDLIST guildlist.txt
检查人物名字是不是在列表中
CHECKNAMELIST namelist.txt
检查人物在列表中的位置。
CHECKNAMELISTPOSITION List.txt (> < = ) 10 P0
可以检查登录帐号与IP是否匹配
CHECKACCOUNTIPLIST AccountIPList.txt
增加人物帐号在列表中
ADDACCOUNTLIST AccountList.txt
增加人物名在列表中
ADDNAMELIST NameList.txt
删除人物名在列表中
DELNAMELIST NameList.txt
清除列表内容
CLEARNAMELIST namelist.txt
;==========================================
;增加字符串
AddTextList ..\TestList.txt <$USERNAME>
AddTextList ..\TestList.txt 您的名字 您的性别
;删除字符串
DelTextList ..\TestList.txt 您的名字
DelTextList ..\TestList.txt 您的名字 您的性别
功能: 把字符串写入到指定的文本文件中,可以指定写入行.
格式: AddTextListEx 路径 字符串 行(0-65535)
AddTextListEx ..\TestList.txt <$USERNAME> 0
;==========================================
功能: 从文件中随机获取一行字符串
格式: GetRandomText 文件路径 变量(S0--S99) 指定行(0-10000)
例如:随机取一行字符串到S10中.
GetRandomText ..\QuestDiary\测试.txt S10
取特定行的字符串.
GetRandomText ..\QuestDiary\测试.txt S10 5
;==========================================
功能: 取字符串在列表中的下标.
格式: GetStringPos 路径 字符串
说明: 返回值放在人物的N0变量中,如果值=9999999说明没有找到.
其他: 返回值可以通过EQUAL做条件检测
[@main]
#IF
#ACT
GetStringPos ..\QuestDiary\测试.txt 管理员
SendMsg 5 字符串在列表中的位置:<$STR(N0)>
;==========================================
检查字符串是否在指定文件中
CHECKTEXTLIST ..\QuestDiary\充值系统\10元卡号.txt <$STR(S$2)>
CHECKTEXTLIST ..\QuestDiary\充值系统\10元卡号.txt <$STR(S$2)> <$STR(S$3)>
;==========================================
字符串比较处理。
CheckContainsText 字符 字符串检查 //检查字符串是否包涵在另外一个字符串中.
CompareText 字符 字符 // 比较两个字符串是否一样
CheckContainsText gameofmir game
CompareText gameofmir game
;==========================================
检查字符串是否在指定文件中 包含检测 检测的字符串不需要完全相同,文件里的字符包含检测的字符,就会成功
CheckContainsTextList ..\QuestDiary\充值系统\10元卡号.txt <$STR(S2)>
CheckContainsTextListEx ..\QuestDiary\充值系统\10元卡号.txt <$STR(S2)>
CheckContainsTextList 和 CheckContainsTextListEx 区别
CheckContainsTextList 列表文件里保存的是完整的字符。检测列表里的某一行字符是否包含检测的关键字
CheckContainsTextListEx 列表文件里保存的是关键字。检测字符是否包含列表里的某一行关键字
;==========================================
检测字符串长度命令
CheckStringlength 字符串 操作符(<,>,=) 位数
一个汉字位数为2, "》"也为2个字符
CheckStringlength sf100 > 3
;==========================================
字符串替换
ANSIREPLACETEXT 字符串变量 旧字符串 新字符串
mov S1 haom2
ANSIREPLACETEXT <$STR(S1)> gameofmir qq
SENDMSG 6 <$STR(S1)>
;==========================================
功能: 给字符串在前面或者后面增加指定个数的空格.
格式: SetStringBlank 变量(S,A) 长度(1-100) 格式(0, 1)?
说明: 可支持人物S变量或者全局A变量,格式0=前面,1=后面
注意: 第二个参数长度是指增加空格后整个字符串的长度,例如字符HaoM2引擎长度是13,
如果第二个参数设置1 那么实际增加7个空格.
注意: 英文字母和数字占用1个字节(长度),汉字占用2个字节(长度).
MOV S10 HaoM2引擎
SetStringBlank <$STR(S10)> 20 0
SendMsg 5 <$STR(S10)>
MOV S10 HaoM2引擎
SetStringBlank <$STR(S10)> 20 1
;==========================================
DEC对字符型变量操作命令。
MOV命令做了一些改进。
[@Main]
#ACT
MOV S1 HaoM2引擎M2
MOV S2 HaoM2引擎M2
DEC S1 HaoM2引擎 ;删除S1中的“HaoM2引擎”字符串
DEC S2 1 3 ;删除S2中的第1至第3个字符串 这个要注意,一个汉字是2个字节长度,不要删除半个汉字的情况,否则会乱码。
结果 S1=M2
S2=引擎M2
;==========================================
字符串分隔命令:
#IF
gender man
checkjob warrior
#ACT
GetRandomText ..\QuestDiary\装备列表.txt S0 0
EXTRACTSTRING : <$STR(S0)> s1 s2 s3 s4 s5 s6 s7 s8
GIVE <$STR(S1)> 1
GIVE <$STR(S2)> 1
GIVE <$STR(S3)> 1
GIVE <$STR(S4)> 1
GIVE <$STR(S5)> 1
GIVE <$STR(S6)> 1
GIVE <$STR(S7)> 1
GIVE <$STR(S8)> 1
TakeOn <$STR(S1)> 0
TakeOn <$STR(S2)> 1
TakeOn <$STR(S3)> 3
TakeOn <$STR(S4)> 4
TakeOn <$STR(S5)> 5
TakeOn <$STR(S6)> 6
TakeOn <$STR(S7)> 7
TakeOn <$STR(S8)> 8
BREAK
;======================================================
;装备列表.txt 内容
;战神盔甲(男):裁决之杖:绿色项链:黑铁头盔:骑士手镯:骑士手镯:力量戒指:力量戒指
;战神盔甲(女):裁决之杖:绿色项链:黑铁头盔:骑士手镯:骑士手镯:力量戒指:力量戒指
;魔法长袍(男):血饮:恶魔铃铛:道士头盔:龙之手镯:龙之手镯:紫碧螺:紫碧螺
;魔法长袍(女):血饮:恶魔铃铛:道士头盔:龙之手镯:龙之手镯:紫碧螺:紫碧螺
;灵魂战衣(男):无极棍:灵魂项链:道士头盔:三眼手镯:三眼手镯:泰坦戒指:泰坦戒指
;灵魂战衣(女):无极棍:灵魂项链:道士头盔:三眼手镯:三眼手镯:泰坦戒指:泰坦戒指
;======================================================
;写变量可配合inc实现写入数据
#act
inc S0 <$DRESS>
inc S0 :
inc S0 <$WEAPON>
inc S0 :
inc S0 <$HELMET>
;.........后面的自己写
;======================================================
扩展支持自定义变量并支持自动填写数字编号
[@aaa]
#IF
#ACT
; 分隔字符串后,按顺序往S11及以后放
ExtractStringEx | aaa|bbb|ccc|ddd|000 S11
SendMsg 6 <$STR(S11)>,<$STR(S12)>,<$STR(S13)>,<$STR(S14)>,<$STR(S15)>
; 分隔字符串后,依次放自定义变量1,2,3,4及以后放
ExtractStringEx | aaa|bbb|ccc|ddd|000 S$拆分
SendMsg 4 <$STR(S$拆分1)>,<$STR(S$拆分2)>,<$STR(S$拆分3)>,<$STR(S$拆分4)>,<$STR(S$拆分5)>