传奇版本

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

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

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

3

主题

102

回帖

149

积分

版主

Rank: 7Rank: 7Rank: 7

元宝
22
金币
18608

老瑟批群友勋章

发表于 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 | 显示全部楼层

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

使用道具 举报

  • 打卡等级:传奇老炮
  • 打卡总天数:798
  • 打卡总奖励:12507

1

主题

1174

回帖

1175

积分

金牌会员

Rank: 6Rank: 6

元宝
0
金币
15782

老瑟批群友勋章

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

使用道具 举报

  • 打卡等级:热心大叔
  • 打卡总天数:240
  • 打卡总奖励:1873

6

主题

144

回帖

156

积分

注册会员

Rank: 2

元宝
3
金币
1168
发表于 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-21 16:41 , Processed in 0.044070 second(s), 17 queries , Gzip On, Redis On.

Powered by lspm2 X3.4

© 2001-2023 Discuz! Team.

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