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: Dexter95 - 2012. november 08. - 19:29:09

Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 08. - 19:29:09
Egy olyan kérdésem lenne, hogy tudnátok-e olyan script-et, hogy ha beülök utasként lehessen az autót gyorsítani, lassítani, esetleg kanyarodni. Remélem tudtok segíteni:). Köszi.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 08. - 19:31:01
hello
http://wiki.sa-mp.com/wiki/SetVehicleVelocity
 
Important Note: This function has no effect on un-occupied vehicles and does not effect trains.

 
szóval csak akkor tudnád \"nyomni a gázt\" ha lenne sofõr...
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 08. - 19:33:07
Igen, konkrétan én is erre a megoldásra gondoltam, csak ennyire még nem értek hozzá. Tudnál te vagy valaki nekem pontosan írni egyet?. Nagyon megköszönném  ::|
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 08. - 19:36:19
de ha nincs sofõr akkor \"nem hat az effekt\"
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 08. - 19:37:37
Nem gond, pontosan úgy szeretném, hogy egy bizonyos helyzetben az utas beavatkozhasson. :)
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 08. - 19:41:29
http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange
http://wiki.sa-mp.com/wiki/GetPlayerKeys + http://wiki.sa-mp.com/wiki/OnPlayerUpdate
http://wiki.sa-mp.com/wiki/GetPlayerVehicleID
http://wiki.sa-mp.com/wiki/GetVehicleVelocity
http://wiki.sa-mp.com/wiki/SetVehicleVelocity
http://wiki.sa-mp.com/wiki/GetVehicleZAngle
http://wiki.sa-mp.com/wiki/SetVehicleZAngle
ezek kellenek kb...
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 08. - 19:45:14
Igen, hasonlókat találtam persze, csak ennyire én nem értek hozzá (Még). És reménykedtem, hogy már valaki írt, vagy ír hasonlót nekem. Mert nekem sajnos most nincsen idõm programozni.

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 08. - 20:00:01 )

Szóval, hogyha valaki tudna küldeni, vagy írni nekem hasonlót, amin nem kell sokat alakítgatni, azt nagyon megköszönném

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 09. - 17:54:59 )

Nos eljutottam már egy ideig, a probléma azzal van, hogy csak egy pillanatra lassít, aztán ha a vezetõ nyomja a gázt megy tovább. Olyat lehet, hogy amíg én nyomom, addig ne tudjon menni, csak miután elengedtem a gombot?
Cím: Utasként autó irányítás
Írta: TengeriMalac - 2012. november 10. - 06:21:24
Jól sejtem, hogy Jogsi scriptet akarsz írni?


Délután megírom. :D
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 14:12:05
Jól, mert a KRESZ-t már megírtam :D. Egy régi célom volt megírni, csak ennyire nem mélyedtem bele, viszont most kezdett újra érdekelni :). És köszönöm a segítséget
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 15:55:12
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
    if(isUtas(playerid))
    {
          if (newkeys & KEY_UP)
   {
              SetVehicleVelocity(GetPlayerVehicleID(playerid),1.0,0.0,0.0);
           }
             if (newkeys & KEY_DOWN)
           {
               SetVehicleVelocity(GetPlayerVehicleID(playerid),-1.0,0.0,0.0);
   }
   if (newkeys & KEY_LEFT)
   {
                SetVehicleVelocity(GetPlayerVehicleID(playerid),0.0,-1.0,0.0);
   }
   if (newkeys & KEY_RIGHT)
   {
                SetVehicleVelocity(GetPlayerVehicleID(playerid),0.0,1.0,0.0);
   }
}
}
return 1;
}
stock isUtas(playerid) {
    return (GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) ? true : false;
}
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 17:57:27
Ezt te próbáltad? :D
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 17:59:15
Tesztelni nem tudtam,de elméletileg mûködnie kéne.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 18:02:08
ennek elég vicces kimenetele lehet ránézésbõl :D én is azt hittem hogy ilyen egyszerûen mûködik ez a függvény amikor anno megláttam :D de sajnos nem :S
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 18:08:49
Talán még az autó rotációján is lehetne változtatni,valahogy így:
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
    if(isUtas(playerid))
    {
          if (newkeys & KEY_UP)
   {
              SetVehicleVelocity(GetPlayerVehicleID(playerid),1.0,0.0,0.0);
           }
             if (newkeys & KEY_DOWN)
           {
               SetVehicleVelocity(GetPlayerVehicleID(playerid),-1.0,0.0,0.0);
   }
   if (newkeys & KEY_LEFT)
   {
                SetVehicleZAngle(GetPlayerVehicleID(playerid), -1);
   }
   if (newkeys & KEY_RIGHT)
   {
                SetVehicleZAngle(GetPlayerVehicleID(playerid), 1);
   }
}
}
return 1;
}
stock isUtas(playerid) {
    return (GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) ? true : false;
}

 
Bár nemtudom,hogy így merre fog forogni :D
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 18:23:32
A probléma igazából úgy kezdõdik, hogy mikor a féket nyomtam, gyakorlatilag hátrarepült a kocsi, neki a falnak és felrobbant, mivel, ha azt akarom, hogy megáljak, akkor az x,y,z értékét 0-ra kell redukálni, a -1, az már valamilyen irányba elmozdulás. Nos semmi gond :D. Igazából így eddig én is eljutottam. A probléma az az, hogyha csak egy pillanatig állítja meg az autót. Azt kéne valahogy megoldani, hogy amíg nyomom a gombot, addig a velocity tartsa a stabil 0 értéket, akkor is, hogyha az emberke nyomja a gázt. Ezt hogyan lehetne megoldani?
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 18:26:49
ez minden gomb nyomásra fordít 1 fokot de szerintem a sebességet 0-zza...
a SetVehicleVelocity-nél meg inkább szorzást kéne alkalmazni :) és timerel csekkolni hogy nyomja e még a gombot...
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 18:35:23
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
            if(isUtas(playerid))
            {
      if(newkeys & KEY_DOWN)
      {
         SetVehicleVelocity(GetPlayerVehicleID(playerid),0.0,0.0,0.0);
      }
   }
}
return 1;
}

 
Esetleg így?
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 18:38:53
amúgy ha RP szeróra kell akkor a szorzás jobb lenne mert ez kb ATOM SATU FÉK :D
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 18:50:04
Mint a Knight Rider-be az a kinyitható cucc :D
 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
            if(isUtas(playerid))
            {
      if(newkeys & KEY_DOWN)
      {
                new Float:Velocity[3];
                 GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
         SetVehicleVelocity(GetPlayerVehicleID(playerid),Velocity[0] - Velocity[0] / 6,Velocity[1],Velocity[2]);
      }
   }
}
return 1;
}

 
És így?
Anyám szerint egy autó 50 km/h-ról 3 mp alatt megáll,tehát 100 km/h-n 6 másodperc,ergo ha a hatodrészét kivonjuk belõle reális csökkenést kaphatunk.


vagy nem  :D
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 18:58:28
X-X/6

 
helyett jobb lenne szerintem
 
X*0.834

 
4-el talán érthetõbben eltudom magyarázni...
 
1-1/4 = 0.75
1*0.75 = 0.75

 
2 mûvelet helyett csak 1 lenne :)
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 19:11:34
Igen,de ha az X nem 1 akkor amit kivonunk belõle sem lehet 0.75
példa: 100 - 100/6 -> 100 - 16.6666
50 - 50/6 -> 50 - 8.3333
20 - 20/6 -> 50 - 3.3333
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 19:18:14
én nem is kivonást mondtam hanem szorzást :)
ugyanaz amit te csinálsz kb :) te azt mondod maradjon az 5/6-oda
én is ugyanezt mondom csak én szorzással...
 
1*0.834 = 0.834
100*0.834 = 84.3

 
te az eredeti számból ki vonod a szám 1/6-odát és úgy kapod meg az 5/6-odát
én meg beszorzom 0.834-el és így kapom meg az 5/6-odát
érted már?
Cím: Utasként autó irányítás
Írta: bendor - 2012. november 10. - 19:30:06
Értem
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 20:30:33
Én egyébként arra gondoltam, hogy egy feltételes ciklussal osztogatnánk le a sebességet. Szóval mondjuk a negyed részére leosztjuk, ha az még mindig nem 0, akkor megint, és megint. Így egy egyenletes lassulást kaphatunk. A problémám az volt, hogy elméletben mindig szép és jó, csak ezt gyakorlatban még nem sikerüt megcsinálnom :D.

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 10. - 20:32:29 )

