|
相信大家写铭文系统都会碰到两大问题,
" l1 @1 b; u5 Y6 u5 T' M第一:获取铭文印记对应图片序号4 v5 K0 n- ?# U9 B8 A7 y, o
第二:抽取概率! L8 f/ {0 ^( y- v: R7 G
今天咱们先来说说铭文抽取问题,也是应用到了读写配置项, l7 |( p* L7 L' F& ]
! w; R3 u: P" J X2 s. [$ H- v
传统获取铭文序号有两种方法:
/ \/ ^" L( X" s' w0 z1.铭文直接以图片代码存储,类似这样:- <img:170:54:0:0>
- <img:104:54:0:0>
- <img:171:54:0:0>
- <img:172:54:0:0>
! O" t+ n5 _0 M
5 n' C0 U8 y( t; t4 l) j[color=rgb(51, 102, 153) !important]复制代码
- E, @: a8 p6 w/ Q4 p. ?4 j) Z3 M, H8 M8 G% j% k
缺点是从序号上看来你不知道他是哪个印记。# ]3 U5 M( i1 }6 y4 s
2.铭文以中文存储,或许到以后用GetStringPos 代码从一张总表里获取行数,这个行数就是图片的代码
' W+ z* r$ x. W* r- 铭文表:
- 基本剑术[旋风印]
- 基本剑术[主宰印]
- 基本剑术[幽速印]
- 获取行数:
- GetStringPos 铭文总表 N$铭文代码
( \; `) d0 m% [& L; d
; A4 S9 g3 J1 ?3 ]7 ?[color=rgb(51, 102, 153) !important]复制代码
9 F3 y, U9 |( _! x0 {
r! J" K( g9 |) r& Z7 Y复制代码 # n# Y: J' q' I! S' z9 J X
这样的方法提升了可读性,但是每个铭文的行数必须和资源文件里的序号对应,这个就把位置限制死了,一但有些改动将不好维护& \0 b& u9 x% s ^* y) u
$ H' s. {2 M# d: G/ @7 t
3.接下来说一下优化的写法,8 E# B0 u9 H, \1 y% O: G% `
我们把铭文名称和图片序号代码对应的关系
, g% L( X1 c3 ]写进一个文本文件里,暂且叫做铭文代码表
7 z h8 }; W, G内容是这样6 ~/ B. [" `6 n2 o; u/ {
- [铭文代码]
- 基本剑术[旋风印] = 1
- 施毒术[凌云印] = 41
- 召唤骷髅[迦兰印] = 49
- 诱惑之光[军势印] = 66
- 2 o. V4 T- g2 l' |% }5 d( d
/ i; A7 t" V5 X8 ~1 N+ r4 `$ S2 q" Y
[color=rgb(51, 102, 153) !important]复制代码& i' S: L/ C. x0 f$ v
4 h4 ?' g; Z1 @复制代码
. `( o! i: q' g* S, `4 n5 P. F2 w" m这种方式就很自由了,可以随意顺序写铭文的对应,并且对应的图片序号随时可改
- I, c: S9 r2 i. p% `下面是写抽取代码验证:
9 t6 b+ R$ B3 V( o* G! Z6 q- [@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
8 k1 u- S1 j7 ~; E2 A H e* z$ |0 V( s; W8 r& C
+ m# a* _( i3 `* I) u$ ?
6 M$ k! m- K9 k |
|