AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Xp Leveler (https://forums.alliedmods.net/showthread.php?t=127321)

SaM.ThE.MaN 05-19-2010 14:59

Xp Leveler
 
Hi,

I am trying to make this plugin.
Description:
Each time you get a level your hp increases by 1.

But i cant seem to get the code to work.

Can some one please help me :

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <vault>

new PlayerXP[33]
new 
PlayerLevel[33]

new 
msgtext

new const LEVELS[6] = {
    
1
    
2
    
4
    
8,
    
16,
    
32
}

public 
plugin_init()
{
    
register_plugin("Lvler""1.0""SaM")
    
    
register_cvar("sv_Leveler""1")
    
    
register_event("Level, "Level", "a") 
    
    register_cvar("
XP_per_kill", "1")
    
    register_clcmd("
say /me", "Hp")
    register_clcmd("
say_team /me", "Hp")
}

public Hp(id)
 {
  set_user_health ( 1, PlayerLevel ) 
 }

public SaveXP(id)
{
    new authid[32]; 
    get_user_authid(id,authid,31); 

    new vaultkey[64], vaultdata[64]; 
  
    format(vaultkey,63,"
ANIMAL-%s-class",authid); 
    format(vaultdata,63,"
%d",PlayerClass[id]); 
    set_vaultdata(vaultkey,vaultdata); 

    format(vaultkey,63,"
ANIMAL-%s-xp",authid); 
    format(vaultdata,63,"
%d",PlayerXP[id]); 
    set_vaultdata(vaultkey,vaultdata); 

    format(vaultkey,63,"
ANIMAL-%s-level",authid); 
    format(vaultdata,63,"
%d",PlayerLevel[id]); 
    set_vaultdata(vaultkey,vaultdata);


public LoadXP(id)
{
    new authid[32]; 
    get_user_authid(id,authid,31); 

    new vaultkey[64], vaultdata[64]; 

    format(vaultkey,63,"
ANIMAL-%s-class",authid); 
    get_vaultdata(vaultkey,vaultdata,63); 
    PlayerClass[id] = str_to_num(vaultdata); 

    format(vaultkey,63,"
ANIMAL-%s-xp",authid); 
    get_vaultdata(vaultkey,vaultdata,63); 
    PlayerXP[id] = str_to_num(vaultdata);   

    format(vaultkey,63,"
ANIMAL-%s-level",authid); 
    get_vaultdata(vaultkey,vaultdata,63);
    PlayerLevel[id] = str_to_num(vaultdata);  


public client_connect(id)
{
    if(get_cvar_num("
SaveXP") == 1) {
       
         LoadXP(id)

         client_print(id, print_chat, "
[Animal ModXP Loaded!")
         client_print(id, print_chat, "
[Animal ModYou are a %s with level %and %s XP", PlayerClass[id], PlayerLevel[id], PlayerXP[id])
    }
}

public client_disconnect(id)
{
    if(get_cvar_num("
SaveXP") == 1) {
    
         SaveXP(id)
    }
}

public Level()
{
    if(get_cvar_num("
sv_Leveler") == 0) {
         return PLUGIN_HANDLED
    }
    
    new attacker = read_data(1)
    
    if(PlayerClass[attacker] == CLASS_NOTHING) {
         return PLUGIN_HANDLED
    }
    
    if(PlayerLevel[attacker] == 6) {
         return PLUGIN_HANDLED
    }
            
    PlayerXP[attacker] += get_cvar_num("
XP_per_kill") 
    
    if(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
     
         PlayerLevel[attacker] += 1
         
         client_print(attacker, print_chat, "
[BeastCongratulationsYou are now level %i!", PlayerLevel[attacker])

         if(get_cvar_num("
SaveXP") == 1) {
 
              SaveXP(attacker)
         }
         
         ShowHUD(attacker)
    }   
    
    ShowHUD(attacker)
    
    return PLUGIN_CONTINUE
}

public ShowHUD(id)    

    new HUD[51]
    format(HUD, 50, "
[%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



Brreaker 05-21-2010 09:32

Re: Xp Leveler
 
Quote:

Originally Posted by SaM.ThE.MaN (Post 1185250)
Hi,

I am trying to make this plugin.
Description:
Each time you get a level your hp increases by 1.

But i cant seem to get the code to work.

Can some one please help me :

As I see over here, you only add hp when the client executes "say /me"...You can do like this:

Quote:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <vault>

new PlayerXP[33]
new PlayerLevel[33]

new msgtext

new const LEVELS[6] = {
1,
2,
4,
8,
16,
32
}

public plugin_init()
{
register_plugin("Lvler", "1.0", "SaM")

register_cvar("sv_Leveler", "1")

register_event("Level, "Level", "a")
RegisterHam(Ham_Spawn, "player", "fwdHamSpawn")

register_cvar("XP_per_kill", "1")

register_clcmd("say /me", "Hp")
register_clcmd("say_team /me", "Hp")
}

public fwdHamSpawn(id) {

set_user_health(id, get_user_health(id) + PlayerLevel[id])
return HAM_IGNORED

}


public Hp(id)
{
set_user_health ( 1, PlayerLevel )
}

public SaveXP(id)
{
new authid[32];
get_user_authid(id,authid,31);

new vaultkey[64], vaultdata[64];

format(vaultkey,63,"ANIMAL-%s-class",authid);
format(vaultdata,63,"%d",PlayerClass[id]);
set_vaultdata(vaultkey,vaultdata);

format(vaultkey,63,"ANIMAL-%s-xp",authid);
format(vaultdata,63,"%d",PlayerXP[id]);
set_vaultdata(vaultkey,vaultdata);

format(vaultkey,63,"ANIMAL-%s-level",authid);
format(vaultdata,63,"%d",PlayerLevel[id]);
set_vaultdata(vaultkey,vaultdata);
}

public LoadXP(id)
{
new authid[32];
get_user_authid(id,authid,31);

new vaultkey[64], vaultdata[64];

format(vaultkey,63,"ANIMAL-%s-class",authid);
get_vaultdata(vaultkey,vaultdata,63);
PlayerClass[id] = str_to_num(vaultdata);

format(vaultkey,63,"ANIMAL-%s-xp",authid);
get_vaultdata(vaultkey,vaultdata,63);
PlayerXP[id] = str_to_num(vaultdata);

format(vaultkey,63,"ANIMAL-%s-level",authid);
get_vaultdata(vaultkey,vaultdata,63);
PlayerLevel[id] = str_to_num(vaultdata);
}

public client_connect(id)
{
if(get_cvar_num("SaveXP") == 1) {

LoadXP(id)

client_print(id, print_chat, "[Animal Mod] XP Loaded!")
client_print(id, print_chat, "[Animal Mod] You are a %s with level %s and %s XP", PlayerClass[id], PlayerLevel[id], PlayerXP[id])
}
}

public client_disconnect(id)
{
if(get_cvar_num("SaveXP") == 1) {

SaveXP(id)
}
}

public Level()
{
if(get_cvar_num("sv_Leveler") == 0) {
return PLUGIN_HANDLED
}

new attacker = read_data(1)

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

if(PlayerLevel[attacker] == 6) {
return PLUGIN_HANDLED
}

PlayerXP[attacker] += get_cvar_num("XP_per_kill")

if(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {

PlayerLevel[attacker] += 1

client_print(attacker, print_chat, "[Beast] Congratulations! You are now level %i!", PlayerLevel[attacker])

if(get_cvar_num("SaveXP") == 1) {

SaveXP(attacker)
}

ShowHUD(attacker)
}

ShowHUD(attacker)

return PLUGIN_CONTINUE
}

public ShowHUD(id)
{
new HUD[51]
format(HUD, 50, "[%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
}
Untested, should work though...

SaM.ThE.MaN 05-21-2010 11:42

Re: Xp Leveler
 
nvm the whole f 'ing script is f'ed up

Brreaker 05-21-2010 13:33

Re: Xp Leveler
 
Something like that..

SaM.ThE.MaN 05-21-2010 14:06

Re: Xp Leveler
 
ill just try making a simple on, its too complicated

mysticssjgoku4 05-21-2010 14:47

Re: Xp Leveler
 
Don't give up so easily

Brreaker 05-21-2010 15:19

Re: Xp Leveler
 
PHP Code:

#include <amxmodx> 
#include <amxmisc> 
#include <fun> 
#include <vault> 
#include <hamsandwich>
#define MAXCLASSES 4 

new PlayerClass[33]
new 
PlayerXP[33
new 
PlayerLevel[33

new 
msgtext 

new const CLASSES[MAXCLASSES][] = { 
    
"CLASS_NOTHING"
    
"CLASS_1"
    
"CLASS_2"
    
"CLASS_3" 

new const 
LEVELS[6] = { 
    
1,  
    
2,  
    
4,  
    
8
    
16
    
32 


public 
plugin_init() 

    
register_plugin("Lvler""1.0""SaM"
     
    
register_cvar("sv_Leveler""1"
    
RegisterHam(Ham_Spawn"player""fwdHamSpawn"
    
register_event("DeathMsg""eDeath""a"); 
    
register_cvar("XP_per_kill""1"


public 
fwdHamSpawn(id) { 
     
    
set_user_health(idget_user_health(id) + PlayerLevel[id]) 
    return 
HAM_IGNORED 
     
}  

public 
SaveXP(id

    new 
authid[32];  
    
get_user_authid(id,authid,31);  

    new 
vaultkey[64], vaultdata[64];  
   
    
format(vaultkey,63,"ANIMAL-%s-class",authid);  
    
format(vaultdata,63,"%d",PlayerClass[id]);  
    
set_vaultdata(vaultkey,vaultdata);  

    
format(vaultkey,63,"ANIMAL-%s-xp",authid);  
    
format(vaultdata,63,"%d",PlayerXP[id]);  
    
set_vaultdata(vaultkey,vaultdata);  

    
format(vaultkey,63,"ANIMAL-%s-level",authid);  
    
format(vaultdata,63,"%d",PlayerLevel[id]);  
    
set_vaultdata(vaultkey,vaultdata); 
}  

public 
LoadXP(id

    new 
authid[32];  
    
get_user_authid(id,authid,31);  

    new 
vaultkey[64], vaultdata[64];  

    
format(vaultkey,63,"ANIMAL-%s-class",authid);  
    
get_vaultdata(vaultkey,vaultdata,63);  
    
PlayerClass[id] = str_to_num(vaultdata);  

    
format(vaultkey,63,"ANIMAL-%s-xp",authid);  
    
get_vaultdata(vaultkey,vaultdata,63);  
    
PlayerXP[id] = str_to_num(vaultdata);    

    
format(vaultkey,63,"ANIMAL-%s-level",authid);  
    
get_vaultdata(vaultkey,vaultdata,63); 
    
PlayerLevel[id] = str_to_num(vaultdata);   
}  

public 
client_connect(id

    if(
get_cvar_num("SaveXP") == 1) { 
        
         
LoadXP(id

         
client_print(idprint_chat"[Animal Mod] XP Loaded!"
         
client_print(idprint_chat"[Animal Mod] You are a %s with level %s and %s XP"PlayerClass[id], PlayerLevel[id], PlayerXP[id]) 
    } 


public 
client_disconnect(id

    if(
get_cvar_num("SaveXP") == 1) { 
     
         
SaveXP(id
    } 


public 
eDeath() { 
    new 
iKiller read_data(1
    if(
PlayerClass[iKiller] == CLASS_NOTHING) return PLUGIN_CONTINUE 
    
if(PlayerLevel[iKiller] == 6) return PLUGIN_CONTINUE 
    PlayerXP
[iKiller] += get_cvar_num("XP_per_kill"
    if(
PlayerXP[iKiller] >= LEVELS[PlayerLevel[iKiller]]) { 
        
PlayerLevel[iKiller]++ 
        
client_print(iKillerprint_chat"[Beast] Congratulations! You are now level %i!"PlayerLevel[iKiller]) 
        if(
get_cvar_num("SaveXP")) { 
            
SaveXP(iKiller
            } 
        
ShowHUD(iKiller
        } 
    
ShowHUD(iKiller)  
    return 
PLUGIN_CONTINUE 

     


public 
ShowHUD(id)     
{  
    new 
HUD[51
    
format(HUD50"[%s]Level: %i XP: %i"CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id])  

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



Here, I made some improvements...Advices:

Instead of
PHP Code:

if(something == 1) {} 

use
PHP Code:

if(something) {} 

Also for
PHP Code:

if(something == 0) {} 

use
PHP Code:

if(!something) {} 

If there is going to be only one line after an if state, you can use it without {}
Ex:
PHP Code:

if(!cmd_access(idlevelcid3)) return PLUGIN_HANDLED 

is the same as
PHP Code:

if(!cmd_access(idlevelcid3)) 
    return 
PLUGIN_HANDLED 

or as
PHP Code:

if(!cmd_access(idlevelcid3)) {
    return 
PLUGIN_HANDLED 

For increasing/decreasing the value by 1 use
PHP Code:

Value++
Value-- 

Instead of
PHP Code:

Value += 1
Value 
-= 

Also, in an event, you should use
PHP Code:

return PLUGIN_CONTINUE 

because if you use
PHP Code:

return PLUGIN_HANDLED 

you would just block the event (in some cases, you need PLUGIN_HANDLED, but not in this case.For example, if you use PLUGIN_HANDLED in New Round Event(HLTV) you block the new round)


All times are GMT -4. The time now is 03:38.

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