- 29/8/09
- 2,654
- 5,688
Fade Unit Color
PHP:
library FUCR32 /* by Dhguardianes v1.02 and Special thank kingkingyyk3 for ideas (System)
*/ requires R32 /* v1.10 http://goo.gl/ag8a7
*************************************************************************************
* _____ _ _ _ _ _ ____ _
*| ___|_ _ __| | ___| | | |_ __ (_) |_ / ___|___ | | ___ _ __
*| |_ / _` |/ _` |/ _ \ | | | '_ \| | __| | / _ \| |/ _ \| '__|
*| _| (_| | (_| | __/ |_| | | | | | |_| |__| (_) | | (_) | |
*|_| \__,_|\__,_|\___|\___/|_| |_|_|\__|\____\___/|_|\___/|_|
*
*************************************************************************************
* he thong nay giup thay doi mau cua unit fade theo thoi gian
* system nay ban co the su dung cho nhieu muc. dich' khac' nhau! chang han. lam` spell Mirrior
* tao mot dummy ao? mo` dan` theo thoi gian, nhu unit do' dang danh' rat nhanh! ra kha' nhieu` bong' via'!
*
* cach su dung:
* Red: 255
* Green: 255
* Blue: 255
* Alpha: 255( de so 0 se trong suot)
* function FadeUnitColor takes unit U, real R, real G, real B, real A, real sR, real sG, real sB, real sA, real dur returns nothing
*
* Credit:
* xin cam on kingkingyyk3 ve y tuong cach thuc!
*
***************************************************************************************/
private struct repeat extends RepeatData
unit caster
real R
real G
real B
real A
real vR
real vG
real vB
real vA
real oR
real oG
real oB
real oA
method onEnd takes nothing returns nothing
set this.caster = null
endmethod
method onLoop takes nothing returns nothing
set this.oR = this.oR + this.R
set this.oG = this.oG + this.G
set this.oB = this.oB + this.B
set this.oA = this.oA + this.A
call SetUnitVertexColor(this.caster, R2I(this.oR), R2I(this.oG), R2I(this.oB), R2I(this.oA))
endmethod
endstruct
function FadeUnitColor takes unit U, integer R, integer G, integer B, integer A, integer sR, integer sG, integer sB, integer sA, real dur returns nothing
local repeat this = repeat.create(R32_Period, dur)
local integer tik = R2I(dur / R32_Period)
set this.caster = U
set this.oR = R
set this.oG = G
set this.oB = B
set this.oA = A
set this.vR = sR
set this.vG = sG
set this.vB = sB
set this.vA = sA
set this.R = (this.vR - this.oR) / tik
set this.G = (this.vG - this.oG) / tik
set this.B = (this.vB - this.oB) / tik
set this.A = (this.vA - this.oA) / tik
call SetUnitVertexColor(U, R2I(R), R2I(G), R2I(B), R2I(A))
endfunction
endlibrary
Giới thiệu
hệ thống này giúp bạn có thể thay đổi màu sắc của một unit fade theo thời gian
có thể giúp bạn làm những mục đích khác nhau như làm một spell attack ra bóng vía và bạn muốn bóng vía đó sống động hơn hãy làm chút phép màu bằng system này

nó hok đơn thuần là đổi màu sắc mà còn có thể đổi cả alpha giúp unit bạn trong suốt theo ý muốn hoặc trở lại bình thường theo ý thích của bạn!
Trình hàm
function FadeUnitColor takes unit U, real R, real G, real B, real A, real sR, real sG, real sB, real sA, real dur returns nothing
- U là unit bị ảnh hưởng
- R là màu red của unit!
- G là màu green của unit!
- B là màu blue của unit!
- A là Alpha của unit set 255 sẽ hiện hình nếu set 0 thì tàng hình(trong suốt)
- sR là màu red mình muốn đổi
- sG là màu green mình muốn đổi
- sB là màu blue mình muốn đổi
- sA là alpha mình muốn đổi
- dur là thời gian (real) mình muốn nó đổi màu!
Chú ýver 1.02
fix lỗi vấn đề màu không show đúng.
đổi tên thành FUCR32 cho dễ nhận biết vì tránh đụng tên
ver 1.01
cải tiến code đến mức tối ưu nhất!
nâng cấp R32
giảm leak!
System này yêu cầu phải có R32 chỉ chấp nhận ver v1.10 hoặc mới hơn!
và gửi lời cảm ơn tới kingkingyyk3 về cách thức ý tưởng
Download map demo
Link MF:
SystemFadeUnitColor.w3x
Chỉnh sửa cuối:



