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

Thảo luận trong 'World Editor' bắt đầu bởi Tom_Kazansky, 22/3/11.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. BooyViip

    BooyViip Mr & Ms Pac-Man GameOver

    Tham gia ngày:
    20/11/10
    Bài viết:
    120
    Nơi ở:
    Hà Nội
    Mà nói thêm là cái của anh Tom là làm cho Passive Spell nên về cách làm và ý nghĩa Trigger đều không giống với cái Point Target Spell bạn FlameDrake muốn.

    ---------- Post added at 10:21 ---------- Previous post was at 10:19 ----------

    Cool wa' ............................................................
     
  2. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Bạn thử map demo của anh Tom chưa. Mình làm slide nhiều rồi có thể đảm bảo cách thức tính của anh Tom thì khi thay đổi khoảng cách nó vẫn slide chuẩn. Như mình đã nói dù khoảng cách knockback có là bao nhiêu nhưng với cách tính "khoảng cách slide = khoảng cách knockback / số tick" vì khoảng cách là real (số thực) nên chả có sai lệch nào ở đây cả.

    ^
    Bạn ơi, knock back thì cũng là slide nhưng khoảng cách di chuyển giảm dần, còn passive hay active thì bạn chỉ cần thay đổi event với condition là OK
     
    Chỉnh sửa cuối: 10/5/11
  3. BooyViip

    BooyViip Mr & Ms Pac-Man GameOver

    Tham gia ngày:
    20/11/10
    Bài viết:
    120
    Nơi ở:
    Hà Nội
    Mà hình như bạn quên bước "Turn collision On" trở lại thì phải.
     
  4. tinhle87

    tinhle87 Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/08
    Bài viết:
    127
    làm theo cái link bên dưới để có dòng font bạn ạ chắc chắn bạn p dùng đến JassNewGen còn dùng WE thì ko làm đc
     
  5. nhocabc123

    nhocabc123 Youtube Master Race

    Tham gia ngày:
    28/5/09
    Bài viết:
    63
    Mình làm được rồi nhưng khi test map thì bị lỗi fatal error.
     
  6. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Mã:
    Lava Way
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to |cffFF00CCTiÕng Gäi Quª H­¬ng|r 
        Actions
            Set LavaUnit = (Triggering unit)
            Set TempLavaUnit = (Position of LavaUnit)
            Set TempLavaTarger = (Target point of ability being cast)
            Set AngleWave = (Angle from TempLavaUnit to TempLavaTarger)
            For each (Integer A) from 1 to ((Level of |cffFF00CCTiÕng Gäi Quª H­¬ng|r  for LavaUnit) x 4), do (Actions)
                Loop - Actions
                    Unit - Create 1 Lava Dummy for (Owner of LavaUnit) at (TempLavaUnit offset by ((Real((Integer A))) x 175.00) towards AngleWave degrees) facing (Facing of LavaUnit) degrees
                    Set LavaDummy[(Integer A)] = (Last created unit)
                    Set TempLavaDummy[(Integer A)] = (Position of LavaDummy[(Integer A)])
                    Unit - Add a 2.00 second Generic expiration timer to LavaDummy[(Integer A)]
                    Set LavaGroup = (Units within 180.00 of TempLavaDummy[(Integer A)] matching ((((Matching unit) belongs to an enemy of (Owner of LavaUnit)) Equal to True) and (((Matching unit) is alive) Equal to True)))
                    Unit Group - Pick every unit in LavaGroup and do (Actions)
                        Loop - Actions
                            Unit - Cause LavaUnit to damage (Picked unit), dealing (((Real((Level of |cffFF00CCTiÕng Gäi Quª H­¬ng|r  for LavaUnit))) x 5.00) x (Real((Strength of LavaUnit (Exclude bonuses))))) damage of attack type Hero and damage type Defensive
                            Floating Text - Create floating text that reads ((String(((Real((Strength of LavaUnit (Include bonuses)))) x ((Real((Level of |cffFF00CCTiÕng Gäi Quª H­¬ng|r  for LavaUnit))) x 5.00)))) +  damage) at (Position of (Picked unit)) with Z offset 0.00, using font size 10.50, color (100.00%, 32.00%, 32.00%), and 0.00% transparency
                            Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                            Floating Text - Change (Last created floating text): Disable permanence
                            Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
            Custom script:   call RemoveLocation(udg_TempLavaUnit)
            Custom script:   call RemoveLocation(udg_TempLavaTarger)
            Custom script:   call RemoveLocation(udg_TempLavaDummy[GetForLoopIndexA()])
            Custom script:   call DestroyGroup(udg_LavaGroup)
    
    Remove leak và dummy mà cast khoảng 5 lần mà bắt đầu điệp khúc :|
    P/s: BoyVip cái SD_Point[1] và SD_Point[2] remove leak ntn :|
     
  7. nhocabc123

    nhocabc123 Youtube Master Race

    Tham gia ngày:
    28/5/09
    Bài viết:
    63
    à. Cái này mình biết sửa rồi. Mình nghe nói đánh tiếng việt chỉ có hiệu lực khi vào game. Nhưng khi mình vào game thì nó vẫn thế. Mình làm theo hướng dẫn của Tom rồi mà sao vẫn không được.
     
  8. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    ^ Remove leak nhiều mà sai chỗ thì không lag mới lạ.

    Uhm, tại sao ko có cách nào ??
    Còn cách của bạn ấy chuẩn thật, lí thuyết nói được chứ thử làm cái khắc biết ngay zzz
     
  9. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    ^^^ @FrameDrake
    Bạn leak cái location trong vòng loop. Cho vào cuối vòng loop cái này để remove leak và xóa cái ở cuối đi
    Custom script: call RemoveLocation(udg_TempLavaDummy[GetForLoopIndexA()])
    Bạn để ngoài nên bị sai không remove hết
     
  10. BooyViip

    BooyViip Mr & Ms Pac-Man GameOver

    Tham gia ngày:
    20/11/10
    Bài viết:
    120
    Nơi ở:
    Hà Nội
    Thì: call RemoveLocation(udg_SD_Point[1]) chứ sao.
    PS: nếu chuyển thành MUI thì phải chia point[mảng] thành point_1, point_2,... cụ thể rồi remove leek: call RemoveLocation(udg_SD_Point_1[udg_MUI]).

    ---------- Post added at 11:32 ---------- Previous post was at 11:14 ----------

    Nếu cách đó chuẩn thì trước tiên bạn giải thích hộ mình cái Spell "Enchant Totem" của ES trong Dota. Theo cách mình hiểu là khi Hero có buff tăng dam đó đánh 1 unit khác thì sau khi đánh sẽ remove luôn buff đó. Nhưng vấn đề là Unit nào cũng có Animation - Damage Point mang những giá trị khác nhau, vì vậy chắc chắn phải dùng Wait trong cái Trigger remove buff đó. Mà đã Wait thì trong thời gian Wait nều có các Unit khác tấn công Target kia hay đơn giản chính Target lại đang bị dính độc thì Dam hiện lên chắc chắn sẽ ko chính xác. Nếu như có cách làm khác đối với spell ET của ES (ví dụ như Action nhận biết Unit đó đã thực hiện thành công 1 đòn tấn công) thì cái cách nói trên của bạn DemonPrice sẽ đúng, còn ko thì sai.
     
    Chỉnh sửa cuối: 10/5/11
  11. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Về ET thì theo cá nhân mình làm :
    1) Base từ roar lên nên cả cần gì quan tâm về damage.
    2) (cái này mình vẫn chưa nắm được) Để trigger nhận việc đã attack thì dùng event unit takes damage, detect loại damage, và remove.
    Việc bạn nói có vẻ như xài event unit is attacked, wait vài s rồi remove buff, nhưng bạn thử spam stop là sẽ biết.
    Còn cách nhận damage để show như DemonPrince thì mình xin không có ý kiến thêm...
     
    Chỉnh sửa cuối: 10/5/11
  12. FlameDrake

    FlameDrake Dragon Quest

    Tham gia ngày:
    1/12/10
    Bài viết:
    1,298
    Nơi ở:
    Quận 10 HCM
    Mã:
    Slide Dancing
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to |cffFFCCCCSlide Dancing|r 
        Actions
            Set SD_Caster = (Casting unit)
            Set SD_CasterPoint = (Position of SD_Caster)
            Set SD_Point[1] = (Position of SD_Caster)
            Set SD_TargetPoint = (Target point of ability being cast)
            Set SD_Angel = (Angle from SD_CasterPoint to SD_TargetPoint)
           [COLOR="Red"] Set SD_Distance = 24.00[/COLOR]
            Animation - Play SD_Caster's Attack Walk Stand animation
            Unit - Turn collision for SD_Caster Off
            Trigger - Turn on Slide Dancing Move <gen>
    
    Mã:
    Slide Dancing Move
        Events
            Time - Every 0.04 seconds of game time
        Conditions
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    [COLOR="Red"](Distance between SD_Point[1] and SD_TargetPoint) Greater than or equal to (SD_Distance / 2.00)[/COLOR]
                Then - Actions
                    Set SD_Point[2] = (SD_Point[1] offset by SD_Distance towards SD_Angel degrees)
                    Unit - Move SD_Caster instantly to SD_Point[2]
                    Set SD_Point[1] = SD_Point[2]
                Else - Actions
                    Unit - Turn collision for SD_Caster On
                    Animation - Reset SD_Caster's animation
                    Trigger - Turn off Slide Dancing Move <gen>
    
    4 dòng remove leak này nên quang ntn vào 2 trigger trên đây :|
    Custom script: call RemoveLocation(udg_SD_Point[1])
    Custom script: call RemoveLocation(udg_SD_Point[2])
    Custom script: call RemoveLocation(udg_SD_CasterPoint)
    Custom script: call RemoveLocation(udg_SD_TargetPoint)
    Cái SD_Distance mình cho 1 số mặc định là 24, có ảnh hưởng gì tới dòng đỏ trong trigger thứ 2 ko ? Và giải thix cho mình cái dòng đỏ trong trigger thứ 2 là sao ? Lẽ ra fải là SD_Distance thôi, sao lại còn chia cho 2.
     
    Chỉnh sửa cuối: 10/5/11
  13. ZhengHe

    ZhengHe T.E.T.Я.I.S

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Cho hỏi lỗi này khắc phục thế nào ??
    Lỗi này xuất hiện khi mình test map = jassnewgen.
    [​IMG]
     
  14. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
  15. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Chả hiểu sao tớ bật sẵn war3 rồi test map nào vào map đấy còn nhanh hơn dùng crtl+F9. Á mà sao hồi xưa em có hỏi sao crlt F9 của em không vào được mà anh không trả lời. Đến bây h mới biết câu hỏi của mình được trả lời từ 2009 :-ss
    Btw,
    cái UMSWE có cái Custom Pathability mà dùng hẻm được, cũng chả báo lỗi. Restart WE cũng không thay đổi
     
  16. nhocabc123

    nhocabc123 Youtube Master Race

    Tham gia ngày:
    28/5/09
    Bài viết:
    63
    sao không ai tra lời mình hết vậy? Help me. Với lại cho mình xin cái font map thiên kiếm luôn.
     
  17. Gentaro

    Gentaro Mr & Ms Pac-Man

    Tham gia ngày:
    27/3/08
    Bài viết:
    158
    Nơi ở:
    Sunlight Heart
    Vn.Vogue
    Lên fontchu.com mà kiếm. phải chỉnh font chữ hiển thị trong game. dùng unikey bảng mã TCVN3
     
  18. nhocabc123

    nhocabc123 Youtube Master Race

    Tham gia ngày:
    28/5/09
    Bài viết:
    63
    Bạn hướng dẫn cụ thể dùm mình được không?
    Giờ mình down font về rồi làm gì nữa. Chỉ mình chi tiết luôn nhé. Mấy cái đường dẫn đến font trong Jassnewgen bạn cũng chỉ rõ luôn nhé.
     
  19. BooyViip

    BooyViip Mr & Ms Pac-Man GameOver

    Tham gia ngày:
    20/11/10
    Bài viết:
    120
    Nơi ở:
    Hà Nội
    _4 dòng remove leak để vào giữa 2 dòng "Animation - Reset SD_Caster's animation" và " Trigger - Turn off Slide Dancing Move <gen>":
    Mã:
    Animation - Reset SD_Caster's animation
    [COLOR="Red"]Remove Leak[/COLOR]
    Trigger - Turn off Slide Dancing Move <gen>
    _Để SD_Distance = bao nhiêu là tùy bạn.
    _Còn về giải thích phần kia hơi dài dòng, bạn cố hiểu cho:
    + Xét Khoảng Cách(KC) từ Caster(C) đến Target(T) khi: KC>36 => tiếp tục Move C.
    + Khi KC=36 thì trong 0.04s sau KC sẽ=36-24=12 (=24/2) => dừng C.
    + Khi 36<KC<12 thì trong 0.04s sau KC sẽ trong khoảng: -12<KC<12 => dù KC là số nào trong khoảng đó thì C cũng sẽ dừng.
    + Khi KC=12 hoặc KC=-12 thì đương nhiên dừng C (bạn nào thông minh sẽ biết ngay KC nhỏ nhất có thể đạt đc chỉ là -11, mình nói -12 là cho dễ hiểu hơn thôi).
    Dù KC ở khoảng nào thì cũng rơi vào 1 trong 4 TH trên và kết quả là C sẽ phải dừng đúng thời điểm.
    Sở dĩ có cái SD_Distance/2 đó là vì đó là giá trị thấp nhất có thể dùng, nếu dùng các giá trị cao hơn thì C sẽ dừng lại ở trước T 1 đoạn (dù là ngắn nhưng cũng ko hay)
    Tất nhiên có nhiều người sẽ nghĩ là tai sao không phải dùng If thế này:
    Mã:
    (Distance between SD_Point[1] and SD_TargetPoint) Not equal to 0
    Xin thưa rằng là ko đc vì KC đẹp lắm mới có thể =0 (khi Distance từ C đến T lúc bắt đầu cast spell là BỘI của SD_Distance).
     
    Chỉnh sửa cuối: 10/5/11
  20. faustviii

    faustviii Mr & Ms Pac-Man

    Tham gia ngày:
    28/1/09
    Bài viết:
    110
    EnchantTotemAttack
    Events
    Unit - A unit Is attacked
    Conditions
    ((Attacking unit) has buff Enchant Totem ) Equal to True
    Actions
    Wait 1.00 seconds
    Unit - Remove Enchant Totem buff from (Attacking unit)
    base từ roar đấy =))
    demo anh tom làm =)),1s sau khi phang vào người nó thì remove,còn không sẽ tồn tại trong 15s rồi sau đó remove theo mặc định của spell
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này