1. sayfa (Toplam 2 sayfa)

Menüye Ekleme hk.

Gönderilme zamanı: Prş Kas 11, 2021 10:51 pm
gönderen ZaptYReis44
Selamlar arkadaşlar , ekte verdiğim player model değişme menüsüne birşeyler ekletmek istiyorum , yardımcı olursanız çok sevinirim. İsteğimi aşşağıya yazıyorum ;

1.Menünün kendine özel bir para birimi olsun csgo moddaki gibi ve bunu yetkili kişiler cvar kodu ile verebilsin istiyorum , para birimini kendime göre nasıl ayarlıyacağımıda anlatırsanız çok iyi olur.

2.Her model için ayrı bir fiyat belirlenmesini istiyorum ve bunu istediğim zaman eklentinin içerisinden değiştirebileyim istiyorum.

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 9:21 am
gönderen orucoglukayra
Merhabalar, fiyatları buradan ayarlayabilirsiniz.

Kod: Tümünü seç

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
Para vermek için :
ADMIN_RCON yetkisine ayarlı eklenti içinden değiştirebilirsiniz.

Kod: Tümünü seç

register_concmd("amx_paraver","@paraver");
Para biriminden kastınızı anlamadım, değiştirmek istiyorsanız sadece menüdeki görünüme ve saydaki yazılarla oynama yapabilirsiniz.
Örnek TL ...

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1];

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};

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_concmd("amx_paraver","@paraver");
    
    RegisterHookChain(RG_CBasePlayer_Spawn,"@RG_CBasePlayer_Spawn_Post",1);
    
}
// 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]]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]]));
        }
    }
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i], tmodels[i]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i], ctmodels[i]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);
    
    new menu = menu_create(fmt("\d%s \w| \y%s Ozel Model Menu", tag, isTerrorist ? "T" : "CT"), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");
    
    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, tmodels[i], tmodels[i][1]), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, ctmodels[i], ctmodels[i][1]), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= tmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",tmodels[models[id]])
    rg_set_user_model(id, fmt("%s", tmodels[models[id]]));
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= ctmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",ctmodels[models[id]])
    rg_set_user_model(id, fmt("%s", ctmodels[models[id]]));
    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));
}

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);
}
Eklentiyi denemedim.Dönüş yaparsınız.

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 6:37 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Cum Kas 12, 2021 9:21 am Merhabalar, fiyatları buradan ayarlayabilirsiniz.

Kod: Tümünü seç

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
Para vermek için :
ADMIN_RCON yetkisine ayarlı eklenti içinden değiştirebilirsiniz.

Kod: Tümünü seç

register_concmd("amx_paraver","@paraver");
Para biriminden kastınızı anlamadım, değiştirmek istiyorsanız sadece menüdeki görünüme ve saydaki yazılarla oynama yapabilirsiniz.
Örnek TL ...

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1];

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};

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_concmd("amx_paraver","@paraver");
    
    RegisterHookChain(RG_CBasePlayer_Spawn,"@RG_CBasePlayer_Spawn_Post",1);
    
}
// 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]]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]]));
        }
    }
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i], tmodels[i]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i], ctmodels[i]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);
    
    new menu = menu_create(fmt("\d%s \w| \y%s Ozel Model Menu", tag, isTerrorist ? "T" : "CT"), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");
    
    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, tmodels[i], tmodels[i][1]), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, ctmodels[i], ctmodels[i][1]), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= tmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",tmodels[models[id]])
    rg_set_user_model(id, fmt("%s", tmodels[models[id]]));
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= ctmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",ctmodels[models[id]])
    rg_set_user_model(id, fmt("%s", ctmodels[models[id]]));
    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));
}

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);
}
Eklentiyi denemedim.Dönüş yaparsınız.
Menünun kendine özel para birimi olsun istiyorum , csgo moddaki gibi , teşekkürler bu arada

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 6:44 pm
gönderen orucoglukayra
Şuan o şekilde.

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 7:04 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Cum Kas 12, 2021 6:44 pm Şuan o şekilde.
Tamamdır teşekkürler , müsait bir zamanımda deneyip dönüş yaparım.

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 7:12 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Cum Kas 12, 2021 6:44 pm Şuan o şekilde.
Hocam bir isteğim daha olacaktı , mesela saydan /param yazınca ne kadar param olduğunu görebilmek istiyorum , sizide uğraştırıyorum kusura bakmayın.

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 7:18 pm
gönderen orucoglukayra
ZaptYReis44 yazdı: Cum Kas 12, 2021 7:12 pm
orucoglukayra yazdı: Cum Kas 12, 2021 6:44 pm Şuan o şekilde.
Hocam bir isteğim daha olacaktı , mesela saydan /param yazınca ne kadar param olduğunu görebilmek istiyorum , sizide uğraştırıyorum kusura bakmayın.

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1];

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};

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);
    
}
@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]]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]]));
        }
    }
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i], tmodels[i]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i], ctmodels[i]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);
    
    new menu = menu_create(fmt("\d%s \w| \y%s Ozel Model Menu", tag, isTerrorist ? "T" : "CT"), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");
    
    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, tmodels[i], tmodels[i][1]), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, ctmodels[i], ctmodels[i][1]), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= tmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",tmodels[models[id]])
    rg_set_user_model(id, fmt("%s", tmodels[models[id]]));
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= ctmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",ctmodels[models[id]])
    rg_set_user_model(id, fmt("%s", ctmodels[models[id]]));
    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));
}

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);
}

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 7:22 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Cum Kas 12, 2021 7:18 pm
ZaptYReis44 yazdı: Cum Kas 12, 2021 7:12 pm
orucoglukayra yazdı: Cum Kas 12, 2021 6:44 pm Şuan o şekilde.
Hocam bir isteğim daha olacaktı , mesela saydan /param yazınca ne kadar param olduğunu görebilmek istiyorum , sizide uğraştırıyorum kusura bakmayın.

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1];

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};

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);
    
}
@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]]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]]));
        }
    }
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i], tmodels[i]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i], ctmodels[i]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);
    
    new menu = menu_create(fmt("\d%s \w| \y%s Ozel Model Menu", tag, isTerrorist ? "T" : "CT"), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");
    
    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, tmodels[i], tmodels[i][1]), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, ctmodels[i], ctmodels[i][1]), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= tmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",tmodels[models[id]])
    rg_set_user_model(id, fmt("%s", tmodels[models[id]]));
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= ctmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",ctmodels[models[id]])
    rg_set_user_model(id, fmt("%s", ctmodels[models[id]]));
    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));
}

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);
}
Çok teşekkür ederim

Menüye Ekleme hk.

Gönderilme zamanı: Cum Kas 12, 2021 8:48 pm
gönderen ZaptYReis44
orucoglukayra yazdı: Cum Kas 12, 2021 9:21 am Merhabalar, fiyatları buradan ayarlayabilirsiniz.

Kod: Tümünü seç

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
Para vermek için :
ADMIN_RCON yetkisine ayarlı eklenti içinden değiştirebilirsiniz.

Kod: Tümünü seç

register_concmd("amx_paraver","@paraver");
Para biriminden kastınızı anlamadım, değiştirmek istiyorsanız sadece menüdeki görünüme ve saydaki yazılarla oynama yapabilirsiniz.
Örnek TL ...

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1];

new const tmodels[][][]={
    { "Arctic", 100 },              //T Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },              //CT Default Model
    { "Assasin", 99 }, 
    { "Cj", 98 },
    { "Matrix", 97 },
    { "Tommy", 96 }
};

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_concmd("amx_paraver","@paraver");
    
    RegisterHookChain(RG_CBasePlayer_Spawn,"@RG_CBasePlayer_Spawn_Post",1);
    
}
// 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]]));
        }
        case TEAM_CT: {
            rg_set_user_model(pPlayer, fmt("%s", ctmodels[models[pPlayer]]));
        }
    }
}
public plugin_precache()
{
    for(new i;i<sizeof(tmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", tmodels[i], tmodels[i]));
    }
    for(new i;i<sizeof(ctmodels);i++) {
        precache_model(fmt("models/player/%s/%s.mdl", ctmodels[i], ctmodels[i]));
    }
    
}
@anamenu(id) {
    new bool:isTerrorist = bool:(get_member(id, m_iTeam) == TEAM_TERRORIST);
    
    new menu = menu_create(fmt("\d%s \w| \y%s Ozel Model Menu", tag, isTerrorist ? "T" : "CT"), isTerrorist ? "@tmodel_handler" : "@ctmodel_handler");
    
    if(isTerrorist) {
        for(new i = 0; i < sizeof(tmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, tmodels[i], tmodels[i][1]), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
            menu_additem(menu, fmt("\d%s \w| \y%s %d TL", tag, ctmodels[i], ctmodels[i][1]), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= tmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",tmodels[models[id]])
    rg_set_user_model(id, fmt("%s", tmodels[models[id]]));
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1 Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    para[id] -= ctmodels[key][1][0]
    client_print_color(id,id, "^1 Menuden ^4%s ^3Modelini Aktif Ettiniz",ctmodels[models[id]])
    rg_set_user_model(id, fmt("%s", ctmodels[models[id]]));
    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));
}

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);
}
Eklentiyi denemedim.Dönüş yaparsınız.
Malesef olmadı hocam , iki eklentiyide denedim fakat model yüklerken bir anda server çöküyor.

Menüye Ekleme hk.

Gönderilme zamanı: Cmt Kas 13, 2021 10:30 am
gönderen orucoglukayra
Dene bakalım o hatayı düzelttim, 3-5 birşey ekledim.

Kod: Tümünü seç

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

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

new models[MAX_CLIENTS+1],para[MAX_CLIENTS+1],satinaldi[MAX_CLIENTS+1][11];

new const tmodels[][][]={
    { "Arctic", 100 },
    { "Cj", 98 },
    { "Tommy", 96 }
};
new const ctmodels[][][]={
    { "Arctic", 100 },          
    { "Cj", 98 },
    { "Tommy", 96 }
};

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);
    
}
@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]));
        }
    }
}
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("\d%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("\d%s \w| \y%s %s", tag, tmodels[i][0], satinaldi[id][i] ? "SATIN ALINMIS":fmt("%d TL", tmodels[i][1])), fmt("%d", i));
        }
    }
    else {
        for(new i = 0; i < sizeof(ctmodels); i++) {
             menu_additem(menu, fmt("\d%s \w| \y%s %s", tag, ctmodels[i][0], satinaldi[id][i] ? "SATIN ALINMIS":fmt("%d TL", ctmodels[i][1])), fmt("%d", i));
        }
    }
    
    menu_setprop(menu, MPROP_EXITNAME, "\yCikis");
    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;
    if(para[id] < tmodels[key][1][0])
    {
        client_print_color(id,id, "^1Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    if(satinaldi[id][key])
    {
        client_print_color(id,id, "^1%s Adli Modeli Aktif Ettin.", tmodels[models[id]][0])
        rg_set_user_model(id, fmt("%s", tmodels[models[id]][0]));
        return PLUGIN_HANDLED;
    }
    satinaldi[id][key]++
    para[id] -= tmodels[key][1][0]
    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;
    if(para[id] < ctmodels[key][1][0])
    {
        client_print_color(id,id, "^1Paraniz yeterli degil.")
        return PLUGIN_HANDLED;
    }
    if(satinaldi[id][key])
    {
        client_print_color(id,id, "^1%s Adli Modeli Aktif Ettin.", ctmodels[models[id]][0])
        rg_set_user_model(id, fmt("%s", ctmodels[models[id]][0]));
        return PLUGIN_HANDLED;
    }
    satinaldi[id][key]++
    para[id] -= ctmodels[key][1][0]
    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);
    }
}