Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: GloomY poslato Jul 09, 2010, 20:09:36 POSLE PODNE

Naslov: [POMOC] Car Lock Bug [GF]
Poruka od: GloomY poslato Jul 09, 2010, 20:09:36 POSLE PODNE
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.
Naslov: Odg: Godfather Car Lock Bug
Poruka od: John poslato Jul 09, 2010, 23:01:34 POSLE PODNE
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
Naslov: Odg: Godfather Car Lock Bug
Poruka od: black_dota poslato Jul 09, 2010, 23:11:29 POSLE PODNE
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.
Naslov: Odg: Godfather Car Lock Bug
Poruka od: GloomY poslato Jul 09, 2010, 23:39:11 POSLE PODNE
Evo, ovako mi izgleda sada

public OnVehicleStreamIn(vehicleid, forplayerid)
{
if(gCarLock[vehicleid] == 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[playerid] == 2 || gTeam[playerid] == 1)
{
if(gLastCar[playerid] == 0 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
else if(gLastCar[playerid] != 0 && gLastCar[playerid] != PlayerInfo[playerid][pPhousekey]+1)
{
if (HireCar[playerid] != gLastCar[playerid] && HireCar[playerid] != 299)
{
gLastDriver[HireCar[playerid]] = 300;
gCarLock[HireCar[playerid]] = 0;
UnLockCar(HireCar[playerid]);
}
HireCar[playerid] = gLastCar[playerid];
}
}
if (PlayerInfo[playerid][pPhousekey] == 255)
{
if(HireCar[playerid] == 299)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
}
carid = PlayerInfo[playerid][pPhousekey]+1;
if(HireCar[playerid] != 299 && !SwitchKey[playerid])
{
carid = HireCar[playerid];
}
//new driver = gLastDriver[carid];
new lockstatus = gCarLock[carid];
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
switch (lockstatus)
{
case 0:
{
if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar[playerid] == carid && !SwitchKey[playerid])
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 1;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,1);
LockCar(carid);
}
else if (PlayerInfo[playerid][pPhousekey] == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 1;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,1);
LockCar(carid);
return 1;
}
}
case 1:
{
if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar[playerid] == carid && !SwitchKey[playerid])
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 0;
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),playerid,0,0);
UnLockCar(carid);
}
if (PlayerInfo[playerid][pPhousekey] == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 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[carid] = 1;
Naslov: Odg: Godfather Car Lock Bug
Poruka od: Nez poslato Jul 10, 2010, 00:39:58 PRE PODNE
Citat: black_dota poslato Jul 09, 2010, 23:11:29 POSLE PODNE
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[vehicleid] != -1 && gCarLock[vehicleid] != forplayerid)
        {
            SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 1);
        }
    }
    return 1;
}
Naslov: Odg: Godfather Car Lock Bug
Poruka od: GloomY poslato Jul 10, 2010, 08:41:38 PRE PODNE
Probao sam, opet isto...
Naslov: Odg: Godfather Car Lock Bug
Poruka od: John poslato Jul 10, 2010, 09:09:13 PRE PODNE
Citat: Nez poslato Jul 10, 2010, 00:39:58 PRE PODNE
Citat: black_dota poslato Jul 09, 2010, 23:11:29 POSLE PODNE
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[vehicleid] != -1 && gCarLock[vehicleid] != 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[vehicleid] == 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
Naslov: Odg: Godfather Car Lock Bug
Poruka od: GloomY poslato Jul 10, 2010, 12:18:12 POSLE PODNE
Evo, ovdje mi počinje
for(new i = 0; i < 35; i++)
{
if(gCarLock[i] == 0)
{
    gCarLock[i] = 1;
}
}
// Car Spawns
for(new h = 0; h < sizeof(HouseInfo); h++)
{
AddStaticVehicleEx(HouseInfo[h][hVec], HouseCarSpawns[h][0], HouseCarSpawns[h][1], HouseCarSpawns[h][2], HouseCarSpawns[h][3], HouseInfo[h][hVcol1], HouseInfo[h][hVcol2], 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[playerid] == 2 || gTeam[playerid] == 1)
{
if(gLastCar[playerid] == 0 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
else if(gLastCar[playerid] != 0 && gLastCar[playerid] != PlayerInfo[playerid][pPhousekey]+1)
{
if (HireCar[playerid] != gLastCar[playerid] && HireCar[playerid] != 299)
{
gLastDriver[HireCar[playerid]] = 300;
gCarLock[HireCar[playerid]] = 0;
UnLockCar(HireCar[playerid]);
}
HireCar[playerid] = gLastCar[playerid];
}
}
if (PlayerInfo[playerid][pPhousekey] == 255)
{
if(HireCar[playerid] == 299)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
}
carid = PlayerInfo[playerid][pPhousekey]+1;
if(HireCar[playerid] != 299 && !SwitchKey[playerid])
{
carid = HireCar[playerid];
}
//new driver = gLastDriver[carid];
new lockstatus = gCarLock[carid];
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
switch (lockstatus)
{
case 0:
{
if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar[playerid] == carid && !SwitchKey[playerid])
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 1;
SetVehicleParamsForPlayer(carid,playerid,0,1);
LockCar(carid);
}
else if (PlayerInfo[playerid][pPhousekey] == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~r~Zakljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 1;
SetVehicleParamsForPlayer(carid,playerid,0,1);
LockCar(carid);
return 1;
}
}
case 1:
{
if(HireCar[playerid] == 299 && PlayerInfo[playerid][pPhousekey] == 255)
{
SendClientMessage(playerid, COLOR_GRAD2, "Nemate automobil!");
return 1;
}
if(HireCar[playerid] == carid && !SwitchKey[playerid])
{
GameTextForPlayer(playerid, "~w~Iznajmljeno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 0;
SetVehicleParamsForPlayer(carid,playerid,0,0);
UnLockCar(carid);
}
if (PlayerInfo[playerid][pPhousekey] == carid-1)
{
GameTextForPlayer(playerid, "~w~Kucno vozilo ~g~Otkljucano", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
gCarLock[carid] = 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;
}

Naslov: Odg: Godfather Car Lock Bug
Poruka od: ZicMortal poslato Avgust 18, 2010, 14:13:14 POSLE PODNE
I ovo je meni isto problem, sry na refreshu ali pokusavao sam svasta i nejde  :-\
Naslov: Odg: Godfather Car Lock Bug
Poruka od: GloomY poslato Avgust 22, 2010, 02:22:21 PRE PODNE
TakoÄ'er, isto nisam uspio.
Naslov: Odg: Godfather Car Lock Bug
Poruka od: nastoe poslato Avgust 22, 2010, 02:30:46 PRE PODNE
Jednostavno napravite novu lock komandu sa drugacijim varijablama i to je to