[System] Fade Unit Color

  • Thread starter Thread starter dh-g
  • Ngày gửi Ngày gửi

dh-g

Fire in the hole!
Lão Làng GVN
Tham gia ngày
29/8/09
Bài viết
2,654
Reaction score
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 :D
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!


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!
Chú ý

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:
Cái này hay đấy chứ! Mỗi tội là Jass... Để xem có hiểu để chuyển thành GUI đc ko nào...
 
thật ra Jass dễ đọc, dễ dùng hơn GUI nhìu :| và Jass thì dùng library (system chẳng hạn) tiện hơn và dễ hơn
 
Fade Unit Color

PHP:
library FadeUnitColor /* by Dhguardianes v1.01 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
        integer R
        integer G
        integer B
        integer A
            
        integer vR
        integer vG
        integer vB
        integer vA
            
        integer oR
        integer oG
        integer oB
        integer 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, this.oR, this.oG, this.oB, 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, R, G, B, 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 :D
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ú ý

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

đã có ver 1.01 tối ưu code và nâng cấp R32
 
ờ trông có vẽ tốt hơn cái trước rùi :8cool_tire:
 
Back
Top