←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Edycja itemu

Locked

  • +
  • -
^^^Deed's Photo ^^^Deed 17.04.2010

Witam, slęczę nad tym kodem od kilku godzin i nie wiem jak go edytować żeby można było używać tego itemu więcej niż jeden raz. Z góry dzięki za pomoc.
public item_ghost(id)
{
	if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id) && !ghost_check)
	{
		set_user_noclip(id,1)
		ghoststate[id] = 2
		ghosttime[id] = floatround(halflife_time())
		ghost_check = true
		
		message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) 
		write_byte( player_b_ghost[id]+1 ) 
		write_byte( 0 ) 
		message_end() 
	}
	else
	{
		hudmsg(id,3.0,"Tylko jeden gracz moze uzywac Ducha w tym samym czasie! / Przedmiot zostal uzyty!")
	}
}
Pozdrawiam
Quote

Screeaam...'s Photo Screeaam... 17.04.2010

O ile się nie mylę, to czas jest chyba w tej funkcji:

public Timed_Ghost_Check(id)
{
	if (ghost_check == true)
	{	
		new Globaltime = floatround(halflife_time())
		
		new Players[32], playerCount, a
		get_players(Players, playerCount, "h") 
		
		for (new i=0; i<playerCount; i++) 
		{
			a = Players[i] 
			
			if (ghoststate[a] == 2 && Globaltime - player_b_ghost[a] > ghosttime[a])
			{
				ghoststate[a] = 3
				ghosttime[a] = 0
				set_user_noclip(a,0)
				ghost_check = false
				new Float:aOrigin[3]
				entity_get_vector(a,EV_VEC_origin,aOrigin)	
				
				if (PointContents (aOrigin) != -1)
				{
					user_kill(a,1)	
				}
				else
				{
					aOrigin[2]+=10
					entity_set_vector(a,EV_VEC_origin,aOrigin)
				}
				
				
				
			}
			
		}
		
	}
}

Ale mogę się mylić..
Quote

  • +
  • -
^^^Deed's Photo ^^^Deed 17.04.2010

Czas jest w tym samym kodzie co podałem, mi chodzi o :
żeby można było używać tego itemu więcej niż jeden raz
Quote

  • +
  • -
Kubaczek <3's Photo Kubaczek <3 17.04.2010

if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id) && !ghost_check)
... usuń z tego ghoststate[id] == 0
Quote

  • +
  • -
^^^Deed's Photo ^^^Deed 17.04.2010

Dzięki dział, można zamknąć.
Quote

Adminek AMXX.PL's Photo Adminek AMXX.PL 17.04.2010

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Problem 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
Quote

  • +
  • -
^^^Deed's Photo ^^^Deed 17.04.2010

Dzięki za otwarcie tematu.
Ok zmieniam pytanie :)
Co zmienić w tym kodzie żebym przed następnym użyciem musiał odczekać jakiś czas (2-4 s) i możliwość użycia przez więcej niż jedną osobę.
public item_ghost(id)
{
	if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id) && !ghost_check)
	{
		set_user_noclip(id,1)
		ghoststate[id] = 2
		ghosttime[id] = floatround(halflife_time())
		ghost_check = true
		
		message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) 
		write_byte( player_b_ghost[id]+1 ) 
		write_byte( 0 ) 
		message_end() 
	}
	else
	{
		hudmsg(id,3.0,"Tylko jeden gracz moze uzywac Ducha w tym samym czasie! / Przedmiot zostal uzyty!")
	}
}

Z góry dzięki i pozdrawiam.

Edit : Pomoże ktoś ? ;)
Edited by ^^^Deed, 24.04.2010 00:09.
Quote

  • +
  • -
Kubaczek <3's Photo Kubaczek <3 24.04.2010

Zamień:
if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id) && !ghost_check)

na:
if (ghoststate[id] == 0 && player_b_ghost[id] > 0 && is_user_alive(id))
Potem w ifie dodaj taska który za 4 sekundy wywoła funkcję na graczu (raz!!) wyłącz
public wyłącz(id)  	
ghoststate[id] == 0
Quote
Locked