Skocz do zawartości

Rekomendowane odpowiedzi

Witam,

Może mi ktoś stworzyć kod i mniej więcej opisać, który działałby następująco:

 

Po włączeniu, przed graczem lecą HE w kierunku, którym patrzy, ale nie w to samo miejsce, a przed gracza, czyli:

Pierwsza HE jest np: 50.0 jednostek przed graczem, druga już 100.0j przed graczem i tak co +50.0j od ostatniego HE. Takich spadających HE byłoby 10

Czyli każda kolejna spada o 50.0j dalej od ostatniej i cały czas musi być PRZED graczem, mianowicie tam gdzie patrzy gracz.

Bardziej chodzi mi o kod, który pokaże jak zrzucać takie HE w kierunku, którym patrzy gracz, lecz z takim schematem, który podałem, bo stworzyć spadające HE potrafię :/ 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Cześć! Super że postanowiłeś napisać u nas temat! Jeśli masz już kod na spawnowanie HE to chętnie go zobaczymy i pomyślimy co z tym dalej zrobić. Jak na razie możesz zajrzeć do tematu 

 

 

Możesz z tego wyciągnąć tworzenie obiektu dokładnie przed graczem i zmieniając 'distance' spawnować obiekty dalej

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
void CreateHe()
{
	int iEntity = CreateEntityByName("hegrenade_projectile");
	if(iEntity == INVALID_ENT_REFERENCE)
		return;

	float pos[3];
	pos[0] = g_iHePos[0];
	pos[1] = g_iHePos[1];
	pos[2] = g_iHePos[2] + 300.0;

	SetEntPropEnt(iEntity, Prop_Send, "m_hThrower", 0);
	SetEntPropEnt(iEntity, Prop_Send, "m_hOwnerEntity", 0);

	TeleportEntity(iEntity, pos, NULL_VECTOR, NULL_VECTOR);
	DispatchSpawn(iEntity);
}

CreateHe tworzy jedno HE, a ja chcę by za każdym razem to tworzone HE było +50.0j przed graczem, tak jak napisałem wyżej (50/100/150/200) i tak aż 10*50=500.0j

Wcześniej pobieram to w taki sposób

GetClientAbsOrigin(client, g_iInfernoPos);

co jest logiczne, bo najpierw chcę pobrać lokalizacje gracza, a potem na jej podstawie budować każdą kolejną. Oczywiście nie chcę tej lokalizacji aktualizować, bo to ma być pobrane tylko raz i tak też to działa

Edytowane przez Alexander

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak na razie widzę, że HE będzie miał pozycję (0, 0, 300) gdzieś w mapie ^^ Pobierz origin tak jak mówiłeś poprzez https://go-code.pl/dokumentacja-sourcemod/client/GetClientAbsOrigin
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami! i pokombinuj z 'distance' z CalculateOriginByDegree z poprzedniego postu, najpierw skupmy się na ogarnięciu jak możemy zespawnować granat w jakiejkolwiek odległości chcemy od gracza

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Pomoc udzielona

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...