UNIT PROPERTIES BONUS EXTRAS SYSTEM ( UPBE )
Version : BETA
Creator : Kr.Linh
I./ Lời nói đầu :
Mấy ngày qua post cái Dynamic Group System và Items Limiter System không được mọi người ủng hộ cho lắm.:)
Hôm nay mạo muội post thêm 1 system nữa ( không biết gọi là system có đúng không, nếu có gì sai an hem thẳng thắng góp ý nha ).
Đối với dân làm map chắc hẳn trước đây các bạn cũng đã biết về EGUI ( giao diện đồ họa nâng cao ). Trong đó mình đã tìm thấy một vài thư viện như là : Bonus, UnitProperties,… chứa các hàm có chức năng “cộng” hoặc “trừ” các thông số thuộc tính của heroes ( Damage, Armor, Strength, Agility, Intelligence, Max Life, Max Mana, Attack Speed, Movement Speed ) là các thuộc tính không thể dùng trigger để chỉnh sửa trực tiếp được.
Tuy nhiên khi sử dụng các hàm như BonusDamage, Armor… thì con số Bonus mình đưa vào khi cho ra thì lại không như mình mong muốn ( ra 1 số khác, cái này có lẽ do mình không biết xài ^^ ) hoặc là bị giới hạn. Nói chung là hệ thống Bonus đó không đủ tiêu chuẩn cho việc làm Map.
Nhân lúc mình đang có 1 project thiết kế 1 map, để phục vụ cho nhu cầu, mình đã viết ra hẳn 1 hệ thống Bonus hoàn toàn mới ( tất nhiên cách thức thì vẫn dựa trên các Abilities trong Object Editor để thực hiện việc “cộng” hoặc “trừ” Bonus – cái này mình vẫn phải cám ơn các bác ở nước ngoài đã nãy ra ý tưởng này cho các hậu bối như em học hỏi và phát triển ).
Trong phần file đính kèm có hình ảnh minh họa, bạn hãy click để xem thử nha.
Tuy nhiên trong quá trình thiết kế hệ thống này, mình phát hiện nếu bắt chước các bác tiền bối – người sáng tạo ra Bonus trước đây sử dụng các đoạn external commands tự định sẵn thì nếu gặp người chỉ có nhu cầu sử dụng Bonus thấp hoặc chỉ một vài loại Bonus nhất định thì sẽ làm tốn thời gian load map bởi các Object được tạo ra quá nhiều mà không cần sử dụng tới. Đó là nguyên nhân mình bắt đầu thiết kế ra 1 công cụ ( ứng dụng phần mềm chạy trên nền .NET ) có khả năng tự động tạo ra các chuỗi external tùy theo số lượng Bonus người dùng muốn và tùy theo từng loại Bonus đính kèm Hướng dẫn cài đặt hệ thống cho map luôn :
UNIT PROPERTIES BONUS EXTRAS – OBJECT CREATOR version BETA
Tuy nhiên tool này được viết trên nền .NET 3.5 nên máy bạn phải cài .NET framework 3.5 mới chạy được. Đây là link download .NET framework 3.5 :
http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe
II./ Ưu Nhược điểm :
- Ưu :
+ Làm việc với các loại Bonus : Damage, Armor, Strength, Agility, Intelligence, Max Life, Max Mana, Attack Speed, Movement Speed.
+ Có khả năng add ( cộng ), subtract ( trừ ), Modify ( thay đổi, chỉnh sửa ), GetBonusValue ( Bonus được “cộng” hoặc “trừ” bởi chính hệ thống này, các Bonus khác thì không thể lấy được ), Clear, Clear All các loại Bonus trên.
+ Khả năng chính xác 100% ( map-maker cho add nhiêu sẽ ra bấy nhiêu, không nhiều hơn cũng không ít hơn ).
+ Sử dụng UPBE - Object Creator có khả năng tùy biến giới hạn bonus tùy theo map-maker giúp giảm thời gian load map.
+ Bonus Damage, Armor, Str, Agi, Int, Att-Speed có khả năng làm việc chính xác trên số Bonus lớn mà không phải sử dụng quá nhiều Ability Objects ( giảm thời gian load map )
- Nhược :
+ Max Life + Max Mana + MoveSpeed vì các loại abilities dùng cho hệ thống không có khả năng thiết lập cấp độ trên unit ( Max Life, Max Mana ) và không có khả năng xếp chồng ( non-Stackable ) nên để chính xác 100% phải sử dụng khá nhiều Abilities cùng loại. Điều này khiến Map load rất lâu. Nên khi sử dụng phải chú ý sử dụng giới hạn vừa đủ.
+ Attack Speed và Movement Speed thì có thể được cộng bao nhiêu cũng được nhưng bị giới hạn bởi war như Move Speed Maximum luôn là 522.
III./ Cài đặt và sử dụng :
- Phần hướng dẫn cài đặt và sử dụng đã được đính kèm theo chương trình UPBE – OBJECT CREATOR bằng tiếng Việt. Có thể vừa làm vừa xem hướng dẫn luôn.
- Còn nếu không mở chương trình mà muốn sử dụng luôn các external commands có sẵn thì chỉ cần bước sau :
-> Mở file “UnitPropertiesBonusEx.w3x” bằng Jassnewgenpack5d ( yêu cầu có jasshelper 0.A.2.B )
-> Copy "UnitPropertiesBonusExBase Category" và Copy luôn con unit Preloader trong Object Editor
-> Mở map bạn ra, dán tất cả vào đó ( kể cả con dummy Preloader ), Save lại
-> tạo 1 trigger bất kì
-> convert sang custom script
-> copy tất cả các đoạn external commands từ templates dán vào đó -> Save lại lần nữa ( lần này save map sẽ hơi lâu hơn lần trước )
-> Close map
-> Mở lại map
-> Disable cái trigger chứa các external commands lúc nãy đi
-> save lại lần nữa.
-> cuối cùng mở lại map “UnitPropertiesBonusEx.w3x”, xem ở thư mục “Trigger for User Copies” có chứa các thư viện Bonus cho từng loại. Bạn muốn dùng loại nào hay nhiều loại thì cứ copy cái mình cần dán vào map của bạn, chỉnh sửa lại các giá trị trong thẻ globals...endglobals cho phù hợp ( có hướng dẫn trong chương trình UPBE - Object Creator, và các giá trị định sẵn trong các file trong thư mục Object Templates ), save lại rồi thưởng thức ^^.
- Trong "UnitPropertiesBonusExBase Category” có phần functions tutorial, vào đó xem hướng dẫn sử dụng các hàm.
File đã được đính kèm bên dưới. Nếu bạn nào không chạy được UPBE - Object Creator và làm biếng download .NET framework 3.5 thì mở thư mục Object Templates copy mấy dòng external save vào map và chỉnh sửa các biến giá trị cho phù hợp trong cặp thẻ globals...endglobals

) hay cậu có thể sử dụng sys này
cậu có dùng cái buff framework nào ko? cái tốt nhất mà tớ biết yêu cầu autoindex cơ. nói trắng ra thì nó là abuff và ( hình như) cả thiên kiếm và havoc đều dùng
. các stuffs đến từ jesus4lyf đều tốt ngoại trừ cái buffstruct. đấy là lí do tớ chọn autoindex 
)
cần gì phải remake lại cái mới 

![Tangqua &[] &[]](/images/smilies/ymvn/tangqua.gif)
