|
相信大家写铭文系统都会碰到两大问题,
3 b9 r. c1 n O. v: _第一:获取铭文印记对应图片序号
) C! S3 g7 p! G/ s. X2 i7 { |第二:抽取概率9 z: a8 z/ h6 h
今天咱们先来说说铭文抽取问题,也是应用到了读写配置项,
. |. X! p+ o! a: D
8 Y* L5 y* w1 L. D传统获取铭文序号有两种方法:7 u& z7 a0 g$ ~) u
1.铭文直接以图片代码存储,类似这样:- <img:170:54:0:0>
- <img:104:54:0:0>
- <img:171:54:0:0>
- <img:172:54:0:0>
3 l4 i( h; w; U, L! U
8 O% _ i( k- }7 G! R, {[color=rgb(51, 102, 153) !important]复制代码5 d! {( w/ L+ z" n+ k6 d" z
& N; L* I- A' w7 \! `% u; l缺点是从序号上看来你不知道他是哪个印记。/ a' |$ }) H! M! z7 o
2.铭文以中文存储,或许到以后用GetStringPos 代码从一张总表里获取行数,这个行数就是图片的代码7 n/ ^, X# d I' T% {6 L8 u
- 铭文表:
- 基本剑术[旋风印]
- 基本剑术[主宰印]
- 基本剑术[幽速印]
- 获取行数:
- GetStringPos 铭文总表 N$铭文代码
* Y# y- V4 k& E6 _+ l7 d 8 P# U6 H& W! f7 b! l( Q7 Z
[color=rgb(51, 102, 153) !important]复制代码
( o% m* D6 l7 X. n9 a3 F {/ H$ @* }* }" d' u, t
复制代码 0 E* t: D" H1 J
这样的方法提升了可读性,但是每个铭文的行数必须和资源文件里的序号对应,这个就把位置限制死了,一但有些改动将不好维护# I1 C; b/ B$ w+ _
1 L! Y" k9 p, o, S3 I- L- u2 C/ `
3.接下来说一下优化的写法,* d0 l1 K1 n* h& _& X' q j
我们把铭文名称和图片序号代码对应的关系
& K9 a0 A) f! U* T4 X Z; W写进一个文本文件里,暂且叫做铭文代码表
& [( N& b4 m8 ~9 Q3 C内容是这样
~( r* h1 S, m' o7 @# m t- [铭文代码]
- 基本剑术[旋风印] = 1
- 施毒术[凌云印] = 41
- 召唤骷髅[迦兰印] = 49
- 诱惑之光[军势印] = 66
- - k/ W; Y% ~5 n$ ^5 W: C( G9 s
' u5 T/ D! V T5 R7 F, d8 p! Y
[color=rgb(51, 102, 153) !important]复制代码
0 e! \" Z% T T/ [0 J# M5 ~6 I) N4 \9 D/ X9 f/ I
复制代码
5 z5 w! c% K. [8 A! U" Y' D这种方式就很自由了,可以随意顺序写铭文的对应,并且对应的图片序号随时可改
/ F' M) V# }7 v2 H下面是写抽取代码验证:
3 ` U$ ?6 b. N- [@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
' Z8 v0 S: o) m( c6 M" l
2 h8 N) W& N) c* p+ a2 Q# Q% K$ n4 X. F! w4 m! t k. b
+ B" `! t# Y' w6 A4 V |
|