传奇版本

 找回密码
 立即注册
20顶赞多版本畅玩暮云计算服务器腾讯云特价机器翎风引擎论坛
奇速论坛欢迎您!点击金币投放广告点击金币投放广告点击金币投放广告
查看: 841|回复: 4

【汤团先生】脚本系列-师父角瑟显示XX的师父脚本

[复制链接]
  • 打卡等级:传奇老炮
  • 打卡总天数:579
  • 打卡总奖励:19555

3

主题

102

回帖

149

积分

版主

Rank: 7Rank: 7Rank: 7

元宝
22
金币
18592

老瑟批群友勋章

发表于 2022-8-13 23:27:14 | 显示全部楼层 |阅读模式
本帖最后由 汤团先生 于 2022-8-14 09:39 编辑

引擎:白嫖V8+G63
脚本功能:在师父角瑟上显示XX的师父。
主要亮点:多师徒系统导致师父角瑟正常不再显示XX的师父,该脚本可以显示全部徒弟的师父。(以我的3个徒弟系统为例)
示意图:(3个徒弟是正常显示的,我为验证出师,特意出师了一个徒弟,截图上就剩2个徒弟)
屏幕截图 2022-08-13 231316.jpg

1、脚本在登录脚本里面触发:
[@Login]

#IF
NOT ISDUMMY
#ACT
#CALL [\功能脚本\登录触发.txt] @称号设置


2、称号设置是

[@称号设置]
{
;s104 会员称号,你可以不用管
#IF
#ACT
;S105 保存全部徒弟列表
GetMasterList S105

#IF
;徒弟列表不为空,即至少有一个徒弟
NOT EQUAL <$STR(S105)>
#ACT
;下面三行是精髓:徒弟列表包含了XXX(大徒弟)   XXX(二徒弟)   XXX(三徒弟),
;所以要使用秘传方法将徒弟列表里面的三个数据分配给三个变量:<$STR(S$大徒弟)> <$STR(S$二徒弟)> <$STR(S$三徒弟)>
;使用字符串分割进行分配
MOV S$无用显示
SetStringBlank <$STR(S$无用显示)> 1 0
EXTRACTSTRING <$STR(S$无用显示)> <$STR(S105)> <$STR(S$大徒弟)> <$STR(S$二徒弟)> <$STR(S$三徒弟)>
;分配好后分别处理这3个变量
GOTO @徒弟处理

#IF
#ACT
DELAYGOTO 100 @最后称号设置

[@最后称号设置]
#IF
#ACT
SETRANKLEVELNAME  %s\<$STR(S$大徒弟)>\<$STR(S$二徒弟)>\<$STR(S$三徒弟)>\<$STR(S104)>

[@徒弟处理]
#IF
;分配后的变量 <$STR(S$大徒弟)> 是类似xxx(大徒弟),得去掉后面的(大徒弟),使用DEC 配合字符串长度实现
NOT EQUAL <$STR(S$大徒弟)>
#ACT
;N108 保存的是字符串长度,同时也是最后一个)的字节数
TextLength <$STR(S$大徒弟)> N108
;N109 是前面第一个(的字节数,因为相差3个汉字,每个汉字2字节,所以N109比N108少7个字节
FORMULATION <$STR(N108)>-7 N109
DEC <$STR(S$大徒弟)> <$STR(N109)> <$STR(N108)>
;截取出真正的徒弟名字后,再加上 的师父  这3个字,大功告成,剩下的2个变量一样的处理方法
MOV S$大徒弟 <$STR(S$大徒弟)>的师父

#IF
NOT EQUAL <$STR(S$二徒弟)>
#ACT
TextLength <$STR(S$二徒弟)> N108
FORMULATION <$STR(N108)>-7 N109
DEC <$STR(S$二徒弟)> <$STR(N109)> <$STR(N108)>
MOV S$二徒弟 <$STR(S$二徒弟)>的师父

#IF
NOT EQUAL <$STR(S$三徒弟)>
#ACT
TextLength <$STR(S$三徒弟)> N108
FORMULATION <$STR(N108)>-7 N109
DEC <$STR(S$三徒弟)> <$STR(N109)> <$STR(N108)>
MOV S$三徒弟 <$STR(S$三徒弟)>的师父
}


评分

参与人数 1金币 +30 收起 理由
传奇版本 + 30 很给力!

查看全部评分

回复

使用道具 举报

  • 打卡等级:热心大叔
  • 打卡总天数:169
  • 打卡总奖励:2133

2

主题

24

回帖

66

积分

注册会员

Rank: 2

元宝
20
金币
2338
发表于 2022-8-14 09:33:21 | 显示全部楼层
版主出品必属精品
回复

使用道具 举报

  • 打卡等级:即来则安
  • 打卡总天数:19
  • 打卡总奖励:137

0

主题

36

回帖

70

积分

注册会员

Rank: 2

元宝
17
金币
193
发表于 2022-8-18 15:17:45 | 显示全部楼层

我也是自己写的脚本。
赶紧把“高质量”几个字擦了,别到时候啪啪打脸了。。
回复

使用道具 举报

  • 打卡等级:传奇老炮
  • 打卡总天数:787
  • 打卡总奖励:12426

1

主题

1074

回帖

1075

积分

金牌会员

Rank: 6Rank: 6

元宝
0
金币
15629

老瑟批群友勋章

发表于 2024-10-23 00:16:56 | 显示全部楼层
版主出品必属精品
回复

使用道具 举报

  • 打卡等级:热心大叔
  • 打卡总天数:237
  • 打卡总奖励:1853

6

主题

144

回帖

156

积分

注册会员

Rank: 2

元宝
3
金币
1140
发表于 2024-10-29 11:07:37 | 显示全部楼层
本帖最后由 cq5388309 于 2024-10-29 11:08 编辑

思路不错,特别是那个空格的处理
用数组,稍微改进了一下,多多指教:
[@称号设置]
{

#IF
#ACT
GetMasterList S105

#IF
NOT EQUAL <$STR(S105)>
#ACT
MOV S$无用显示
SetStringBlank <$STR(S$无用显示)> 1 0
TextReplace <$STR(S105)> <$STR(S$无用显示)> , S$总徒弟名称处理1
GetMasterCount P1
MOV L$徒弟名称后缀 [(大徒弟),(二徒弟),(三徒弟),(四徒弟),(五徒弟),(六徒弟),(七徒弟),(八徒弟),(九徒弟),(十徒弟),(十一徒弟),(十二徒弟),(十三徒弟),(十四徒弟)]
MOV N$徒弟循环次数 0
MOV S$徒弟称号显示
WHILE N$徒弟循环次数 < <$STR(P1)>
DEC <$STR(S$总徒弟名称处理1)> <$STR(L$徒弟名称后缀[<$STR(N$徒弟循环次数)>])>
MOV L$徒弟名称集合 [<$STR(S$总徒弟名称处理1)>]
INC S$徒弟称号显示 \<$STR(L$徒弟名称集合[<$STR(N$徒弟循环次数)>])>的师父
INC N$徒弟循环次数 1
ENDWHILE
SETRANKLEVELNAME  %s<$STR(S$徒弟称号显示)>\<$STR(S104)>

}
回复

使用道具 举报

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

本版积分规则

传奇新手专用服务器

Archiver|手机版|小黑屋|传奇版本 |网站地图

GMT+8, 2024-11-10 11:40 , Processed in 0.055020 second(s), 17 queries , Gzip On, Redis On.

Powered by lspm2 X3.4

© 2001-2023 Discuz! Team.

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