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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: totar - 2012. október 20. - 08:53:30

Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: totar - 2012. október 20. - 08:53:30
Üdv!
Ha van egy motorom, egy egyenes úton, akkor hozzácsatolnák egy objectet, aminek ugyebár van rotation-ja, és lenne egy alap rotationom, amivel, hogy ha nem egyezik meg a jármû rotationja, akkor visszatenné az eredeti rotationra, és akkor a jármû pozícióját is megváltoztatná egyben, ami lenne a cél! pl.: rot x(vagy y, z attól függ)akkor attól még egykerekezni tudna, csak nemtudna jobbra balra menni.
Szerintetek ez kivitelezhetõ?
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Kovacs_Richard - 2012. október 20. - 09:12:15
ha a csatolt tárgy fordulását változtatod meg attól nem fog visszafordulni a motor ! az a motorhoz képest változik és nem a motor idomul hozzá...ha azt akarod hogy egy tárgy kövesse a motort akkor pl MoveObject-el + idõzítõvel oda mozgatod a motorhoz...de nem biztos hogy ez a legjobb módja a korlátozásnak mivel itt ha nekimegy a falnak a fal tolhatja elõre...
valahogy így:
 
public TimerRunOut
{
    new Float:Pos[3];
    GetVehiclePos(motor,Pos[0],Pos[1],Pos[2]);
    MoveObject(object,Pos[0]+2,Pos[1],Pos[2],5.0);
    return 1;
}

 
de ha ezt a megoldást választod akkor ajánlom hogy keress olyan tárgyat amiben elfér a motor és azt tologasd rajta...és ha egymás mellett megy 2 játékos és azt akarod lássák egymást akkor a 0-ás materials-t állítsd láthatatlanra ( vagy / és amelyiket szükséges )
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: lackos888 - 2012. október 20. - 09:19:20
Idézetet írta: totar date=1350716010\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28776\" data-ipsquote-contentclass=\"forums_Topic
Üdv!
Ha van egy motorom, egy egyenes úton, akkor hozzácsatolnák egy objectet, aminek ugyebár van rotation-ja, és lenne egy alap rotationom, amivel, hogy ha nem egyezik meg a jármû rotationja, akkor visszatenné az eredeti rotationra, és akkor a jármû pozícióját is megváltoztatná egyben, ami lenne a cél! pl.: rot x(vagy y, z attól függ)akkor attól még egykerekezni tudna, csak nemtudna jobbra balra menni.
Szerintetek ez kivitelezhetõ?
 
Csinálj 1 timert mindegyiknek, és aki benne van abba a listába, akkor mindig a rotációt arra állítod, amelyikre akarod h nézzen.
Amúgy Trials-t szeretnél ugye?
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: totar - 2012. október 20. - 10:34:14
Ja trial-t, csak nem tudom megcsinálni, hogy a motor megtartsa az eredeti pozíciót, a nyilakat nyomja a player akkor kanyarodik a motor, és egy \"Kötött\" pályás rendszer vagy mi kellene xD
Ha lenne SetVehicleRotation, vagy ilyesmi akkor megoldható lenne, de mivel nem tudok róla, és a setvehiclezange meg nem jó mivel ha egykerekezik és úgy forúl a jármûvel és vissza raknám az eredeti angle-ra, akkor elveszíti az egykerekezõ \"pózt\"
Várom az ötleteket
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Kovacs_Richard - 2012. október 20. - 10:42:31
hát ezekkel kötött pályát meglehet csinálni csak itt akármerre fordulhat a játékos...pontosabban az Angular-al lehet betudnád lõni hogy netudjon akármerre fordulni...de ehhez már kísérletezned kell :) sok sikert...
http://wiki.sa-mp.com/wiki/SetVehicleVelocity
http://wiki.sa-mp.com/wiki/SetVehicleAngularVelocity
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: totar - 2012. október 20. - 10:57:08
Ok THX próbálgatom, de még várom a javaslatokat! :)
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Kovacs_Richard - 2012. október 20. - 10:58:32
amúgy konkrétan mi a probléma? az hogy letér az útról vagy az hogy elfordul?
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: totar - 2012. október 20. - 11:35:26
Na az van, hogy én leteszem egy helyre a motort, és az a baj, hogy vannak a nyilak, és a player elkanyarodik a pályáról, holott nem szabadna kormányozni, és le szerettem volna valahogy deaktiválni a jobbra balra billyentyût!
Az lenne a lényeg, hogy a player egy adott pályán csak elõre, meg hátra tudjon haladni(motorral elõre menni, és tolatni, NEM megfordumni) magyarul ne kanyarodjon, és ha megdobja valami a kereket ne térjel el az útról:
MTA-ban így vannak megoldva a trial mapok:

egy iylen fajta korlátozást szeretnék samp-ba!
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: krisk - 2012. október 21. - 07:49:04
Idézetet írta: totar date=1350725726\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28776\" data-ipsquote-contentclass=\"forums_Topic
Na az van, hogy én leteszem egy helyre a motort, és az a baj, hogy vannak a nyilak, és a player elkanyarodik a pályáról, holott nem szabadna kormányozni, és le szerettem volna valahogy deaktiválni a jobbra balra billyentyût!
Az lenne a lényeg, hogy a player egy adott pályán csak elõre, meg hátra tudjon haladni(motorral elõre menni, és tolatni, NEM megfordumni) magyarul ne kanyarodjon, és ha megdobja valami a kereket ne térjel el az útról:
MTA-ban így vannak megoldva a trial mapok:

egy iylen fajta korlátozást szeretnék samp-ba!
 
Hát lekorlátozni nem lehet, azt meg lehet, hogy érzékelje, ha megnyomtad. Esetleg, ha nyomatsz egy return 0-t az alábbi kódba, akkor mûködhet. Ha nem, akkor csak kickeld õket, és a probléma megoldva.
 

public OnPlayerUpdate(playerid) {
     new Keys,ud,lr;
     GetPlayerKeys(playerid,Keys,ud,lr);
     if(lr != 0) {
          // tegyél, amit jónak látsz, megnyomta a gombot. próbáld ki return 0-t, hátha úgy nem küldi el, ha de, akkor kick, vagy freeze.
    }
}

 
Azt, hogy ne térjen le ha megdobja valami, azt nem tudom hogy lehetne, esetleg egy pathfinding pluginnal/inccel begráfozod az egész pályát, és a legközelebbi nodehoz telézi ha a fenti nodetól adott távra van.
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Kovacs_Richard - 2012. október 21. - 08:08:23
return 0;-s megoldás nem mûködne...és hülyeség a kickelés...mert ha a pálya dobja meg és elfordul akkor kickelnéd a játékost? :O
http://wiki.sa-mp.com/wiki/OnPlayerUpdate
ha 0-val térne itt vissza annyi lenne az eredménye hogy a többi játékos nem látná hogy éppen hol van...mivel náluk nem frissítené az adatokat...de attól ugyanúgy leesne...
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Pedró - 2012. október 21. - 08:24:21
ha letérik az útról akkor kiesik pl.. nem kell itt a kanyarodási lehetõség eltávolítás..
sztem csak annyit csinj meg, hogyha leesik akkor essen ki a minigame-bõl
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: TengeriMalac - 2012. október 21. - 08:37:45
GetVehicleZAngle, SetVehicleZAngle
lekérdezed, és ha megváltozik, miközben megy, akkor visszaállítod, persze hagyni kell egy 4-5 fokos intervallumot, mert nem tud mindenki nyíl egyenesen menni.
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: Kovacs_Richard - 2012. október 21. - 08:51:10
Idézetet írta: TengeriMalac date=1350801465\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28776\" data-ipsquote-contentclass=\"forums_Topic
GetVehicleZAngle, SetVehicleZAngle
lekérdezed, és ha megváltozik, miközben megy, akkor visszaállítod, persze hagyni kell egy 4-5 fokos intervallumot, mert nem tud mindenki nyíl egyenesen menni.
 
a 4-5 foknál simán leesik :) és az a gond hogy ennyi nem elég...mivel pl fel van húzva a motor eleje akkor ez a kód visszaállítja alapra...tegnap elkezdtünk kidolgozni egy kódot rá...már csak egy kis matek van hátra és szerintem kész is lenne a megoldás...de ezt már rábíztam totar-ra :) de ha meg lesz a másik gépem akkor lehet befejezem én...bár totar azt mondta kapott valami ihletet :)
mi is hasonló úton indultunk el...
http://wiki.sa-mp.com/wiki/GetVehiclePos
http://wiki.sa-mp.com/wiki/GetVehicleZAngle
http://wiki.sa-mp.com/wiki/GetVehicleVelocity
http://wiki.sa-mp.com/wiki/GetVehicleRotationQuat
http://wiki.sa-mp.com/wiki/SetVehiclePos
http://wiki.sa-mp.com/wiki/SetVehicleZAngle
http://wiki.sa-mp.com/wiki/SetVehicleVelocity
http://wiki.sa-mp.com/wiki/SetVehicleAngularVelocity
már csak ahhoz kéne a matek hogy  a QuatRotation-ból kihozzuk az AngularVelocity-t...
pontosabban a QuatRot-ot egy függvénnyel még konvertáljuk amit a hivatalos fórumról szedtünk...
Cím: Jármû ne tudjon letérni az addott egyenes útvonalról!
Írta: totar - 2012. október 21. - 10:41:20
Így van, már kidolgoztunk egy alapot, csak folyamatos tesztelés + matek áll elõttünk!