PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <crxranks>
#include <nvault>
#include <hamsandwich>
new g_Vault
new g_szAuthID[33][35];
new g_Class
// LEVEL 10
#define C_ONE_TEN "\wSamurai" //Change name for first class
#define C_TWO_TEN "\wSoldier" //Change name for second class
#define C_THREE_TEN "\wMage" //Change name for third class
// LEVEL 20
#define C_ONE_TW "\wNinja" //Change name for first class
#define C_TWO_TW "\wWizard" //Change name for second class
#define C_THREE_TW "\wTank" //Change name for third class
public plugin_init()
{
register_plugin("Class Menu for CRX", "1.1", "Mr. Boopsy");
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}
public plugin_cfg()
{
new g_Vault = nvault_open( "ClassID" );
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Error opening nVault" );
}
public plugin_end()
{
nvault_close( g_Vault );
}
public client_authorized(id)
{
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
new iClass = nvault_get( g_Vault , szKey );
if( iClass )
{
switch(iClass)
{
case 1:
{
set_user_health(id, 110);
set_user_gravity(id, 1.2);
}
case 2:
{
set_user_health(id, 120);
set_user_gravity(id, 1.3);
}
case 3:
{
set_user_health(id, 130);
set_user_gravity(id, 1.2);
}
case 4:
{
set_user_health(id, 130);
set_user_gravity(id, 1.2);
set_user_maxspeed(id, 1.5);
}
case 5:
{
set_user_health(id, 110);
set_user_gravity(id, 1.6);
set_user_maxspeed(id, 1.1);
}
case 6:
{
set_user_health(id, 190);
set_user_gravity(id, 0.8);
set_user_maxspeed(id, 0.8);
}
}
}
}
public crxranks_user_level_updated(id, level, bool:levelup)
{
new cLevel = crxranks_get_user_level(id);
if( cLevel == 10 )
{
rank_ten(id);
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
}
else if( cLevel == 20 )
{
rank_tw(id);
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
}
}
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_ONE_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_ONE_TW, "2", 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 = 1;
}
case 2:
{
rank_ten_c_two(id);
g_Class = 2;
}
case 3:
{
rank_ten_c_three(id);
g_Class = 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:
{
rank_tw_c_one(id);
g_Class = 4;
}
case 2:
{
rank_tw_c_two(id);
g_Class = 5;
}
case 3:
{
rank_tw_c_three(id);
g_Class = 6;
}
}
menu_destroy(menu_tw)
return PLUGIN_HANDLED
}
public rank_ten_c_one(id) //Samurai
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new Class[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( Class , charsmax( Class ) , "%d" , g_Class );
nvault_set( g_Vault , szKey , Class );
set_user_health(id, 110);
set_user_gravity(id, 1.2);
}
public rank_ten_c_two(id) //Soldier
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new szClass[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( szClass , charsmax( szClass ) , "%d", g_Class ); //Soldier
nvault_set( g_Vault , szKey , szClass );
set_user_health(id, 120);
set_user_gravity(id, 1.3);
}
public rank_ten_c_three(id) //Mage
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new szClass[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( szClass , charsmax( szClass ) , "%d", g_Class ); //Mage
nvault_set( g_Vault , szKey , szClass );
set_user_health(id, 130);
set_user_gravity(id, 1.2);
}
// LEVEL 20
public rank_tw_c_one(id) //Ninja
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new szClass[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( szClass , charsmax( szClass ) , "%d", g_Class ); //Ninja
nvault_set( g_Vault , szKey , szClass );
set_user_health(id, 130);
set_user_gravity(id, 1.2);
set_user_maxspeed(id, 1.5);
}
public rank_tw_c_two(id) //Wizard
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new szClass[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( szClass , charsmax( szClass ) , "%d", g_Class ); //Wizard
nvault_set( g_Vault , szKey , szClass );
set_user_health(id, 110);
set_user_gravity(id, 1.6);
set_user_maxspeed(id, 1.1);
}
public rank_tw_c_three(id) //Tank
{
get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) );
new szClass[5];
new szKey[40];
formatex( szKey , charsmax( szKey ) , "%sCLASS" , g_szAuthID[id] );
formatex( szClass , charsmax( szClass ) , "%d", g_Class ); //Tank
nvault_set( g_Vault , szKey , szClass );
set_user_health(id, 190);
set_user_gravity(id, 0.8);
set_user_maxspeed(id, 0.8);
}