Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-08-11, 08:35


f4f







Wiek: 36
Na forum: 5513 dni
Posty: 17



Respekt: 50

Chcia?bym si? dowiedzie? czy istnieje funkcja dzi?ki kt?rej b?dzie mo?na
sprawdzi? czy gracz patrzy na Dynamiczny Obiekt.
Chcia?bym aby po wpisaniu komendy usuwa?o go je?eli si? na niego patrzy.
Kod:

if(!strcmp(cmdtext, "/test", true))
{
if(graczpatrzynadynamicznyobiekt)
{
DestroyDynamicObject....
}
else
{
Nie patrzy na obiekt
}
return 1;
}


Wykonuje aktualnie pewn? prace dorywcz? i bardzo by mi si? co? takiego
przyda?o.Pr?bowa?em robi? kilka rzeczy z pobieraniem kamery,wektor?w,lecz
to nic nie dawa?o.

Prosi?bym o pomoc. :piwo: :piwo: :+: reputacja

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-08-11, 11:54


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
https://wiki.sa-mp.com/wiki/GetPlayerCameraTargetObject

Najpierw musisz sprawdzi?, czy ta funkcja dzia?a na obiekty dynamiczne, ale powinna. Nigdy tego nie u?ywa?em - czyta?em, ?e s?abo spe?nia swoje zadanie, gdy w pobli?u jest wi?ksza ilo?? obiekt?w.

Innym rozwi?zaniem by?oby u?ycie pluginu ColAndreas, kt?ry s?u?y do wykrywania kolizji na ca?ej mapie, jednak?e tego pluginu te? nie u?ywa?em i nie potrafi?bym pom?c w jego ogarni?ciu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-08-11, 12:14


f4f







Wiek: 36
Na forum: 5513 dni
Posty: 17



Respekt: 50

"Combacior" napisał/a:

https://wiki.sa-mp.com/wiki/GetPlayerCameraTargetObject

Z tego korzysta?em,lecz nie dzia?a to na obiekty dynamiczne.
Spr?buje ogarn?? ten plugin ColAndreas.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-08-11, 12:49


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Ten plugin z?era spor? ilo?? RAM-u, gdy? tworzy kolizj? dla ka?dego obiektu, wi?c u?ycie tego pluginu tylko dla jednej komendy raczej nie b?dzie dobrym pomys?em, ale to ju? nie moja decyzja. Plugin niech b?dzie ostateczno?ci?, spr?buj troch? pokombinowa?, znalaz?em taki kod

Kod:

GetPlayerCameraObject(playerid) return Streamer_GetItemStreamerID(playerid, STREAMER_TYPE_OBJECT, GetPlayerCameraTargetObject(playerid));


Nietestowane, ale na forum sampa jest napisane, ?e dzia?a. Nie ograniczaj si? tylko do tego forum, tylko szukaj troch? w google i na forum sampa. Na forum ruskim, rumu?skim te? jest sporo przydatnego kodu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-08-11, 16:46


f4f







Wiek: 36
Na forum: 5513 dni
Posty: 17



Respekt: 50

"Combacior" napisał/a:

Streamer_GetItemStreamerID(playerid, STREAMER_TYPE_OBJECT, GetPlayerCameraTargetObject(playerid));[/code]


Z tego kodu chyba korzysta?em,lecz nie jestem pewien zaraz sprawdz? :) .
Chcia?bym si? jeszcze dowiedzie? jedn? rzecz.Mianowicie,mam kamer? w jednym punkcie,wykonuje np. jak?? akcje.Jak zrobi? ?eby po ponownym wykonaniu akcji pisa?o,?ebym zmieni? pozycje kamery.Je?eli by?oby to mo?liwe poprosz? o jakie? wytyczne :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-08-12, 10:53


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Je?li chodzi o kamer?, to skorzystaj z funkcji GetPlayerCameraPos i GetPlayerCameraFrontVector. Jest ju? gotowa bezpo?rednia funkcja, wi?c nie musisz si? bawi?.

Kod:

static Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ)
{
new Float:TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ)), Float:tmpX, Float:tmpY, Float:tmpZ;
tmpX = FrX * TGTDistance + CamX;
tmpY = FrY * TGTDistance + CamY;
tmpZ = FrZ * TGTDistance + CamZ;
return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ));
}

bool:IsPlayerLookingAt(playerid, Float:x, Float:y, Float:z, Float:radius)
{
new Float:cx, Float:cy, Float:cz, Float:fx, Float:fy, Float:fz;
GetPlayerCameraPos(playerid, cx, cy, cz);
GetPlayerCameraFrontVector(playerid, fx, fy, fz);
return radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz);
}


Przy pierwszym wykonaniu akcji zapisujesz sobie pozycj? do tablicy gracza, przy drugim wykonaniu por?wnujesz zapisan? pozycj?.

Postaw piwo autorowi tego posta
 

 
Tagi: gracz :: patrzy :: dynamiczny :: obiekt
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku