|
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
|

06-19-2020
, 22:49
Re: Menu showing twice?
|
#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.
|
|