Raised This Month: $12 Target: $400
 3% 

[RU] Легко настраиваемое бонусное меню


  
 
 
Thread Tools Display Modes
Author Message
TryNoob
BANNED
Join Date: Aug 2011
Old 03-18-2012 , 12:50   [RU] Легко настраиваемое бонусное меню
#1

Всем доброго времени суток.

Пытаюсь сделать легко настраиваемое бонусное меню, но столкнулся с проблемой - не могу придумать, как установить стоимость покупки для какого-то определенного бонуса и распознания его в Handler-е. Хочется сделать что-то вроде "Стоимость для строки (Cost[String])". Вот мой вариант кода:
Code:
public BonusMenuHandler(Handle:menu, MenuAction:actio, client, param2)
{
	if(GetConVarBool(CvarEnable))
		if(ValidPlayer(client, false))
		{
			if(action == MenuAction_Select)
			{
				decl String:info[32];
				GetMenuItem(menu, param2, info, sizeof(info));
				if(StrEqual(info, "del"))
				{
					Delete!
				}
				else if(StrEqual(info, "rotate"))
				{
					Rotate!
				}
			}
			DisplayMenu(BuildBonusMenu(client), client, 30);
		}
}

stock Handle:BuildBonusMenu(client)
{
	new Handle:MenuBonus = CreateMenu(BonusMenuHandler);
	decl String:BonusTitle[256];
	Format(BonusTitle, sizeof(BonusTitle), "%t", "%s Bonus Menu", Prefix);
	SetMenuTitle(MenuBonus, BonusTitle);
	
	decl String:file[255];
	new Handle:kv = CreateKeyValues("Bonus");
	BuildPath(Path_SM, file, sizeof(file), "configs/props/bonus_menu.txt");
	FileToKeyValues(kv, file);
	if(KvGotoFirstSubKey(kv))
	{
		decl String:name[255];
		decl String:info[255];
		decl String:cost[255];
		new index=0;
		do
		{
			index++;
			KvGetSectionName(kv, name, sizeof(name));
			KvGetString(kv, "info", info, sizeof(info));
			KvGetString(kv, "cost", cost, sizeof(cost));
			if(!StrEqual(info, "disable"))
			{
				StringToInt(cost);
				Cost[info]=cost;
				if(TimeBuild > 0)
					AddMenuItem(MenuBonus, info, name);
				else
					AddMenuItem(MenuBonus, info, name, ITEMDRAW_DISABLED);
			}
		}
		while(KvGotoNextKey(kv));
	}	
	CloseHandle(kv);
	
	SetMenuExitButton(MenuBonus, true);
	return MenuBonus;
}
Кто может помогите пожалуйста (не пишу в по англ., т.к. боюсь совершить уйму ошибок).

PS Мне кажется это будет немного грузить сервер, но как сделать легче просто не соображу..

Last edited by TryNoob; 03-18-2012 at 12:51.
TryNoob is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:19.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode