|
相信大家写铭文系统都会碰到两大问题,
8 h7 N# Q3 }* S6 e第一:获取铭文印记对应图片序号0 n; X) E5 b7 l0 E
第二:抽取概率
) Z/ Q% C6 H7 n2 H: R2 @( S今天咱们先来说说铭文抽取问题,也是应用到了读写配置项,
3 g4 T" y, g- b f9 a( {6 z5 s0 b& k* ?3 y' z
传统获取铭文序号有两种方法:
' M2 l6 S- U+ N2 q! A3 y1.铭文直接以图片代码存储,类似这样:- <img:170:54:0:0>
- <img:104:54:0:0>
- <img:171:54:0:0>
- <img:172:54:0:0>
- 8 N& X' [: _ N; j
$ u- N# U" H9 @
[color=rgb(51, 102, 153) !important]复制代码
1 t; ? E: Q+ {7 z/ U5 }
8 Q ^1 E O- X5 f7 U缺点是从序号上看来你不知道他是哪个印记。
7 {' r- n( ?4 m) |) t2.铭文以中文存储,或许到以后用GetStringPos 代码从一张总表里获取行数,这个行数就是图片的代码! B' R7 P, ?0 s, l
- 铭文表:
- 基本剑术[旋风印]
- 基本剑术[主宰印]
- 基本剑术[幽速印]
- 获取行数:
- GetStringPos 铭文总表 N$铭文代码
- ; L( ~- r, Z) \! T2 E: }
$ C2 }. f& V2 q( _# o5 Q Q! g% v
[color=rgb(51, 102, 153) !important]复制代码2 W8 P3 o9 a1 b! X- @4 S- p
1 k- _5 z( I) M" `/ D复制代码 ; q G; n/ P9 S, C7 f+ [
这样的方法提升了可读性,但是每个铭文的行数必须和资源文件里的序号对应,这个就把位置限制死了,一但有些改动将不好维护
3 c1 o- K0 b* [$ ~) o. S
% T1 ^3 S! T4 I/ C1 v p% U3.接下来说一下优化的写法,' w/ p+ d: ?3 A! B0 b" E; v
我们把铭文名称和图片序号代码对应的关系
( Z: C3 C- b5 U9 q3 B7 g W写进一个文本文件里,暂且叫做铭文代码表% W: @* p3 |5 r* Z) Z, M
内容是这样; `5 Z" F+ G! s+ m) L2 z
- [铭文代码]
- 基本剑术[旋风印] = 1
- 施毒术[凌云印] = 41
- 召唤骷髅[迦兰印] = 49
- 诱惑之光[军势印] = 66
- ( e8 _/ }* f4 I$ g+ e5 N# ~+ ~
: Q1 e& v8 R% r[color=rgb(51, 102, 153) !important]复制代码" m; H: ^9 d, @; u! o+ ]
9 P0 H( O. v2 \5 i$ F" c0 y* _
复制代码 , V" { _; O5 M4 `& k' ^1 X
这种方式就很自由了,可以随意顺序写铭文的对应,并且对应的图片序号随时可改
8 [/ W6 ^8 F, B( f+ K p, x下面是写抽取代码验证:
; w* F% ^# ~2 ~! X ~6 R, [- [@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
* `: B: d& B. ]( s, \; }' C0 l5 u8 J
, }0 z3 z$ g8 R3 \9 w. w# `$ _
7 v) l2 _7 Z7 y8 O* n% ]+ ]$ `6 ?- o! H0 m j- A
|
|