Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Item - Sam totem leczacy


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Drewno.

    Banned

  • Zbanowany

Reputacja: 36
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 18.12.2010 18:50

Witam,bo w diablo mod są itemy które mają totem + regeneracja x hp co 5 sekund.usunąłem totem z tych itemów i jest tylko regeneracja x hp co 5 sekund.Jak zrobić item,sam totem,bez żadnej regeneracji?

#2 MaDaFaKa

    Zaawansowany

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 18.12.2010 20:10

Łapaj.

1. Tworzysz zmienną globalną:

new player_b_heal[33] = 1

2. W "public check_magic(id)" dodajesz:

if (player_b_heal[id] > 0) item_totemheal(id)

3. Następnie w "public reset_item_skills(id)" dodajesz zerowanie zmiennej, czyli:

player_b_heal[id] = 0

4. W plugin_init() rejestrujesz totem:

register_think("Effect_Healing_Totem","Effect_Healing_Totem_Think")

5. Na końcu .sma dodajesz:
public item_totemheal(id)
{
if (used_item[id])
{
hudmsg(id,2.0,"Leczacy Totem 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_Healing_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() + 7 + 0.1)

engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl")
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 )
engfunc(EngFunc_DropToFloor,ent)

set_pev(ent,pev_nextthink, halflife_time() + 0.1)

return PLUGIN_CONTINUE
}

public Effect_Healing_Totem_Think(ent)
{
new id = pev(ent,pev_owner)
new totem_dist = 300
new amount_healed = player_b_heal[id]

//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)) change_health(pid,amount_healed,0,"")
}

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( 255 ); // r, g, b
write_byte( 100 ); // r, g, b
write_byte( 100 ); // 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

}

I tyle xD

Użytkownik MaDaFaKa edytował ten post 18.12.2010 20:11


#3 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 20.12.2010 10:27

bez sensu... Gracze nawet tego nie zauważą




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych