Raised This Month: $ Target: $400
 0% 

Solved Menu showing twice?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 06-19-2020 , 22:49   Re: Menu showing twice?
Reply With Quote #3

So, after looking at it a little longer, I realized that the crxranks plugin actually makes this much simpler than what you were trying to do. You only need to call the menu when the crxranks_user_level_updated() gets triggered and the level is 10 or 20. Then, in the spawn function, you simply need to set the settings that apply to the player's class. Here is a quick version of your plugin that I crated (you'll need to add the includes and constants and stuff and maybe fix some syntax or other minor issues):

Code:
public plugin_init()
{
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1);
}

public OnPlayerSpawn(id)
{
	ApplyClassSettings(id)
}

public crxranks_user_level_updated(id, level, bool:levelup)
{
	switch( level )
	{
		case 10: rank_ten(id)
		case 20: rank_tw(id)
	}
}

SetPlayerClass(id, class)
{
	g_Class = class
	ApplyClassSettings(id, class)
}

ApplyClassSettings(id)
{
	if( is_user_alive(id) )
	{
		switch(g_Class)
		{
			case 1:
			{
				set_user_health(id, C_RG_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_RG_MS);
				set_user_gravity(id, ((C_RG_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Rogue&x04!");
			}
			case 2:
			{
				set_user_health(id, C_DK_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_DK_MS);
				set_user_gravity(id, ((C_DK_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Dark Knight&x04!");
			}
			case 3:
			{
				set_user_health(id, C_WZ_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_WZ_MS);
				set_user_gravity(id, ((C_WZ_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Wizard&x04!");
			}
			case 4:
			{
				set_user_health(id, C_TK_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_TK_MS);
				set_user_gravity(id, ((C_TK_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Trickster&x04!");
			}
			case 5:
			{
				set_user_health(id, C_BK_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_BK_MS);
				set_user_gravity(id, ((C_BK_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Blade Knight&x04!");
			}
			case 6:
			{
				set_user_health(id, C_SM_HP);
				set_user_maxspeed(id, get_user_maxspeed( id ) + C_SM_MS);
				set_user_gravity(id, ((C_SM_GV) / DEFAULT_GRAVITY_I))
				CC_SendMessage(id, "&x01>> &x04Your class was updated to &x07Soul Master&x04!");
			}
		}
	}
}

public rank_ten(id)
{
	new menu_ten = menu_create("\r[\wChoose Class\r]\r", "menu_ten_f")

	menu_additem(menu_ten, C_ONE_TEN, "1", 0)
	menu_additem(menu_ten, C_TWO_TEN, "2", 0)
	menu_additem(menu_ten, C_THREE_TEN, "3", 0)

	menu_setprop(menu_ten, MPROP_EXIT, MEXIT_ALL)

	menu_display(id, menu_ten, 0)
}

public rank_tw(id)
{
	new menu_tw = menu_create("\r[\wChoose Class\r]\r", "menu_tw_f")

	menu_additem(menu_tw, C_ONE_TW, "1", 0)
	menu_additem(menu_tw, C_TWO_TW, "2", 0)
	menu_additem(menu_tw, C_THREE_TW, "3", 0)

	menu_setprop(menu_tw, MPROP_EXIT, MEXIT_ALL)

	menu_display(id, menu_tw, 0)
}

public menu_ten_f(id, menu_ten, item_ten)
{
	if( item_ten == MENU_EXIT )
	{
		menu_destroy(menu_ten)
		return PLUGIN_HANDLED
	}
	new data_ten[6], iName_ten[64]
	new acces_ten, callback_ten
	menu_item_getinfo(menu_ten, item_ten, acces_ten, data_ten,5, iName_ten, 63, callback_ten)

	new key_ten = str_to_num(data_ten)

	switch( key_ten )
	{
		case 1: SetPlayerClass(id, 1)
		case 2: SetPlayerClass(id, 2)
		case 3: SetPlayerClass(id, 3)
	}

	menu_destroy(menu_ten)
	return PLUGIN_HANDLED
}

public menu_tw_f(id, menu_tw, item_tw)
{
	if( item_tw == MENU_EXIT )
	{
		menu_destroy(menu_tw)
		return PLUGIN_HANDLED
	}

	new data_tw[6], iName_tw[64]
	new acces_tw, callback_tw

	menu_item_getinfo(menu_tw, item_tw, acces_tw, data_tw,5, iName_tw, 63, callback_tw)

	new key_tw = str_to_num(data_tw)

	switch( key_tw )
	{
		case 1: SetPlayerClass(id, 4)
		case 2: SetPlayerClass(id, 5)
		case 3: SetPlayerClass(id, 6)
	}

	menu_destroy(menu_tw)
	return PLUGIN_HANDLED
}
__________________

Last edited by fysiks; 06-19-2020 at 22:59.
fysiks is offline
 



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 16:54.


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