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

Status
Không mở trả lời sau này.
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
 
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
 
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

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")
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
Đọc mãi chả hiểu!:-?
 
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?
 
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:
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?
 
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.
 
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.
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()
 
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 !!!
 
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:
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é!
 
Nếu bằng GUI thì Unit - Order with no target: Order Triggering unit to Orc Blademaster Mirror Image.
 
Ý mình là "item illustions" cơ, vì nó ko có sẵn lệnh trong GUI nên phải dùng custom script.
 
YAN[asian];18531820 nói:
Ý mình là "item illustions" cơ, vì nó ko có sẵn lệnh trong GUI nên phải dùng custom script.

Tạo Item, đưa cho Unit, dùng Hero - Order Unit to use (Last created item) on Unit

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 !!!

[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:
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.
 
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:
[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]

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
 
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
 
Status
Không mở trả lời sau này.
Back
Top