Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
[ROZWIĄZANE] Jak zablokować wybuch HE ?
Temat rozp. Pan PrO, 23.11.2012 22:36
9 odpowiedzi w tym temacie
#1
Napisano 23.11.2012 22:36
Witam. Czy istnieje jakaś funkcja która blokuje wybuch HE jeśli np. Nie spełnimy jakiegoś warunku ??
#2
Napisano 23.11.2012 23:48
Jeżeli chodzi o ukrycie wybuchu to możesz to zrobić poprzez operacje na message jeśli chcesz całkowicie zablokować wybuch to zmieniasz parametr nextthink( pev_nextthink ) tak jak ja robiłem to tutaj http://amxx.pl/topic/60297-kaboom/ tylko w innym zastosowaniu
#3
Napisano 24.11.2012 10:46
Mam kod który blokuje wybuch HE a jeśli gracz zginie to HE automatycznie wybucha ale nie wiem czemu nie działa
RegisterHam(Ham_Touch, "grenade", "fwTouch");
register_think("grenade", "ThinkGranade");
public ThinkGranade(ent)
{
new id = entity_get_edict(ent, EV_ENT_owner);
if(is_valid_ent(ent))
{
if(!is_user_alive(id))
vExplode(ent);
else entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.5);
}
}
public fwTouch(ent, id)
{
if(!is_valid_ent(ent))
return HAM_IGNORED;
static szModel[64];
pev(ent, pev_model, szModel, charsmax(szModel));
if(equal(szModel,"models/w_hegrenade.mdl") && is_user_alive(id))
{
entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.5);
return HAM_SUPERCEDE;
}
else vExplode(ent);
return HAM_IGNORED;
}
public grenade_throw(id, gid, wid)
{
if(!is_valid_ent(gid))
return PLUGIN_CONTINUE;
if(!is_user_alive(id))
return PLUGIN_CONTINUE;
entity_set_float(gid, EV_FL_nextthink, get_gametime()+0.5);
return PLUGIN_CONTINUE;
}
vExplode(this,bool:bSmoke = false)
{
set_pev(this,pev_dmgtime,get_gametime());
if(bSmoke) set_pev(this,pev_flags,pev(this,pev_flags) | FL_ONGROUND);
dllfunc(DLLFunc_Think, this);
}
Użytkownik Pan PrO edytował ten post 24.11.2012 10:47
#4
Napisano 24.11.2012 13:52
usun kod funkcji vExplode oraz kod z nią związany
#5
Napisano 24.11.2012 14:17
Dalej wybucha
RegisterHam(Ham_Touch, "grenade", "fwTouch");
register_think("grenade", "ThinkGranade");
public ThinkGranade(ent)
{
new id = entity_get_edict(ent, EV_ENT_owner);
if(is_valid_ent(ent))
{
if(is_user_alive(id))
entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.5);
}
}
public fwTouch(ent, id)
{
if(!is_valid_ent(ent))
return HAM_IGNORED;
static szModel[64];
pev(ent, pev_model, szModel, charsmax(szModel));
if(equal(szModel,"models/w_hegrenade.mdl") && is_user_alive(id))
{
entity_set_float(ent, EV_FL_nextthink, get_gametime()+0.5);
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public grenade_throw(id, gid, wid)
{
if(!is_valid_ent(gid))
return PLUGIN_CONTINUE;
if(!is_user_alive(id))
return PLUGIN_CONTINUE;
entity_set_float(gid, EV_FL_nextthink, get_gametime()+0.5);
return PLUGIN_CONTINUE;
}
Użytkownik Pan PrO edytował ten post 24.11.2012 14:19
#6
Napisano 24.11.2012 15:13
może Zrób taska co sekunde który usuwa byt z modelem rzuconego granatu? Przeszłoby to?
#7
Napisano 24.11.2012 15:26
a ja chcę mieć taki efekt że gdy rzucę HE to odbije się od ścian lub podłogi i będzie sobie leżeć a gdy ktoś mnie zabije to HE wybuchnie
#8
Napisano 24.11.2012 16:23
Wydaje się, że styknie.
#include < amxmodx >
#include < hamsandwich >
#include < fakemeta >
new Array:gaMyCoolGrenades[ 33 ];
new gszGrenadeTemp[ 33 ];
public plugin_init()
{
register_plugin( "Granade, the Avenger", "0.1", "MarWit" );
RegisterHam( Ham_Think, "grenade", "hamGrenadeThink" )
RegisterHam( Ham_Killed, "player", "hamPlayerKilled" );
for( new i = 0; i < 32; i++ )
gaMyCoolGrenades[ i ] = ArrayCreate();
}
public plugin_end()
for( new i = 0; i < 32; i++ ) ArrayDestroy( gaMyCoolGrenades[ i ] );
public hamGrenadeThink( iGrenade )
{
pev( iGrenade, pev_model, gszGrenadeTemp, 32 );
if( containi( gszGrenadeTemp, "w_hegren" ) == -1 )
return HAM_IGNORED;
ArrayPushCell( gaMyCoolGrenades[ pev( iGrenade, pev_owner ) ], iGrenade );
return HAM_SUPERCEDE;
}
public hamPlayerKilled( id, iAttacker, bShouldgibs )
{
while( ArraySize( gaMyCoolGrenades[ id ] ) )
{
ExecuteHam( Ham_Think, ArrayGetCell( gaMyCoolGrenades[ id ], 0 ) ); // BOOM, BOOM, BOOM !
ArrayDeleteItem( gaMyCoolGrenades[ id ], 0 );
}
}
#9
Napisano 24.11.2012 18:34
Działa wielkie dzięki.
#10
Napisano 24.11.2012 18:57
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
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: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych