[POMOC] Car Lock Bug [GF]

Započeo GloomY
pre 15 godina
1,615
pregleda
11
postova
haxby
Hustler
pre 15 godina
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.
John
Enforcer
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
Obrisan korisnik Obrisan korisnik
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.
haxby
Hustler
pre 15 godina
Evo, ovako mi izgleda sada
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;
Nez
Wheel Man
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;
}
haxby
Hustler
pre 15 godina
Probao sam, opet isto...
John
Enforcer
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
haxby
Hustler
pre 15 godina
Evo, ovdje mi počinje
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;
}//34


A 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;
}
Obrisan korisnik Obrisan korisnik
pre 15 godina
I ovo je meni isto problem, sry na refreshu ali pokusavao sam svasta i nejde  😐
haxby
Hustler
pre 15 godina
Također, isto nisam uspio.
Obrisan korisnik Obrisan korisnik
pre 15 godina
Jednostavno napravite novu lock komandu sa drugacijim varijablama i to je to

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava