⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🇹🇷 TR Lokasyon | 🛡️ Gelişmiş DDoS Koruması | ⚡ Düşük Ping | 🎧 Kesintisiz TS3 | Hostlar
Sponsor Görsel 2
SponsorSponsor

[API] Eşya Sistemi (Level, Envanter, Silme ve Yönetme)

Konu

#1
Eklenti Adı: CS 1.6 Özel Eşya Sistemi
Eklenti Yapımcısı: MawiLarq
Eklenti Açıklaması;
Özel eşya sistemi sayesinde metin2 yohara güncellemesi ile gelen yılan silahları, zırhları mantığında eşya oluşturmanıza ve bunu diğer yan eklentilerinize entegre etmenize yarayan bir eklenti geliştirdik. Ücretsiz olarak sizlerin kullanımına sunmaktan mutluluk duyarım. Eğlence amaçlı geliştirdiğim bir eklentidir ve bu yapıyı oluştururken oldukça heves aldım. 

Eşya sistemi üzerinden oluşturulan eşyalar rasgele 4 bonus sahibi olabilir şansa bağlı olarak 1 bonus sahibi veyatta 2, 3 bonus sahibide olabilir. Aynı zamanda bonus değerleride sizin belirleyeceğiniz düzeyde rasgele olarak her efsun için karmaşık verilmektedir(Her bonusun max ve min değerlerini belirleyebilirsiniz). Eşya sistemi içersinde opsiyon olarak bulunan eşya leveller sistemide bulunmaktadır. Oluşturulan eşyaların efsunları düşük bir şansla +2 seviyesine geçerken %10 artış sergileyecekken sadece +2 ye geçerken %20 artış ile artmaktadır bu sayede eşya nadirliğinde büyük bir zorluk oluşuyor. Tabiiki daha bitmedi kendi içersinde bir envanter sisteminede sahip durumdadır. Eğer eşya oluşturursanız opsiyonel olarak uid değerinide gönderirseniz(aşağıda anlatacağım) sizin yerinize o uid için bir envanter kaydıda tutmaktadır. Eşya silme ve bir çok işlemide native destekleri sayesinde sorunsuz şekilde yapabilirsiniz.

Native destekleri ve açıklamaları,
PHP Kod:
/*Zorunlu Nativler
*/
native nAnaDuzenlemeler(iL_BirinciEfsnMax,iL_IkinciEfsnMax,iL_UcuncuEfsnMax,iL_DrdncuEfsnMax);// Efsunlara maksimum kaç oran gelebileceğini belirler
native nTolereDegerler(iL_BirinciEfsnTolere,iL_IknciEfsnTolere,iL_UcncuEfsnTolere,iL_DrdncuEfsnTolere);// Puanlama icin ekstra puan hesaplamasi icin 'nAnaDuzenlemeler' nativesinin üzerinden belirlediğin tepe değerlerinden çıkartılacak rakam
/*Opsiyonel nativeler
*/
native nToplamEsyalarim(iL_UID); // Bu UID kayıtlı olan toplam eşya sayısını çeker
native nBanaAitOlanEsyalar(iL_UID,iL_SahsiEnvanterEsyaID); //  Bu UID üzerine kayıtlı eşya id lerini sıralar for(new i=1;i<= nToplamEsyalarim(iL_UID);i++ )

native nToplamEsyaSayisi(); // sunucudaki toplam esya sayisini dondurur
native nEsyaOlustur(iL_Index,sL_EsyaIsmi[],iL_CSW,iL_UID); // Eşya ekler eşya ismine max 34 karakter girin
native nEfsunBasarkenPatliyormu(iL_EsyaID,iL_EfsunID); // Girdiğiniz eşya id nin native üzerinden yolladığınız efsun degeri +2 ye basarken daha fazla oran verip vermeyeceğini döndürür 1/0
native nEfsunArtiSeviyesi(iL_EsyaID); // Eşyanın numarasını döndürür
native nNadirlikPuani(iL_EsyaID); // Eşyanın nadirlik puanını döndürür
native nEsyaIsmi(iL_EsyaID,sL_Data[],iL_Uzunluk); // Girdiğiniz eşya id değerinin ismini döndürür (str)
native nCSWID(iL_EsyaID); // Girdğiniz eşya id değerinin csw id sini döndürür
native nEfsunSayisi(iL_EsyaID); // Girdiğiniz eşya ıd değerinin kaç adet efsunu olduğunu gösterir
native nEsyaSilme(iL_EsyaID,iL_OpsiyonelUID,iL_SilinenEsyaID); // Girilen ID degerinin esya verilerini imha eder
native nLevelDuzenle(iL_EsyaID,iL_YeniLevel)//Level Guncellemesi yapar
native nEfsunTipVeOran(iL_EsyaID,iL_EfsunID,iL_Type);/*
iL_EsyaID == Eşya numarasıdır
iL_EfsunID == Birinci efsun için 1, ikinci efsun 2 için vs.
iL_Type == Efsunun hangi efsun olduğunu tutan id değerinimi yoksa o efsun id degerinin bonus değerinimi çekmek istiyorsun? 1 yazarsan efsunun hangi efsun olduğunu belirleyen id değerini çeker
*/
native nEfsunDuzenle(iL_EsyaID,iL_EfsunID,iL_Type,iL_YeniEfsunDegeri);/*
iL_EsyaID == Eşya numarasıdır
iL_EfsunID == Birinci efsun için 1, ikinci efsun 2 için vs.
iL_Type == Efsunun hangi efsun olduğunu tutan id değerinimi yoksa o efsun id degerinin bonus değerinimi düzenlemek istiyorsun? 1 yazarsan efsunun hangi efsun olduğunu belirleyen id değerini düzenler
iL_YeniEfsunDegeri == Efsunun yeni bonus miktarını belirler.
*/ 

Zorunlu nativeler ile yazılmış olan örnek bir eklenti,
PHP Kod:
#include <amxmodx>

native nAnaDuzenlemeler(iL_BirinciEfsnMax,iL_IkinciEfsnMax,iL_UcuncuEfsnMax,iL_DrdncuEfsnMax);// Efsunlara maksimum kaç oran gelebileceğini belirler
native nTolereDegerler(iL_BirinciEfsnTolere,iL_IknciEfsnTolere,iL_UcncuEfsnTolere,iL_DrdncuEfsnTolere);// Puanlama icin ekstra puan hesaplamasi icin 'nAnaDuzenlemeler' nativesinin üzerinden belirlediğin tepe değerlerinden çıkartılacak rakam

public plugin_cfg(){
    
nAnaDuzenlemeler(11,2,4,10);
    
nTolereDegerler(3,1,1,2);

Örnek eşya oluşturma ve kendi envanterinizi görüntüleme,
PHP Kod:
#include <amxmodx>

native nAnaDuzenlemeler(iL_BirinciEfsnMax,iL_IkinciEfsnMax,iL_UcuncuEfsnMax,iL_DrdncuEfsnMax);// Efsunlara maksimum kaç oran gelebileceğini belirler
native nTolereDegerler(iL_BirinciEfsnTolere,iL_IknciEfsnTolere,iL_UcncuEfsnTolere,iL_DrdncuEfsnTolere);// Puanlama icin ekstra puan hesaplamasi icin 'nAnaDuzenlemeler' nativesinin üzerinden belirlediğin tepe değerlerinden çıkartılacak rakam
/*Opsiyonel nativeler
*/
native nToplamEsyalarim(iL_UID); // Bu UID kayıtlı olan toplam eşya sayısını çeker
native nBanaAitOlanEsyalar(iL_UID,iL_SahsiEnvanterEsyaID); //  Bu UID üzerine kayıtlı eşya id lerini sıralar for(new i=1;i<= nToplamEsyalarim(iL_UID);i++ )

native nToplamEsyaSayisi(); // sunucudaki toplam esya sayisini dondurur
native nEsyaOlustur(iL_Index,sL_EsyaIsmi[],iL_CSW,iL_UID); // Eşya ekler eşya ismine max 34 karakter girin
native nEfsunBasarkenPatliyormu(iL_EsyaID,iL_EfsunID); // Girdiğiniz eşya id nin native üzerinden yolladığınız efsun degeri +2 ye basarken daha fazla oran verip vermeyeceğini döndürür 1/0
native nEfsunArtiSeviyesi(iL_EsyaID); // Eşyanın numarasını döndürür
native nNadirlikPuani(iL_EsyaID); // Eşyanın nadirlik puanını döndürür
native nEsyaIsmi(iL_EsyaID,sL_Data[],iL_Uzunluk); // Girdiğiniz eşya id değerinin ismini döndürür (str)
native nCSWID(iL_EsyaID); // Girdğiniz eşya id değerinin csw id sini döndürür
native nEfsunSayisi(iL_EsyaID); // Girdiğiniz eşya ıd değerinin kaç adet efsunu olduğunu gösterir
native nEsyaSilme(iL_EsyaID,iL_OpsiyonelUID,iL_SilinenEsyaID); // Girilen ID degerinin esya verilerini imha eder
native nLevelDuzenle(iL_EsyaID,iL_YeniLevel)//Level Guncellemesi yapar
native nEfsunTipVeOran(iL_EsyaID,iL_EfsunID,iL_Type);/*
iL_EsyaID == Eşya numarasıdır
iL_EfsunID == Birinci efsun için 1, ikinci efsun 2 için vs.
iL_Type == Efsunun hangi efsun olduğunu tutan id değerinimi yoksa o efsun id degerinin bonus değerinimi çekmek istiyorsun? 1 yazarsan efsunun hangi efsun olduğunu belirleyen id değerini çeker
*/
native nEfsunDuzenle(iL_EsyaID,iL_EfsunID,iL_Type,iL_YeniEfsunDegeri);/*
iL_EsyaID == Eşya numarasıdır
iL_EfsunID == Birinci efsun için 1, ikinci efsun 2 için vs.
iL_Type == Efsunun hangi efsun olduğunu tutan id değerinimi yoksa o efsun id degerinin bonus değerinimi düzenlemek istiyorsun? 1 yazarsan efsunun hangi efsun olduğunu belirleyen id değerini düzenler
iL_YeniEfsunDegeri == Efsunun yeni bonus miktarını belirler.
*/
native nGetUidByID(iN_ID); //Hesap sistemi UID için


public plugin_cfg(){
    
nAnaDuzenlemeler(11,2,4,10);
    
nTolereDegerler(3,1,1,2);
}
public 
plugin_init(){
    
register_clcmd("say /olustur","pP_EsyaOlusturma");
}
public 
pP_EsyaOlusturma(iP_ID){
    new 
iL_ID nEsyaOlustur(iP_ID,"Esya Ismi",29,nGetUidByID(iP_ID));
    
/*
    IP_ID = index(id)
    Eşya Ismi = anlatmaya gerek varmı :)
    29 = Silah CSW Id kafanıza göre verebilirsiniz.
    nGetUidByID(iP_ID) = Eşya sisteminin kendi envanter sistemini aktif etmek istemiyorsanız 0 yollayın yoksa uid yollayın.
    */
    
client_print_color(iP_ID,iP_ID,"!nEsya olusturuldu!g.!n Olusturulan esya nadirlik puani !g%i!n seklindedir !g!",nNadirlikPuani(iL_ID));

}
public 
pM_Esyalarim(iP_ID){
    if(!
nGetUidByID(iP_ID)){
        
client_print_color(iP_ID,iP_ID,"!nBir UID sahibi degilsin bir hesaba gir !g!");
        return 
PLUGIN_HANDLED;
    }
    new 
iL_Menu sCreateMenu("Bana ait olan esyalar","pM_EsyalarimX");
    new 
iL_UID nGetUidByID(iP_ID);
    new 
sL_ToStr[6],sL_EsyaIsmi[35],iL_EsyaSayim nToplamEsyalarim(iL_UID),iL_BireyselEsyaID,iL_NadirlikP,iL_Envanter;

    for(new 
1iL_EsyaSayimi++){
        
iL_BireyselEsyaID nBanaAitOlanEsyalar(iL_UID,i);
        
nEsyaIsmi(iL_BireyselEsyaID,sL_EsyaIsmi,34);
        
num_to_str(i,sL_ToStr,5);
        
iL_NadirlikP nNadirlikPuani(iL_BireyselEsyaID);
        if(
strlen(sL_EsyaIsmi) > 2){
            
sMenuAddItem(iL_Menu,"%s\d(\rNP: %i\d)",sL_ToStr,0,sL_EsyaIsmi,iL_NadirlikP);
            
iL_Envanter++;
        }
    }
    if(!
iL_Envanter){
        
client_print_color(iP_ID,iP_ID,"!nEsyan yok bir esya olustur bro !g!");
    }
    
sMenuEnd(iP_ID,iL_Menu);    
    return 
PLUGIN_CONTINUE;
}
public 
pM_EsyalarimX(iP_ID,iM_ID,iM_Item){    
    if(
iM_Item == MENU_EXIT){
        
menu_destroy(iM_ID);
        return 
PLUGIN_HANDLED;
    }
    new 
sL_Data[6],iL_Free;
    
menu_item_getinfo(iM_ID,iM_Item,iL_Free,sL_Data,5,_,_,iL_Free);
    new 
iL_Item str_to_num(sL_Data);
    new 
iL_EsyaID nBanaAitOlanEsyalar(nGetUidByID(iP_ID),iL_Item);
    
client_print_color(iP_ID,iP_ID,"!nEsya secildi secilen esya id: %i -- esya csw id : %i",iL_Item,nCSWID(iL_EsyaID));
    

    
    
menu_destroy(iM_ID);
    return 
PLUGIN_HANDLED;
}
stock sCreateMenu(const sS_Title[],const sS_Handle[],any:...){
    new 
sL_NewTitle[256],sL_FixedTitle[256];
    
vformat(sL_FixedTitle,255,sS_Title,3);
    
formatex(sL_NewTitle,255,"\r[\wWebailesi\r] \y~\r> \y%s",sL_FixedTitle);
    new 
iL_Menu menu_create(sL_NewTitle,sS_Handle);
    return 
iL_Menu;
}
stock sMenuAddItem(iS_MenuID,const sS_ItemName[],const sS_ItemInfo[],iS_UseTag 1,any:...){
    new 
sL_NewTitle[256],sL_FixedTitle[256];
    
vformat(sL_FixedTitle,255,sS_ItemName,5);
    if(
iS_UseTag == 1){
        
formatex(sL_NewTitle,255,"\d[\yWebailesi\d] \w~\r> \w%s",sL_FixedTitle);
    }
    else{
        
formatex(sL_NewTitle,255,"%s",sL_FixedTitle);
    }
    
menu_additem(iS_MenuID,sL_NewTitle,sS_ItemInfo);
}
stock sMenuEnd(iS_ID,iS_MenuID,iS_IsSmall 1,iS_CanExit 1,iS_Page 0){
    
menu_setprop(iS_MenuID,MPROP_EXITNAME,"Cikis");
    
menu_setprop(iS_MenuID,MPROP_PERPAGEiS_IsSmall 7:); 
    
menu_setprop(iS_MenuID,MPROP_EXIT,iS_CanExit MEXIT_ALL:MEXIT_NEVER);
    
menu_display(iS_ID,iS_MenuID,iS_Page);    


Kendim için tasarladığım bir eklentideki eşya görüntüleme ekranı(efsun sistemini az çok görmeniz için)(Efsunları kendi yaptığınız eklentiden özelleştirmeniz gerekir),
PHP Kod:
}
public 
pP_DetayGoster(iP_ID,iL_EsyaID){
    new 
sL_Showen[2001],iL_Len;
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"<center><b>Webailesi Esya Sistemi</b></center><br>");
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"<hr><br>");
    new 
sL_EsyaIsmi[35];
    
nEsyaIsmi(iL_EsyaID,sL_EsyaIsmi,34);
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"Esya Ismi: %s<br>",sL_EsyaIsmi);    
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"Nadirlik Puani: %i<br>",nNadirlikPuani(iL_EsyaID));
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"Esya Seviyesi: %i <br>",nEfsunArtiSeviyesi(iL_EsyaID));
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"Esya CSW ID: %i <br>",nCSWID(iL_EsyaID));
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"Esya Numarasi: #%i <br>",iL_EsyaID);
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"<hr><br><center>Efsun Bilgileri</center><br>");
    new 
iL_Efsun,iL_EfsunTIP;
    for(new 
i=15i++){
        
iL_Efsun nEfsunTipVeOran(iL_EsyaID,i,0);
        
iL_EfsunTIP nEfsunTipVeOran(iL_EsyaID,i,1);
        if(
iL_Efsun){
            switch(
i){
                case 
: {
                    if(
iL_EfsunTIP == 1){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"1) Saldiri Gucu: %i %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                    else {
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"1) Savunma: %i %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");    
                    }
                }
                case 
: {
                    if(
iL_EfsunTIP == 1){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"2) Hasar verdigim zombiyi %i saniye yavaslat %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                    if(
iL_EfsunTIP == 2){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"2) Hasar verdigim zombiye %i saniye kanama baslat %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");    
                    }
                    if(
iL_EfsunTIP == 3){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"2) Zombiyi %i saniye kafasini sersemlet %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");    
                    }
                }
                case 
: {
                    if(
iL_EfsunTIP == 1){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"3) Birilerini oldurunce extra +%i TL %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                    if(
iL_EfsunTIP == 2){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"3) Birilerini oldurunce extra +%i XP %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                }
                case 
: {
                    if(
iL_EfsunTIP == 1){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"4) |ZM|Hasar Alinca %i karsi hasar ver %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                    if(
iL_EfsunTIP == 2){
                        
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"4) |ZM|Hasar Alinca karsi tarafin %i armorunu em  %s<br>",iL_Efsun,nEfsunBasarkenPatliyormu(iL_EsyaID,i) ? "(OZEL Oran)":"");
                    }
                }
            }

        }
    }
    
iL_Len += formatex(sL_Showen[iL_Len],2000-iL_Len,"<br><br>Tum efsunlar, oranlar, artis oranlari ve baslangic degerleri her esyada farkli sansa gore belirlenmektedir.");
    
show_motd(iP_ID,sL_Showen,"MawiLarq");

Örnek mevcut eşya levelini yükseltmek için kullandığım kod yapısı,
PHP Kod:
        new iL_Fiyat = (get_pcvar_num(iG_Cvar[2])*iL_Level)+30;
            if(
iL_Level >= get_pcvar_num(iG_Cvar[3])){
                
sColoredChat(iP_ID,"!nEsyaniz zaten en yuksek levelde daha fazla gelistiremessin!g!");
                
pM_LevelYukselt(iP_ID);
                return 
PLUGIN_HANDLED;
            }
            if(
iG_Money[iP_ID] < iL_Fiyat){
                
sColoredChat(iP_ID,"!nUzerinde yeterli miktarda tl bulunmadigi icin level gelistirilemiyor!g!");
                
pM_LevelYukselt(iP_ID);
                return 
PLUGIN_HANDLED;
            }
            new 
