Szerző Téma: Kamion utánfutó felkapcsolásakor  (Megtekintve 1071 alkalommal)

Kamion utánfutó felkapcsolásakor
« Dátum: 2014. április 20. - 10:15:38 »
0 Show voters
Üdv mindenkinek!
Azt szeretném kérdezni, hogy lehet-e olyat csinálni, hogy történjen valami, hogyha felkapcsolja a trailert(utánfutót).
Tehát pl amikor felcsatolta, akkor készítsen egy checkpointot.
Válaszokat elõre is köszönöm!

Kamion utánfutó felkapcsolásakor
« Válasz #1 Dátum: 2014. április 20. - 12:36:54 »
0 Show voters

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Kamion utánfutó felkapcsolásakor
« Válasz #2 Dátum: 2014. április 21. - 07:04:38 »
+1 Show voters
Így telefonról bem igazán tudom tesztelni, de remélem nem annyira rossz. Hogy meg lehet-e oldani?
Igen, mondjuk egy felcsatolva változóval.
 

new bool:UtanFutoFelcs[MAX_VEHICLES];
public OnPlayerUpdate(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
new vsz = GetPlayerVehicleID(playerid), trl = GetVehicleTrailer(vsz);
if(IsTrailerAttachedToVehicle(vsz) && !UtanFutoFelcs[vsz])
{
   UtanFutoFelcs[vsz] = true;
   AmikJtkCsatUtanFuto(playerid, vsz, trl, true);
}
else if(!IsTrailerAttachedToVehicle(vsz) && UtanFutoFelcs[vsz])
{
   UtanFutoFelcs[vsz] = true;
   AmikJtkCsatUtanFuto(playerid, vsz, trl, false);
}
}
}
forward AmikJtkCsatUtanFuto(playerid, jid, ufid, bool:Fel);
public AmikJtkCsatUtanFuto(playerid, jid, ufid, bool:Fel)
{
printf(\"[HIBAKERESO] %d id-jû játékos felcsatolta a %d id-jû jármûvére a %d id-jû utánfutót.\", playerid, jid, ufid);
if(Fel)
{//Ha most csatolta fel.
}
if(!Fel)
{//Ha most csatolta le.
}
}

 
És innentõl a játékos, a jármû és az utánfutó idjével operálhatsz, pl. if(jid modelje == kamion && jatekos munkája kamionos, stb..)
Ahann, most hogy javítottam benne pár apró hibát, már megy is mint az atom  8)
Mindenesetre sok szerencsét, további jó scriptelést! :thumbsup:
Verzió 2:
Mivel külön változó kellene ahhoz, hogy megnézzük, melyik utánfutó volt rajta, mielõtt lecsatolódott, mert ugye alapból 0-val tér vissza, ezért megírtam egy jóval rövidebb verziót.
 
