Selasa, 01 September 2009

JASS BASIC

JASS Basic
JASS adalah bahasa yang digunakan di Warcraft III. Ini adalah bahasa yang limited. Tetapi JASS memberikan control yang lebih baik melebihi GUI trigger. Sebaikkya kalian mendownload JNPG(Jass New Gen Pack) versi terbaru dan mendownload patch 1.24. karna di patch 1.24 akan ada function –function yang baru ! ada 2 macam JASS yaitu JASS biasa dan VJASS(Vextorian JASS) kali ini saya menerangkan JASS basic
NOTE : tutorial ini hanya untuk oran yang bisa menggunakan GUI trigger di world editor dan telah menguasai variable. Bila belum menguasai belajar dulu sana ! nanti tambah bingung kalo baca ini !
Kelebihan JASS>GUI
1. Kamu bisa mengcontrol lebih conditions dan loops
2. Bisa menggunakan local variable
3. Kalian bisa menggunakan function kalian
4. Tidak semua function di JASS di GUI
5. Game akan lebih halus(Not Sure)
6. Tulisan/Code akan lebih sedikit

Untuk membuat JASS trigger, buat trigger baru di trigger editor dan convert to Custom Text

FUNCTION

Functions adalah code yang bisa di execute/ di call. Contohnya saya akan membuat function yang bila di call akan menampilkan tulisan “Hello World!” selama 30 detik

function HelloWorld takes nothing returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"Hello World!")
endfunction

Functions selalu dalam bentuk format :

function takes *** returns ***
//{code that will be executed when the function is called}
endfunction

setelah “takes” itu akan menentukan apa yang akan di bawa(di pakai) dalam function tersebut. Semua bisa di “takes di function termasuk local variable di dalam function. Untuk membuat function yang memakai “takes”, ketik setelah “takes”. Contoh :

function meh takes unit u returns nothing

Untuk function yang memerlukan take lebih dari satu, beri comma setelah . Gunakan “nothing” bila tidak ada variable yang di bawa.
Yang terakhir adalah “returns” returns adalah (saya agak bingung jelasinnya jadi nunggu master2 map maker yang jelasin hehehehe). Contoh:

function half takes integer x returns integer
return x/2
endfunction

function half di atas takes integer, x, dan kembali setengah dari x,

NOTE : setiap menuliskan function harus di akhiri dengan “endfunction”

CALLING

Call digunakan untuk menggunakan function yang telah kalian buat
Contoh dengan function di atas :

call meh()

mengapa harus ada tanda “()” karena function meh takes nothing

function HelloWorld takes real r returns nothing
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,r,"Hello World!")
endfunction

cara menggunakan function HelloWorld diatas caranya

call HelloWorld(30)

itu akan menampilkan tulisan “Hello World!” selama 30 detik

call HelloWorld(12)

bila seperti di atas akan menampilkan selama 12 detik

IF
If berguna untuk melakukan action bila TRUE atau FALSE ! Syntax nya adalah
if then

endif
missal :

if x==y then
call HelloWorld(5)
endif



ELSEIF
Sama seperti if tetapi elseif bisa lebih dari 1 contoh:

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

LOOPS

Loops sangatlah berguna sekali. Loops akan mengecall code di dalamnya sampai exitwhen bertemu. Exitwhen harus selalu berada di loop. Cara menggunakan loop tulis “loop” lalu “exitwhen” dan diakhiri dengan endloop. Contoh :

loop
exitwhen i>5
set i=0
set i=i+1 // Wajib!
call HelloWorld(5)
endloop

LOCAL AND GLOBAL VARIABLES
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. Contoh :

function Die takes nothing returns nothing
local unit u= GetTriggerUnit()
call KillUnit(u)
endfunction


Function di atas akan membunuh U, function di atas sama saja dengan

function Die takes nothing returns nothing
call KillUnit(GetTriggerUnit())
endfunction

ini akan tidak berhhasil apabila :
function Die takes nothing returns nothing

call KillUnit(u)
local unit u= GetTriggerUnit()// Salah !
endfunction
untuk mendeclare variable dengan array :

local intger array i

untuk mendeclare variable selain dengan CTRL+B kamu bisa melakukannya di trigger dengan cara :

globals
intger i = 0
intger f = 0
unit u = GetTriggerUnit()
real array r = 0.0
endglobals

setelah globals tulis = . Dan terakhir jangan lupa member endglobals (VJASS)

MEMORY LEAKS
Memory leaks akan terjadi apabila value pada variable belum di hancurkan. Bila memory leaks banyak akan menyebabkan banyak lag. Yang harus kamu perhatikan adalah groups(unit groups), locations (point), forces (player group), effect (special effect). Setelah menghancurkan variable kamu harus mengesetnya menjadi “null”
Blizzard.j dan common.j
Saya menyarankan kalian untuk membaca blizzard.j dan common.j dari war3.mpq caranya carik ke google aja yah !

Hal yang perlu diingat
JASS itu case-sensitive, JASS tidak bisa menge call function bila function itu di bawahnya contoh :
call Die()
function Die takes nothing returns nothing
local unit u= GetTriggerUnit()
call KillUnit(u)
endfunction

itu akan menyebabkan error ! untuk mencomment ketik “//” , dan agar yang mau lebih pro baca aja jass manual di folder jasshelper setelah mendownload JNPG di Jassmanual akan ada library, sturct, textmacro dan lain2 (VJASS)


Seputar Warcraft 3 © 2008. Free Blogspot Templates Sponsored by: Tutorial87 Commentcute