Results 1 to 6 of 6
http://idgs.in/230138
  1. #1
    billymosis's Avatar
    Join Date
    Apr 2008
    Posts
    95
    Points
    152.40
    Thanks: 0 / 0 / 0

    Default [TUTORIAL] 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
    Code:
    function HelloWorld takes nothing returns nothing
       call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"Hello World!")
    endfunction]
    Functions selalu dalam bentuk format :

    Code:
    function <function's name> 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 <type> <name> setelah “takes”. Contoh :

    Code:
    function meh takes unit u returns nothing
    Untuk function yang memerlukan take lebih dari satu, beri comma setelah <name>. 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:
    Code:
    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 :
    Code:
    call meh()
    mengapa harus ada tanda “()” karena function meh takes nothing
    Code:
    function HelloWorld takes real r returns nothing
       call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,r,"Hello World!")
    endfunction
    cara menggunakan function HelloWorld diatas caranya
    Code:
    call HelloWorld(30)
    itu akan menampilkan tulisan “Hello World!” selama 30 detik
    Code:
    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
    Code:
    if <condition> then
    <actions>
    endif
    missal :
    Code:
    if x==y then
    call HelloWorld(5)
    endif


    ELSEIF
    Sama seperti if tetapi elseif bisa lebih dari 1 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
    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 :
    Code:
     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 <type> <name>”. Local harus di declare(di tulis) pertama kali setelah menulis function. Contoh :
    Code:
    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
    Code:
    function Die takes nothing returns nothing
    	call KillUnit(GetTriggerUnit())
    endfunction
    ini akan tidak berhhasil apabila :
    Code:
    function Die takes nothing returns nothing
    	call KillUnit(u)
    	local unit u= GetTriggerUnit()// Salah !
      endfunction
    untuk mendeclare variable dengan array :
    Code:
    local intger array i
    untuk mendeclare variable selain dengan CTRL+B kamu bisa melakukannya di trigger dengan cara :
    Code:
    globals
    intger i = 0
    intger f = 0
    unit u = GetTriggerUnit()
    real array r = 0.0
    endglobals
    setelah globals tulis <type> <name> = <value>. 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 :
    Code:
    call Die()
    Code:
    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)

  2. Hot Ad
  3. #2
    ranzi's Avatar
    Join Date
    Apr 2007
    Location
    Japanz (Juakarta Puanaazz)
    Posts
    625
    Points
    821.01
    Thanks: 2 / 8 / 6

    Default



    tapi saia mo koreksi sedikit

    1. byk orang salah kaprah klo vJASS itu singkatan dari vexorian JASS, padahal vJASS sendiri adalah "very" JASS, karena pada awalnya vexorian mo menamainya JASS++, tapi ada seseorang yg mengusulkan lain, yaitu very JASS tadi (vJASS).

    Quote Originally Posted by Flame_Phoenix
    The "v" is for very and not for "Vexorian". Vexorian wanted to call it JASS++ however Zoxc suggested vJASS for veryJASS and Vexorian liked the idea. Thanks to Vexorian for explaining me the origin of the name.
    2.

    Code:
    function HelloWorld takes nothing returns nothing
       call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,30,"Hello World!")
    endfunction]
    untuk menampilkan message untuk di display ke semua player, ada bagusnya

    pakai ini saja

    Code:
    call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,30,"Hello World!")
    hasilnya sama saja, tapi lebih cepat n effisien.

  4. #3
    SrZ]Xevirath's Avatar
    Join Date
    Feb 2007
    Location
    Dragon Palace
    Posts
    3,427
    Points
    5,090.80
    Thanks: 0 / 20 / 16

    Default

    lol.. saya malah nga tahu dari dulu singkatan dari apa tuh vJass... (dan nga pernah kepikir untuk cari artiya...) XD

  5. #4

    Join Date
    May 2009
    Location
    Indonesia
    Posts
    193
    Points
    317.90
    Thanks: 23 / 4 / 4

    Default

    kan uda ad tuutorialnya rizzuh : http://www.indogamers.com/f62/jass_t...duction-13940/

    trus ini tutorial buat patch yang baru yah

  6. #5
    billymosis's Avatar
    Join Date
    Apr 2008
    Posts
    95
    Points
    152.40
    Thanks: 0 / 0 / 0

    Default

    @atas
    ini tu jass yg basic kalo yg itu yg pro

    @ranzi
    oalah kirain vexorian jass :P

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

    Default

    Yang gw tau punya rizzuh udah merangkap basic dan pro deh. Mending lo ganti judul jd "Tutorial vJass". Jujur gw lum tahu apapun ttg penggunaan vJass.

    Meski bagus tapi jadi useless...

Posting Permissions

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