kullanımı basit constlarda ve define kısmında oynama yapacaksın. düzenleyeceğin kısmı const weapons'ta en üst satırda belirttim.
Kod: Tümünü seç
#pragma semicolon 1
#include <amxmodx>
#include <reapi>
new const tag[]="CSDuragi";
new const kisatag[]="CSD";
#define filename "CSD"
new const weapons[][][]={
{"Silah Ismi","V_Modeli",CSW_M4A1,0},
{"m4a1-s_skin1","v_m4a1s1",CSW_M4A1,1},
{"m4a1-s_skin2","v_m4a1s2",CSW_M4A1,1},
{"m4a1-s_skin3","v_m4a1s3",CSW_M4A1,1},
{"m4a4_skin1","v_m4a41",CSW_M4A1,2},
{"m4a4_skin2","v_m4a42",CSW_M4A1,2},
{"m4a4_skin3","v_m4a43",CSW_M4A1,2}
};
new g_used[33][1];
public plugin_init(){
register_plugin("Weapon Menu","0.1","hayku");
register_clcmd("say /m4","anamenu");
register_event("CurWeapon","e_CurWeap","be","1=1");
}
public plugin_precache(){
for(new i=1;i<sizeof(weapons);i++){
if(strlen(weapons[i][0])>0){
new model[196]; formatex(model,charsmax(model),"models/%s/%s.mdl",filename,weapons[i][1]);
precache_model(model);
}
}
}
public e_CurWeap(id){
if(is_user_alive(id)&&is_user_connected(id)){
new wid=get_user_weapon(id);
if(g_used[id][wid]>0&&weapons[g_used[id][wid]][2][0]==wid){
new model[195]; formatex(model,charsmax(model),"models/%s/%s.mdl",filename,weapons[g_used[id][wid]][1]);
set_entvar(id,var_viewmodel,model);
}
}
}
public anamenu(id){
new menu; static menux[512];
formatex(menux,charsmax(menux),"\r%s \y/\w/ \wSilah Menu",tag),menu=menu_create(menux,"anamenu1");
formatex(menux,charsmax(menux),"%s \d/\y/ \rM4A1-S \wSkinleri",kisatag),menu_additem(menu,menux,"1");
formatex(menux,charsmax(menux),"%s \d/\y/ \rM4A4 \wSkinleri",kisatag),menu_additem(menu,menux,"2");
menu_setprop(menu,MPROP_EXITNAME,"Cikis");
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
menu_display(id,menu,0);
}
public anamenu1(id,menu,item){
if(item==MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; }
new access,callback,data[6],iname[64]; menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
new key=str_to_num(data);
switch(key){
case 1 : m4a1smenu(id);
case 2 : m4a4menu(id);
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public m4a1smenu(id){
new menu; static menux[512];
formatex(menux,charsmax(menux),"\r%s \y/\w/ \rM4A1-S \wSkinleri",tag),menu=menu_create(menux,"m4a1smenu1");
for(new i=1;i<sizeof(weapons);i++){
if(strlen(weapons[i][0])>0&&g_used[id][weapons[i][2][0]]==0){
if(weapons[i][3][0]==1){
new nts[10]; num_to_str(i,nts,charsmax(nts));
formatex(menux,charsmax(menux),"%s \d/\y/ \r%s",kisatag,weapons[i][0]),menu_additem(menu,menux,nts);
}
}
}
menu_setprop(menu,MPROP_EXITNAME,"Cikis");
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
menu_display(id,menu,0);
}
public m4a1smenu1(id,menu,item){
if(item==MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; }
new access,callback,data[6],iname[64]; menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
new key=str_to_num(data);
for(new i=CSW_P228;i<=CSW_P90;i++){
if(weapons[key][2][0]==i){
rg_give_item(id, "weapon_m4a1");
g_used[id][i]=key;
e_CurWeap(id);
client_print_color(id,id,"^3[^4%s^3] ^1Basarili bir sekilde ^4[^3%s^4] ^1satin aldiniz.",tag,weapons[key][0]);
return PLUGIN_HANDLED;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public m4a4menu(id){
new menu; static menux[512];
formatex(menux,charsmax(menux),"\r%s \y/\w/ \rM4A4 \wSkinleri",tag),menu=menu_create(menux,"m4a4menu1");
for(new i=1;i<sizeof(weapons);i++){
if(strlen(weapons[i][0])>0&&g_used[id][weapons[i][2][0]]==0){
if(weapons[i][3][0]==2){
new nts[10]; num_to_str(i,nts,charsmax(nts));
formatex(menux,charsmax(menux),"%s \d/\y/ \r%s",kisatag,weapons[i][0]),menu_additem(menu,menux,nts);
}
}
}
menu_setprop(menu,MPROP_EXITNAME,"Cikis");
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL);
menu_display(id,menu,0);
}
public m4a4menu1(id,menu,item){
if(item==MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; }
new access,callback,data[6],iname[64]; menu_item_getinfo(menu,item,access,data,5,iname,63,callback);
new key=str_to_num(data);
for(new i=CSW_P228;i<=CSW_P90;i++){
if(weapons[key][2][0]==i){
rg_give_item(id, "weapon_m4a1");
g_used[id][i]=key;
e_CurWeap(id);
client_print_color(id,id,"^3[^4%s^3] ^1Basarili bir sekilde ^4[^3%s^4] ^1satin aldiniz.",tag,weapons[key][0]);
return PLUGIN_HANDLED;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}