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

vậy thì liên quan gì upgrade, và cả cái cách spell book của bạn cũng k làm thay đổi abi đc :@)
 
Chỉ giỏi đá xoáy chọc ngoáy nhau,sao ko trả lời giúp người ta đi ?

Trường hợp spell custom thì check điều kiện Skill 2 level>0 thì add thêm đơn vị vào dmg của Skill 1,phần còn lại thì mọi người nói rồi
 
Mã:
globals
    integer times
endglobals

function Bonus takes nothing returns nothing
    local integer i
    local integer e
    set times = times + 1
    set i = 0
    set e = 11
    loop
        exitwhen i > e
        call AdjustPlayerStateBJ(2,Player(i),PLAYER_STATE_RESOURCE_GOLD)
        if times == 180 then
            call AdjustPlayerStateBJ(1,Player(i),PLAYER_STATE_RESOURCE_LUMBER)
            set times = 0
        endif
        set i = i + 1
    endloop
endfunction

//===========================================================================
function InitTrig_Bonus_Gold takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( t, 1.00 )
    call TriggerAddAction( t, function Bonus )
    set t = null
endfunction
code sai chỗ nào v. ạ ??? s lại k chạy :((
ý nghĩa code: mỗi giây tăng 2 gold, nếu 180 giây tăng 1 gỗ
 
^ text là text trên màn hình, đâu phải floating text đâu mà x,y của bản đồ với location ._.
cụ thể: native DisplayTextToPlayer takes player toPlayer, real x, real y, string message returns nothing

cụ thể là X Y của DisplayText hình như không hoạt động :-??

Update cái, ai bik chỉ mình cái :). Mình có tạo thử cái float text thử r, nhưng trông nó điêu điêu kiểu gì ấy, k đc tự nhiên như spell gốc :)
phần này nằm trong misc củ war nó là textag hiện critical strike

P/S: góp ý thông số!

// CriticalStrike text tag data
CriticalStrikeTextColor=255,255,0,0
CriticalStrikeTextVelocity=0,0.04,100
CriticalStrikeTextLifetime=5
CriticalStrikeTextFadeStart=2
 
Mã:
globals
    integer times
endglobals

function Bonus takes nothing returns nothing
    local integer i
    local integer e
    set times = times + 1
    set i = 0
    set e = 11
    loop
        exitwhen i > e
        call AdjustPlayerStateBJ(2,Player(i),PLAYER_STATE_RESOURCE_GOLD)
        if times == 180 then
            call AdjustPlayerStateBJ(1,Player(i),PLAYER_STATE_RESOURCE_LUMBER)
            set times = 0
        endif
        set i = i + 1
    endloop
endfunction

//===========================================================================
function InitTrig_Bonus_Gold takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( t, 1.00 )
    call TriggerAddAction( t, function Bonus )
    set t = null
endfunction
code sai chỗ nào v. ạ ??? s lại k chạy :((
ý nghĩa code: mỗi giây tăng 2 gold, nếu 180 giây tăng 1 gỗ

Theo như kinh nghiệm của mình thì cậu nên xài cái trigger khi convert ra nó có sẵn mới hoạt động chứ đừng tạo mới local trigger làm gì,ví dụ ở dưới là gg_trg_Untitled_Trigger_001

và cậu nên thay event bj TriggerRegisterTimerEventPeriodic thành TriggerRegisterTimerEvent(gg_trg_Untitled_Trigger_001,1,true)

Thử xem.


Mã:
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_001 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_001 = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Untitled_Trigger_001, function Trig_Untitled_Trigger_001_Actions )
endfunction
 
Làm WE trước giờ mà vẫn chưa biết skill silent target được base từ ability nào. Ai biết chỉ giúp mình :D
 
Theo như kinh nghiệm của mình thì cậu nên xài cái trigger khi convert ra nó có sẵn mới hoạt động chứ đừng tạo mới local trigger làm gì,ví dụ ở dưới là gg_trg_Untitled_Trigger_001

và cậu nên thay event bj TriggerRegisterTimerEventPeriodic thành TriggerRegisterTimerEvent(gg_trg_Untitled_Trigger_001,1,true)

Thử xem.


Mã:
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Untitled_Trigger_001 takes nothing returns nothing
    set gg_trg_Untitled_Trigger_001 = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Untitled_Trigger_001, function Trig_Untitled_Trigger_001_Actions )
endfunction
Chưa được a ơi :D...... mà bt e vẫn xài local trigger có s đâu :-/

