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. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    ai làm giúp bjn cái đc k: Khi đánh chết một con quái sẽ hiện số Exp nhận được trên đâu như sau : + x EXP (x là số exp nhận được) màu vàng. Bằng GUi hay Jass (Jass càng tốt sẵn học lun ^^) cũng đc tks nhìu
     
  2. *darkman*

    *darkman* Mr & Ms Pac-Man

    Tham gia ngày:
    2/1/09
    Bài viết:
    278
    Xin hỏi làm spell remove sao zậy, chỉ thấy remove chứ ko thấy lệnh cho unit way lại ? Thanks nhìu
     
  3. AzuhaSky

    AzuhaSky T.E.T.Я.I.S

    Tham gia ngày:
    30/5/10
    Bài viết:
    550
    Nơi ở:
    WE Box
    Bạn có thể sử dụng GUI để giản đơn hơn,nhưng trước đó ,bạn cần một biến integer tính EXP nhận được,cụ thể có thể xem bài viết mà Tom đã hướng dẫn!
    Sau đó có thể sử dụng lệnh Texttag_unit của Cohadar để gọi Flying Text với hàm như sau:
    Mã:
    call Texttag_Unit(GetKillerUnit(),"+" + I2S(R2I(giá trị đã tính))+ " EXP","mã màu sắc")
    Đọc mãi chả hiểu!:-?
     
  4. ...PA.

    ...PA. Donkey Kong

    Tham gia ngày:
    16/8/10
    Bài viết:
    322
    có bạn nào có interface nhìn hoang dã tí dc ko ?
    cho mình xin nhé :D
    thank
     
  5. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    cho bjn hỏi trong Jass có 2 loại code một là có BJ và một là k.
    vd : SetUnitAcquireRangeSetUnitAcquireRangeBJ
    thì khác nhau chỗ nào?
     
  6. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    BJ thường gọi native(cái "code kia"), gọi trực tiếp native thì nhanh hơn là gọi "gián tiếp" thông qua một hàm

    đã dùng JASS thì nên dùng native.

    các BJ thường vô dung vì chỉ gọi native vì vậy không nên dùng
    ngoại trừ một só BJ hữu dụng (ít nhất làm nhiều hơn việc chỉ gọi native) thì dùng hay không tùy
     
    Chỉnh sửa cuối: 18/5/11
  7. ZhengHe

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

    Tham gia ngày:
    4/1/09
    Bài viết:
    623
    Mình có 1 system detect damage, bây h mình muốn khi bất kì hero nào attack thì sẽ lưu damage đó lại, rồi cũng hero đó attack tiếp thì update cái damage tiếp. Vấn đề làm làm sao cho nó MUI và update chính xác thông tin của các hero. Thanks

    P/s: nếu vừa vào game muốn tạo 1 illusion của các hero trên bản đồ rồi cho nó đánh vào dummy để lấy damage thì làm như thế nào?
     
  8. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    Mã:
    scope GE initializer init
    
    private function GEcon takes nothing returns boolean
        return GetSpellAbilityId() == 'A20P'
    endfunction
    
    private function GEcheck takes nothing returns boolean
        return IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) and (not(IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD) and GetUnitTypeId(GetFilterUnit()) != 0))
    endfunction
    
    private function GEact takes nothing returns nothing
        local unit u = GetTriggerUnit()
        local location p = GetSpellTargetLoc()
        local unit d
        local unit enum
        local group G = CreateGroup()
        local real dame = ( ( 400.00 + ( 100.00 * I2R(GetUnitAbilityLevel(u, 'A20P')) ) ) + ( 3.50 * I2R(GetHeroAgi(u, true)) ) ) 
        call CreateNUnitsAtLoc(1, 'h00P', GetOwningPlayer(u), p, bj_UNIT_FACING)
        set d = GetLastCreatedUnit()
        call SetUnitScalePercent(d, 100.00, 100.00, 100.00)
        call TriggerSleepAction(0.5)
        call SetUnitScalePercent(d, 150.00, 150.00, 150.00)
        call TriggerSleepAction(0.5)
        call SetUnitScalePercent(d, 200.00, 200.00, 200.00)
        call TriggerSleepAction(0.5)
        call SetUnitScalePercent(d, 250.00, 250.00, 250.00)
        call TriggerSleepAction(0.5)
        call SetUnitScalePercent(d, 300.00, 300.00, 300.00)
        call RemoveUnit(d)
        call GroupEnumUnitsInRange(G, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 400, Condition(function GEcheck))
        loop 
           set enum = FirstOfGroup(G)
           exitwhen (enum == null)
           call CreateNUnitsAtLoc(1, 'h002', GetOwningPlayer(u), p, bj_UNIT_FACING)
           call UnitAddAbilityBJ('A02R', GetLastCreatedUnit())
           call SetUnitAbilityLevelSwapped('A02R', GetLastCreatedUnit(), GetUnitAbilityLevelSwapped('A02N', u))
           call IssuePointOrderLocBJ(GetLastCreatedUnit(), "flamestrike", p)
           call UnitApplyTimedLifeBJ(1, 'BTLF', GetLastCreatedUnit())
           call UnitDamageTarget(GetTriggerUnit(), enum, dame, false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_ENHANCED, null)
           call GroupRemoveUnit(G, enum)
        endloop
        call GroupClear(G)
        set enum = null
        call DestroyGroup(G)
        call RemoveLocation(p)
        set u = null
    endfunction
    //***********************************************************************
    
    private function init takes nothing returns nothing
        local trigger t = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
        call TriggerAddCondition(t, Condition(function GEcon))
        call TriggerAddAction(t, function GEact)
        set t = null
    endfunction
    
    endscope
    
    ai xem giúp bjn cái trigger trên lỗi gì? Mà khi vào game k có dame, effect và fix giúp bjn lun nha tks
    Mô tả như sau: Khi cast spell thì tạo một quả cầu tại điểm cast, cứ mỗi 0.5s thì quả cầu lại to lên khi đạt đên size 300% thì remove nó ra khỏi game, loop trong group tạo dummy add ability cho dummy là một vụ nổ và gây dame.
     
  9. AzuhaSky

    AzuhaSky T.E.T.Я.I.S

    Tham gia ngày:
    30/5/10
    Bài viết:
    550
    Nơi ở:
    WE Box
    Mình xem qua và có nhận xét thế này!
    Trong phạm vi loop,bạn đã tạo quá nhiều dummy tại một địa điểm, điều này làm lag map!
    Thứ hai mình khuyên bạn khi sử dụng Điều kiện của hàm Group nên sử dụng biến kiểm tra cố định hơn,VD như:
    Mã:
    globals
          [B]private unit caster[/B]
    endglobals
    //============================================
    private function Check takes nothing returns nothing
          return [B]IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(caster))[/B]
    endfunction
    
    private function ActionsTrigg takes nothing returns nothing
          [B]set caster=GetTriggerUnit()[/B]
          // đặt hàm Group Enum Units của bạn tại đây!
    endfunction
    À nhắc nhở tí, trigg của bạn làm hơi leak, bạn nên sử dụng set d=CreateUnit(PlayerId,UnitId,real x,real y,real facing) để tạo dummy thay vì tạo rồi sau mới set d = GetLastCreatedUnit()
     
  10. ngoc426123

    ngoc426123 Youtube Master Race

    Tham gia ngày:
    1/2/08
    Bài viết:
    83
    Nơi ở:
    TP .Hồ Chí Mi
    cho ngoc hỏi nhé , ngoc muốn làm 1 trigger như sau , như player đặt một món item vào trong một region thì sẽ xuất hiện một con lính ( chổ xuất hiện thì không quan trọng) , ai chỉ ngoc với , hiên giờ đang pó tay !!!
     
  11. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    sky có thể fix giùm bjn k, bjn sửa hồi nó ra effect nhưng lại ở chỗ hero, và k gây dame.
    P/s" bjn sửa đc rùi chỉ cần xóa mấy lệnh kja đưa lệnh tạo unit ở loop lên trên là ok.
    CHo bjn hỏi lệnh thay đổi độ cao của unit ở jass là jif
     
    Chỉnh sửa cuối: 18/5/11
  12. AzuhaSky

    AzuhaSky T.E.T.Я.I.S

    Tham gia ngày:
    30/5/10
    Bài viết:
    550
    Nơi ở:
    WE Box
    Thay đổi độ cao unit thì sử dụng lệnh: call SetUnitFlyingHeight(unit, real flyingheight, real timeapplied)
    Lần sau đừng tạo quá nhiều dummy cùng lúc mà không sử dụng giá trị tạm nhé!
     
    DylandKyo thích bài này.
  13. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Cho hỏi lệnh order unit sử dụng skill illustions ntn?
     
  14. AzuhaSky

    AzuhaSky T.E.T.Я.I.S

    Tham gia ngày:
    30/5/10
    Bài viết:
    550
    Nơi ở:
    WE Box
    Nếu bằng GUI thì Unit - Order with no target: Order Triggering unit to Orc Blademaster Mirror Image.
     
  15. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Ý mình là "item illustions" cơ, vì nó ko có sẵn lệnh trong GUI nên phải dùng custom script.
     
  16. lonewolf020291

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

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    Tạo Item, đưa cho Unit, dùng Hero - Order Unit to use (Last created item) on Unit

    [spoil]
    Mã:
        Events
            Unit - A unit Loses an item
        Conditions
            (Item being manipulated) Equal to Item XX
            ((Region 001) contains (Triggering unit)) Equal to True
        Actions
            Set Point = .....
            Unit - Create 1 Footman for Player XXX at (Point) facing Default building facing degrees
            Call RemoveLocation(udg_Point)
    [/spoil]
     
    Chỉnh sửa cuối: 19/5/11
  17. Gh0stR|der

    Gh0stR|der Youtube Master Race

    Tham gia ngày:
    15/11/10
    Bài viết:
    21
    Xin cái system tạo illusion giống trong dota. Giống như kiểu của shadow demon, khi cast skill vao đối phương sẽ tạo ra 2 cái bóng của chính múc tiêu và mỗi bóng có 50% damage của mục tiêu.
     
  18. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Muốn dùng các tile khác nhau (ko nằm trong cùng 1 bảng) trong 1 map thì làm thế nào nhỉ?
     
    Last edited by a moderator: 19/5/11
  19. AzuhaSky

    AzuhaSky T.E.T.Я.I.S

    Tham gia ngày:
    30/5/10
    Bài viết:
    550
    Nơi ở:
    WE Box
    Vậy nghĩa là nếu item đó bị đánh rơi thì cũng gọi boss à?

    Câu hỏi của YAN thì có thể vào mục Edit Tileset của JNG1.5d
     
  20. *darkman*

    *darkman* Mr & Ms Pac-Man

    Tham gia ngày:
    2/1/09
    Bài viết:
    278
    Ai zúp với, khi unit (1 số con creep) khi cast spell của hero chuyển wa unit thì khi cast nó có đợi 1 khoảng time nhỏ mới cast ra đc ko như hero cast là có liền (Serpent Ward), ai khắc phục khoảng time trên dùm, Thanks
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này