ITEMS LIMITER SYSTEM version BETA Items Limiter System là hệ thống cho phép giới hạn số lượng items có thể cầm trong inventory của unit theo từng loại item hoặc nhóm các items chỉ cần bằng vài dòng lệnh gọi hàm đơn giản bạn có thể giới hạn lại số lượng item đó có thể mang - Hệ thống làm việc với 2 loại items : + Item Simple : thiết lập cho 1 loại item duy nhất và hệ thống sẽ chỉ làm việc với item đó + Item Type : đăng kí 1 ItemType sau đó add các items vào đó, hệ thống sẽ làm việc với Item Type này Ví dụ : - (Simple) Bạn muốn đăng kí giới hạn cho item có id là 'rwiz' với giới hạn có thể cầm là 3 gọi hàm trong phần Init Map : call RegisterItemLimiterSimple('rwiz', 3) => thì ngay lập tức tất cả các unit trong map chỉ có thể cầm tối đa là 3 item với id = 'rwiz' ** Nếu muốn thay đổi số lượng giới hạn của item 'rwiz' đã đăng kí trước đó, ta gọi lại hàm trên với itemid = 'rwiz' và số lượng giới hạn là 1 con số khác ** Bạn có thể enable, disable sự giới hạn của item đó bằng các function dựng sẵn ( chi tiết đã viết rõ ràng trong attached file ) - ( Item Type ) : đây là kiểu dữ liệu phức tạp hơn, hệ thống sẽ không làm việc với từng itemID đơn lẻ nữa mà làm việc với nhóm items có cùng kiểu đã đăng kí ( registered type ) ví dụ : bạn có 3 item có id như sau : 'rwiz', 'brac' và 'Ofro' - và bạn muốn chỉ có bất kì 2 item trong 3 item trên được cầm trên tay ( vậy giới hạn là bằng 3 ) - trước hết bạn phải đăng kí 1 ItemType bằng hàm DefineItemType(integer limit), hàm sẽ trả về 1 con số integer đăng kí tương ứng, sau đó bạn gán con số này cho 1 biến nào đó ( ví dụ integer itype = DefineItemType(2) ) - Sau đó bạn hãy add 3 item có id như trên vào bằng hàm AddItemToItemType(integer itemid, integer icode) => itemid là các item cần add, icode chính là itype như bạn đã đăng kí ở trên ) => như vậy là xong, tất cả sẽ chỉ có bất kì 2 items trong 3 items trên được cầm trên tay mà thôi. *** Tuy nhiên khi đăng kí xong nếu ta muốn hệ thống áp dụng sự giới hạn cho tất cả unit có trong map, ta phải dùng hàm SetWorkingForAllUnitsSimple(integer itemid, boolean allow) hoặc SetWorkingForAllUnitsItemType(integer icode, boolean allow) ** còn nếu bạn muốn áp dụng sự giới hạn cho 1 unit, 1 unit group hay 1 unittype ( cả chế độ Simple hoặc ItemType ) ta hãy add Unit, UnitGroup hoặc unit Type ID vào itemid hoặc icode mà bạn muốn áp dụng ==> có thể mình trình bày không được rõ ràng nên bạn có thể tham khảo thêm trong attached file ở phần đầu của trigger
Off-topic tí : Nếu cậu đã gặng hỏi thì mình rất tiếc phải trả lời là: Nếu số ô đồ của war3 cho phép cầm nhiều hơn 6 món thì có lẽ system của cậu đã có nhiều comment Người ta thường cần gì mó nấy chứ ít ai mó chơi cả. Chưa kể có lẽ số người dùng jass trong box có thể đếm trên đầu ngón tay....