Pages

Mari belajar kode SA-MP


illustration by B3x7K

Hai teman teman scripter, kali ini saya ingin mengajarkan kalian bagaimana caranya menjadi scripter yang baik dan benar.

 Dalam dunia scripting, biasanya hanya terdapat bahasa inggris, jadi kalian harus mengetahui dulu yaa bahasa inggris ini. Namun, bagi kalian yang tidak bisa berbahasa inggris jangan khawatir, karena LolipopForLife menyediakan script bernama IndLang.

 Apa itu IndLang ?, IndLang adalah sebuah script penerjemah dari bahasa inggris ke indonesia yang bertujuan untuk memberikan sensasi koding yang berbeda dan juga ingin memperkenalkan kepada newbie scripter mengenai basic koding menggunakan bahasa indonesia.

 Oke langsung saja kita mulai tutorial kali ini.

BAB 1: Pengenalan

 SA-MP adalah sebuah singkatan dari San Andreas Multiplayer, sebuah gaming platform yang dikembangkan oleh Calcor, dan dibantu oleh sejumlah developer seperti Y_Less, Zeex, Kar, dan lain lain. Selain itu, SA-MP memerlukan sebuah game yang bernama GTA:SA ucok  (* pasti pada tau lah ini :u *)

 disini, kalian bisa membuat server apa saja yang kalian inginkan, mulai dari Roleplay, Freeroam, Deathmach, Team-Deathmatch, Drift, Remix(perpaduan 2 buah gamemode yang diracik jadi satu), Gangwar, Dan Zombie.

 Oh iya hampir lupa saya 😅, pasti pada bingung apa itu gamemode. Jadi, Gamemode adalah sebuah arti dari mode game, atau lebih di kenal dengan sebutan kategori game yang tersedia di samp. Apa saja itu ? Mari dilihat lagi diatas yang bagian "disini, kalian bisa bla bla bla"

BAB 2: Basic Scripting

 Apa itu basic scripting ?, basic scripting adalah sebuah konsep dasar dalam melakukan koding atau yang biasa disebut scripting.
Dan gunanya, agar kalian bisa mempelajari tentang script script dasar yang ada di SA-MP ini.

A1: Memulai Script


 Sebelum kalian memulai mempelajari tentang script, adakalanya kalian wajib menyiapkan bahan bahan yang ada seperti:

▪ Pawn Pre-Proccessor buatan Zeex.
▪ SA-MP official server.
▪ Plugin seperti SSCANF, ZCMD, dan lain lain.
▪ Dan tentu saja include yang diperlukan.

A2: Deklarasi Kode

 Deklarasi Kode adalah salah satu hal yang penting dilakukan oleh para koder untuk memulai sebuah script, terdiri dari beberapa aspek penting seperti include, defune, baru, sementara, dan lain lain. Tujuannya agar sebuah kode bisa bekerja dengan bantuan deklarasi ini.
Tanpa deklarasi, tidak akan berlaku kode tersebut :) karena semua kode butuh pendeklarasian yang benar dan tepat, tidak asal asalan, dan tidak copy paste :3.

 Sebelum kalian memulai melakukan koding, ada kalanya kalian melakukan berbagai hal seperti:

Sub 1: Include dan Define

 Apa itu include dan define ?, itu adalah sebuah kode permulaan untuk membuat sebuah script, tanpa adanya include dan define, kalian tidak akan bisa membuat gamemode script seperti yang kalian inginkan. Dan tentu saja bagian ini penting dalam sebuah script sa-mp, jadi simak ini baik baik.

Contoh penggunaan include dan define:


 Untuk sebuah include, kalian bebas untuk memanggil include file apa saja yang kalian perlukan, namun biasanya orang akan membutuhkan sebuah include dibawah ini:


Contoh Include:

#include <a_sa-mp> // wajib include ini
#include <sscanf2> // sscanf yang baru versi missiur
#include <streamer> // biasanya dipake untuk objek
#include <IndLang> // buat ngoding pake bahasa indo (* belum sempurna *)
#include <YSI/Y_ini> // untuk simpan stats player, lebih baik daripada dini
#include <ZCMD> // Command prossesor ver Zeex

Kemudian dilanjutkan dengan define, tujuannya agar memudahkan para scripter dalam membuat sebuah kode, untuk kodenya sendiri itu kira kira seperti ini


