Í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.
}
Í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.
}