REKLAM ALANI

[CS 1.6] Plugin Kodlamada Temel Bilgiler

avatar FewerTheMad Bağışçı
Aktif Üye
4447
#1
Yorumu Paylaş

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 : 
Kod:
#define TASKID 1907
Burada 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.
 
Kod:
new numara
Yukarda 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 = 5
Değişkenimizin değerini 5 yaptık.Peki değeri değiştirmenin birçok yolu vardır.
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 azalir
Değ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:degisken

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
 
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.
 
Kod:
new Float : naber = 4.5

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 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 ] = 120
Yukarı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
 
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.

 
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.
Buradaki sayıları ASCII Karakterlere göre yazıyoz aşağıya ascıı karakter tablosunu koydum.Bakmak isteyen inceleyebilir.
 
[Resim: HrsPjQ.png]

Tabiki bir string yazmanın daha kısa ve pratik yolunu göstereceğim .
 
Kod:
new mystring[7]
copy(mystring, 6, "Selam")
deneme
Aktif Üye

Konuda Ara

2 Yorum

serhat2110

Aktif Üye

Aktif Üye
avatar
serhat2110
19-01-2021, Saat: 15:57
19-01-2021, Saat: 15:57
#2
Yorumu Paylaş
aramızda pluginci varmış haberimiz yokmuş Gülümse eline sağlık

MerT Yılmaz

Aktif Üye

Aktif Üye
avatar
MerT Yılmaz
19-01-2021, Saat: 16:24
19-01-2021, Saat: 16:24
#3
Yorumu Paylaş
Eline Sağlık Güzel Olmuş Gülümse


Konuyu Okuyanlar: