Code:
#include <amxmodx>
#include <ns2amx>
#include <ns2amxdefines>
#include <ns2amxhelpers>
#define CARA_PRICE 0.0
#define REGEN_PRICE 0.0
#define REDEM_PRICE 0.0
#define CELE_PRICE 0.0
#define ADREN_PRICE 0.0
#define SILEN_PRICE 0.0
#define CLOCK_PRICE 0.0
#define FOCUS_PRICE 0.0
#define SCENT_PRICE 0.0
new reset_evolve_res[33]
new check_evolve[33]
public plugin_init(){
register_plugin("amx_freeupgrade","0.1","superelf")
register_cvar("amx_freeupgrade", "0.1",4)
if(!is_combat()){
register_impulse(101,"evolve_cara")
register_impulse(102,"evolve_regen")
register_impulse(103,"evolve_redem")
register_impulse(107,"evolve_cele")
register_impulse(108,"evolve_adren")
register_impulse(109,"evolve_silen")
register_impulse(110,"evolve_clock")
register_impulse(111,"evolve_focus")
register_impulse(112,"evolve_scent")
register_msgedit("SetTech","settech")
}
}
public settech()
{
if (msg_data(2) == 101) // cara
msg_set_i(6,floatround( CARA_PRICE) )
else if (msg_data(2) == 102) // regen
msg_set_i(6,floatround(REGEN_PRICE) )
else if (msg_data(2) == 103) // redem
msg_set_i(6,floatround(REDEM_PRICE) )
else if (msg_data(2) == 107) // cele
msg_set_i(6,floatround(CELE_PRICE) )
else if (msg_data(2) == 108) // adren
msg_set_i(6,floatround(ADREN_PRICE) )
else if (msg_data(2) == 109) // silen
msg_set_i(6,floatround(SILEN_PRICE) )
else if (msg_data(2) == 110) // clock
msg_set_i(6,floatround(CLOCK_PRICE) )
else if (msg_data(2) == 111) // focus
msg_set_i(6,floatround(FOCUS_PRICE) )
else if (msg_data(2) == 112) // scent
msg_set_i(6,floatround(SCENT_PRICE) )
}
public evolve_cara(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= CARA_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new Float:evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (CARA_PRICE - 2.0 )
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
check_evolve[id] = 1
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_regen(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= CARA_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (CARA_PRICE - 2.0 )
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
check_evolve[id] = 1
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_redem(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= REDEM_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (REDEM_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_cele(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= CELE_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (CELE_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_adren(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= ADREN_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (ADREN_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_silen(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= SILEN_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (SILEN_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_clock(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= CLOCK_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (CLOCK_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_focus(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= FOCUS_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (FOCUS_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public evolve_scent(id){
if( get_class(id) != 10 && get_private_f(id,PRIVATE_ALIEN_RES) >= SCENT_PRICE && check_evolve[id] == 0 ) {
reset_evolve_res[id] = get_private_f(id,PRIVATE_ALIEN_RES)
new evolve_resource = get_private_f(id,PRIVATE_ALIEN_RES) - (SCENT_PRICE - 2.0 )
check_evolve[id] = 1
set_private_f(id,PRIVATE_ALIEN_RES,(evolve_resource) )
set_task(0.1,"check_res",11125+id)
}
return PLUGIN_CONTINUE
}
public check_res(id) // restore evolve, check resource
{
id -= 11125;
if ( get_class(id) != 10 ) set_private_f(id,PRIVATE_ALIEN_RES, reset_evolve_res[id])
check_evolve[id] = 0
return PLUGIN_CONTINUE
}