Tampilkan postingan dengan label world editor. Tampilkan semua postingan
Tampilkan postingan dengan label world editor. Tampilkan semua postingan

Search :

[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
Category: Date : 16.00 0 komentar

[Tutorial] Jass Trigger Part 3


Part 3 Variable Jass Trigger

1.Introduction

Di GUI, kamu hanya bisa menggunakan global variables, yang bisa di set dan digunakan function.
Untuk mendeclare global variable di WE dengan menampilkan opsi variable tekan CTRL+B di trigger editor.
Locals itu berbeda, local hanya bisa di gunakan didalam function yang sudah mendeclare local itu sendiri.
Cara mendeclare local variable “local ”. Local harus di declare(di tulis) pertama kali setelah menulis function.

2.Macam" Variable

1.Local variable

A.Introduction

*Local variable Adalah variable yang dapat di stack namun variable ini hanya dapat di
gunakan untuk 1 function saja tidak dapat lompat dan juga variable ini harus
di null semua kecuali real sama integer.
(ex: local variable_type = variable_name)

*Variable local yang salah
[code]
function CreateEffect takes nothing returns nothing
local unit u
set u = GetTriggerUnit()
endfunction

function RemoveUnit takes nothing returns nothing
call RemoveUnit(u, true)
endfunction[/code]
Mengapa salah? Karena local variable tidak dapat melompat function.

*Perubahan" pada GUI trigger
[code] group is Unit Group in GUI
force is Player Group in GUI
destructable is Destructible in GUI
effect is Special Effect in GUI
location is Point in GUI
rect is Region in GUI[/code]

B.Membuat Local variable

*Untuk membuat local variable kalian harus paham dengan Jass. Local variable
hanya bisa di buat dengan custom script atau trigger yang sudah di convert ke
custom text.

C.Membuat Penyimpanan data

*Data yang kita buat dengan Local variable.
Ex : [code]Events
Player - Player 1 (Red) types a chat message containing - test as An Exact Match
Conditions
Actions
Custom script: local player Chat
Custom script: set Chat = GetTriggerPlayer()[/code]
*Jika membuat Local variable penempatan Local variable harus di paling atas.



2.Global Variable
Adalah variable yang fungsinya sama dengan udg_ / variable GUI hanya letak
perbedaannya pada udg_ kalau GUI variable ada udg_ namun di Jass tidak
(udg_ = User-defined Global).
(ex: globals
variable_type = variable_name
endglobals)

-Macam" Variable
[code]
type event extends handle
type player extends handle
type widget extends handle
type unit extends widget
type destructable extends widget
type item extends widget
type ability extends handle
type buff extends ability
type force extends handle
type group extends handle
type trigger extends handle
type triggercondition extends handle
type triggeraction extends handle
type timer extends handle
type location extends handle
type region extends handle
type rect extends handle
type boolexpr extends handle
type sound extends handle
type conditionfunc extends boolexpr
type filterfunc extends boolexpr
type unitpool extends handle
type itempool extends handle
type race extends handle
type alliancetype extends handle
type racepreference extends handle
type gamestate extends handle
type igamestate extends gamestate
type fgamestate extends gamestate
type playerstate extends handle
type playerscore extends handle
type playergameresult extends handle
type unitstate extends handle
type aidifficulty extends handle
type eventid extends handle
type gameevent extends eventid
type playerevent extends eventid
type playerunitevent extends eventid
type unitevent extends eventid
type limitop extends eventid
type widgetevent extends eventid
type dialogevent extends eventid
type unittype extends handle
type gamespeed extends handle
type gamedifficulty extends handle
type gametype extends handle
type mapflag extends handle
type mapvisibility extends handle
type mapsetting extends handle
type mapdensity extends handle
type mapcontrol extends handle
type playerslotstate extends handle
type volumegroup extends handle
type camerafield extends handle
type camerasetup extends handle
type playercolor extends handle
type placement extends handle
type startlocprio extends handle
type raritycontrol extends handle
type blendmode extends handle
type texmapflags extends handle
type effect extends handle
type effecttype extends handle
type weathereffect extends handle
type terraindeformation extends handle
type fogstate extends handle
type fogmodifier extends handle
type dialog extends handle
type button extends handle
type quest extends handle
type questitem extends handle
type defeatcondition extends handle
type timerdialog extends handle
type leaderboard extends handle
type multiboard extends handle
type multiboarditem extends handle
type trackable extends handle
type gamecache extends handle
type version extends handle
type itemtype extends handle
type texttag extends handle
type attacktype extends handle
type damagetype extends handle
type weapontype extends handle
type soundtype extends handle
type lightning extends handle
type pathingtype extends handle
type image extends handle
type ubersplat extends handle[/code]
Category: Date : 15.58 0 komentar

[Tutorial] Jass Trigger Part 2


Part 2 Bahasa/Kata pada Jass Trigger

1.Introduction

Kata" pada Jass Trigger sangatlah berbeda dengan GUI. Di GUI kita tidak mengenal
namanya Function, Call, Local dll. Karena di GUI hanya ada Event, Condition, Action.
nah di sini saya akan bahas beberapa kata"/bahasa pada Jass Trigger.

2.Macam" Bahasa/kata pada Jass Trigger

A. Function

Function adalah code yang biasa untuk di execute/call. Contoh saya akan buat string
yang bertuliskan "Jass Trigger" selama 20 detik untuk semua player
[code]function Jass Trigger takes nothing returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,20,"Jass Trigger")
endfunction [/code]
Di GUI kita mengenal dengan Display to (All players) for 20.00 seconds the text: TEXT
sangatlah berbeda dengan Jass yang baru saja kita buat.

Function biasa di tulis dengan
function takes ** returns **
endfunction

Setelah kata "takes" itu akan menentukan apa yang kita pakai dalam function
tersebut. Semua bisa di "takes di function termasuk local variable di dalam function.

Catatan : Setiap menuliskan function harus di akhiri dengan endfunction

B. Call

Call adalah kata perintah untuk menjalankan suatu command dan dapat juga menjalankan
function yang telah kita buat.

Contoh untuk menjalankan Function:
call (nama setelah "function")
Contoh yang sudah di buat:
function Jass Trigger takes nothing returns nothing
endfunction
call Jass Trigger()
simbol () menandakan function Jass Trigger takes nothing

Contoh untuk menjalankan Command:
[code]function Jass Trigger takes nothing returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,20,"Jass Trigger")
endfunction [/code]
kata Call untuk memanggil Text untuk Force.

Contoh untuk menjalankan Function dan command
[code]function Jass Trigger takes real r returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,r,"Jass Trigger")
endfunction [/code]
Untuk menjalankan function tersebut ketik
Jass Trigger(r) ex: Jass Trigger(20)
berarti kata" Jass Trigger di tampilkan selama 20 detik.

C. IF

if dalam kata indonesia adalah "Jika" dalam Jass Trigger. If digunakan
untuk melakukan Action jika Conditionsnya TRUE atau FALSE. Syntax/penulisannya
if..then..else.. kalau GUI juga If..Then..Else..
Contoh :
[code]if
x == 20
then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,20,"Jass Trigger")
else[/code]
Artinya bila integer x sama dengan 20 maka akan muncul kalimat "Jass Trigger"
selama 20 detik.

D. ELSEIF

Sama seperti if tetapi elseif bisa lebih dari 1 condition
Contoh :
[code] if X==1 then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"X is equal to 1")
elseif X==2 then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"X is equal to 2")
elseif X==3 then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"X is equal to 3")
else
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"X is NOT equal to 1, 2, or 3.")
endif [/code]

E. Loops

Loops di gunakan untuk mengcall action beberapa kali atau sampai exitwhen bertemu.
Exitwhen harus berada di antara Loop dan EndLoop. Cara menggunakan loop tulis "loop"
lalu "exitwhen" dan di akhiri dengan endloop. Dan jika exitwhen memakai integer harus
di tambahi (variable integer) + 1
Contoh :
[code] loop
exitwhen i > 5
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,20,"Jass Trigger")
set i = i + 1
endloop[/code]
Action itu akan mengcall string "Jass Trigger" sampai 5 kali.
Category: Date : 15.57 0 komentar

[Tutorial] Jass Trigger Part 1


Part 1 Pengenalan Jass Trigger

Note : Bagi yang baru kenal Jass baca dari atas sampai bawah ya ^.^

1.Introduction

x:"KK ItsMeFurZy Jass itu apa ya?"
y:"Jass adalah Trigger yang menggunakan convert text dan 100% beda dengan GUI,
dan juga banyak fitur baru dari Jass."
x:"Oww Jass gitu toh. Tapi bedanya GUI apa ya?
y:"Jass itu di buatnya harus pakai Convert to Custom Text dan di tulis trigger dengan
tulisan khusus Jass Triggering dan Jass fiturnya sama kaya DOS."

Kesimpulan : Jass adalah bahasa skrip yang di gunakan untuk membuat peta warcraft III
Jass di buat dari Convert to Custom Text dan command - commandnya di buat
dari tulisan seperti DOS pada komputer, dan juga banyak command - command
khusus yang dapat menjadikan function trigger stack!
Bahasa" Jass itu Khusus dan sangat case-sensitive jika salah kata/huruf
besar maupun kecil akan error.

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.

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)
-Nanti muncul seperti ini (ex = Trigger : Heaven Strike)
Action : Unit - A unit Starts the effect of an ability
Condition : (Ability being cast) Equal to Heaven Strike)
[code]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
[/code]
Maksud" dari:
[QUOTE]- function Trig_Heaven_Strike_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction[/QUOTE]

*Itu function Conditions triggernya.
*'A000' Raw code ability (bisa di lihat dengan Klik object editor tekan CTRL + D).

- function Trig_Heaven_Strike_Actions takes nothing returns nothing
endfunction

*Itu function Actions triggernya tempat mengetik action pada suatu trigger.

[QUOTE]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[/QUOTE] *Itu function Initialization trigger (WARNING = InitTrig_Heaven_Strike jangan di ganti bila tidak memakai
Scope initialization (nama function event)
*set gg_trg_Heaven_Strike itu nama trigger aslinya
*call TriggerRegisterAnyUnitEventBJ( gg_trg_Heaven_Strike, EVENT_PLAYER_UNIT_SPELL_EFFECT )
+untuk menregister Event
*call TriggerAddCondition( gg_trg_Heaven_Strike, Condition( function Trig_Heaven_Strike_Conditions ) )
+untuk menregister Condition
*call TriggerAddAction( gg_trg_Heaven_Strike, function Trig_Heaven_Strike_Actions )
+untuk menregister Action

4. Kelebihan Jass

-Mengurangi memory pada Map karena beberapa trigger dapat di jadikan satu
-Mudah untuk membuat/mengedit variable
-Kamu bisa mengcontrol lebih conditions dan loops
-Bisa menggunakan local variable
-Kalian bisa menggunakan function kalian
-Tidak semua function di JASS ada di GUI
-Game akan lebih halus(Not Sure)
-Tulisan/Code akan lebih sedikit
Category: Date : 15.56 0 komentar

[Tutorial] MUI Trigger


Mari Belajar MUI Trigger

1.Introduction
[QUOTE]x : "KK ItsMeFurZy MUI itu apa ya?"
y : "MUI itu kepanjangan dari Multi-Unit Instanceability
x : "Bedanya ama GUI apa?"
y : "Bedanya kalo GUI itu tidak bisa di stack, tetapi kalo MUI bisa!"
x : "Ribet kaga?"
y : "Kalo di bilang ribet sih iya. tapi kalo di bilang gampang kalo dah ngerti"[/QUOTE]

Kesimpulan : MUI kepanjangan Multi-Unit Instanceability, dan MUI dapat di stack oleh
beberapa pemain bahkan HERO!

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) apa saja.
- Variable
- Integer no array (nama bebas[Kalo gw Index])
- Integer no array (nama bebas[Kalo gw Loop])
- Group no array (nama bebas[Kalo gw Group])
- Variable yang di butuhkan oleh semua trigger DENGAN BER-ARRAY

3.Cara membuatnya
- Buat trigger dengan nama (bebas) dan jangan di convert ke custom text.
- Masukan event and condition (lw maunya apa serah yang penting bisa buktiin bahwa ini stack atau tidak.
- Spell (Seterah kalo gw Dead Image)
Perincian

[code]Causes this unit to attack 100% faster,for lasts 15 seconds and cannot takes damage.[/code](gak sama itu kaya Aslinya di The Obelisk [Buru"])

Triggering Action:

Variable gw :

Di_Group (unitgroup)
Di_Index (integer)
Di_Loop (integer)
Di_Caster (unit) Array
Di_Health (real) Array

Trigger = Dead Image

Dead Image Loop
[code]
Dead Image
*Events
- Unit - A unit Starts the effect of an ability
*Conditions
- (Ability being cast) Equal to Dead Image
*Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Number of units in Di_Group) Equal to 0 //Group buat turn on Loop kalo udah ada orang jadi gak ke turn on lagi
- Then - Actions
- Trigger - Turn on Dead Image Loop //Turn on kalo Conditionsnya benar
- Else - Actions
- Set Di_Index = (Di_Index + 1) //Setting Index untuk array variable dan Loop
- Set Di_Caster[Di_Index] = (Triggering unit) //Setting Unit / caster
- Set Di_Health[Di_Index] = (Percentage life of Di_Caster[Di_Index]) //Setting darah / life caster
- Special Effect - Create a special effect attached to the hand right of Di_Caster[Di_Index] using Abilities\Weapons\SerpentWardMissile\SerpentWardMissile.mdl //Kasih effect biar keren ^^
- Set Di_Effect[Di_Index] = (Last created special effect) //Setting variable effect
- Unit Group - Add Di_Caster[Di_Index] to Di_Group //Setting Di_Groupnya[/code]

Sampai di sini ada pertanyaan?

[QUOTE]x : "Master ItsMeFurZy itu kok effect kagak langsung di destroy?"
y : "Effect kalo langsung di destroy jadi gak ada donk effectnya?"
x : "Itu gunanya Unit Group Add apa?"
y : "Untuk setting di Loop agar benar, Coz kalo Loop kena semua nanti saya bahas lagi di Trigger Dead Image Loop"[/QUOTE]

[code]
*Events
- Time - Every 0.50 seconds of game time
*Conditions
*Actions
- For each (Integer Di_Loop) from 1 to Di_Index, do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Di_Caster[Di_Loop] is in Di_Group) Equal to True //Untuk agar tidak menjurus ke orang lain nanti darahnya jadi lain sama yang asli
- Then - Actions
- Unit - Set life of Di_Caster[Di_Loop] to Di_Health[Di_Loop]% //Kalo spell gw tiap beberapa detik darahnya akan terreset pas spell
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Di_Caster[Di_Loop] has buff Dead Image ) Equal to False //Kalo udah gak ada buffnya masuk action ini
- Then - Actions
- Special Effect - Destroy Di_Effect[Di_Loop] //Destroyin Effectnya! supaya gak nempel trusssss
- Unit Group - Remove Di_Caster[Di_Loop] from Di_Group //Ilangin / remove caster supaya bisa di turn off
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- (Number of units in Di_Group) Equal to 0 //Group kalo kosong masuk action ini
- Then - Actions
- Trigger - Turn off Dead Image Loop //Dimatikan soalnya tar bikin leg" kalo banyak trigger kek gini
- Set Di_Index = 0 //Di nol supaya dapat di ulang lagi
- Else - Actions
- Else - Actions
- Else - Actions [/code]

FAQ

[QUOTE]x: "kk itu yang di Number of units beda sama kaya pas cast kalo cast kan di turn on tapi ini koq di turn off? hayooo."
y : "Itu pas spell kan buat di Loopin! tapi kalo Loopnya sudah selesai jadi harus di turn off"
x : "hmm. sudah deh kayaknya makasih yahh"
y : "sama - sama jangan lupa klik Thanks dan GRPnya"[/QUOTE]Tutorial made by : ItsMeFurZy

YM,FB,Fs = itsmefurzy@yahoo.com

Regards,
ItsMeFurZy
Category: Date : 15.54 0 komentar