iL_Deger pP_OranCek(iL_Level,1);
            if(!
iL_Deger){
                
sColoredChat(iP_ID,"!nBu sefer sansin yaver gitmedi !g+ !ngelistirmesi basarili olmadi!g!");
                
pM_LevelYukselt(iP_ID);
                return 
PLUGIN_HANDLED;
            }
            new 
iL_Efsun,iL_SuankiDegeri;

            
pP_Para(iP_IDiL_UID, -iL_Fiyat,1);
            
nLevelDuzenle(iL_EsyaID,iL_Level+1);
            for(new 
i=15i++){
                
iL_Efsun nEfsunTipVeOran(iL_EsyaID,i,0);
                if(
iL_Efsun){
                    
iL_SuankiDegeri iL_Efsun;
                    if(
nEfsunBasarkenPatliyormu(iL_EsyaID,i) && iL_Level == 1){
                        
iL_SuankiDegeri = (iL_SuankiDegeri 12 10);
                        
iL_SuankiDegeri += floatround(iL_SuankiDegeri*1,2);
                        if(
iL_SuankiDegeri <= iL_Efsun){
                            
iL_SuankiDegeri iL_Efsun+2;
                        }
                        
sColoredChat(iP_ID,"!n%i!g.!nEfsunda patlama ozelligine sahip oldugu icin extra bonus!g(%i)!n eklenmistir!g!",iL_SuankiDegeri);
                    }
                    else {
                        
iL_SuankiDegeri = (iL_SuankiDegeri 12 10);
                        
iL_SuankiDegeri += floatround(iL_SuankiDegeri*1,1);
                        if(
iL_SuankiDegeri <= iL_Efsun){
                            
iL_SuankiDegeri iL_Efsun+1;
                        }
                    }
                    
nEfsunDuzenle(iL_EsyaID,i,0,iL_SuankiDegeri);
                    
sColoredChat(iP_ID,"!nEsyanin !g%i!t.!n Efsunu !g%i!n oranindan !g%i !noranina yukseltildi!g!",i,iL_Efsun,iL_SuankiDegeri);
                }
            }
            
pP_DetayGoster(iP_ID,iL_EsyaID);
            
sColoredChat(iP_ID,"!nBasarili sekilde secili olan esya !g%i!n levele yukseltildi!g!",iL_Level+1);
            
pM_LevelYukselt(iP_ID); 

İndirme;

SMA İndirmek içinhttps://www.webailesi.com/ds-esya-sistemi-12102.sma

(CS 1.6 Eski ve kitlesi azalan bir oyun heleki geliştirici neredeyse hiç kalmadı. Soru veyatta istek geleceğini sanmıyorum ama eğer sorunuz varsa çekinmeden yazabilirsiniz ve beni mutlu edebilirsiniz)
.rarEsya Sistemi.rar(Dosya Boyutu: 5,04 KB | İndirme Sayısı: 39)
MawiŞ*
Cevapla
#2
Teşekkürler keşke kodlardan tam kapsamlı anlayabilsem ,
Cevapla
#3
reis bu tam olarak e işe yarıyor anlamadım da
Cevapla
#4
(01-10-2022, 14:23)efekork2142 Adlı Kullanıcıdan Alıntı: reis bu tam olarak e işe yarıyor anlamadım da
Geliştiricilerin işini çok kolaylaştıracak, içerisinde native çıkışları ve ekstra bir çok özellik bulunan bir eklenti.
Ancak direkt panele kurulamaz dediğim gibi fonksiyonel bir eklenti.
ds-standard-14385
Cevapla
#5
Teşekkür Ederim
Son Düzenleme: 01-10-2022, 23:47, Düzenleyen: efekork2142.
Cevapla
#6
@"EmirhanKURT" bi zula mod yapın bununlaGülümse + basma sistemi felan xd
Cevapla
#7
SMA Linki konuya eklenmiştir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task