Potrójny skok i błąd w kompilacji
severe
26.06.2011
Witam. Nie wiem co tu źle zrobiłem:
I jeszcze mam małe pytanko jak zrobić potrójny skok w powietrzu?
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#define DMG_BULLET (1<<1)
new const nazwa[] = "Elitarny Rusher";
new const opis[] = "1/3 szansa na zabicie przeciwka,nowa broń";
new const bronie = 1<<CSW_M3 | 1<<CSW_XM1014;
new const zdrowie = 10;
new const kondycja = 85;
new const inteligencja = 20;
new const wytrzymalosc = 10;
public plugin_init() {
register_plugin(nazwa, "1.0", "QTM_Peyote");
cod_register_advance(cod_get_classid("Rusher"), 50, nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);
if(weapon == CSW_M3 && damage > 20.0 && random_num(1,3) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
if(weapon == CSW_XM1014 && damage > 20.0 && random_num(1,3) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}
return HAM_IGNORED;
I jeszcze mam małe pytanko jak zrobić potrójny skok w powietrzu?
BliBs_Pl
26.06.2011
Chyba tu masz coś źle:
cod_register_advance(cod_get_classid("Rusher"), 50, nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
BliBs_Pl
26.06.2011
U mnie to wygląda tak:
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
severe
26.06.2011
Ale to jest klasa, która awansuje. Ale poradziłem sobie z tym. Teraz mam problem ponieważ nie wiem jak zrobić potrójny skok...
BliBs_Pl
27.06.2011
Po prostu robisz tak:
Do #include'ów dajesz:
Do bool'ów dajesz (jeśli nie masz żadnego boola i nie wiesz gdzie to dać to daj pod consty albo nad consty ale nie wiem czy to coś zmienia):
Pod(czy jakiego ty tam masz):
I przy publicach wpisujesz:
To jakoś trzeba zmienić ale nie wiem jak do końca.
Do #include'ów dajesz:
#include <fakemeta>
Do bool'ów dajesz (jeśli nie masz żadnego boola i nie wiesz gdzie to dać to daj pod consty albo nad consty ale nie wiem czy to coś zmienia):
new bool:moze_skoczyc[33];
Pod(czy jakiego ty tam masz):
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);dajesz:
register_forward(FM_CmdStart, "CmdStart");
I przy publicach wpisujesz:
public CmdStart(id, uc_handle) { if(!ma_klase[id]) return FMRES_IGNORED; new button = get_uc(uc_handle, UC_Buttons); new oldbutton = pev(id, pev_oldbuttons); new flags = pev(id, pev_flags); if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc[id]) { moze_skoczyc[id] = false; new Float:velocity[3]; pev(id, pev_velocity, velocity); velocity[2] = random_float(265.0,285.0); set_pev(id, pev_velocity, velocity); } else if(flags & FL_ONGROUND) moze_skoczyc[id] = true; return FMRES_IGNORED; }
To jakoś trzeba zmienić ale nie wiem jak do końca.
Goliath
27.06.2011
On chce trzy skoki, a nie dwa.
Zmień:
Na:
A następnie zmień:
Na:
Zmień:
new bool:moze_skoczyc[33];
Na:
new skoki[33];
A następnie zmień:
public CmdStart(id, uc_handle)
{
if(!ma_klase[id])
return FMRES_IGNORED;
new button = get_uc(uc_handle, UC_Buttons);
new oldbutton = pev(id, pev_oldbuttons);
new flags = pev(id, pev_flags);
if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc[id])
{
moze_skoczyc[id] = false;
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity, velocity);
}
else if(flags & FL_ONGROUND)
moze_skoczyc[id] = true;
return FMRES_IGNORED;
}
Na:
public CmdStart(id, uc_handle)
{
if(!ma_klase[id])
return FMRES_IGNORED;
new button = get_uc(uc_handle, UC_Buttons);
new oldbutton = pev(id, pev_oldbuttons);
new flags = pev(id, pev_flags);
if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity, velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 2;
return FMRES_IGNORED;
}