Pages

Belajar Membuat Command di pawn Compiller

Illustration by: B3x7K



Oke teman teman, jadi di sesi kali ini, saya akan menjelaskan mengenai langkah dasar membuat sebuah command di Gaming Platform yang bernama SA-MP ini.

Perlu kalian ketahui, untuk membuat sebuah command itu sangatlah mudah sekali untuk dipelajari baik itu anak anak, remaja, maupun dewasa. Kalian hanya cukup memahami dasar dasar dari loop, dan lain lain. Dan lebih mudahnya lagi menggunakan IndLang :3

Jadi jika kalian sudah mengerti dasar dasar Loop, SSCANF, DLL silahkan lanjutkan membaca, namun jika belum silahkan lihat bagia SSCANF, Loop dan lain lain. Jika tidak ada maka nanti akan di post kok :)


BAB 1: Pengenalan

Command jika diartikan kedalam bahasa indonesia adalah perintah, jadi Command itu sendiri adalah sebuah command untuk memanggil sesuatu seperti command /tp untuk memanggil script teleport. Mungkin seperti itulah pengambaran tentang Command itu sendiri.

Command pada umumnya berbentuk sebuah 1 call public, apa itu 1 call public ?, 1 call public adalah istilah dari hanya 1 script namun bisa dipakai beberapa sub-script, apa lagi itu sub-script ?. Sub-script adalah sebuah anak script dari main script, mungkin masih ada puyeng dibagian ini. Jadi akan saya contohkan seperti ini.



Ini adalah contoh dari Main dan Sub Script.


Kira kira begitulah penjelasan tentang main dan subscript, oke kita langsung lanjut lagi ke pembahasan tentang Command ?, mungkin masih ada yang bertanya tanya dan juga penasaran hehehehe XD

Jadi intinya adalah, Command adalah salah satu main script yang fungsinya untuk memanggil subscript.
Sudah paham kan sampai sini :) ?, kalau belum simak lagi deh XD dan kalau udah mari kita melanjutkan ke bagina yang berikutnya.

BAB 2: Making Basic Command

Membuat basic command sebenarnya sangatlah simple, kalian hanya perlu mendeklarasikan public dari OnPlayerCommandText. Untuk pendeklarasiannya itu sendiri seperti ini.


A1: Basic Command With Public

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/help", true))
    {
        KasihTauPlayerPesan(playerid, -1, "SERVER: Ini adalah /help command mu!");
        return 1;
        // Return sukses jika command berhasil dieksekusikan.
    }
    return 0;
    // Return error jika command tidak berhasil dieksekusikan
    // Dan juga akan muncul default message yaitu "SERVER: Unknown Command".
}

Nah, biasanya para scripter terdahulu akan menaruh semua Command di bawah OnPlayerCommandText, namun saat ini sudah ada inovasi baru dari Zeex, yaitu menggunakan include ZCMD.

Jadi, dengan include tersebut kalian tidak perlu repot repot lagi harus mendeklarasikan OnPlayerCommandText, dan hanya perlu menggunakan CMD:perintahkamu

A2: Basic Command With ZCMD

Nah kalau tadi kan sudah melihat cara manual untuk membuat sebuah command, kali ini saya akan memberitahukan bagaimana cara membuat command yang lebih simple daripada yang (A1)

Apa itu ZCMD ?
Ini hanya sedikit disertakan yang menggunakan OnPlayerCommandText() untuk memproses command player. Setiap command memiliki fungsi terpisah seperti di dcmd, tapi zcmd memanggil mereka secara langsung melalui CallLocalFunction(). Metode seperti itu jauh lebih cepat daripada ketika Kalian membandingkan secara berturut-turut teks player masuk ke setiap perintah yang Anda miliki di skrip Anda (terutama jika dia mengirim cmd yang tidak ada, Anda melewati semua itu) dan keunggulannya di atas cara lama sebanding dengan jumlah perintah. Saya melakukan tes kecepatan ketika saya baru saja bertekad memikirkan pendekatan ini, Anda bisa menemukan hasilnya di sini.
Lalu contohnya bagaimana ?, kalian bisa lihat dibawah ini:

CMD:help  // Command help, bisa ditambah dengan (playerid, params[]).
{
    KasihTauPlayerPesan(playerid, "SERVER: Ini adalah /help command mu!");
    return 1;
   // Return sukses jika command berhasil dieksekusikan.
}

Nah bagaimana semuanya, apakah kalian ingin memilih menggunakan cara lama atau cara inovatif ini XD
kalau saya pribadi sih memilih cara inovatif dengan menggunakan ZCMD dan IndLang agar memudahkan saya untuk melakukan scripting XD.

Sub 1: Penggunaan SSCANF & PlayerTerkoneksi & PanjangText dalam ZCMD

Oh iya untuk penggunakan ZCMD ini biasanya dibarengi dengan sscanf, bagaimana penggunaannya ?, mari kita lihat kodenya bersama sama :)
CMD:kick   //command kick, bisa ditambah dengan (playerid, params[]).
{
      baru
            targetid,
            alasan[25];

      jika(sscanf("us[25]", targetid, alasan))
             return KasihTauPlayerPesan(playerid, "/kick [playerid] [alasan]");

      jika(!PlayerTerkoneksi(targetid))
              return KasihTauPlayerPesan(playerid, "Player tersebut tidak konek");

     jika(PanjangText(alasan) > 25)
            return KasihTauPlayerPesan(playerid, "alasan harus kurang dari 25 kata!");

     KickEx(targetid, alasan)
     return 1;
}

Nah seperti itulah penggunaan sscanf didalam command ini. Jadi gunanya adalah untuk mendeteksi lebih dari 1 text yang ditampilkan di command itu sendiri. Misalkan kita mau /kick orang, nah kalau kita cuma ketik /kick nanti bakal muncul deskripsinya, karena sscanf hanya mendeteksi commandnya saja tidak dengan tambahan. Intinya sih gini.

sscanf itu seperti ekstensi tambahan yang gunanya untuk mendeteksi text. Sama seperti strfind namun sepertinya berbeda jauh fungsinya :)

BAB 3: Penutupan


 Nah bagaimana, mudah kan :), itulah dia cara membuat command dengan mudah dan juga pastinya mudah di mengerti bagi kalian.

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 + sibuk :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 :)

Tidak ada komentar:

Posting Komentar