Topic hỏi đáp (tập 3) về cách làm map

Status
Không mở trả lời sau này.
^ mặt dù chưa làm thử... nhưng theo mình dùng GUI dễ lắm mà....
chọn 1 skill bất kì có dạng Cast Target nhé... cho nó cái Model giật sét... chọn Icon, chỉnh Dam... thêm Tooltip :) thử xem...
 
Có hiểu mình hỏi cái gì ko mà có cả sấm sét ở đây thế =))?

À, hiểu rồi. Cậu tưởng Luna Dday hả? My bad! Là Luna Dota nhé.
 
có pác nào bít làm quest help với
hoac giới thiệu maps có quest cho vô hoc ké cung dc
(maps cần nhẹ... đễ nhìn, ko lock)
 
Bạn zô coi Map Kasthal Quest ấy (tự quảngcáo =)))
Quest dễ mà,tạo Quest xong, set varỉable, Enable Quest và Mark COmplete Quest là xong thui :)
 
YAN[asian];13834452 nói:
Có hiểu mình hỏi cái gì ko mà có cả sấm sét ở đây thế =))?

À, hiểu rồi. Cậu tưởng Luna Dday hả? My bad! Là Luna Dota nhé.

Hướng dẫn gợi ý nhớ (vì theo tôi thấy cậu dư thừa khả năng để làm)
2 Trigger:
trigger đầu set variable này kia kia nọ (caster, level, count,...etc....)
trigger 2 event là Every [khoảng thới gian mỗi phát bắn] Sec
Rồi set group với 1 đống condition (matching unit equals to enemy unit of owner of [Caster],..etc...)
Rồi tạo 1 dummy, add dummy skill (storm bolt hay Firebolt,..mấy dạng stun target), set level = với level của skill chính, rồi order nó cast random 1 con trong group vừa pick. Xong rồi xóa group.
Còn vụ limit thì hem biết :))
 
http://forum.gamevn.com/showpost.php?p=9134777&postcount=850
Em vẫn chưa hiểu lắm
Cụ thể làm em muốn cho 1 area nhất định có khoảng X creeps. Khi ta giết creeps thì sau khi 1 creep chết đi thì 10s<tính từ thời gian creep đó chết>thì xuất hiệnh con khác ở 1 vị trí randomn trong area đó thì chỉnh như thế nào ạ
.
___________Auto Merge________________

.
http://forum.gamevn.com/showpost.php?p=9134777&postcount=850
Em vẫn chưa hiểu lắm
Cụ thể làm em muốn cho 1 area nhất định có khoảng X creeps. Khi ta giết creeps thì sau khi 1 creep chết đi thì 10s<tính từ thời gian creep đó chết>thì xuất hiệnh con khác ở 1 vị trí randomn trong area đó thì chỉnh như thế nào ạ
À mà nếu như em muốn chỉnh cho Hero XP theo kiểu <LV sau> = 120% < LV trước> thì chỉ điền gì và lọa bỏ những gì:D
 
http://forum.gamevn.com/showpost.php?p=9134777&postcount=850
Em vẫn chưa hiểu lắm
Cụ thể làm em muốn cho 1 area nhất định có khoảng X creeps. Khi ta giết creeps thì sau khi 1 creep chết đi thì 10s<tính từ thời gian creep đó chết>thì xuất hiệnh con khác ở 1 vị trí randomn trong area đó thì chỉnh như thế nào ạ
À mà nếu như em muốn chỉnh cho Hero XP theo kiểu <LV sau> = 120% < LV trước> thì chỉ điền gì và lọa bỏ những gì:D

Đầu tiên, tạo 1 region nằm trên vùng bạn muốn quái hồi sinh, rồi thiết lập trigger này!

Mã:
Xuất Hiện Quái Random Trong Region
    Events
        Unit - A unit Dies
    Conditions
        (Unit-type of (Triggering unit)) Equal to [U]<Loại Quái Bị Chết>[/U]
    Actions
        Wait [U]10.00 [/U]seconds
        Unit - Create 1 [U]<Loại Quái Muốn Tạo Ra (Hồi Sinh)>[/U] for [U]Neutral Hostile[/U] at (Random point in ([U]<Region Muốn Tạo Quái>[/U])) facing Default building facing degrees

Với cách này, bạn có thể để quái trước hoặc dùng trigger tạo quái đều có hiệu quả hồi sinh lại!


Câu hỏi 2: Anh Tom đã chỉ rõ rùi mà Hero XP - Required Experience to level up (điểm kinh nghiệm cần thiết để lên level)
 
có phải từ cái Ulti Luna ta có thể làm tương tự để tẠo ra Spell 1 của Clock, và Spell 2 của Lershac...
 
hix , cảm ơn bạn đã nhiệt tình nhưng mà cái này là Jass , đọc ko hiểu gì ráo , mình chỉ mới là GUI-er thôi
 
Quái, để array của var = 1 thì periodic trigger tự turn off, hỏi thehelper bảo đưa lên 100 thì ok. Nhưng ví dụ như skill Elune's Arrow của Mirana xài 1 lúc thì periodic trigger cũng... turn off nốt.

Anh Tom xem cái skill Plasma Field này rồi giải thích cho em hiểu tại sao để array 1 thì bị lỗi dùng 1 lần tự tắt mà để 100 thì ổn.
Mã:
Plasma Field
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to PFAbilityMain
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                PFCustomValue Less than 100
            Then - Actions
                Set PFCustomValue = (PFCustomValue + 1)
            Else - Actions
                Set PFCustomValue = 1
        Set PFCaster[PFCustomValue] = (Triggering unit)
        Set PFBoolean[PFCustomValue] = False
        Set PFRealMin = (40.00 + (40.00 x (Real((Level of PFAbilityMain for (Triggering unit))))))
        Set PFRealMax = (70.00 + (70.00 x (Real((Level of PFAbilityMain for (Triggering unit))))))
        Set PFRealDamageAdd[PFCustomValue] = ((PFRealMax - PFRealMin) / 56.00)
        Set PFRealDamage[PFCustomValue] = (PFRealMin / 2.00)
        Set PFRealDistance[PFCustomValue] = 0.00
        Set TempPoint = (Position of (Triggering unit))
        Set TempReal = 0.00
        For each (Integer A) from 1 to 36, do (Actions)
            Loop - Actions
                Set TempReal = (TempReal + 10.00)
                Set TempOffset = (TempPoint offset by PFRealDistance[PFCustomValue] towards TempReal degrees)
                Unit - Create 1 PlasmaFieldDummy for (Owner of (Triggering unit)) at TempOffset facing TempReal degrees
                Unit - Set the custom value of (Last created unit) to (Integer(TempReal))
                Unit Group - Add (Last created unit) to PFUnitGroup[PFCustomValue]
                Custom script:   call RemoveLocation(udg_TempOffset)
        Unit - Create 1 HiddenDummy for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
        Unit - Set the custom value of (Last created unit) to PFCustomValue
        Unit Group - Add (Last created unit) to PFDummyGroup
        Custom script:   call RemoveLocation(udg_TempPoint)

Mã:
Plasma Field Periodic
    Events
        Time - Every 0.04 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in PFDummyGroup and do (Actions)
            Loop - Actions
                Set TempInt = (Custom value of (Picked unit))
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        PFBoolean[TempInt] Equal to True
                    Then - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                PFRealDistance[TempInt] Less than or equal to 0.00
                            Then - Actions
                                Unit Group - Remove all units from PFDamagedGroup[TempInt]
                                Unit Group - Pick every unit in PFUnitGroup[TempInt] and do (Actions)
                                    Loop - Actions
                                        Set TempPoint = (Position of (Picked unit))
                                        Unit - Remove (Picked unit) from the game
                                        Special Effect - Create a special effect at TempPoint using AncestralGuardianMissileBlue.mdx
                                        Special Effect - Destroy (Last created special effect)
                                        Custom script:   call RemoveLocation(udg_TempPoint)
                                Unit - Remove (Picked unit) from the game
                            Else - Actions
                                Set PFRealDamage[TempInt] = (PFRealDamage[TempInt] - PFRealDamageAdd[TempInt])
                                Set PFRealDistance[TempInt] = (PFRealDistance[TempInt] - 25.00)
                                Set TempPoint = (Position of PFCaster[TempInt])
                                Unit Group - Pick every unit in PFUnitGroup[TempInt] and do (Actions)
                                    Loop - Actions
                                        Set TempReal = (Real((Custom value of (Picked unit))))
                                        Set TempOffset = (TempPoint offset by PFRealDistance[TempInt] towards TempReal degrees)
                                        Unit - Move (Picked unit) instantly to TempOffset, facing (TempReal - 180.00) degrees
                                        Set TempUnitGroup = (Units within 100.00 of TempOffset matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of PFCa
                                        Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                                            Loop - Actions
                                                Unit - Cause PFCaster[TempInt] to damage (Picked unit), dealing PFRealDamage[TempInt] damage of attack type Spells and damage type Magic
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\Bolt\BoltImpact.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Unit Group - Add (Picked unit) to PFDamagedGroup[TempInt]
                                        Custom script:   call DestroyGroup(udg_TempUnitGroup)
                                        Custom script:   call RemoveLocation(udg_TempOffset)
                                Custom script:   call RemoveLocation(udg_TempPoint)
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                PFRealDistance[TempInt] Greater than or equal to 700.00
                            Then - Actions
                                Unit Group - Remove all units from PFDamagedGroup[TempInt]
                                Set PFBoolean[TempInt] = True
                            Else - Actions
                                Set PFRealDamage[TempInt] = (PFRealDamage[TempInt] + PFRealDamageAdd[TempInt])
                                Set PFRealDistance[TempInt] = (PFRealDistance[TempInt] + 25.00)
                                Set TempPoint = (Position of PFCaster[TempInt])
                                Unit Group - Pick every unit in PFUnitGroup[TempInt] and do (Actions)
                                    Loop - Actions
                                        Set TempReal = (Real((Custom value of (Picked unit))))
                                        Set TempOffset = (TempPoint offset by PFRealDistance[TempInt] towards TempReal degrees)
                                        Unit - Move (Picked unit) instantly to TempOffset, facing TempReal degrees
                                        Set TempUnitGroup = (Units within 100.00 of TempOffset matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an enemy of (Owner of PFCa
                                        Unit Group - Pick every unit in TempUnitGroup and do (Actions)
                                            Loop - Actions
                                                Unit - Cause PFCaster[TempInt] to damage (Picked unit), dealing PFRealDamage[TempInt] damage of attack type Spells and damage type Magic
                                                Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\Bolt\BoltImpact.mdl
                                                Special Effect - Destroy (Last created special effect)
                                                Unit Group - Add (Picked unit) to PFDamagedGroup[TempInt]
                                        Custom script:   call DestroyGroup(udg_TempUnitGroup)
                                        Custom script:   call RemoveLocation(udg_TempOffset)
                                Custom script:   call RemoveLocation(udg_TempPoint)
 
tốt nhất post map lên, nếu map to thì copy spell trên vào map mới

chứ trong 2 trigger trên ko có action nào turn off cả, làm sao trigger tự turn off đc
 
Mã:
function Trig_Guardian_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetSummonedUnit()) == 'hphx' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Guardian_Func004C takes nothing returns boolean
    if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_ball), GetUnitLoc(udg_master)) >= 1000.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Guardian_Actions takes nothing returns nothing
    set udg_master = GetSummoningUnit()
    set udg_ball = GetSummonedUnit()
    exitwhen IsUnitDeadBJ(ball)
    if ( Trig_Guardian_Func004C() ) then
        set udg_target = GetUnitLoc(udg_master)
        call IssuePointOrderByIdLoc(ball,851986,target)
        call RemoveLocation(target)
    else
        set udg_target = GetUnitLoc(udg_master)
        set udg_angel = GetRandomReal(0, 360.00)
        set udg_distance = GetRandomReal(100.00, 500.00)
        call PolarProjectionNL(target,distance,angle)
        call IssuePointOrderByIdLoc(ball,851983,target)
        call RemoveLocation(target)
    endif
    call TriggerSleepAction(.5)
endfunction

bác nào xem lỗi ở đâu dùm với:((
 
Mã:
function Trig_Guardian_Conditions takes nothing returns boolean
    z GetUnitTypeId(GetSummonedUnit()) == 'hphx' ) ) then
        return false
    endif
    return true
endfunction

function  takes nothing returns boolean
    if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_ball), GetUnitLoc(udg_master)) >= 1000.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Guardian_Actions takes nothing returns nothing
    set udg_master = GetSummoningUnit()
    set udg_ball = GetSummonedUnit()
    exitwhen IsUnitDeadBJ(ball)
    if ( Trig_Guardian_Func004C() ) then
        set udg_target = GetUnitLoc(udg_master)
        call IssuePointOrderByIdLoc(ball,851986,target)
        call RemoveLocation(target)
    else
        set udg_target = GetUnitLoc(udg_master)
        set udg_angel = GetRandomReal(0, 360.00)
        set udg_distance = GetRandomReal(100.00, 500.00)
        call PolarProjectionNL(target,distance,angle)
        call IssuePointOrderByIdLoc(ball,851983,target)
        call RemoveLocation(target)
    endif
    call TriggerSleepAction(.5)
endfunction
bác nào xem lỗi ở đâu dùm với:((


=))

Không có event thì àm sao mà cast được :-j
 
Mã:
function Trig_Guardian_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetSummonedUnit()) == 'hphx' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Guardian_Func004C takes nothing returns boolean
    if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_ball), GetUnitLoc(udg_master)) >= 1000.00 ) ) then
        return false
    endif
    return true
endfunction

function Trig_Guardian_Actions takes nothing returns nothing
    set udg_master = GetSummoningUnit()
    set udg_ball = GetSummonedUnit()
    exitwhen IsUnitDeadBJ(ball)
    if ( Trig_Guardian_Func004C() ) then
        set udg_target = GetUnitLoc(udg_master)
        call IssuePointOrderByIdLoc(ball,851986,target)
        call RemoveLocation(target)
    else
        set udg_target = GetUnitLoc(udg_master)
        set udg_angel = GetRandomReal(0, 360.00)
        set udg_distance = GetRandomReal(100.00, 500.00)
        call PolarProjectionNL(target,distance,angle)
        call IssuePointOrderByIdLoc(ball,851983,target)
        call RemoveLocation(target)
    endif
    call TriggerSleepAction(.5)
endfunction

//===========================================================================
function InitTrig_Guardian takes nothing returns nothing
    set gg_trg_Guardian = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Guardian, EVENT_PLAYER_UNIT_SUMMON )
    call TriggerAddCondition( gg_trg_Guardian, Condition( function Trig_Guardian_Conditions ) )
    call TriggerAddAction( gg_trg_Guardian, function Trig_Guardian_Actions )
endfunction

Đây fix giúp với nhé:-*
Àh Maiev - laiev - jarod là 1 người hết hả:-o
 
Status
Không mở trả lời sau này.
Back
Top