View Single Post
D3XT3R
AlliedModders Donor
Join Date: Nov 2016
Location: Lithuania, Bomb A (Kaunas)
Old 01-03-2018 , 03:54   Re: Need help for powers code
Reply With Quote #15

Quote:
Originally Posted by Mr.J View Post
Its matter that i have it bcz it is private
You are genius!
PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>

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

#define PLUGIN "Prestige System"
#define VERSION "1.0"
#define AUTHOR "FuckTheSchool"

#define MAX_LEVEL 6
#define PowerNum 5

native get_user_prestige(id)
native set_user_prestige(idamount)
native get_user_ever_prestige(id)
native get_user_save_method(id)

new 
PrestigeVault
new SpeedLevel[33], HealthLevel[33], DamageLevel[33], GravityLevel[33], RegenLevel[33], MaxHealth[33], Refreshing[33]

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /power""CMD_Prestige")
    
register_clcmd("say /powers""CMD_Prestige")
    
    
register_event("CurWeapon","event_curweapon","be""1=1")
    
    
RegisterHam(Ham_Spawn"player""CheckSpawn")
    
RegisterHam(Ham_TakeDamage"player""TakeDamage")
    
set_task(1.0"NeverEndingRegen",_,_,_,"b")
}

public 
plugin_cfg()
{
    
PrestigeVault nvault_open"PrestigeSystem" );
    
    if ( 
PrestigeVault == INVALID_HANDLE )
        
set_fail_state"Error opening Prestige System nVault, file does not exist!" );
}

public 
plugin_end()
{
    
nvault_close(PrestigeVault)    
}
public 
client_authorized(id)
{
    
LoadPowers(id)
}

public 
client_disconnect(id)
{
    
SavePowers(id)
    
    
SpeedLevel[id] = 0
    HealthLevel
[id] = 0
    DamageLevel
[id] = 0
    GravityLevel
[id] = 0
    RegenLevel
[id] = 0
}

public 
CheckSpawn(id)
{
    
MaxHealth[id] = 100
    Refreshing
[id] = true
    set_task
(0.5"AddHealth"id)
    
    if(
GravityLevel[id] > 0)
        
set_task(0.5"AddGravity"id)
}

public 
AddHealth(id)
{
    
set_user_health(idget_user_health(id) + (20*HealthLevel[id]))
    
    if(
get_user_health(id) > 100.0)
        
MaxHealth[id] = get_user_health(id)
        
    else
        
MaxHealth[id] = 100
        
    Refreshing
[id] = false
}

public 
AddGravity(id)
{
    new 
Num = (800 GravityLevel[id]*30)/800
    set_user_gravity
(id1.0 Num)
}

public 
event_curweapon(id)
{
    if(
SpeedLevel[id] > 0)
        
set_task(0.5"SetSpeed"id)
}

public 
SetSpeed(id)
{
    
set_user_maxspeed(idget_user_maxspeed(id) +(20*SpeedLevel[id]))    
}

public 
TakeDamage(victiminflictorattackerFloat:damagedamagebits)
{
    if(
victim != attacker)
    {
        if(
DamageLevel[attacker] > 0)
        {
            
SetHamParamFloat(4damage * (1.0 + (DamageLevel[attacker] * 0.2)))
        }
    }
}

public 
NeverEndingRegen()
{
    new 
players[32], num
    get_players
(playersnum"ach")
    
    for(new 
id;id num;id++)
    {
        new 
players[id]
        if(
RegenLevel[i] > && !Refreshing[id])
        {
            if((
get_user_health(i) + RegenLevel[i]) > MaxHealth[i]) set_user_health(iMaxHealth[i])
            else 
set_user_health(iget_user_health(i) + RegenLevel[i])
        }
    }
}

public 
CMD_Prestige(id)
{
    new 
Format[100], StrFloat[4]
    
    
formatex(Formatcharsmax(Format), "Powers: [Prestiges: %i ( Total: %i )]"get_user_prestige(id), get_user_ever_prestige(id))
    
    new 
PrestigeMenu menu_create(Format"HandleCMD_Prestige")
    
    
float_to_str(250.0 + (20*(SpeedLevel[id]+1)), StrFloatcharsmax(StrFloat))
    
    
formatex(Formatcharsmax(Format), "%sSpeed \d[\yLevel %i\d][\r%s units\d] - %i Prestige%s%s"get_user_prestige(id) >= Price(SpeedLevel[id]) ? "\w" "\d"SpeedLevel[id], StrFloatPrice(SpeedLevel[id]), Price(SpeedLevel[id]) == "" "s"SpeedLevel[id] < MAX_LEVEL-"" "\d[\rMAXED\d]" )
    
menu_additem(PrestigeMenuFormat)
    
    
formatex(Formatcharsmax(Format), "%sHealth \d[\yLevel %i\d][\r+%i health\d] - %i Prestige%s%s"get_user_prestige(id) >= Price(HealthLevel[id]) ? "\w" "\d"HealthLevel[id], (HealthLevel[id]+1)*20Price(HealthLevel[id]), Price(HealthLevel[id]) == "" "s"HealthLevel[id] < MAX_LEVEL-"" "\d[\rMAXED\d]" )
    
menu_additem(PrestigeMenuFormat)
    
    
float_to_str(1.0 + (0.2*(DamageLevel[id]+1)), StrFloatcharsmax(StrFloat))
    
formatex(Formatcharsmax(Format), "%sDamage \d[\yLevel %i\d][\r%sx\d] - %i Prestige%s%s"get_user_prestige(id) >= Price(DamageLevel[id]) ? "\w" "\d"DamageLevel[id], StrFloatPrice(DamageLevel[id]), Price(DamageLevel[id]) == "" "s"DamageLevel[id] < MAX_LEVEL-"" "\d[\rMAXED\d]" )
    
menu_additem(PrestigeMenuFormat)
    
    
float_to_str((800.0 GravityLevel[id]*30)/800StrFloatcharsmax(StrFloat))
    
formatex(Formatcharsmax(Format), "%sGravity \d[\yLevel %i\d][\r%s Gravity\d] - %i Prestige%s%s"get_user_prestige(id) >= Price(GravityLevel[id]) ? "\w" "\d"GravityLevel[id], 800-(30*GravityLevel[id]), Price(GravityLevel[id]), Price(GravityLevel[id]) == "" "s"GravityLevel[id] < MAX_LEVEL-"" "\d[\rMAXED\d]" )
    
menu_additem(PrestigeMenuFormat)
    
    
formatex(Formatcharsmax(Format), "%sHP Regeneration \d[\yLevel %i\d][\r%i HP/Sec\d] - %i Prestige%s%s"get_user_prestige(id) >= Price(RegenLevel[id]) ? "\w" "\d"RegenLevel[id], RegenLevel[id], Price(RegenLevel[id]), Price(RegenLevel[id]) == "" "s"RegenLevel[id] < MAX_LEVEL-"" "\d[\rMAXED\d]" )
    
menu_additem(PrestigeMenuFormat)
    
    
formatex(Formatcharsmax(Format), "Reset Powers \d[\rFree\d]")
    
menu_additem(PrestigeMenuFormat)
    
    
menu_display(idPrestigeMenu)

}

public 
HandleCMD_Prestige(idPrestigeMenuitem)
{
    if(
item == MENU_EXIT) return;
    
    switch(
item+1)
    {    
        case 
1:
        {
            if(
get_user_prestige(id) >= Price(SpeedLevel[id]) && SpeedLevel[id] < MAX_LEVEL-1)
            {
                
set_user_prestige(idget_user_prestige(id) - Price(SpeedLevel[id]))
                
SpeedLevel[id]++;
                
ColorChat(id"^4Congratulations on buying Speed Upgrade!")
            }
        }
        
        case 
2:
        {    
            if(
get_user_prestige(id) >= Price(HealthLevel[id]) && HealthLevel[id] < MAX_LEVEL-1)
            {
                
set_user_prestige(idget_user_prestige(id) - Price(HealthLevel[id]))
                
HealthLevel[id]++;
                
ColorChat(id"^4Congratulations on buying Health Upgrade!")
            }
        }
        
        case 
3:
        {
            if(
get_user_prestige(id) >= Price(DamageLevel[id]) && DamageLevel[id] < MAX_LEVEL-1)
            {
                
set_user_prestige(idget_user_prestige(id) - Price(DamageLevel[id]))
                
DamageLevel[id]++;
                
ColorChat(id"^4Congratulations on buying Health Upgrade!")
            }
        }
        
        case 
4:
        {
            if(
get_user_prestige(id) >= Price(GravityLevel[id]) && GravityLevel[id] < MAX_LEVEL-1)
            {
                
set_user_prestige(idget_user_prestige(id) - Price(GravityLevel[id]))
                
GravityLevel[id]++;
                
ColorChat(id"^4Congratulations on buying Gravity Upgrade!")
            }
        }
        
        case 
5:
        {
            if(
get_user_prestige(id) >= Price(RegenLevel[id]) && RegenLevel[id] < MAX_LEVEL-1)
            {
                
set_user_prestige(idget_user_prestige(id) - Price(RegenLevel[id]))
                
RegenLevel[id]++;
                
ColorChat(id"^4Congratulations on buying HP Regeneration Upgrade!")
            }
        }
        case 
PowerNum+1:
        {
            
HealthLevel[id] = 0
            SpeedLevel
[id] = 0
            DamageLevel
[id] = 0
            GravityLevel
[id] = 0
            RegenLevel
[id] = 0
            set_user_prestige
(idget_user_ever_prestige(id))
            
ColorChat(id"^4You have successfuly reset your powers!")
        }
    }
    if(
item != MENU_EXIT)
    {
        
CMD_Prestige(id)
        
SavePowers(id)
    }
    
}

SavePowers(id)

    new 
szAuth[33];
    new 
szKey[64];

    if ( 
get_user_save_method(id) == 0)
    {
        
get_user_ipidszAuth charsmax(szAuth), 1);
        
formatexszKey 63 "%s-IP" szAuth);
    }
    else if ( 
get_user_save_method(id) == )
    {
        
get_user_authidid szAuth charsmax(szAuth) );
        
formatexszKey 63 "%s-ID" szAuth);
    }
    
    new 
szData[256];
    
    
formatex(szData255"%i#%i#%i#%i#%i#"SpeedLevel[id], HealthLevel[id], DamageLevel[id], GravityLevel[id], RegenLevel[id])
        
    
nvault_setPrestigeVault szKey szData );
}

LoadPowers(id)
{
    new 
szAuth[33];
    new 
szKey[40], szKey2[40];
    new 
BestBest2
    
// Best save is loaded
    
get_user_ipidszAuth charsmax(szAuth), 1);
    
formatexszKey 63 "%s-IP" szAuth);
    
    
get_user_authidid szAuth charsmax(szAuth) );
    
formatexszKey2 63 "%s-ID" szAuth);
    
    new 
szData[256], szData2[256];

    
formatex(szData255"%i#%i#%i#%i#%i#"SpeedLevel[id], HealthLevel[id], DamageLevel[id], GravityLevel[id], RegenLevel[id]) 
    
formatex(szData2255"%i#%i#%i#%i#%i#"SpeedLevel[id], HealthLevel[id], DamageLevel[id], GravityLevel[id], RegenLevel[id]) 
        
    
nvault_get(PrestigeVaultszKeyszData255)
    
replace_all(szData 255"#"" ")
    
    
nvault_get(PrestigeVaultszKey2szData2255)
    
replace_all(szData2 255"#"" ")
    
    new 
speed[32], health[32], damage[32], gravity[32], regen[32], speed2[32], health2[32], damage2[32], gravity2[32], regen2[32]
    
parse(szDataspeed31health31damage31gravity31regen31)
    
parse(szData2speed231health231damage231gravity231regen231)
    
    
Best str_to_num(speed) + str_to_num(health) + str_to_num(damage) + str_to_num(gravity) + str_to_num(regen)
    
Best2 str_to_num(speed2) + str_to_num(health2) + str_to_num(damage2) + str_to_num(gravity2) + str_to_num(regen2)
    
    if(
Best Best2)
    {
        
SpeedLevel[id] = str_to_num(speed)
        
HealthLevel[id] = str_to_num(health)
        
DamageLevel[id] = str_to_num(damage)
        
GravityLevel[id] = str_to_num(gravity)
        
RegenLevel[id] = str_to_num(regen)
    }
    else
    {
        
SpeedLevel[id] = str_to_num(speed2)
        
HealthLevel[id] = str_to_num(health2)
        
DamageLevel[id] = str_to_num(damage2)
        
GravityLevel[id] = str_to_num(gravity2)
        
RegenLevel[id] = str_to_num(regen2)
    }
}

stock Price(LevelAmount)
{
    new 
Value 1
    Value 
Value + (LevelAmount*2)
    
    return 
Value
}

stock ColorChat(const index, const string[], {FloatSqlResul,_}:...) 
{
    new 
msg[191], players[32], count 1Prefix[32];
    
get_cvar_string("amx_prefix_cvar"Prefix31);
    
    static 
len;
    
len formatex(msgcharsmax(msg), "^4[ %s ]^1 "Prefix);
    
vformat(msg[len], charsmax(msg) - lenstring3);
    
replace_all(msg,190,"/g","^4");// green txt
    
replace_all(msg,190,"/y","^1");// orange txt
    
replace_all(msg,190,"/ctr","^3");// team txt
    
replace_all(msg,190,"/w","^0");// team txt
    
    
if(index)    players[0] = index;
    else    
get_players(players,count,"ch");
    
    for (new 
0counti++)
    {
        if(
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"),_players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end();
        }
    }

__________________

Last edited by D3XT3R; 01-03-2018 at 04:01.
D3XT3R is offline
Send a message via Skype™ to D3XT3R