Znate li možda kako mogu riješiti onaj bug u Godfatheru sa /lock?
Kad se auto zakljuÄa, automatski se nakon nekog vremena otkljuÄa?
Ovaj bug je dosta poznat i nisam nigdje našao odgovor kako ga riješiti.
Ako možete pomoći, bit ću vam jako zahvalan.
[POMOC] Car Lock Bug [GF]
1,615
pregleda
11
postova
pre 15 godina
1. nije bug, vec je Godfather pravljen u vrijeme kada nisu vozila bila streamana od strane servera te se nije racunalo na OnVehicleStreamIn i Out
2. taj problem lagano mozes rijesiti tako da pod callbackom OnVehicleStreamIn provjeris varijablu za lock i ako je slucajno 1 zakljucas vozilo za igraca.
nemogu se tocno sjetiti kako se zove ta varijabla u GFu ali funkcija kojom kljucas je SetVehicleParamsForPlayer
2. taj problem lagano mozes rijesiti tako da pod callbackom OnVehicleStreamIn provjeris varijablu za lock i ako je slucajno 1 zakljucas vozilo za igraca.
nemogu se tocno sjetiti kako se zove ta varijabla u GFu ali funkcija kojom kljucas je SetVehicleParamsForPlayer
pre 15 godina
OMG 😕 😕 😕 😕 😕 😕 jes ti normalan to nije bug moras promeniti u tvog gm to da bude stalno zakljucan a ako imas auto u vechicle ownership onda je zauvek zakljucan.
pre 15 godina
Evo, ovako mi izgleda sada
Nisam te baš dobro razumio, što treba dodati pod komandu /lock.
Pokušavao sam dodavanjem ovoga
Ali opet isti problem...
Ovako mi izgleda cijela /lock komanda
I mislim da misliš na ovu varijablu
public OnVehicleStreamIn(vehicleid, forplayerid)
{
if(gCarLock == 1)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
return 1;
}Nisam te baš dobro razumio, što treba dodati pod komandu /lock.
Pokušavao sam dodavanjem ovoga
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,1);Ali opet isti problem...
Ovako mi izgleda cijela /lock komanda
if(strcmp(cmd, "/lock", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new carid;
if (gTeam == 2 || gTeam == 1)
{
if(gLastCar == 0 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
else if(gLastCar != 0 && gLastCar != PlayerInfo+1)
{
if (HireCar != gLastCar && HireCar != 299)
{
gLastDriver[HireCar] = 300;
gCarLock[HireCar] = 0;
UnLockCar(HireCar);
}
HireCar = gLastCar;
}
}
if (PlayerInfo == 255)
{
if(HireCar == 299)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
}
carid = PlayerInfo+1;
if(HireCar != 299 && !SwitchKey)
{
carid = HireCar;
}
//new driver = gLastDriver;
new lockstatus = gCarLock;
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
switch (lockstatus)
{
case 0:
{
if(HireCar == 299 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar == carid && !SwitchKey)
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 1;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,1);
LockCar(carid);
}
else if (PlayerInfo == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 1;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,1);
LockCar(carid);
return 1;
}
}
case 1:
{
if(HireCar == 299 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar == carid && !SwitchKey)
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 0;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,0);
UnLockCar(carid);
}
if (PlayerInfo == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 0;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,0);
UnLockCar(carid);
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
}
}
if(carid == 256)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
}
}
return 1;
}I mislim da misliš na ovu varijablu
gCarLock = 1;
pre 15 godina
black_dota wrote on July 9, 2010, 9:11 pm:
OMG 😕 😕 😕 😕 😕 😕 jes ti normalan to nije bug moras promeniti u tvog gm to da bude stalno zakljucan a ako imas auto u vechicle ownership onda je zauvek zakljucan.
jesi li ozbiljan ili zajebavas?
kao sto je john napisao
public OnVehicleStreamIn(vehicleid, forplayerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(gCarLock != -1 && gCarLock != forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
}
return 1;
}
pre 15 godina
Nez wrote on July 9, 2010, 9:11 pm:
OMG 😕 😕 😕 😕 😕 😕 jes ti normalan to nije bug moras promeniti u tvog gm to da bude stalno zakljucan a ako imas auto u vechicle ownership onda je zauvek zakljucan.
jesi li ozbiljan ili zajebavas?
kao sto je john napisao
public OnVehicleStreamIn(vehicleid, forplayerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(gCarLock != -1 && gCarLock != forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
}
return 1;
}Malo bolje baci pogled da ovo "i" iz loopa ne koristis nigdje 😉
A da se vratimo na problem, u principu ovo:
public OnVehicleStreamIn(vehicleid, forplayerid)
{
if(gCarLock == 1)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
}
return 1;
}
bi trebalo raditi, ALI baci pogled u mod otkud ti pocinje gcar lock, od prvog vozila ili od 28 (bezveze broj) jer onda bi trebao namjestiti offset znaci npr gCarLock[vehicleid - 28] == 1.
A druga caka je da OnVehicleStreamIn tek profunkcionira kada ti se vozilo unloada i opet loada znaci odmaknes se i priblizis opet.
Treca stvar svaki ovaj GetPlayerVehicleID(playerid) sto si dodao komonto zamjeni sa carid
pre 15 godina
Evo, ovdje mi poÄinje
A ovo dolje sam sada izmjenio ovako, pod /lock
Cijela /lock komanda mi sada izgleda ovako:
for(new i = 0; i < 35; i++)
{
if(gCarLock == 0)
{
gCarLock = 1;
}
}
// Car Spawns
for(new h = 0; h < sizeof(HouseInfo); h++)
{
AddStaticVehicleEx(HouseInfo, HouseCarSpawns, HouseCarSpawns, HouseCarSpawns, HouseCarSpawns, HouseInfo, HouseInfo, 60000);
gCarLock[h+1] = 1;
}//34A ovo dolje sam sada izmjenio ovako, pod /lock
SetVehicleParamsForPlayer(carid,playerid,0,1);Cijela /lock komanda mi sada izgleda ovako:
if(strcmp(cmd, "/lock", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new carid;
if (gTeam == 2 || gTeam == 1)
{
if(gLastCar == 0 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
else if(gLastCar != 0 && gLastCar != PlayerInfo+1)
{
if (HireCar != gLastCar && HireCar != 299)
{
gLastDriver[HireCar] = 300;
gCarLock[HireCar] = 0;
UnLockCar(HireCar);
}
HireCar = gLastCar;
}
}
if (PlayerInfo == 255)
{
if(HireCar == 299)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
}
carid = PlayerInfo+1;
if(HireCar != 299 && !SwitchKey)
{
carid = HireCar;
}
//new driver = gLastDriver;
new lockstatus = gCarLock;
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
switch (lockstatus)
{
case 0:
{
if(HireCar == 299 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar == carid && !SwitchKey)
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 1;
SetVehicleParamsForPlayer(carid,playerid,0,1);
LockCar(carid);
}
else if (PlayerInfo == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 1;
SetVehicleParamsForPlayer(carid,playerid,0,1);
LockCar(carid);
return 1;
}
}
case 1:
{
if(HireCar == 299 && PlayerInfo == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar == carid && !SwitchKey)
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 0;
SetVehicleParamsForPlayer(carid,playerid,0,0);
UnLockCar(carid);
}
if (PlayerInfo == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock = 0;
SetVehicleParamsForPlayer(carid,playerid,0,0);
UnLockCar(carid);
return 1;
}
}
default:
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
}
}
if(carid == 256)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
}
}
return 1;
}
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava