Topic hỏi đáp về cách làm map | version 15

Mình dùng action:
Mã:
Set r = (Random ingeter number between 0 and 4)
và cho thông báo "r" đó lên màn hình. Kết quả của mọi lần thử đều là 3 2 4 1 0. Thậm chí sau vài lần "3 2 4 1 0" thì k thể thông báo "r" lên màn hình được luôn.

Mình đoán là game đã lưu kết quả random đó vào bộ nhớ đệm. Có ai biết custom script hoặc trigger gì để xóa bộ nhớ đệm đó đi k? :/
 
Bạn nào biết tạo bóng cây kiểu này chỉ giúp mình..
shadow_zps0c511df4.png
 
Mình dùng action:
Mã:
Set r = (Random ingeter number between 0 and 4)
và cho thông báo "r" đó lên màn hình. Kết quả của mọi lần thử đều là 3 2 4 1 0. Thậm chí sau vài lần "3 2 4 1 0" thì k thể thông báo "r" lên màn hình được luôn.

Mình đoán là game đã lưu kết quả random đó vào bộ nhớ đệm. Có ai biết custom script hoặc trigger gì để xóa bộ nhớ đệm đó đi k? :/

Không có gì là đệm, do giải thuật Đồng dư tuyến tính đã làm chuỗi các kết quả luôn giống nhau. Chỉ cần số nguồn (seed number) khởi đầu là một số thì các số tiếp theo luôn theo một quy luật. Cho dù có thử lại bao nhiêu lần thì các lần thử luôn cho chuỗi các kết quả như nhau.
Đó là thuật toán ngẫu nhiên được áp dụng cho hầu hết các ngôn ngữ lập trình.

Còn một thuật toán ngẫu nhiên nữa là theo thời gian (cụ thể là giờ, phút, giây hoặc mili-giây). Thuật toán đúng là ngẫu nhiên vì chuỗi các kết quả sẽ không thể trùng nhau được.
Giải pháp là: Dùng thuật toán Đồng dư tuyến tính kết hợp với thời gian.

Tóm gọn lại, bạn lấy số ngẫu nhiên vừa lấy được từ 0 - 4 rồi nhân với thời gian và làm vài phép tính để nó ra số nằm trong phạm vi cần thiết.

VD:
Chỉ là mã mô tả
Mã:
r = Ramdom(0, 4); // Số ngẫu nhiên từ 0 - 4
r = r * GetMiliSeconds(); // lấy Mili-giây
r = r mod 4; // chia lấy dư với 4 sẽ làm kết quả nằm trong phạm vi 0 - 4

Vì trong Warcraft không có API lấy thời gian của máy tính mà chỉ có thể lấy thời gian đã chơi. Có thể dùng nó.

Chuỗi các kết quả: thứ tự và giá trị của các con số ngẫu nhiên.
Tham khảo: https://sites.google.com/site/sbskit/papers/randomnumber
 
- Cho em hỏi làm thế nào để làm mất weapon của unit, ví dụ em muốn làm mất khẩu súng của con Rifleman thì phải làm sao.
- Làm thể nào khi mình mua 1 item, model hoặc weapon sẽ bị thay (vd: rifle man mua item .... sẽ bị hóa thành con footman). (súng của rifleman khi mua item ... sẽ bị hóa thành súng khác)
- Theo mình nghĩ thì nếu dùng model không sử dụng bất kì attachment nào có sẵn thì sẽ được bạn ak,nghĩa là ban đầu chỉ có rifleman không thôi chứ không có súng.và sau đó bạn dùng item,abilt add attachment rồi add vào unit là sẽ mất hay không mất súng :)
- VD1: mình code ntn có gì bạn thêm vào nhé,ví dụ như là sao lưu item vậy :)
PHP:
Melee Initialization
    Events
        Unit - A unit Acquires an item
    Conditions
        (Item-type of (Item being manipulated)) Equal to Item hóa footman
        (Unit-type of (Hero manipulating item)) Equal to Rifleman
    Actions
        Unit - Remove (Hero manipulating item) from the game
        Unit - Create 1 Footman for Owner of (Hero manipulating item)) at (Postion of (Hero manipulating item)) facing Default building facing degrees
-VD2: giống như câu hỏi đầu tiên của bạn :)
 
Ai biết làm mấy cái này thì chỉ mình với, thanks trước ạh!
1. Làm cho cái gỗ với cái đùi gà ở bên trên mất thay vào đó là cái đồng hồ giống DotA
2. Làm cho hero chỉ nhận exp khi gần creep trong phạm vi 800 range, chứ mình làm map mà trên map có thằng nào chết là con hero được nhận exp
3. Làm mua đồ từ xa được giống DotA, ở đầu game có cái nhà mua hero ấy :D mua xong là chỗ đấy bị khuất sides
 
Ai biết làm mấy cái này thì chỉ mình với, thanks trước ạh!
1. Làm cho cái gỗ với cái đùi gà ở bên trên mất thay vào đó là cái đồng hồ giống DotA
2. Làm cho hero chỉ nhận exp khi gần creep trong phạm vi 800 range, chứ mình làm map mà trên map có thằng nào chết là con hero được nhận exp
3. Làm mua đồ từ xa được giống DotA, ở đầu game có cái nhà mua hero ấy :D mua xong là chỗ đấy bị khuất sides
1: bạn kiếm hình ảnh đồng hồ dota đấy ở đâu đó và import vào map rồi thay ở Advance -> Game interface
và thay Icon - Lumber bằng hình đồng hồ mà bạn muốn nhé :)
2: mình chịu :D
3: cái đó là hộ đặt 1 unit "circle" gần nhà mua hero và khi mua item đó nó sẽ create ra hero và remove cái circle đó nên sẽ bị khuất sides nhé bạn :)
ở trên mình cũng có đoạn trigger khi mua item,bạn dùng code đó để làm nhé :)
 
1: bạn kiếm hình ảnh đồng hồ dota đấy ở đâu đó và import vào map rồi thay ở Advance -> Game interface
và thay Icon - Lumber bằng hình đồng hồ mà bạn muốn nhé :)
2: mình chịu :D
3: cái đó là hộ đặt 1 unit "circle" gần nhà mua hero và khi mua item đó nó sẽ create ra hero và remove cái circle đó nên sẽ bị khuất sides nhé bạn :)
ở trên mình cũng có đoạn trigger khi mua item,bạn dùng code đó để làm nhé :)

cái 1. bạn làm cho mình trigger đồng hồ được ko ạ? :D mình thay icon nhưng nó vẫn là Lumber và Food thôi... mình muốn ô Food là giây và ô Lumber là phút. :) Xin lỗi nếu mình đòi hỏi quá nhiều nhé :D
 
cái 1. bạn làm cho mình trigger đồng hồ được ko ạ? :D mình thay icon nhưng nó vẫn là Lumber và Food thôi... mình muốn ô Food là giây và ô Lumber là phút. :) Xin lỗi nếu mình đòi hỏi quá nhiều nhé :D
ak vậy mình hiểu nhầm bạn :D Trigger của bạn này :)
Trigger1:
PHP:
Events
Time-Every 60.00 seconds of game time
Conditions
Actions
PlayerGroup - Pick every player in (All players) and do (Player - Add 1 to (Picked player) Current Lumber))
Trigger2:
PHP:
Events
Time-Every 1.00 seconds of game time
Conditions
Actions
Set FoodSEC = (Player 1 (Red) Food used)
PlayerGroup - Pick every player in (All players) and do (Player - Set (Picked player) Food Used to (FoodSEC + 1))
Trigger3 :
PHP:
Events
Player - Player 1 (Red)'s Food used becomes Greather than or equal to 60.00
Conditions
Actions
Player - Set Player 1 (Red)'s Food used to 0
Mình lấy từ ở đây,bạn có thể lấy thêm thông tin nhé :)
http://www.thehelper.net/threads/dota-clock.141537/
hay http://www.hiveworkshop.com/forums/trigger-gui-editor-tutorials-279/lumber-food-clock-147990/
 
ak vậy mình hiểu nhầm bạn :D Trigger của bạn này :)
Trigger1:
PHP:
Events
Time-Every 60.00 seconds of game time
Conditions
Actions
PlayerGroup - Pick every player in (All players) and do (Player - Add 1 to (Picked player) Current Lumber))
Trigger2:
PHP:
Events
Time-Every 1.00 seconds of game time
Conditions
Actions
Set FoodSEC = (Player 1 (Red) Food used)
PlayerGroup - Pick every player in (All players) and do (Player - Set (Picked player) Food Used to (FoodSEC + 1))
Trigger3 :
PHP:
Events
Player - Player 1 (Red)'s Food used becomes Greather than or equal to 60.00
Conditions
Actions
Player - Set Player 1 (Red)'s Food used to 0
Mình lấy từ ở đây,bạn có thể lấy thêm thông tin nhé :)
http://www.thehelper.net/threads/dota-clock.141537/
hay http://www.hiveworkshop.com/forums/trigger-gui-editor-tutorials-279/lumber-food-clock-147990/

cho mình hỏi là cái hideworkshop chỉ chỉnh Low Upkeep Go to Advanced and go to “Game Constants”.
Find “Upkeep – Food Levels” and change Low and Medium to 100. Vậy Low và Medium là cai nào trong mấy cái integer ấy vậy :D
 
Cho hỏi cái effect nứt đất khi mới cast ulti của con Tauren Chieftain trong Dota là gì vậy nhỉ? Sao mình kiếm mãi ko ra.
 
Mình muốn cho hero của mình 200 level thì sẽ tự động move về chỗ bắt đầu và level sẽ về 1 (chỉ số giữ nguyên lúc lv 200) đồng thời được thêm 1 số gỗ nhất định + food sẽ tăng thêm 1 .Cứ như vậy, nếu food đên 5 thì sẽ là 300 level mới quay về lv 1 (chỉ số vẫn giữ nguyên lúc lv 200) vẫn được thêm 1 số gỗ như cũ và thêm 1 food . Ai biết xin làm ơn giúp mình với :(
 
Edit 1: (red line)
Edit 2: Trigger này mỗi lần hero lên lv sẽ đc 5 gỗ. Lên đến lv 200 và food = 0,1,2,3 sẽ reset lv1 (giữ chỉ số), tặng thêm 10 gỗ (tổng cộng 15) và tăng 1 food. Food lv 5 và hero lv 300 sẽ reset, bonus như cũ (tăng 15 gỗ 1 food)
(**) EDITTED xem post mới
 
Chỉnh sửa cuối:
Bạn ơi cái này không được rùi, mình muốn nó phải hoàn thành những điều kiện trên (200 lv, 300 lv, luc len lv 200 la tu move,sau do ve lv 1, chỉ số giữ nguyên ) mới đc thêm gỗ cơ, cái của bạn nó cứ lên 1 lever nó lại cộng thêm 1 gỗ và 1 food rồi :(
 
Bạn ơi cái này không được rùi, mình muốn nó phải hoàn thành những điều kiện trên (200 lv, 300 lv, luc len lv 200 la tu move,sau do ve lv 1, chỉ số giữ nguyên ) mới đc thêm gỗ cơ, cái của bạn nó cứ lên 1 lever nó lại cộng thêm 1 gỗ và 1 food rồi :(


[spoil]
Mã:
HeroLevelUp
    Events
        Unit - A unit Gains a level
    Conditions
    Actions
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Owner of (Triggering unit)) Equal to (Player((Integer A)))
                    Then - Actions
                        Set TempUnit = (Triggering unit)
                        Set TempPlayer = (Owner of TempUnit)
                        Player - Add 5 to TempPlayer Current lumber
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                Or - Any (Conditions) are true
                                    Conditions
                                        ((Hero level of TempUnit) Equal to 300) and ((TempPlayer Food used) Equal to 4)
                                        ((Hero level of TempUnit) Equal to 200) and ((TempPlayer Food used) Less than 4)
                            Then - Actions
                                Set TempPoint = (TempPlayer start location)
                                Set TempInteger = (Strength of TempUnit (Exclude bonuses))
                                Set TempInteger1 = (Agility of TempUnit (Exclude bonuses))
                                Set TempInteger2 = (Intelligence of TempUnit (Exclude bonuses))
[COLOR="#FF0000"]                                Player - Add 1 to TempPlayer Current lumber //chỉnh cái này thay đổi thưởng thêm lúc lv 200 và 300
                                Player - Add 1 to TempPlayer Food used[/COLOR]
                                Unit - Move (TempUnit) instantly to TempPoint
                                Hero - Set TempUnit Hero-level to 1, Hide level-up graphics
                                Hero - Modify Strength of TempUnit: Set to TempInteger
                                Hero - Modify Agility of TempUnit: Set to TempInteger1
                                Hero - Modify Intelligence of TempUnit: Set to TempInteger2
                                Custom script:   call RemoveLocation( udg_TempPoint )
                            Else - Actions
                        Custom script:   exitwhen true
                    Else - Actions
[/spoil]
 
Thank bạn nhiều, mình chưa đủ bài viết nên không thấy nut thank chỉ cảm ơn mồm vậy. Bạn có thể giúp mình nốt lần cuối hem

Mình muốn khi hero của mình khi đủ lever (ví dụ lv 50) dùng lệnh "-move 1" thì nó được chuyển đến địa điểm chỉ định trước, nhưng nếu nếu nó không đủ level mà dùng lệnh đó thì nó không xảy ra, vậy phải viết thế nào vậy
 
Làm giùm mấy skill :
- ném 1 quả bom vào đầu nạn nhân khi nạn nhân di chuyển thì nổ bùm nếu move típ thì nổ típ đến khi nổ hết 3 lần thì rềmove buff !! Lúc ném chưa nổ mà chỉ hiện buff lên đầu nạn nhân thôi
- trong war3 có skill nào ném 1 cục missle vào target point rồi deal dmg AoE không ? Chỉ tìm được cái Attack Groud của mấy cái xe hay pháo. Hix
- 1 cục model từ trên trời rớt xuống. Model gì cũng được để đổi sau. Chủ yếu tham khảo cách làm nó rớt.
 
^ chúc may mắn

Thank bạn nhiều, mình chưa đủ bài viết nên không thấy nut thank chỉ cảm ơn mồm vậy. Bạn có thể giúp mình nốt lần cuối hem

Mình muốn khi hero của mình khi đủ lever (ví dụ lv 50) dùng lệnh "-move 1" thì nó được chuyển đến địa điểm chỉ định trước, nhưng nếu nếu nó không đủ level mà dùng lệnh đó thì nó không xảy ra, vậy phải viết thế nào vậy
Tôi cũng chỉ được đến đây là gần như các yếu tố cơ bản. (Add tiền, player chat, đổi stat, move unit, set group, remove leak, cách dùng if-then-else và loop...) còn lại mong bạn làm được vì làm GUI đơn giản chỉ cần [chút tiếng anh] + [tư duy logic] + [cẩn thận].
[spoil]
Mã:
[COLOR="#FF0000"]command adding // trigger cũ tôi đã chỉ, chỉ cần thêm 1 dòng vào. Bạn có thể ko dùng cách này mà add trực tiếp 12 event cho 12 player vào từng trigger liên quan[/COLOR]
    Events
        Time - Elapsed game time is 0.00 seconds
    Conditions
    Actions
        Player Group - Pick every player in (All players) and do (Actions)
            Loop - Actions
                Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -agi as A substring)
                Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -str as A substring)
                Trigger - Add to Untitled Trigger 003 <gen> the event (Player - (Picked player) types a chat message containing -int as A substring)
[COLOR="#FF0000"]                Trigger - Add to MovingHero <gen> the event (Player - (Picked player) types a chat message containing -move 1 as An exact match)[/COLOR]
Mã:
[COLOR="#FF0000"]MovingHero// trigger mới tạo[/COLOR]
    Events
    Conditions
    Actions
        Set TempUnitGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))
        Unit Group - Pick every unit in TempUnitGroup and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Hero level of TempUnit) Greater than or equal to 50
                    Then - Actions
                        Set TempPoint = (Center of (Playable map area))
                        Unit - Move TempUnit instantly to TempPoint
                        Custom script:   call RemoveLocation( udg_TempPoint )
                    Else - Actions
        Custom script:   call DestroyGroup( udg_TempGroup )
[/spoil]
 
Làm giùm mấy skill :
- ném 1 quả bom vào đầu nạn nhân khi nạn nhân di chuyển thì nổ bùm nếu move típ thì nổ típ đến khi nổ hết 3 lần thì rềmove buff !! Lúc ném chưa nổ mà chỉ hiện buff lên đầu nạn nhân thôi
- trong war3 có skill nào ném 1 cục missle vào target point rồi deal dmg AoE không ? Chỉ tìm được cái Attack Groud của mấy cái xe hay pháo. Hix
- 1 cục model từ trên trời rớt xuống. Model gì cũng được để đổi sau. Chủ yếu tham khảo cách làm nó rớt.

Mình giúp vấn đề 1:

Bạn tạo 1 skill để lại buff .....
Bên trigger bạn sử dụng check order id là : "smart" --> Action
p/s: ko có demo
 
Back
Top