Hội nghị bàn tròn [Version 0.1]

  • Thread starter Thread starter raivor
  • Ngày gửi Ngày gửi
Chủ đề lần này là MUI nhé, lâu quá chả đụng tới topic này, giờ đào lên cho vui nhà vui cửa.

MUI là viết tắt của Multi-Unit Instanceability.
Nói một chút về tác dụng của MUI:
Các bạn thử tưởng tượng, các bạn muốn làm một spell slide bằng trigger, bình thường thì các bạn gán cho biến các giá trị có thể thay đổi (vd: tốc độ slide, gia tốc, góc, caster unit, hay target v.v....), như các bạn biết, các một trigger được CHẠY khi một event được thực thi, chứ không phải là khi event thực thi thì TẠO ra một trigger, vì thế, khi một trigger được chạy, các biến sẽ được gán lại các giá trị, tức các giá trị cũ sẽ bị chồng lên, tuy nhiên điều này cũng không ảnh hưởng nhiều tới một trigger thực hiện những "action" không kéo dài, tức là tất cả các "action" được thực hiện cùng lúc (tất nhiên thứ tự thực hiện các action vẫn từ trên xuống), còn đối với một trigger có "action" kéo dài như slide, dùng timer, thì khi trigger được thực thi trong lúc trigger đó vẫn đang chạy (tức là các "action" vẫn chưa thỏa điều kiện để trigger(timer) dừng) sẽ dẫn tới việc các biến sẽ bị gán chồng lên, target thay đổi, caster (có thể hoặc không) thay đổi, các giá trị thay đổi, và nếu "cái thứ mà bạn đang slide" nó đi ấy, là một unit(dummy, ở đây gọi là unit A cho tiện) thì chắc chắn nó đã được gán vào một biến unit (muốn sử dụng ở trigger khác thì tất nhiên sẽ phải gán vào biến), và khi biến unit đó bị đè lên, thì unit A ban đầu sẽ dừng lại, vì trigger timer chỉ tác động lên unit nằm trong biến unit kia mà unit A đã bị đá ra khỏi biến => unit mới được tạo thì vẫn cứ chạy, còn unit A ban đầu thì dừng lại và ở đó mãi vì các "action" vẫn chưa thỏa điều kiện để remove unit A đi hoặc là làm gì đó với nó. Các biến khác cũng tương tự vậy. Vậy thì MUI sẽ giúp chúng ta giải quyết vấn đề đó, tạo ra một unit mới hoạt động song song với unit cũ.
Thế thì cách giải quyết là như thế nào? Chắc chắn là....................làm thêm vài trigger nữa cho các player khác và xác định luôn từng hero cast spell, và từng unit được tạo ra. Đấy là cái cách mà tôi đã nghĩ đến khi chưa biết tới cách dùng array, tuy nhiên có lẽ nó vẫn MUI tốt trừ khi spell không có cooldown hoặc cooldown xong trước khi trigger dừng hẳn. Dù sao thì cũng không phải là một cách tốt vì khá tốn công copy&paste.
Thôi thì tìm tới array vậy.
Ờm thì ở đây giải thích luôn vụ array cho các bạn chưa biết.
Chúng ta có thể nhận thấy một biến có array sẽ như này : var[1], sau khi thấy cái tên của var hiển thị kiểu này, tôi thấy nó chả khác gì var1, tuy nhiên cái số ở trong [] có thể thay đổi, sẽ tốt hơn khi không phải copy&paste một đống var2, var3,....,varn. Ờm thì chắc chắn là var[1] cũng như var1 và var[2] cũng chả khác gì var2, nhưng quan trọng là var[1] khác var2 => var[1] khác var[2], nói vậy thì biết rồi đấy.
Ngoài ra tôi còn khám phá ra một ứng dụng thú vị của biến integer, có thể gọi là increase, với công thức i = 0, i = i + 1 và khi cái hàm i = i + 1 chạy thì i sẽ tăng. Và một điều tôi thấy nó liên quan kiểu không ngẫu nhiên đó là cái số ở trong [] là integer và hoàn toàn có thể đổi giá trị trong [] đó thành một biến integer (tất nhiên). Và thế là ta đã có var, kết hợp với cái kiểu increase kia thì ta có một đống biến var chả liên quan gì tới nhau mỗi khi trigger chạy các bạn ạ. Ví dụ nhé:
//===================
Event: every 5s
Action:
set i = i + 1
create 1 unit ....
set var = last create unit
//===================
Với một trigger như vậy thì chúng ta đã có thể phân biệt được các unit được tạo ra trong mỗi 5s bằng các var tương ứng. Ví dụ:
var[1] là unit được tạo trong 5s đầu.
var[2] là unit được tạo trong 5s sau (tức 10s kể từ khi bắt đầu game).
v.v...
Như vậy có nghĩa là khi dùng array cho các biến, và áp dụng như trên, thì các biến sẽ không bị đè lên nhau mà khác nhau hoàn toàn và có thể hoạt động độc lập.
Tiếp đê.
 
