- 29/8/09
- 2,654
- 5,688
Bay h mình xin up bài tut này hướng dẫn mọi người cách sử dụng Hashtable và tác dụng thật của Hashtable là gì..
Hashing là cái gì?
Hashtable (mảng băm) là một cấu trúc dữ liệu cho phép lưu trữ & tìm kiếm giá trị (dạng chuỗi ký tự X Y) ở độ dạng Custom Variable. Nghĩa là tốc độ tìm kiếm phần tử luôn là một hằng số, dù số phần tử lên đến cả tỷ. củng có thể sử dụng ký tự dc.
Một Hashtable là gì? phần 2
Tại sao hastable gọi là custom variable?
Tại vì hashtable là sử dạng cấu trúc định tùy biến như Variable chỉ khác 1 điều hashtable tự tạo tùy biến Variable không cần phải vào Ctrl +B Variables tạo lập tên giá trị tùy biến.
ví dụ trong Variable thì thế này.
còn trong Hastable Variable thì
tại sao thế này dc? cái này sẽ giải thích ở phần tiếp theo.
Cách sử dụng hastable làm sao ?
bước 1 chúng ta lập trước 1 trigger thế này để làm bộ nhớ hastable
cách nhớ giá trị
trong Variable
cách nhớ giá trị
trong Hastable
liều này khác gì ? chẳng khác gì cả , cả 2 điều thực hiện tùy biến nhân hastable nó khó hơn 1 chút. lý do nó lưu bộ nhớ Variable theo dạng phân từ ký tự hoặc số theo X Y nên khác 1 chút so với Variable, Variable save dạng TempUnit = Triggering unit còn hastable thì thế mà khác nó lưu nhớ giá trị trong 1 bộ nhớ chung và cách xài chung nhau.
Vậy Hashtable và Variable ai tốt hơn ?
theo như so sánh Hashtable và Variable là không thể so sánh ai tốt ai không tốt cả
lý do Hashtable là lưu nhớ tùy biến của Variable mục đích sử dụng khả năng hoạt động cao còn Variable thì cách lưu nhớ tùy biến đơn giản.
Cách sử dụng hashtable và cách nhập hashtable sẻ như thế nào ?
bước 1 tạo 1 trigger và tạo 1 value nhớ lại điểm tắt (Last created hashtable)
mục key tô màu R là key X
mục key tô màu B là key Y
2 giá trị này rất quan trọng trong hashtable value có thể bị trùng nhau khi 2 trigger bạn sử dụng giá trị cùng nhau ví dụ
sử dụng tại trigger phần 1
và 1 trigger khác nếu sử dụng
thế là sai bạn có thể sử dụng kiểu
(Key unit2) hoặc (Key unit3)
cách lấy giá trị tùy biến từ Hashtable
muốn xóa 1 giá trị thì sử dụng kiểu
tương tự như
tại sao lại xóa dc? lý do mình xóa mục key có tên là unit2 key này sử dụng giá trị (Triggering unit) được qua No unit
cách load giá trị thì sử dụng tên key X và Y không bắt buộc bạn phải sử dụng tên unit bạn có thể sử dụng bất kỳ 1 tên giá trị nào chỉ cần cần load và cần save đúng cách
Hashtable có phải là MUI ko ?
Hashtable tùy biến giá trị như hẹt Variable việc tùy biến giá trị bạn có thể sử dụng
MUI Integer hoặc MUI Group ví dụ
còn Hashtable thì
bạn có thể sử dụng 1 key X và Y 1 key dạng Integer[MUI] 1 key dạng name để lưu lại giá trị tùy biến kiểu MUI
việc hướng dẫn mình chỉ viết tới đây thôi nếu có bị nếu không hiểu hay thắc mắc thì liên hệ mình..

Hashing là cái gì?
Hashtable (mảng băm) là một cấu trúc dữ liệu cho phép lưu trữ & tìm kiếm giá trị (dạng chuỗi ký tự X Y) ở độ dạng Custom Variable. Nghĩa là tốc độ tìm kiếm phần tử luôn là một hằng số, dù số phần tử lên đến cả tỷ. củng có thể sử dụng ký tự dc.
Một Hashtable là gì? phần 2
Một Hashtable là gì?
Để bắt đầu, nó là một cấu trúc dữ liệu có khả năng giữ gần như bất kỳ loại dữ liệu trong Wc3. Nó có thể giữ nguyên, đơn vị, các hiệu ứng đặc biệt, và bất cứ điều gì khác mà bạn đã bao giờ sẽ cần phải lưu trữ.
Tôi biết những gì bạn đang suy nghĩ. "Nếu hashtables chỉ là mảng lớn, tại sao chúng ta cần chúng?" Hashtables bởi chính họ là không quá hữu ích, nhưng khi chúng ta sử dụng chúng với Xử lý ID họ thực sự có thể được vô cùng hữu ích. Chúng cho phép chúng tôi để "đính kèm" dữ liệu để xử lý có thể được lấy ra sau đó. Chúng tôi sẽ bao gồm này ngay bây giờ.
Tại sao hastable gọi là custom variable?
Tại vì hashtable là sử dạng cấu trúc định tùy biến như Variable chỉ khác 1 điều hashtable tự tạo tùy biến Variable không cần phải vào Ctrl +B Variables tạo lập tên giá trị tùy biến.
ví dụ trong Variable thì thế này.
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set TempUnit = (Triggering unit)
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Unit - Kill TempUnit
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Kill (Load (Key unit) of (Key unit) in Hastabletmp)
Cách sử dụng hastable làm sao ?
bước 1 chúng ta lập trước 1 trigger thế này để làm bộ nhớ hastable
Mã:
int
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/events.gif[/IMG]Events
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/page.gif[/IMG]Map initialization
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/cond.gif[/IMG]Conditions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/actions.gif[/IMG]Actions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Create a hashtable
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set Hastabletmp = (Last created hashtable)
trong Variable
Mã:
AUS
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/events.gif[/IMG]Events
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - A unit Starts the effect of an ability
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/cond.gif[/IMG]Conditions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/if.gif[/IMG](Ability being cast) Equal to Thunder Clap
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/actions.gif[/IMG]Actions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set TempUnit = (Triggering unit)
Unit - Create 1 Footman for (Owner of (Triggering unit)) at (Center of (Playable map area)) facing Default building facing degrees
trong Hastable
Mã:
AUS
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/events.gif[/IMG]Events
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - A unit Starts the effect of an ability
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/cond.gif[/IMG]Conditions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/if.gif[/IMG](Ability being cast) Equal to Thunder Clap
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/actions.gif[/IMG]Actions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Save Handle Of(Triggering unit) as (Key unit) of (Key unit) in Hastabletmp
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Create 1 Footman for (Owner of (Load (Key unit) of (Key unit) in Hastabletmp)) at (Center of (Playable map area)) facing Default building facing degrees
liều này khác gì ? chẳng khác gì cả , cả 2 điều thực hiện tùy biến nhân hastable nó khó hơn 1 chút. lý do nó lưu bộ nhớ Variable theo dạng phân từ ký tự hoặc số theo X Y nên khác 1 chút so với Variable, Variable save dạng TempUnit = Triggering unit còn hastable thì thế mà khác nó lưu nhớ giá trị trong 1 bộ nhớ chung và cách xài chung nhau.
Vậy Hashtable và Variable ai tốt hơn ?
theo như so sánh Hashtable và Variable là không thể so sánh ai tốt ai không tốt cả
lý do Hashtable là lưu nhớ tùy biến của Variable mục đích sử dụng khả năng hoạt động cao còn Variable thì cách lưu nhớ tùy biến đơn giản.Cách sử dụng hashtable và cách nhập hashtable sẻ như thế nào ?
bước 1 tạo 1 trigger và tạo 1 value nhớ lại điểm tắt (Last created hashtable)
Mã:
int
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/events.gif[/IMG]Events
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/page.gif[/IMG]Map initialization
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/cond.gif[/IMG]Conditions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/actions.gif[/IMG]Actions
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Create a hashtable
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set Hastabletmp = (Last created hashtable)
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Save Handle Of(Triggering unit) as [B][COLOR="red"](Key unit)[/COLOR][/B] of [COLOR="blue"][B](Key unit)[/B][/COLOR] in Hastabletmp
mục key tô màu B là key Y
2 giá trị này rất quan trọng trong hashtable value có thể bị trùng nhau khi 2 trigger bạn sử dụng giá trị cùng nhau ví dụ
sử dụng tại trigger phần 1
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Save Handle Of(Triggering unit) as (Key unit) of (Key unit) in Hastabletmp
Mã:
[s][IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Save Handle Of(Triggering unit) as (Key unit) of (Key unit) in Hastabletmp[/s]
Mã:
[b][IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Save Handle Of(Triggering unit) as (Key unit2) of (Key unit2) in Hastabletmp[/b]
cách lấy giá trị tùy biến từ Hashtable
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Kill (Load [B][COLOR="red"](Key unit2)[/COLOR][/B] of [COLOR="blue"][B](Key unit2)[/B][/COLOR] in Hastabletmp)
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Hashtable - Clear all child hashtables of child (Key unit2) in Hastabletmp
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set TempUnit = No unit
cách load giá trị thì sử dụng tên key X và Y không bắt buộc bạn phải sử dụng tên unit bạn có thể sử dụng bất kỳ 1 tên giá trị nào chỉ cần cần load và cần save đúng cách
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Create 1 Footman for [B](Owner of (Load (Key unit) of (Key unit) in Hastabletmp))[/B] at (Center of (Playable map area)) facing Default building facing degrees
Hashtable có phải là MUI ko ?
Hashtable tùy biến giá trị như hẹt Variable việc tùy biến giá trị bạn có thể sử dụng
MUI Integer hoặc MUI Group ví dụ
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/set.gif[/IMG]Set TempUnit[MUI] = (Triggering unit)
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Create 1 Footman for (Owner of TempUnit[MUI]) at (Center of (Playable map area)) facing Default building facing degrees
Mã:
[IMG]http://www.hiveworkshop.com/forums/images_all/trigger/unit.gif[/IMG]Unit - Create 1 Footman for (Owner of (Load MUI of (Key unit) in Hastabletmp)) at (Center of (Playable map area)) facing Default building facing degrees
bạn có thể sử dụng 1 key X và Y 1 key dạng Integer[MUI] 1 key dạng name để lưu lại giá trị tùy biến kiểu MUI
việc hướng dẫn mình chỉ viết tới đây thôi nếu có bị nếu không hiểu hay thắc mắc thì liên hệ mình..
Attachments
Chỉnh sửa cuối:


.