Contoh Define:

#define MAX_PLAYERS (100) // Batas player adalah 100, dan bisa diganti
#define MAX_RUMAH    (100) // Batas rumah adalah 100, dan bisa diganti
#define MAX_INVEN      (100) // Batas inventory adalah 100, dan bisa diganti

Penggunaan define ini sebenarnya adalah macro, jadi kalian tidak perlu repot repot lagi menggunakan manual code, Dan tentunya juga mempermudah dalam pembacaan script :)

Sub 2: static, new, dan enum

 Sebelum kalian masuk ke tahap selanjutnya, kalian harus tau betul nih tentang fungsi sementara, baru, dan enum ini yaa ☺



Jadi, fungsi ini akan mendeklarasikan apa yang kamu koding, seperti macro pada umumnya digunakan untuk membantu para koder untuk mempermudah pekerjaannya tapi ini bisa dimasukkan kedalam kategori define :)



3 fungsi ini sangatlah berguna sekali bagi kalian yang ingin meng-koding sesuatu seperti ingin mengkoding data data statistik para player, dan lain lain.



Contoh penggunaan ketiga kode itu seperti ini:


Contoh kode 'new':

    new
         targetid, // fungsi kedua untuk player lain
        Text[1220]; // jumlah maksimal text


Contoh kode 'static':

   static
         targetid, // fungsi kedua untuk player lain
         query[1220]; // jumlah maksimal query text


Contoh kode 'enum':

enum Rumah {
      RunahID,
      JadiSuami,
      JadiIsteri,
      JadiAnak
};
// kemudian di kombinasikan dengan kode "new"
newRumahData[MAX_RUMAH][Rumah]

Kira kira seperti itulah fungsi dari ketiga kode itu, untuk lebih jelasnya nanti akan diterangkan di sesi selanjutnya.

Sub 3: Function , public dan Stock

 Apa itu function, public, dan stock ?

Sebenarnya sama saja function, public, dan stock, namun function ini berbeda sedikit dengan stock. Kalau stock tidak akan memberikan warning jika kode tersebut tidak di panggil pada saat di compile. Namun, itu tidak berlaku kepada Function yang jika tidak dipanggil di script, dan pada saat di compile dia akan menunjukkan warning "function blabla not used" atau semacamnya.
Bagaimana dengan public, sama dengan function, namun public tidak memerlukan sebuah forward.

Berikut adalah contoh pengunaan public dan stock

Contoh kode 'public':

public OnPlayerConnect(playerid) // klo player konek bakal ke panggil otomatis
{
     Jika(PlayerData[playerid][pBanned] == 1) // kalau player ke ban
         return Kick(playerid); // kick player tsb
   return 1; // return sukses!.
}


Contoh kode 'stock':

stock NamaPlayer(playerid) //callbacknya: NamaPlayer(playerid);
{
    return GetPlayerName(playerid, nama, besartext(nama)); // Get nama player
}

Jadi begitulah contoh dari function, stock, dan public, jika kalian masih bingung dengan fungsi diatas, silahkan komen dibawah ini, dan kalan bebas bertanya apa saja selagi itu masih wajar untuk dijawab ☺.

BAB 3: Penutupan

Nah, bagaimana semuanya tentang penjelasan tentang basic basic script yang kita bahas kali ini, sudah jelas kan ? Mungkin masih ada yang bingung dan masih ada yang heran mengenai fungsi fungsi di IndLanf atau dari script itu sendiri. Eits tenang nanti akan saya bahas minggu depan, jadi jangan khawatir tentang itu :)



Oh iya sebelum itu saya mohon maaf jika ada kesalahan dalam penjelasan kali ini dan juga agak sedikit membosanlan, karena saya buat ini di hp :3 jadinya yaa begitulah adanya. Akhir kata dari saya LolipopForLife berterimakasih karena telah mengunjungi blog ini, jangan lupa share jika menurut kalian ini bermanfaat bagi orang lain yang khususnya ingin belajar lebih dalam mengenai script. Dan sampai jumpa lagi di sesi berikutnya :)

Muhammad Alief

Sebuah blogger yang ingin berbagi tutorial mengenai dasar dasar koding kepada kalian yang ingin belajar lebih dalam lagi tentang scripting. Tentu saja dikemas dengan hal yang menarik dan juga mudah untuk dipahami bagi pemula :)

11 komentar: