GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: Peter1481048284 - 2013. július 21. - 19:18:21

Cím: Object meglövése
Írta: Peter1481048284 - 2013. július 21. - 19:18:21
Üdv egy olyan scriptet kérnék tõletek, hogy van egy object. És azt a player meglövi akkor történjen valami. Teljesen mindegy mi azt bele írom, de sehogy se tudok rá jönni,hogy kivitelezhetõ. Elõre is köszönöm a válaszokat
Cím: Object meglövése
Írta: Norbivar - 2013. július 21. - 20:09:47
Helló,
Jelenlegi állás szerint nem kivitelezhetõ. Semmiféle callback-el nem vagyunk megáldva ami ezt lehetõvé tenné. Szóval úgymond \'egyszerûbb\' módon nem megoldható. A nehezebb mód egy kis matekozás, számítgatás, játékos billentyû keresgetés után talán, bár ez utóbbi csak a képzeletemben él.
Tehát nem kivitelezhetõ.
Cím: Object meglövése
Írta: Peter1481048284 - 2013. július 21. - 22:40:28
de kivitelezhetõ mert láttam már szerveren. IsPlayerLookAt al. De hogy hogyan azt nemtudom
Cím: Object meglövése
Írta: ZyZu. - 2013. július 22. - 07:28:37
Még nem láttam hasonló kódokat én sem.. de kiváncsi lennék ennek a szervernek az IP címére.. probálj PM -ben küldeni egy IP címet és felmegyünk megnézem.. lehet ha szemrõl látom meg tudom csinálni.. de mondom nem rémlik még, hogy láttam volna hasonló kódokat..  :hmmm:
Cím: Object meglövése
Írta: Peter1481048284 - 2013. július 22. - 11:43:50
Nem tudok szeró ip adni mert azóta formáztam a gépet és az ip vesztek kb 3 hete. De nagy eséllyel amire gyanakodtam. IsPlayerLookAt al lesz megoldva.
Cím: Object meglövése
Írta: Rupert - 2013. július 22. - 12:05:41
Ez egyszerû. Szükséges az IsPlayerAimingAt függvény.
 

stock IsPlayerAimingAt(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));
}

 
Ha azt szeretnéd, hogy objectre célozzon, for ciklussal végig kell menned az objecteken. ( Ez viszont csak akkor mûködik, ha azok valami tömbben vannak pl. )
 

for(new i;i<MAX_DISZNOK;i++)
{
new Float:pos[3];
GetObjectPos(disznoobject, pos[0], pos[1], pos[2]);
if(IsPlayerAimingAt(pos[0], pos[1], pos[2])) SendClientMessage(playerid, -1, \"Te most egy disznóra célzol.\");
}

 
Ez csak egy példascript.
Cím: Object meglövése
Írta: Peter1481048284 - 2013. július 22. - 12:08:35
Ha ez most beválik én megcsókollak :D