|
平常他是不显示的,默认的是只有血条,没有数字! # \7 i9 w. F2 A( K
3 i) ?1 ?0 E7 U/ D5 V
如果想让他这样显示按照下面方法做:
2 M* f1 y+ |8 B5 P2 i1 E( ]8 y0 N3 e4 f7 A7 l% t
把下面的lua脚本复制到你服务端 . r) B+ O, A% r* N
3 ~0 F }3 P4 \. s' e/ I8 \\龙途\Flying3D\scripts\模块\主界面\主逻辑.lua 6 a; G$ K6 k" {1 R
; S1 ?# k8 e8 s! x9 D! B里面全部覆盖,注意是全部覆盖! 7 ^* Y* p* @( \( H
+ B/ f( [, _5 @* Q: [然后重新打包pack - W8 W/ t; y3 G+ S
- module(..., package.seeall)
2 o# O8 V/ z2 Y: q2 s - local 实用工具 = require("公用.实用工具")) |/ s- Z- b+ }! G( N4 p% c- m4 j
- m_FlytextPool = {}
# h& C/ d) g& _. J2 M+ D% z4 P" k/ i+ q - m_Flytexts = {}( J+ c0 g: b9 Y+ q+ o& r
- function pushFlytext(flytext)
3 w% |4 d6 C. @ - if flytext.minus then
8 u5 O2 y& \* N: W/ g1 k8 G - flytext.minus:setVisible(false)
7 _7 s S) b T3 _. l# O' s, k - end3 J0 M1 I* X0 ~: y6 n9 a) `" q
- flytext:setAlpha(1)
( y( M) {* F4 W3 m( b, N4 c# R - flytext:reset()
/ |1 m) @1 k% {' [) Q6 n9 F - flytext:removeFromParent()
( `; m- d8 w4 m, B, u; c# Q - m_Flytexts[flytext] = nil( U7 Q" [% I+ `" i
- m_FlytextPool[#m_FlytextPool+1] = flytext
3 \; f* K& q; g4 c# J5 O. i - end
+ \1 X; S( J) f* X - function popFlytext()* }' {. ~' u& G
- if #m_FlytextPool > 0 then
4 m$ @6 f, A- A( Z* N% ~, k - local flytext = m_FlytextPool[#m_FlytextPool], R" n; Q' e+ d
- table.remove(m_FlytextPool, #m_FlytextPool)
' w/ S o" {4 g8 p" g: O+ u - return flytext
, k9 _* U& f8 T; b* G5 ~* l - end
) G0 |2 u8 J2 T5 j9 |* N2 ?' P, n - end
; a. J% k( }0 c0 e% D( A - function showFlytext(role, dechp, crit) Q% Q: O8 s# J5 v7 C
- if 1 then
' v9 b+ b( `* K- `" k" r - return8 U0 R$ |7 U- n0 p& }
- end
8 U7 N( n8 d+ M) o - local flytext = popFlytext() or F3DImage3D:new()$ f% s" o4 o9 Z" d6 d8 A
- if dechp == 0 then& ?& \" F- _$ O2 I9 T
- flytext:setWidth(0)
! Z" c! J2 g, ~0 _% H - flytext:setTextureFile(UIPATH.."公用/fight/miss.png")) M' Q' q; j# V1 e, x8 D# _
- flytext:setOffset(-52, -35)8 N. |$ q0 _0 r: c$ X9 @# ?5 k% c
- elseif dechp < 0 then
' q; X& R& K5 Q) O3 D$ W* ^ - dechp = -dechp9 F; z# o! V) Y" O. U" h
- flytext:setTextureFile(UIPATH.."公用/fight/addHit.png")
5 ^% c% W, Y3 C, n - flytext:setWidth(22): {# F O N5 A6 v* |, k3 b8 o) [) I
- if not flytext.clips then$ k/ G- \, M: s, P' C/ I
- flytext.clips = F3DPointVector:new()$ v% P) R. ~1 C# U. q
- end" t% a9 W: @ D5 c' F. r1 |& a0 R' G
- flytext.clips:clear()
! i- c; g) V; B( b I M - while dechp >= 1 do
/ \& ~. T. U* W& B) L8 v - flytext.clips:push(math.floor(dechp%10), -flytext.clips:size()*22), J+ y" K+ o, C% X$ Y6 N
- dechp = dechp / 10. p; q3 t" c3 E1 t( S1 b
- end
% r& S# d8 _# d* G - flytext:setBatchClips(10, flytext.clips)$ ?& S% S# v5 T
- flytext:setOffset(-22+flytext.clips:size()*11, -50)
- p% P& a/ H6 b - if not flytext.minus then' n4 t$ U( R3 C
- flytext.minus = F3DImage:new()
+ X/ J( @ i/ P1 P7 M7 _ - flytext:addChild(flytext.minus)2 B. t5 s) i/ {% [- `: [' {
- end' G# N5 F2 x/ Z
- flytext.minus:setTextureFile(UIPATH.."公用/fight/addFlag.png")( _ u# U( m+ Z; ~* n- ]! i
- flytext.minus:setPositionX(-(flytext.clips:size()-1)*22-27)
+ {7 b3 K, v. r. A) G) Y5 | - flytext.minus:setPositionY(4): H. P2 o, F) N( V
- flytext.minus:setVisible(true)
% D! i! \: U( ^: Z5 l" r4 y+ W - elseif crit == 1 then
% G( M/ U x2 m# a - flytext:setTextureFile(UIPATH.."公用/fight/criticalHit.png")- V. c9 ]* @, K& d, w* E' k7 y# W5 L, l
- flytext:setWidth(28): ]5 p3 S" z% f
- if not flytext.clips then1 z% b: y! ?5 X+ q
- flytext.clips = F3DPointVector:new()
$ f8 Y2 i g! O3 r+ E$ Z6 D - end* \: c- B# H8 ^! H9 t
- flytext.clips:clear()
7 m. s+ R$ `+ S1 o" S- `4 } - while dechp >= 1 do! y3 L1 M q) [( J9 v2 R. W
- flytext.clips:push(math.floor(dechp%10), -flytext.clips:size()*28)
( l# g( _+ `+ T% V* ] - dechp = dechp / 10
- j! s C' o; N/ d5 Q" A# i2 H - end
9 f8 A0 G [$ {( O# z0 A - flytext:setBatchClips(10, flytext.clips)/ |9 R8 s6 q0 D, D8 C1 ]
- flytext:setOffset(-28+flytext.clips:size()*14, -50)
3 k f: X) t+ ^6 |5 i - if not flytext.minus then, k9 Y0 p9 a, Y" B4 _! l
- flytext.minus = F3DImage:new()
' F& f8 |( H* w+ z - flytext:addChild(flytext.minus)0 [# G; X5 F% L8 [
- end
( b7 u6 S+ t4 F4 k: ^ - flytext.minus:setTextureFile(UIPATH.."公用/fight/criticalFlag.png")
; V2 {+ p ]4 E6 Z4 g$ E7 u' j - flytext.minus:setPositionX(-(flytext.clips:size()-1)*28-55)
3 b9 ?6 u7 b2 w& J - flytext.minus:setPositionY(-5)" a, m, r2 x2 J8 w
- flytext.minus:setVisible(true): Z( F- p/ @2 V. y: I* A$ ^
- else* \/ _" D! b% m e( z$ t
- flytext:setTextureFile(UIPATH.."公用/fight/otherHit.png")
3 L6 S' G! [" {/ g1 Y; S, i+ } - flytext:setWidth(22)& m/ U K4 V6 w+ {6 U& d' C5 ^: ]
- if not flytext.clips then! X0 V; i5 f' p
- flytext.clips = F3DPointVector:new()
. ?# u3 T \2 D" G7 o - end1 O6 b+ @4 }% B# s9 C P2 x$ J. W
- flytext.clips:clear()
3 T# Q4 W8 x m. y t - while dechp >= 1 do
- n* T; ~- |! [ - flytext.clips:push(math.floor(dechp%10), -flytext.clips:size()*22)
" k7 l s6 D, r+ p s6 N - dechp = dechp / 10
1 n# O3 e8 z3 p - end
, W% @) u4 d5 \$ m, d - flytext:setBatchClips(10, flytext.clips)5 v( w! L$ c4 d) c! H
- flytext:setOffset(-22+flytext.clips:size()*11, -50)( v7 e2 t9 T& f/ |9 z' R% D
- if not flytext.minus then
1 t: R! g% S) |/ e# x - flytext.minus = F3DImage:new()0 D. h! N, Y; ?& y; e* A/ ?& B
- flytext:addChild(flytext.minus)9 r& Y9 [* _, D, Q7 Z5 j
- end
# f1 g: T$ m: ^+ _ - flytext.minus:setTextureFile(UIPATH.."公用/fight/otherFlag.png")% b6 n |5 S% X( u* V1 Q$ b
- flytext.minus:setPositionX(-(flytext.clips:size()-1)*22-17)" G9 o% x$ _2 J
- flytext.minus:setPositionY(12)
5 r A' i8 Q$ W$ y - flytext.minus:setVisible(true)
4 a, J. L2 A; z/ @# P - end; [' n4 h. ?8 A
- flytext:setPosition(role:getPositionX(), role:getPositionY(), role:getPositionZ() + 100)--role:getBoxHeight() + 10)1 ~, M- K4 h5 D9 M7 }1 I7 Q7 a
- dechpcont:addChild(flytext)
1 j* u- T4 P7 ^* S4 X3 N - m_Flytexts[flytext] = 1
( n9 n; J/ L% |4 o* A; J - local prop = F3DTweenProp:new()
( P% p# ]7 L& p6 e) A - prop:push("offsetY", -100, F3DTween.TYPE_SPEEDDOWN)6 F+ d3 I# u3 s- p: i
- prop:push("alpha", 0, F3DTween.TYPE_LINEAR)0 I! l+ ?. f" V% h
- F3DTween:fromPool():start(flytext, prop, 1, func_n(function()/ P7 x7 H3 h" {7 V
- pushFlytext(flytext)--flytext:removeFromParent(true)
3 W9 I& u: |* ]+ c/ C - end))
* j c& @6 W/ m6 l( C* G7 R - end- N: e; h, G* B7 p& l
- hpbarpool = {}1 \: @+ T/ v; }: k# e
- function removeMergeHP(hpbar)' `* s9 v3 f! a) i9 j
- if hpbar.mergehp then5 |4 f" z h6 X# k) j, H& r: S
- for i,v in ipairs(hpbar.mergehp) do7 A0 ~$ a* }% Q) s# L9 ^9 m$ x
- v:removeFromParent(true)
+ m2 c0 P3 D* N5 K+ M' n - end! P) T2 @# i1 H3 k, l, v: l
- hpbar.mergehp = nil# Y3 |5 i6 y5 l! i3 L; k
- end7 G' G- t9 R% i( g. _( N1 E
- end
) b* E8 ]# V) C, D t5 ?0 V - function createMergeHP(hpbar, hp, hpmax, mergehp)
* N& P) M% @# o/ F - hpmax = hp4 }5 a* M5 ], K/ T2 J1 e/ H' P
- for i,v in ipairs(mergehp) do
# i+ ]" {$ \6 z- j# Z& O5 v - hpmax = hpmax + (i == #mergehp and v.hpmax or v.hp)2 ?+ C/ ?) Y j( b
- end4 u: _4 F; c) Y8 E
- local perc = hp / hpmax
& b" D6 F7 n* j - hpbar.hpimg:setWidth(hpbar.track:getWidth()*perc)
! a( f- z$ G* c5 H% h - hpbar.mergehp = {}% I0 |9 C7 }" X
- for i,v in ipairs(mergehp) do
1 m( t' T! H! Z/ P" P# \/ T; k0 Q" G - local hpimg = F3DImage:new()
) U" W3 [5 u9 M" {( z8 J* O - local pc = (i == #mergehp and v.hpmax or v.hp) / hpmax
4 R ~1 Y8 ^/ z. N0 D/ l3 R9 h+ v: } - hpimg:setTextureFile("tex_white")
' g1 w6 W! `+ n1 `( U7 G - hpimg:setWidth(hpbar.track:getWidth()*pc-1)
; v' c& D3 o$ A. i3 {& H - hpimg:setHeight(hpbar.track:getHeight())/ V0 a# o$ b2 @4 p+ [
- hpimg:setPositionX(hpbar.track:getWidth()*perc+1)9 X w# @4 t% k) b
- hpimg:getColor():setRGB(v.color)
( W$ t- r( Q. z; h# _ - hpbar.track:addChild(hpimg)7 P/ I, ^4 _+ f" p1 B
- hpbar.mergehp[#hpbar.mergehp+1] = hpimg. ]2 N+ C% z' O! P6 W
- perc = perc + pc8 S* }7 S n8 u) b
- hp = hp + v.hp( j$ Q' z6 }/ [/ b5 Y) b; f- B: c
- end$ x9 C/ |! N5 X2 } v9 r6 |* s3 K$ a
- return hp, hpmax
( h6 f5 }9 {8 H& Q* } - end& v# x, G3 c+ b; N9 b0 h9 O
- function onHpBarInit(e): {) t& w6 X* s) W, `' c& x9 {
- local hpbar = e:getTarget()
' S) t0 u# `) z, a) j! A - hpbar.name = hpbar:findComponent("name")
- \4 r" v2 A) x - local ss = 实用工具.SplitString(hpbar.v.name,"\")
/ R; y2 {6 m: |) T# x; M6 N* R% n - hpbar.name:setTitleText(txt(ss[1]))
7 i, O& Z, o3 `" R. k/ y- u - if #ss > 1 then
2 L4 Z; ?# j$ x) a - hpbar.nameexs = hpbar.nameexs or {}: T3 t; ?; ]- V4 T) t
- for i=2,#ss do
2 j: Q P+ A. V3 n* n+ R - local tf = hpbar.nameexs[i-1] or F3DTextField:new()7 |7 R5 S, P- b4 y7 Y/ Y, C! b% Y$ i
- if g_mobileMode then
) y8 |0 Z9 Y# e% l - tf:setTextFont("宋体",16,false,false,false)% X2 ` i9 E; C8 T+ x+ z
- end8 A/ h/ A" ~8 e( I" i, j: w
- tf:setText(txt(ss[i]))
H) l! {5 v8 n( N- j' L: U - tf:setTextColor(hpbar.namecolor or 0xffffff,0)1 |8 }- i) G, v$ ^
- tf:setPivot(0.5,0.5)
9 D. p) @) |- b - tf:setPositionX(0)
2 ^$ V( |! C3 M% U9 @6 e - tf:setPositionY(50+(i-1)*14)' p2 ] M8 n- k3 W# `
- hpbar:addChild(tf) x" F! ^; g5 G8 K, n
- hpbar.nameexs[i-1] = tf
0 \0 o' |2 Q5 l& X0 L - end
& @4 q+ \$ S. R' s* t/ B - end# s3 n- W* A3 j9 u
- hpbar.name:setVisible(hpbar.showname)
f3 w/ P0 m8 d2 _2 _( L - hpbar.name:setTextColor(hpbar.namecolor or 0xffffff)2 E! c& D+ R V, @0 C# }9 }" k5 a& R
- hpbar.guildname = hpbar:findComponent("guildname")7 Q y( v/ E$ ^' v* d8 H9 X5 w" z
- hpbar.guildname:setTitleText(txt(hpbar.v.guildname or ""))
! |6 f% |5 w' M; E. A" M# ]- j - hpbar.guildname:setVisible(hpbar.showname)2 y7 m. K+ A' t
- hpbar.guildname:setTextColor(hpbar.namecolor or 0xffffff)
, x% O1 V5 A( w7 i: I- K0 t - hpbar.pro = tt(hpbar:findComponent("hpbar"),F3DProgress)
( A+ N1 R4 W6 S1 a% r6 d' ^6 `- G - hpbar.track = hpbar.pro:getTrack()0 ~, a1 L" G+ U, }3 t: W' x
- hpbar.hpimg = F3DImage:new()
1 G9 G2 ^2 d0 X) s9 _, l* | - hpbar.hpimg:setTextureFile("tex_white")0 g! V' N, D( T' m' w( \+ b
- hpbar.hpimg:setWidth(hpbar.track:getWidth())
1 n6 j0 b% Q2 r8 t - hpbar.hpimg:setHeight(hpbar.track:getHeight())
- k7 p$ H. E: Y. w - hpbar.hpimg:getColor():setRGB(hpbar.v.color)
6 A ]1 B. C; {& ]4 j* B* F2 b% t - hpbar.track:addChild(hpbar.hpimg)
/ T6 g: Y% h k1 ~. S# K - local count = F3DTextField:new() --创建一个文字
$ ]! l2 w, X3 C. I W( B, i - count:setPivot(0.5,0.5) --血条文字改为居中' X o8 G, I8 h& A
- count:setPositionX(20)--变更一下血条x位置9 d. V: @5 o1 s6 X% b8 O3 q
- count:setPositionY(-10)--变更一下血条y位置4 u9 R% r5 I* M8 t
- hpbar.pro:addChild(count)--跟名字绑定
' d$ A9 G5 E/ {' Q! I* B - hpbar.count = count --方便下面随时修改血量+ j3 {4 c9 ?; S2 D! K# i6 a. s3 m
- hpbar.count:setText(txt(hpbar.v.hp == hpbar.v.hpmax and "" or hpbar.v.hp.."/"..hpbar.v.hpmax))--变成血量在其它动态变更的地方都做一下修改0 z5 F6 o6 c3 V8 V
- --hpbar.count:setText(txt(hpbar.v.hp == hpbar.v.hpmax and "" or hpbar.v.hp .."/"..hpbar.v.hpmax))--变成血量在其它动态变更的地方都做一下修改, q: Q! F. T7 Q0 b6 p2 O/ H; A
- if not hpbar.v.mergehp then0 F5 O( `0 ?: }0 b( ]3 m
- hpbar.mergehp = nil/ q$ d* Y% p7 M/ \
- hpbar.pro:setMaxVal(hpbar.v.hpmax)
) x5 L1 g( |4 A; v+ Y - hpbar.pro:setCurrVal(hpbar.v.hp)' i, W" j6 Y* e3 e
- hpbar.pro:setVisible(hpbar.v.hp > 0)% U. g. u8 X* i/ s4 m
- else; p% H @$ r2 h7 I1 X9 l
- local hp, hpmax = createMergeHP(hpbar, hpbar.v.hp, hpbar.v.hpmax, hpbar.v.mergehp)
8 E% N. q0 |/ l4 U& O7 p' b1 s- a - hpbar.pro:setMaxVal(hpmax)
# V" ~: k" ^# z$ C! \, _1 f; [2 ? - hpbar.pro:setCurrVal(hp); z- x( v0 F2 |. y" ?) f
- hpbar.pro:setVisible(hp > 0). p1 u7 ]. o( W4 |0 }
- end
0 H5 U% p. z# E! p6 V* Q5 R - end" g! m* j8 c1 G6 C! Y7 ? M
- function setHPBar(role, hp, hpmax, color, name, mergehp, showname, guildname, namecolor)
- w' D1 G" i. ?# R2 G - local newcreate* ]- B9 n: p: b4 r* D9 y
- local hpbar! Y8 j% @1 |6 [1 Q3 j7 i& z
- showname = showname or 显示名字 == 1, [+ o+ r6 g' M: ^* D
- if role.hpbar then# @' b' Z, G. r% n i& x5 L
- hpbar = role.hpbar6 q0 J5 E9 h0 w6 a1 q
- hpbar.showname = showname6 \& k1 S5 y/ A+ k u9 R4 w" y0 g
- hpbar.namecolor = namecolor
6 g: e1 g, c7 j! M2 H! U$ H) b - else
9 r3 h b1 f! `& h% A - if #hpbarpool == 0 then
! Z9 [1 F7 `! n+ g( y6 Z: Y - hpbar = F3DLayout:new()( z: J d6 o! R6 f
- hpbar.showname = showname S6 f0 l9 W7 e
- hpbar.namecolor = namecolor6 @0 }' l+ _, G9 i! o
- hpbar:setLoadPriority(g_uiFastPriority)8 [5 A3 y4 K! T
- hpbar.v = {hp = hp,hpmax = hpmax,color = color,name = name,mergehp = mergehp,guildname = guildname}
) o; P: D9 g5 I" K4 T9 {2 i - hpbar:addEventListener(F3DObjEvent.OBJ_INITED, func_oe(onHpBarInit)); H5 W. ?. D! R
- hpbar:setLayout(g_mobileMode and UIPATH.."血条UIm.layout" or UIPATH.."血条UI.layout")--IS3G and UIPATH.."血条UIn.layout" or # w- L9 R; m6 D+ b
- newcreate = true0 D( E$ V# f4 W+ H# j9 _
- else
+ j; q$ W0 A" g9 N( v; @; m$ C - hpbar = hpbarpool[#hpbarpool]& P" e2 Z3 I5 S$ \: z) L: N5 Q
- hpbar.showname = showname( `% ?; Y" D& r2 l2 N
- hpbar.namecolor = namecolor
+ ~* \9 q" V( {( h9 \ - table.remove(hpbarpool); T" |% H. V9 f0 X- H9 u
- end1 |; N) K/ u: S2 m9 y% ~
- role.hpbar = hpbar
; s U% D5 `+ p - hpbar:setZOrder(-role:getPositionY())0 D7 [* L" `) K0 W9 e U/ V
- hpcont:addChild(hpbar)
- h8 J+ m% J/ ?( _ - end
; a. t& p8 W* O; y, P" V: L0 \ - if newcreate then% d. k7 \! o& g7 `9 l* F1 M
- elseif hpbar:isInited() then
+ V6 s. W3 Y3 j/ n8 D - local ss = 实用工具.SplitString(name,"\")
" c2 u( x/ G& O6 E9 v/ R' N' h - hpbar.name:setTitleText(txt(ss[1]))
5 I1 J; }: E) y7 `0 c. h - if #ss > 1 then
+ U8 Z, h& Z$ A: `+ [7 k2 H( y - hpbar.nameexs = hpbar.nameexs or {}: {6 ~" K+ ?% }2 g# g/ }+ t
- for i=2,#ss do8 U, m' p; ?2 q% _2 [
- local tf = hpbar.nameexs[i-1] or F3DTextField:new()! ^' u& c/ `9 x; k5 M" i
- if g_mobileMode then0 o; Z4 }+ T0 H* o2 Q" y
- tf:setTextFont("宋体",16,false,false,false): t! N0 l. K% Y, v1 _- @7 \! V1 q
- end
7 T9 {9 u4 s5 @7 `" D - tf:setText(txt(ss[i]))/ O7 j2 Y: p8 e# R E
- tf:setTextColor(hpbar.namecolor or 0xffffff,0)
$ E; j& m! n0 C6 Y - tf:setPivot(0.5,0.5)
1 A3 Q+ R$ h: K( I) F - tf:setPositionX(0)
8 c, e$ z" ]6 }& [) [ - tf:setPositionY(50+(i-1)*14)) z8 E; F5 D6 c x) n/ ~
- hpbar:addChild(tf)
# q) \9 k2 N- I6 f - hpbar.nameexs[i-1] = tf% T+ T- s" ? s" E9 w
- end" H1 q8 k4 c" a) L. E( i
- end. s& M6 d& \7 D
- hpbar.guildname:setTitleText(txt(guildname or ""))
8 q3 A+ C$ c% | - hpbar.name:setVisible(hpbar.showname or role == g_hoverObj)
& x- c1 q ?7 C7 b - hpbar.name:setTextColor(hpbar.namecolor or 0xffffff)4 E- Y$ g7 j/ s, S, k
- hpbar.guildname:setVisible(hpbar.showname or role == g_hoverObj)
$ w% v/ x/ o( a - hpbar.guildname:setTextColor(hpbar.namecolor or 0xffffff)
2 M, a8 D# v2 R) ^2 n - if not mergehp then, Y' O0 f- J1 e) [9 l# y0 c
- removeMergeHP(hpbar)
3 o8 N: Z+ r. s C; d+ U. X - hpbar.hpimg:setWidth(hpbar.track:getWidth())4 C+ V3 p4 }! L* k) L
- hpbar.hpimg:getColor():setRGB(color), [0 g1 t n3 Z* w- h
- hpbar.pro:setMaxVal(hpmax)
6 i0 G6 x5 i+ t: q9 |+ z/ ] - hpbar.pro:setCurrVal(hp)$ b* c. p+ A& L) D* }' Y
- hpbar.pro:setVisible(hp > 0)
9 B2 Q5 c" m! a" \ - else( ^% @& n4 l" l3 r: Z- @6 m
- removeMergeHP(hpbar)9 K* H* R7 c$ e \$ w4 s
- hpbar.hpimg:setWidth(hpbar.track:getWidth())
5 {4 J( C x' C- R% P' p - hpbar.hpimg:getColor():setRGB(color)( E, a; t1 f3 x& r, r
- hp, hpmax = createMergeHP(hpbar, hp, hpmax, mergehp)
1 h# q& ~ L. Z/ G6 ` - hpbar.pro:setMaxVal(hpmax)
8 R/ y& v' }8 {8 _ j - hpbar.pro:setCurrVal(hp)6 u0 r: ~5 P* `) z; ?- x5 [
- hpbar.pro:setVisible(hp > 0)) ]' @& i8 a5 l$ w
- end% e0 q0 X. a* r, \6 z1 F9 {& u6 @3 j
- hpbar.count:setText(txt(hp == hpmax and "" or hp.."/"..hpmax))! ^/ a( ~, X+ H
- else ^2 }+ \& w- X5 z0 u5 c
- hpbar.v = {hp = hp,hpmax = hpmax,color = color,name = name,mergehp = mergehp,guildname = guildname}! C& Q$ I9 Z( G& k# X% {
- end
) r/ H* ]& C( S! Q - if not role:isVisible() or (hp == hpmax and not mergehp) then4 I) q# V+ \9 i$ q1 d) s1 h2 p% W
- hpbar:setVisible(true)--false)7 J8 x7 M- E$ k0 Z! Y! i% P8 S
- else
* A# m6 E: ~, n% X - hpbar:setVisible(true)
/ \5 ^; X6 H/ C, y) J# J - end
X/ b0 [' P* u ~2 U7 R( D - end
8 @) u7 `+ Z; P' J: ? - function delHPBar(role)
4 S2 h0 ~! c* \; A" K. x% l - local hpbar = role.hpbar
) Q3 I* z2 s4 Q9 T& c - if hpbar then
! N2 d% o( ]3 [# @1 l - hpbar.showname = nil2 d3 l ~3 I2 F
- hpbar.namecolor = nil: e1 O/ a, _* l; i- Q, v
- if hpbar.titles then( @- d; V2 r) }! k
- for i,v in ipairs(hpbar.titles) do! v% d$ F7 G& Y1 g7 _
- v:removeFromParent(true)
$ A& |6 L* j) g$ | - end
3 G. l8 f9 D0 S6 v" N/ d; [ - 实用工具.DeleteTable(hpbar.titles)
' M9 v6 k( M9 `7 J* d* ], I X - end
& [: {. B6 w0 j3 f } - if hpbar.nameexs then$ V( _$ B* n3 A
- for i,v in ipairs(hpbar.nameexs) do
0 l0 j3 J* N0 E6 {/ `' R2 w: c- y - v:removeFromParent(true)
+ w! u5 k- d' L5 {- F( Y2 c$ n9 L - end
0 n9 O4 y1 @- \+ ~' G3 a7 D - 实用工具.DeleteTable(hpbar.nameexs)7 t( {) ?6 D5 k+ t" M6 ~; Y
- end
. U5 J" a. h% t) b- Z" V. `8 J% T* q - hpbar:removeFromParent(): B$ @, n A: h/ a9 |
- hpbarpool[#hpbarpool] = hpbar
+ `8 Q- E" E4 e; P t z6 t - role.hpbar = nil% @+ { T4 O/ ~* ]4 a/ }
- end [8 c( |( c" n' W' e/ p
- end/ E' ^' x: F$ G& N. m) A0 q
- function updateHPBar(role)& U- `1 V5 S1 Z, ?3 O3 z' t% s
- local hpbar = role.hpbar
# m+ }) z8 G1 F& h# S, ?; ~ - if hpbar then8 R' o0 b1 K5 O9 G4 x
- hpbar:setVisible(role:isVisible())
2 U5 Q# A& D C" r: a - end( o Y+ R. a# V% z: d2 g# q
- if hpbar and hpbar:isVisible() then& e3 I7 G2 f! O
- hpbar:setZOrder(-role:getPositionY())
+ H! o, A. }3 { - local pt = F3DUtils:getScreenPosition(role:getPositionX(), role:getPositionY(), role:getPositionZ() + 100)--role:getBoxHeight() + 20)" Q/ f$ X) C5 Y: s( a2 U( b
- if pt then
! L6 ~! Z' P2 B - hpbar:setPositionX(pt.x)
! E% w" ^) i" z P - hpbar:setPositionY(pt.y)
* V3 j# J, m0 u! J! g - end4 D( e5 R+ @$ Z& j' i
- end
/ _& ~; g: x/ @. F2 R$ D - end
复制代码
4 x8 z& h6 _5 x5 M& Q% _, N3 h) [
2 m+ O0 v$ d, T: l$ _! r |
|