De ez mindd csak formalitás, alternatív megoldást erre tudnánk kreálni, a nagyobb gond, hogy az illetõ aki vezet, az addig ne tudjon elindulni amíg én el nem engedtem a féket.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 20:38:11
timer :)
ja és most látom...OnPlayerKeyStateChange-nél nem mûködik a JOBB-BAL FEL-LE gomb érzékelés...
http://wiki.sa-mp.com/wiki/GetPlayerKeys
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 20:42:35
Jajj várjatok :D. Az OnPlayerUpdate az nekem tökéletes lesz :D. Legalábbis remélem. Na próbálkozok egyet. Majd megírom a tapasztalatot
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 20:44:23
oda óvatosan pakold a kódokat :) 1-2 terhelõ kód és nagyon lassítja a szerót...
Cím: Utasként autó irányítás
Írta: .:Secur:. - 2012. november 10. - 21:51:27
xd van tesztalany? segítenék szívesen érdekel a téma.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 22:03:21
hát ha van szeród ahol tudunk tesztelni és feljövök a kis gépemen sofõrnek :D
írj PM-ben vagy Skypeon...


Skypeom: KovacsRicsi
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 10. - 22:31:37
Holnap tudunk alkotni valamit. :D. Ma már fáradt vagyok. Egész érdekes végeredményeket értem el :D. A fék majdnem tökéletes, noha a gázzal még van egy kis probléma, mert ha nekinyomom, akkor így hirtelen a szomszédos városban kötök ki xD. És hogyha zuhanok, elég egy kis féket nyomni, és máris könnyeden lebegek lefele, mint egy hulló falevél. Szóval van mit javítani, de már kezd alakulni :)
Cím: Utasként autó irányítás
Írta: .:Secur:. - 2012. november 10. - 22:34:20
xD bepöccintek egy tesztszervert de kellene a script xd
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 10. - 22:43:12
Idézetet írta: Dexter95 date=1352583097\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"29631\" data-ipsquote-contentclass=\"forums_Topic
Holnap tudunk alkotni valamit. :D. Ma már fáradt vagyok. Egész érdekes végeredményeket értem el :D. A fék majdnem tökéletes, noha a gázzal még van egy kis probléma, mert ha nekinyomom, akkor így hirtelen a szomszédos városban kötök ki xD. És hogyha zuhanok, elég egy kis féket nyomni, és máris könnyeden lebegek lefele, mint egy hulló falevél. Szóval van mit javítani, de már kezd alakulni :)
 
a gáznál kérdezd le és szorozd 1.X-el mondjuk a megkapott értéket :)
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 11. - 12:00:55
Igen ám, csak az a probléma, hogy az onplayerupdate-nél ugye addig folyamatosan újra és újra végrehajtja a mûveletet amíg nyomom a gombot. Most ha mondjuk van egy érték, azt beszorzom kettõvel, akkor utána a kapott értéket újra beszorozza, és újra, és újra. Ezért adnom kell neki egy végsõ értéket, aminél már nem csinálhatja tovább. Különben hajjaj. Nagyon csúnya dolgokat tesz :D
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 11. - 12:11:53
a sebességet ne az OnPlayerUpdate alatt állítsd...és igen kell végsõ érték mivel alapból megy a kocsi mondjuk 100-al és ha nem korlátozod le akkor 500-al is képes száguldozni :D
am Velocity értékeknél hydra max sebessége 1.5
ez a legnagyobb sebesség...
szóval ha precíz akarsz lenni összegyûjtöd a max sebességeket :) és model-enként változtatod...
nem sok idõ, amikor a HRP-sekkel csináltuk 2-3 nap volt...csak az a HRP tulajdona és nem publikálhatom...
de nem muszály minden model-hez megcsinálni...ha mondjuk csak sentinel-el akarod ezt a funkciót használni akkor elég csak annak lementeni...
Cím: Utasként autó irányítás
Írta: .:Secur:. - 2012. november 11. - 13:19:50
Látni akarom ^-^
Küldje el valaki  :)
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 11. - 13:20:35
Na, a fék az már tökéletes. Szinte ugyanakkora a fékút mint ha símán fékeznék. És meg sem csúszik az autó. Mintha ABS lenne :D.  Úgy csináltam, hogy az értékeket leosztottam 1.2-vel. Szerintem a gyorsítás is így fog zajlani. És megadok neki egy szélsõ értéket. nyilván az oktató nem fogja 180nál tovább nyomni a tanulónak az autót :D.

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 11. - 13:21:30 )

Secur, megcsinálom a gyorsítást, aztán pm-ben küldök egy szeró ip-t :).
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 11. - 13:24:37
szerintem õ a kódra kíváncsi :D
Cím: Utasként autó irányítás
Írta: .:Secur:. - 2012. november 11. - 13:31:15
is XD :D
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 11. - 13:50:47
Valahogy gondoltam :D. Ha kész a gáz és fék rendesen, akkor berakom ide.

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 11. - 13:56:44 )

public OnPlayerUpdate(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
new Float:Velocity[3];
if(IsPlayerInAnyVehicle(playerid))
    {
if(IsUtas(playerid))
{
    new Keys,ud,lr;
       GetPlayerKeys(playerid,Keys,ud,lr);
   if(ud > 0)
   {
    GetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);
   SetVehicleVelocity(vehicleid,Velocity[0]/1.2,Velocity[1]/1.2,Velocity[2]/1.2);
   }
    else if(ud < 0)
   {
       GetVehicleVelocity(vehicleid,Velocity[0],Velocity[1],Velocity[2]);
       if(Velocity[0] < 0.700234 || Velocity[1] < 0.850683 || Velocity[2] < 0.000071)
       {
      SetVehicleVelocity(vehicleid,Velocity[0]*1.01,Velocity[1]*1.01,Velocity[2]*1.01);
      }
   }
   /* if(lr > 0) SendClientMessage(playerid, 0xFFFFFFFF, \"RIGHT\");
    else if(lr < 0) SendClientMessage(playerid, 0xFFFFFFFF, \"LEFT\");*/
}
}
return 1;
}

 
Nos Ez lenne. Mostmár csak a kanyarodás van. Meg azt kéne még megcsinálni, hogy csak anyósülésrõl mûködjön. Azt hogy lehet?
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 11. - 16:00:13
1.
 
new vehicleid = GetPlayerVehicleID(playerid);
new Float:Velocity[3];
if(IsPlayerInAnyVehicle(playerid))
    {
if(IsUtas(playerid))
{
    new Keys,ud,lr;

 
ezt szerintem így kéne:
 
;
if(IsPlayerInAnyVehicle(playerid))
    {
if(IsUtas(playerid))
{
    new Keys,ud,lr,Float:Velocity[3],vehicleid = GetPlayerVehicleID(playerid);

 
2. http://wiki.sa-mp.com/wiki/GetPlayerVehicleSeat
3. letesztelted te ezt a kódot? :D
 
SetVehicleVelocity(vehicleid,Velocity[0]*1.01,Velocity[1]*1.01,Velocity[2]*1.01);

 
szerintem itt a Z szorzása miatt felrepül a kocsi :)
 
if(Velocity[0] < 0.700234 || Velocity[1] < 0.850683 || Velocity[2] < 0.000071)

 
nézd meg több irányba a kódot és nézd a max sebességet :)
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 11. - 16:32:01
Teszteltem persze. Nem repült fel az autó. Gyorsult, elég lassan. Jó, az tény, hogy mikor egy nagy bukkanó volt, akkor kicsit gáz volt, de akkor amúgy is az sajnos. ÉS hogyha zuhansz le valahonnan és benyomod a féket, akkor szépen lebegni fogsz.. Ezeket kellene kiküszöbölni

Dupla hozzászólás automatikusan összefûzve. ( 2012. november 11. - 16:36:19 )

Miért kéne egyátalán felrepülnie?. egy századszorosára növeltem mindhárom értéket. Ha mindhárom értéket arányosan növeljük, akkor gyorsul. Hogyha nem arányosan növeljük, akkor elmozdul valamilyen irányba az autó. Egyébként nem hiszem.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 11. - 16:36:42
if-ekkel megoldható a finomítás és az ilyen hibák javítása :)
Cím: Utasként autó irányítás
Írta: Dexter95 - 2012. november 11. - 16:38:05
Háát. Azért azt nem tudom, hogy hogyan kellene ki if-elni, hogyha levegõben vagyok és fékezek, akkor ne úgy essek le mint egy õszi falevél.
Cím: Utasként autó irányítás
Írta: Kovacs_Richard - 2012. november 11. - 16:46:05
ha a Z velocity kisebb mint minusz X akkor nagyobb szorzót neki :)