#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <customshop>
#define ADMINACCESS ADMIN_CHAT
new jumpnum[33] = 0
new bool:dojump[33] = false
additem ITEM_DOUBLEJUMP // otne mi 10 minuti da iznamerq kakvo oznachava additem
// zashto ne polzva prosto "new" kato horata(govorq na OciXCrom) samo zatrudnqvash cqlata procedura izlishno
public plugin_init()
{
register_plugin("MultiJump","1.1","twistedeuphoria")
register_cvar("amx_maxjumps","1")
register_cvar("amx_mjadminonly","0")
}
/* ITEM CONFIG */
public plugin_precache()
ITEM_DOUBLEJUMP = cshop_register_item("doublejump", "Double Jump", 300, 1)
public cshopItemBought(id, iItem)
{
if(iItem == ITEM_DOUBLEJUMP)
dojump[id] = true
}
public cshopItemRemoved(id, iItem)
{
if(iItem == ITEM_DOUBLEJUMP)
dojump[id] = false
}
/* END OF ITEM CONFIG */
bool:hasAccess(id) {
// dali ima dostyp do multi jump
return is_user_alive(id) // igracha trqbva da e jiv
&& ((!get_cvar_num("amx-mjadminonly") // syshto trqbva opciqta ili da ne e samo za admini
|| access(id, ADMINACCESS))) // ili ako e samo za admini trqbva igracha da e admin
&& doJump[id] // i trqbva da ima item-a zakupen
}
public client_PreThink(id)
{
if (!hasAccess(id)) {
return // nqma smisyl da se zanimavame ako nqma dostyp do multi jump
}
new nbut = get_user_button(id) // butonite natisnati segashniq frame
new obut = get_user_oldbutton(id) // butonite natisnati minaliq frame
if (nbut & IN_JUMP && ~obut & IN_JUMP) { // ako predishniq frame ne e skachal i segashniq skacha (za da ne se povtarq postoqnno ako e zadyrjal space)
if (get_entity_flags(id) & FL_ONGROUND) { // ako e na zemqta(tepyrva skacha) mu zadavame jumpnum na 0
jumpnum[id] = 0
}
else if (get_cvar_num("amx_maxjumps") > jumpnum[id]) { // ako ne e na zemqta i ima jump-ove
new Float:velocity[3] // promenliva v koqto shte zapazim skorosta
entity_get_vector(id,EV_VEC_velocity,velocity) // vzimame skorosta
velocity[2] = random_float(265.0,285.0) // promenqme samo tretoto izmerenie(koeto sochi nagore) sys skorost mejdu 265.0 - 285.0
entity_set_vector(id,EV_VEC_velocity,velocity) // zapazvame skorosta
jumpnum[id]++ // veche igracha e izpolzval edin ot skokovete za tova uvelichavame jumpnum
}
}
}
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <customshop>
#define ADMINACCESS ADMIN_CHAT
new jumpnum[33] = 0
new bool:dojump[33] = false
additem ITEM_DOUBLEJUMP // otne mi 10 minuti da iznamerq kakvo oznachava additem
// zashto ne polzva prosto "new" kato horata(govorq na OciXCrom) samo zatrudnqvash cqlata procedura izlishno
public plugin_init()
{
register_plugin("MultiJump","1.1","twistedeuphoria")
register_cvar("amx_maxjumps","1")
register_cvar("amx_mjadminonly","0")
}
/* ITEM CONFIG */
public plugin_precache()
ITEM_DOUBLEJUMP = cshop_register_item("doublejump", "Double Jump", 300, 1)
public cshopItemBought(id, iItem)
{
if(iItem == ITEM_DOUBLEJUMP)
dojump[id] = true
}
public cshopItemRemoved(id, iItem)
{
if(iItem == ITEM_DOUBLEJUMP)
dojump[id] = false
}
/* END OF ITEM CONFIG */
bool:hasAccess(id) {
// dali ima dostyp do multi jump
return is_user_alive(id) // igracha trqbva da e jiv
&& ((!get_cvar_num("amx-mjadminonly") // syshto trqbva opciqta ili da ne e samo za admini
|| access(id, ADMINACCESS))) // ili ako e samo za admini trqbva igracha da e admin
&& doJump[id] // i trqbva da ima item-a zakupen
}
public client_PreThink(id)
{
if (!hasAccess(id)) {
return // nqma smisyl da se zanimavame ako nqma dostyp do multi jump
}
new nbut = get_user_button(id) // butonite natisnati segashniq frame
new obut = get_user_oldbutton(id) // butonite natisnati minaliq frame
if (nbut & IN_JUMP && ~obut & IN_JUMP) { // ako predishniq frame ne e skachal i segashniq skacha (za da ne se povtarq postoqnno ako e zadyrjal space)
if (get_entity_flags(id) & FL_ONGROUND) { // ako e na zemqta(tepyrva skacha) mu zadavame jumpnum na 0
jumpnum[id] = 0
}
else if (get_cvar_num("amx_maxjumps") > jumpnum[id]) { // ako ne e na zemqta i ima jump-ove
new Float:velocity[3] // promenliva v koqto shte zapazim skorosta
entity_get_vector(id,EV_VEC_velocity,velocity) // vzimame skorosta
velocity[2] = random_float(265.0,285.0) // promenqme samo tretoto izmerenie(koeto sochi nagore) sys skorost mejdu 265.0 - 285.0
entity_set_vector(id,EV_VEC_velocity,velocity) // zapazvame skorosta
jumpnum[id]++ // veche igracha e izpolzval edin ot skokovete za tova uvelichavame jumpnum
}
}
}