Trước khi vào chủ đề MUI thì bình tí bài viết của raivor đã ;))
Nghe thì có vẻ cái post trên giống tut nhưng cách trình bày thì giống nói chuyện phiếm (nhiều chữ lại ko có bố cục => Có chăm đọc ~ lười đọc)
Chốt hạ lại là nên đọc cái post này của tớ trước thì mới nuốt nổi post trên của raivor!

Đầu tiên phải nói về trigger...
Nếu 1 trigger ko có wait thì bao h nó cũng chạy 1 mạch cho đến khi xử lý hết action trong trigger đó mới thôi.

Nếu ko wait thì trigger sẽ chạy lần lượt, KHÔNG có trigger nào chạy trước lại kết thúc sau cả.
Trigger ở đây là nói về cái xảy ra khi có cùng event chứ ko nói về trigger event khác nhau độc lập, riêng biệt với nhau.
Thậm chí trigger mà chạy chưa xong thì trigger sau còn ko chạy (Lag... đến cứng hình :-s)
Nên bt mà làm spell thì thậm chí chỉ cần 1->4 biến dùng chung cho trigger cả map cũng ko sao:-??
Điển hình chính là GetTriggerUnit (Triggering Unit - GUI) dùng chung cho tất cả các thể loại event có liên quan đến 1 unit làm cái gì đó

Tại sao chỉ 1 biến dùng chung cho cả map lại ko bị nhầm khi xử lý ???
Cả khi nhiều trigger cùng 1 event xử lý vấn đề khác nhau cũng ko lo bị nhầm biến nọ và biến kia?
Như ở trên đã nói lý do rồi đây vẫn cứ liệt kê lại 2 ý đó để nhấn mạnh vấn đề này :)
- 1 trigger ko có wait được kích hoạt thì nó chắc chắn sẽ chạy 1 mạch cho đến khi xử lý hết action trong trigger đó mới thôi (trừ khi lỗi)
- ko wait thì trigger sẽ chạy lần lượt
Nghe thì có vẻ vô lý nhưng đúng là vậy, cùng 1 event Unit died chả hạn vẫn có thứ tự trước và sau. Ko tin? Hãy dùng Display Message để thử
1 Cái đặt đầu trigger Ghi "Start Event ABC"
1 Cái đặt cuối trigger Ghi "End Event ABC"
Làm tương tự với 1 cái trigger khác cùng event và thay tên event "XYZ" vào sẽ thấy ko bao h có 2 cái "Start(End) Event ..." cạnh nhau cả
Đây là demo cho ai lười cả test nữa (Attach cuối bài) :-??

Không cần biết MUI nó như thế nào cũng được nhưng đã chơi WE thì tất cả mọi người nên biết vấn đề mình vừa nói trên

Trên kia ta đang nói kiểu trigger one-shot chỉ cần xử lý ngay tại lúc xảy ra event
Thế nếu khi nào cần xử lý ngay cả sau khi event đã hết và thậm chí là event mới ra mà vẫn đang xử lý cái cũ thì phải làm sao???
Kinh điển ở đây như raivor nhà ta giới thiệu là Slide
Và khi cần xử lý dài hơn trigger thì ta cần lưu riêng ra các biến ko trùng nhau để xử lý riêng từng cái.
Ví dụ mỗi unit slide 1 hướng thì ta cần lưu hướng để tiếp tục bước slide sau đó.
Vậy thì 1 biến sẽ ko đủ thì ta dùng nhiều biến cùng loại => array(mảng) là cái thích hợp và dùng index của mảng để phân biệt cho từng cá thể riêng biệt cần xử lý.

