+ Reply to Thread
Page 3 of 9 FirstFirst 12345 ... LastLast
Results 21 to 30 of 82
  1. #21
    pasunna_zacrifa

    Re: JASS Tutorial 1.71 (Minor Update)

    เพราะอ่านเรื่องนั้นเเล่ะครับเลยคิดว่ามันน่าจะเป็นไปได้

    เเต่ก็ยังชั่งใจอยู่เพราะพยายามศึกษาเเจสทีไรปวดขมองจนต้องถอยมานั่งทำ Gui ทุกที


    เออผมขอถามหน่อยครับ local trigger นี่มันต่างจาก Global trigger ยังไงครับเห็นบอกว่ามีวิธีเปลี่ยน


    อย่าง Local Vari คือใช้เเล้วทิ้ง เเล้ว Local Trig ใช้เเล้วทิ้งเหมือนกันหรือเปล่าครับ

  2. #22
    Fenix

    Re: JASS Tutorial 1.71 (Minor Update)

    คือ ถ้าจะใช้แล้วทิ้งมันต้องตั้งค่าให้เป็น Null น่ะ
    ยกเว้นข้อมูลตัวเลขเช่น Integer, Real หรือตัวอักษร String ไม่ต้องทำการ Null
    เพราะจะไม่ Leak และ Jass จะใช้ Real แทน Location เลยคำนวณเร็วกว่า

    (ไม่ต้องใช้ call RemoveLocation(p) อีกต่างหาก

    วิธีเปลี่ยนจาก Global เป็น Local Trigger ก็แบบนี้

    function Trig_Init_Actions takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), "GLOBAL TRIGGER" )
    endfunction
    function InitTrig_Init takes nothing returns nothing
    set gg_trg_Init = CreateTrigger( )
    call TriggerRegisterTimerEventSingle( gg_trg_Init, 5 )
    call TriggerAddAction( gg_trg_Init, function Trig_Init_Actions )
    endfunction

    function Trig_Init_Actions takes nothing returns nothing
    call DisplayTextToForce( GetPlayersAll(), "LOCAL TRIGGER" )
    endfunction
    function InitTrig_Init takes nothing returns nothing
    local trigger t=CreateTrigger()
    call TriggerRegisterTimerEventSingle(t, 5)
    call TriggerAddAction(t, function Trig_Init_Actions)
    set t=null
    endfunction

    สับเปลี่ยนอย่างง่ายดาย แต่วิธีนี้ไม่แนะนำนะ บางทีเป็น Global มันจะใช้ง่ายกว่า

    ถ้าอีกวิธีคือสร้าง Local ซ้อนขึ้นมาใน Global Trigger ถ้าใน Tutorial ของเว็บนี้ก็จะเห็นที่ Glave of Wisdom
    แต่ของผมจะเป็นอันนี้ เป็นการตรวจจับ Damage ที่ได้รับ

    http://www.thaicybergames.com/webboa...tml#msg1425117

    ถ้าเป็น Auto-Cast ก็อันนี้เลยครับ

    http://www.thaicybergames.com/webboa...c,79344.0.html

    Local Trigger ใช่ว่าจะดีนะ มีเยอะเกินมัน Leak เหมือนกัน
    ฉะนั้น ทำลายด้วย call DestroyTrigger(t) เพื่อป้องกันไว้ก่อน

  3. #23
    xxtoomxx

    Re: JASS Tutorial 1.8

    มึน ตอนนนี้พอรู้จัก

    Call TriggerSleepAction()

  4. #24
    NongNoobJung

    Re: JASS Tutorial 1.8

    Quote Originally Posted by xxtoomxx
    มึน ตอนนนี้พอรู้จัก

    Call TriggerSleepAction()
    wait ไง -*-

    jass พอเริ่มเข้าใจแล้วก็ไม่อยากละ


    ลองไปหา mapที่เป็นjass แบบ ที่ไม่protect มาอ่านสิ btank ตัว open souce ก็ได้
    อ่านไปอ่านมาก็รุ้เรื่องเอง

  5. #25
    [SIN]_BlooD

    Re: JASS Tutorial 1.8

    Quote Originally Posted by NongNoobJung
    wait ไง -*-

    jass พอเริ่มเข้าใจแล้วก็ไม่อยากละ


    ลองไปหา mapที่เป็นjass แบบ ที่ไม่protect มาอ่านสิ btank ตัว open souce ก็ได้
    อ่านไปอ่านมาก็รุ้เรื่องเอง
    Call Sleep Action (Wait)

    กับ

    Call Polled Wair (Wait - Game Time)

    ต่างกันไงนิหยุดเหมือกันนิ

  6. #26
    Fenix

    Re: JASS Tutorial 1.8

    ต่างกันข้อเดียวครับ คือ

    native TriggerSleepAction takes real timeout returns nothing

    จะเป็นชื่อ Function ที่ค่อนข้างยาวทำให้เขียนได้ช้ากว่า

    (ล้อเล่น)

    ลองดู PolledWait นะ

    function PolledWait takes real duration returns nothing
    local timer t
    local real timeRemaining
    if (duration > 0) then
    set t = CreateTimer()
    call TimerStart(t, duration, false, null)
    loop
    set timeRemaining = TimerGetRemaining(t)
    exitwhen timeRemaining <= 0
    if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
    call TriggerSleepAction(0.1 * timeRemaining)
    else
    call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
    endif
    endloop
    call DestroyTimer(t)
    endif
    endfunction

    TriggerSleepAction จะสั่งหยุดทันที แต่ PolledWait จะใช้ Timer จับเวลา
    ดังนั้น TriggerSleepAction จะมีการดีเลย์เยอะกว่า PolledWait

  7. #27
    [SIN]_BlooD

    Re: JASS Tutorial 1.8

    Quote Originally Posted by Fenix
    ต่างกันข้อเดียวครับ คือ

    native TriggerSleepAction takes real timeout returns nothing

    จะเป็นชื่อ Function ที่ค่อนข้างยาวทำให้เขียนได้ช้ากว่า

    (ล้อเล่น)

    ลองดู PolledWait นะ

    function PolledWait takes real duration returns nothing
    local timer t
    local real timeRemaining
    if (duration > 0) then
    set t = CreateTimer()
    call TimerStart(t, duration, false, null)
    loop
    set timeRemaining = TimerGetRemaining(t)
    exitwhen timeRemaining <= 0
    if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then
    call TriggerSleepAction(0.1 * timeRemaining)
    else
    call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL)
    endif
    endloop
    call DestroyTimer(t)
    endif
    endfunction

    TriggerSleepAction จะสั่งหยุดทันที แต่ PolledWait จะใช้ Timer จับเวลา
    ดังนั้น TriggerSleepAction จะมีการดีเลย์เยอะกว่า PolledWait
    อ๋อ ก็ว่า Forloop + Wait

    มันถึงช้ากว่า Timer - -

  8. #28
    NongNoobJung

    Re: JASS Tutorial 1.8

    Quote Originally Posted by [SIN
    _BlooD ]
    อ๋อ ก็ว่า Forloop + Wait

    มันถึงช้ากว่า Timer - -
    ต่อไปใช้ lood+ PolledWait กัน= =

  9. #29
    ALTELMA

    Re: JASS Tutorial 1.8

    มีเว้บไหนสอน jass เบื้องต้นไหมครับ

    55+

  10. #30
    NongNoobJung

    Re: JASS Tutorial 1.8

    topic นี้ ไง

Facebook Comments


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •