AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Unapproved/Old Plugins (https://forums.alliedmods.net/forumdisplay.php?f=27)
-   -   Deathrun XP V2.0 [03 October 2011] (https://forums.alliedmods.net/showthread.php?t=141439)

ROKronoS 10-24-2010 05:05

Deathrun XP V2.0 [03 October 2011]
 
1 Attachment(s)
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

Korxu 10-24-2010 05:36

Re: Deathrun XP V1.1 [24.10.2010]
 
Good plugin

Could you add multi-language and a command for administrators to set/add XP/level for the next version. :wink:

ROKronoS 10-24-2010 05:37

Re: Deathrun XP V1.1 [24.10.2010]
 
Thx
I will add ML and a givexp command in the next version :P

Vechta 10-24-2010 06:23

Re: Deathrun XP V1.1 [24.10.2010]
 
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



Exolent[jNr] 10-24-2010 14:38

Re: Deathrun XP V1.1 [24.10.2010]
 
Quote:

Originally Posted by Vechta (Post 1332900)
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.

ROKronoS 10-24-2010 15:19

Re: Deathrun XP V1.1 [24.10.2010]
 
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 =]]

roby_the_dude 10-24-2010 16:19

Re: Deathrun XP V1.2
 
Nice plugin,KronoS. Keep it up dude! :wink:

ROKronoS 10-24-2010 16:19

Re: Deathrun XP V1.2
 
UPDATED!
New version with admin commands...

CsPlatform 10-24-2010 18:26

Re: Deathrun XP V1.2
 
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)

ROKronoS 10-25-2010 03:38

Re: Deathrun XP V1.2
 
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


All times are GMT -4. The time now is 18:16.

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