1. sayfa (Toplam 1 sayfa)

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 1:41 am
gönderen ZaptYReis44
Arkadaşlar ekte verdiğim eklentiye 2 tane özellik ekletmek istiyorum :

1 ) Menünün içinde kendine ait bir para birimi var , bunu oyuncular kill alarak kasabilsin istiyorum.

2) Yukarıdaki özelliğin cvar ayarı olsun istiyorum . örnek (amx_killfiyat "100") 100 yazan yer kill başı oyuncuya ne kadar para verileceğini ayarlasın , bunu istediğim şekilde ayarlayabilmek istiyorum.

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 9:45 am
gönderen ZaptYReis44
Arkadaşlar menüye hesap sistemi de ekleyebilirseniz güzel olur.

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 1:40 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Sal Kas 16, 2021 1:26 pm Hesap sistemini ücretli olarak yapabilirim.

Kod: Tümünü seç

amx_cvar amx_killfiyat "100"

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const tag[]="Forum.CSD" ;

new const tmodels[][][]={
    { "Csgo_T", 0 },
    { "Cj", 98 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Csgo_CT", 0 },          
    { "Cj", 98 },
    { "Tommy", 96 }
};

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1],satinaldi[MAX_CLIENTS+1][11],g_aktif[MAX_CLIENTS+1][sizeof(tmodels)], cvar;

public plugin_init()
{
    register_plugin("Karaktermenu","0.1","bilalgecer47");
    new const menuclcmd[][]={
        "say /karakter","say /karakterler","say /karaktermenu","say /skin"            //  menuye giris cmdleri
    }
    for(new i;i<sizeof(menuclcmd);i++){
        register_clcmd(menuclcmd[i],"@anamenu");
    }    
    register_clcmd("radio3","@anamenu");
    register_clcmd("say /anamenu","@anamenu");
    register_clcmd("say /param","@ShowMoney");

    register_concmd("amx_paraver","@paraver");
    
    RegisterHookChain(RG_CBasePlayer_Spawn,"@RG_CBasePlayer_Spawn_Post",1);
    RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", 1);

    bind_pcvar_num(create_cvar("amx_killfiyat", "100"), cvar);
}

@ShowMoney(const id)
{
    client_print_color(id,id, "^4Mevcut Paran ^1: ^4[^3%d^4]", para[id]);
}

// Bilal Gecer'den alıntıdır.
@paraver(id)
{
    if(get_user_flags(id) & ADMIN_RCON)
    {
        new kisi[MAX_NAME_LENGTH],packs[10];
        
        read_argv(1,kisi,charsmax(kisi));
        read_argv(2,packs,charsmax(packs));
        
        new index = cmd_target(id,kisi,0);
        if(!is_str_num(packs))
        {
            client_print_color(id,id,"^3Sadece ^4Sayi ^3yaziniz !");
            return PLUGIN_HANDLED;
        }
        else{
            para[index]+= str_to_num(packs);
            client_print_color(0,0,"^4%n ^3isimli admin ^4%n ^3isimli oyuncudan ^1%i ^3para verdi.",id,index,str_to_num(packs));
        }
    }
    return PLUGIN_HANDLED;
}

@RG_CBasePlayer_Spawn_Post(const pPlayer) {
    if(!is_user_alive(pPlayer)) {
        return;
    }
    new TeamName:iTeam = get_member(pPlayer, m_iTeam);
    
    switch(iTeam) {
        case TEAM_TERRORIST: {
            rg_set_user_model(pPlayer, fmt("%s", tmodels[models[pPlayer]][0]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]][0]));
        }
    }
}
@CBasePlayer_Killed(const this, pevAttacker, iGib) {
    if(!is_user_connected(pevAttacker) || this == pevAttacker) {
        return;
    }

    para[pevAttacker] += cvar;
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i][0], tmodels[i][0]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i][0], ctmodels[i][0]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);

    new menu = menu_create(fmt("\r%s \w| \y%s Ozel Model Menu^nMevcut Paran : %d", tag, isTerrorist ? "T" : "CT", para[id]), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");

    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\r%s \r| \y%s %s \r%s", tag, tmodels[i][0], satinaldi[id][i] ? "[Satin Alinmis]":fmt("[%d TL]", tmodels[i][1]), g_aktif[id][i] ? "{Aktif}":""), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
                menu_additem(menu, fmt("\r%s \r| \y%s %s \r%s", tag, ctmodels[i][0], satinaldi[id][i] ? "[Satin Alinmis]":fmt("[%d TL]", ctmodels[i][1]), g_aktif[id][i] ? "{Aktif}":""), fmt("%d", i));
        }
    }

    menu_additem(menu, fmt("\r%s \r| \yModel Sifirla", tag), "333");

    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
    menu_display(id, menu);
    return PLUGIN_HANDLED;
}
@tmodel_handler(const id,const  menu,const item) {
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6];menu_item_getinfo(menu,item,_,data,charsmax(data));
    new key = str_to_num(data);  
    models[id] = key;
    switch(key) 
    {
        case 333: 
        {
            rg_reset_user_model(id)
            for(new i = 0; i < sizeof(tmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            client_print_color(id,id, "^1Modeli ^3Sifirladin.")
        }
        default:
        {
            if(para[id] < tmodels[key][1][0])
            {
                client_print_color(id,id, "^1Paraniz ^4yeterli ^3degil.")
                return PLUGIN_HANDLED;
            }
            if(satinaldi[id][key])
            {
                client_print_color(id,id, "^1%s Adli ^3Modeli ^4Aktif Ettin.", tmodels[models[id]][0])
                for(new i = 0; i < sizeof(tmodels); i++)
                {
                    g_aktif[id][i] = 0;
                }
                g_aktif[id][key] = 1;
                rg_set_user_model(id, fmt("%s", tmodels[models[id]][0]));
                return PLUGIN_HANDLED;
            }
            satinaldi[id][key]++
            para[id] -= tmodels[key][1][0]
            for(new i = 0; i < sizeof(tmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            g_aktif[id][key] = 1;
            client_print_color(id,id, "^1Menuden ^4%s ^3Modelini Satin Aldin.",tmodels[models[id]][0])
            rg_set_user_model(id, fmt("%s", tmodels[models[id]][0]));
        }
    }
    menu_destroy(menu); return PLUGIN_HANDLED;
}
@ctmodel_handler(const id,const  menu,const item) {
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6];menu_item_getinfo(menu,item,_,data,charsmax(data));
    new key = str_to_num(data);  
    models[id] = key;
    switch(key) 
    {
        case 333: 
        {
            rg_reset_user_model(id)
            for(new i = 0; i < sizeof(ctmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            client_print_color(id,id, "^1Modeli ^3Sifirladin.")
        }
        default:
        {
            if(para[id] < ctmodels[key][1][0])
            {
                client_print_color(id,id, "^1Paraniz ^4yeterli ^3degil.")
                return PLUGIN_HANDLED;
            }
            if(satinaldi[id][key])
            {
                client_print_color(id,id, "^1%s Adli ^3Modeli ^4Aktif Ettin.", ctmodels[models[id]][0])
                for(new i = 0; i < sizeof(ctmodels); i++)
                {
                    g_aktif[id][i] = 0;
                }
                g_aktif[id][key] = 1;
                rg_set_user_model(id, fmt("%s", ctmodels[models[id]][0]));
                return PLUGIN_HANDLED;
            }
            satinaldi[id][key]++
            para[id] -= ctmodels[key][1][0]
            for(new i = 0; i < sizeof(ctmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            g_aktif[id][key] = 1;
            client_print_color(id,id, "^1Menuden ^4%s ^3Modelini Satin Aldin.",ctmodels[models[id]][0])
            rg_set_user_model(id, fmt("%s", ctmodels[models[id]][0]));
        }
    }
    menu_destroy(menu); return PLUGIN_HANDLED;
} 

/* nvault (PurposeLess) */

new g_vault;

public plugin_cfg() {
	g_vault = nvault_open("KarakterMenu");

	if(g_vault == INVALID_HANDLE) {
		set_fail_state("Unknown nvault for KarakterMenu");
	}
}

public plugin_end() {
	nvault_close(g_vault);
}

public client_authorized(pPlayer, const authid[]) {
    models[pPlayer] = nvault_get(g_vault, fmt("%s_model", authid));
    para[pPlayer] = nvault_get(g_vault, fmt("%s_para", authid));
    satinaldi[pPlayer][0] = nvault_get(g_vault, fmt("%s_sa0", authid));
    satinaldi[pPlayer][1] = nvault_get(g_vault, fmt("%s_sa1", authid));
    satinaldi[pPlayer][2] = nvault_get(g_vault, fmt("%s_sa2", authid));
    satinaldi[pPlayer][3] = nvault_get(g_vault, fmt("%s_sa3", authid));
    satinaldi[pPlayer][4] = nvault_get(g_vault, fmt("%s_sa4", authid));
}

public client_disconnected(pPlayer) {
    new authid[MAX_AUTHID_LENGTH], data[MAX_AUTHID_LENGTH+10];
    get_user_authid(pPlayer, authid, charsmax(authid));

    num_to_str(models[pPlayer], data, charsmax(data));
    nvault_pset(g_vault, fmt("%s_model", authid), data);

    num_to_str(para[pPlayer], data, charsmax(data));
    nvault_pset(g_vault, fmt("%s_para", authid), data);

    for(new i = 0; i <= 10; i++)
    {
        num_to_str(satinaldi[pPlayer][i], data, charsmax(data));
        nvault_pset(g_vault, fmt("%s_sa%i", authid, i), data);
    }
}
Teşekkürler deneyeceğim.

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 1:56 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Sal Kas 16, 2021 1:26 pm Hesap sistemini ücretli olarak yapabilirim.

Kod: Tümünü seç

amx_cvar amx_killfiyat "100"

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>

new const tag[]="Forum.CSD" ;

new const tmodels[][][]={
    { "Csgo_T", 0 },
    { "Cj", 98 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Csgo_CT", 0 },          
    { "Cj", 98 },
    { "Tommy", 96 }
};

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1],satinaldi[MAX_CLIENTS+1][11],g_aktif[MAX_CLIENTS+1][sizeof(tmodels)], cvar;

public plugin_init()
{
    register_plugin("Karaktermenu","0.1","bilalgecer47");
    new const menuclcmd[][]={
        "say /karakter","say /karakterler","say /karaktermenu","say /skin"            //  menuye giris cmdleri
    }
    for(new i;i<sizeof(menuclcmd);i++){
        register_clcmd(menuclcmd[i],"@anamenu");
    }    
    register_clcmd("radio3","@anamenu");
    register_clcmd("say /anamenu","@anamenu");
    register_clcmd("say /param","@ShowMoney");

    register_concmd("amx_paraver","@paraver");
    
    RegisterHookChain(RG_CBasePlayer_Spawn,"@RG_CBasePlayer_Spawn_Post",1);
    RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", 1);

    bind_pcvar_num(create_cvar("amx_killfiyat", "100"), cvar);
}

@ShowMoney(const id)
{
    client_print_color(id,id, "^4Mevcut Paran ^1: ^4[^3%d^4]", para[id]);
}

// Bilal Gecer'den alıntıdır.
@paraver(id)
{
    if(get_user_flags(id) & ADMIN_RCON)
    {
        new kisi[MAX_NAME_LENGTH],packs[10];
        
        read_argv(1,kisi,charsmax(kisi));
        read_argv(2,packs,charsmax(packs));
        
        new index = cmd_target(id,kisi,0);
        if(!is_str_num(packs))
        {
            client_print_color(id,id,"^3Sadece ^4Sayi ^3yaziniz !");
            return PLUGIN_HANDLED;
        }
        else{
            para[index]+= str_to_num(packs);
            client_print_color(0,0,"^4%n ^3isimli admin ^4%n ^3isimli oyuncudan ^1%i ^3para verdi.",id,index,str_to_num(packs));
        }
    }
    return PLUGIN_HANDLED;
}

@RG_CBasePlayer_Spawn_Post(const pPlayer) {
    if(!is_user_alive(pPlayer)) {
        return;
    }
    new TeamName:iTeam = get_member(pPlayer, m_iTeam);
    
    switch(iTeam) {
        case TEAM_TERRORIST: {
            rg_set_user_model(pPlayer, fmt("%s", tmodels[models[pPlayer]][0]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]][0]));
        }
    }
}
@CBasePlayer_Killed(const this, pevAttacker, iGib) {
    if(!is_user_connected(pevAttacker) || this == pevAttacker) {
        return;
    }

    para[pevAttacker] += cvar;
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i][0], tmodels[i][0]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i][0], ctmodels[i][0]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);

    new menu = menu_create(fmt("\r%s \w| \y%s Ozel Model Menu^nMevcut Paran : %d", tag, isTerrorist ? "T" : "CT", para[id]), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");

    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\r%s \r| \y%s %s \r%s", tag, tmodels[i][0], satinaldi[id][i] ? "[Satin Alinmis]":fmt("[%d TL]", tmodels[i][1]), g_aktif[id][i] ? "{Aktif}":""), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
                menu_additem(menu, fmt("\r%s \r| \y%s %s \r%s", tag, ctmodels[i][0], satinaldi[id][i] ? "[Satin Alinmis]":fmt("[%d TL]", ctmodels[i][1]), g_aktif[id][i] ? "{Aktif}":""), fmt("%d", i));
        }
    }

    menu_additem(menu, fmt("\r%s \r| \yModel Sifirla", tag), "333");

    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");
    menu_display(id, menu);
    return PLUGIN_HANDLED;
}
@tmodel_handler(const id,const  menu,const item) {
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6];menu_item_getinfo(menu,item,_,data,charsmax(data));
    new key = str_to_num(data);  
    models[id] = key;
    switch(key) 
    {
        case 333: 
        {
            rg_reset_user_model(id)
            for(new i = 0; i < sizeof(tmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            client_print_color(id,id, "^1Modeli ^3Sifirladin.")
        }
        default:
        {
            if(para[id] < tmodels[key][1][0])
            {
                client_print_color(id,id, "^1Paraniz ^4yeterli ^3degil.")
                return PLUGIN_HANDLED;
            }
            if(satinaldi[id][key])
            {
                client_print_color(id,id, "^1%s Adli ^3Modeli ^4Aktif Ettin.", tmodels[models[id]][0])
                for(new i = 0; i < sizeof(tmodels); i++)
                {
                    g_aktif[id][i] = 0;
                }
                g_aktif[id][key] = 1;
                rg_set_user_model(id, fmt("%s", tmodels[models[id]][0]));
                return PLUGIN_HANDLED;
            }
            satinaldi[id][key]++
            para[id] -= tmodels[key][1][0]
            for(new i = 0; i < sizeof(tmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            g_aktif[id][key] = 1;
            client_print_color(id,id, "^1Menuden ^4%s ^3Modelini Satin Aldin.",tmodels[models[id]][0])
            rg_set_user_model(id, fmt("%s", tmodels[models[id]][0]));
        }
    }
    menu_destroy(menu); return PLUGIN_HANDLED;
}
@ctmodel_handler(const id,const  menu,const item) {
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    new data[6];menu_item_getinfo(menu,item,_,data,charsmax(data));
    new key = str_to_num(data);  
    models[id] = key;
    switch(key) 
    {
        case 333: 
        {
            rg_reset_user_model(id)
            for(new i = 0; i < sizeof(ctmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            client_print_color(id,id, "^1Modeli ^3Sifirladin.")
        }
        default:
        {
            if(para[id] < ctmodels[key][1][0])
            {
                client_print_color(id,id, "^1Paraniz ^4yeterli ^3degil.")
                return PLUGIN_HANDLED;
            }
            if(satinaldi[id][key])
            {
                client_print_color(id,id, "^1%s Adli ^3Modeli ^4Aktif Ettin.", ctmodels[models[id]][0])
                for(new i = 0; i < sizeof(ctmodels); i++)
                {
                    g_aktif[id][i] = 0;
                }
                g_aktif[id][key] = 1;
                rg_set_user_model(id, fmt("%s", ctmodels[models[id]][0]));
                return PLUGIN_HANDLED;
            }
            satinaldi[id][key]++
            para[id] -= ctmodels[key][1][0]
            for(new i = 0; i < sizeof(ctmodels); i++)
            {
                g_aktif[id][i] = 0;
            }
            g_aktif[id][key] = 1;
            client_print_color(id,id, "^1Menuden ^4%s ^3Modelini Satin Aldin.",ctmodels[models[id]][0])
            rg_set_user_model(id, fmt("%s", ctmodels[models[id]][0]));
        }
    }
    menu_destroy(menu); return PLUGIN_HANDLED;
} 

/* nvault (PurposeLess) */

new g_vault;

public plugin_cfg() {
	g_vault = nvault_open("KarakterMenu");

	if(g_vault == INVALID_HANDLE) {
		set_fail_state("Unknown nvault for KarakterMenu");
	}
}

public plugin_end() {
	nvault_close(g_vault);
}

public client_authorized(pPlayer, const authid[]) {
    models[pPlayer] = nvault_get(g_vault, fmt("%s_model", authid));
    para[pPlayer] = nvault_get(g_vault, fmt("%s_para", authid));
    satinaldi[pPlayer][0] = nvault_get(g_vault, fmt("%s_sa0", authid));
    satinaldi[pPlayer][1] = nvault_get(g_vault, fmt("%s_sa1", authid));
    satinaldi[pPlayer][2] = nvault_get(g_vault, fmt("%s_sa2", authid));
    satinaldi[pPlayer][3] = nvault_get(g_vault, fmt("%s_sa3", authid));
    satinaldi[pPlayer][4] = nvault_get(g_vault, fmt("%s_sa4", authid));
}

public client_disconnected(pPlayer) {
    new authid[MAX_AUTHID_LENGTH], data[MAX_AUTHID_LENGTH+10];
    get_user_authid(pPlayer, authid, charsmax(authid));

    num_to_str(models[pPlayer], data, charsmax(data));
    nvault_pset(g_vault, fmt("%s_model", authid), data);

    num_to_str(para[pPlayer], data, charsmax(data));
    nvault_pset(g_vault, fmt("%s_para", authid), data);

    for(new i = 0; i <= 10; i++)
    {
        num_to_str(satinaldi[pPlayer][i], data, charsmax(data));
        nvault_pset(g_vault, fmt("%s_sa%i", authid, i), data);
    }
}
Hocam şuanda bir serverim olmadığı için test sunucusunda deniyorum , böyle bir hata alıyorum.

Resim

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 2:01 pm
gönderen orucoglukayra
Serverinin reapi sürümü ya da derleyicin ile alakalı bir durum.
Sürümü güncellemeyi deneyin.
Modül sürümlerine bakmak için rcon konsoluna "meta list" yazabilirsin.

Player Model Menü Cvar Bağlama hk.

Gönderilme zamanı: Sal Kas 16, 2021 2:17 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Sal Kas 16, 2021 2:01 pm Serverinin reapi sürümü ya da derleyicin ile alakalı bir durum.
Sürümü güncellemeyi deneyin.
Modül sürümlerine bakmak için rcon konsoluna "meta list" yazabilirsin.
Sorunu çözdüm teşekkürler.