Jump to content

Question

Posted

Salut, am gasit o problema la gamemde-ul bhood de HPQ123. Cand cineva isi cumpara o masina din dealership, uneori aceasta primeste random sistemele vip sau rainbow, totodata cand masina nu primeste aceste sisteme, in /v o sa spuna ca e ocupata chiar daca ea nu e ocupata iar playerul nu o poate despawna pentru ca ii spune ca este ocupata. Voi da cateva functii la care cred ca ar putea sa fie problema, daca nu, pun si gamemodeul sa va uitati in el daca doriti.

YCMD:buycar(playerid, params[], help) {
    if(aspam[playerid] > 0) return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", aspam[playerid]);
    if(PlayerInfo[playerid][pLevel] < 3) return SCM(playerid, COLOR_GREY, "Nu ai nivel 3!");
    if(InDealer[playerid] != 0) return 1;
    if(!PlayerToPoint(3,playerid,1487.0498,-2287.2930,13.7529)) return SCM(playerid, COLOR_GREY, "Nu esti la dealership.");
    if(TestingModel[playerid] == 1) return true;
    LoadDsVehs(playerid);
    if(PlayerInfo[playerid][pWantedLevel] > 0) return SCM(playerid, -1, "Ai wanted, nu poti folosi aceasta comanda!");
    TestingModel[playerid] = 0;
    DealerCarType[playerid] = 1;
    InDealer[playerid] = 1;
    TogglePlayerControllable(playerid, 0);
    SetPlayerVirtualWorld(playerid, playerid+1);
    SetPlayerInterior(playerid, 0);
    DealerID[playerid] = 1;
    DealerCarColor1[playerid] = 1;
    DealerCarColor2[playerid] = 1;
    DealerCar[playerid] = CreateVehicleEx(DSModels[DealerID[playerid]][dModel],1463.3318,-2299.0806,13.6845,281.2260,DealerCarColor1[playerid],DealerCarColor2[playerid], -1, 0);
    SetVehicleVirtualWorld(DealerCar[playerid],playerid+1);
    LinkVehicleToInterior(DealerCar[playerid], 0);
    PlayerTextDrawSetPreviewModel(playerid, DSTds[4], DSModels[DealerID[playerid]][dModel]);
    PlayerTextDrawShow(playerid, DSTds[4]);
    ShowDealershipTextdraws(playerid);
    SelectTextDraw(playerid, 0x15B864FF);
    ShowCamera(playerid);    
    return true;
}

stock ShowPlayerVehicle(playerid, bool: type) {
    if(aspam[playerid] > 0) return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", aspam[playerid]);
    new szTitle[2000], szDialog[2000], x = 0;
    if(Iter_Count(MyVehicle[playerid]) == 0) 
        return SCM(playerid, COLOR_LGREEN, "Eroare: Nu ai un vehicul personal!");
    
    format(szTitle, sizeof(szTitle), "Your Vehicles {E3DE31}%d/%d", Iter_Count(MyVehicle[playerid]), GetSlots(playerid));
    strcat(szDialog, "Vehicul\tStatus\tDespawn Time\tOthers details\n");
    foreach(MyVehicle[playerid], car) {
        format(szDialog, sizeof(szDialog), "%s%s\t%s\t%s\t%s\n", szDialog, aVehicleNames[CarInfo[car][cModel]-400], CarInfo[car][Spawned] != 0 ? IsVehicleOccupied(CarInfo[car][Spawned]) ? ("{FFFF00}[occupied]") : ("{26B309}[spawned]") : ("{FF0000}[despawned]"), CheckDespawnCar(car), TotalUp(car)); 
        PlayerInfo[playerid][pCarKey][x] = car;
        x++;
    }
    ShowPlayerDialog(playerid, type ? DIALOG_STICKET : DIALOG_GARAGE, DIALOG_STYLE_TABLIST_HEADERS, szTitle, szDialog, "Ok", "Exit");
    return true;
}

B-HOOD.pwn

Recommended Posts

  • 0
Posted

Ti-am verificat acum gm-ul, am vazut un lucru, nu ai callback-ul OnVehicleSpawn, este posibil ca anumite lucruri sa ramana salvate cand cineva isi despawneaza vehiculul sau orice lucru de genul

Te duci la InsertDsCars si imediat inainte de saveCar(idd) adaugi:

CarInfo[idd][cVip] = 0; format(CarInfo[idd][cText], 64, "");

 

Undeva prin gm, adauga callback-ul:

public OnVehicleSpawn(vehicleid)
{
	if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
	if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);
	return 1;
}

La onvehicledeath:

if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);

Sistemul de vehicule personale este unul vechi, prost facut

  • 0
Posted
1 oră în urmă, iSkull a spus:

Ti-am verificat acum gm-ul, am vazut un lucru, nu ai callback-ul OnVehicleSpawn, este posibil ca anumite lucruri sa ramana salvate cand cineva isi despawneaza vehiculul sau orice lucru de genul

Te duci la InsertDsCars si imediat inainte de saveCar(idd) adaugi:

CarInfo[idd][cVip] = 0; format(CarInfo[idd][cText], 64, "");

 

Undeva prin gm, adauga callback-ul:


public OnVehicleSpawn(vehicleid)
{
	if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
	if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);
	return 1;
}

La onvehicledeath:

if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);

Sistemul de vehicule personale este unul vechi, prost facut

Ok, multumesc. Am pus pe server modificarile pe care le-ai mentionat. Daca mai apar probleme revin cu raspuns.

  • 0
Posted
On 6/6/2021 at 7:32 PM, iSkull said:

Ti-am verificat acum gm-ul, am vazut un lucru, nu ai callback-ul OnVehicleSpawn, este posibil ca anumite lucruri sa ramana salvate cand cineva isi despawneaza vehiculul sau orice lucru de genul

Te duci la InsertDsCars si imediat inainte de saveCar(idd) adaugi:

CarInfo[idd][cVip] = 0; format(CarInfo[idd][cText], 64, "");

 

Undeva prin gm, adauga callback-ul:

public OnVehicleSpawn(vehicleid)
{
	if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
	if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);
	return 1;
}

La onvehicledeath:

if(IsValidDynamicObject(NeonObj[0][vehicleid])) DestroyDynamicObject(NeonObj[0][vehicleid]);
if(IsValidDynamicObject(NeonObj[1][vehicleid])) DestroyDynamicObject(NeonObj[1][vehicleid]);

Sistemul de vehicule personale este unul vechi, prost facut

Inca apare sistemul VIP random pe vehiculele cumparate din dealership

  • 0
Posted

Salutare la functia CreateVehicleEx, ai //VehicleOccupied[vehid] = 0;  incarca sa stergi // cum e mai jos si vezi daca iti merge

 

stock CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay, clanson) {
    new vehid = CreateVehicle(modelid, x, y, z, angle, color1, color2, respawn_delay, clanson);
    VehicleOccupied[vehid] = 0;
    VehicleStats[vehid][vColorOne] = color1;
    VehicleStats[vehid][vColorTwo] = color2;
    SetVehicleHealth(vehid, 999);
    VehicleExist[vehid] = 1;
    return vehid;
}

 

1859311972_BANNER-GIREADAcopy-min.thumb.png.48e5e420ae2185dce5b244965a1d2601.png

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.