Това е плъгин който позволява на играчи да ъпгрейдват оръжия според техния левел и техният флаг [ flag b = vip ] [flag u = admin] [flag a = s.admin].
Но искам да добавя опция която след купуване на ъпгред на оръжие или някакъв унлок да има опция която да позволява да премахне купуванпто от него унлок и да му върне хп то благодаря ! <3
КОДА >> това е част от целият плъгин ако този код не ви върши работа да добавите функцията ще кача целият плъгин!
Код за потвърждение: Избери целия код
public menus(id) { new menu = menu_create("[\rGunXP] \yUnlocks", "upgrades_menu"); new call = menu_makecallback("Call_Back"); gSelected[id] = 0; new szMsg[256]; format(szMsg, 255, "Knifes", (GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]) == g_numberofitems[UL_Knife]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]), g_numberofitems[UL_Knife]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Knife] ? -1 : call); format(szMsg, 255, "Pistols", (GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]) == g_numberofitems[UL_Pistol]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]), g_numberofitems[UL_Pistol]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Pistol] ? -1 : call); format(szMsg, 255, "Rifles", (GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]) == g_numberofitems[UL_Rifle]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]), g_numberofitems[UL_Rifle]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifle] ? -1 : call); format(szMsg, 255, "Granades", (GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]) == g_numberofitems[UL_Grenade]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]), g_numberofitems[UL_Grenade]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Grenade] ? -1 : call); format(szMsg, 255, "Items", (GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]) == g_numberofitems[UL_Item]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]), g_numberofitems[UL_Item]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Item] ? -1 : call); menu_setprop(menu, MPROP_EXITNAME, "Exit", MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) return PLUGIN_HANDLED; } public upgrades_menu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } gSelected[id] = item; g_menuPosition[id] = 0; display_item_upgrades(id, 0, item); menu_destroy(menu); return PLUGIN_HANDLED; } //ALL public display_item_upgrades(id, pos, selection) { static menuBody[510], len; len = 0; gSelected[id] = selection; if(pos < 0) return; new start = pos * 8 if(start >= g_numberofitems[selection]) start = pos = g_menuPosition[id]; len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", PlayerXp[id], LEVELS[PlayerLevel[id]]) new end = start + 8 new keys = MENU_KEY_0 if(end > g_numberofitems[selection]) end = g_numberofitems[selection]; new b = 0 for(new a = start; a < end; ++a) { new i = a + 1 new money, level money = PlayerXp[id] level = PlayerLevel[id] if( g_PlayerItem[id][selection][i] ) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else if(g_itemaccess[selection][i] == GUN_FIRST_ACCESS_ID && !(get_user_flags(id) & GUN_FIRST_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_FIRST_ACCESS_TEXT); else if(g_itemaccess[selection][i] == GUN_SECOND_ACCESS_ID && !(get_user_flags(id) & GUN_SECOND_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_SECOND_ACCESS_TEXT); else if(g_itemaccess[selection][i] == GUN_THIRD_ACCESS_ID && !(get_user_flags(id) & GUN_THIRD_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS", ++b, g_itemname[selection][i], GUN_THIRD_ACCESS_TEXT); else if(level < g_itemlevel[selection][i]) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else if(PatrArTuri(id, g_itemwpn[selection][i])) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_NO_MORE", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else if( money < g_itemcost[selection][i] ) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else { keys |= (1<<b) switch(g_itemaccess[selection][i]) { case GUN_FIRST_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_FIRST_ACCESS_TEXT) case GUN_SECOND_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_SECOND_ACCESS_TEXT) case GUN_THIRD_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_THIRD_ACCESS_TEXT) default: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) } } } if(end != g_numberofitems[selection]) { len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU") keys |= MENU_KEY_9 } else { len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU") } show_menu(id, keys, menuBody, -1, "Unlocks Shop") } public action_item_upgrades(id, key) { switch(key) { case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]); case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]); default: { ++key new money new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key] new item_id = g_menuPosition[id] * 8 + key new func = get_func_id("gxm_item_enabled", plugin_id) money = get_user_xp(id) new cost = g_itemcost[gSelected[id]][item_id]; if(money >= cost) { callfunc_begin_i(func, plugin_id) callfunc_push_int(id) callfunc_end() g_PlayerItem[id][gSelected[id]][item_id] = true Valid_Weapon[id][g_itemwpn[gSelected[id]][item_id]] = true new overall = money - cost set_user_xp(id, overall) CC_SendMessage(id, "&x03[&x04Gun&x05XP&x03] &x01Item Bought, Item: &x04%s.", g_itemname[gSelected[id]][item_id]) CC_SendMessage(id, "&x03[&x04Gun&x05XP&x04] &x01Descripcion: &x04%s.", g_itemdesc[gSelected[id]][item_id]) display_item_upgrades(id, g_menuPosition[id], gSelected[id]); } } } return PLUGIN_HANDLED; }