BANNED
Join Date: Jun 2010
Location: Georgia, Tbilisi
|
08-22-2010
, 16:22
title xp
|
#1
|
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define MAXCLASSES 5
new PlayerXP [ 33 ], PlayerLevel [ 33 ], PlayerClass [ 33 ]
//these are for special kills
new XP_Kill , XP_Knife , XP_Hs , SaveXP
//this is for Nvault. so that We can save XP
new g_vault
new const CLASSES [ MAXCLASSES ][] = {
"None" ,
"Dog" ,
"Cat" ,
"Horse" ,
"Admin"
}
new const LEVELS [ 7 ] = {
0 ,
100 , //this means you need 100 xp
200 , //this means you need 200 xp
400 , //this means you need 400 xp
800 , //so on
1600 , //so on
3200 //so on
}
public plugin_init ()
{
register_plugin ( "XpLif" , "0.1" , "LifIgor" )
//we need this to check your level after you kill some one
register_event ( "DeathMsg" , "eDeath" , "a" )
//is saving on?
SaveXP = register_cvar ( "SaveXP" , "1" )
//how many xp are u gonna get per kill?
XP_Kill = register_cvar ( "XP_per_kill" , "3" )
//if you get a hs you get bonus xp
XP_Hs = register_cvar ( "XP_hs_bonus" , "7" )
//if you make a knife kill you get bounus xp
XP_Knife = register_cvar ( "XP_knife_bonus" , "8" )
//we just opened a new connection NVAULT connection
// we will call it animod
g_vault = nvault_open ( "animod" )
// register a say command to change class
register_clcmd ( "say /class" , "ChangeClass" )
register_clcmd ( "say_team /class" , "ChangeClass" )
//show how much xp you have
register_clcmd ( "say /xp" , "ShowHud" )
register_clcmd ( "say_team /xp" , "ShowHud" )
}
public eDeath ( id )
{
new headshot = read_data ( 3 )
new attacker = read_data ( 1 )
new clip , ammo , weapon = get_user_weapon ( id , clip , ammo );
PlayerXP [ attacker ] += get_pcvar_num ( XP_Kill )
if( headshot )
PlayerXP [ attacker ] += get_pcvar_num ( XP_Hs )
if( weapon == CSW_KNIFE )
PlayerXP [ attacker ] += get_pcvar_num ( XP_Knife )
while( PlayerXP [ attacker ] >= LEVELS [ PlayerLevel [ attacker ]])
{
PlayerLevel [ attacker ] += 1
client_print ( attacker , print_chat , "[LifMod] Congratulations! You are a level %i %s!" , PlayerLevel [ attacker ], CLASSES [ PlayerClass [ attacker ]])
}
ShowHud ( attacker )
SaveData ( attacker )
}
public ShowHud ( id )
{
set_hudmessage ( 255 , 0 , 0 , 0.75 , 0.01 , 0 , 6.0 , 15.0 )
show_hudmessage ( id , "Level: %i^nXP: %i^nClass: %s" , PlayerLevel [ id ], PlayerXP [ id ], CLASSES [ PlayerClass [ id ]])
}
public ChangeClass ( id )
{
new menu = menu_create ( "Class Menu" , "Class_Handle" );
menu_additem ( menu , "Dog" , "1" , 0 );
menu_additem ( menu , "Cat" , "2" , 0 );
menu_additem ( menu , "Horse" , "3" , 0 );
menu_additem ( menu , "Admin" , "4" , 0 );
menu_setprop ( menu , MPROP_EXIT , MEXIT_ALL );
menu_display ( id , menu , 0 );
return PLUGIN_CONTINUE ;
}
public Class_Handle ( id , menu , item )
{
if( item == MENU_EXIT )
{
menu_destroy ( menu );
}
new szCommand [ 6 ] , szName [ 64 ];
new access , callback ;
menu_item_getinfo ( menu , item , access , szCommand , 5 , szName , 63 , callback );
new i = str_to_num ( szCommand )
if( PlayerClass [ id ] != i )
{
PlayerClass [ id ] = i
client_print ( id , print_chat , "You are now a %s" , CLASSES [ i ])
}
else
{
client_print ( id , print_chat , "You are alredy a %s" , CLASSES [ i ])
}
menu_destroy ( menu );
return PLUGIN_CONTINUE
}
public client_connect ( id )
{
// Only does it if xp saving is on
if( get_pcvar_num ( SaveXP ) == 1 )
{
// load your player data
LoadData ( id )
}
}
public client_disconnect ( id )
{
// Only does it if xp saving is on
if( get_pcvar_num ( SaveXP ) == 1 )
{
// lets save the data
SaveData ( id )
}
}
public SaveData ( id )
{
new AuthID [ 35 ]
get_user_authid ( id , AuthID , 34 )
new vaultkey [ 64 ], vaultdata [ 256 ]
format ( vaultkey , 63 , "%s-Mod" , AuthID )
format ( vaultdata , 255 , "%i#%i#" , PlayerXP [ id ], PlayerLevel [ id ])
nvault_set ( g_vault , vaultkey , vaultdata )
return PLUGIN_CONTINUE
}
public LoadData ( id )
{
new AuthID [ 35 ]
get_user_authid ( id , AuthID , 34 )
new vaultkey [ 64 ], vaultdata [ 256 ]
format ( vaultkey , 63 , "%s-Mod" , AuthID )
format ( vaultdata , 255 , "%i#%i#" , PlayerXP [ id ], PlayerLevel [ id ])
nvault_get ( g_vault , vaultkey , vaultdata , 255 )
replace_all ( vaultdata , 255 , "#" , " " )
new playerxp [ 32 ], playerlevel [ 32 ]
parse ( vaultdata , playerxp , 31 , playerlevel , 31 )
PlayerXP [ id ] = str_to_num ( playerxp )
PlayerLevel [ id ] = str_to_num ( playerlevel )
return PLUGIN_CONTINUE
}
how delete from this plugin class , menu and add on XP title e.g 1 kill 10 XP, and 800 XP title serious player
Last edited by lashsh; 08-22-2010 at 17:42.
|
|