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: Xavier Smith - 2014. április 20. - 10:15:38

Cím: Kamion utánfutó felkapcsolásakor
Írta: Xavier Smith - 2014. április 20. - 10:15:38
Ü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!
Cím: Kamion utánfutó felkapcsolásakor
Írta: halaloszto100 - 2014. április 20. - 12:36:54
http://wiki.sa-mp.com/wiki/IsTrailerAttachedToVehicle
Ezzel kell majd játszanod. :)
Cím: Kamion utánfutó felkapcsolásakor
Írta: KovaNovik - 2014. április 21. - 07:04:38
Í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.
}
Cím: Kamion utánfutó felkapcsolásakor
Írta: Xavier Smith - 2014. április 25. - 19:57:16
Köszönöm szépen, tökéletesen mûködik, zárom is a témát!
Cím: Kamion utánfutó felkapcsolásakor
Írta: Xavier Smith - 2014. április 20. - 10:15:38
Ü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!
Cím: Kamion utánfutó felkapcsolásakor
Írta: halaloszto100 - 2014. április 20. - 12:36:54
http://wiki.sa-mp.com/wiki/IsTrailerAttachedToVehicle
Ezzel kell majd játszanod. :)
Cím: Kamion utánfutó felkapcsolásakor
Írta: KovaNovik - 2014. április 21. - 07:04:38
Í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.
}
Cím: Kamion utánfutó felkapcsolásakor
Írta: Xavier Smith - 2014. április 25. - 19:57:16
Köszönöm szépen, tökéletesen mûködik, zárom is a témát!