|
Senior Member
Join Date: May 2020
Location: Serbia
|

06-20-2020
, 12:04
Re: Menu showing twice?
|
#2
|
Hey, I did some work, and this is where I am now
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <crxranks>
#include <nvault>
#include <CromChat>
#include <hamsandwich>
new g_Vault;
new g_szAuthID[33][35];
new g_Class[33];
const Float:DEFAULT_GRAVITY_I = 800.0
// LEVEL 10
#define C_ONE_TEN "\wRogue" //Change name for first class
#define C_RG_HP 90 //Rogue HP
#define C_RG_MS 75.0 //Rogue Added Movespeed || MAX SPEED MUST BE FLOAT!
#define C_RG_GV 750.0 //Rogue Gravity
#define C_TWO_TEN "\wDark Knight" //Change name for second class
#define C_DK_HP 135
#define C_DK_MS 0.0
#define C_DK_GV 800.0
#define C_THREE_TEN "\wWizard" //Change name for third class
#define C_WZ_HP 100
#define C_WZ_MS 15.0
#define C_WZ_GV 650.0
// LEVEL 20
#define C_ONE_TW "\wTrickster" //Change name for first class
#define C_TK_HP 115
#define C_TK_MS 150.0
#define C_TK_GV 650.0
#define C_TWO_TW "\wBlade Knight" //Change name for second class
#define C_BK_HP 185
#define C_BK_MS 35.0
#define C_BK_GV 700.0
#define C_THREE_TW "\wSoul Master" //Change name for third class
#define C_SM_HP 125
#define C_SM_MS 50.0
#define C_SM_GV 350.0
public plugin_init()
{
register_plugin("Class Menu for CRX", "2.0", "Mr. Boopsy");
register_clcmd("amx_resetclassID", "reset_id")
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1);
}
public plugin_cfg()
{
new g_Vault = nvault_open( "ClassIdByBoopsys" );
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Error opening nVault" );
}
public plugin_end()
{
nvault_close( g_Vault );
}
public client_authorized(id)
{
get_user_authid(id, g_szAuthID[id], charsmax(g_szAuthID[]));
}
public OnPlayerSpawn(id)
{
if(is_user_alive(id))
{
LoadClass_Has(id);
LoadClass_Spawn(id);
}
}
public crxranks_user_level_updated(id, level, bool:levelup)
{
new cLevel = crxranks_get_user_level(id);
if(is_user_alive(id))
{
if( cLevel == 10 )
{
rank_ten(id);
}
else if( cLevel == 20 )
{
rank_tw(id);
}
}
}
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:
{
rank_ten_c_one(id);
g_Class[id] = 1;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Rogue&x04!");
}
case 2:
{
rank_ten_c_two(id);
g_Class[id] = 2;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Dark Knight&x04!");
}
case 3:
{
rank_ten_c_three(id);
g_Class[id] = 3;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Wizard&x04!");
}
}
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:
{
rank_tw_c_one(id);
g_Class[id] = 4;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Trickster&x04!");
}
case 2:
{
rank_tw_c_two(id);
g_Class[id] = 5;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Blade Knight&x04!");
}
case 3:
{
rank_tw_c_three(id);
g_Class[id] = 6;
CC_SendMessage(id, "&x01>> &x04You choosed &x07Soul Master&x04!");
}
}
menu_destroy(menu_tw)
return PLUGIN_HANDLED
}
public rank_ten_c_one(id) // Rogue
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Rogue
nvault_set(g_Vault, szKey, szClass);
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));
}
public rank_ten_c_two(id) // Dark Knight
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Dark Knight
nvault_set(g_Vault, szKey, szClass);
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));
}
public rank_ten_c_three(id) // Wizard
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Wizard
nvault_set(g_Vault, szKey, szClass);
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));
}
// LEVEL 20
public rank_tw_c_one(id) // Trickster
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Trickster
nvault_set(g_Vault, szKey, szClass);
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));
}
public rank_tw_c_two(id) // Blade Knight
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Blade Knight
nvault_set(g_Vault, szKey, szClass);
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));
}
public rank_tw_c_three(id) // Soul Master
{
new szClass[20];
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
formatex(szClass, charsmax( szClass ), "%d", g_Class[id]); // Soul Master
nvault_set(g_Vault, szKey, szClass);
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));
}
public LoadClass_Has(id)
{
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
new iClass = nvault_get(g_Vault, szKey );
new cLevel = crxranks_get_user_level(id);
if( iClass != 1 && iClass != 2 && iClass != 3 && iClass != 4 && iClass != 5 && iClass != 6)
{
if( cLevel >= 10 && cLevel < 20 )
{
rank_ten(id);
}
if(cLevel >= 20)
{
rank_tw(id);
}
}
}
public LoadClass_Spawn(id)
{
new cLevel = crxranks_get_user_level(id);
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
new iClass = nvault_get(g_Vault, szKey );
if( cLevel >= 10 && cLevel < 20 )
{
switch(iClass)
{
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!");
}
}
}
else if( cLevel >= 20)
{
switch(iClass)
{
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 reset_id(id)
{
if(has_flag(id, "m"))
{
nvault_prune(g_Vault, 0, get_systime());
server_cmd("restart");
}
}
Main problem is in here, but I don't know why, does anyone have any idea?
PHP Code:
public LoadClass_Has(id)
{
new szKey[40];
formatex(szKey, charsmax( szKey ), "%sCLASS", g_szAuthID[id]);
new iClass = nvault_get(g_Vault, szKey );
new cLevel = crxranks_get_user_level(id);
if( iClass != 1 && iClass != 2 && iClass != 3 && iClass != 4 && iClass != 5 && iClass != 6)
{
if( cLevel >= 10 && cLevel < 20 )
{
rank_ten(id);
}
if(cLevel >= 20)
{
rank_tw(id);
}
}
}
__________________
Contact! || Discord:
Mr_Boopsy_#2066
|
|