|

楼主 |
发表于 2020-1-15 02:01:12
|
显示全部楼层
States.txt By Nefarius( n4 z4 t5 l9 [' {) T4 D- P
4 Z0 T/ i- j( H: `$ ZState:状态ID指针:在诸如skills.txt等文件中需要指明状态的地方会用到这个值,但表达状态属性时一般会写入其ID(行序号)
8 h7 |; I# u3 ?* e7 x5 u5 H
2 B& ~- v0 b; [% F/ bID:无用值,仅作参考:各个状态的内部ID均为其在txt文件中的行序号(排除首行和expansion行之外的序号)
; O7 x1 ?% \0 n' t: {( C6 x# M' b
Group:组号码,同组的几种状态无法并存(例如法师的三种冰甲);需要注意程序不会总是做类似的检测,因此,由技能产生的状态会是正常的,但通过其他方式所获取的状态可能会出现点小问题
: N9 [) q8 O `5 ?" i8 K
7 {+ U- c6 R& J9 {$ w1 |: ^3 lRemhit:单位所拥有的该状态会不会因受到攻击而驱散:此值仅作用于怪物,对玩家无效(并未测试,但从程序代码上来看是这样的)
, K' X( \! t8 }- b9 J' R% r7 u, I2 n1 ~, E! C5 B8 z# {# ]; X% V E, {
Nosend:暂时不详
! Q. W5 t8 v9 `$ `; j& \ Y* }3 ]4 j0 h+ K0 C5 G) T
Transform:该状态是否会改变单位的图像(例如变形状态)
% v+ G4 b, u8 N. h$ q
' d p7 c& |+ k2 T. _- w4 K0 DAura:该状态是否属于光环类:多个光环类状态不会同时显示于游戏中(同时拥有多个光环将循环显示),另外原本在光环作用下的怪物,在被转化后其光环将驱散
* J5 C0 M6 L. y j
1 B) M( [6 S* d' ^& M8 K" kCureable:与拥有治疗能力的NPC对话时,该状态是否能够被驱散+ H7 [% M6 l( J/ X" j/ u1 O
& e. ?& S' W& Q0 N) ~Curse:该状态是否属于诅咒类:多个诅咒类状态不会并存,新的诅咒将取代原先的诅咒;该列值也将决定此状态的持续时间是否受到净化光环和抗诅咒属性的影响
7 w5 B1 A# c0 n4 l& W% O2 b u z0 `. J' [, u! L( Z, e( w
Active:该状态是否有其StateActiveFunc(状态运行函数):这个函数和各个技能所调用的CltDoFunc(客户端行为函数)是一致的,当该状态被激活时此函数会每桢被调用一次
* a' f0 E+ F* j' `- r
! O* n' w% @9 k: z: H. Q/ L; o: aImmed:暂时不详9 o7 g0 {$ X7 u6 L* E+ c
3 V! ]2 b4 _+ r3 t, X" wRestrict:该状态是否会限制某些技能的使用(例如变形状态)& q1 m: R P' R" ~" L; N3 q l
9 k: \3 A) O2 e0 y) L9 ]0 b( ?% f
Disguise:是否为拥有该状态的单位加载其他图像(作用时与Transform列取逻辑“与”)
/ U) _; q& L4 G1 r$ M: O+ f% P4 F+ M) K" r2 b; @
Blue:该状态是否会以最高优先级改变单位颜色
) x" }! `2 s+ W
( Y: G% ]- P4 z) U7 _Attblue,dmgblue,armblue,rfblue,rlblue,rcblue,rpblue:这些列分别用于控制人物状态栏里的命中率、伤害、防御、抗火、抗电、抗冰、抗毒属性是否以蓝色字符显示1 S, f' [, m- }
5 R4 [3 I* r5 Q$ h) T
Stambarblue:耐力条是否以蓝色显示(如耐力神殿的效果那样),而并非决定角色是否拥有无限耐力(事实上耐力神殿的效果也只是给予角色极快的耐力回复速度而不是无限耐力值)
. [) k, N# V4 u
$ |7 I4 E. J+ M& d, P5 \Attred,dmgred,armred,rfred,rlred,rcred,rpred:这些列分别用于控制人物状态栏里的命中率、伤害、防御、抗火、抗电、抗冰、抗毒属性是否以红色字符显示
2 _5 e( i8 F8 `/ H" e! W" {' i5 l; F$ y9 z0 q6 h
Exp:用于判定当某具有该状态的仆从杀死了敌人,其主人是否会得到经验值(事实上该状态的仆从死亡时,其主人也应该获得经验值,但这个算法被某些代码屏蔽掉了)! G$ a/ B/ M; ~- F, [
' w, K, ]: O" |$ F. tPlrstaydeath,Monstaydeath,Bossstaydeath:用于判定单位死亡时,该状态能否被驱散;最后一列可以避免boss的尸体被打碎
. _* S4 J& y3 P7 S$ v) q8 U/ F" \& i1 m5 l2 i4 t
Hide:单位死亡时,其尸体将不会显示出来,同时死亡动画将不播放
& e9 ~* y, O& y/ i* i" U, t
2 E- J: a" O7 z+ j0 r8 ]Shatter:拥有该状态的单位死亡时是否会变成碎片或者爆开;这里主要由硬代码所限定,因此除了超级金怪之外,其他都以冰冻碎片的形式产生
' ]1 ]/ ]1 I8 i& c/ N8 Z6 `
: r; H/ v0 l/ L9 F1 w6 x2 ^9 ?$ kUdead:该状态的单位死亡后,其尸体是否可以被技能或者其他单位的AI所使用7 U+ u7 p3 r( {, h: {- R
4 E0 g9 |7 D" [9 x6 Z) e% w
Life:若此值不为零,则拥有该状态的怪物将无法以正值回复生命
: v, R8 b* q7 {0 z* o% P- e, H8 C; t' r6 L, f/ D9 k7 m
Green:该状态是否会以最高优先级改变单位颜色
. U- V( B0 j$ G0 D6 D2 f- p) w! @* _
Pgsv:该状态是否以渐进的方式作用,并且当其聚气效果最终被激发时会否提升某些状态 y9 O. m6 s# l% y( D, f
! G5 v) Q) }" L y! D: ~Nooverlays:涉及到该状态被覆盖的一项参数,目前还不太清楚# ~/ a( s( J+ k0 z* L! \* f y
/ P+ @; g# W8 I' |6 `3 HNoclear:和上一列雷同,并且也仅作用于上一列值为1的状态7 p2 v: H+ k7 k- y6 }
! ^; O; @% z/ C
Bossinv:具备该状态的仆从是否始终使用其主人的物品状态(例如亚马逊的诱饵会始终与其本人的装备样子保持一致)
# u& G9 y+ W/ z. m% c8 N- {" m# X$ o) {
Meleeonly:具备该状态时仅能使用近身攻击,例如德鲁伊在变身后将无法用弓/十字弓射箭6 K4 a$ w% x/ t- s' H
5 w ?* O N5 h, E9 P, p
Notondead:暂时不详8 z2 K9 ] h: o; i$ V; A! d0 k
0 Z; V" ^+ F5 l% iOverlay1-4:该状态具体在游戏中的表达方式,以及代码的实现方法(采用何种图像效果),不过常用的是Overlay1列
, K3 y: p1 x g; v( r1 E7 d8 y9 { V5 Y: A
Pgoverlay:渐进式技能的聚气效果最终被激发时作用于敌人身上的图像效果. X. }0 p" t" m8 M
- K4 t7 N# o5 h# d# i5 c+ GCastoverlay:该状态初始产生时游戏显示的图像效果(之后被Overlay1或者其他代码规定的实现方式所取代)
3 o4 h) e% n e0 V/ U0 V" w1 G7 |$ D
Removerlay:与前一列相类似,状态将结束时的图像效果
8 G( y! L+ R7 r# I& z! l; J: l! u5 ^1 ~
Stat:拥有该状态的人物所具有的属性,主要用于显示效果(要想为各个状态分配实际属性一般应使用Skills.txt)( P2 o' s8 e I z4 B, K0 D+ J
8 e9 l6 w" E9 K0 Y& C# E* H$ |! iSetfunc:该状态产生时于客户端调用的函数
& i M! K8 W, i G! Y" s% n C! a" ^5 G( t9 b# H5 ~
Remfunc:该状态消失时于客户端调用的函数) L* \( D7 T& ~. O- q! O
3 W- v- N& P' s1 h S0 f5 K
Missile:某些情况下该状态所用到的飞射物,至于如何用到则完全取决于其依存的函数
1 V. t) H% g1 x& a# u9 o8 v; F7 Q5 U& J6 R2 G
Skill:某些代码中该状态所需要用到的技能,但这明显与技能指定状态的原则相悖……% o% w# ~' |# j9 h% g" f4 P
8 J2 e. d+ E# Q, m% dItemtype:该状态能够改变其颜色的物品类型+ B. q6 S* q& @* ?
" Z! v/ R% c/ u& g
Itemtrans:这里填写颜色代码,表示被该状态变为何种颜色(该色彩不作用于物品栏文件,仅作用于人物实际的装备)! V! Y* }5 T8 V4 R
' a3 W: x$ Z; w+ i$ ^" y2 c
Colorpri:该状态使其单位变色的优先权,此值限于0-255之间,最终的物品颜色采用优先权最高的状态色;假如有两个优先权一样的状态并存,则ID小的优先; b) Q$ [4 M% h7 k% L
/ r! B! \* f% p+ T
Colorshift:该状态下单位具体色彩调配的索引,具体色彩取自pl2文件. ?# u" w; D: E6 T
& B- a2 d |, i, i7 }( W
Light-r,Light-g,Light-b:将具备该状态的单位颜色改为此处规定的颜色(RGB)* J$ |& Z0 D/ k+ t3 x3 a
$ y0 N* o5 b7 Y X+ d
Onsound:该状态产生时的音效文件
. Z8 W6 r v T. `: ^8 H- R( f2 j6 @$ g6 x
Offsound:该状态消失时的音效文件
& `* i8 A1 I: s9 Z6 }
4 j9 {" K0 e$ d0 G- C3 ?' lGfxtype:该状态的单位使用哪一类动画文件(1 = 怪物,2 = 角色)
$ K( i& h3 @% L$ b+ j7 w7 }
/ y8 y$ W6 a0 _0 }7 O& Z+ x6 RGfxclass:该状态的单位使用具体哪个动画文件,此列值取自Monstats.txt(对于怪物)或者Charstats.txt(对于角色)的ID" H; k# d. K/ f8 Y) F
Z/ i9 U g' l. ^Cltevent:于客户端可触发该状态的事件(似乎非常不同于服务器端的触发事件)
, m8 H. p; {& X7 L- {8 c, t, Y- c5 P" ?7 ^ y. M! C
Clteventfunc:该状态被客户端事件触发时所调用的函数
- E0 `8 x, N! P
; l: [! K2 X, V% V: y: J5 u9 ?" m: xCltactivefunc:该状态处于激活态时每桢所调用的CltDoFunc(客户端行为函数)* P9 e9 F; u, `, z: D6 H
; x- A1 E% f) y" `Srvactivefunc:该状态处于激活态时每桢所调用的SrvDoFunc(服务器端行为函数)
) @& R0 | I- B5 G& J* D [ |
|