new target = UTIL_FindNearestOpponent(id,600) if (target == -1) return PLUGIN_HANDLED new Hit[3] get_user_origin(target,Hit) //Create Lightning message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(1) // TE_BEAMENTPOINT write_short(id) write_coord(Hit[0]) write_coord(Hit[1]) write_coord(Hit[2]) write_short(sprite_lgt) write_byte(0) write_byte(1) write_byte(3) write_byte(10) //WITD write_byte(60) write_byte(255) //r write_byte(0) //g write_byte(0) //b write_byte(100) //BRIGT write_byte(0) message_end() //dalej bierze HP...Czyli od totemu do gracza czerwony promień który bierze ustaloną ilość HP...Pójdzie to ? Jak nie to co mam źle?
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
Totem - piorun moc
Temat rozp. KariiO, 18.04.2011 16:50
4 odpowiedzi w tym temacie
#1
Napisano 18.04.2011 16:50
Witam mam pewną moc w zasadzie to piorun ale chciałbym go umieścić w totem sytuacja by wyglądała tak(totem zrobiony już[brakmocy]) że wchodzimy na obszar totemu(on wytwarza taki okrąg...) i jeżeli tam się znajdziemy to ma robić to:
#2
Napisano 18.04.2011 20:54
A czemu miało by nie pójść? Najlepiej jakbyś pokazał całą tą funkcję razem z tym wycinkiem kodu, bo przecież nikt nie jest jasnowidzem, żeby wiedzieć czy to zadziała.
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#3
Napisano 19.04.2011 15:36
Wiadomość która pobiera koordy bytu i koordy id gracza, a nie ten co podałeś.
Użytkownik GoldeN edytował ten post 19.04.2011 15:36
#4
Napisano 19.04.2011 17:09
Całość wygląda tak:
public item_piorun(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Totemu mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}
used_item[id] = true
new origin[3]
pev(id,pev_origin,origin)
new ent = Spawn_Ent("info_target")
set_pev(ent,pev_classname,"Effect_Piorun_Totem")
set_pev(ent,pev_owner,id)
set_pev(ent,pev_solid,SOLID_TRIGGER)
set_pev(ent,pev_origin,origin)
set_pev(ent,pev_ltime, halflife_time() + 15 + 0.1)
engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 0,100,255, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)
set_pev(ent,pev_nextthink, halflife_time() + 0.1)
return PLUGIN_CONTINUE
}
public Effect_Piorun_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
//We have emitted beam. Apply effect (this is delayed)
if (pev(ent,pev_euser2) == 1)
{
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and damage them
new entlist[513]
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (get_user_team(pid) == get_user_team(id))
continue
if (is_user_alive(pid)){
zadajobrazenia(pid)
}
}
set_pev(ent,pev_euser2,0)
set_pev(ent,pev_nextthink, halflife_time() + 1.5)
return PLUGIN_CONTINUE
}
//Entity should be destroyed because livetime is over
if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent)
return PLUGIN_CONTINUE
}
//If this object is almost dead, apply some render to make it fade out
if (pev(ent,pev_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 )
new Float:forigin[3], origin[3]
pev(ent,pev_origin,forigin)
FVecIVec(forigin,origin)
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 0 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 255 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
set_pev(ent,pev_euser2,1)
set_pev(ent,pev_nextthink, halflife_time() + 0.5)
return PLUGIN_CONTINUE
}
public zadajobrazenia(id)
{
new Hit[3]
get_user_origin(target,Hit)
//Create Lightning
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id)
write_coord(Hit[0])
write_coord(Hit[1])
write_coord(Hit[2])
write_short(sprite_lgt)
write_byte(0)
write_byte(1)
write_byte(3)
write_byte(10) //WITD
write_byte(60)
write_byte(255) //r
write_byte(0) //g
write_byte(0) //b
write_byte(100) //BRIGT
write_byte(0)
message_end()
//dalej bierze HP...
}
#5
Napisano 19.04.2011 18:17
Ta, ustawiłeś origin obrywającego i start na obrywającym (W sumie to nawet nie na obrywającym), brawo. Dobra, ja nie zamierzam się w tym temacie wypowiadać.. Chyba sam wiesz czemu.
Użytkownik GoldeN edytował ten post 19.04.2011 18:18
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty









