- 24/7/09
- 1,422
- 2,843
Đầu tiên, xin các bạn chú ý cho vài điều:
1. Các bạn đừng hỏi những vấn đề về Terrain hay ... những vấn đề khác không liên quan đến spell.
2. Các bạn post spell lên thì nên giải thích những phần chính về spell của mình như:+ Giới thiệu về spell.
+ Vài hình ảnh.
+ Nếu giải thích từng đoạn code trong trigger thì càng tốt.
+ Trigger của spell nên bỏ vào thẻTrigger 2Mã:[/COLOR][/INDENT] [B][COLOR="DarkGreen"]3. Mình không ép các bạn phải post cả trigger lên topic, điều đó là tự nguyện. 4. Các bạn phải post map demo của spell đó. Và nếu ai có thời gian thì giúp post lại trigger đó lên giúp (nhớ ghi lại tên của người làm spell) và có giải thích càng tốt. 5. Spell post lên đây [SIZE="1"]không nhất thiết phải đẹp[/SIZE] nhưng đẹp vẫn tốt hơn phải không nào (tuy nhiên xin lưu ý là ĐẸP không phải là choáng hết cả màn hình nhé, đơn giản mà đẹp, đó mới đáng nể), bời vậy phải cố gắng, chỉ cần có sự sáng tạo, đơn giản càng tốt. Viết trên topic càng dài càng tốt, để mọi người không lười mà lướt qua (phải đọc hết chứ) ;)).[/B] (và đây là ý kiến của bác WE mong các bạn chú ý để làm spell thật tốt : "Quan trọng là custom spell đòi hỏi phải sáng tạo nữa chứ đẹp mắt vẫn chưa phải là hay ( giả sử như spell đẹp nhưng chỉ có 1 kiểu: phóng ra gây damage --> thà dùng shock wave cho nhanh ) Vd như chúng ta có thể nghĩ ra một custom spell có thể làm unit chạy nhanh hơn max speed là 522, hoặc spell invisiblity có thể đi xuyên địa hình mà khi có true sight ( dust, gem ) thì vẫn không hiện hình..( chỉ hiện bóng, attack đc nhưng ko target đc ) Khuyên các bạn nên làm spell hay, sáng tạo, đẹp nhưng không quá nhiều effect --> gây lag trong các pha combat)" [B]6. Sẽ có phần đánh giá về spells, người đánh giá spells sẽ là những người đã xem spells (tất nhiên là trừ chủ nhân của spells đó, tuy nhiên bạn sẽ được đánh giá spells của người khác), các bạn sẽ đánh giá theo mẫu sau (có gì thiếu sót mong các bạn góp ý để mình thêm vào): +Về ý tưởng: tốt, không tốt (0.5-2đ) (các bạn ghi điểm sau mỗi phần nhận xét nhé) +Về thẩm mĩ: đẹp, không đẹp. (0.25 - 1đ) +Về code: tốt, không tốt. (các bạn nhận xét về cả trình bày, những thiếu sót code, các code thừa,... nha) (0.25 - 1đ) +Về phần giải thích: dễ hiểu, khó hiểu (0.25 - 5đ) +Về nhận xét riêng của bạn: thích hay không thích (1đ) Tổng điểm: <cộng các điểm mà bạn đã chấm> max là 10đ Số giám khảo sẽ không giới hạn trong tuần đầu tiên này (từ hôm nay đến chủ nhật tuần sau), sau 1 tuần, mình sẽ chọn ra 5 giám khảo tốt nhất. Sau 1 tháng sẽ tiến hành test giám khảo lại từ đầu (để tránh tình trạng spam thì lưu ý các bạn, các bạn chỉ chấm duy nhất 1 lần, không chấm lại, khi giám khảo đã chấm thì các bạn chỉ được quyền bổ sung thêm nếu nhận thấy các giám khảo chấm còn thiếu sót, nếu ai cố tình spam thì mong Mod xử hộ). Và sau 1 tuần mình sẽ cộng tất cả các điểm của mỗi bạn lại rồi chia cho số spell các bạn post (cho công bằng thôi, chứ không post nhiều thì lợi rồi), rồi lập bảng xếp hạng những bạn có số điểm cao nhất, còn về giải thưởng thì để mình xem xét.(Các điều trên được áp dụng với tất cả thành viên kể cả mod và mình) 7. Sẽ có những cuộc thi làm spell theo đề bài và những người có quyền ra đề: mình Raivor, ShadowThanatos. 8. Thành phần ban giám khảo : đang tuyển.... 9. Đây là topic post spell, tuy nhiên vì để cung cấp thêm ý tưởng giúp các bạn làm spell mà không bị vướng phần ý tưởng này nên mình đã ra đề thi để các bạn có thể làm. Nhưng, tiêu đề topic là như vậy và mục đích của topic cũng là như vậy, dù mình có thêm vài cái đề thi, hay gì gì đó thì các bạn vẫn có thể post spell của mình làm và chấm điểm như thường. 10. Cuối cùng mong các bạn tích cực tham gia topic để topic cũng như cộng đồng WE phát triển.[/COLOR][/B][/INDENT] [B]Xin cám ơn![/B][/QUOTE] [B][COLOR="DarkRed"][SIZE="3"][U]Chúng ta sẽ tìm hiểu vài điều về Trigger của 1 spell:[/U][/SIZE][/COLOR][/B] [COLOR="DarkGreen"] [B][U]- Gồm 3 phần:[/U][/B][/COLOR] [INDENT][COLOR="SeaGreen"]+Events (sự kiện) : 1 việc gì đó sẽ diễn ra khi có 1 sự kiện sảy đến. +Actions (có thể nói là sao ta? ) : những việc sẽ sảy ra khi sự kiện nào đó xuất hiện và các điều kiện được thỏa mãn. +Conditions (điều kiện) : những yêu cầu cần được thỏa mãn để chúng ta có thể "chế biến" sự kiện kia khi nó tới.[/COLOR] [INDENT]VD: [spoil][INDENT]Events:[INDENT]Cậu bạn của bạn đi đến trước nhà của bạn.[/INDENT] Conditions:[INDENT]Cửa mở. Bạn ở nhà.[/INDENT] Actions: [INDENT]Cậu bạn đó đi vào nhà. Nói chuyện với bạn. Nếu[INDENT]Đến 12h AM[/INDENT] Thì[INDENT]Cậu bạn đó đi về.[/INDENT] Còn không thì[INDENT]không có gì xảy ra (tức cậu bạn đó vẫn ở nhà bạn và nói chuyện với bạn).[/INDENT][/INDENT][/INDENT][/spoil][/INDENT][/INDENT] [B][U][COLOR="DarkGreen"]- Về cách làm 1 spell mà theo mình là đơn giản nhất:[/COLOR][/U][/B] [COLOR="SeaGreen"]Giống như vẽ 1 bức tranh. I.Hình dung trong đầu về bức tranh đó. => Spell đó như thế nào ? II. Những phụ kiện cần thiết để vẽ tranh (bút, màu...) => Các biến cần phải dùng, events, conditions, actions.... III. Vẽ phác. => bước này rất quan trọng, các bạn sẽ làm như kiểu từ 1 cái thân cây mọc ra nhiều cành và lá ấy. IV. Đi nét. => Kiểm tra, thêm thắt các biến, các đoạn code... V. Tô màu. => Thêm các hiệu ứng để spell sinh động hơn. VI. Hoàn tất bức tranh. => Test spell (và...............post lên đây :P) [INDENT] VD:[/COLOR] [Spoil][COLOR="RoyalBlue"]I. .................... II. Cái này thực ra thì đầu tiên chỉ cần các biến quan trọng ( từ từ nó mọc ra theo nhu cầu ấy mà). Các biến đó như là : +Caster(Triggering Unit) =>là cái tên đã gây ra vụ việc đó và để lại hậu quả mà ta cần đạo diễn ấy. [INDENT]+Dummy(Unit) => 1 diễn viên trong bộ phim kể về hậu quả của việc mà tên Caster gây ra. +Point => địa điểm trường quay. +(MUI(Integer)) không nhất thiết nhưng cần phải có nếu spell MUI, tên khác cũng được => nhiều bộ phim giống nhau sẽ không ảnh hưởng đến chất lượng của phim. (khỏi cạnh tranh để bên này thì chết bên kia gần chết). [/INDENT] III. Sườn của trigger. => Set biến, dùng các đoạn code để xây dựng sườn.[INDENT]VD: E:A unit .... A:Set Caster = (Triggering Unit)[INDENT]Creat 1 Footman......[/INDENT] E:Every .... seconds ....[INDENT]Move Footman (Intantly) to.....[/INDENT][/INDENT] IV. Bổ sung các biến, đoạn code để trigger hoạt động. => Thêm các biến để xác định vị trí ( để remove leak), thêm biến dạng số (nguyên[Integer], thực[real]) để làm điều kiện kết thúc trigger, để đếm, lập công thức tính hoặc thay đổi giá trị..... [INDENT]VD: [INDENT]Set Dem(Integer) = 10[/INDENT] [INDENT]E:Every 1 seconds.... A:Set Dem = (Dem - 1)[INDENT]If [INDENT]Dem equal to 0[/INDENT] Then [INDENT]Turn off (this trigger).[/INDENT][/INDENT][/INDENT][/INDENT] V. Bổ sung các hiệu ứng cho spell. => Special Effect, di chuyển hình vòng tròn, hình vuông, tạo ra hình ngôi sao, bay lên, lặn xuống, lăn qua lăn lại..... VI. Remove Leak, kiểm tra bug, turn off các trigger cần thiết...[/COLOR][/INDENT][/spoil] Spell đầu tiên nhé. [B][U]Tên Spell:[/U][/B] SThunder Clap [B][U]Mô tả:[/U][/B] Hero cast thunder clap và [spoil][IMG]http://i786.photobucket.com/albums/yy146/raivor1996/Spell/SThunderClap2.jpg[/IMG] [IMG]http://i786.photobucket.com/albums/yy146/raivor1996/Spell/SThunderClap3.jpg[/IMG] [IMG]http://i786.photobucket.com/albums/yy146/raivor1996/Spell/SThunderClap4.jpg[/IMG] [IMG]http://i786.photobucket.com/albums/yy146/raivor1996/Spell/SThunderClap1.jpg[/IMG] Cái này cast 2 lần liên tiếp. [/spoil] [B][U]Các biến:[/U][/B] -<Tên biến [có Array(kiểu mảng)]>:<Loại biến> - [COLOR="DimGray"]Caster[Array][/COLOR],[COLOR="Sienna"]Unit[/COLOR]: Unit - [COLOR="DimGray"]Point[Array][/COLOR],[COLOR="Green"]Point2[Array][/COLOR]: Point - [COLOR="Navy"]Integer[Array][/COLOR], [COLOR="DimGray"]MUI[/COLOR]: Integer - [COLOR="DimGray"]Group[/COLOR], [COLOR="Sienna"]DmgAoE[Array][/COLOR]: Unit Group - [COLOR="Green"]Move[Array], Speed[Array][/COLOR], [COLOR="Navy"]Speed2[Array][/COLOR]: Real (Màu xám là những biến ta tạo đầu tiên (đừng tạo hết nha, làm từ từ thôi) tiếp tục là màu xanh lá, đến xanh dương rồi cuối cùng là màu nâu đối với các đoạn code luôn) Trigger 1 [Code]Events [COLOR="DimGray"]Unit - A unit Starts the effect of an ability //khi hero cast spell[/COLOR] Conditions [COLOR="DimGray"](Ability being cast) Equal to Thunder Clap //spell đó phải là thunder clap[/COLOR] Actions [COLOR="DimGray"] Set MUI = (MUI + 1) //có nghĩa là ban đầu MUI = 0, sau 1 lần cast thì MUI = 0 + 1, khi đó MUI = 1, tiếp tục lần thứ 2 MUI = (MUI = 1) + 1 thì MUI = 2, rồi lần thứ 3 MUI = (MUI = 2(1 + 1 = 2)) + 1, lần thứ 4 MUI = (MUI = 3(2+1 = 3)) + 1, rồi lần thứ 5 MUI = 4 + 1 = 5, rồi lần thứ 6 MUI = 5 + 1 = 6.................... If (All Conditions are True) then do (Then Actions) else do (Else Action) If - Conditions MUI Greater than or equal to 500 //khi MUI >= 500 Then - Actions Set MUI = 0 //thì Set MUI = 0 và quá trình trên kia lại tiếp diễn Else - Actions Set Caster[MUI] = (Triggering unit) //Biến Caster là hero cast spell (tên gây ra hậu quả đấy) Set Point[MUI] = (Position of Caster[MUI]) //Biến Point được đặt là vị trí của "Caster".[/COLOR] [COLOR="Green"] Set Speed[MUI] = 30.00 //Tốc độ ban đầu là 30 (km/h :D).[/COLOR] [COLOR="Navy"]Set Speed2[MUI] = 0.00 //Tốc độ giảm dần.[/COLOR] [COLOR="DimGray"]Unit - Create 1 Dummy for (Owner of Caster[MUI]) at Point[MUI] facing Default building facing degrees //tạo 1 Dummy cho Caster tại vị trí của hắn để MUI thôi. Unit Group - Add (Last created unit) to Group //Cho dummy vào nhóm "tự kỉ vì MUI" Unit - Set the custon value of (Last created unit) to MUI //đặt giá trị "tự biên" bằng MUI, bằng cách này ta có thể giữ MUI lại mà không bị các MUI khác chen lấn làm có bạn chết có bạn bị thương => Spell bug, không MUI được. Trigger - Turn on Trigger 2 //Bật Trigger 2
Hết. Chúc thành công.Mã:Events [COLOR="DimGray"]Time - Every 0.04 second of game time //mỗi 0.04s của game[/COLOR] Conditions Actions [COLOR="Green"]Unit Group - Pick every unit in Group and do (Actions) //tóm tất cả unit trong nhóm "tự kỉ vì MUI" Loop - Actions Set Move[(Custom value of (Picked unit))] = (Move(Custom value of (Picked unit))] + 3.00) //[(Custom value of (Picked unit))] <<< cái gì đây??? Như ở trên, nó là giá trị tự biên được đặt = MUI, tại sao lại là Picked unit (tên bị tóm đây mà), như ở trên ta đã add "Last create unit" vào nhóm "tự kỉ vì MUI" nên khi tóm unit trong nhóm "tự kỉ vì MUI" thì dính hắn. Và ở trên có dòng "Unit - Set the [B][U]custon value of (Last created unit)[/U][/B] to MUI" đấy đấy, nó đấy. Vậy thì tóm lại, Custom value of (Picked unit) = MUI tức là cast lần đầu tiên thì Custom value of (Picked unit) = 1, lần thứ 2 thì Custom value of (Picked unit) = 2.... Vậy tại sao không dùng MUI luôn cho nó lành? Thực ra là như vầy, nếu ta dùng MUI thì trong trigger 2 MUI sẽ bị thay đổi giá trị nhanh chóng, vì ở Trigger 2 hệ thống check liên tục mỗi 0.04s, cụ thể là ở đây "Time - Every 0.04 second of game time"<<< nếu vậy thì khi cast lần thứ 2 MUI = 2 rồi :|, nhưng nếu dùng custom value of khỉgìđấy thì cast lần 2 sẽ xuất hiện 2 giá trị "tự biên" là Custom value of (Picked unit) [COLOR="White"]thứ nhất[/COLOR] = 1 và Custom value of (Picked unit) [COLOR="White"]thứ 2[/COLOR] = 2 => cả 2 cái cùng hoạt động. Vậy tại sao MUI lại không giữ được mà Custom value of khỉgìđấy lại giữ được? À, là bởi vì người ta quy định vậy đấy, biết vậy thôi, khỏi thắc mắc. Quay lại đoạn code, Move = Move + 3 (vậy thôi?)[/COLOR] [COLOR="Navy"]Set Speed[(Custom value of (Picked unit))] = (Speed[(Custom value of (Picked unit))] + Speed2[(Custom value of (Picked unit))]) //Biến Speed = Speed + Speed2. Set Speed2[(Custom value of (Picked unit))] = (Speed2[(Custom value of (Picked unit))] - 1.00) //Biến Speed2 = Speed2 - 1 = 0 - 1, mà Speed = 30 => Speed = 30 + (0-1).[/COLOR] [COLOR="DimGray"]Set Point[(Custom value of (Picked unit))] = (Position of Caster[(Custom value of (Picked unit))]) //Biến Point = Vị trí của Caster. Như đã nói ở trên, do trigger chạy 1 lần trong 0.04s, vậy thì biến Point này sẽ được check 1 lần trong 0.04s tức là vị trí của caster được check 1 lần trong 0.04s.[/COLOR] [COLOR="Green"]For each (Integer Integer[(Custom value of (Picked unit))] from 1 to 6, do (Actions) //Vòng lặp 6 lần, tức là phần nằm trong đoạn code này chạy vòng vòng 6 lần để lấy điểm kiểm tra môn thể dục. Loop - Actions //nó là Loop - Actions (người ta viết vậy thì biết vậy) Set Point2[(Custom value of (Picked unit))] = (Point[(Custom value of (Picked unit))] offset by Speed[(Custom value of (Picked unit))] towards ((60.00 x (Real(Integer[(Custom value of (Picked unit))]))) + Move[(Custom value of (Picked unit))]) degrees) //Biến Point2 = biến Point cách 1 khoảng Speed có cái góc là 60 x với số vòng chạy cộng với biến Move. Tức là như vầy, à mà là sao ta?? À là như vậy nè cái Point2 đó đó là cái vị trí của Caster (được check mỗi 0.04s, tội thằng bé) + với 30km với 1 góc là 60 x với 1 vòng nè, 2 vòng nè, 3 vỏng nè, 4 vòng nè , 5 vòng nè , 6 vòng nè + với 0 nè mà Move = Move + 3 nè, tức là Move = 3 nè rồi sau 0.04s thì Move = Move + 3 = 3 + 3 = 6 để rồi qua 0.04 sau thì Move = Move + 3 = 6 + 3 rồi sau 0.04s sau thì hết hơi nói nè... Tiếp nè, ((60.00 x (Real(Integer[(Custom value of (Picked unit))]))) + Move[(Custom value of (Picked unit))]) degrees) có nghĩa là khi ta chạy vòng thứ nhất thì Point2 được đặt ở góc 2h (0h là 0 độ, 60 độ là 2h), vòng thứ 2 thì sẽ là 60 độ x 2 thì Point2 được đặt ở góc 4h (0h là 0 độ, 120 độ là 4h), vòng thứ 3 thì sẽ là 60 độ x 3 thì Point2 được đặt ở góc 6h (0h là 0 độ, 180 độ là 6h), vòng thứ 4 thì sẽ là 60 độ x 4 thì Point2 được đặt ở góc 8h (0h là 0 độ, 240 độ là 6h), vòng thứ 5 thì sẽ là 60 độ x 5 thì Point2 được đặt ở góc 10h (0h là 0 độ, 300 độ là 10h), vòng thứ 6 thì sẽ là 60 độ x 6 thì Point2 được đặt ở góc 12h (0h là 0 độ, 360 độ là 12h mà 0h = 12h => 12h = 0 độ hay 0h = 350 độ). Vậy, lấy đâu ra 60 độ vậy? Là tại vì ta cho nó chạy 6 vòng, mà 360 / 6 bằng 60 độ, vì vậy, 10 vòng thì 360/10 là 36 độ. Nhưng, sao tự nhiên lại + Move? Ta có: Move = Move + 3 và nó cứ tăng dần nên vòng thứ nhất của 0.04s đầu tiên là 60 độ x 1 + 3 = 63 độ, tương tự vòng thứ 2 là 123, vòng thứ 3 là 183 rồi 243 rồi 303 rồi 363 hay 3 độ. Trong 0.04s sau thì vòng thứ nhất là 66 độ, vòng thứ 2 là 126 độ rồi 186 rồi 246 rồi 306 rồi 366 = "1 năm nhuận" tức 6 độ. Rồi sau 0.04s sau nữa nó sẽ như vậy tức là 69, 129 rồi .... Như vậy thì các Point2 sau mỗi 0.04s sẽ xoay theo chiều nào đó ai mà biết trên 1 đường tròn. (Xoay đều xoay đều xoay). Và vì nó cứ chạy ra xa và xoay nên đường kính vòng xoay càng rộng. Còn nữa, như mình đã nói, tốc độ rộng ra của đường kính là biến Speed = 30 mà Speed = Speed + Speed2 mà thêm cái nữa Speed2 = Speed2 - 1 do đó Speed = 30 - 1 rồi sau 0.04s Speed = 30 - 2 rồi 30 -3 như vậy khi Speed2 = 30 thì đường kính không rộng ra nữa, và ta áp dụng định lí "GIẬT LÙI" do tôi mới nghĩ ra thì Speed sẽ = số âm khi Speed2 > Speed => nó sẽ chạy ngược vô lại.[/COLOR] [COLOR="Sienna"]Set DmgAoE[(Custom value of (Picked unit))] = (Units within 100.00 of Point2[(Custom value of (Picked unit))] matching ((((Matching unit) is A structure) Equal to Fasle) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit is dead) Equal to False) and ((((Matching unit) belong to an ally of (Owner of Caster[(Custom value of (Picked unit))]) Equal to False //vùng gây dmg cho bọn unit xung quanh 100.00km(vuông) của Point2. " and and and Equal to False" Unit bị pick không phải là công trình "((((Matching unit) is A structure) Equal to Fasle)" và(and) unit bị pick không phải là unit kháng phép "((((Matching unit) is Magic Immune) Equal to False)" và(and) unit bị pick không chết tức là phải còn sống "((((Matching unit is dead) Equal to False)" và(and) unit bị pick không phải là đồng đội của "[COLOR="white"]tên đồi bại[/COLOR]" "((((Matching unit) belong to an ally of (Owner of Caster[(Custom value of (Picked unit))])" Set Unit = (Picked unit) //Unit = (Picked unit) = tên tự kỉ bị tóm.[/COLOR] [COLOR="Sienna"]Unit Group - Pick every unit in DmgAoE[(Custom value of (Picked unit))] and do [Actions] //chọn cái bọn bất hạnh trong vùng "GDCBUXQ100.00km(vuông)CP2" Loop - Actions Unit - Cause Caster[(Custom value of Unit)] to damage (Picked unit), dealing [B][U](10.00 x (Real(Level of Thunder Clap for Caster[(Custom value of Unit)]))))[/U][/B] damage of attack type Spells and damage type Normal //gây dmg bằng 10 x cho level của spell, level 1 thì gây 10 dmg, level 2 thì 20 dmg, level 3 bằng 30 dmg.[/COLOR] [COLOR="Green"]Special Effect - Create a special effect at Point2[(Custom value of (Picked unit))] using Abilities\Weapons\VengeanceMissile\VengeanceMissile.mdl //Phần chính đây, vừa là sườn vừa tô màu. Tạo hiệu ứng ở Point2.[/COLOR] [COLOR="Green"]Special Effect - Destroy (Last created special effect) //Hủy hiệu ứng, vì cái này mà chúng ta nên chỉ nên xem effect ở phần death animation.[/COLOR] [COLOR="Green"]If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions Speed2[(Custom value of (Picked unit))] Less than or equal to -30.00 //Nếu Speed2 bằng -30 tức là Speed = 0 tức lả Point2 = (Point[(Custom value of (Picked unit))] = vị trí của caster .... còn phần sau mình dùng viết *gạch gạch* => bỏ, giờ nó chả còn nghĩa lí gì nữa vì nó về cùng 1 điểm thì góc này góc nọ làm gì??? Then - Actions Unit Group - Remove (Picked unit) from Group //Tống tên bị tóm khỏi nhóm "tự kỉ vì MUI". (để lôi tên khác vào <<đừng hiểu nhầm, đã xóa rồi không biết có cần tống hắn đi không? Tội lỗi.) Unit - Remove (Picked unit) from the game //Xóa tên bị tóm Custom script: call RemoveLocation(udg_Point[GetUnitUserData(GetEnumUnit())]) Custom script: call RemoveLocation(udg_Point[GetUnitUserData(GetEnumUnit())]) Else - Actions If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions (Number of units in group) Equal to 0 //Khi cái nhóm "tự kỉ vì MUI" không còn đứa nào vì tụi nó đã hết bệnh. Then - Actions Trigger - Turn off (This trigger) //thì tắt trigger RemoveLeak. Else - Actions //Vậy tại sao không tắt ngay ở dòng If thứ 2 từ dưới đếm lên, mình sẽ trả lời là bởi vì mình không biết tại sao, chỉ tại khi vào test thì làm như vậy mới không có bug.[/COLOR]
Đề bài theo tuần:
-Tuần 1: [Spoil]
[/spoil]Đề:
- Các bạn sẽ làm 1 spell dựa trên trò chơi Yo-Yo.
Video cho các bạn chưa biết về trò chơi này:
[spoil][video]CSm0VgGwBSo[/video][/spoil]
Những điểm bắt buộc:
- Yo-yo quay nhanh.
Mở rộng:
- Về hiệu ứng vật lí.
- Có thể tác động lên dây của Yo-yo.
- Các bạn có thể thêm các công dụng của spell, ví dụ như gây damage, hay dịch chuyển hero tới vị trí của Yo-Yo.........v.v......
Thành phần tham dự:
- Tất cả mọi người (kể cả trẻ sớ sinh mới ra đời cho tới người già cao tuổi, trừ mình thôi).
*Chú ý: Các bạn phải trình bày bài giới thiệu map như 1 bài hướng dẫn bình thường, và gửi map cho mình.
Phần thưởng: 1 tràng pháo tay của khán giả. Mong các bạn hưởng ứng nhiệt tình, trình độ tới đâu thì làm tới đó.
-Tuần 2:
[spoil]
[/spoil]Đề:
- Các bạn sẽ làm 1 spell sử dụng các tia sáng.
Mở rộng:
- Tia sáng của các bạn có thể là cái gì cũng được và nó phải là 1 đường thẳng.
- Khi tia sáng đi tới "gương" thì góc tạo bởi tia phản xạ của tia sáng và đường thẳng vuông góc với "gương" sẽ bằng góc tạo bởi tia sáng và đường thẳng vuông góc với "gương".
- Các bạn sẽ phải làm tia sáng bị phản xạ khi chiếu tới "gương" nên số lượng "gương" là không giới hạn.
Thành phần tham dự: như trên.
*Chú ý: như trên. Thêm cái nữa là các bạn không cần hướng dẫn cũng được. Có càng tốt.
Phần thưởng: như trên.
Attachments
Chỉnh sửa cuối:
).
):



(vũ điệu của đá)
(Skill không đẹp lắm do Leo không thích màu mè nhiều, các bạn thêm effect vào cho nó nổi bật hơn nhé)
. Và nên làm tảng đá "nhảy" mượt hơn.)