Szerző Téma: Legközelebbi játékos lekérdezés!  (Megtekintve 2417 alkalommal)

Gang[St]e[R]

  • Vendég
Legközelebbi játékos lekérdezés!
« Dátum: 2011. február 17. - 20:07:56 »
0 Show voters
Üdv.
Szerintem a téma neve elárul mindent, ez a legközelebbi játékost lekérdezi!
Kell hozzá a foreach fügvénykönyvtár
 #include <foreach> 

 persze elöbb le is kell tölteni innen:http://forum.sa-mp.com/showthread.php?t=92679
kód:
 

stock ClosestPlayer(p1){
        new Float:dis,Float:dis2,playerid;
        playerid = -1;
        dis = 99999.99;
        foreach(Player,x){
           dis2 = GetDistanceToPlayer(p1,x);
            if (dis2 < dis && dis2 != -1.00)
            {
               dis = dis2;
                playerid = x;
            }
        }
        return playerid;
}
stock Float:GetDistanceToPlayer(playerid,playerid2) {
        new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
        if (!IsPlayerConnected(playerid) || !IsPlayerConnected(playerid2)) {
                return -1.00;
        }
        GetPlayerPos(playerid,x1,y1,z1);
        GetPlayerPos(playerid2,x2,y2,z2);
        return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}

 
Ha pedig betettük ezt az fs-be vagy gm-be és a legközelebbi játékossal akarunk valamit akkor érdemes abba a fügvénybe ezt a kódot használni:
 

new player = ClosestPlayer(playerid);

 
és akkor a definícióknál amit csináljon a legközelebbi játékos oda a
palyerid

 helyett ezt irjuk:
player
« Utoljára szerkesztve: 2011. november 22. - 19:45:39 írta APC »

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Legközelebbi játékos lekérdezés!
« Válasz #1 Dátum: 2011. február 17. - 20:47:45 »
0 Show voters
Azt kihagytad, hogy kell hozzá a foreach függvénykönyvtár.

Gang[St]e[R]

  • Vendég
Legközelebbi játékos lekérdezés!
« Válasz #2 Dátum: 2011. február 17. - 21:15:53 »
0 Show voters
Frissítve!

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Legközelebbi játékos lekérdezés!
« Válasz #3 Dátum: 2011. február 18. - 10:16:15 »
0 Show voters
GetDistanceToPlayer függvény is hiányzik.
Nekem ez foreach-al nemment jól, nemtom mér. ( FS-be )
Én így oldanám meg:
 

forward ClosestPlayer(p1);
public ClosestPlayer(p1)
{
        new
   Float:dis = 99999.99,
   Float:dis2,
   Float:MyPos[6],
   playerid = INVALID_PLAYER_ID;
        foreach(Player, x)
{
   GetPlayerPos(playerid, MyPos[0], MyPos[1], MyPos[2]);
   GetPlayerPos(x, MyPos[3], MyPos[4], MyPos[5]);
   dis2 = GetDistance(MyPos[0], MyPos[1], MyPos[2], MyPos[3], MyPos[4], MyPos[5]);
            if (dis2 < dis && dis2 != -1.00)
            {
               dis = dis2;
                playerid = x;
            }
        }
        return playerid;
}

 
GetDistance kell hozzá.
 

#define GetDistance(%1,%2,%3,%4,%5,%6) floatadd(floatadd(floatsqroot(floatpower(floatsub(%1, %4), 2)), floatsqroot(floatpower(floatsub(%2, %5), 2))), floatsqroot(floatpower(floatsub(%3, %6), 2)))
[/code
« Utoljára szerkesztve: 2011. február 18. - 10:19:55 írta kurta999 »

Legközelebbi játékos lekérdezés!
« Válasz #4 Dátum: 2011. február 18. - 10:18:36 »
0 Show voters
Idézetet írta: kurta999 date=1298020575\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6237\" data-ipsquote-contentclass=\"forums_Topic
GetDistanceToPlayer függvény is hiányzik.
Nekem ez foreach-al nemment jól, nemtom mér. ( FS-be )
 

#define FILTERSCRIPT
#include <foreach>

 
Ez is kell  :)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Legközelebbi játékos lekérdezés!
« Válasz #5 Dátum: 2011. február 18. - 10:20:15 »
0 Show voters
Idézetet írta: ChuckNorris date=1298020716\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"6237\" data-ipsquote-contentclass=\"forums_Topic


GetDistanceToPlayer függvény is hiányzik.
Nekem ez foreach-al nemment jól, nemtom mér. ( FS-be )
 

#define FILTERSCRIPT
#include <foreach>

 
Ez is kell  :)
 
[/quote]
Tudom, benne is volt :D

Gang[St]e[R]

  • Vendég
Legközelebbi játékos lekérdezés!
« Válasz #6 Dátum: 2011. február 23. - 21:24:46 »
0 Show voters
Frissítve! Most már hibátlan!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal