Raised This Month: $ Target: $400
 0% 

How to fix this code? Xp isn't loading/saving


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Xum
Member
Join Date: Jun 2006
Old 06-27-2006 , 18:21   How to fix this code? Xp isn't loading/saving
Reply With Quote #1

Xp isn't loading/saving...


/* Credits:
xuntric - for his great tutorial
jtp10181
Charr
*/



#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <nvault>
#include <engine>


#define CLASS_NOTHING 0
#define CLASS_VIPAR 1
#define CLASS_SPEEDMAN 2
#define CLASS_MEDIC 3
#define CLASS_COW 4

#define MAXCLASSES 5

new PlayerClass[33]
new PlayerXP[33]
new PlayerLevel[33]
new ip[32]
new vaultkey[64]
new vaultdata[64]
// blood sprites
new blood_normal
new blood_bleed
new gStatusText
//nVault
//new sxnV



new const CLASSES[MAXCLASSES][] = {
"None",
"VIPAR",
"SPEEDMAN",
"MEDIC",
"COW"
}

new msgtext

new const LEVELS[7] =
{
50,
100,
200,
400,
800,
1600,
3200
}
public plugin_precache()
{
blood_normal = precache_model("sprites/xu/normal_bl.spr")
blood_bleed = precache_model("sprites/xu/blood_bleed.spr")
}





public plugin_init()
{
register_plugin("Xp xu", "0.2", "Hip_Hop_x")

new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|M ENU_KEY_4
register_menucmd(register_menuid("Wich power?"),keys,"principal_menu");

register_cvar("sv_xumod", "1", 0)
register_cvar("XP_per_kill", "6")
register_cvar("XP_per_death", "1")
register_cvar("sv_xu_ev", "1")

register_clcmd("say /xp","infoXp")
register_clcmd("say_team /xp","infoXp")
register_clcmd("say /xum","showPowerMenu")

register_event("DeathMsg", "DeathMsg", "a")
register_event("DeathMsg","blood_efect","a")
register_event("ResetHUD", "ResetHud", "b")

gStatusText = get_user_msgid("StatusText")
msgtext = get_user_msgid("StatusText")


register_srvcmd("sv_evolution", "evolution")

//sxnV = nvault_open("sx_nVault") to load using nvault
}
// public








//************************ save/load users by ip *********************************
public SaveXP(id)
{
get_user_ip(id, ip, 31, 1)


/*format(vaultkey,63,"Xu mod - %s - class",ip);
format(vaultdata,63,"%d",PlayerClass[id]);
set_vaultdata(vaultkey, vaultdata)

format(vaultkey,63,"Xu mod - %s - xp",ip);
format(vaultdata,63,"%d",PlayerXP[id]);
set_vaultdata(vaultkey,vaultdata);

format(vaultkey,63,"Xu mod - %s - level",ip);
format(vaultdata,63,"%d",PlayerLevel[id]);
set_vaultdata(vaultkey,vaultdata); */


format(vaultdata, 63, "%d - %d - %d", PlayerClass[id], PlayerXP[id], PlayerLevel[id])
format(vaultkey, 63, "Xu mod: %s", ip)
set_vaultdata(vaultdata, vaultkey)
}
public LoadXP(id)
{
get_user_ip(id, ip, 31, 1)

/*
//format(vaultkey,63,"Xu mod - %s - class",ip);
get_vaultdata(vaultkey,vaultdata,63);
PlayerClass[id] = str_to_num(vaultdata);

//format(vaultkey,63,"Xu mod - %s - xp",ip);
get_vaultdata(vaultkey,vaultdata,63);
PlayerXP[id] = str_to_num(vaultdata);

//format(vaultkey,63,"Xu mod - %s -level",ip);
get_vaultdata(vaultkey,vaultdata,63);
PlayerLevel[id] = str_to_num(vaultdata); */



get_vaultdata(vaultkey,vaultdata,63)
PlayerClass[id] = str_to_num(vaultdata)
PlayerXP[id] = str_to_num(vaultdata)
PlayerLevel[id] = str_to_num(vaultdata)
}

public client_connect(id)
{
if(get_cvar_num("sv_xumod") == 0)
{
return PLUGIN_HANDLED
}
else
{
ShowHUD(id)
set_hudmessage(200, 100, 0, -1.0, 0.15, 0, 1.0, 21.0, 0.1, 0.2, -1)
show_hudmessage(0, "User connected")

LoadXP(id)
client_print(id, print_chat, "[Xu message] XP Loaded!")
client_print(id, print_chat, "[Xu message] You are using power %s with level %s and %s XP", PlayerClass[id], PlayerLevel[id], PlayerXP[id])
}
return PLUGIN_HANDLED
}
public client_disconnect(id)
{
{
set_hudmessage(200, 100, 40, -1.0, 0.15, 0, 1.0, 5.0, 0.1, 0.2, 2)
show_hudmessage(0,"User disconnected")
}
if(get_cvar_num("sv_xumod") == 0)
{
return PLUGIN_HANDLED
}

if(get_cvar_num("sv_xumod") == 1)
{
SaveXP(id)
}
return PLUGIN_CONTINUE
}

public showPowerMenu(id)
{
new menu[192]
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|M ENU_KEY_4


format(menu, 191, "Chose power?^n^n1. Subject 47^n2. Bleash^n3. Xu Creature^n4. Project Co^n^n0. Exit")
show_menu(id, keys, menu, 20, "principal_menu")
return PLUGIN_CONTINUE
}

public principal_menu(id, key)
{

if(key == 0)
{
return PLUGIN_HANDLED
}

if(key == 1)
{

if(PlayerClass[id] == CLASS_VIPAR)
{


client_print(id, print_chat, "[Xu message] You are allready Subject 47! Choose something else!")
showPowerMenu(id)
return PLUGIN_HANDLED
}

PlayerClass[id] = CLASS_VIPAR
client_print(id, print_chat, "[Xu message] You are now Subject 47!")
set_user_armor(id,150)
}

else if(key == 2)
{

if(PlayerClass[id] == CLASS_SPEEDMAN) {

client_print(id, print_chat, "[Xu message] You are allready Bleash! Choose something else!")
showPowerMenu(id)
return PLUGIN_HANDLED
}

PlayerClass[id] = CLASS_SPEEDMAN
client_print(id, print_chat, "[Xu message] You are now Bleash!")
set_user_maxspeed(id,390)
}

else if(key == 3)
{

if(PlayerClass[id] == CLASS_MEDIC)
{

client_print(id, print_chat, "[Xu message] You are allready Xu Creature! Choose something else!")
showPowerMenu(id)
return PLUGIN_HANDLED
}

PlayerClass[id] = CLASS_MEDIC
client_print(id, print_chat, "[Xu message] You are now Xu Creature!")
set_user_health(id,125)
}

else if(key == 4)
{

if(PlayerClass[id] == CLASS_COW)
{
client_print(id, print_chat, "[Xu message] You are allready Project Co! Choose something else!")
showPowerMenu(id)

}

PlayerClass[id] = CLASS_COW
client_print(id, print_chat, "[Xu message] You are now Project Co!")

}
/**ShowHUD(id) */

return PLUGIN_HANDLED
}

public ResetHud(id)
{
if(PlayerClass[id] == CLASS_NOTHING)
{

showPowerMenu(id)
//return PLUGIN_HANDLED
}

return PLUGIN_HANDLED
}

public DeathMsg()
{
new attacker = read_data(1)
new attacker2 = read_data(2)


if(get_cvar_num("sv_xumod") == 0)
{
return PLUGIN_HANDLED
}

else
{




if(PlayerClass[attacker] == CLASS_NOTHING || PlayerLevel[attacker] == 8)
{
return PLUGIN_HANDLED
}

if (is_user_connected(attacker) == 1 && is_user_connected(attacker2) == 1 && get_user_team(attacker) != get_user_team(attacker2))
{

award_xp(attacker,attacker2)
SaveXP(attacker)
ShowHUD(attacker)

}

}
return PLUGIN_HANDLED
}


// Show xp left side
public write_hud(id)
{
if (PlayerLevel[id] == 0)
PlayerLevel[id] = 1


if (PlayerClass[id] == CLASS_NOTHING )
{

return PLUGIN_HANDLED
}



new msg2[256]


if (PlayerClass[id] != CLASS_NOTHING)
{
format(msg2,255,"[Xu Mod: %i Xp - %i Level - %i Power %s]", PlayerXP[id], PlayerLevel[id], PlayerClass[id])
}
message_begin(MSG_ONE, gStatusText,{0,0,0}, id)
write_byte(0)
write_string(msg2)
message_end()

}


// Get xp....
public award_xp(killer_id,victim_id)
{
//if (is_user_connected(index) == 1)
//{
PlayerXP[killer_id]+=get_cvar_num("XP_per_kill")

if(PlayerXP[victim_id] >= 50)
{
PlayerXP[victim_id]-=get_cvar_num("XP_per_death")
}
//}
write_hud(killer_id)
}




// Hud msg down left
public ShowHUD(id)
{
new HUD[51]
format(HUD, 50, "Power:[%s] Level: %i XP: %i", CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id])

message_begin(MSG_ONE, msgtext, {0,0,0}, id)
write_byte(0)
write_string(HUD)
message_end()
return
}

// Evolutions
public evolution(id)
{

if (PlayerXP[id] >= 50)
{
if (PlayerClass[id] == CLASS_VIPAR)
{
set_user_armor(id,130)
}
if (PlayerClass[id] == CLASS_SPEEDMAN)
{
set_user_maxspeed(id,380)
}
if (PlayerClass[id] == CLASS_MEDIC)
{
set_user_health(id,130)
give_item(id,"item_longjump")
}
if (PlayerClass[id] == CLASS_COW)
{
set_user_gravity(id,740)
}
}

// evolution 2
if (PlayerXP[id] >= 100)
{
if (PlayerClass[id] == CLASS_VIPAR)
{
set_user_armor(id,150)
}
if (PlayerClass[id] == CLASS_SPEEDMAN)
{
set_user_maxspeed(id, 390)
}
if (PlayerClass[id] == CLASS_MEDIC)
{
set_user_health(id,150)
}
if (PlayerClass[id] == CLASS_COW)
{
set_user_gravity(id,700)
}
}
// evolution 3
if (PlayerXP[id] >= 200)
{
if (PlayerClass[id] == CLASS_VIPAR)
{
set_user_armor(id,175)
}
if (PlayerClass[id] == CLASS_SPEEDMAN)
{
set_user_maxspeed(id,400)
//get_cvar_num("invisibleNade")
}
if (PlayerClass[id] == CLASS_MEDIC)
{
set_user_health(id,170)
set_user_armor(id, 115)
}
if (PlayerClass[id] == CLASS_COW)
{
set_user_gravity(id, 700)
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,20)
user_silentkill(id)
}
}


}
//The xp message
public infoXp(id)
{
//show_motd(id,"/addons/amxmodx/plugins/xu/motd.txt","Xu mod help")
client_print(id, print_chat, "[Xu message] You have %i xp",PlayerXP[id])
}
// ************************************** The blood colors ****************************
public headshot_color_red(origin[3])
{
// Blood spray, 5 times
for (new i = 0; i < 5; i++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(101)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+30)
write_coord(random_num(-20,20))
write_coord(random_num(-20,20))
write_coord(random_num(50,300))
write_byte(70) // the color
write_byte(random_num(100,200))
message_end()
}
}
// small blood decal
static blood_decal_small(origin[3],num)
{
static const blood_small[7] = {190,191,192,193,194,195,197}

for (new j = 0; j < num; j++) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(116)
write_coord(origin[0]+random_num(-100,100))
write_coord(origin[1]+random_num(-100,100))
write_coord(origin[2]-36)
write_byte(blood_small[random_num(0,6)])
message_end()
}
}
// Big blood decal
static blood_decal_large(origin[3],num)
{
// Blood decals
static const blood_large[2] = {204,205}

// Large splash
for (new i = 0; i < num; i++) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(116) //TE_WORLDDECAL from const.h
write_coord(origin[0]+random_num(-50,50))
write_coord(origin[1]+random_num(-50,50))
write_coord(origin[2]-36)
write_byte(blood_large[random_num(0,1)]) // index
message_end()
}
}

public blood_red(origin[3]) // stomach hitbox
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(115)
write_coord(origin[0]+random_num(-20,20))
write_coord(origin[1]+random_num(-20,20))
write_coord(origin[2]+random_num(-20,20))
write_short(blood_normal)
// bleed
write_short(blood_bleed)
write_byte(248)
write_byte(14)
message_end()
}


// ******************* The blood efect for CLASS_MEDIC (xu creature) *********************
public blood_efect()
{
new origin[3]
new sWeapon[32]
new id = read_data(2)
new Headshot = read_data(3)
read_data(4,sWeapon,31)

if (Headshot)
{

if(PlayerClass[id] == CLASS_MEDIC)
{
get_user_origin(id,origin)
headshot_color_red(origin)
blood_decal_large(origin,2)
blood_decal_small(origin,5)
}
}
if( is_user_alive(id) )
{
blood_decal_small(origin,12)
blood_decal_large(origin,6)
}
}



Last edited by Xum; 06-29-2006 at 13:27. Reason: I need help. I'm stuck.
Xum is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:01.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode