Counter-Strike 1.6
HH-GaminG.EU #GunGame
91.134.123.43:27015
gg_aztec_vs_dust
Играчи: 10/28
gg_aztec_vs_dust
Counter-Strike 1.6
[BG] GODLIKE # Dust2 / Classic + VIP 45.144.155.164:27015 de_dust2 Играчи: 10/32
Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] 45.144.155.113:27015 de_dust2 Играчи: 0/31
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_sk_ak_m4 Играчи: 4/16
Counter-Strike 1.6
VIP
45.144.155.171:27015 ★ [ZM]ImperialCS Zombie Plague Mega|Fast SaveAP Jetpack+GoldenAK zm_five 16/32

Помощ Добавяне на Функция

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Smurfasx
Извън линия
Потребител
Потребител
Мнения: 8
Регистриран на: 20 Окт 2023, 16:55
Обратна връзка:

Помощ Добавяне на Функция

Мнение от Smurfasx » 20 Окт 2023, 17:03

Здравейте, Извинявам се ако съм постнал темата на грешно място. Преместете я ако е така.

Това е плъгин който позволява на играчи да ъпгрейдват оръжия според техния левел и техният флаг [ flag b = vip ] [flag u = admin] [flag a = s.admin].

Но искам да добавя опция която след купуване на ъпгред на оръжие или някакъв унлок да има опция която да позволява да премахне купуванпто от него унлок и да му върне хп то благодаря ! <3

КОДА >> това е част от целият плъгин ако този код не ви върши работа да добавите функцията ще кача целият плъгин! :bg: :tnx:

Код за потвърждение: Избери целия код

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

Аватар
Hurricane
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 219
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 21 пъти
Получена благодарност: 82 пъти

Re: Помощ Добавяне на Функция

Мнение от Hurricane » 20 Окт 2023, 19:30

Може да е достатачен, но за всеки случай качи целия код
Довечера ще погледна

Аватар
Smurfasx
Извън линия
Потребител
Потребител
Мнения: 8
Регистриран на: 20 Окт 2023, 16:55
Обратна връзка:

Re: Помощ Добавяне на Функция

Мнение от Smurfasx » 20 Окт 2023, 20:17

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <gunxpmod>

#define PLUGIN	"GunXP Shop"
#define AUTHOR	"xbatista"
#define VERSION	"2.0"

#define MAX_UNLOCKS 40
#define MAX_UNLOCKS_NAME_SIZE 64
#define MAX_UNLOCKS_DESC_SIZE 128
// a
new g_menuPosition[33], gSelected[33];

enum _:iUnlocks
{ 
  UL_Knife,  
  UL_Pistol,
  UL_Rifles,
  UL_Grenade,
  UL_Items,
  UL_VIP
};

//all
new g_numberofitems[iUnlocks];
new g_itemindex[iUnlocks][MAX_UNLOCKS+1];
new g_itemcost[iUnlocks][MAX_UNLOCKS+1];
new g_itemlevel[iUnlocks][MAX_UNLOCKS+1];
new g_itemaccess[iUnlocks][MAX_UNLOCKS+1];
new g_itemname[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1];
new g_itemdesc[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1];
new g_itemwpn[iUnlocks][MAX_UNLOCKS+1];
new bool:g_PlayerItem[33][iUnlocks][MAX_UNLOCKS+1];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_dictionary("gunxpmod.txt");

register_clcmd("say /unlocks", "menus")
register_clcmd("say unlocks", "menus")
register_clcmd("say /ul", "menus")
register_clcmd("say ul", "menus")
register_clcmd("say /noriuvip", "motd")	
register_clcmd("say /buyvip", "motd")	

register_clcmd("say /buyxp", "buyxp")	
register_clcmd("say buyxp", "buyxp")	

register_menucmd(register_menuid("Unlocks Shop"), 1023, "action_item_upgrades");
}

public motd(id) {
show_motd(id, "", "VIP Buy");
return PLUGIN_HANDLED;
}

public buyxp(id) {
show_motd(id, "http://cs-golden.lt/gunxp/index.php?get=paprastas", "VIP Buy");
return PLUGIN_HANDLED;
}

public client_connect(id)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
	for(j = 0; j <= MAX_UNLOCKS; ++j)
		g_PlayerItem[id][i][j] = false;
}

public menus(id)
{
	new menu = menu_create("\yUpgrade Menu", "upgrades_menu");
	new call = menu_makecallback("Call_Back");
	gSelected[id] = 0;
	new szMsg[256];
	
	format(szMsg, 255, "Knifes (%s%d\w/\r%d)", (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, "Pistol (%s%d\w/\r%d)", (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 (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Rifles], g_numberofitems[UL_Rifles]) == g_numberofitems[UL_Rifles]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Rifles], g_numberofitems[UL_Rifles]), g_numberofitems[UL_Rifles]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifles] ? -1 : call);
	
	format(szMsg, 255, "Grenades (%s%d\w/\r%d)", (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 (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_Items], g_numberofitems[UL_Items]) == g_numberofitems[UL_Items]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Items], g_numberofitems[UL_Items]), g_numberofitems[UL_Items]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Items] ? -1 : call);
	
	format(szMsg, 255, "Only VIP/ADMIN (%s%d\w/\r%d)", (GetItemCount(g_PlayerItem[id][UL_VIP], g_numberofitems[UL_VIP]) == g_numberofitems[UL_VIP]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_VIP], g_numberofitems[UL_VIP]), g_numberofitems[UL_VIP]);
	menu_additem(menu, szMsg, _, _, g_numberofitems[UL_VIP] ? -1 : call);
	
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	
	menu_display(id, menu, 0);
	
	return PLUGIN_HANDLED;
}

public Call_Back(id, menu, item)
	return ITEM_DISABLED;

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

public plugin_natives()
{
	register_native("register_gxm_item", "register_unlock")
	register_native("register_item_gxm", "register_unlock")
}

public register_unlock(plugin, params)
{
	static item_section
	item_section = get_param(5)-1
	
	g_numberofitems[item_section]++;
	g_itemindex[item_section][g_numberofitems[item_section]] = plugin;
	get_string(1, g_itemname[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_NAME_SIZE)
	get_string(2, g_itemdesc[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_DESC_SIZE)
	g_itemcost[item_section][g_numberofitems[item_section]] = get_param(3);
	g_itemlevel[item_section][g_numberofitems[item_section]] = get_param(4);
	g_itemaccess[item_section][g_numberofitems[item_section]] = get_param(6) ? get_param(6) : 0;
	g_itemwpn[item_section][g_numberofitems[item_section]] = get_param(7);
}

//ALL
public display_item_upgrades(id, pos, selection)
{
	if(!is_user_alive(id)) 
		return;
	
	static menuBody[510], len;
	len = 0;
	gSelected[id] = selection;
	
	if(pos < 0)
		return;
	
	new start = pos * 7
	if(start >= g_numberofitems[selection])
		start = pos = g_menuPosition[id];
	
	len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id))
	
	new end = start + 7
	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 = get_user_xp(id)
		level = get_user_level(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:
	{
	if(!is_user_alive(id))
		return PLUGIN_HANDLED;
			
	++key
	
	new money
	new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 7 + key]		
	new item_id = g_menuPosition[id] * 7 + 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
				
		new overall = money - cost
		set_user_xp(id, overall)
				
		client_printcolor(id, "/yItem Bought Successfully, Item: /g%s.", g_itemname[gSelected[id]][item_id])
		client_printcolor(id, "/yDescription: /g%s.", g_itemdesc[gSelected[id]][item_id])
		display_item_upgrades(id, g_menuPosition[id], gSelected[id]);
			}
		}
	}
	return PLUGIN_HANDLED;
}

stock client_printcolor ( const id, const input[], any:... )
{
	new iCount = 1, iPlayers[32]
	
	new sNewMsg[191]
	vformat( sNewMsg, charsmax ( sNewMsg ), input, 3 )
	format ( sNewMsg, charsmax ( sNewMsg ), "^4[GunXP]^1 %s", sNewMsg )
	
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/g", "^4") // green txt
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/y", "^1") // orange txt
	replace_all ( sNewMsg, charsmax ( sNewMsg ), "/t", "^3") // team txt
	
	if ( id )
		iPlayers[0] = id
	else
		get_players ( iPlayers, iCount, "ch" )
	
	for ( new i; i < iCount; i++ )
	{
		if ( is_user_connected ( iPlayers[i] ) )
		{
			message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, iPlayers[i] )
			write_byte ( iPlayers[i])
			write_string ( sNewMsg)
			message_end ()
		}
	}
}

stock bool:PatrArTuri(id, wpn)
{
	static i, j
	for(i = 0; i < iUnlocks; ++i)
	{
		for(j = 0; j <= MAX_UNLOCKS; ++j)
		{
			if(g_PlayerItem[id][i][j])
			{
				if(g_itemwpn[i][j] == wpn)
					return true
			}
		}
	}
	
	return false
}

GetItemCount(array[], size) 
{ 
    new count = 0; 

    for(new i = 1; i <= size; i++) 
        if(array[i]) 
            count++; 
     
    return count; 
}  
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/

Аватар
Hurricane
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 219
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 21 пъти
Получена благодарност: 82 пъти

Re: Помощ Добавяне на Функция

Мнение от Hurricane » 20 Окт 2023, 23:55

Дай и библиотеката !

Аватар
Smurfasx
Извън линия
Потребител
Потребител
Мнения: 8
Регистриран на: 20 Окт 2023, 16:55
Обратна връзка:

Re: Помощ Добавяне на Функция

Мнение от Smurfasx » 21 Окт 2023, 02:39

  • Код за потвърждение: Избери целия код

    // Gun Xp Mod Include File //
    #if defined _gunxpmod_included
      #endinput
    #endif
    #define _gunxpmod_included
    
    #if !defined charsmax
        #define charsmax(%1) sizeof(%1)-1
    #endif 
    
    //Unlocks levels defined
    #define GUN_SECTION_KNIFE 1
    #define GUN_SECTION_PISTOL 2
    #define GUN_SECTION_RIFLE 3
    #define GUN_SECTION_GRENADES 4
    #define GUN_SECTION_ITEMS 5
    #define GUN_SECTION_VIP 6 
    
    //Access unlocks
    #define GUN_FIRST_ACCESS_ID 1
    #define GUN_FIRST_ACCESS ADMIN_LEVEL_H
    #define GUN_FIRST_ACCESS_TEXT "Require VIP access"
    
    #define GUN_SECOND_ACCESS_ID 2
    #define GUN_SECOND_ACCESS ADMIN_BAN
    #define GUN_SECOND_ACCESS_TEXT "Require ADMIN access"
    
    #define GUN_THIRD_ACCESS_ID 3
    #define GUN_THIRD_ACCESS ADMIN_IMMUNITY
    #define GUN_THIRD_ACCESS_TEXT "Require SADMIN access"
    
    //Class PIRCES
    #define CLASS_PRICE_XP 1
    #define CLASS_PRICE_PR 2
    
    //Unlocks CSW
    #define CSW_SANDBAGS 33
    
    //POWERS******
    native load_powers();
    
    native get_bonus_xp(id); //Get bonus XP
    native get_k1asus(id); //Get k1asus count
    native get_supp_box(id); //Get supply box XP from
    native get_forcefield_time(id); //Get force field additional time
    native get_pipe_radius(id); //Get percent of additional radius
    //************
    
    //get if loaded levels
    native gxm_level_loaded(id);
    
    //save user level/xp/prestige
    native gxm_save_level(id);
    
    //get user save type
    native get_user_save_type(id);
    
    // Returns player Experience.
    native get_user_xp(id)
    
    // Sets player Experience.
    native set_user_xp(id, amount)
    
    // Returns player Prestige.
    native get_user_prestige(id)
    
    // Sets player Prestige.
    native set_user_prestige(id, amount)
    
    // Returns player Level.
    native get_user_level(id)
    
    // Sets player Level.
    native set_user_level(id, amount)
    
    // Returns player Level by Xp.
    native get_user_max_level(id)
    
    // Register Item.
    stock find_itemplugin()
    {
    	for(new i = 0; i < get_pluginsnum(); ++i)
    	{
    		new temp[2], name[64]
    		get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1)
     		if(equali(name, "gunxpmod_shop.amxx")) {
     			return i;
    		}
    	}
     	return -1;
    }
    
    stock find_itemindex()
    {
    	new temp[2], name[64], pluginname[64]
    	get_plugin(-1, pluginname, 63, temp, 1, temp, 1, temp, 1, temp, 1)
    	for (new i = 0; i < get_pluginsnum(); ++i)
    	{
    		get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1)
     		if(equal(name, pluginname))
    		{
     			return i
    		}
    	}
     	return -1
    }
    
    native register_gxm_item(item_name[], item_desc[], item_cost, item_level, item_section, item_access, weapon)
    native register_item_gxm(item_name[], item_desc[], item_cost, item_level, item_section, item_access)
    
    // Register Skills.
    stock find_skillplugin()
    {
    	for(new i = 0; i < get_pluginsnum(); ++i)
    	{
    		new temp[2], name[64]; get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1);
     		if(equali(name, "gunxpmod_powers.amxx")) { return i; }
    	}
     	return -1;
    }
    
    stock find_skillindex()
    {
    	new temp[2], name[64], pluginname[64];
    	get_plugin(-1, pluginname, 63, temp, 1, temp, 1, temp, 1, temp, 1);
    	for (new i = 0; i < get_pluginsnum(); ++i) {
    		get_plugin(i, name, 63, temp, 1, temp, 1, temp, 1, temp, 1);
     		if(equal(name, pluginname)) { return i; }
    	}
     	return -1
    }
    
    stock register_gxm_apwr(skill_name[], skill_desc[], skill_cost, skill_level, skill_access)
    {
    	new skill_index = find_skillindex(), skillplugin = find_skillplugin();
    	new itemregfunc = get_func_id("register_apwr_gxm", skillplugin);
    
    	new temp = callfunc_begin_i(itemregfunc, skillplugin);
    	if(temp == -1 || temp == -2)
    	{
    		if(temp == -2) { log_amx("You have to many skill and need to increase the MAX_SKILLS define!"); }
    		else { log_amx("A unkown error has happend, make sure the Skills plugin is loaded!"); }
    		
    		return PLUGIN_HANDLED;
    	}
    
    	callfunc_push_int(skill_index);
    	callfunc_push_str(skill_name);
    	callfunc_push_str(skill_desc);
    	callfunc_push_int(skill_cost);
    	callfunc_push_int(skill_level);
    	callfunc_push_int(skill_access);
    	
    	temp = callfunc_end();
    	if(temp == -1 || temp == -2) { return PLUGIN_HANDLED; }
    	
    	return temp;
    }

Аватар
Hurricane
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 219
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 21 пъти
Получена благодарност: 82 пъти

Re: Помощ Добавяне на Функция

Мнение от Hurricane » 22 Окт 2023, 01:21

???

Код за потвърждение: Избери целия код


name               version     author            file             status   
unknown            unknown     unknown           Untitled.amxx    bad load 

Аватар
Smurfasx
Извън линия
Потребител
Потребител
Мнения: 8
Регистриран на: 20 Окт 2023, 16:55
Обратна връзка:

Re: Помощ Добавяне на Функция

Мнение от Smurfasx » 22 Окт 2023, 09:23

брат това е плъгин който не може да работи самостоятелно, трябва да се свърже със гънхпмод системата но кода за добавяне на функцията се добавя във този плъгин нужно ли е да го тестваш че да добавиш функцията, Имаш инц файл имаш и кода от плъгина! :think: :think:

Аватар
Hurricane
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 219
Регистриран на: 04 Юни 2022, 21:18
Се отблагодари: 21 пъти
Получена благодарност: 82 пъти

Re: Помощ Добавяне на Функция

Мнение от Hurricane » 22 Окт 2023, 10:03

Не ми е нужно да го тествам за да добавя "функцията" но след добавянето му трябва да го тествам.
Тази вечер ще ти дам няколко примера ти ги пробвай

Аватар
DarkGameR
Извън линия
Потребител
Потребител
Мнения: 43
Регистриран на: 31 Май 2020, 19:05
Местоположение: Видин
Обратна връзка:

Re: Помощ Добавяне на Функция

Мнение от DarkGameR » 09 Ное 2023, 23:12

някой ?
[ZombiePlanet.net] Umbrella Swarm & GunXP [ High-XP ] 24/7
IP: None


:nicecode: :bg:

Изображение

Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Ahrefs [Bot], Bing [Bot] и 1 гост