- 打卡等级:暂无等级
- 打卡总天数:316
- 打卡月天数:26
- 打卡总奖励:255
- 最近打卡:2026-04-26 00:39:47
|
相信大家写铭文系统都会碰到两大问题,
4 V% e* b {7 L8 L3 V第一:获取铭文印记对应图片序号
[5 v. o; O2 Y7 o S0 P第二:抽取概率
2 y+ T$ ^$ ]8 g今天咱们先来说说铭文抽取问题,也是应用到了读写配置项,1 D/ v* A* Q& u
! r5 s# x& Z% `; S3 \0 z& W
传统获取铭文序号有两种方法:
" L" B, g0 @* ~8 U3 O; H1.铭文直接以图片代码存储,类似这样:- <img:170:54:0:0>
- <img:104:54:0:0>
- <img:171:54:0:0>
- <img:172:54:0:0>
$ z! b' A5 `( d5 z5 `1 G 3 ?8 f3 Q& E1 r x# S s; D6 N3 D' t
[color=rgb(51, 102, 153) !important]复制代码3 Y' r, P( _' Z0 [7 v% H, h
8 d* M5 w q7 x缺点是从序号上看来你不知道他是哪个印记。
& k- ^* _3 f3 \" j2 f8 m8 \2.铭文以中文存储,或许到以后用GetStringPos 代码从一张总表里获取行数,这个行数就是图片的代码# O+ u7 ]9 C+ l6 h
- 铭文表:
- 基本剑术[旋风印]
- 基本剑术[主宰印]
- 基本剑术[幽速印]
- 获取行数:
- GetStringPos 铭文总表 N$铭文代码
- 9 s+ q: C4 @; `- t
' S, L; u. Q) b' T3 ]4 j[color=rgb(51, 102, 153) !important]复制代码
: Y @3 @$ \( F- ^$ X+ R
/ B5 g; T' i! S9 l复制代码
, P; u& p/ \- g) i8 W这样的方法提升了可读性,但是每个铭文的行数必须和资源文件里的序号对应,这个就把位置限制死了,一但有些改动将不好维护
' F. C0 X% ^) N9 w
' q8 H* r4 L" r( G* f" `3 I3.接下来说一下优化的写法,
# S8 x- y" J+ U) p b我们把铭文名称和图片序号代码对应的关系
4 k7 a' P) F |5 I- @: T; L% N写进一个文本文件里,暂且叫做铭文代码表" O' \" Z, m, y3 }
内容是这样" _5 Q4 q' Y. }3 F: d! C* c. {$ r6 S
- [铭文代码]
- 基本剑术[旋风印] = 1
- 施毒术[凌云印] = 41
- 召唤骷髅[迦兰印] = 49
- 诱惑之光[军势印] = 66
- x9 y6 I f2 m, w. u6 \ ) Z: ` E6 [) L
[color=rgb(51, 102, 153) !important]复制代码
; Q2 a8 y2 o# L3 J1 D& o" m, d/ w2 n, I( ~, \. g
复制代码
8 s7 T% r1 E, y8 K$ C% K这种方式就很自由了,可以随意顺序写铭文的对应,并且对应的图片序号随时可改5 X7 I& _% q- b8 i% G
下面是写抽取代码验证:
8 {! p9 P' u: g) i- [@main]
- <抽取印记/@chouqu> \
- 您抽取到的第一个印记名字为:{<$STR(S$抽取铭文_1)>/fcolor=151}代码是:{<$STR(N$印记代码1)>/fcolor=215}\
- 您抽取到的第二个印记名字为:{<$STR(S$抽取铭文_2)>/fcolor=151}代码是:{<$STR(N$印记代码2)>/fcolor=215}
- [@chouqu]
- #if
- #act
- GetRandomText ..\QuestDiary\铭文系统\抽取\战士铭文.txt S$抽取铭文_1
- ReadConfigFileItem ..\QuestDiary\铭文系统\抽取\铭文代码表.txt 铭文代码 <$STR(S$抽取铭文_1)> <$STR(N$印记代码1)>
- GetRandomText ..\QuestDiary\铭文系统\抽取\战士铭文.txt S$抽取铭文_2
- ReadConfigFileItem ..\QuestDiary\铭文系统\抽取\铭文代码表.txt 铭文代码 <$STR(S$抽取铭文_2)> <$STR(N$印记代码2)>
- #if
- equal N$印记代码1 <$STR(N$印记代码2)>
- #act
- sendmsg 7 印记相同,重新抽取!
- goto @chouqu
- break
- #if
- not equal N$印记代码1 <$STR(N$印记代码2)>
- #act
- goto @main
1 J8 ?$ ^9 p9 ^2 G' S7 K
5 y3 {0 W2 S( n/ N. w7 ^4 j) p
6 h5 I( F1 o6 k4 J
0 p, Z7 b3 _5 y1 f |
|