new UtanFutoFelcs[MAX_VEHICLES];
public OnPlayerUpdate(playerid)
{
new vsz = GetPlayerVehicleID(playerid), trl = GetVehicleTrailer(vsz);
if(vsz != INVALID_VEHICLE_ID)
{
if(trl != 0 && UtanFutoFelcs[vsz] == 0) UtanFutoFelcs[vsz] = 1, AmikJtkCsatUtanFuto(playerid, vsz, trl);
if(trl == 0 && UtanFutoFelcs[vsz] != 0) UtanFutoFelcs[vsz] = 0, AmikJtkCsatUtanFuto(playerid, vsz, trl);
}
}
forward AmikJtkCsatUtanFuto(playerid, jid, ufid);
public AmikJtkCsatUtanFuto(playerid, jid, ufid)
{
if(ufid != 0) printf(\"[HIBAKERESõ] %d id-jû játékos felcsatolta a(z) %d id-jû jármûvére a(z) %d id-jû utánfutót.\", playerid, jid, ufid); //Ha felcsatolta.
if(ufid == 0) printf(\"[HIBAKERESõ] %d id-jû játékos lecsatolta a(z) %d id-jû jármûvérõl az utánfutót.\", playerid, jid, ufid); //Ha lecsatolta.
}
« Utoljára szerkesztve: 2014. április 21. - 15:28:59 írta KovaNovik »

Kamion utánfutó felkapcsolásakor
« Válasz #3 Dátum: 2014. április 25. - 19:57:16 »
0 Show voters
Köszönöm szépen, tökéletesen mûködik, zárom is a témát!

Kamion utánfutó felkapcsolásakor
« Válasz #4 Dátum: 2014. április 20. - 10:15:38 »
0 Show voters
Üdv mindenkinek!
Azt szeretném kérdezni, hogy lehet-e olyat csinálni, hogy történjen valami, hogyha felkapcsolja a trailert(utánfutót).
Tehát pl amikor felcsatolta, akkor készítsen egy checkpointot.
Válaszokat elõre is köszönöm!

Kamion utánfutó felkapcsolásakor
« Válasz #5 Dátum: 2014. április 20. - 12:36:54 »
0 Show voters

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Kamion utánfutó felkapcsolásakor
« Válasz #6 Dátum: 2014. április 21. - 07:04:38 »
0 Show voters
Így telefonról bem igazán tudom tesztelni, de remélem nem annyira rossz. Hogy meg lehet-e oldani?
Igen, mondjuk egy felcsatolva változóval.
 

new bool:UtanFutoFelcs[MAX_VEHICLES];
public OnPlayerUpdate(playerid)
{
if(IsPlayerInAnyVehicle(playerid))
{
new vsz = GetPlayerVehicleID(playerid), trl = GetVehicleTrailer(vsz);
if(IsTrailerAttachedToVehicle(vsz) && !UtanFutoFelcs[vsz])
{
   UtanFutoFelcs[vsz] = true;
   AmikJtkCsatUtanFuto(playerid, vsz, trl, true);
}
else if(!IsTrailerAttachedToVehicle(vsz) && UtanFutoFelcs[vsz])
{
   UtanFutoFelcs[vsz] = true;
   AmikJtkCsatUtanFuto(playerid, vsz, trl, false);
}
}
}
forward AmikJtkCsatUtanFuto(playerid, jid, ufid, bool:Fel);
public AmikJtkCsatUtanFuto(playerid, jid, ufid, bool:Fel)
{
printf(\"[HIBAKERESO] %d id-jû játékos felcsatolta a %d id-jû jármûvére a %d id-jû utánfutót.\", playerid, jid, ufid);
if(Fel)
{//Ha most csatolta fel.
}
if(!Fel)
{//Ha most csatolta le.
}
}

 
És innentõl a játékos, a jármû és az utánfutó idjével operálhatsz, pl. if(jid modelje == kamion && jatekos munkája kamionos, stb..)
Ahann, most hogy javítottam benne pár apró hibát, már megy is mint az atom  8)
Mindenesetre sok szerencsét, további jó scriptelést! :thumbsup:
Verzió 2:
Mivel külön változó kellene ahhoz, hogy megnézzük, melyik utánfutó volt rajta, mielõtt lecsatolódott, mert ugye alapból 0-val tér vissza, ezért megírtam egy jóval rövidebb verziót.
 
new UtanFutoFelcs[MAX_VEHICLES];
public OnPlayerUpdate(playerid)
{
new vsz = GetPlayerVehicleID(playerid), trl = GetVehicleTrailer(vsz);
if(vsz != INVALID_VEHICLE_ID)
{
if(trl != 0 && UtanFutoFelcs[vsz] == 0) UtanFutoFelcs[vsz] = 1, AmikJtkCsatUtanFuto(playerid, vsz, trl);
if(trl == 0 && UtanFutoFelcs[vsz] != 0) UtanFutoFelcs[vsz] = 0, AmikJtkCsatUtanFuto(playerid, vsz, trl);
}
}
forward AmikJtkCsatUtanFuto(playerid, jid, ufid);
public AmikJtkCsatUtanFuto(playerid, jid, ufid)
{
if(ufid != 0) printf(\"[HIBAKERESõ] %d id-jû játékos felcsatolta a(z) %d id-jû jármûvére a(z) %d id-jû utánfutót.\", playerid, jid, ufid); //Ha felcsatolta.
if(ufid == 0) printf(\"[HIBAKERESõ] %d id-jû játékos lecsatolta a(z) %d id-jû jármûvérõl az utánfutót.\", playerid, jid, ufid); //Ha lecsatolta.
}
« Utoljára szerkesztve: 2014. április 21. - 15:28:59 írta KovaNovik »

Kamion utánfutó felkapcsolásakor
« Válasz #7 Dátum: 2014. április 25. - 19:57:16 »
0 Show voters
Köszönöm szépen, tökéletesen mûködik, zárom is a témát!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal