←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak zrobic samemu totem

Zablokowany

Tomi - zdjęcie Tomi 08.04.2010

Witam, Chcialbym Dostać jakis poradnik, wskazówki jak Zrobić swojego Totema. Pomoglibyście :)? Przydało by się to dla nowych
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 08.04.2010

masz 2 przyklady w Sma malo :?:

naucz sie wymyslac swoje pomysly i wprowadzac je w zycie bo znajac je twoj server bedzie nie oryginalny :/
Odpowiedz

Tomi - zdjęcie Tomi 08.04.2010

Goq Chcialbym na razie sie nauczyć podstaw.
A do Totema jest pełno "Linijek"


wystarczy przerobic to?
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

}


Użytkownik backspace edytował ten post 08.04.2010 17:15
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 08.04.2010

mowisz ze chcesz przyklad to ci odpowiadam masz 2 przyklady w sma a pozatym jak nie ogarniasz podstaw to nie bierz sie za cos co ich wymaga
Odpowiedz

Tomi - zdjęcie Tomi 08.04.2010

Przepięknie Motywujesz Ludzi do działania. Nie pytam Ciebie jak mam sie zacząć uczyć tylko czy ktoś może Mi pomóc jak zrobić totem.
Odpowiedz

  • +
  • -
KoRnY - zdjęcie KoRnY 08.04.2010

Ale taka jest prawda?
Teraz wszyscy wszystko kopiują.
Tak jak powiedział G[o]Q przykłady masz w kodzie.
Odpowiedz

Tomi - zdjęcie Tomi 08.04.2010

To po kiego Ku.... h... jest te forum... proszę o pomoc w temacie Pytania
Ty KoRnY nie chce nic mówić ale tylko spamujesz lub powtarzasz po innych....
Ludzie chciałem wskazówki. To sie do mnie rzuca jeden z drugim
Odpowiedz

  • +
  • -
KoRnY - zdjęcie KoRnY 08.04.2010

wystarczy przerobic to?

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

}



Tak wystarczy to przerobić.
+ dodać ewentualny efekt którego w diablo nie ma
Odpowiedz

Tomi - zdjęcie Tomi 08.04.2010

Dziekuje....
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 08.04.2010

nie masz co dziekowac bo to i tak nie zadziala :P
Odpowiedz

Tomi - zdjęcie Tomi 08.04.2010

Czemu niby : / To co to za pomoc skoro I tak to nie ma dzialac?
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 08.04.2010

Kod totemu najlepiej skopiować pousuwać co zbędę i zrobić gotowa.
Dodać do check_magic wywołanie oraz register_think w plugin_init.
Wklejasz twój kod z totema funkcje nadajesz taką nazwę jak wywołanie z check_magic a classname na taki z register_think.
Kopiujesz kod thinka nazywając funkcję jak w register_think.
I tu właśnie w thinku będzie kod który będzie odpowiadać za to co dany totem robi.
Czyli tak Spawn -> wygląd, model, miejsce, latający, wyglądający jak paka czy też jak ta emotikonka :giggle:
a w thinku -> moc tj, piorun, leczenie, oślepianie, podrzucanie, bomba, czy zabijanie śmiechem.
Masz wskazówkę a właściwie mini tut ;| Moce możesz skopiować z zombie moda np. zamrożenie, edytując warunki pod diablo :blaga: :blaga: :blaga: :blaga: :blaga: :blaga: :blaga: :blaga:
Odpowiedz

Tomi - zdjęcie Tomi 09.04.2010

Dzięki Wystarczyło mi takie coś : )
Odpowiedz

Adminek AMXX.PL - zdjęcie Adminek AMXX.PL 09.04.2010

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Bo śnieg (Rozwiązany)

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany