GTA-Expert Forum: [HELP] velocità - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[HELP] velocità

#1 L'utente è offline   [F12] phantom 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 465
  • Iscritto il: 16/04/10

Inviato il 23 settembre 2010 - 18:41

ragazzi, esiste una funzione che prende la velocità di un veicolo?

mi intendo che se faccio /autovelox

mi esce:

il veicolo id: 101 ha la velocità di 120 km/h (ho fato un esempio)
HostName: [ITA][VIP]Dream Cityt RP[ITA] by pisa city!
Address: 95.110.228.30:7777
Players: 38 / 50
Ping: 40
Mode: RolePlay v 0.4
Map: San Andreas

Siamo in cerca di CF
0

#2 L'utente è offline   Mozilla 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 2525
  • Iscritto il: 10/09/10
  • Provenienza:Palermo
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 18:50

c'è un filterscript su sa:mp che fà da autovelox comunque usa la funzione GetPlayerSpeed (cercala sul forum di sa:mp xk nn è nativa)
Immagine Postata
0

#3 L'utente è offline   [F12] phantom 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 465
  • Iscritto il: 16/04/10

Inviato il 23 settembre 2010 - 19:07

proverò
HostName: [ITA][VIP]Dream Cityt RP[ITA] by pisa city!
Address: 95.110.228.30:7777
Players: 38 / 50
Ping: 40
Mode: RolePlay v 0.4
Map: San Andreas

Siamo in cerca di CF
0

#4 L'utente è offline   Peppinux aka Peppe_Stasu 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2056
  • Iscritto il: 16/04/10
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 19:19

Click!
0

#5 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 23 settembre 2010 - 19:36

Questo è quello che ho fatto io e che uso io.

stock GetSpeed(vehicleid) {
  new Float:vx, Float:vy, Float:vz;
  GetVehicleVelocity(vehicleid, vx, vy, vz);
  return floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
}


La conversione in kilometri orari è diversa :gratt: non so quale sia giusta... a me l'infernus al suo massimo fa 246 km/h, il che ci potrebbe stare penso...

edit: 1.61 non è altro che la conversione tra miglia orarie e kilometri orari, quindi da per scontato che l'unità di GTA SA sia in centesimi di miglio, il che non mi risulta (sto parlando del link che ha messo peppinux).

Poi usa floatabs per portare il risultato in valore assoluto, ma è un errore da prima elementare, se moltiplichi un qualsiasi numero per esponente pari, il risultato non potrà mai essere negativo.
"Audentes Fortuna iuvat"
0

#6 L'utente è offline   Peppinux aka Peppe_Stasu 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2056
  • Iscritto il: 16/04/10
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 19:48

Facci sapere quale funziona meglio tra i due.
0

#7 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 23 settembre 2010 - 19:51

Visualizza Messaggipeppinux aka Peppe_Stasu, il 23 settembre 2010 - 20:48 ha detto:

Facci sapere quale funziona meglio tra i due.


A funzionare funzionano entrambi, il mio è piu corto il suo è solo più lungo e lento dato che ha messo funzioni inutili. A parte questo la differenza tra i due è la conversione in kilometri all' ora, e non mi va di provare quale è più preciso... come ho detto il massimo a cui può arrivare la infernus col mio è 246 km/h, moltiplicando per 161 il massimo arriverebbe a 190 km/h che mi sembra decisamente pochino.
"Audentes Fortuna iuvat"
0

#8 L'utente è offline   [F12] phantom 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 465
  • Iscritto il: 16/04/10

Inviato il 23 settembre 2010 - 19:52

ok
HostName: [ITA][VIP]Dream Cityt RP[ITA] by pisa city!
Address: 95.110.228.30:7777
Players: 38 / 50
Ping: 40
Mode: RolePlay v 0.4
Map: San Andreas

Siamo in cerca di CF
0

#9 L'utente è offline   Angelo_95 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1620
  • Iscritto il: 31/08/09
  • Provenienza:Area 51
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 19:57

Visualizza MessaggiSkiaffo, il 23 settembre 2010 - 20:36 ha detto:

Questo è quello che ho fatto io e che uso io.

stock GetSpeed(vehicleid) {
  new Float:vx, Float:vy, Float:vz;
  GetVehicleVelocity(vehicleid, vx, vy, vz);
  return floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
}


La conversione in kilometri orari è diversa :gratt: non so quale sia giusta... a me l'infernus al suo massimo fa 246 km/h, il che ci potrebbe stare penso...

edit: 1.61 non è altro che la conversione tra miglia orarie e kilometri orari, quindi da per scontato che l'unità di GTA SA sia in centesimi di miglio, il che non mi risulta (sto parlando del link che ha messo peppinux).

Poi usa floatabs per portare il risultato in valore assoluto, ma è un errore da prima elementare, se moltiplichi un qualsiasi numero per esponente pari, il risultato non potrà mai essere negativo.


Una domanda, come facevi a sapere che i km sono uguali a

floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
??
Hai tirato a caso ?
Immagine Postata
0

#10 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 23 settembre 2010 - 19:58

Visualizza MessaggiAngelo_95, il 23 settembre 2010 - 20:57 ha detto:

Visualizza MessaggiSkiaffo, il 23 settembre 2010 - 20:36 ha detto:

Questo è quello che ho fatto io e che uso io.

stock GetSpeed(vehicleid) {
  new Float:vx, Float:vy, Float:vz;
  GetVehicleVelocity(vehicleid, vx, vy, vz);
  return floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
}


La conversione in kilometri orari è diversa :gratt: non so quale sia giusta... a me l'infernus al suo massimo fa 246 km/h, il che ci potrebbe stare penso...

edit: 1.61 non è altro che la conversione tra miglia orarie e kilometri orari, quindi da per scontato che l'unità di GTA SA sia in centesimi di miglio, il che non mi risulta (sto parlando del link che ha messo peppinux).

Poi usa floatabs per portare il risultato in valore assoluto, ma è un errore da prima elementare, se moltiplichi un qualsiasi numero per esponente pari, il risultato non potrà mai essere negativo.


Una domanda, come facevi a sapere che i km sono uguali a

floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
??
Hai tirato a caso ?


Mi ricordo che ero andato a tentativi fino a trovare la conversione più realistica, e avevo letto una discussione sul forum di SA-MP su quale potesse essere il valore con cui moltiplicare il risultato per rendere la conversione più realistica possibile, e si diceva che il valore più accettabile era tra 195 e 200 quindi ho avuto la conferma e ho lasciato 200.

Comunque il problema è soltanto su quel * 200... sul resto non credo ci siano dubbi no?
"Audentes Fortuna iuvat"
0

#11 L'utente è offline   Angelo_95 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1620
  • Iscritto il: 31/08/09
  • Provenienza:Area 51
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 20:15

Visualizza MessaggiSkiaffo, il 23 settembre 2010 - 20:58 ha detto:

Visualizza MessaggiAngelo_95, il 23 settembre 2010 - 20:57 ha detto:

Visualizza MessaggiSkiaffo, il 23 settembre 2010 - 20:36 ha detto:

Questo è quello che ho fatto io e che uso io.

stock GetSpeed(vehicleid) {
  new Float:vx, Float:vy, Float:vz;
  GetVehicleVelocity(vehicleid, vx, vy, vz);
  return floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
}


La conversione in kilometri orari è diversa :gratt: non so quale sia giusta... a me l'infernus al suo massimo fa 246 km/h, il che ci potrebbe stare penso...

edit: 1.61 non è altro che la conversione tra miglia orarie e kilometri orari, quindi da per scontato che l'unità di GTA SA sia in centesimi di miglio, il che non mi risulta (sto parlando del link che ha messo peppinux).

Poi usa floatabs per portare il risultato in valore assoluto, ma è un errore da prima elementare, se moltiplichi un qualsiasi numero per esponente pari, il risultato non potrà mai essere negativo.


Una domanda, come facevi a sapere che i km sono uguali a

floatround(floatsqroot(vx*vx + vy*vy + vz*vz) * 200);
??
Hai tirato a caso ?


Mi ricordo che ero andato a tentativi fino a trovare la conversione più realistica, e avevo letto una discussione sul forum di SA-MP su quale potesse essere il valore con cui moltiplicare il risultato per rendere la conversione più realistica possibile, e si diceva che il valore più accettabile era tra 195 e 200 quindi ho avuto la conferma e ho lasciato 200.

Comunque il problema è soltanto su quel * 200... sul resto non credo ci siano dubbi no?


Si però non ho capito come facevi a sapere che i km sono uguali alla "Potenza" della "Radice Quadrata" Di "vx * vx + vy * vy + vZ*vz" "* 200"
Immagine Postata
0

#12 L'utente è offline   Peppe951 

  • Tirapiedi
  • Gruppo: Utenti
  • Messaggi: 899
  • Iscritto il: 14/07/09
  • GTA Preferito:Sconosciuto

Inviato il 23 settembre 2010 - 20:23

Questa è la versione che mi sono creato io o.ò:

GetPlayerSpeed(playerid, bool:kmh = true)
{
    new
        Float:vX, 
        Float:vY, 
        Float:vZ;
    if(IsPlayerInAnyVehicle(playerid))
    {
        GetVehicleVelocity(GetPlayerVehicleID(playerid), vX, vY, vZ); 
    }
    else
    {
        GetPlayerVelocity(playerid, vX, vY, vZ);
    }
    return kmh ? floatround(floatsqroot(vX*vX + vY*vY + vZ*vZ) * 161) : floatround(floatsqroot(vX*vX + vY*vY + vZ*vZ) * 100);
}


Dalla funzione di skiaffo la differenza non è poca nella conversione a km, inoltre con sta funzione a me con l'infernus li supera i 190 o.ò

Provate a paragonare le due funzioni con il contachilometri di sobeit, che è preciso e fateci sapere

Messaggio modificato da Peppe951 il 23 settembre 2010 - 20:24

0

#13 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 23 settembre 2010 - 21:27

Visualizza MessaggiAngelo_95, il 23 settembre 2010 - 21:15 ha detto:

Si però non ho capito come facevi a sapere che i km sono uguali alla "Potenza" della "Radice Quadrata" Di "vx * vx + vy * vy + vZ*vz" "* 200"


Quella parte non centra niente con i kilometri o le conversioni di unità di misura, è solo matematica.

Prima di tutto c'è da sapere cosa fa GetVehicleVelocity. Velocity in inglese non è la stessa cosa di speed, e velocity non si traduce velocità in italiano. Velocity in inglese è una grandezza fisica e si traduce (e quindi è il corrispondente in italiano) come "vettore velocità".

GetVehicleVelocity quindi prende tre vettori orientati nello spazio, uno per ogni coordinata, dove il modulo è la velocità (di unità di misura sconosciuta). Per trovare la velocità quindi bisogna fare la somma dei vettori, e la somma dei vettori la si fa col teorema di pitagora. E' come se i due vettori fossero i due cateti di un triangolo, e il vettore somma fosse l'ipotenusa: la radice quadrata del quadrato del primo cateto (x*x) + il quadrato del secondo cateto (y*y) è uguale all'ipotenusa, ovvero il vettore somma di x e y. Siccome siamo nello spazio e non sul piano si aggiunge la coordinata z la ridice (z*z), ed ecco il tuo vettore somma della velocità.

Il *200 o *161 serve solo a convertire questo vettore somma in kilometri orari, anche se ancora non abbiamo capito quale sia il valore giusto. Secondo me è 200.
"Audentes Fortuna iuvat"
0

#14 L'utente è offline   Angelo_95 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1620
  • Iscritto il: 31/08/09
  • Provenienza:Area 51
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 22:01

O.o quindi se ho capito GetPlayerVelocity getta tre vettori velocità, cioè

La velocità con cui il player si sta spostando nella coordinata X (Da Est a Ovest e viceversa)
La velocità con cui il player si sta spostando nella coordinata Y (Da Nord a Suc e viceversa)
La velocità con cui il player si sta spostando nella coordinata Z (Dal basso in alto e viceversa)


Poi col teorema di pitagora sommo X , Y , Z per avere la somma dei vettori velocità che poi verrà divisa per 200 o 161, che è il numero per trasformare questa somma dei vettori in Km

Se mi ricordo bene il teorema di pitagore serviva per trovare l'ipotenusa tra due cateti, ma poteva essere anche utilizzato per trovare il primo catete o il secondo catete avendo l'ipotenusa

Se mi ricordo bene se dovevo trovare l'ipotenusa facevo:

La radice quadrata del primo valore^2 sommato col secondo valore^2 se non sbaglio xD poi non ricordo sono cose che ho fatto alle medie, mentre il prof il 1° superiore non ci ha ancora insegnato niente.
P.S. scusate L'OT
Immagine Postata
0

#15 L'utente è offline   Skiaffo 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 14732
  • Iscritto il: 08/12/05
  • Provenienza:Urbs Aeterna
  • GTA Preferito:GTA V

Inviato il 23 settembre 2010 - 22:04

Visualizza MessaggiAngelo_95, il 23 settembre 2010 - 23:01 ha detto:

Se mi ricordo bene il teorema di pitagore serviva per trovare l'ipotenusa tra due cateti, ma poteva essere anche utilizzato per trovare il primo catete o il secondo catete avendo l'ipotenusa


Si, ma in questo caso dobbiamo trovare la somma dei vettori e quindi l'ipotenusa del triangolo che costruiscono, quindi il resto non ci serve :asd:
"Audentes Fortuna iuvat"
0

#16 L'utente è offline   Angelo_95 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1620
  • Iscritto il: 31/08/09
  • Provenienza:Area 51
  • GTA Preferito:GTA: San Andreas

Inviato il 23 settembre 2010 - 22:16

xD quando il mio prof inizierà a spiegare come trovare le varie aree e volumi allora inizierò a capire qualcosa xD
Immagine Postata
0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi