Raised This Month: $51 Target: $400
 12% 

Deathrun XP V2.0 [03 October 2011]


Post New Thread Reply   
 
Thread Tools Display Modes
Plugin Info:     Modification:   Counter-Strike        Category:   Fun Stuff       
ROKronoS
Senior Member
Join Date: Oct 2010
Location: Bucharest, Romania
Old 10-24-2010 , 05:05   Deathrun XP V2.0 [03 October 2011]
Reply With Quote #1

Deathrun XP V2.0
by KronoS

Description
This is a new XP mod , for Deathrun servers.The players must kill their enemies in order to receive xp and acquire new levels.
The rewards included in this version are: extra hp
The XP is saved by name.

Modules
  • Fun
  • Hamsandwich
  • Nvault

Cvars
drxp_savexp 0/1 { 0 - XP is not saved | 1 - XP is saved } [Default: 1]
drxp_kill X { X - Amount of XP to receive when killing an enemy } [Default: 10]
drxp_knife X { X - Amount of XP to receive when killing an enemy with a knife } [Default: 5]
drxp_grenade X { X - Amount of XP to receive when killing an enemy with a grenade } [Default: 15]
drxp_hs X { X - Amount of XP to receive when killing an enemy with a headshot } [Default: 10]


Credits
  • XunTric - xp based tutorial
  • Il3gal - for his idea
  • Vechta - admin commands

Changelog
V 2.0
-Ham_Spawn instead of ResetHud
-removed the respawn system because it wasn't working (it will be added in the next version)
-minor changes in the code
-fixed the "index out of bounds" error

Previous version downloads counter: 845 downloads
Attached Files
File Type: sma Get Plugin or Get Source (deathrun_xp_2_0.sma - 2991 views - 6.2 KB)

Last edited by ROKronoS; 10-03-2011 at 13:42.
ROKronoS is offline
Korxu
Senior Member
Join Date: Sep 2010
Old 10-24-2010 , 05:36   Re: Deathrun XP V1.1 [24.10.2010]
Reply With Quote #2

Good plugin

Could you add multi-language and a command for administrators to set/add XP/level for the next version.
Korxu is offline
ROKronoS
Senior Member
Join Date: Oct 2010
Location: Bucharest, Romania
Old 10-24-2010 , 05:37   Re: Deathrun XP V1.1 [24.10.2010]
Reply With Quote #3

Thx
I will add ML and a givexp command in the next version
ROKronoS is offline
Vechta
Veteran Member
Join Date: Jun 2010
Old 10-24-2010 , 06:23   Re: Deathrun XP V1.1 [24.10.2010]
Reply With Quote #4

Added Take & give XP and save methodes by cvar (Name, Steamid, IP)

PHP Code:
/*

Plugin: Deathrun XP
Version: 1.1
Author: KronoS 

Changelog:
____________________________________________________________________
V 1.0
-first release
____________________________________________________________________
V 1.1
-added a hudmessage that shows informations about current level/xp
-added xp reward for killing the enemy with a he grenade
-respawn rewards for some levels
____________________________________________________________________

Credits:
XunTric - xp based tutorial
Il3gal - for his idea

*/

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <nvault>

new const CHAT_TAG[]="[Deathrun XP]"

new const LEVELS[10] = {
     
50
     
100
     
150
     
200,
     
250,
     
300,
    
350,
    
400,
    
450,
    
500
}

new 
drxp_playerxp[33], drxp_playerlevel[33], drxp_respawn[33]
new 
drxp_killdrxp_knifedrxp_grenadedrxp_hsdrxp_savexpg_drxp_vaultsave_methode

public plugin_init()
{
    
register_plugin("Deathrun XP""1.1""KronoS")

    
// Events
    
register_event("HLTV""drxp_newround""a""1=0""2=0")
    
register_event("ResetHUD","drxp_spawn","be")
     
register_event("DeathMsg""drxp_death""a"

    
// Cvars
     
drxp_savexp register_cvar("drxp_savexp","1")
     
drxp_kill register_cvar("drxp_kill""10")
     
drxp_knife register_cvar("drxp_knife","5")
    
drxp_grenade register_cvar("drxp_grenade","15")
     
drxp_hs register_cvar("drxp_hs","10")
    
save_methode register_cvar("drxp_save_methode""2"// 1. Name, 2. Steamid, 3. IP
    
    // nvault
     
g_drxp_vault nvault_open("drxp_mod")
    
    
// Give xp commands
    
register_concmd("drxp_take_exp""cmd_take_exp"ADMIN_BAN"<target> <amount>");  
    
register_concmd("drxp_give_exp""cmd_give_exp"ADMIN_BAN"<target> <amount>");
}

public 
drxp_newround(id)
{
    if((
drxp_playerlevel[id] > 4) && (drxp_playerlevel[id] < 9))
        
drxp_respawn[id] = 1
    
else if(drxp_playerlevel[id] == 10)
        
drxp_respawn[id] = 2
}
public 
drxp_spawn(id)
{
    if(
drxp_playerlevel[id] > 0)
        
set_user_health(idget_user_health(id) + 5*drxp_playerlevel[id])
}

public 
drxp_death() 
{
     new 
iVictim read_data)
     new 
weaponhitplaceattacker get_user_attacker(iVictim,weapon,hitplace)

    new 
victimname[32]
       
get_user_name(iVictim,victimname,31)

     
drxp_playerxp[attacker] += get_pcvar_num(drxp_kill)

     if(
hitplace == HIT_HEAD)
    {
         
drxp_playerxp[attacker] += get_pcvar_num(drxp_hs)
        
client_print(attacker,print_chat,"%s You have received %i XP for killing %s with headshot!"CHAT_TAGget_pcvar_num(drxp_hs), victimname)
    }
     else if(
weapon == CSW_KNIFE)
    {
          
drxp_playerxp[attacker] += get_pcvar_num(drxp_knife)
        
client_print(attacker,print_chat,"%s You have received %i XP for killing %s with knife!"CHAT_TAGget_pcvar_num(drxp_knife), victimname)
    }
    else if(
weapon == CSW_HEGRENADE)
    {
          
drxp_playerxp[attacker] += get_pcvar_num(drxp_grenade)
        
client_print(attacker,print_chat,"%s You have received %i XP for killing %s with HE!"CHAT_TAGget_pcvar_num(drxp_grenade), victimname)
    }
     else if(
drxp_playerxp[attacker] >= LEVELS[drxp_playerlevel[attacker]])
    {
          
drxp_playerlevel[attacker] += 1
        client_print
(attacker,print_chat,"%s Congratulations!You have gained a new level!"CHAT_TAG)
    }
    
drxp_hudinfo(attacker)
     
SaveData(attacker)
    
    if(
drxp_respawn[iVictim] != 0)
        
set_task5.0"drxp_revive"iVictim)
}

public 
drxp_revive(id)
    
ExecuteHamB(Ham_CS_RoundRespawnid)

public 
drxp_hudinfo(id)
{
    
set_hudmessage(2552552550.010.203.03.0)
     
show_hudmessage(id"Level: %i^nXP: %i^n",drxp_playerlevel[id],drxp_playerxp[id])
    
    
set_task2.0"drxp_hudinfo"id)
}

public 
client_connect(id)
{
     if(
get_pcvar_num(drxp_savexp) == 1)
          
LoadData(id)
        
    
set_task10.0"drxp_hudinfo"id)
}

public 
client_disconnect(id)
{
     if(
get_pcvar_num(drxp_savexp) == 1)
          
SaveData(id)
        
     
drxp_playerxp[id] = 0
     drxp_playerlevel
[id] = 0
    drxp_respawn
[id] = 0
}

public 
SaveData(id)
{
    switch(
get_pcvar_num(save_methode))
    {
        case 
1:
        {
            new 
PlayerName[35]
            
get_user_name(id,PlayerName,34)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s",PlayerName)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_set(g_drxp_vault,vaultkey,vaultdata)
        }
        case 
2:
        {
            
            new 
szAuthid[32]
            
get_user_authid(idszAuthid31)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s"szAuthid)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_set(g_drxp_vault,vaultkey,vaultdata)
        }
        case 
3:
        {
            
            new 
szIP[32]
            
get_user_ip(idszIP31)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s"szIP)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_set(g_drxp_vault,vaultkey,vaultdata)
        }
    }
}

public 
LoadData(id)
{
    switch(
get_pcvar_num(save_methode))
    {
        case 
1:
        {
            new 
PlayerName[35]
            
get_user_name(id,PlayerName,34)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s",PlayerName)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
        
            
replace_all(vaultdata255"#"" ")
        
            new 
playerxp[32], playerlevel[32]
        
            
parse(vaultdataplayerxp31playerlevel31)
        
            
drxp_playerxp[id] = str_to_num(playerxp)
            
drxp_playerlevel[id] = str_to_num(playerlevel)
        }
        case 
2:
        {
            new 
szAuthid[32]
            
get_user_name(idszAuthid31)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s",szAuthid)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
        
            
replace_all(vaultdata255"#"" ")
        
            new 
playerxp[32], playerlevel[32]
        
            
parse(vaultdataplayerxp31playerlevel31)
        
            
drxp_playerxp[id] = str_to_num(playerxp)
            
drxp_playerlevel[id] = str_to_num(playerlevel)
        }
        case 
3:
        {
            new 
szIP[32]
            
get_user_name(idszIP31)
        
            new 
vaultkey[64],vaultdata[256]
            
format(vaultkey,63,"%s"szIP)
            
format(vaultdata,255,"%i#%i#",drxp_playerxp[id],drxp_playerlevel[id])
            
nvault_get(g_drxp_vault,vaultkey,vaultdata,255)
        
            
replace_all(vaultdata255"#"" ")
        
            new 
playerxp[32], playerlevel[32]
        
            
parse(vaultdataplayerxp31playerlevel31)
        
            
drxp_playerxp[id] = str_to_num(playerxp)
            
drxp_playerlevel[id] = str_to_num(playerlevel)
        }
    }
}  

public 
cmd_give_expidlevel,cid 

    if( ! 
cmd_access idlevelcid) ) 
        return 
PLUGIN_HANDLED

    new 
target[32], amount[21], reason[21]; 

    
read_argv1target31 ); 
    
read_argv(2amount20 ); 
    
read_argv3reason20 ); 

    new 
player cmd_targetidtarget); 

    if( ! 
player )  
        return 
PLUGIN_HANDLED

    new 
admin_name[32], player_name[32]; 
    
get_user_nameidadmin_name31 ); 
    
get_user_nameplayerplayer_name31 ); 

    new 
expnum str_to_numamount ); 

    
drxp_playerxp[player] += expnum
    
SaveDataid ); 

    return 
PLUGIN_CONTINUE

  
public 
cmd_take_expidlevel,cid 

    if( ! 
cmd_access idlevelcid) ) 
    return 
PLUGIN_HANDLED

    new 
target[32], amount[21], reason[21]; 

    
read_argv1target31 ); 
    
read_argv2amount20 ); 
    
read_argv3reason20 ); 

    new 
player cmd_targetidtarget); 

    if( ! 
player )  
        return 
PLUGIN_HANDLED

    new 
admin_name[32], player_name[32]; 
    
    
get_user_nameidadmin_name31 ); 
    
get_user_nameplayerplayer_name31 ); 

    new 
expnum str_to_numamount ); 

    
drxp_playerxp[player] -= expnum
    
SaveDataid ); 

    return 
PLUGIN_CONTINUE

Vechta is offline
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 10-24-2010 , 14:38   Re: Deathrun XP V1.1 [24.10.2010]
Reply With Quote #5

Quote:
Originally Posted by Vechta View Post
Added Take & give XP and save methodes by cvar (Name, Steamid, IP)
Too bad you didn't add it properly so it will always be by name.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
ROKronoS
Senior Member
Join Date: Oct 2010
Location: Bucharest, Romania
Old 10-24-2010 , 15:19   Re: Deathrun XP V1.1 [24.10.2010]
Reply With Quote #6

At least he tried.I will test the admin commands and i think tomorrow i'll update the plugin.
Thanks Vechta
I need some ideas for the rewards ^.^

EDIT: And i forgot the cvars...OMG =]]
ROKronoS is offline
roby_the_dude
New Member
Join Date: Mar 2010
Old 10-24-2010 , 16:19   Re: Deathrun XP V1.2
Reply With Quote #7

Nice plugin,KronoS. Keep it up dude!
roby_the_dude is offline
ROKronoS
Senior Member
Join Date: Oct 2010
Location: Bucharest, Romania
Old 10-24-2010 , 16:19   Re: Deathrun XP V1.2
Reply With Quote #8

UPDATED!
New version with admin commands...
ROKronoS is offline
CsPlatform
Junior Member
Join Date: Dec 2009
Old 10-24-2010 , 18:26   Re: Deathrun XP V1.2
Reply With Quote #9

nice plugin , but

No. 96 gives the line error

L 10/25/2010 - 01:23:53: [AMXX] Run time error 10: native error (native "get_user_attacker")
L 10/25/2010 - 01:23:53: [AMXX] [0] textP348oh.sma::drxp_death (line 96)
CsPlatform is offline
ROKronoS
Senior Member
Join Date: Oct 2010
Location: Bucharest, Romania
Old 10-25-2010 , 03:38   Re: Deathrun XP V1.2
Reply With Quote #10

Details?
When do you get that error?When a player types kill in console or when he falls?

EDIT: It runs well for me No errors

Last edited by ROKronoS; 10-25-2010 at 04:01.
ROKronoS is offline
Reply



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 02:49.


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