19-01-2021, Saat: 15:29
Bu derste sizlere plugin kodlamadaki temel bilgileri verip birkaç örnek vererek konuyu pekiştirmenizi sağlayacağım.
#include
Bu yazacağınız kodları barındıran bir kütüphanedir.Örnek vermek gerekirse, bir kişinin hpsini değiştirmek istiyoruz bunun codu ise set_user_health( index,health ). Bu komut fun kütüphanesine ait komuttur.Eğer #include fun eklemezsek compilerimiz fonksiyonu tanımıyacaktır.İlerki derslerimde her kütüphaneye ait özellikleri anlatacağım.
#define
Define ise 2 farklı işlevi vardır.1.işlevi bir değişken tanımlamamızı sağlar.
Örnek :
2.işlevi ise kendinize özel komut yaratmanızı sağlar
Örnek
#include
Bu yazacağınız kodları barındıran bir kütüphanedir.Örnek vermek gerekirse, bir kişinin hpsini değiştirmek istiyoruz bunun codu ise set_user_health( index,health ). Bu komut fun kütüphanesine ait komuttur.Eğer #include fun eklemezsek compilerimiz fonksiyonu tanımıyacaktır.İlerki derslerimde her kütüphaneye ait özellikleri anlatacağım.
#define
Define ise 2 farklı işlevi vardır.1.işlevi bir değişken tanımlamamızı sağlar.
Örnek :
Kod:
#define TASKID 1907Burada TASKID' yi 1907 sayısına tanımladık yani pluginin herhangi bir yerine TASKID yazarsak bu 1907 sayını çağıracak anlamına geliyor.
2.işlevi ise kendinize özel komut yaratmanızı sağlar
Örnek
Kod:
#define oldur(%1) user_kill(%1,1)Burada ise oldur adlı bir komut yarattık.Bu komudun işlevi ise idyi öldürmemizi sağlar.
Değişken:
Değişkenler pluginler en önemli yapıtaşlarından biridir.Peki ne işe yarar bu değişkenler ?.
Değişkenler herhangi bir numarayı temsil eder.Eğer bir numara belirtmezseniz değişkenin karşılığı 0 olur.
Değişkenler pluginler en önemli yapıtaşlarından biridir.Peki ne işe yarar bu değişkenler ?.
Değişkenler herhangi bir numarayı temsil eder.Eğer bir numara belirtmezseniz değişkenin karşılığı 0 olur.
Kod:
new numaraYukarda numara adlı bir değişken yarattık.Default değeri 0'dır.
Şimdi bu değişkeninim değerini değişelim.
Kod:
numara = 5Değişkenimizin değerini 5 yaptık.Peki değeri değiştirmenin birçok yolu vardır.
Bu değişken 2 değere sahip olur.Değeri ya true ( 1 ) veya false ( 0 ) olur.Eğer bir değer belirtilmezse değeri false olur.Peki bu değişkenler ne işimize yarar ? Küçük bir örnekle açıklayayayım
Float
Kod:
numara ++ // Değişkeninin değeri 1 artar
numara -- // Değşikeninin değeri 1 azalir
nummara += 5 // Değişkeninin değeri 5 artar
nummara -= 5 // Değişkeninin değeri 5 azalirDeğişkenler bir kaç farklı varyasyonu vardır.Yukarıda anlattığım integer yani tamsayı değişkenleriydi.Şimdi diğer değişken çeşitlerine bakalım.
Bool Kod:
new bool:degiskenBu değişken 2 değere sahip olur.Değeri ya true ( 1 ) veya false ( 0 ) olur.Eğer bir değer belirtilmezse değeri false olur.Peki bu değişkenler ne işimize yarar ? Küçük bir örnekle açıklayayayım
Kod:
#include <amxmodx>
#include <amxmisc>
#include <fun
#include <hamsandwich>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new bool:g_yetki [ 33 ]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
// Bu ham eventi hamsanwich kütüphanesine ait bir fonksiyondur.İleriki derslerimde bu kütüphaneyle
// ilgili dersleri vericeğim şimdilik bu eventin oyuncunun doğduğu zaman çalıştığını bilin.
RegisterHam(Ham_Spawn, "player", "dogunca", 1);
}
public client_connect( id )
{
if(is_user_admin(id) ) // Eğer bağlanan kişinin yetkisi varsa değişken true olacak
{
g_yetki[id] = true
}
else // ama yoksa değeri false olcak.
{
g_yetki[id] = false
}
}
public dogunca( id )
{
if( g_yetki[ id ] ) // Eğer değişken true olursa aşağıdaki komut çalışacak
{
set_user_health( id, get_user_health(id ) + 20 )
}
}Float
Bu değişken çeşidi değer olarak ondalıklı sayı alır.
Diziler ( Arrays )
Diziler birlikte hareket eden değişkenler toplululuğu diyebiliriz yani birden fazla birden değişken kullanmak yerine tek bir değişkenle bu işi yapabiliriz.
Kod:
new Float : naber = 4.5Diziler ( Arrays )
Diziler birlikte hareket eden değişkenler toplululuğu diyebiliriz yani birden fazla birden değişken kullanmak yerine tek bir değişkenle bu işi yapabiliriz.
Kod:
new array[ 3 ]Yukarıdaki kodun anlamı değişkeninin içinde 3 farklı değişken olduğunu gösterir.
Kod:
new array[ 3 ]
array[ 0 ] = 200
array[ 1 ] = 150
array[ 2 ] = 120Yukarıda gördüğnüz gibi ilk dizi her zaman 0 ile başlar ve son değişkenimiz ise 1 eksiği olur.
Şimdi bir örnek gösterelim.
Çoğu pluginde gördüğünüz
Neden 33 ?
1 - ) Bir serverin maximum oyuncu sayısı 32 dir.
2 - ) Bizde her oyuncunun kaç kill aldığını öğrenmek istiyoruz.
3 - ) new killer [ 32 ] ve her oyuncuyu öğrenmek için killer [ id - 1 ] yazmalıyız.
4 - ) Ama yazarken 32 yerine 33 ü kullanırız çünkü maxplayers + 1 = 33
5 - ) Böylece new killer[ 33 ] yazarsak killer[ id ] kullanabiliriz.
Şimdi bir örnek gösterelim.
Çoğu pluginde gördüğünüz
Kod:
killer[ 33 ]Neden 33 ?
1 - ) Bir serverin maximum oyuncu sayısı 32 dir.
2 - ) Bizde her oyuncunun kaç kill aldığını öğrenmek istiyoruz.
3 - ) new killer [ 32 ] ve her oyuncuyu öğrenmek için killer [ id - 1 ] yazmalıyız.
4 - ) Ama yazarken 32 yerine 33 ü kullanırız çünkü maxplayers + 1 = 33
5 - ) Böylece new killer[ 33 ] yazarsak killer[ id ] kullanabiliriz.
String
String ise harf ve sembolleri belirtmemizi sağlar.
Buradaki sayıları ASCII Karakterlere göre yazıyoz aşağıya ascıı karakter tablosunu koydum.Bakmak isteyen inceleyebilir.
![[Resim: HrsPjQ.png]](https://i.imgyukle.com/2021/01/19/HrsPjQ.png)
Tabiki bir string yazmanın daha kısa ve pratik yolunu göstereceğim .
String ise harf ve sembolleri belirtmemizi sağlar.
Kod:
new mystring[ 6 ]
mystring[ 0 ] = 83 // S
mystring[ 1 ] = 101 // e
mystring[ 2 ] = 108 // l
mystring[ 3 ] = 97 // a
mystring[ 4 ] = 109 // m
mystring[ 5 ] = 0 // Bunun 0 olmasi stringin sona erdiği anlamına gelir.![[Resim: HrsPjQ.png]](https://i.imgyukle.com/2021/01/19/HrsPjQ.png)
Tabiki bir string yazmanın daha kısa ve pratik yolunu göstereceğim .
Kod:
new mystring[7]
copy(mystring, 6, "Selam")