1. konuyu zaten belirtmiştim bir fikrim yok.
2. konuda ise eklentide oyuncu çıkış yaptığında değişken sıfırlanmamış bu nedenle çıkan oyuncuyla yeni giren oyuncunun verileri karışıyor olabilir. Eklentide "Hep aynı silahları al" seçeneğine basarsanız oyuncu doğduğunda menü karşısına gelmez birdaha seçim yapmak için "/guns" yazmanız gerekir. buyur;
Kod: Tümünü seç
#include <amxmodx>
#include <cstrike>
#include <reapi>
new const PLUGIN[] = "Gun_Menu";
new const VERSION[] = "1.0";
new const AUTHOR[] = "akcaliberkk, By.KinG";
new const TAG[] = "T-IM GaminG";
new const KISATAG[] = "T-IM";
new Last_Primary[33][32], Last_Secondary[33][32];
new bool: Auto_ID[33];
new const Weapons_Name[] =
{
CSW_P228,
CSW_SCOUT,
CSW_XM1014,
CSW_MAC10,
CSW_AUG,
CSW_ELITE,
CSW_FIVESEVEN,
CSW_UMP45,
CSW_SG550,
CSW_GALIL,
CSW_FAMAS,
CSW_USP,
CSW_GLOCK18,
CSW_AWP,
CSW_MP5NAVY,
CSW_M249,
CSW_M3,
CSW_M4A1,
CSW_TMP,
CSW_G3SG1,
CSW_DEAGLE,
CSW_SG552,
CSW_AK47,
CSW_P90
}
new const Weapons_Max_Bp_Ammo[] =
{
52,
90,
32,
100,
90,
120,
100,
100,
90,
90,
90,
100,
120,
30,
120,
200,
32,
90,
120,
90,
35,
90,
90,
100
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /guns", "Activate_Menu");
register_clcmd("say /silah", "Activate_Menu");
register_clcmd("say /silahlar", "Activate_Menu");
register_clcmd("say /gun", "Activate_Menu");
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", 1);
}
public client_disconnected(id){
Auto_ID[id] = false;
Last_Primary[id][0] = EOS;
Last_Secondary[id][0] = EOS;
}
public Activate_Menu(ID)
{
Auto_ID[ID] = false;
client_print_color(ID, ID, "^3[BILGI] ^4Silah Menusu Aktif Edildi");
}
public CBasePlayer_Spawn(ID)
{
if(!is_user_alive(ID))
{
return PLUGIN_HANDLED;
}
rg_remove_all_items(ID);
rg_give_item(ID, "weapon_knife");
if(Auto_ID[ID])
{
rg_give_item(ID, Last_Primary[ID]);
rg_give_item(ID, Last_Secondary[ID]);
rg_give_item(ID, "weapon_hegrenade");
}
else
{
Gun_Menu(ID);
}
Refill_Weapons(ID);
return PLUGIN_HANDLED;
}
public Gun_Menu(ID)
{
static Item[128];
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \ySilah Menu", TAG);
new Menu = menu_create(Item, "Gun_Menu_Handler");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yYeni Silahlar Al", KISATAG);
menu_additem(Menu, Item, "1");
if(Last_Primary[ID][0] == 0 && Last_Secondary[ID][0] == 0)
{
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yOnceki Elde Alinan Silahlari Al", KISATAG);
menu_additem(Menu, Item, "9");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yHep Ayni Silahlari Al", KISATAG);
menu_additem(Menu, Item, "9");
}
else
{
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yOnceki Elde Alinan Silahlari Al", KISATAG);
menu_additem(Menu, Item, "2");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yHep Ayni Silahlari Al", KISATAG);
menu_additem(Menu, Item, "3");
}
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\r");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yGeri", KISATAG);
menu_setprop(Menu, MPROP_BACKNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yIleri", KISATAG);
menu_setprop(Menu, MPROP_NEXTNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yCikis", KISATAG);
menu_setprop(Menu, MPROP_EXITNAME, Item);
menu_display(ID, Menu, 0);
return PLUGIN_HANDLED;
}
public Gun_Menu_Handler(ID, Menu, Item)
{
if(Item == MENU_EXIT)
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
new Access, Data[6], Menu_Name[64], Call_Back;
menu_item_getinfo(Menu, Item, Access, Data, 5, Menu_Name, 63, Call_Back);
new Key = str_to_num(Data);
switch(Key)
{
case 1 :
{
Show_Primary_Menu(ID);
}
case 2 :
{
rg_give_item(ID, Last_Primary[ID]);
rg_give_item(ID, Last_Secondary[ID]);
rg_give_item(ID, "weapon_hegrenade");
Refill_Weapons(ID);
}
case 3 :
{
rg_give_item(ID, Last_Primary[ID]);
rg_give_item(ID, Last_Secondary[ID]);
rg_give_item(ID, "weapon_hegrenade");
Refill_Weapons(ID);
Auto_ID[ID] = true;
client_print_color(ID, ID, "^3[BILGI] ^4Silah Menusu Tekrar Gosterilmeyecek^1.^4Silah Menusunu Acmak Icin ^1: ^3/Guns ^1& ^3/Silah");
}
case 9 :
{
Gun_Menu(ID);
}
}
return PLUGIN_HANDLED;
}
public Show_Primary_Menu(ID)
{
static Item[128];
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yPrimary Weapon Menu", TAG);
new Menu = menu_create(Item, "Show_Primary_Menu_Handler");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yM4A1", KISATAG);
menu_additem(Menu, Item, "1");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yAK47", KISATAG);
menu_additem(Menu, Item, "2");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yAWP", KISATAG);
menu_additem(Menu, Item, "3");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yAUG", KISATAG);
menu_additem(Menu, Item, "4");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \ySG552", KISATAG);
menu_additem(Menu, Item, "5");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yFAMAS", KISATAG);
menu_additem(Menu, Item, "6");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yGALIL", KISATAG);
menu_additem(Menu, Item, "7");
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\r");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yGeri", KISATAG);
menu_setprop(Menu, MPROP_BACKNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yIleri", KISATAG);
menu_setprop(Menu, MPROP_NEXTNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yCikis", KISATAG);
menu_setprop(Menu, MPROP_EXITNAME, Item);
menu_display(ID, Menu, 0);
return PLUGIN_HANDLED;
}
public Show_Primary_Menu_Handler(ID, Menu, Item)
{
if(Item == MENU_EXIT)
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
new Access, Data[6], Menu_Name[64], Call_Back;
menu_item_getinfo(Menu, Item, Access, Data, 5, Menu_Name, 63, Call_Back);
new Key = str_to_num(Data);
switch(Key)
{
case 1 :
{
rg_give_item(ID, "weapon_m4a1");
formatex(Last_Primary[ID], 31, "weapon_m4a1");
Show_Secondary_Menu(ID);
}
case 2 :
{
rg_give_item(ID, "weapon_ak47");
formatex(Last_Primary[ID], 31, "weapon_ak47");
Show_Secondary_Menu(ID);
}
case 3 :
{
rg_give_item(ID, "weapon_awp");
formatex(Last_Primary[ID], 31, "weapon_awp");
Show_Secondary_Menu(ID);
}
case 4 :
{
rg_give_item(ID, "weapon_aug");
formatex(Last_Primary[ID], 31, "weapon_aug");
Show_Secondary_Menu(ID);
}
case 5 :
{
rg_give_item(ID, "weapon_sg552");
formatex(Last_Primary[ID], 31, "weapon_sg552");
Show_Secondary_Menu(ID);
}
case 6 :
{
rg_give_item(ID, "weapon_famas");
formatex(Last_Primary[ID], 31, "weapon_famas");
Show_Secondary_Menu(ID);
}
case 7 :
{
rg_give_item(ID, "weapon_galil");
formatex(Last_Primary[ID], 31, "weapon_galil");
Show_Secondary_Menu(ID);
}
}
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
public Show_Secondary_Menu(ID)
{
static Item[128];
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \ySecondary Weapon Menu", TAG);
new Menu = menu_create(Item, "Show_Secondary_Menu_Handler");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yDEAGLE", KISATAG);
menu_additem(Menu, Item, "1");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yUSP", KISATAG);
menu_additem(Menu, Item, "2");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yFIVESEVEN", KISATAG);
menu_additem(Menu, Item, "3");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yELITE", KISATAG);
menu_additem(Menu, Item, "4");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yP228", KISATAG);
menu_additem(Menu, Item, "5");
menu_setprop(Menu, MPROP_NUMBER_COLOR, "\r");
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yGeri", KISATAG);
menu_setprop(Menu, MPROP_BACKNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yIleri", KISATAG);
menu_setprop(Menu, MPROP_NEXTNAME, Item);
formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yCikis", KISATAG);
menu_setprop(Menu, MPROP_EXITNAME, Item);
menu_display(ID, Menu, 0);
return PLUGIN_HANDLED;
}
public Show_Secondary_Menu_Handler(ID, Menu, Item)
{
if(Item == MENU_EXIT)
{
menu_destroy(Menu);
return PLUGIN_HANDLED;
}
new Access, Data[32], Menu_Name[64], Call_Back;
menu_item_getinfo(Menu, Item, Access, Data, 5, Menu_Name, 63, Call_Back);
new Key = str_to_num(Data);
switch(Key)
{
case 1 :
{
rg_give_item(ID, "weapon_deagle");
formatex(Last_Secondary[ID], 31, "weapon_deagle");
Refill_Weapons(ID);
}
case 2 :
{
rg_give_item(ID, "weapon_usp");
formatex(Last_Secondary[ID], 31, "weapon_usp");
Refill_Weapons(ID);
}
case 3 :
{
rg_give_item(ID, "weapon_fiveseven");
formatex(Last_Secondary[ID], 31, "weapon_fiveseven");
Refill_Weapons(ID);
}
case 4 :
{
rg_give_item(ID, "weapon_elite");
formatex(Last_Secondary[ID], 31, "weapon_elite");
Refill_Weapons(ID);
}
case 5 :
{
rg_give_item(ID, "weapon_p228");
formatex(Last_Secondary[ID], 31, "weapon_p228");
Refill_Weapons(ID);
}
}
return PLUGIN_HANDLED;
}
stock Refill_Weapons(ID)
{
new Weapons[32], Num;
get_user_weapons(ID, Weapons, Num);
for(new i; i < Num; i++)
{
for(new a; a < sizeof(Weapons_Name); a++)
{
if(Weapons[i] == Weapons_Name[a])
{
cs_set_user_bpammo(ID, Weapons[i], Weapons_Max_Bp_Ammo[a]);
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/