[System] TexttagUtils

Thảo luận trong 'World Editor' bắt đầu bởi vuongkkk, 25/7/11.

  1. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    VTexttag ver 2.3
    Giới thiệu
    Bạn nào thích texttag trong map làm được sinh động hơn ngoài việc chỉ bay lên và biến mất thì dùng system của mình
    Giờ thì system tên là Dynamic Texttag tên rút gọn là DTT
    VTexttag chỉ là 1 thời để nhớ thôi ^^

    Cách để import vào map và cách dùng
    Có nhiều demo lắm rồi ( như Jump style texttag) . Còn hướng dẫn dùng thì đọc trong các trigger.
    TexttagController là chỉ còn là để compability với các ver trước
    Gộp hết lại thành 1 cho tiện
    • DynamicTextTag

    Ưu điểm(Advantages):
    • Chỉnh màu dễ dàng vì theo hệ màu RGB thì có thể dùng mspaint của window để chọn màu cho texttag
    • Dễ dùng vì nó có API khá tương đồng với texttag sẵn có của Blizzard native function
    • Dễ dàng implement các phương thức để thay đổi texttag theo thời gian
    • Nhẹ nhàng(dung lượng), hiệu quả (nuột, ko lag ;;))
    • Quan trọng nhất là có thể tái sử dụng 1 cách đơn giản = cách sử dụng các phương thức để tính toán sự thay đổi đã có và có thể kết hợp các cách tính khác nhau sẽ tạo các style texttag cho riêng mình
    • Có sẵn 11 style texttag do mình viết (Thay normal texttag = Attach texttag)

    Hạn chế (Disadvantages):
    Khó để control nếu bạn ko có chút kiến thức toán học
    Hãy cẩn thận trong việc xử lý nhé, nó không bung ra lỗi hay gì đâu nhưng mà sẽ làm texttag xấu đi hoặc ko hiển thị theo ý muốn. Đấy là lỗi hiển thị, hậu quả của việc cho các bạn full control :p​

    Chú ý (Note):
    - Giữa map là hiện liên tục VTexttag để test FPS. Nếu thấy FPS tụt thì mình cam đoan máy nhà bạn cạc màn hình lởm vì lag đấy là do xử lý hình ảnh chứ ko phải do code =)).
    Đương nhiên đã test trên máy có cạc xịn mới nói
    - Dùng bản mới nhất là 2.2 để cải thiện độ nuột so với các bản cũ cũng như có cách destruction texttag hợp lý hơn cách của blizzard


    Special thanks to:
    Tom_Kazansky . . . . . . . My dear technical supporter :x Always that \:D/
    WaterKnight . . . . . . . . . With texttag knowlegde
    KuKulKan . . . . . . . . . . . Help me with usage. Thanks man ;)
    wewe_1312 . . . . . . . . . He request me :))
    Nestharus . . . . . . . . . . Good destruction behavior

    Đây là map demo
    Link MF:
    VTexttag Ver 2.1c Demo map
    VTexttag Ver 2.3 Demo map
     

    Các file đính kèm:

    Chỉnh sửa cuối: 7/10/14
    [Yami] thích bài này.
  2. KuKulKan

    KuKulKan T.E.T.Я.I.S

    Tham gia ngày:
    2/8/09
    Bài viết:
    629
    Nơi ở:
    Quận Thủ Đức, Thành phố Hồ Chí Minh
    Mã:
        real fp
        method operator fadepoint= takes real time returns nothing
            set .fp = time
        endmethod
        
        real life
        method operator lifetime= takes real time returns nothing
            set .life = time
        endmethod
        
        player p    
        method operator owner= takes player whichPlayer returns nothing
            set .p = whichPlayer
        endmethod
        
        string mes
        real size
        method setText takes string str, real s returns nothing
            set .mes = str
            set .size = s
        endmethod
    Phần Operator Overloading ở fadepoint, lifetime, owner, Kan thấy không cần thiết lắm, sao không gán trực tiếp vào biến luôn khi sử dụng, không phải nhanh hơn sao :-/, nếu là mục đích bảo mật nó thì nên đổi lại private biến đó đi, còn setText thì ok rồi :D

    Mà có cái thế này, nếu chữ dài quá khi size to lên thì tự động chữ nó bị drop xuống hàng, khi size nhỏ lại nó lại nhảy lên...hơi xấu ^^, mà chắc không ai dùng cái này để show 1 đoạn text dài đâu ^O^
     
  3. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    ai da` muốn thế nào là do config mà ra cả. Style này chỉ tạo hiệu ứng cho texttag là trông như nó nảy lên 1 chút. Hình như nó nảy hơi cao thì phải, nhưng cái này cũng hoàn toàn chỉnh được trong trigger TexttagController. Còn màu mè, size, độ dài ... đều có thể điều chỉnh tùy ý mà ko ảnh hưởng đến style đó :)

    TexttagController là lilbrary chứa cách xử lý texttag của bạn theo thời gian

    Về cái Operator cám ơn Kan góp ý, nó là để cho thân thiện dễ nhớ và ý nghĩa hơn là fp, life hay p. Nếu có ver sau chắc mình sẽ sửa lại luôn mấy cái này

    Còn quên 1 cái nữa : cách để demo map là nhấn [Esc] button. Rất xin lỗi vì làm đêm hay xảy ra sự cố ngoài ý muốn thế này :">

    ---------- Post added at 19:05 ---------- Previous post was at 17:21 ----------

    aaaaa Chết ngượng quá :">
    SR mọi người mình vừa mới phát hiện và fix 1 bug nghiêm trọng (do sai sót nhỏ) nên h up lại map demo cho đàng hoàng có khuyến mãi thêm phần thay đổi màu của texttag ờ version mới luôn
     
    Chỉnh sửa cuối: 25/7/11
  4. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Đã thay đổi lần cuối cho cùng và kết thúc phát triển sys này ... ở ver 1.1, nếu còn phát triển thì sẽ là ver 1.2 :))
     
  5. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Có thể nói là system đã hoàn tất với version 1.2, các bạn ai dùng texttag thì dùng sys ver 1.2 của mình nhé. Không dùng cũng cứ down demo map về mà thèm :))
     
  6. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Release Version 1.3
    • Với bản này hiệu suất của system đã được nâng cấp đáng kể với khả năng tái sử dụng texttag.
    • Giờ system là độc lập nền tảng tức không cần system bên ngoài nữa. Trước là cần T32
    • Phân biệt rõ 2 struct với 2 chức năng riêng biệt là config và runtime.
    • Config chỉ lưu các giá trị thuộc tính của texttag, còn runtime mới là texttag thật sự. Vì chỉ là config nên theo ý nghĩa chỉ cần làm 1 lần, lần sau chỉ gọi texttag để hiển thị.
    • Cũng vì thế ngoài chế độ auto destroy struct còn chế độ bình thường cho phép tự thân vận động đi xóa leak struct. Thực ra là không cần nếu dùng mãi mãi. Config là thế mà :))
    • À, tên system có thay đổi chút cũng như tên struct cũng như API ko còn như trước nhưng thực ra về ý nghĩa thì ko đổi


    Nói chung các bạn hãy dùng bản này thay cho các bản trước để có lợi nhất ...... cho các bạn :)
     
  7. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Release version 1.4:
    • Sửa logic bug khi multi-call .display() method
    • Sửa blizzard bug: màu của texttag có vấn đề khi thay đổi alpha mà ko reset text
    • Thêm style Inclined và Head up !

    Có thể nói làm các style = system của mình vui ko kém làm spell. Mình hi vọng có người biết 1 chút về jass và cách dùng sys của mình để cùng mình tạo style cho texttag.
    Chứ 1 mình tự sướng hoài cũng bùn lém

    P/S: rất xin lỗi về 2 cái bug còn tồn tại của bản trước đã thể hiện rõ sự kém cỏi về khả năng và thiếu kinh nghiệm về texttag của mình :((
     
    Chỉnh sửa cuối: 7/8/11
  8. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Texttag mà cũng recycle đc hả ô :). anyway thử cái đã :P
     
  9. [Yami]

    [Yami] Donkey Kong

    Tham gia ngày:
    29/12/07
    Bài viết:
    313
    Nơi ở:
    Ha Noi, Vietnam,
    Bác vuongkkk chịu khó viết mấy system này à nha ;)). Anw, texttag cũng là cái mình rất là yếu kém do ít sử dụng =)). Thank bác phát.
     
  10. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    ^^ Thực ra system mình viết chỉ recycle 1 cách đơn giản nhất mà thôi.

    ^ Mình ko hề chăm chỉ là cần mà chưa thấy có system nào thì ta làm thôi

    Ai ko biết tùy biến có thể dùng các style đơn giản có sẵn trong map demo. Còn biết rồi thì có thể tạo texttag rất đẹp và cũng đơn giản.

    Thực ra nhiều người thấy jass thì ko dùng là sai lầm :(
    Dù chỉ dùng GUI không biết jass nhưng biết dùng custom script để gọi ra mấy câu lệnh jass thì vẫn có thể dùng được system này (miễn là có jass helper mới nhất để biên dịch code). Chỉ cần gọi mấy câu lệnh _Create trong trigger TexttagControllers là được
     
  11. [Yami]

    [Yami] Donkey Kong

    Tham gia ngày:
    29/12/07
    Bài viết:
    313
    Nơi ở:
    Ha Noi, Vietnam,
    Mình thích nhất là cái system này cho phép tùy biến Texttag theo thời gian thực 1 cách tự động :)) Đúng là phải học hỏi bác vuongkkk nhiều :))
     
  12. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Bạn nào dùng system này của mình thì nên update system mới nhất (1.5) đi nhé.
    Về API khi tạo texttag (mấy func _Create) thì ko đổi đâu
    Nhưng 2 trigger VTexttagTexttagControllers thì cần update đấy
     
  13. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Changelog 2.1:
    - Chỉnh lại các style đã đó
    - Thay Normal Texttag = Attach Texttag
    - Chia ra thành 1 system chỉ để loop và tạo texttag, 1 ext hỗ trợ làm stylish texttag
    - Minimum dung lượng của system. Nếu cậu nào thấy size của system vẫn ko thay đổi mấy thì là vì mình add thêm document để cho dễ sử dụng. Còn nếu size to hơn ắt là do file đã đính kém thêm virut...
    - Cách create texttag khi quá 100 cái ko phải là 1 cái ko thể hiển thị nữa mà là hủy cái texttag cũ nhất đi để hiển thị cái mới. Cái này đặc biệt cần thiết khi map có nhiều texttag hiển thị!
    - Stylish texttag viết theo kiểu struct và có thể sử dụng VTexttag ở method onInit của các struct và module khác
     
  14. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    chú vương ơi trong phần VTexttag_Critical.create có thể giúp cháu thêm vụ hide texttag hok :(
     
  15. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    cháu nói rõ hơn đi. Nếu là hide với player xác định thì trong tham số truyền vào của chú có player để hiển thị riêng cho player đó.
    Còn nếu ko muốn hide thì có cái chức năng .visible=false là ok. Còn ko hết time là texttag auto destroy mà

    P/S: nhắc cái này mới nhớ là phải sửa lại 1 cái để chức năng đấy đúng @@
    Ai dùng down lại bản 2.1b nhé...............
     
    Chỉnh sửa cuối: 9/11/12
  16. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    hom nay nha chau bi cup dien roi, y cua chau la lam cho cai crit do vidu player 1 danh player2 thi do texttagse ra. nhung player3 hok nam trong ngoai fog se hok thay dc so crit.

    chu co the lam no ra kieu a danh b, b co so mau trang.nhung b lai thay la mau do?
    va so texttag ae hide khi player 3 hok thay dc sight cua player a va b


    p/s: sr on bang mobile nen hok co danh dc tieng viet co dau
     
  17. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    hình như GetLocalPlayer không có tác dụng hide cái textag đó thì phải..
     
  18. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    down lại cái 2.1b mới fix cái hiện riêng cho player đó @@
     
  19. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Thế thì cháu làm ra 2 cái texttag với 2 màu khác nhau hiện lên riêng cho 2 player là được mà @@
    Hi vọng số lượng texttag trong map cháu ko quá lớn >.<
     
  20. dh-g

    dh-g Fire in the hole!

    Tham gia ngày:
    29/8/09
    Bài viết:
    2,654
    Nơi ở:
    Q1 TP.HCM
    uh :"> cháu thay đổi vụ đó bằng string local tức player 1 string khác player 2 lại string khác vì thế chỉ 1 texttag thôi :">
     

Chia sẻ trang này