Logo

Logo

Jumat, 25 Juli 2014

Tutorial Membuat Textdraw

0 komentar

Kali ini saya akan menerangkan tentang Textdraw ...

APA ITU TEXTDRAW?
Textdraw adalah Sebuah Text yang muncul pada layar pemain pada saat bermain tidak seperti Gametext yang hanya muncul sementara dan kemudian menghilang.Textdraw bisa muncul di layar dengan waktu yang tak terbatas dan juga bisa diatur waktu munculnya..

Membuat Textdraw
pertama, Anda harus membuat variable baru 

Untuk memunculkan Textdraw secara Global harus menggunakan Variable seperti ini :
Code: Select all
new Text:Test; Anda Dapat Mengubah Test


Untuk memunculkan Textdraw hanya untuk player harus menggunakan Variable seperti ini :
Code: Select all
new PlayerText:Test[MAX_PLAYERS]


Untuk membuat sebuah textdraw, function TextDrawCreate harus digunakan. Taruh function tersebut pada callback OnGameModeInIt.

Code: Select all
TextDrawCreate(Float:x, Float:y, text[])

SPOILER: SHOW


Contoh :
Code: Select all
new Text:nrg700;
nrg700 = TextDrawCreate(5.000000, 425.000000, "Just Testing Vrohh..");


Image
Peletakan Textdraw

Menyetel Font Textdraw
Untuk mengubah font pada Textdraw anda dapat menggunakan function TextDrawFont.
Code: Select all
TextDrawFont((variable), (id font));


Berikut ini adalah daftar ID Font
SPOILER: SHOW


Memunculkan Textdraw Pada Layar
Untuk Memunculkan Textdraw Pada Layar Pemain, function TextDrawShowForPlayer Harus Digunakan
Code: Select all
TextDrawShowForPlayer(playerid, Text:text)

Anda dapat menaruh function tersebut pada OnPlayerConnect untuk memunculkannya pada saat pemain masuk ke dalam server.

Function-Function lain yang dapat anda gunakan adalah sebagai berikut
Code: Select all
TextDrawLetterSize(Text:text, x, y); < Mengubah ukuran dari textdraw
TextDrawColor(Text:text, Color ID); < Mengubah warna dari textdraw
TextDrawSetOutline(Text:text, size); < Menambahkan garis pinggir (outline) pada textdraw [untuk memunculkan textdrawnya ubah size menjadi 1.Jika anda tidak menginginkan outline ubah size menjadi 0]


Beberapa FS dan Include yang akan membantu anda dalam membuat textdraw
1. Zamaroth Textdraw Editor http://forum.sa-mp.com/showthread.php?t=406833 < Untuk membuat Textdraw
2. Progress Bar 1.3.1 http://forum.sa-mp.com/showthread.php?t=113443 < Untuk membuat Progress Bar
3. iPLEOMAX's TextDraw Editor http://forum.sa-mp.com/showthread.php?t=376758 < Untuk Membuat Textdraw

*Sorry Kalo ada typo ataupun kesalahan kata pada tutorial ini :oops:

Sedikit keterangan atau catatan

native native Yang Perlu Anda Ketahui Sebelum Membuat Textdraw

native Text:TextDrawCreate(Float:x, Float:y, text[]);
Kegunaan: Membuat TextDraw ( Di Area Layar )
catatan: x dan y adalah posisi text diambil dari pojok kiri atas. Kalo Kamu Pake TextDrawAlignment Ke 3 ( kanan ), Posisi text diambil dari pojok kanan atas. DILARANG! mengosongkan huruf di textdraw! gunakan SPASI ( " " ) Jika Tidak Ingin Mengisi Huruf. Maximal Membuat Textdraw Adalah 1024.
return : id textdraw

native TextDrawDestroy(Text:text);
Kegunaan: Menghapus Textdraw


native TextDrawLetterSize(Text:text, Float:x, Float:y);
Kegunaan: Mengubah Ukuran Font
catatan: Gunakan dengan TextDrawSetProportional jika Anda ingin mengubah Ukuran Spasinya Juga.

native TextDrawTextSize(Text:text, Float:x, Float:y);
Kegunaan: Jika Menggunakan TextDrawUseBox Ini Juga Bisa Mengubah Ukuran Box.


native TextDrawAlignment(Text:text, alignment);
Kegunaan: Seperti Layaknya MS word fungsinya Mengatur Penjajaran Text
catatan: Alignments... left = 0 atau 1 , centre = 2 and right = 3.

native TextDrawColor(Text:text, color);
Kegunaan: Mengubah Warna Textdraw
catatan: menggunakan Warna dengen fomat HEX.

native TextDrawUseBox(Text:text, use);
Kegunaan: Mengisi atau Menghapus Latar Belakang Text [KOTAK]
catatan: Jika use = 1 Penebalan Huruf akan aktif, Jika use = 0 Penebalan huruf Tidak Ada.

native TextDrawBoxColor(Text:text, color);
Kegunaan: Mengubah Warna Latar Belakang Text [KOTAK]
catatan: Warna diatur oleh intensitas alpha (contoh. color 0x000000FF Adalah Warna Hitam, Tanpa Transparan, jika 0x000000AA Adalah warna hitam Dengan Sedikit Transparan).

native TextDrawSetShadow(Text:text, size);
Kegunaan: Membuat Bayangan Pada text
catatan: Bayangan Ada Pada Kanan Bawah text

native TextDrawSetOutline(Text:text, size);
Kegunaan: Membuat Huruf Tebal ( mungkin apalah itu, susah dijelasin ) 
catatan: Warna Tidak Dapat Diubah Jika TextDrawBackgroundColor Telah Digunakan.

native TextDrawBackgroundColor(Text:text, color);
Kegunaan: Mewarnai Latar Belakang Text
catatan: Jika TextDrawSetOutline sizenya Lebih Besar dari 0, Penebalan Text (TextDrawSetOutline) Akan Berubah Jika Menggunakan TextDrawBackgroundColor.

native TextDrawFont(Text:text, font);
Kegunaan: Mengganti Font
catatan: Jika Font Lebih Besar dari 6 Font Tidak Akan Terlihat, dan Jika Lebih Besar dari 16 Bisa Membuat Crash.


native TextDrawSetProportional(Text:text, set);
Kegunaan: Mengatur Spasi ( apa lah itu, minta bantuan mastah aja )
catatan: Dapat Membantu TextDrawLetterSize Agar bisa mengubah spasi.

native TextDrawShowForPlayer(playerid, Text:text);
Kegunaan: Menampilkan Textdraw Ke Player
catatan: Textdraw Tidak Akan Hilang Sampai Menggunakan TextDrawHideForPlayer atau TextDrawHideForAll atau TextDrawDestroy.

native TextDrawHideForPlayer(playerid, Text:text);
Kegunaan: Menyembunyikan Textdraw Untuk Player

native TextDrawShowForAll(Text:text);
Kegunaan: Menampilkan Textdraw Untuk Semua Player.
catatan: Textdraw Tidak Akan Hilang Sampai Menggunakan TextDrawHideForPlayer atau TextDrawHideForAll atau TextDrawDestroy

native TextDrawHideForAll(Text:text);
Kegunaan: Menyembunyikan Textdraw Untuk Semua Player

TextDrawSetString(Text:text, string[]);
Kegunaan: Mengubah Tulisan Di textdraw, Dapat digunakan Setiap Saat
Read more...

Tutorial Implement Dalam Roleplay Chat

0 komentar


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:
Read more...

 

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