Logo

Logo

Jumat, 25 Juli 2014

Tutorial Implement Dalam Roleplay Chat


Roleplay Chat


Pendahuluan

• Di tutorial ini akan menunjukan langkah demi langkah "Bagamaina Cara Chat Roleplay"
• Di tutorial ini kalian harus mengetauhi dasar Membuat Commands menggunakan ZCMD dan Sscanf 2.6
• Alat/bahan yang kau butuhkan


Stock


Sebelum Menlanjutkan, Kalian membutuhkan Fungsi Stock Yang sangat berguna untuk membuat scripting menjadi lebih ringan, Mudah diingiat, Dan Dipahami

• Menghapus "_" Dari nama
Sebelummnya kita membutuhkan string replace fucntion.
Code: Select all
stock strreplace(string[], find, replace)
{
    for(new i=0; string[i]; i++)    {        if(string[i] == find)        {            string[i] = replace;        }    }
}


ini sebuah contoh Bagaimana Sting replace stock mau mengubah Underscore dari nama

Code: Select all
new name[24];GetPlayerName(playerid, name, sizeof(name));strreplace(name, '_', ' ');


masih bingung? Biar gue jelaskan

Code: Select all
new    name[24];


ini adalah simple definisi sebuah nama,
• Name = Definisi
• [24]; = Maksimal Nama yang dibuat, apabila nama tersebut lebih dari 24 maka dia akan terpotong

Code: Select all
GetPlayerName(playerid, name, sizeof(name)); 


Dengan menggunakan GetPlayerName kita mengambil 'name' string, mengambil Nama Players tersebut dan Memasukkan string ke Parameters ke dua

Code: Select all
strreplace(name, '_', ' '); 


Fungsi ini Adalah men-replace underscore dengan " " atau spasi Sehingga nama orang tersebut menjadi Ex: Harrow Henderson

Jadi, Semua itu akan terlihat seperti ini

Code: Select all
stock GetName(playerid)
{
    new
        name[24];
    GetPlayerName(playerid, name, sizeof(name));
    strreplace(name, '_', ' ');
    return name;
}


• ProxDetector
siapa yang tidak tahu dengan fucntion satu ini, Ya function ini berasal/ Mulai deperkenalkan dari GM TheGodFather Roleplay. setiap player ingin chatnya hanya orang didekatnya, dan kini harapan mereka pun terwujud. Dengan Stock ProxDetector ini kita hanya dapat Chat dengan orang didekat kita, Ini semakin membuat Server Server Roleplay Yang lain terlihat seperti kehidupan nyata.
Code: Select all
stock ProxDetector(Float:radi, playerid, string[],color)
{
    new Float:x,Float:y,Float:z;    GetPlayerPos(playerid,x,y,z);    foreach(Player,i)    {        if(IsPlayerInRangeOfPoint(i,radi,x,y,z)) 
        
{            SendClientMessage(i,color,string);        }    }
}


masih bingung ? biar gue jelaskan lagi

Code: Select all
new Float:x,Float:y,Float:z;


Siapa yang tidak tahu dengan Floats ini adalah fungsi mengetahi Lokasi X Y Z dari sebuah benda/Object/Players/dsb, Kau harus menggunakan "Float:"tag karena ini sangat penting dan Coordinatnya adalah angka desimal

Code: Select all
GetPlayerPos(playerid, x, y, z); 


menggunakan native function GetPlayerPos Kita mengambil Posisi / coordinate suatu players agar dapat mengetahui keberadaan players tersebut

Code: Select all
foreach(Player, i


Menggunakan Foreach kita akan menjadikan Loop itu menjadi yang lebih efisien melalui semua pemain dan menyimpannya dalam satu variable " i " yang ada di parameter ke dua

Code: Select all
if(IsPlayerInRangeOfPoint(i,radi,x,y,z))


IsPlayerInRangeOfPoint itu ketika players berada di sebuah tempat yang jaraknya tidak jauh dari tempat itu sendiri [Ex: Ada mall, Players Di sebelah mall]

Code: Select all
SendClientMessage(i,color,string); 


akhirnya Dari kode diatas kita akan mengirim kan pesan ke player tersebut SendClientMessage. Variable " i " Menjelaskan Bahwa akan mengirim pesan terserbut yang berada di dekat orang tersebut



Local Chat

Kita sekarang sudah mempunyai stock yang dibutuhkan, dan kita akan membuat " Local Chat " untuk melakukan ini kita akan menggunakan Callback atau biasanya adalah OnPlayerText

• New Message

Seperti tadi, Ini adalah max text yang bisa muncul didalam chat itu sendiri

Code: Select all
new    message[128]; 


• Format Pesan

Kita akan menggunakan Fuction Format Untuk memasukkan Variable Nama dan Pesan.

Code: Select all
format(message, sizeof(message), "%s says: %s", GetName(playerid), text); 


• Mengirim Pesan Ke player yang berada Dekat
Kita sudah memasukkan nama dan text, sekarang kita akan mengirim pesan tersebut ke orang yang berada di dekat kita menggunakan ProxDetector yang sudah di definisi/stock tadi

Code: Select all
ProxDetector(30.0, playerid, message, -1); 


Dalam artian diatas, ProxDetector akan Menidentifikasi bahwa kita berada didalam/diantara jarak kurang lebih 30 kaki dari players yang berbicara.. Jika lebih dari 30 kaki maka Chat tersebut tidak akan terkirim atau terlihat

• Langkah Terakhir

Code: Select all
return 1


ganti menjadi

Code: Select all
return 0


• Hasil
Semuanya akan terlihat seperti ini

Code: Select all
public OnPlayerText(playerid, text[])
{
    new
        message
[128];    format(message, sizeof(message), "%s says: %s", GetName(playerid), text);    ProxDetector(30.0, playerid, message, -1);    return 0;
}


Sekian dulu tutorial gue saat ini, lebih kurang mohon maaf :oops:

0 komentar:

Posting Komentar

 

Copyright © 2014. M.A.C - All Rights Reserved
Distributed By Gemini Studio | Template Created by Gemini Studio Published by Abieel
Proudly powered by Blogger