Re: need help with...
The code that you posted (in the first post) is incomplete. You are missing several functions. That is why it's not working. Basically the whole plugin is failing.
The three functions that are missing are commented in plugin_init(). Also, I change your if statements in skill() to elseifs but you really should use a switch(). I cleaned up the style too :).
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta_util>
#include <cstrike>
#define MAXCLASSES 6
#define PREFIX "Simpsonu Modas"
enum {
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3, // How many Levels
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6
}
enum {
CLASS_NONE = 0,
CLASS_Megie,
CLASS_Marge,
CLASS_Bartas, // Add your Classes there..
CLASS_Liza,
CLASS_Houmeris,
}
new const CLASSES[MAXCLASSES][] = {
"None",
"Mege",
"Marge",
"Bartas",
"Liza",
"Houmeris"
};
new const LEVELS[7] = {
100,
200,
400,
800,
1600,
3200,
4000
};
new PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new gCvar_Kill, gCvar_Knife, gCvar_HS, gCvar_Enable, g_Vault;
public plugin_init()
{
register_plugin("Simpsons Mod", "1.0", "Drakeris");
register_event("DeathMsg", "eDeath", "a");
// register_event("ResetHUD", "resetModel", "b")
register_event("ResetHUD", "skill", "be");
gCvar_Enable = register_cvar("xp_save", "1");
gCvar_Kill = register_cvar("xp_per_kill", "20");
gCvar_HS = register_cvar("xp_hs_bonus", "20");
gCvar_Knife = register_cvar("xp_Knife_bonus", "20");
g_Vault = nvault_open("animod");
// register_concmd("amx_paimt_exp", "cmd_paimt_exp", ADMIN_KICK, "<target> <amount>");
// register_concmd("amx_dot_exp", "cmd_dot_exp", ADMIN_KICK, "<target> <amount>");
register_clcmd("say /class", "ChangeClass");
register_clcmd("say_team /class", "ChangeClass");
register_clcmd("say /level", "ShowHud");
register_clcmd("say_team /level", "ShowHud");
}
public plugin_precache()
{
precache_model("models/player/witch/witch.mdl")
}
public eDeath()
{
new attacker = read_data( 1 );
new headshot = read_data( 3 );
new clip, ammo, weapon = get_user_weapon(attacker, clip, ammo);
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
if(headshot)
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
client_print(attacker, print_chat, "[%s] Congratulations! You are a level %i %s!", PREFIX, PlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
PlayerLevel[attacker] += 1;
}
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)
{
client_print(id, print_chat, "Hello")
new menu = menu_create("Class Menu" , "Class_Handle");
menu_additem(menu ,"Marge", "1" , 0);
menu_additem(menu ,"Bartas", "2" , 0);
menu_additem(menu ,"Liza", "3" , 0);
menu_additem(menu ,"Houmeris", "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,"[%s] Tu pasirinkai %s", PREFIX, CLASSES[i]);
}
else
{
client_print(id,print_chat,"[%s] Tu jau esi %s", PREFIX, CLASSES[i]);
}
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
public client_connect(id)
{
if(get_pcvar_num(gCvar_Enable) == 1)
LoadData(id);
}
public client_disconnect(id)
{
if(get_pcvar_num(gCvar_Enable) == 1)
SaveData(id);
PlayerXP[id] = 0;
PlayerLevel[id] = 0;
PlayerClass[id] = 0;
}
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;
}
// doti/paimti XP addaon by Drakeris
public cmd_doti_exp( id, level,cid )
{
if( ! cmd_access ( id, level, cid, 3 ) )
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 );
read_argv(2, amount, 20 );
read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( ! player )
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name( id, admin_name, 31 );
get_user_name( player, player_name, 31 );
new expnum = str_to_num( amount );
PlayerXP[player] += expnum;
switch( get_cvar_num ( "amx_show_activity" ) )
{
case 1: client_print( 0, print_chat, "ADMINAS: Dave %i Tasku %s.", expnum, player_name );
case 2: client_print( 0, print_chat, "ADMINAS %s: Dave %i tasku %s.", admin_name, expnum, player_name );
}
client_print( player, print_chat, "[%s] You received %i points. (Total: %d)", PREFIX, expnum, PlayerXP[player] );
SaveData( id );
return PLUGIN_CONTINUE;
}
public cmd_paimti_exp( id, level,cid ) {
if( ! cmd_access ( id, level, cid, 3 ) )
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 );
read_argv( 2, amount, 20 );
read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( !player )
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name( id, admin_name, 31 );
get_user_name( player, player_name, 31 );
new expnum = str_to_num( amount );
PlayerXP[player] -= expnum;
switch(get_cvar_num("amx_show_activity"))
{
case 1: client_print( 0, print_chat, "ADMINAS: ateme %i taskus is %s.", expnum, player_name );
case 2: client_print( 0, print_chat, "ADMINAS %s: ateme %i taskus is %s.", admin_name, expnum, player_name );
}
client_print( player, print_chat, "[%s] Tu praradai %i exp (isviso: %d)", PREFIX, expnum, PlayerXP[player] );
SaveData( id );
return PLUGIN_CONTINUE;
}
public skill(id)
{
if(PlayerClass[id] == CLASS_Houmeris)
{
set_user_health(id, 100); // Jei tu esi homeris tau duoda 100hp
give_item(id,"weapon_knife");
set_user_armor(id, 300);
cs_reset_user_model(id)
cs_set_user_model(id, "admin_te")
}
else if(PlayerClass[id] == CLASS_Bartas)
{
set_user_health(id, 125); // Jei tu esi Bartas tau duoda 125hp
set_user_gravity(id, 0.8 )
fm_give_item(id,"weapon_hegrenade")
}
else if(PlayerClass[id] == CLASS_Liza)
{
set_user_health(id, 125); // Jei tu esi Liza tau duoda 125hp
set_user_maxspeed(id, 1.5)
}
else if(PlayerClass[id] == CLASS_Marge)
{
set_user_health(id, 500); // Jei tu esi Marge tau duoda 500hp
give_item(id,"weapon_knife")
}
}
|