Làm WE trước giờ mà vẫn chưa biết skill silent target được base từ ability nào. Ai biết chỉ giúp mình :D
xài Drunken Haze thử xem bạn, attack prevent chọn tùy cái mún silence
 
Mã:
globals
    integer times
endglobals

function Bonus takes nothing returns nothing
    local integer i
    local integer e
    set times = times + 1
    set i = 0
    set e = 11
    loop
        exitwhen i > e
        call AdjustPlayerStateBJ(2,Player(i),PLAYER_STATE_RESOURCE_GOLD)
        if times == 180 then
            call AdjustPlayerStateBJ(1,Player(i),PLAYER_STATE_RESOURCE_LUMBER)
            set times = 0
        endif
        set i = i + 1
    endloop
endfunction

//===========================================================================
function InitTrig_Bonus_Gold takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( t, 1.00 )
    call TriggerAddAction( t, function Bonus )
    set t = null
endfunction
code sai chỗ nào v. ạ ??? s lại k chạy :((
ý nghĩa code: mỗi giây tăng 2 gold, nếu 180 giây tăng 1 gỗ
quote lại :D

...... và cho em hỏi cách làm skill Incinerate = trigger MUI + K Lỗi, JASS hay GUI đều ok hết anw, k làm fần chết sẽ nổ damg nhé, chỉ dồn damg thôi..... có 1 cái trên Hive nhưng rối rắm wá :D.....
 
quote lại :D

...... và cho em hỏi cách làm skill Incinerate = trigger MUI + K Lỗi, JASS hay GUI đều ok hết anw, k làm fần chết sẽ nổ damg nhé, chỉ dồn damg thôi..... có 1 cái trên Hive nhưng rối rắm wá :D.....

Bạn phải đặt giá trị đầu vào cho biến integer times=0 trước khi sử dụng,vả lại bạn đặt biến times trong loop thế kia,thì ở vòng lặp đầu nó đã được set=0 rồi thì những vòng lặp sau sao nó =180 được nữa,phải sửa thành

Mã:
globals
    integer times=0
endglobals

function Bonus takes nothing returns nothing
    local integer i
    local integer e
    set times = times + 1
    set i = 0
    set e = 11
    if times == 180 then
       loop
        exitwhen i > e
           call AdjustPlayerStateBJ(2,Player(i),PLAYER_STATE_RESOURCE_GOLD)        
               call AdjustPlayerStateBJ(1,Player(i),PLAYER_STATE_RESOURCE_LUMBER)
           set i = i + 1
        endloop
        set times = 0
    endif
endfunction

//===========================================================================
function InitTrig_Bonus_Gold takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( t, 1.00 )
    call TriggerAddAction( t, function Bonus )
    set t = null
endfunction
 
Chỉnh sửa cuối:
Bạn phải đặt giá trị đầu vào cho biến integer times=0 trước khi sử dụng,vả lại bạn đặt biến times trong loop thế kia,thì ở vòng lặp đầu nó đã được set=0 rồi thì những vòng lặp sau sao nó =180 được nữa,phải sửa thành

Mã:
globals
    integer times=0
endglobals

function Bonus takes nothing returns nothing
    local integer i
    local integer e
    set times = times + 1
    set i = 0
    set e = 11
    if times == 180 then
       loop
        exitwhen i > e
           call AdjustPlayerStateBJ(2,Player(i),PLAYER_STATE_RESOURCE_GOLD)        
               call AdjustPlayerStateBJ(1,Player(i),PLAYER_STATE_RESOURCE_LUMBER)
           set i = i + 1
        endloop
        set times = 0
    endif
endfunction

//===========================================================================
function InitTrig_Bonus_Gold takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( t, 1.00 )
    call TriggerAddAction( t, function Bonus )
    set t = null
endfunction

nếu làm như bác thì đến times = 180 thì nó mới + 2 vàng và +1 gỗ s :-?? ( theo cách e hiểu trigger là v. )
e mún nó +2 vàng mỗi giây và +1 gỗ khi times = 180 :D

skill đó có trong war3, tại sao phải làm trigger?
vì trong War3 là nó chỉ dồn theo 1 base damg, h e muốn thay đổi cho nó dồn theo % current Hp
 
nếu làm như bác thì đến times = 180 thì nó mới + 2 vàng và +1 gỗ s :-?? ( theo cách e hiểu trigger là v. )
e mún nó +2 vàng mỗi giây và +1 gỗ khi times = 180 :D


vì trong War3 là nó chỉ dồn theo 1 base damg, h e muốn thay đổi cho nó dồn theo % current Hp

Vậy thì đặt cái +vàng ra ngoài điều kiện times==180
 
Back
Top