⭐🚀 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
SponsorSponsor

Reapide Oyuncu Modelleri Nasıl Ayarlanır?

Konu

#1
CT-T-Admin... özel model tarzı bir eklentinin nasıl yapılacağını anlatılıyor.
Bu olayda Reapi kütüphanesini kullanacağız.

PHP Kod:
#include <amxmodx>
#include <reapi>

//Burada modelimizin ismini ayarlıyoruz. models/player/isim/isim.mdl şeklinde yükleyeceksiniz.
// Örnekte leet yazdım. --> models/player/leet/leet.mdl
// Örnekte gsg9 yazdım. --> models/player/gsg9/gsg9.mdl
new const g_szTModelIsmi[] = "leet";
new const 
g_szCTModelIsmi[] = "gsg9";

public 
plugin_init() {
    
//Oyuncunun modelini bu komutla ayarlıyoruz. (post false olmalı)
    
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel"CBasePlayer_SetClientUserInfoModel_Pre", .post false);
}

public 
plugin_precache() {
    
//Modelleri sunucunun tanımasını sağlıyoruz.
    
precache_model(fmt("models/player/%s/%s.mdl"g_szTModelIsmig_szTModelIsmi));
    
precache_model(fmt("models/player/%s/%s.mdl"g_szCTModelIsmig_szCTModelIsmi));
}

public 
CBasePlayer_SetClientUserInfoModel_Pre(const pPlayerinfobuffer[], szNewModel[]) {
    
//Burada ayarlamak istediğimize göre devam ettireceğiz.
    //Admine özel yapacağınız zaman burada yetki kontrolü yapacaksınız.
    //Ben CT ve T için yapmak istediğim için böyle devam ettireceğim.
    
new TeamName:iTeam get_member(pPlayerm_iTeam);

    switch(
iTeam) {
        case 
TEAM_TERRORIST: {
            
SetHookChainArg(3ATYPE_STRINGg_szTModelIsmi);
        }
        case 
TEAM_CT: {
            
SetHookChainArg(3ATYPE_STRINGg_szCTModelIsmi);
        }
    }

BAŞKA BİR ŞEKİLDE YAZMA
Bu olayı aynı şekilde enum ile de yapabiliriz ve çok daha güzel görünecek.
Hem enum kullanımını da biraz kavramış olursunuz.
Yukarıdaki komutlar yerine ne yazdığımı anlamanız için eski komutların başına ///** koyacağım.

PHP Kod:
#include <amxmodx>
#include <reapi>

//Buraya modelin genel ismini yazabilirsiniz.
enum _:szModelIsimleri {
    
TERR_MODELI,
    
CT_MODELI
};

//Bu modelleri değere atıyoruz.
//Enumda ayarladığımız sırada olmak zorunda!!
new const g_szModelIsimleri[szModelIsimleri][] = {
    
"leet",
    
"gsg9"
};

///**new const g_szTModelIsmi[] = "leet";
///**new const g_szCTModelIsmi[] = "gsg9";

public plugin_init() {
    
//Oyuncunun modelini bu komutla ayarlıyoruz. (post false olmalı)
    
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel"CBasePlayer_SetClientUserInfoModel_Pre", .post false);
}

public 
plugin_precache() {
    
///**precache_model(fmt("models/player/%s/%s.mdl", g_szTModelIsmi, g_szTModelIsmi));
    ///**precache_model(fmt("models/player/%s/%s.mdl", g_szCTModelIsmi, g_szCTModelIsmi));

    //Burayı döngü ile ayarlayacağız. Değer sıfırdan başlar ve sayısı model sayısından bir küçük olur. (model sayısı - 1 = değer sayısı)
    //enum ismi model sayısına eşit olur ve değeri sıfırdan başlattığımız için küçüktür yapıyoruz.
    
for(new 0szModelIsimlerii++) {
        
//Modelleri sunucunun tanımasını sağlıyoruz.
        //Değerin i. değerindeki yazıyı çeker. Örneğin g_szModelIsimleri[0] = "leet"
        
precache_model(fmt("models/player/%s/%s.mdl"g_szModelIsimleri[i], g_szModelIsimleri[i]));
    }
}

public 
CBasePlayer_SetClientUserInfoModel_Pre(const pPlayerinfobuffer[], szNewModel[]) {
    
//Burada ayarlamak istediğimize göre devam ettireceğiz.
    //Admine özel yapacağınız zaman burada yetki kontrolü yapacaksınız.
    //Ben CT ve T için yapmak istediğim için böyle devam ettireceğim.
    
new TeamName:iTeam get_member(pPlayerm_iTeam);

    switch(
iTeam) {
        case 
TEAM_TERRORIST: {
            
///**SetHookChainArg(3, ATYPE_STRING, g_szTModelIsmi);

            //Burayı direkt enum da belirlediğimiz isimle çekiyoruz.
            
SetHookChainArg(3ATYPE_STRINGg_szModelIsimleri[TERR_MODELI]);
        }
        case 
TEAM_CT: {
            
///**SetHookChainArg(3, ATYPE_STRING, g_szCTModelIsmi);
            
SetHookChainArg(3ATYPE_STRINGg_szModelIsimleri[CT_MODELI]);
        }
    }

Son Düzenleme: 13-03-2021, 18:58, Düzenleyen: scuro.
Cevapla
#2
Teşekkürler yararlı bir konu fakat bir sorum var oyuncu tikladıgı zaman aktif olmasını istiyorum skinin onu nasıl yapabilirim?
Cevapla
#3
@Possidentis Neye tıkladığı zaman ?
Cevapla
#4
(19-11-2021, 15:18)suriyelikene Adlı Kullanıcıdan Alıntı: @Possidentis Neye tıkladığı zaman ?

menuden bi seçeneğe tıkladıgı zaman
Cevapla
#5
@Possidentis rg_set_user model kullanabilirsin.
Cevapla
#6
(19-11-2021, 15:40)suriyelikene Adlı Kullanıcıdan Alıntı: @Possidentis rg_set_user model kullanabilirsin.

onu kullanıyodum fakat skine tıklayınca skin bulunamadı dıye konsola hata veriyor
Cevapla
#7
@Possidentis İstek konusu açın, ilgilenirim.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task