[Tutorial] Jass Trigger Part 4



Part 4 Membuat Jass Trigger (Advanced)

1.Introduction

x:"Kk Master ItsMeFurZy cara membuat Jass Trigger susah gak?"
y:"ea ealah! susah banget gw aja baru bisa 20% total dari Jass Trigger"
x:"Cara buatnya gimana?"
y:"Dengan menekan CTRL + E trus X (Convert to custom text pada menu Edit)"
x:"Commandnya gimana?"
y:"Command" Jass di buatnya di ketik"
x:"Kalo misal saya dah buat GUI trigger dan saya convert to custom text itu Jass?"
y:"Ya enggak lah! Karena command" GUI di convert sama saja! Itu GUI termasuk Jass juga
kalo kamu save dan itu di masukan dalam war3.j (.j adalah Jass Trigger).

Kesimpulan = Jass trigger di buatnya dari Convert to custom text dan di ikuti command"
Jass lainnya, Jika GUI di convert ke Jass itu sama sekali bukan Jass. karena
sebenarnya GUI itu bila di baca oleh warcraft sama saja dengan Jass.

2.Hal" yang di butuhkan

-Air Putih, Kopi, Susu, Teh atau minuman lainnya.
-Cemilan
-Korek (buat bakar kompi kalo gagal atau error)
Serius ahhh
-World Editor (WE) NewGen Pack (JNGP).
-Memori otak 20% dari fullnya.
-Keyboard.
(Copas)

3.Triggering

-Buat trigger dengan nama (bebas)
-Buat condition dan Eventnya (kalo kaga mau ribet pas di Jassnya)
-convert ke custom text.(alt + E trus X)
(Contoh kek gi atas Reply ini)

-Tambahkan paling atas tulisan Scope (bebas) dan juga paling bawah endscope

[code]scope He1
function Trig_Heaven_Strike_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction

function Trig_Heaven_Strike_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Heaven_Strike takes nothing returns nothing
set gg_trg_Heaven_Strike = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Heaven_Strike, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Heaven_Strike, Condition( function Trig_Heaven_Strike_Conditions ) )
call TriggerAddAction( gg_trg_Heaven_Strike, function Trig_Heaven_Strike_Actions )
endfunction
endscope
[/code]
-Tulis globals variable di bawah scope (globals dan di bawahnya endglobals)

[code]scope He1
globals
endglobals

function Trig_Heaven_Strike_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction

function Trig_Heaven_Strike_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Heaven_Strike takes nothing returns nothing
set gg_trg_Heaven_Strike = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Heaven_Strike, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Heaven_Strike, Condition( function Trig_Heaven_Strike_Conditions ) )
call TriggerAddAction( gg_trg_Heaven_Strike, function Trig_Heaven_Strike_Actions )
endfunction
endscope
[/code]
-Tulis di antara globals dan endglobals private constant integer SPELLID = 'A000'
+Fungsinya untuk memprivat Trigger Spell
+'A000' Raw pada Ability (CTRL + D pada object editor)

[code]scope He1
globals
private constant integer SPELLID = 'A000'
endglobals

function Trig_Heaven_Strike_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction

function Trig_Heaven_Strike_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Heaven_Strike takes nothing returns nothing
set gg_trg_Heaven_Strike = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Heaven_Strike, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Heaven_Strike, Condition( function Trig_Heaven_Strike_Conditions ) )
call TriggerAddAction( gg_trg_Heaven_Strike, function Trig_Heaven_Strike_Actions )
endfunction
endscope
[/code]
-Ganti if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
menjadi return GetSpellAbilityId() == SPELLID (Biar cepet)

[code]scope He1
globals
private constant integer SPELLID = 'A000'
endglobals

function Trig_Heaven_Strike_Conditions takes nothing returns boolean
return GetSpellAbilityId() == SPELLID
endfunction

function Trig_Heaven_Strike_Actions takes nothing returns nothing
endfunction

//===========================================================================
function InitTrig_Heaven_Strike takes nothing returns nothing
set gg_trg_Heaven_Strike = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Heaven_Strike, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Heaven_Strike, Condition( function Trig_Heaven_Strike_Conditions ) )
call TriggerAddAction( gg_trg_Heaven_Strike, function Trig_Heaven_Strike_Actions )
endfunction
endscope
[/code]
-Tulis action2 yang di butuhkan (copas aja dari GUI spell yang dah jadi)
-Ganti variable" udg_ menjadi Local variable
-Tambahkan di belakang function private dan akan menjadi seperti : private function
-kalo InitTrig_Heaven_Strike pada code atas mau di ganti jadi SpellInit tambah di depan
scope initializer SpellInit akan menjadi = scope He1 initializer SpellInit

hasilnya :
[code]
scope He1 initializer SpellInit
globals
private constant integer SPELLID = 'A000'
endglobals

private function Conditions takes nothing returns boolean
return GetSpellAbilityId() == SPELLID
endfunction

private function Group_Func006002003001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction

private function Group_Func006002003002 takes nothing returns boolean
return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit())) == true )
endfunction

private function Group_Func006002003 takes nothing returns boolean
return GetBooleanAnd( Group_Func006002003001(), Group_Func006002003002() )
endfunction

private function Group_Actions takes nothing returns nothing
local unit u
local unit p
local effect e
local real d

set u = GetTriggerUnit()
set p = GetEnumUnit()
set d = I2R(GetUnitAbilityLevelSwapped('A000', u)) * ( 50.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, u, true)) )
call UnitDamageTargetBJ( u, p, d, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
call AddSpecialEffectTargetUnitBJ( "origin", p, "Abilities\\Spells\\Human\\AerialShackles\\AerialShacklesTarget.mdl" )
set e = GetLastCreatedEffectBJ()
call DestroyEffectBJ( e )
call AddSpecialEffectTargetUnitBJ( "origin", p, "Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget.mdl" )
set e = GetLastCreatedEffectBJ()
call DestroyEffectBJ( e )
set d = 0.00
set u = null
set p = null
set e = null
endfunction

private function Actions takes nothing returns nothing
local unit u
local real h
local real aoe
local location l
local group g
local effect e


set u = GetTriggerUnit()
set h = I2R(GetUnitAbilityLevelSwapped('A000', u)) * ( 25.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, u, true)) )
set aoe = I2R(GetUnitAbilityLevelSwapped('A000', u)) * ( 200.00 * I2R(GetHeroStatBJ(bj_HEROSTAT_STR, u, true)) )
set l = GetUnitLoc(u)
set g = GetUnitsInRangeOfLocMatching(aoe, l, Condition(function Group_Func006002003))

call AddSpecialEffectTargetUnitBJ( "origin", GetEnumUnit(), "Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl" )
set e = GetLastCreatedEffectBJ()
call DestroyEffectBJ( e )
call SetUnitLifeBJ( u, ( GetUnitStateSwap(UNIT_STATE_LIFE, u) + h ) )
call ForGroupBJ( g, function Group_Actions )
call DestroyGroup (g)
call RemoveLocation (l)
set u = null
set g = null
set l = null
set h = 0.00
set aoe = 0.00
endfunction

private function SpellInit takes nothing returns nothing
local trigger t
set t = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( t, Condition( function Conditions ) )
call TriggerAddAction( t, function Actions )
endfunction

endscope[/code]
Jadi deehhhh....
Ribet ya??
ini baru trigger Spell yang menggunakan 1 Trigger (kalo MUI kan 2)
trigger Spell untuk 2 trigger ntar yahh...
lagi belajar...
Bahasanya kurang di mengerti?
sorry....

Tutorial made by : ItsMeFurZy
Credits =
*The Obelisk untuk spell ini
*Otak gw yang udah mikir" logika
*Spell lain yang gak bisa di sebutin dari Hive
*Tutorial Hive
*Dan untuk kalian yang membaca tutorial ini!
*http://seputar-warcraft.blogspot.com/

NB = Kalo ada pertanyaan silahkan comment di sini or my YM, fb, fs, VM(visitor message)
kalo ada kesalahan comment di sini

YM,FB,Fs = itsmefurzy@yahoo.com

Map Maker NSR
Regrats ItsMeFurZy


▂ ▃ ▅ ▆ █ Baca Juga Artikel █ ▆ ▅ ▃ ▂

Tulisan "[Tutorial] Jass Trigger Part 4" bebas Anda sebarluaskan asal anda menyertakan link asli sumber tulisan

Dengan mengisi email Anda dibawah ini maka anda akan mendapatkan artikel terbaru dari ItsMeFurZy.blogspot.com

Langganan di ItsMeFurZy.Blogspot.Com Free
Rate this
Category: Date : 16.00

0 komentar:

Posting Komentar

Tulislah komentar dengan bijak dan jangan melakukan SPAM karena komentar anda sangat dibutuhkan bagi saya.