Nói cách khác MUI chính là việc xử lý nhiều cá thể, cùng lúccó tính lâu dài

Ví dụ cụ thể:
- Slide: xài hàng Tut Slide của anh Tom

Tái bút:
Chán chả buồn lập topic mới nữa cứ nhét hết vào đây =))
Vì lập ra cũng chả ma nào vào và ở đây cũng vậy => đỡ rác cơ sở dữ liệu trên server :-"
Đáng ra nên lập 1 topic chỉ nói và hỏi về MUI, spell MUI ... nhưng có lẽ cũng chả cần thiết :-??
Mà sao cậu raivor có vẻ chịu khó viết lách mà lười sắp xếp thế ? có tốn mấy tí đâu :-?
 

Attachments

Chỉnh sửa cuối:
Mà sao cậu raivor có vẻ chịu khó viết lách mà lười sắp xếp thế ? có tốn mấy tí đâu :-?

Tùy cách hành văn của mỗi người thôi. Cơ mà topic này mục đích không phải là viết tut mà là trao đổi thông tin, kiến thức nên cũng không quan trọng vấn đề trình bày cho lắm, đơn giản là "tán gẫu" có chủ đề một cách nghiêm túc.
Chốt lại, đây là môi trường để trao đổi kinh nghiệm, đưa ra ý tưởng về vấn đề liên quan tới box chứ không phải thể loại hỏi/đáp hay là tổng hợp gì cả.
 
Tùy cách hành văn của mỗi người thôi. Cơ mà topic này mục đích không phải là viết tut mà là trao đổi thông tin, kiến thức nên cũng không quan trọng vấn đề trình bày cho lắm, đơn giản là "tán gẫu" có chủ đề một cách nghiêm túc.
Tớ đồng ý với cậu là thế đấy nhưng mà là tớ cũng có biết đôi chút về MUI đọc bài cậu thì còn dễ hiểu chứ ai chưa biết gì nhìn đồng chữ thế kia thì đọc cũng cảm thấy khó tiếp thu thậm chí ko muốn đọc => thì chỉ tổn công cậu viết thôi

Chốt lại, đây là môi trường để trao đổi kinh nghiệm, đưa ra ý tưởng về vấn đề liên quan tới box chứ không phải thể loại hỏi/đáp hay là tổng hợp gì cả.
À, Ý tớ là đáng lẽ cần có riêng 1 topic cho MUI vì nhiều bạn ko biết MUI cũng như là sao để MUI hoặc là MUI nhưng sao lại lỗi. Nhưng tớ thiết nghĩ chả có mấy người trigger + MUI cả nên vô đây share kinh nghiệm thôi :D
Với lại ấy giải thích có gì khác giữa tut với share kinh nghiệm??? Đều là dùng những thứ mình đã biết viết ra để cho người khác biết mà.
Topic này nói về nhiều vấn đề thì có đúng nó là tổng hợp :-?
Tớ sẽ ko tham gia tranh luận vấn đề tổng hợp với tut này nữa :-<

Mà hình như chưa có topic nào giới thiệu cũng như hướng dẫn về MUI thật :-s

Cơ mà được rầm rộ có 1 lúc, h đâu hết rồi ??? Tưởng sẽ có ai tổng hợp lại tất cả các link hướng dẫn với demo các kiểu cơ mà. :-??
 
Chỉnh sửa cuối:
Mà hình như chưa có topic nào giới thiệu cũng như hướng dẫn về MUI thật :-s

Cơ mà được rầm rộ có 1 lúc, h đâu hết rồi ??? Tưởng sẽ có ai tổng hợp lại tất cả các link hướng dẫn với demo các kiểu cơ mà. :-??

- tôi muốn viết lắm nhg vấn đề là tôi dốt văn nên viết tut, giải thích cặn kẽ thì không viết được, nói chung viết xong mình đọc cũng thấy khó hiểu =))
cái vấn đề này khá trừu tượng, nói cụ thể ra thì không (hoàn toàn) đúng, nói không cụ thể thì người ta không hiểu :-?? khó đấy!

- nói là một chuyện, làm lại là chuyện khác, cách xa nhau lắm :)>-
 
Chỉnh sửa cuối:
Với lại ấy giải thích có gì khác giữa tut với share kinh nghiệm??? Đều là dùng những thứ mình đã biết viết ra để cho người khác biết mà.

Tất nhiên là khác:
- Tutorial tức là môt bài hướng dẫn, và nó phải mang tính chính xác cao, trình bày mạch lạc, dễ hiểu, có minh họa giải thích và cách làm. Mục đích để hướng dẫn những người chưa biết về vấn đề nào đó.
- Còn trao đổi kinh nghiệm thì chỉ đơn giản là sự trao đổi giữa những người đã biết hoặc biết nhưng còn sơ sài để hoàn thiện kiến thức cho nhau. Đơn giản chỉ là những ý kiến chứ không phải là một bài hướng dẫn. Và các ý kiến có thể đúng, hoặc sai.
 
Tất nhiên là khác:
- Tutorial tức là môt bài hướng dẫn, và nó phải mang tính chính xác cao, trình bày mạch lạc, dễ hiểu, có minh họa giải thích và cách làm. Mục đích để hướng dẫn những người chưa biết về vấn đề nào đó.
- Còn trao đổi kinh nghiệm thì chỉ đơn giản là sự trao đổi giữa những người đã biết hoặc biết nhưng còn sơ sài để hoàn thiện kiến thức cho nhau. Đơn giản chỉ là những ý kiến chứ không phải là một bài hướng dẫn. Và các ý kiến có thể đúng, hoặc sai.

Bất kể thế nào, wall of text là kể cả người biết và lẫn không biết, muốn trao đổi hoặc không đều không muốn đọc. Đồng thời cũng làm người ta đánh giá mình là người bê bối, khó tin tưởng được. Cơ mà chắc cũng không quan tâm vụ người ta đánh giá mình nên có thể ignore chỗ này =)).

Đã viết thì phải trình bày mạch lạc dễ hiểu chứ không phải "viết rồi đấy, không đọc thì thôi".
 
Nhìn raivor viết dài thật, nhưng đọc đến lần thứ 2 là hiểu, đó cũng là những điều mình đã từng nghĩ đến khi mới tập tành làm spell MUI. Mà thấy rõ raivor có giải thích đàng hoàng và hoàn toàn theo kinh nghiệm, thx bác lắm :))
Xem xong post của tiến sĩ vuongkk nói thật hơi mơ màng, nhưng gói gọn cho rõ thì 1 câu Nói cách khác MUI chính là việc xử lý nhiều cá thể, cùng lúc và có tính lâu dài là đủ >:D<
 
"tiến sĩ" vuongkk Cái này ko reply lại là bị hiểu lầm: tiến sĩ là học vị còn WE lại ko có trường lớp cũng chưa chính phủ nào công nhận nên gọi như thế thì hơi quá dù là ai :D
Xem xong post của vuongkkk nói thật hơi mơ màng
Chính là thế, cái tớ nêu hoàn toàn chỉ là vấn đề tại sao lại nảy sinh ra MUI, 1 khái niệm mang tính tổng quát để phụ họa cho bức tranh chữ của raivor.
gói gọn cho rõ thì 1 câu Nói cách khác MUI chính là việc xử lý nhiều cá thể, cùng lúc và có tính lâu dài là đủ
Cái thật sự tớ muốn mọi người hiểu là cách thức mà trigger hoạt động đã nói bên trên kia chứ ko phải MUI vì vậy tớ mới để cái đó lên đầu chớ.
Cái đó thậm chí phải nói và cần phải biết trước cả MUI và cùng lúc với khi học trigger.
Bởi vì mình thấy trigger rất nhiều bạn trên box này và thấy các bạn chưa có nắm rõ vấn đề này nên nhiều khi các bạn set thêm biến khác hoàn toàn là tốn ram. Cũng có nhiều lúc vì ko hiểu nên nhiều bạn nói rằng dùng Triggering Unit sợ nhầm với các event khác rồi cả việc tại sao dùng wait thì sau đó dùng những cái như Triggering Unit, Casting Unit, Target Position... hoàn toàn bị sai. Ko thực ra nó ko hề sai mà là các bạn đã dùng sai.
Những cái đó là cái dùng ngay lúc trigger đó phát sinh mà thôi !!!
 
Chỉnh sửa cuối:
đang định làm bài tut về zinc. Ko biết có ai ủng hộ ko :))
 
đang định làm bài tut về zinc. Ko biết có ai ủng hộ ko :))

thì bạn cứ viết, rất ủng hộ tinh thần đóng góp >:D<
 
đang định làm bài tut về zinc. Ko biết có ai ủng hộ ko :))

Ủng hộ, nhắc nhở là zinc nó có 1 sự cố với module đấy
Cụ thể tớ chả rõ vì ko dùng zinc
Dù nó mệnh danh là "good for brain"
 
vậy.... làm thế nào để vừa MUI vừa hastable đc với nhau ....... :-?
Tôi gà mới học MUI . Xin chỉ giáo !

Ủa nghe nói Tom_Kz ốm nằm viện sao còn onl đc đây :-??
 
ốm thì đâu phải nằm viện
mà ốm đâu ai cấm xách cái lap đi chơi ;))
 
Thấy forum được mấy hum xôm xôm lại xẹp nên mình làm vài tấm tự sướng cho các bạn vào chém tẹt:D
Thực ra đây là do hồi thi terrain ko có thời gian nên nộp bài thô. Hum nay làm hẳn 2 tấm để gọi là tạ cái tội làm bài đối phó...
[spoil]
110795d1328461696-landscape-waterfall-waterfall-morning.jpg
[/spoil]
[spoil]
110854d1328626627-landscape-waterfall-spring-evening.jpg
[/spoil]
 
Nước lại chảy từ bờ này sang bờ kia =)).
Đến đoạn chảy xuống thì trông nó bị khớp, hơi vô lí.
 
- Nước chảy ngang ? Tại sao ko ?
[spoil]
work.5082517.1.flat,550x550,075,f.waterfall-at-spring-park-tuscumbia-alabama.jpg

n026.jpeg

beautiful-waterfall-1600-1200-3837.jpg

871f1124ffc689d3bf913d925f018086.jpg

d69e3049d4c0bfa58e6b68f0e5e02c29.jpg

Wild_waterfall_IV_by_chochan666.jpg

Roughting_Linn_Waterfall_4_by_newcastlemale.jpg

Waterfall_by_porbital.jpg

waterfall_by_suphafly-d303cdh.jpg

[/spoil]
Đây chính xác là spam ảnh nhưng
- mình muốn cho các bạn thưởng thức sự đa dạng của tự nhiên và cụ thể ở đây là vẻ đẹp của waterfall
- Bạn raivor nhìn kỹ coi các bức trên đều có các thác con chảy ngang với thác nước chính đấy. Tìm thác nước chảy gần như ngược hướng thì còn khó (ko phải ko có) chứ còn ngang như cậu nói thì đấy...
- Chỉ tiếc dù đã cố tìm nhưng mình ko thể tìm ra được bức đã gây cho mình ấn tượng đủ để làm mình cho thác nước chảy ngang thế :(( Tin rằng có bức đó giám khảo sẽ đánh giá bài mình tốt hơn cũng như ko bị raivor trừ điểm thế kia :-<
- Và mình muốn mọi người biết dù bài thi sơ sài nhưng ko phải là mình ko đầu tư ...
P/S:
Thực ra bài mình chưa làm xong đâu nên ban giám khảo cứ trừ ... tội sơ sài nhưng làm ơn để ý đến kỹ thuật của bọn mình 1 chút (cả các thí sinh khác nữa)

Chém hay lắm nhưng xưa rồi =))
 
Trong mấy cái hình chả có hình nào nước chảy ngang như thế cả, toàn chảy cong đấy thôi =)).
 
Cùn quá! thôi được rồi, giỏi thì làm cái thác tốt hơn của tớ đi :))
 
attachment.php

Vào map để xem dòng chảy :)>-.
 

Attachments

  • Blahblah.rar
    Blahblah.rar
    17.4 KB · Đọc: 4
  • blahblah.jpg
    blahblah.jpg
    244.9 KB · Đọc: 32
Back
Top