⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
⭐ Buraya kendi metin reklamınızı vererek binlerce kişiye ulaşın! ⭐
Sponsor Görsel 2

Webailesi Portal Sistemi

Yazar: Anıl Can
18-01-2020, 23:08
Plugin Adı:  Fortnite Tarzı Damage

Plugin Yazarı : GAMMA CASE

Plugin Versiyonu: 1.2.0

Plugin Açıklaması :  Bu eklenti vurduğun hasarı fortnite oyunundaki gibi gösteririr.Aşağıya örnek video koydum bakabilirsiniz.Eke koyduğum tüm dosyaları doğru koyduğunuza emin olun.




Rar Şifresi :
.rar fortnite_hits_1.2.0.rar (Dosya Boyutu: 64,16 KB | İndirme Sayısı: 40)
Yazar: WxTimer
18-01-2020, 23:06
Yorumlar 114
Tasarım yapımcısı: WxTimer
Tasarım ismi: WebAilesi Çift Renk İcon
Tasarım sürümü: v4
Kullanım alanları & önemli bilgileri
  • Jailbreak Ts3 adreslerinde kullanılabilir.
Tasarım Görüntüsü
r0PbPP
İndir;

.rar webailesi icon.rar (Dosya Boyutu: 214,22 KB | İndirme Sayısı: 112)


Yazar: Anıl Can
18-01-2020, 23:04
Admin Ekleme

CS:GO' daki admin ekleme sistemi 1.6 sürümüne göre daha gelişmiş bir yapıdadır ve admin eklemenin birden fazla yolu vardır.Adminlikler steam id, isim ya da ipsine göre eklenebilir.Size şimdi admin eklemenin 2 yolunu göstereceğim.

                   1-) Hızlı Admin Ekleme
Bu yolda adminlik eklemek daha basittir.Yöntem ise /addons/sourcemod/configs/admin_simple.ini girerek admin ekleyebilirsiniz.

  Örnek:
 
PHP Kod:
"STEAM_0:1:16" "abc" // Bu steam idye göre adminlik
"NoPain" "abc" "asd123" // İsme göre yazınca passaword koymanız gerekmetedir.
"!127.0.0.1" "99:z"    //Buda ipye göre adminlik 
             

                         Admin Yetki Harfleri ve Anlamları

Adminlik yazarken yazılan her harf bir yetkiye karşılık gelmektedir.Default olarak yetki harflerinin karşılığı aşağıdaki gibidir.

resarvation                 a               Slot erişim yetkisi
generic                        b               Genel Admin yetkisi( Adminler için gerekli yetki )
kick                              c               Oyuncu atma yetkisi
ban                              d               Oyuncu banlama yetkisi
unban                         e                Ban kaldırma yetkisi
slay                             f                 Slap/Slay yetkisi
changemap              g                 Map değiştirme yetkisi
cvar                            h                Çoğu cvar ayarına erişim yetkisi
config                         i                 Config dosyası çalıştırma yetkisi
chat                            j                 Özel say yetkisi
vote                           k                 Oylama yetkisi
password                  l                  Servere şifre koyma yetkisi
rcon                           m               Rcon komutlarına erişim yetkisi
cheats                       n                sv_cheats cvarını değiştirme ve sv_cheatsle çalışan komutlara erişim yetkisi
roots                          z                Tüm komutlara erişim yetkisi
custom1                    o                Özel group1 yetkisi
custom2                    p                Özel group2 yetkisi
custom3                    q                Özel group3 yetkisi
custom4                    r                Özel group4 yetkisi
custom5                    s                Özel group5 yetkisi
custom6                    t                Özel group6 yetkisi

                        Dokunulmazlık
Dokunulmazlık olayı 1.6dan daha gelişmiştir.Dokunulmazlık levelleri vardır.Örnekle açıklamak gerekirse bir adminin dokunulmazlık seviyesi 10 başka adminin ise 5 olsun.Yüksek olan düşük olana komut yollayabilir( slay, slap, kick vb ) ama düşük olan yüksek olana komut yollayamaz.

                  2-) Gelişmiş Adminlik Yazımı

Bu yolla adminlikler blok blok yazılır./addons/sourcemod/configs/admins.cfg yoluyla dosyaya ulaşabilirsiniz.


PHP Kod:
Admins
{
    
"NoPain"
    
{
        
"auth"        "steam" // Hangi türde adminlik yazdığımız belirtir
        
"identity"    "STEAM_0:1:2345"  //Steam id
        
"flags"        "abcdef"  // Yetki
        
"immunity"    "5"     // Dokunulmazlık seviyesi
    
}
    
"CsAilesi"
    
{
        
"auth"        "name" // Hangi türde adminlik yazdığımız belirtir
        
"identity"    "CsAilesi"  //isim
        
"password" "asd123" // Şifre
        
"flags"        "abcdef"  // Yetki
        
"immunity"    "3"     // Dokunulmazlık seviyesi
    
}

Yazar: Anıl Can
18-01-2020, 23:02
     SourcePawn csgo pluginleri yapmakta kullandığımız bir dildir.SourcePawn Kurulum bu konuya bakarak bilgi sahibi olabilirsiniz. Derse başlamadan önce eğerhiç bir kodlama bilginiz yoksa bazı kavramlar öğrenmeniz gerekecektir.Bu kavramları CS 1.6 ile benzer olduğu için Temel Kavramlar konusuna bakarak bilgi sahibi olabilirsiniz.

                                          Kütüphaneler Nedir ? Ne İşe Yarar? (Include)
      Kütüphaneler sourcepawnda önceden hazılanmış fonksiyonları, stokları ve methodları ( bunu ileride anlatacağım ) içeren dosyalardır.Bu hazır kodları kullanmak için bu kodları içeren dosyaları çağırmamız gerekir.Bunu aşağıda gösterildiği şekilde yaparız.

      #include <sourcemod>

      Yukarıdaki kütüphane sourcepawndaki ana kütüphanedir.Bu kütüphane olmadan hiç bir plugini çalıştırmazsınız.SourcePawndaki tüm kodlara SourceMod API linkine tıklayarak ya da manuel olarak addons/sourcemod/scrpiting/include dizininde bulabilirsiniz.

                                        Plugine Bilgi Ekleme
     Yazdığınız pluginlere bazı bilgiler eklemek gerekmektedir.( Plugin Adı,Plugin Açıklaması,versiyonu vb).Yapımı basit ve kolaydır.

public Plugin myinfo =
{
    name = "Plugin Dersi 1" 
    author = "Anil Can"
    desciption = "Plugin dersi örnegi" 
    version = "1.0" 
    url = "https://forum.webdiyo.com" 
}
     
                                   Değişken Tanımlama ve Değer Atama
     
      Değişenler kodlamanın temelini oluşturmaktadır.SourcePawnda değişken tanımlanırken 1.6ya göre daha gelişmiştir.Değişkenler türlerine göre başına tag alırlar.Örnek vermek gerekirse

     int variable1 = 32
     float varible2 = 5.0
     char variable3[] = "Hello"
     bool variable4 = false
     Handle file = OpenDirectory( "addons/sourcemod/configs/maplist.cfg" Handle hakkında ayrı bir derste bilgi vereceğim

    Değişken isimlendirme yaparken aşağıdakı kurallara uygun hareket etmelisiniz.
   
    1-) Değişken isimleri yalnızca alfabetik karakterle başlayabilir.
    2-) Değişkenlerde büyük küçük harf duyarı vardır.Yani int asd ve int ASD 2 farklı değişkendir.
    3-) Değişkenlerde ilk karakter hariç rakam ve "_" kullanabilirisiniz ama bunların haricinde karakter kullanamazsınız.
    4-) Değişken isimlendirirken boşluk bırakamazsınız.
    5-) Değişkene verdiğiniz isimin bir anlam bağlantısı olmasına özen gösterin.Örnek vermek gerekirse "hosgeldin" şeklinde bir stringi değişkene atarken char welcome[] = "Hosgeldin" şeklinde yapmanızı öneririm.Yoksa sonra hem plugini okuyan için hem de sizin için zaman kaybı oluşturur.

                     Array Terimi( Diziler )

     Bir çok değerin tek bir değişkenle tanımlandığı değişken çeşididir.

    int numbers[5] = {3,6,9,12,15}
    float vector[3] = {89.12 , 55,.43 , 67,12}

   Şeklinde değişkenleri tanımlarız.Peki bu değişkenleri nasıl yazdığımız scriptlerde ulaşabiliriz.Her dizideki elemanın bir index değeri vardır.İndexi dizideki her elemanın o dizide karşı gelen bir nevi kimlik numarası diyebiliriz.Örnek vererek bu kavramı açıklayayım. numbers[ 1  ]  6'ya karşılık gelecektir.1 değeri bizim index değerimizdir.Şimdi aklınıza gelen index 1 neden dizideki 2. değişkene geldi diyebilirsiniz.Sebebi ise index 0 tan başlar ve eleman sayısının 1 eksiğine kadar devam eder yani son elemanın indexi 2 dir.Eğer numbers[5] yazarsanız plugininizde hata alırsınız.

                   String Terimi

    String  karakterleri depolayabildiğimiz bir değişken türüdür.Gösterimi aşağıdaki gibidir.
   
   char my_string[] = "Hello"
   char your_string[] = 'Welcome'
    Array gibi string değişkenlerinde indexleri vardır.my_string[4]  o harfine, your_string[5] m harfine karşılık gelmektedir.Ama bir farkları vardır.Stringlerin son indexi 0 a karşılık gelir.Yani my_string[5] ve your_string[7] değeri 0'dır.

                                           Yorum Ekleme

    Bazen yazdığınız puginleri diğer kullancıları bilgilendirmek veya pluginin gelişimi hakıından bilgi vermek için yorum ekleyebiliriz.Bunun koda bir etkisi yoktur.Eklentiyi kullanacak kişiye rahatlık sağlar.Yorum eklemenin 2 yolu vardır.Birinicisi yorumunuzu eklemeden önce // işaretini ekleyerek yapabilirsiniz.

  // Örnek yorum yazımı
   
    Ama bu sadece tek satıra yorum eklemenizi sağlar. Eğer yorumunuz birden fazla satırdan oluşuyorsa aşağıdaki yapıyla yorumunuzu ekleyebilirsiniz.

/* Örnek
yorum
yazımı
*/
                                    Fonksiyonlar
    Fonksiyonlar pluginimizde belirli kod parçacıklarıyla oluşturlmuş bir aksiyon gerçleştiren yapılardır.SourceModun içerisinde tanımlanmış fonksiyonlar olduğu gibi kendi fonksiyonlarını yaratabilirsiniz.Bazı fonsiyonlarda parametre olmazken bazı fonsiyonlarda parametre bulunur.Tüm fonksiyonlar bir değere dönmelidir.Pluginlerimiz başlatan fonksiyon OnPluginStart dır.

public void OnPluginStart()
{
     
}
    Bir de parametresi olan bir fonskiyon OnClientConnected fonksiyonunu göstereyim.

public void OnClientConnected( int client )
{

    Ama SourceMod 1.7 ile birlikte void anahtar kelimesi kullanıldığında fonkisyonlardaki bir değere dönme zorunluluğunu ortadan kaldırır.Fonksiyonlarla ilgili ayrıntılı bilgiyi ilerideki derslerde sizlere anlatacağım.

}
                  Yerel ve Global Değişkenler

     Eğer bir değişken bir fonskiyonun bir karşılaştırma yapsının  veya bir döngünün içerisinde tanımlanırsa bu değişken yerel değişken (  local variable ) olur ve koddan dışarı çıktığımızda o değişkenin bir  anlamı kalmayacaktır.Global değişkenler ( global variable ) ise kodunuzun her yerde tanımlı bir değişkendir. Örnek vermek gerekirse

int variable1 = 5
public void OnClientConnected( client  )
{
     int variable2 = 10
}
   variable1 bir global değişken olarak oluşturduk ve bu değişkeni script dosyamızın isteğimiz yerinde kullanabiliriz.Fakar variable2 sadece oluşturulduğu fonkisyonun içinde tanımlıdır.Fonksiyonun dışında çıktığımız zaman bu değişkeni kullanamayız.

                                           Operatörler
Kodları yazarken çeşitli operatörlerden yararlanırız.Matematik operatörleri karşılaştırma operatörleri vb.

int a = 5
int b = 3
int c = 10
a * b = 15
a + b = 9
c / a = 2
c % b = 1 ( Buradaki operatör c değerinin b değerine bölündükten sonra kalan değerini verir.)
a - b = 2

Operatörleri kullanarak değişkenlerin değerlerini değiştirebiliriz.Bazı dillerin aksine sourcemod dinamik bir yapıya sahiptir.

a *=3  ( a artık 5*3 = 15 değerine değişti )
a += 4  (  a artık 5 + 4 = 9 değerine değişti )

Bazı operatörler ise 2 değişkeni karşılaştırır.

!=    eşit değildir
==   eşittir
<      küçüktür
>      büyüktür
<=   küçük veya eşittir
>=   büyük veya eşittir
                              
                       Karşılaştırma Yapıları ( if else )

      Karşılaştırma yapıları kodlarda çok sık  kullanacağımız ve önemli bir yapılardır.Bu yapılarda verilen durumları sorgulayıp ona göre kodun çalışmasınız sağlar.Örnek vererek anlamanızı kolaylaştıralım.

int a = 5
int b = 10

ifa > b )
{
         PrintToChatAll( "%i sayısı %i sayısından büyüktür", a, b )
}
else
{
        PrintToChatAll( "%i sayısı %i sayısından küçüktür", a, b )
}
       Önce % yapısını açıklayayım.Bu yapı değerleri döndürmemizi sağlar.Bu örnekteki %i integer değerleri döndürmemiz sağlar.

 %f    Ondalıklı sayıları döndürmemizi sağlar.
 %s    Karakterleri döndürmezi sağlar.
 %i     Tam sayıları döndürmezi sağlar.
 %T    Pluginimiz eğer multilanguage( birden fazla dil ) sahipse translations dosyasınını içindeki text dosyasını döndürür.

     Eğer if yapısının içerisindeki ifade doğru ise 1. kodu eğere yanlış ise else yapısından sonraki kodu çalıştıracaktır.
                      Statik Değişkenler( Static Variable )

        Statik değişkenler normal değişkenlerden farkı bir kez değer aldıktan sonra bu değerini değiştiremezsiniz.Eğer kodlarınızda değiştirmeyeceğiniz değişkenler var ise statik olarak kullanarak hafızadan kazanç sağlarsınız.

static int value1 = 10
Yazar: WxTimer
18-01-2020, 23:01
Tasarım yapımcısı: WxTimer
Tasarım ismi: WebAilesi Yeşil
Tasarım sürümü: v3
Kullanım alanları & önemli bilgileri
  • Jailbreak Ts3 adreslerinde kullanılabilir.
Tasarım Görüntüsü
JVPgm5
İndir;

.rar webailesiyeşil.rar (Dosya Boyutu: 79,39 KB | İndirme Sayısı: 89)


Yazar: Anıl Can
18-01-2020, 23:00
                                                        FONKSİYONLAR

    Bir önceki derste fonksiyonların ne olduğunu anlatmıştım. Eğer o dersi okumadaysanız Ders 1 linkine tıklayarak ulaşabilirsiniz.Şimdi yapacağımız kendi fonsiyonlarımızı nasıl kurabiliceğimizi göstereceğim.

    Şimdi elimizdeki bir derece cinsinden açıyı bir grada dönüşütüren bir fonksiyon yazalım.Fonksiyonun döneceği değeri float ( integerde olabilir ama açılarda float almak daha ksin sonuç verir.) cinsinden olacağı için fonsiyon şu şeklide başlıyacak.

float DegreeToGrad( float degree )
{
   
}
    Fonksiyonumuzu oluşturduk.Şimdi bir grad değeri veren bir değişken yaratalım.Sonra degree parametresini kullanarak gradı bulalım.

float DegreeToGrad( float degree )
{
      float grad =  ( degree * 10.0  ) / 9.0
}
    Şeklinde grad değerini bulduk.Son yapacağmız işlem ise fonksiyonu bu değere döndürmesini sağlamaktır.

float DegreeToGrad( floar degree )
{
      float grad = ( degree * 10.0 ) / 9.0
      return grad
}
     Şimdi oluşturduğumuz fonksiyonu nasıl kullanacağımıza dair bir örnek plugin yazalım.Konsolo sm_degree diye bir konsol komudu oluşturup bu fonksiyonu kullanalım.

PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 name "Functions",
 author "Anil Can",
 description "Sample of Functions",
 version "1.0.0",
 url "https://forum.webdiyo.com"
}
public 
void OnPluginStart( )
{


     
      Bu yapıyı bir önceki derste anlamıştım.Anlamayanlar bir öncekir derse bakabilir.Şimdi konsol komudu eklemek için RegConsoleCmd komudunu kullanacağız.


PHP Kod:
public void OnPluginStart( )
{
 RegConsoleCmd"sm_degree"CommandDegree );

    Şimdi bu komut 1.6 register_clcmd ye göre daha gelişmiştir.Bu komudu konsola direk sm_degree ile çalışmakla beraber chata !degree /degree ile çalışmaktadır.Yani ilave bir chat komudu eklemenize gerek yoktur.Kullanıcı sm_degree komudunu çalıştırdığında CommandDegree publicini çalıştıracak.

PHP Kod:
public Action TestFloatint clientint args )
{


    
      İlk parametre kullanıcının indexi ikinci parametre ise sm_degree komudundan sonraki kaç adet terim kullanıldığına döner.Örnek vermek gerekirse kullanıcı sm_degree ali 23 webdiyo diyo bir komud girerse args değeri 3'e eşit olacaktır.Şimdi kullanıcı eğer eksik veya fazla parametre girerse eklentiyi durdurup kullanıcıya hata mesajı verelim.

PHP Kod:
public Action TestFloatint clientint args )
{
 ifargs != )
 {
 ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
 return Plugin_Handled;
 }

Şimdi Plugin_Handled plugini durdurmamızı sağlar ve kodun ileriye gitmesini engeller.4 çeşit return değerimiz vardır.

     Plugin_Continue   Çağrıyı durdurur ama plugini çalışması devam eder.
     Plugin_Changed    Koddaki girdi veya çıktı değerleri yeniden değer vermenizi sağlar.
     Plugin_Handled     Çağrıyı durdurur hem de plugin çalışması durdurur.
     Plugin_Stop           Plugin_Handled farkı ilerideki komutları da durdurmanızı sağlar.

    Kullanıcının yazdığı değeri bir değişkene kaydedelim.Kullanıcının yazdığırı değeri almak için GetCmdArg komudunu kullanacağız.

PHP Kod:
public Action CommandDegreeint clientint args )
{
 if( 
args != )
 {
 
ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
 return 
Plugin_Handled;
 }
 
char arg32 ];
 
GetCmdArg1argsizeofarg ) )

    
     Şimdi komuttaki ilk paramtere kaçıncı argümanı aldığımızı belirler.Örnek verelim ss_heal nick 100 diye bir komut girildi.Eğer ilk parametreyi 2 olarak girersek 100 argümanı alıcaktır.2.parametre argümanın depolanacağı değişken, 3. parametre ise argümanın uzunluğu hesaplar.Not bu komut argümanı otomatik string olarak alır.sizeof otomatik stringin uzunluğunu hesaplanmasını sağlar. Değerimiz string olduğundan değişkeni float türüne çevirmemiz gerekiyor. Bunun için 2. değişken oluşturup bunu floata çevireceğiz.

PHP Kod:
public Action CommandDegreeint clientint args )
{
 if( 
args != )
 {
 
ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
 return 
Plugin_Handled;
 }
 
char arg32 ];
 
GetCmdArg1argsizeofarg ) )
 
float degree StringToFloatarg );

     Şimdi kodumuzun son kısmına geldik. Derece değerini grada çevirip kullanıcıyı bilgilendiren bir bilgi mesajı verelim.

PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 
name "Functions",
 
author "Anil Can",
 
description "Sample of Functions",
 
version "1.0.0",
 
url "https://forum.webdiyo.com"
}
public 
void OnPluginStart( )
{
 
RegConsoleCmd"sm_degree"CommandDegree );
}
public 
Action CommandDegreeint clientint args )
{
 if( 
args != )
 {
 
ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
 return 
Plugin_Handled;
 }
 
char arg32 ];
 
GetCmdArg1argsizeofarg ) )
 
float degree StringToFloatarg );
 
PrintToChatclient"%f degree is equal to %f grad"degreeDegreeToGraddegree ) );
 return 
Plugin_Handled;
}

float DegreeToGradfloat degree )
{
 
float grad = ( degree 10.0 ) / 9.0;
 return 
grad;

  
     İşte basit bir komutla girdiğmiz dereceyi grada çeviren bir plugin yazdık.Bu plugini eke koycam isteyenler incelebilir.
  
                                     DÖNGÜLER( While, for, do while yapısı )

    Bazen fonskiyonlardan işlemleri tekrar tekrar yapılması gerekir.Bunun için biz döngüleri kullanırız.Şimdi 0 dan 10 a kadar olan tüm doğal sayıların toplamını yazan bir fonksiyon yazacağım.Bunu ilkini döngü kulllanmadan yazacağım.

PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 
name "Fonkisyonlar",
 
author "Anil Can",
 
description "Fonksiyon Ornegi 2",
 
version "1.0.0",
 
url "https://forum.webdiyo.com"
}
int g_sum 0;
int g_count 0;
public 
void OnPluginStart( )
{
 
RegConsoleCmd"sm_sum"CommandSum );
}
public 
Action CommandSumint clientint args )
{
 if( 
args != )
 {
 
ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
 return 
Plugin_Handled;
 }
 
char arg32 ];
 
GetCmdArg1argsizeofarg ) );
 
int value StringToIntarg );
 
 
SumIntegervalue );
 return 
Plugin_Handled;
}
int  SumIntegerint g_value )
{
 
g_count += 1;
 
g_sum += g_count;
 if( 
g_count == g_value )
 {
 
PrintToChatAll"%i'a kadar sayilarin toplami %i'dir."g_valueg_sum );
 
g_sum 0
 
}
 else
 {
 
SumIntegerg_value );
 }

     Şimdi bu şeklide yazılan scriptte fonkisyonun 10 kere çağırılmasına neden olur ve hafızda fazla yer kaplamsına neden olur.Böyle tekrar içeren yapılarda döngüleri kullanırız.Aynı fonksiyonu şu şekilde yazabiliriz.



PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
name "Fonkisyonlar",
author "Anil Can",
description "Fonksiyon Ornegi 3",
version "1.0.0",
url "https://forum.webdiyo.com"
}
int g_sum 0;
public 
void OnPluginStart( )
{
RegConsoleCmd"sm_sum"CommandSum );
}
public 
Action CommandSumint clientint args )
{
if( 
args != )
{
ReplyToCommandclient"Eksik veya fazla terim yazdiniz" );
return 
Plugin_Handled;
}
char arg32 ];
GetCmdArg1argsizeofarg ) );
int value StringToIntarg );

SumIntegervalue );
return 
Plugin_Handled;
}
int  SumIntegerint g_value )
{
for( 
int i 0<= g_valuei++ )
{
g_sum += i;
}
PrintToChatAll"%i'a kadar sayilarin toplami %i'dir."g_valueg_sum );
g_sum 0

    Gördüğünüz gibi fonksiyonu birden fazla çağırmak yerine tek bir çağırmada hallettik.Şimdi döngünü nasıl yaıldığını ve nasıl çalıştığını anlatacağım.1. parametre değişkeni tanımladığımız bölümdür.2. paramtere ise durumun kontrol edildiği parametredir.Son parametre ise 2. paramteredeki durum sağlanıyorsa işlenen paramteredir.Şimdi örneği açıklamak gerekirse 10 a kadar sayıların toplamını veren değeri bir değişkene atadım.İlk eleman 0 son eleman ise kullanıcının girdiği değer şeklinde yazıldı.For yapısında 1. dönüşünde sum değişekininin i değeri kadar artti( yani i++= 1 ).Yani sum değişkeni değeri 1 oldu.2. dönüşünde gene aynı şekilde olacaktır. sum değereri i kadar artacak( 1 +2 = 3).Şeklinde devam edecektir.En sonunda döngünden çıkınca bir bilgi mesajı verdik ve g_sum global bir değişken olduğundan değerini 0 atadık.

     while yapısı for döngüsüne göre daha basittir sadece tek bir paramtereye sahiptir.Parametetredeki değer false olana kadar döngü devam eder.

while( durum koşulu )
{
     //Kod block kısmı
}
     do  while döngüsü tek farkı değeri false olsa bile en az içerisindeki 1 kez çalıştırır.

do
{
     //Kod block kısmı
}
while( durum koşulu )
Yazar: Anıl Can
18-01-2020, 22:59
     
     Bu rehberde Notepad++ ile bir cs go eklentisinin nasıl compile edileceği hakkında bilgiler yer almaktadır.Öncelikle 
      1-) Notepad++ indir bu linkten notepad++ indirip kurun.
      2-) Eklentiler/Eklentiler yöneticisi/Uygun kısmında NppExec adlı eklentiyi kurun ve programı yeniden başlatın.
      3-) Sourcemod indir bunu indirin ve nereye kurmak istiyorsanız oraya kurun.
      4-) Notepad++ F6 tuşuna basın( belki sizde farklı bir tuş olabilir.Öğrenmek için Çalıştır/Kısayolu değiştir/Eklenti Komutları/Execute bakarak öğrenebilirsiniz.).


      5cb5cb2a2bc8c_asd123

Resimde örneğini verdiğim şekilde olacak.

SET compiler = C:\cs_go\csgo\addons\sourcemod\scripting\spcomp.exe  ( Compilerin bulunduğu dosya )

SET include = C:\cs_go\csgo\addons\sourcemod\scripting\include  (Kütüphanelerin bulunduğu dosya )

SET output = C:\Users\anilc_000\Desktop\$(NAME_PART).smx ( Compile olan dosyalrın nereye gideceği yol ama sakın $(NAME_PART).smx bu kısmı unutmayın )



NPP_SAVE 
"$(compiler)" -i"$(include)" -o"$(output)" "$(FULL_CURRENT_PATH)"  ( Burayı değiştirmeyin )
Yazar: Pizza
18-01-2020, 22:59
Yorumlar 249
Tasarım Yapımcısı: Pizza
Tasarım İsmi: Tesla S
Tasarım Sürüm: 1.0
Kullanım Alanları & Önemli Bilgileri;
  • Genel CS 1.6 Teamspeak 3 Adresleri

Tasarım Görüntüsü:
kMVPPq


Rar Şifresi:


Yeni sürüm;
.rar Tesla TS3 Banner.rar (Dosya Boyutu: 6,39 MB | İndirme Sayısı: 231)
Yazar: WxTimer
18-01-2020, 22:50
Forum: TS3 - Yedek
Yorumlar 134
Yedek ismi: İncold Jailbreak Yedek
Yedek yapımcısı:  WxTimer & Raskoln.
Yedek sürümü: v2
Yedek testi: Yapıldı,Başarılı.
Kullanım Alanları & Önemli Bilgiler;
  • TS3 JaiLBreaK
Ekran görüntüsü & video
3Oy440
NLMQQa
İndir;
.rar webailesiincold.rar (Dosya Boyutu: 17,54 KB | İndirme Sayısı: 149)
Yazar: Anıl Can
18-01-2020, 22:48
                                                                             Komut Oluşturma

     Bu derste sourcemod'da nasıl kullanıcı ve admin komudu oluşturmayı göstereceğim.Şimdi kullanıcının kendi ipsini öğrenmesini sağlayan bir eklenti yazalım.!myip yazınca kullanıcı kendi ipsini öğrensin.Bunun için bir konsol komudu oluşturmamız gerekiyor.RegConsoleCmd komudunu kullanarak oluşturalım.

PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 
name "IP",
 
author "Anil Can",
 
description "Kullanıcı Kendi IP ogrenir",
 
version "1.0",
 
url "https://forum.webdiyo.com/newthread.php?fid=99"
}
public 
void OnPluginStart( )
{
 
RegConsoleCmd"sm_myip"MyIp"Kendi ip numaranızı öğrenirsiniz" );

       Sourcemod da amxmodx e göre farkı say komudu için ekstra bir komut girmenize gerek yoktur.Bu komutla !myip , .myip veya konsola sm_myip ile kullanıcı komudu çalıştıracaktır.1. parametre kullanıcının gireceği komut, 2. paramtetre komut girildikten sonra çalışacak fonksiyon ismi,  3. parametre ise komut hakkında bilgi vermedir.Şimdi yapacağımız şeyler kullanıcı eğer sm_myip den sonra bir arguman girerse plugini durdurup doğru kullanımı gösterelim.GetClientIp ile kullanıcının ipsini alıp print edelim.


PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 
name "IP",
 
author "Anil Can",
 
description "Kullanıcı Kendi IP ogrenir",
 
version "1.0",
 
url "https://forum.webdiyo.com/newthread.php?fid=99"
}
public 
void OnPluginStart( )
{
 
RegConsoleCmd"sm_myip"MyIp"Kendi ip numaranızı öğrenirsiniz" );
}
public 
Action MyIpint clientint args )
{
 if( 
args )
 {
 
ReplyToCommandclient"Kullanımı <sm_myip>" );
 return 
Plugin_Handled;
 }
 
char buffer32 ];
 
GetClientIPclientbuffersizeofbuffer ) );
 
PrintToChatclient"Senin IP NO : %s"buffer );
 return 
Plugin_Handled;

    
      Böylece pluginimiz bitti.Kullanıcı !myip yazınca kendi ipsini öğrendiği bir eklenti yazdım.Şimdi ise bir admin komutu nasıl yapılacağına dair bir örnek plugin yazalım.Şimdi bir respawn plugini yazalım.Bunun için RegAdminCmd komudunu kullanacağız.
PHP Kod:
#include < sourcemod >

public Plugin myinfo =
{
 
name "Revive",
 
author "Anil Can",
 
description "Ölü oyuncuları canlandırma",
 
version "1.0",
 
url "https://forum.webdiyo.com/newthread.php?fid=99"
}
public 
void OnPluginStart( )
{
 
RegAdminCmd"sm_rev"Admn_ReviveADMFLAG_SLAY"Ölü oyuncuları revlemenizi sağlar" );

      Şimdi komudumuzu yarattık.Komuttan sonraki yazdığımız ismi GetCmdArg komuduyla yakalıyacağız.Bu komutla ilgili önemli bir özellik var.Bu komut alınan verileri stringe çevirir.Eğer bir sayı değeri kullanmak istiyorsanız daha sonra bu değeri çevirmeniz gerek fakat biz zaten string isteiğimiz için sorun yok.Adminin yazdığı nick otomatik tanımlayacak komut kullanacağız.FindTarget komuduyla hedefimizi yakalayacağız.Fakat eğer hedef yakalama başarısız olduysa bunu bir if koşuluyla kontrol edip durdurualım.Ayrıca sadece ölü oyuncuları canlandıralım bu komutla.O yüzden 2. if koşulu oluşturalım.Kodumuz aşağıdaki gibi olacaktır.

PHP Kod:
#include < sourcemod >
#include < cstrike >

public Plugin myinfo =
{
 
name "Revive",
 
author "Anil Can",
 
description "Ölü oyuncuları canlandırma",
 
version "1.0",
 
url "https://forum.webdiyo.com/newthread.php?fid=99"
}
public 
void OnPluginStart( )
{
 
RegAdminCmd"sm_rev"Admn_ReviveADMFLAG_SLAY"Ölü oyuncuları revlemeniz sağlar" );
}
public 
Action Admn_Reviveint clientint args )
{
 if( 
args )
 {
 
ReplyToCommandclient"<sm_rev> nick " );
 return 
Plugin_Handled;
 }
 
char arg32 ], nameMAX_NAME_LENGTH ];
 
GetCmdArg1argsizeofargs ) );
 
int target FindTargetclientarg );
 if( 
target == -)
 {
 
ReplyToCommandclient"Oyuncu bulunamadı." );
 return 
Plugin_Handled;
 }
 if( 
IsPlayerAlivetarget ) || !IsClientConnectedtarget ) )
 {
 
ReplyToCommandclient"Sadece ölü oyuncuları canlandırabilirsin." );
 return 
Plugin_Handled;
 }
 
CS_RespawnPlayertarget );
 
GetClientNameclientnamesizeofname ) );
 
PrintToChatAll"%s %N adlı yetkili tarafından canlandırıldı."nameclient );
 return 
Plugin_Handled;

      GetCmdArg Kullanımı
Örnek vererek anlatıyım. Kullanıcı sm_haydar ali 3  diye komut girdi.Dediğim örnek yukarıdaki örnekten bağımsızdır.Fonkisyonun içindeki int args girilen tüm ifadeyi alır.GetCmdArg ile biz bunu parçalara  ayırırız.İlk parametreyi 0 girersek "sm_haydar", 1 girersek "ali" 2 girersek ise "3" ü alır.Dikkat etmeniz gereken durum ise  tüm ifadeler string türünde alınır.2. parametre ise depolanacağı değişken ve 3. değişken ise stringin maksimum uzunluğu.sizeof otomatik stringin uzunluğunu hesaplar.

   Burada kafanızı karıştırabilecek kısım %N olan bölüm olabilir.Çünkü bu format şekli 1.6'da mevcut değil.%N clientin ismini çevirmemizi sağlayan bir dönüşümdür.Şimdi komudumuz düzgünce çalışıyor fakat pratik değil.Eğer topluca canlandırmak isteğimizde bu komut işe yaramazdır.Bunu yapmamızı sağlayan tek bir komut vardır.ProcessTargetString komuduyla hem tek tek hemde topluca komud uygulamamız sağlar.Bu şekile dönüştürmeden önce multiplelanguage( çokludil ) pluginlerin uzantısı olan translation dosyaları nasıl oluşurulur onu anlatmam gerekiyor.

                                               MultiLanguage Pluginler
MultiLanguage pluginler eklentinizdeki chat menu vs. kısmı bir çok dilde görüntülenmesini sağlar. Plugine entegre etmeden önce bir translation textin nasıl olması gerektiğini anlatacağım.Bu dosyalar key-value( anahtar değer ) formatındadır.


5ce6b98686a98_deneme
Şeklinde oluşturulur.Eğer döndürelecek bir kısım varsa ( %s %i ) gibi bunu eklemenin  yöntemi ise

5ce6bff4613f0_dcf

       Bu şekilde format yapısı yapılır bu formatların numaralandırması pluginde yazılan sıraya bağlıdır.Şimdi ise pluginde nasıl yapılcağını anlatalım.İlk Önce bu dosyları yükletmemiz gerekir.Bunun için ise  LoadTranslations(  "Dosya İsmi"komudunu kullanacağız.Print ederken ise ilk örnekteki "Welcome" bizim anahtar kelimemizdir.Pluginde şu şekilde olacaktır.PrintToChat( client, "%t", "Welcome" ). Görüldüğü üzere %t Translation kısmını döndürür.

       Şimdi örneğimize geri dönersek şimdi pluginimize translation kısımlarını ve toplu komut ekliyoruz.


PHP Kod:
#include < sourcemod >
#include < cstrike >

public Plugin myinfo =
{
name "Revive",
author "Anil Can",
description "Ölü oyuncuları canlandırma",
version "1.0",
url "https://forum.webdiyo.com/newthread.php?fid=99"
}
public 
void OnPluginStart( )
{
RegAdminCmd"sm_rev"Admn_ReviveADMFLAG_SLAY"Ölü oyuncuları revlemeniz sağlar" );
LoadTranslations"respawn.phrases" );
LoadTranslations"common.phrases" );
}
public 
Action Admn_Reviveint clientint args )
{
if( 
args )
{
ReplyToCommandclient"<sm_rev> nick " );
return 
Plugin_Handled;
}
char arg32 ], target_nameMAX_NAME_LENGTH ], nameMAX_NAME_LENGTH ];
int target_listMAXPLAYERS ], target_count;
bool tn_is_ml;
GetCmdArg1argsizeofarg ) );
if( ( 
target_count ProcessTargetStringarg, 
client
, 
target_list
, 
MAXPLAYERS
, 
COMMAND_FILTER_DEAD
, 
target_name
, 
sizeof
target_name ), 
tn_is_ml 
) ) <= )
{
ReplyToTargetErrorclienttarget_count );
return 
Plugin_Handled;
}
for( 
int i 0target_counti++  )
{
CS_RespawnPlayertarget_list] );
}
GetClientNameclientnamesizeofname ) );
if( 
tn_is_ml )
{
PrintToChatAll"%t""Revive"target_nameclient );
}
else
{
PrintToChatAll"%s %N yetkili tarafından canlandırıldı." );
}
return 
Plugin_Handled;


              ProcessTargetString Kullanımı
Bu yapı ileride çok kullancağımızı gelişmiş ve kullanımı kolay bir yapıdır.Paramterlerini tek tek açıklamya başlayalım.1. parametre hedefimizi belirlememizi sağlar.2. parametre komudu çalıştıran kişi, 3. parametre  hedefin kaç kişi olduğunu belirler,4. parametre hedeflenebilecek maksimum oyuncu sayısı, 5. parametre hedefleri geçirebilidğimiz bazı filtereler örneğin COMMAND_FILTER_DEAD ile sadece ölü oyuncuların geçebilceği bir filtre, 6. parametre hedefin ismi, 7. parametre ise hedef isminin maksimum uzunluğu ve son parametre ise dil dosyasının var olup olmadığını kontrol eder.

       COMMAND_FILTER_ALIVE                                 Canlı oyuncular filtrrden geçer.
       COMMAND_FILTER_DEAD                                  Ölü oyuncular filtreden geçer.
       COMMAND_FILTER_CONNECTED                      Servere bağlı oyuncular filtreden geçer.
       COMMAND_FILTER_NO_IMMUNITY                 Dokunulmazlığı yok sayar.
      COMMAND_FILTER_NO_MULTI                         Toplu komud filtreden geçmez
       COMMAND_FILTER_NO_BOTS                           Botlar filtreden geçmez.


Yaptığım tüm pluginleri eke koydum inceleyebilirsiniz.

Hoşgeldin, Ziyaretçi

Sitemizden yararlanabilmek için Kayıt olmalısınız.

Forumda Ara

Forum İstatistikleri

Toplam Üyeler: 44.212
Son Üye: Barisx2p
Toplam Konular: 34.150
Toplam Yorumlar: 446.246

Son Aktiviteler

Cheer Plugini ( Gülücük P...

Son Yorum: Teamaker24 Daha az 1 dakika önce
Yorumlar: 30 Okunma: 42.803

Red Icon Pack

Son Yorum: AraloneClan 3 dakika önce
Yorumlar: 122 Okunma: 55.061

Bağış Sistemi (Twitch Kic...

Son Yorum: Marxxx 7 saat önce
Yorumlar: 6 Okunma: 1.222

BraveFriendsGaming - Hız ...

Son Yorum: Marxxx 8 saat önce
Yorumlar: 53 Okunma: 9.785

Meyhane Gaming Ts3 Banner...

Son Yorum: JhanneS 8 saat önce
Yorumlar: 2 Okunma: 45

Redemption Gaming Ts3 Ban...

Son Yorum: JhanneS 8 saat önce
Yorumlar: 3 Okunma: 93

Bayrak Kapmaca V3 [ Türkç...

Son Yorum: Fender 9 saat önce
Yorumlar: 160 Okunma: 55.184

Bayrak Kapmaca Mod PACK 2...

Son Yorum: Fender 9 saat önce
Yorumlar: 195 Okunma: 64.827

Cs 1.6 Pro Public Pano Ek...

Son Yorum: possi 9 saat önce
Yorumlar: 14 Okunma: 210

Otomatik Map Oylaması Yap...

Son Yorum: orpheusjpg 9 saat önce
Yorumlar: 217 Okunma: 70.831
Task