Page 4 of 16 FirstFirst 1234567814 ... LastLast
Results 46 to 60 of 233
http://idgs.in/13940
  1. #46
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    ngga ... maksudnya

    kalau kamu bikin global variable, contoh kamu bikin global variable namanya var

    kalau kamu pake global variable di-jass harus pake prefix udg_<nama variable>, dalam hal ini udg_var

    udg artinya user defined global

    local variable ga selalu perlu dipake kl global dipake

    yang bikin error itu, kamu lupa nambah prefix udg_

    harusnya ....

    Code:
    function Trig_Test_JASS_Global_Variable_2_Actions takes nothing returns nothing   
        set udg_nilai_a = 5
        set udg_nilai_b = 2+2
        set udg_nilai_c = 4-1
        set udg_nilai_d = 2*1
    
        set udg_nilai_r = udg_nilai_a+udg_nilai_b+udg_nilai_c*udg_nilai_d
            
        call DisplayTextToForce( GetPlayersAll(), "1. nilai r adalah " + I2S(udg_nilai_r) )
        set udg_nilai_r = (udg_nilai_a+udg_nilai_b)*udg_nilai_c-udg_nilai_d
        call DisplayTextToForce( GetPlayersAll(), "2. nilai r adalah " + I2S(udg_nilai_r) )
        set udg_nilai_r = udg_nilai_b/udg_nilai_d*(udg_nilai_c+udg_nilai_c+udg_nilai_a)
        call DisplayTextToForce( GetPlayersAll(), "3. nilai r adalah " + I2S(udg_nilai_r) )
    endfunction
    
    //===========================================================================
    function InitTrig_Test_JASS_Global_Variable_2 takes nothing returns nothing
        set gg_trg_Test_JASS_Global_Variable_2 = CreateTrigger(  )
        call TriggerRegisterPlayerEventEndCinematic( gg_trg_Test_JASS_Global_Variable_2, Player(0) )
        call TriggerAddAction( gg_trg_Test_JASS_Global_Variable_2, function Trig_Test_JASS_Global_Variable_2_Actions )
    endfunction
    nah daripada cape make udg_ terus terusan lebih baik dipake local ky yang sebelumnya, cuma kl pake local, fungsi lain ga bisa make.

    contoh :
    Code:
    function haha takes nothing return nothing
        local integer x = 1
    endfunction
    
    function hihi takes nothing returns nothing
        call DisplayTextToPlayer( Player(0), 0, 0, I2S(x) )
    endfunction
    yang diatas ngga bisa, karena itu merupakan local variable

    kalau pake global

    Code:
    function haha takes nothing return nothing
        set udg_x = 1
    endfunction
    
    function hihi takes nothing returns nothing
        call DisplayTextToPlayer( Player(0), 0, 0, I2S(udg_x) )
    endfunction
    semua fungsi bisa pake

    dan global ngga bisa dibikin langsung di function .... salah satu cara lewat variable editor

    local harus dibikin diawal fungsi ....

  2. Hot Ad
  3. #47

    Join Date
    Feb 2007
    Posts
    212
    Points
    245.70
    Thanks: 0 / 0 / 0

    Default

    Quote Originally Posted by rizzuh View Post
    ngga ... maksudnya

    kalau kamu bikin global variable, contoh kamu bikin global variable namanya var

    kalau kamu pake global variable di-jass harus pake prefix udg_<nama variable>, dalam hal ini udg_var

    udg artinya user defined global

    local variable ga selalu perlu dipake kl global dipake

    yang bikin error itu, kamu lupa nambah prefix udg_

    harusnya ....

    Code:
    function Trig_Test_JASS_Global_Variable_2_Actions takes nothing returns nothing   
        set udg_nilai_a = 5
        set udg_nilai_b = 2+2
        set udg_nilai_c = 4-1
        set udg_nilai_d = 2*1
    
        set udg_nilai_r = udg_nilai_a+udg_nilai_b+udg_nilai_c*udg_nilai_d
            
        call DisplayTextToForce( GetPlayersAll(), "1. nilai r adalah " + I2S(udg_nilai_r) )
        set udg_nilai_r = (udg_nilai_a+udg_nilai_b)*udg_nilai_c-udg_nilai_d
        call DisplayTextToForce( GetPlayersAll(), "2. nilai r adalah " + I2S(udg_nilai_r) )
        set udg_nilai_r = udg_nilai_b/udg_nilai_d*(udg_nilai_c+udg_nilai_c+udg_nilai_a)
        call DisplayTextToForce( GetPlayersAll(), "3. nilai r adalah " + I2S(udg_nilai_r) )
    endfunction
    
    //===========================================================================
    function InitTrig_Test_JASS_Global_Variable_2 takes nothing returns nothing
        set gg_trg_Test_JASS_Global_Variable_2 = CreateTrigger(  )
        call TriggerRegisterPlayerEventEndCinematic( gg_trg_Test_JASS_Global_Variable_2, Player(0) )
        call TriggerAddAction( gg_trg_Test_JASS_Global_Variable_2, function Trig_Test_JASS_Global_Variable_2_Actions )
    endfunction
    nah daripada cape make udg_ terus terusan lebih baik dipake local ky yang sebelumnya, cuma kl pake local, fungsi lain ga bisa make.

    contoh :
    Code:
    function haha takes nothing return nothing
        local integer x = 1
    endfunction
    
    function hihi takes nothing returns nothing
        call DisplayTextToPlayer( Player(0), 0, 0, I2S(x) )
    endfunction
    yang diatas ngga bisa, karena itu merupakan local variable

    kalau pake global

    Code:
    function haha takes nothing return nothing
        set udg_x = 1
    endfunction
    
    function hihi takes nothing returns nothing
        call DisplayTextToPlayer( Player(0), 0, 0, I2S(udg_x) )
    endfunction
    semua fungsi bisa pake

    dan global ngga bisa dibikin langsung di function .... salah satu cara lewat variable editor

    local harus dibikin diawal fungsi ....
    Yup I got it! THX... a lot ::Jumpy:: how stupid I am :08: zzzzzz........

  4. #48
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    btw lu pake jasscraft kan ... ?

    kl di syntax check ... tar kan ada tuh

    di syntax checknya pemberitahuan ....
    undeclared variable a
    undeclared variable b
    .
    .
    dst

  5. #49

    Join Date
    Feb 2007
    Posts
    212
    Points
    245.70
    Thanks: 0 / 0 / 0

    Default

    Quote Originally Posted by rizzuh View Post
    btw lu pake jasscraft kan ... ?

    kl di syntax check ... tar kan ada tuh

    di syntax checknya pemberitahuan ....
    undeclared variable a
    undeclared variable b
    .
    .
    dst
    oww.... tidak, g gak pake Jasscraft...
    g bener2 bingung cara makenya! jd dr maren2 itu lsg pake world editornya hehehe.....

  6. #50
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    gunanya kaya notepad

    jadi lu tulis script disana

    semua syntax bakal dihighlight, jadi keliatan kl ada salah ketik, atau sejenisnya

    syntax check jg ada buat ngetes ... daripada pas lu run map di world editor jadi crash dan langsung abort ( brp kali gw kejadian dan belum disave .... X D ) ....

    cara pakenya gampang

    lu tinggal copy paste pas udah diubah jadi custom text

    kamu tulis scriptnya di jasscraft

    udah gitu dari jasscraft di copy paste ke trigger di trigger editor ....

  7. #51
    vibidotnet's Avatar
    Join Date
    Oct 2006
    Location
    Banda Aceh
    Posts
    386
    Points
    456.60
    Thanks: 0 / 0 / 0

    Default

    DL link nya doong..... ^^
    Salam Tempel Pleazzze

  8. #52
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    Jass Craft ?...

    di halaman pertama kan ada ...

  9. #53

    Join Date
    Feb 2007
    Posts
    212
    Points
    245.70
    Thanks: 0 / 0 / 0

    Default

    Quote Originally Posted by rizzuh View Post
    gunanya kaya notepad

    jadi lu tulis script disana

    semua syntax bakal dihighlight, jadi keliatan kl ada salah ketik, atau sejenisnya

    syntax check jg ada buat ngetes ... daripada pas lu run map di world editor jadi crash dan langsung abort ( brp kali gw kejadian dan belum disave .... X D ) ....

    cara pakenya gampang

    lu tinggal copy paste pas udah diubah jadi custom text

    kamu tulis scriptnya di jasscraft

    udah gitu dari jasscraft di copy paste ke trigger di trigger editor ....
    Owww... oc deh g coba thx...
    untungnya g semalam ini blon pernah abort heheheh.....
    tp klo dy abort kan tetep ada savean test.w3x mapnya kan?
    kalo gak salah begitu ya? heheh....

  10. #54
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    mm... seinget gw si ngga ...

  11. #55
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    to make jass a bit popular

    unit takes damage .... simple step

    Code:
    function customcondition takes nothing returns boolean
        return GetLearnedSkill()=='A000' and IsUnitIllusion(GetTriggerUnit())==false
    endfunction
    
    function secondcond takes nothing returns boolean
        return IsUnitType(GetEventDamageSource(),UNIT_TYPE_STRUCTURE) == false
    endfunction
    
    function secondact takes nothing returns nothing
    	if(GetEventDamage()>10)then
            call DisplayTextToPlayer(Player(0), 0, 0, "wattaaa")
        endif
    endfunction
    
    function Trig_custom_Actions takes nothing returns nothing
        local trigger t
    	if GetUnitAbilityLevel(GetTriggerUnit(),'A000')==1 then
    		set t=CreateTrigger()
    		call TriggerRegisterUnitEvent(t,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
    		call TriggerAddCondition(t,Condition(function secondcond))
    		call TriggerAddAction(t,function secondact)
    	endif
        call DestroyTrigger(GetTriggeringTrigger())
    endfunction
    
    //==========================================================================
    
    function InitTrig_custom takes nothing returns nothing
        set gg_trg_custom = CreateTrigger(  )
        call TriggerRegisterAnyUnitEventBJ(gg_trg_custom,EVENT_PLAYER_HERO_SKILL)
        call TriggerAddCondition(gg_trg_custom,Condition(function customcondition))
        call TriggerAddAction(gg_trg_custom,function Trig_custom_Actions )
    endfunction
    guna dari trigger ini adalah ... untuk unit yang belajar suatu skill .... terserah mungkin skillnya seperti dispersionnya mercurial atau bristlebacknya rigwarl

    seperti yg dilihat dalam trigger ini ada 2 trigger ....

    trigger pertama berfungsi sebagai penunjuk unit yang mempelajari skill

    trigger kedua berfungsi sebagai trigger "baru" untuk even unit takes damage ...

    kenapa dengan cara ini kita tidak perlu mengklik unit seperti di GUI ??... karena pada

    Code:
    function Trig_custom_Actions takes nothing returns nothing
        local trigger t
    	if GetUnitAbilityLevel(GetTriggerUnit(),'A000')==1 then
    		set t=CreateTrigger()
    		call TriggerRegisterUnitEvent(t,GetTriggerUnit(),EVENT_UNIT_DAMAGED)
    		call TriggerAddCondition(t,Condition(function secondcond))
    		call TriggerAddAction(t,function secondact)
    	endif
        call DestroyTrigger(GetTriggeringTrigger())
    endfunction
    kita memakai GetTriggerUnit() .... alias unit yang mempelajari skill .... cara ini juga bisa dimodif dengan attacked atau attacking unit ... umm figure it out how ... gw cuma memberi jalan ....

    Code:
    function secondcond takes nothing returns boolean
        return IsUnitType(GetEventDamageSource(),UNIT_TYPE_STRUCTURE) == false
    endfunction
    merupakan condition untuk trigger kedua

    Code:
    function secondact takes nothing returns nothing
    	if(GetEventDamage()>10)then
            call DisplayTextToPlayer(Player(0), 0, 0, "wattaaa")
        endif
    endfunction
    merupakan action dari trigger ke 2

    catatan: 'A000' merupakan nama skill yang dipelajari ..... ( baca bagian rawcode, kl ga salah halaman sebelumnya )

  12. #56
    valkemiere's Avatar
    Join Date
    Oct 2006
    Location
    In my Rainbow Castle
    Posts
    1,874
    Points
    5,111.21
    Thanks: 65 / 32 / 31

    Default

    hum... kalo boleh minta tolong. bisa kasih tutorial mengenai importing jass dari map orang laen ke map kita sendiri.

  13. #57
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    Tutorial buat import JASS ... ??...

    kl ambil dari free trigger biasanya ada instruksinya, tapi kl ambil mentah ( langsung dari map ) minimal harus tau dikit tentang JASS ....

    yah gw pake contoh aja JASS dari free trigger .....

    1. JESP

    Merupakan Standar JASS agar spell mudah untuk disharing serta mempermudah manipulasi apabila ingin melakukan BUFF, TWEAK, atau perubahan pada trigger JASS.

    karena itu saya pake contoh yg mengikuti JESP ...

    btw buat tukang-tukang JASS indo ... kl bisa ikutin standar ini jg yo ....

    *Translasi
    Quote Originally Posted by Vexorian
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    - "JESP spell 1"
    - "JESP spell 2"
    ...
    - "JESP spell N"

    Keuntungan Menggunakan Standar
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    - Mempermudah implementasi dengan mengikuti standar

    - Mempermudah konfigurasi pada trigger JASS terutama spell

    What is the JESP Standard?
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯
    Standardisasi JESP didesain untuk mempermudah spell sharing, dan memastikan spell yang dibuat
    dengan JASS untuk mengikuti standar, demi menghindari "chaos?"

    What does JESP Standard stands for?
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯
    JASS
    Enhanced
    Spell
    Pseudotemplate

    Requirements for a spell to follow the JESP Standard
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯
    - Spell ditulis dalam JASS
    - spell 100% multi instanceable ( MUI dan MPI ).
    - Dapat digunakan untuk spell dalam level berapapun.
    - Memiliki kode spell yang spesifik.
    - Kode spesifik untuk spell harus disertakan dalam map ( melalui trigger comment ataupun trigger
    baru yang dimatikan ) .
    - Tidak memakai Global Variable Spesifik untuk spell tersebut (boleh mengunakan yang tidak
    spesifik )
    - Spell trigger hsrus memiliki kode nama spell sebagai nama
    - Spell InitTrig function harus dinamai: InitTrig_<CodeName>
    - Memiliki Header untuk konfigurasi.
    - Eyecandy dan spell balance harus bisa dikonfigurasikan dengan mudah
    - rawcode daru spell harus dimasukan.
    - nama pembuat sebaiknya dimasukan.
    contoh elemen yang ada dalam JESP seperti penggunaan

    Code:
    constant function DTAX takes nothing returns integer
          return 5
    endfunction
    kegunaan dari constant tersebut adalah untuk mempermudah, misal DTAX digunakan untuk memberikan extra damage, nah kamu ga usah susah2x nyari bagian mana dalam fungsi yang memberikan extra damage tapi cukup dengan mengubah angka pada constant function diatas.

    2. How To Import

    Mengapa saya masukan JESP ??... karena pada map yang mengikuti JESP import JASS spell lebih mudah dengan mengikuti seperti contoh dibawah.

    Free Trigger spell [ SPELL_MIRROR ]

    Hal-Hal yang harus diperhatikan
    1. Baca Readmenya biar minimal kamu tau apa yang harus dilakukan
    2. Liat comment di trigger untuk mengetahui ini untuk apa
    3. Lihat Custom Script Code Section ( klik pada nama map ), karena ini biasanya perlu dicopy paste kedalam map kamu

    *mencari custom script section


    *custom script code section


    Example on How To Import

    Berikut merupakan isi dari trigger yang perlu Di COPY ke dalam Map kamu

    * Cusctom Script Code Section
    Code:
    //Currently only used in "SpellMirror"
    // Displays texttag above unit (not following)
    //
    function CreateTextTagUnitEx takes unit u, string s, real size, real offset, real speed, real angle, integer red, integer blu, integer gre, integer trans, real life, real fade, boolean show, boolean permanent, boolean suspend returns texttag
        local texttag tt=CreateTextTag()
        local real vel=(speed*.071)/128
        local real xvel=vel*Cos(angle*bj_DEGTORAD)
        local real yvel=vel*Sin(angle*bj_DEGTORAD)
        call SetTextTagText(tt,s,(size*0.023)/10)
        call SetTextTagPos(tt,GetUnitX(u),GetUnitY(u),offset)
        call SetTextTagColor(tt,red,blu,gre,255-trans)
        call SetTextTagVisibility(tt,show)
        call SetTextTagPermanent(tt,permanent)
        call SetTextTagSuspended(tt,suspend)
        call SetTextTagVelocity(tt,xvel,yvel)
        if permanent!=true then
            call SetTextTagLifespan(tt,life)
            call SetTextTagFadepoint(tt,fade)
        endif
        return tt
    endfunction
    
    //Currently only used in "SpellMirror"
    // Random Unit from a Group (destroys it also)
    //
    function RandomGroupUnit takes group g returns unit
        local integer i=1
        local integer r
        local unit z
        set bj_groupCountUnits=0
        call ForGroup(g,function CountUnitsInGroupEnum)
        set r=GetRandomInt(1,bj_groupCountUnits)
        loop
            set z=FirstOfGroup(g)
            exitwhen i==r
            call GroupRemoveUnit(g,z)
            set i=i+1
        endloop
        call DestroyGroup(g)
        set g=null
        return z
    endfunction
    Nah yang diatas itu perlu dicopy paste kedalam Custom Script Code Section Map kamu

    *Trigger Spell
    Code:
    //Dummy Unit to Create (e.g. 'e000')
    // It is recomened that this unit is hidden and has the locust ability
    // And has mana to cast the spell (e.g. set mana over 5k and regen to 1k)
    //
    //   #DUMMY UNIT# AKA #SPELLCASTER#
    constant function SpellMirror_Caster takes nothing returns integer
        return 'u000'
    endfunction
    
    
    //Base Chance Amount All Levels (BASE CHANCE+(MULTIPLY CHANCE*LEVEL))
    // Set to 0 (ZERO) if not needed
    // If wanted for example 17% all levels set this to 17 and Multiply Chance to 0
    //
    //   #BASE CHANCE#
    constant function SpellMirror_RandA takes nothing returns integer
        return 3
    endfunction
    
    
    //Multiply Chance Amount By Level (BASE CHANCE+(MULTIPLY CHANCE*LEVEL))
    // Set to 0 (ZERO) if chance not differing
    // If wanted for example 10% 15% 20% set Base Chance to 5 and this to 5
    //
    //   #MULTIPLY CHANCE#
    constant function SpellMirror_RandB takes nothing returns integer
        return 14
    endfunction
    
    
    //Spell Ability Base ID (Ctrl+D in ObjectEditor)
    // This *WILL* change for every map you add the spell to
    //
    //   #ABILITY ID#
    constant function SpellMirror_AbilityId takes nothing returns integer
        return 'A000'
    endfunction
    
    
    //Spell Ability Buff ID (Ctrl+D in ObjectEditor)
    // This *WILL* change for every map you add the spell to
    //
    //   #BUFF ID#
    constant function SpellMirror_BuffId takes nothing returns integer
        return 'B000'
    endfunction
    
    
    //Reflect spell Range
    // The range a random hero is chosen from to hurt...
    //
    //   #RANDOM RANGE#
    constant function SpellMirror_SpellRange takes nothing returns real
        return 512.
    endfunction
    
    
    //Special Effect string path
    // This what will be shown when spell is triggered
    // On the reflecting unit
    //
    //   #SPELL EFFECT#
    constant function SpellMirror_EffectS takes nothing returns string
        return "Abilities\\Spells\\Items\\SpellShieldAmulet\\SpellShieldCaster.mdl"
    endfunction
    
    
    //TextTag String
    // This is what is shown to let them know what just happened
    // (e.g. "Reflected!" or "Mirror!" or even "" (to not show, will still create tho) ect.)
    //
    //   #TEXT SHOWN#
    constant function SpellMirror_String takes nothing returns string
        return "Reflect!"
    endfunction
    
    
    //TextTag String Color
    // This is the red color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR RED#
    constant function SpellMirror_SRed takes nothing returns integer
        return 255
    endfunction
    
    
    //TextTag String Color
    // This is the blue color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR BLUE#
    constant function SpellMirror_SBlu takes nothing returns integer
        return 125
    endfunction
    
    
    //TextTag String Color
    // This is the green color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR GREEN#
    constant function SpellMirror_SGre takes nothing returns integer
        return 55
    endfunction
    
    
    //////// ADVANCED USERS ONLY ////////
    
    
    //Spells to ignore
    // Add all spells you dont want to be reflected here
    // e.g. a dont attack this spell (deny attacking friends)
    // 
    // To find Ability ID Press Ctrl+D in the ObjectEditor (F6)
    // it will be something like A000:AHab (Spell Mirror)
    //                          'A000' <-- This is it right here
    //
    //   #EXEPTION LIST#
    function SpellMirror_DenyList takes integer ID returns boolean
        //Just for an example
        //if ID=='DEny' then
        //    return false
        //endif
        //
        //... Copy more if needed
        //if ID=='AbilityID' then
        //    return false
        //endif
        //.. And so on.
        //
        return true //This *SHOULD* be last dont move it
    endfunction
    
    
    //////// DO NOT EDIT BELOW THIS LINE ////////
    ///////      ADVANCED USERS ONLY    /////////
    
    function SpellMirror_MainCond takes nothing returns boolean
        return SpellMirror_DenyList(GetSpellAbilityId()) and GetUnitAbilityLevel(GetSpellTargetUnit(),SpellMirror_AbilityId())>=1
    endfunction
    
    function SpellMirror_Filter takes nothing returns boolean
        return GetUnitAbilityLevel(GetFilterUnit(),SpellMirror_BuffId())>0
    endfunction
    
    function SpellMirror_Main takes nothing returns nothing
        local unit cu=GetTriggerUnit()
        local unit mu=GetSpellTargetUnit()
        local unit du
        local unit tu
        local group g=CreateGroup()
        local integer oi=GetUnitCurrentOrder(cu)
        local integer ab=GetSpellAbilityId()
        local integer al=GetUnitAbilityLevel(mu,SpellMirror_AbilityId())
        local integer rn=GetRandomInt(1,100)
        local real x=GetUnitX(mu)
        local real y=GetUnitY(mu)
        if(rn<=SpellMirror_RandA()+(SpellMirror_RandB()*al))then
            call GroupEnumUnitsInRange(g,x,y,SpellMirror_SpellRange(),Filter(function SpellMirror_Filter))
            set tu=RandomGroupUnit(g) // THIS WILL destroy the group for you (still needs a null tho)
            call IssueImmediateOrder(cu,"stop")
            set du=CreateUnit(GetOwningPlayer(mu),SpellMirror_Caster(),x,y,1.)
            call UnitApplyTimedLife(du,'BTLF',2.)
            call UnitAddAbility(du,ab)
            call SetUnitAbilityLevel(du,ab,GetUnitAbilityLevel(cu,ab))
            call IssueTargetOrderById(du,oi,tu)
            call CreateTextTagUnitEx(mu,SpellMirror_String(),10.,5.,64.,90.,SpellMirror_SRed(),SpellMirror_SBlu(),SpellMirror_SGre(),64,2.,1.5,true,false,false)
            call DestroyEffect(AddSpecialEffectTarget(SpellMirror_EffectS(),mu,"origin"))
            set du=null
            set tu=null
        endif
        set g=null
        set cu=null
        set mu=null
    endfunction
    
    //===========================================================================
    function InitTrig_Spell_Mirror takes nothing returns nothing
        local integer i=0
        set gg_trg_Spell_Mirror=CreateTrigger()
        call Preload(SpellMirror_EffectS())
        loop
            call TriggerRegisterPlayerUnitEvent(gg_trg_Spell_Mirror,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null)
            set i=i+1
            exitwhen i==bj_MAX_PLAYER_SLOTS
        endloop
        call TriggerAddCondition(gg_trg_Spell_Mirror,Condition(function SpellMirror_MainCond))
        call TriggerAddAction(gg_trg_Spell_Mirror,function SpellMirror_Main)
    endfunction
    yang diatas merupakan trigger untuk spell, cara importnya ....

    1. lihat pada yang saya warnai biru pada trigger diatas. itu merupakan inisiasi trigger, nah supaya kamu ngga repot cukup buat trigger, dan namai persis sama dengan yang warna biru itu ( ganti _ dengan spasi )



    kemudian pilih triggernya, pilih edit > convert to custom text



    2. setelah itu copy paste isi dari trigger kedalam trigger yang baru kamu buat.
    3. apabila kamu ingin nama triggernya berbeda caranya agak rumit, terkecuali yang saya beri warna merah berupa local ( bukan gg_trg_ ) alias triggernya berupa local kamu bisa ubah nama trigger sesuka kamu. Harap diingat yang berwarna biru harus sama persis dengan nama trigger yang kamu buat

    cara mengubah nama untuk contoh diatas ( untuk yang nomor 3, dengan memberi local )
    Code:
    function InitTrig_NAMABARU takes nothing returns nothing
        local integer i=0
        local trigger t
        set t = CreateTrigger()
        call Preload(SpellMirror_EffectS())
        loop
            call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_CAST,null)
            set i=i+1
            exitwhen i==bj_MAX_PLAYER_SLOTS
        endloop
        call TriggerAddCondition(t,Condition(function SpellMirror_MainCond))
        call TriggerAddAction(t,function SpellMirror_Main)
        set t = null
    endfunction
    Diatas merupakan cara import ..... nah cara untuk manipulasi datanya ...

    lihat pada bagian

    Code:
    //Dummy Unit to Create (e.g. 'e000')
    // It is recomened that this unit is hidden and has the locust ability
    // And has mana to cast the spell (e.g. set mana over 5k and regen to 1k)
    //
    //   #DUMMY UNIT# AKA #SPELLCASTER#
    constant function SpellMirror_Caster takes nothing returns integer
        return 'u000'
    endfunction
    
    
    //Base Chance Amount All Levels (BASE CHANCE+(MULTIPLY CHANCE*LEVEL))
    // Set to 0 (ZERO) if not needed
    // If wanted for example 17% all levels set this to 17 and Multiply Chance to 0
    //
    //   #BASE CHANCE#
    constant function SpellMirror_RandA takes nothing returns integer
        return 3
    endfunction
    
    
    //Multiply Chance Amount By Level (BASE CHANCE+(MULTIPLY CHANCE*LEVEL))
    // Set to 0 (ZERO) if chance not differing
    // If wanted for example 10% 15% 20% set Base Chance to 5 and this to 5
    //
    //   #MULTIPLY CHANCE#
    constant function SpellMirror_RandB takes nothing returns integer
        return 14
    endfunction
    
    
    //Spell Ability Base ID (Ctrl+D in ObjectEditor)
    // This *WILL* change for every map you add the spell to
    //
    //   #ABILITY ID#
    constant function SpellMirror_AbilityId takes nothing returns integer
        return 'A000'
    endfunction
    
    
    //Spell Ability Buff ID (Ctrl+D in ObjectEditor)
    // This *WILL* change for every map you add the spell to
    //
    //   #BUFF ID#
    constant function SpellMirror_BuffId takes nothing returns integer
        return 'B000'
    endfunction
    
    
    //Reflect spell Range
    // The range a random hero is chosen from to hurt...
    //
    //   #RANDOM RANGE#
    constant function SpellMirror_SpellRange takes nothing returns real
        return 512.
    endfunction
    
    
    //Special Effect string path
    // This what will be shown when spell is triggered
    // On the reflecting unit
    //
    //   #SPELL EFFECT#
    constant function SpellMirror_EffectS takes nothing returns string
        return "Abilities\\Spells\\Items\\SpellShieldAmulet\\SpellShieldCaster.mdl"
    endfunction
    
    
    //TextTag String
    // This is what is shown to let them know what just happened
    // (e.g. "Reflected!" or "Mirror!" or even "" (to not show, will still create tho) ect.)
    //
    //   #TEXT SHOWN#
    constant function SpellMirror_String takes nothing returns string
        return "Reflect!"
    endfunction
    
    
    //TextTag String Color
    // This is the red color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR RED#
    constant function SpellMirror_SRed takes nothing returns integer
        return 255
    endfunction
    
    
    //TextTag String Color
    // This is the blue color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR BLUE#
    constant function SpellMirror_SBlu takes nothing returns integer
        return 125
    endfunction
    
    
    //TextTag String Color
    // This is the green color of the texttag shown
    // MUST range from 0 to 255
    //
    //   #COLOR GREEN#
    constant function SpellMirror_SGre takes nothing returns integer
        return 55
    endfunction
    *Catatan yang disebelah kanan // merupakan comment yang dimaksudkan sebagai petunjuk

    kita pakai contoh yang dibawah untuk manipulasi

    Code:
    //Dummy Unit to Create (e.g. 'e000')
    // It is recomened that this unit is hidden and has the locust ability
    // And has mana to cast the spell (e.g. set mana over 5k and regen to 1k)
    //
    //   #DUMMY UNIT# AKA #SPELLCASTER#
    constant function SpellMirror_Caster takes nothing returns integer
        return 'u000'
    endfunction
    merupakan penunjuk constant untuk dummy unit, dummy unit merupakan pengganti unit untuk mengcast spell. Contoh kamu bikin spell storm bolt, tapi selain efek stun kamu pengen memberikan efek slow, caranya dengan membuat UNIT untuk mengcast slow, UNIT itu merupakan dummy unit ...

    nah balik ke trigger liat yang saya warnai merah, itu merupakan RAWCODE untuk dummy unit

    * cara melihat rawcode, masuk ke object editor kemudian pencet ctrl + d dan lihat perubahannya

    sesudah ctrl + d



    jadi untuk membuat dummy unit cukup buat unit baru dan ganti rawcode pada contoh diatas dengan rawcode unit yang kamu buat ( ingat untuk memakai tanda ' ' )

    contoh
    Code:
    //Dummy Unit to Create (e.g. 'e000')
    // It is recomened that this unit is hidden and has the locust ability
    // And has mana to cast the spell (e.g. set mana over 5k and regen to 1k)
    //
    //   #DUMMY UNIT# AKA #SPELLCASTER#
    constant function SpellMirror_Caster takes nothing returns integer
        return 'H000'
    endfunction
    yang berikutnya juga bisa dimanipulasi sama seperti yang diatas, cukup dengan membaca petunjuk yang diberikan, sebenarnya free trigger ini mudah untuk diutak atik ...


    Kl ada kesulitan lg ... kasi tau gw ... dan kasih mapnya / triggernya kl diperlukan

    euh sebenernya gw jg rada bingung nyusun tutorialnya ..... mapnya gw simpen sini aja kl ya ?

  14. #58
    Section's Avatar
    Join Date
    Nov 2006
    Location
    about.me/SECTION
    Posts
    2,095
    Points
    11,041.04
    Thanks: 45 / 112 / 98

    Default

    KK, ini kan soal JASS, terima kasih atas infonya. Map kreasiku jadi lebih gak lag lagi. Tapi sekarang aku juga butuh satu hal yang berhubungan dengan JASSSSSSSSSSS............. nih! Aku kepingin ada panduan untuk membuat AI (artifical Intelligence) untuk map dengan JASS. Kakak Rizzuh bisa bantu? Plizz yah!

  15. #59
    rizzuh's Avatar
    Join Date
    Oct 2006
    Location
    Bandung, Indonesia, Indonesia
    Posts
    671
    Points
    1,308.90
    Thanks: 2 / 14 / 10

    Default

    Emmm .... gw ga pernah nyentuh AI sih

    gw pernah beljarin dikit .... bedanya paling di syntax-nya .... ada yang beda dan ada beberapa yang ngga jalan ( Syntax yg biasa kamu pake buat triggering )

    tapi garis besarnya sih sama .... alasan gw ga nyetuh ... bikinnya bisa ribet n panjang ::thefinger_red

    masalah gw sekarang ... gw ga bisa buka library .ai di warcraft ga tau kenapa ......

    gw jadi ga tau syntaxnya .....

    ntar gw liat dl de ya ::

  16. #60
    Section's Avatar
    Join Date
    Nov 2006
    Location
    about.me/SECTION
    Posts
    2,095
    Points
    11,041.04
    Thanks: 45 / 112 / 98

    Default

    Kalo nemu kasi kabar ya...... Aku mo coba bikin AI sih! Masalahnya aku bikin BOT (Player yang jalan pake GUI) lagnya berat abizzzz..... Apalagi kalo udah level tinggi... bisa hang komputer.. itu dia yang bikin memacuku ingin membuat AI. Ngomong-ngomong sebagai basic. Apa susunan dalam mebuat AI? apa setupnya dolo,atau apanya dulu... Ada yang bisa ngasi tahu?

    TAHU....TAHU......

Page 4 of 16 FirstFirst 1234567814 ... LastLast

Posting Permissions

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