Szerző Téma: Jármû közelbe van-e?  (Megtekintve 786 alkalommal)

Jármû közelbe van-e?
« Dátum: 2014. március 29. - 07:29:01 »
0 Show voters
Nos, Hello. Azt szeretném kérdezzni, hogy-hogyan lehet azt megoldani, hogy észlelje a szerver, h a kocsi közelében vagy-e?
Válaszotokat elõre köszönöm.

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #1 Dátum: 2014. március 29. - 07:48:47 »
0 Show voters
Mármint 1 kocsi?
 
new vehicleid = 1; //a jármû id-jét
new Float:p[3];
GetVehiclePos(vehicleid, p[0], p[1], p[2]);
if(IsPlayerInRangeOfPoint(playerid, 10.0, p[0], p[1], p[2])) {
//10 méteres körzetében van
}else{
//nincs a 10 méteres körzetében
}

Jármû közelbe van-e?
« Válasz #2 Dátum: 2014. március 29. - 08:14:04 »
0 Show voters
ez egy bizonyos jármûre.. ha arra vagy kiváncsi, hogy van-e akármilyen jármû a közeledben, akkor ugyan ez, csak ciklussal felvezetve, jármûazonosító helyett.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #3 Dátum: 2014. március 29. - 08:55:19 »
0 Show voters
Amit Pedro írt, az a helyes megoldás a kérdésre, hisz nem kért mást, csak, hogy a közelében van-e, viszont szerintem szeretne valamit operálni is az ID-vel, mert nem tudom, mire lenne jó egy olyan függvény, ami nem tér vissza az idjével. Bocs, ha hülyeséget mondok, vagy valamit félreértelmeztem.
Ezzel a függvénnyel tudod ezt megoldani (ezt most kivételesen én csináltam):
 

stock LegkozelebbiJarmu(playerid, Float:korzet)
{
new Float:jpoz[3], Float:tav = korzet, jarmu;
for(new a = 0; a < MAX_VEHICLES; a++)
{
        if(GetPlayerVirtualWorld(playerid) != GetVehicleVirtualWorld(a)) continue;
        //if(GetPlayerInterior(playerid) != GetVehicleInterior(a)) continue;
        GetVehiclePos(a, jpoz[0], jpoz[1], jpoz[2]);
        if(GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]) > tav) continue;
        if(GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]) < tav)
        {
           tav = GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]);
           jarmu = a;
}
}
if(tav < korzet) return jarmu;
else return -1;
}

 
Megint lehet, hogy teljesen rossz, telefonról írtam.
Ezt úgy használd, hogy:
 

if(LegkozelebbiJarmu(playerid, 5.0) == -1) SendClientMessage(playerid, -1, \"Nincs az 5,0 méteres közeledben jármû!\");
else
{
    new SikUzi[128];
    format(SikUzi, sizeof(SikUzi), \"A hozzád legközelebbi jármû (5.0 méteres körzetben) idje: %d\", LegkozelebbiJarmu(playerid, 5.0));
    SendClientMessage(playerid, -1, SikUzi);

 
Szóval ez multifunkcionális :D
U.i.: ha a pawno unreachable codot ír, akkor a stock alján lent az if és az elsees sorok helyére csak egy \"return jarmu;\"-t írj.
U.i.2.: Most látom mit írt \"TengeriMalac\" (ha más a beceneved, bocsi, nem ismerek innen senkit) \"sTylE\", kb. arra akartam kilyukadni.
Szerk.: Javítottam, így már helyes értékkel tér vissza, igaz, az interiort nem nézi.
« Utoljára szerkesztve: 2014. március 29. - 13:43:39 írta KovaNovik »

Jármû közelbe van-e?
« Válasz #4 Dátum: 2014. április 05. - 10:42:30 »
0 Show voters
Megvolt, mûködik, zárom.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #5 Dátum: 2014. április 05. - 10:46:49 »
0 Show voters
[mod]Mivel neked nem sikerült, így zárom én![/mod]

Jármû közelbe van-e?
« Válasz #6 Dátum: 2014. március 29. - 07:29:01 »
0 Show voters
Nos, Hello. Azt szeretném kérdezzni, hogy-hogyan lehet azt megoldani, hogy észlelje a szerver, h a kocsi közelében vagy-e?
Válaszotokat elõre köszönöm.

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #7 Dátum: 2014. március 29. - 07:48:47 »
0 Show voters
Mármint 1 kocsi?
 
new vehicleid = 1; //a jármû id-jét
new Float:p[3];
GetVehiclePos(vehicleid, p[0], p[1], p[2]);
if(IsPlayerInRangeOfPoint(playerid, 10.0, p[0], p[1], p[2])) {
//10 méteres körzetében van
}else{
//nincs a 10 méteres körzetében
}

Jármû közelbe van-e?
« Válasz #8 Dátum: 2014. március 29. - 08:14:04 »
0 Show voters
ez egy bizonyos jármûre.. ha arra vagy kiváncsi, hogy van-e akármilyen jármû a közeledben, akkor ugyan ez, csak ciklussal felvezetve, jármûazonosító helyett.

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #9 Dátum: 2014. március 29. - 08:55:19 »
0 Show voters
Amit Pedro írt, az a helyes megoldás a kérdésre, hisz nem kért mást, csak, hogy a közelében van-e, viszont szerintem szeretne valamit operálni is az ID-vel, mert nem tudom, mire lenne jó egy olyan függvény, ami nem tér vissza az idjével. Bocs, ha hülyeséget mondok, vagy valamit félreértelmeztem.
Ezzel a függvénnyel tudod ezt megoldani (ezt most kivételesen én csináltam):
 

stock LegkozelebbiJarmu(playerid, Float:korzet)
{
new Float:jpoz[3], Float:tav = korzet, jarmu;
for(new a = 0; a < MAX_VEHICLES; a++)
{
        if(GetPlayerVirtualWorld(playerid) != GetVehicleVirtualWorld(a)) continue;
        //if(GetPlayerInterior(playerid) != GetVehicleInterior(a)) continue;
        GetVehiclePos(a, jpoz[0], jpoz[1], jpoz[2]);
        if(GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]) > tav) continue;
        if(GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]) < tav)
        {
           tav = GetPlayerDistanceFromPoint(playerid, jpoz[0], jpoz[1], jpoz[2]);
           jarmu = a;
}
}
if(tav < korzet) return jarmu;
else return -1;
}

 
Megint lehet, hogy teljesen rossz, telefonról írtam.
Ezt úgy használd, hogy:
 

if(LegkozelebbiJarmu(playerid, 5.0) == -1) SendClientMessage(playerid, -1, \"Nincs az 5,0 méteres közeledben jármû!\");
else
{
    new SikUzi[128];
    format(SikUzi, sizeof(SikUzi), \"A hozzád legközelebbi jármû (5.0 méteres körzetben) idje: %d\", LegkozelebbiJarmu(playerid, 5.0));
    SendClientMessage(playerid, -1, SikUzi);

 
Szóval ez multifunkcionális :D
U.i.: ha a pawno unreachable codot ír, akkor a stock alján lent az if és az elsees sorok helyére csak egy \"return jarmu;\"-t írj.
U.i.2.: Most látom mit írt \"TengeriMalac\" (ha más a beceneved, bocsi, nem ismerek innen senkit) \"sTylE\", kb. arra akartam kilyukadni.
Szerk.: Javítottam, így már helyes értékkel tér vissza, igaz, az interiort nem nézi.
« Utoljára szerkesztve: 2014. március 29. - 13:43:39 írta KovaNovik »

Jármû közelbe van-e?
« Válasz #10 Dátum: 2014. április 05. - 10:42:30 »
0 Show voters
Megvolt, mûködik, zárom.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Jármû közelbe van-e?
« Válasz #11 Dátum: 2014. április 05. - 10:46:49 »
0 Show voters
[mod]Mivel neked nem sikerült, így zárom én![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal