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

[ROZWIĄZANE] Gra sobie, chyba ze mnie żartuje. Nie wykonuje się funkcja


Najlepsza odpowiedź DarkGL, 03.05.2013 17:26

rozdziel sobie warunki i printuj informacje które się wykonały a które nie dojdziesz wtedy gdzie ty ( a nie gra ) popełniłeś błąd

Przejdź do postu


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

#1 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 03.05.2013 16:58

Raczej jest to 100% nie możliwe! Gra sobie ze mną pogrywa czy jak ?
public client_PreThink(id)
{
	if(!is_user_alive(id) || is_user_hltv(id))
		return PLUGIN_CONTINUE
		
	static entlist[3], entlist2[3]
	
	if(find_sphere_class(id, "turret", 12.0, entlist, 2))
	{
		client_print(id, 3,"ent: %d | it: %d | gmtim: %d | gspr: %d", entlist[0], is_turret(entlist[0]), gMenuTurretsInMenu[id], gShowPlayerRange[id])
		if(((is_turret(entlist[0])) && (SentryOwner(entlist[0]) == id) && !(pev_valid(pev(entlist[0], pev_sentry_ranger))) && (!gMenuTurretsInMenu[id]) && (!gShowPlayerRange[id])))
		{
			client_print(0, 3, "poszlo")
			CreateRanger(entlist[0])	
		}
		if(get_gametime() > ThinkInfoTime[id]+2.0)
		{
			static nick[33], szTemp[128], szTurret[64], id2
			id2 = SentryOwner(entlist[0])
			get_user_name(id2, nick, 32)
			formatex(szTemp, 127, "Wiezyczka gracza: %s", nick)
			
			if(gTurretsType[id2][SentryId(entlist[0])])
			{
				formatex(szTurret, 63, "^nTyp : %s^nAmunicja : %d", gTurretName[gTurretsType[id2][SentryId(entlist[0])]], gTurretsAmmo[id2][SentryId(entlist[0])])
				add(szTemp, 127, szTurret)
			}
			ThinkInfoTime[id] = get_gametime()	
			set_hudmessage(0, 255, 0, 0.31, 0.79, 1, 6.0, 2.0, _, _, 2)
			ShowSyncHudMsg(id, gSync4, szTemp)
		}
			
	}
	else if(!gMenuTurretsInMenu[id] && (pev_valid(entlist[0]) && pev_valid(pev(entlist[0], pev_sentry_ranger))) && gShowPlayerRange[id])
	{
		remove_entity(pev(entlist[0], pev_sentry_ranger))
		gShowPlayerRange[id] = 0
	}
		
	if(g_iOwnedEnt[id] && IsMovingEnt[id])
	{
		
		static Float:Origin[3], Float:Origin2[3], GOrigin[3]
		get_user_origin(id, GOrigin, 3)
		
		IVecFVec(GOrigin, Origin)//origin
		IVecFVec(GOrigin, Origin2)//turn
		
		get_origin_from_dist_player(id, 45.0, Origin)
		
		Origin[2]-=36.0
		
		set_pev(g_iOwnedEnt[id], pev_origin, Origin)
		sentry_turntotarget2(g_iOwnedEnt[id], Origin, Origin2)
		Origin[2]+=36.0
		if(is_turret_stuck(g_iOwnedEnt[id]) || ((find_sphere_class(g_iOwnedEnt[id], "turret", 47.5, entlist2, 2)) && (entlist2[0] != g_iOwnedEnt[id])) || (bsent && find_ent_in_sphere(bsent, Origin2, 30.0)))
		{
			client_print(id, print_center, "Nie mozesz tutaj postawic tej wiezyczki!")
			CanDropTurret[id] = false
		}
		else
		{
			CanDropTurret[id] = true;
		}
		
		entity_set_float(g_iOwnedEnt[id], EV_FL_nextthink, 0.0)
	}
	
	return PLUGIN_CONTINUE
}
Sory za tyle nawiasów, ale dla mnie ma być true albo false :)
Problem polelga na tym, że gdy postawie pierwszą wieżyczkę to wszystko świetnie działą. Dobra nie tak.

1. - Postawiam 1 wieżyczkę
2. - Wszystko śmiga
3. - Postawiam 2 wieżyczkę
4. - Gra sobie Kpi
• Wchodzę w wieżyczkę i się nie wykonuje to:
if(((is_turret(entlist[0])) && (SentryOwner(entlist[0]) == id) && !(pev_valid(pev(entlist[0], pev_sentry_ranger))) && (!gMenuTurretsInMenu[id]) && (!gShowPlayerRange[id])))
Jednak wszystko temu przeczy! wycinek z konsoli:
ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0
a powinno być:
ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0

ent: 89 | it: 1 | gmtim: 0 | gspr: 0
poszlo

a
[...]
Czyli powinno się wykonać, jednak nawet nie wykonuje się. Tak jest w przypadku postawienia powyżej 2 wieżyczek. 1 wieżyczka działa świetnie, jest tak jak być powinno. Pojawia się 2 wieżyczka i gra zaczyna sobie jaja robić ^D^
public CreateRanger(ent)
{
	client_print(0,3,"a")
	if(!pev_valid(ent) || !is_turret(ent) || pev_valid(pev(ent, pev_sentry_ranger)))
		return PLUGIN_CONTINUE;
	
	new id = SentryOwner(ent);
	client_print(0, 3, "%d %d %d %d", ent, pev(ent,pev_sentry_ranger), gShowPlayerRange[id], id)
	if(!is_user_alive(id) || gShowPlayerRange[id])
		return PLUGIN_CONTINUE
	
	static Float:Origin[3];

	pev(ent, pev_origin, Origin)
				
	new ranger = create_entity( "info_target" );
		
	entity_set_string(ranger, EV_SZ_classname, "ranger" );
	entity_set_model(ranger, "sprites/TD/circle.spr" );
	entity_set_origin(ranger, Origin );
	
	new Float:range = gTurretsRange[id][SentryId(ent)] / 250.0;
		
	set_pev(ranger, pev_scale, range)
	set_rendering(ranger, kRenderFxNoDissipation, 0,0,0, kRenderGlow, 255)

	set_pev(ent, pev_sentry_ranger, ranger)
	
	Origin[2] -=50
	entity_set_aim_range(ranger, Origin)
	
	gShowPlayerRange[id] = 1
	
	return PLUGIN_CONTINUE
}


edit: Macie wycinek z konsoli
http://wklej.org/id/1029174/
Połapiecie się o co biega.

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 03.05.2013 17:26   Najlepsza odpowiedź

rozdziel sobie warunki i printuj informacje które się wykonały a które nie dojdziesz wtedy gdzie ty ( a nie gra ) popełniłeś błąd


  • +
  • -
  • 1

#3 GT Team

    Ten lepszy xD

  • Autor tematu
  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 03.05.2013 18:32

Darek, podam Cię do sądu za konsultacje z obcymi i zdradzanie narodu. Jesteś geniuszem ^D^ Do zamknięcia

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 





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

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