1/1 z He nie działa
Karaj 13.08.2011
Witam
Pomoże ktoś naprawić? bo 1/1 z He nie działa
Pomoże ktoś naprawić? bo 1/1 z He nie działa
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <hamsandwich> #define DMG_BULLET (1<<1) #define DMG_HE (1<<24) new const perk_name[] = "Granat Gerala"; new const perk_desc[] = "Natychmiastowe zabicie z HE"; new ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "MarWit") cod_register_perk(perk_name, perk_desc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); } public cod_perk_enabled(id) { cod_give_weapon(id, CSW_HEGRENADE); ma_perk[id] = true; } public cod_perk_disabled(id) { cod_take_weapon(id, CSW_HEGRENADE); ma_perk[id] = false; } public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!ma_perk[idattacker]) return HAM_IGNORED; if(damagebits & DMG_BULLET) { new weapon = get_user_weapon(idattacker); if(weapon == CSW_HEGRENADE) cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); } return HAM_IGNORED; }
Dwdov 13.08.2011
Błędy co najmniej 3.
1. Sprawdzasz czy dmg są od naboi
2. Sprawdzasz czy gracz trzyma aktualnie HE w ręce, a nie czy dmg zostało zadane przy pomocy HE.
3. W sumie nie taki błąd, ale po co tego używać wystarczy SetHamParamFloat( 4, damage )
Powinno być tak (sposobem ze starego coda, trzeba jeszcze #include <engine> )
Użytkownik Dawedov edytował ten post 13.08.2011 09:31
1. Sprawdzasz czy dmg są od naboi
if(damagebits & DMG_BULLET)
2. Sprawdzasz czy gracz trzyma aktualnie HE w ręce, a nie czy dmg zostało zadane przy pomocy HE.
new weapon = get_user_weapon(idattacker);
if(weapon == CSW_HEGRENADE)
3. W sumie nie taki błąd, ale po co tego używać wystarczy SetHamParamFloat( 4, damage )
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
Powinno być tak (sposobem ze starego coda, trzeba jeszcze #include <engine> )
public TakeDamage( this, idinflictor, idattacker, Float:damage, damagebits )
{
if( !is_user_connected( idattacker ) )
return HAM_IGNORED;
if( !ma_perk[idattacker] )
return HAM_IGNORED;
if( !( damagebits & DMG_BULLET ) // mozna tez chyba wj***c negacje ~DMG_BULLET
&& idinflictor != idattacker
&& entity_get_int(idinflictor, EV_INT_movetype) != 5 )
{
damage = get_user_health( this );
SetHamParamFloat(4, damage);
}
return HAM_IGNORED;
}
Użytkownik Dawedov edytował ten post 13.08.2011 09:31
Karaj 13.08.2011
a to gdzie mam dac?
new weapon = get_user_weapon(idattacker);
if(weapon == CSW_HEGRENADE)
new weapon = get_user_weapon(idattacker);
if(weapon == CSW_HEGRENADE)
Dwdov 13.08.2011
Tak się tego nie sprawdza, get_user_weapon zwraca broń trzymaną, czyli rzucisz np. HE ale zanim on zada dmg to broń zmieni Ci się np. na m4a1 i wtedy get_user_weapon zwraca m4a1.
To sprawdza czy sposob poruszania się enta jest inny niż 5 ( MOVETYPE_WALK - czyli gracza ) - o ile nie powaliłem numerków. Jeżeli jest inny to najprawdopodobniej to jest HE i tak też jest ; p
entity_get_int(idinflictor, EV_INT_movetype) != 5
To sprawdza czy sposob poruszania się enta jest inny niż 5 ( MOVETYPE_WALK - czyli gracza ) - o ile nie powaliłem numerków. Jeżeli jest inny to najprawdopodobniej to jest HE i tak też jest ; p
Dwdov 13.08.2011
Masz wyżej jak powinna wyglądać funkcja takedamage, wklejasz ją zamiast swojej i dopisujesz na górze sma
#include <engine>
Karaj 13.08.2011
zrobiłem tak i nie działa;/
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <codmod> #include <hamsandwich> #include <engine> #define DMG_BULLET (1<<1) #define DMG_HE (1<<24) new const perk_name[] = "Granat Gerala"; new const perk_desc[] = "Natychmiastowe zabicie z HE"; new ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "MarWit") cod_register_perk(perk_name, perk_desc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); } public cod_perk_enabled(id) { cod_give_weapon(id, CSW_HEGRENADE); ma_perk[id] = true; } public cod_perk_disabled(id) { cod_take_weapon(id, CSW_HEGRENADE); ma_perk[id] = false; } public TakeDamage( this, idinflictor, idattacker, Float:damage, damagebits ) { if( !is_user_connected( idattacker ) ) return HAM_IGNORED; if( !ma_perk[idattacker] ) return HAM_IGNORED; if( !( damagebits & DMG_BULLET ) // mozna tez chyba wj***c negacje ~DMG_BULLET && idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5 ) { damage = get_user_health( this ); SetHamParamFloat(4, damage); } return HAM_IGNORED; }
DarkGL
13.08.2011
sprawdz
#include <amxmodx> #include <codmod> #include <hamsandwich> new const perk_name[] = "Granat Gerala"; new const perk_desc[] = "Natychmiastowe zabicie z HE"; new ma_perk[33]; public plugin_init() { register_plugin(perk_name, "1.0", "MarWit") cod_register_perk(perk_name, perk_desc); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); } public cod_perk_enabled(id) { cod_give_weapon(id, CSW_HEGRENADE); ma_perk[id] = true; } public cod_perk_disabled(id) { cod_take_weapon(id, CSW_HEGRENADE); ma_perk[id] = false; } public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker) || !is_user_connected(this)) return HAM_IGNORED; if(!ma_perk[idattacker]) return HAM_IGNORED; if(damagebits & (1 << 24) ) { cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits); } return HAM_IGNORED; }
Adminek AMXX.PL 13.08.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Rozwiązane
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Rozwiązane
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL