Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: 032.Marcus poslato Februar 28, 2014, 12:31:43 POSLE PODNE

Naslov: [POMOC] Mesanje IDa
Poruka od: 032.Marcus poslato Februar 28, 2014, 12:31:43 POSLE PODNE
Scripta: Moja od nule
Problem: Kada kupim vozilo, i posle zelim da ga prodam, pise da nije moje vezilo. Negde mi mesa ID vozila...
Deo scripte:
YCMD:kupivozilo(playerid, params[], help)
{
#pragma unused help
new vID = GetPlayerVehicleID(playerid);
new vMDL = GetVehicleModel(vID);
new vehicle = 1;
if(!IsASalesVehicle(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ovo vozilo nije na prodaju.");
if(PlayerInfo[playerid][pVehicle1] != 999 && PlayerInfo[playerid][pVehicle2] != 999 && PlayerInfo[playerid][pVehicle3] != 999) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Ne mozete kupiti vise vozila.");
if(GetPlayerMoney(playerid) < GetVehiclePrice(vID)) return SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Nemate dovoljno novca da bi kupili ovo vozilo.");

/*for(new i = 0 ; i < sizeof(VehicleInfo); i++)
{
    if(!fexist(CarPath(i)))
vehicle = i;
break;
}*/

for(new v = 1; v < sizeof(VehicleInfo); v++)
{
if(VehicleInfo[v][vOwned] == 0)
{
vehicle = v;
break;
}
}

if(PlayerInfo[playerid][pVehicle1] == 999) { PlayerInfo[playerid][pVehicle1] = vID; }
else if(PlayerInfo[playerid][pVehicle2] == 999) { PlayerInfo[playerid][pVehicle2] = vID; }
else if(PlayerInfo[playerid][pVehicle3] == 999) { PlayerInfo[playerid][pVehicle3] = vID; }
else { return 1;}

new model[64];
GetVehicleName(vMDL, model, sizeof(model));

VehicleInfo[vehicle][vOwned] = 1;
VehicleInfo[vehicle][vOwner] = RemoveUnderScore(playerid);
    VehicleInfo[vehicle][vModel] = vMDL;
    VehicleInfo[vehicle][vModelName] = model;
    VehicleInfo[vehicle][vParkX] = 1590.3740;
    VehicleInfo[vehicle][vParkY] = -1026.0565;
    VehicleInfo[vehicle][vParkZ] = 30.9063;
    VehicleInfo[vehicle][vParkA] = 317.1649;
    VehicleInfo[vehicle][vColor1] = 1;
    VehicleInfo[vehicle][vColor2] = 1;
    VehicleInfo[vehicle][vLocked] = 1;
   
    DestroyVehicle(vehicle);
    CreateVehicle(vMDL, VehicleInfo[vehicle][vParkX], VehicleInfo[vehicle][vParkY], VehicleInfo[vehicle][vParkZ], VehicleInfo[vehicle][vParkA], VehicleInfo[vehicle][vColor1], VehicleInfo[vehicle][vColor2], -1);
SCM(playerid, -1, ""CRVENA"GoMilano"BELA": Kupili ste vozilo. Idite na parking kod banke i preuzmite ga.");
GivePlayerMoney(playerid, -GetVehiclePrice(vID));
    SaveVehicle(vehicle);
return 1;
}

YCMD:prodajvozilo(playerid, params[], help)
{
#pragma unused help
new slot, vID;
vID = GetPlayerVehicleID(playerid);
if(sscanf(params, "i", slot)) return SCM(playerid, -1, ""CRVENA"KORISCENJE"BELA": /prodajvozilo [slot]");
switch(slot)
{
    case 1:
    {
    if(PlayerInfo[playerid][pVehicle1] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
    if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle1]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle1] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
    }
        case 2:
    {
    if(PlayerInfo[playerid][pVehicle2] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
    if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle2]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle2] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
    }
    case 3:
    {
    if(PlayerInfo[playerid][pVehicle3] == 999) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Nemate vozilo na prvom slotu.");
    if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vozilu.");
if(vID != PlayerInfo[playerid][pVehicle3]) return SCM(playerid, -1, ""CRVENA"GRESKA"BELA": Niste u vasem vozilu.");
PlayerInfo[playerid][pVehicle3] = 999;
VehicleInfo[vID][vOwned] = 0;
VehicleInfo[vID][vOwner] = 0;
VehicleInfo[vID][vParkX] = 1590.3740;
VehicleInfo[vID][vParkY] = -1026.0565;
VehicleInfo[vID][vParkZ] = 23.9063;
VehicleInfo[vID][vParkA] = 317.1649;
VehicleInfo[vID][vLocked] = 0;
RemovePlayerFromVehicle(playerid);
DestroyVehicle(vID);
TogglePlayerControllable(playerid, 1);
    }
}
return 1;
}
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: Blaeks poslato Februar 28, 2014, 15:07:20 POSLE PODNE
komande tu ne predstavljaju nista, bolje preispitaj sistem od pocetka do kraja pa probaj naci problem, ako ne nadjes, onda posalji delove na koje sumnjas ovde
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: [BS]Paolo poslato Februar 28, 2014, 15:28:14 POSLE PODNE
Pogledaj ucitavanje i iscitavanje mora da ti bude po istom redu
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: DevoXx poslato Februar 28, 2014, 16:00:55 POSLE PODNE
Možda neku drugu komandu koristiš i mješa ID. Jednom sam imao slučaj kreiranje vozila IG, kako ih kreiram poomješaju mi se IDEVI.

Pogledaj malo sve komande koje vrše zadatak oko vozila.
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: 032.Marcus poslato Februar 28, 2014, 17:31:10 POSLE PODNE
Samo dve komande imam za vozila, kupi i prodaj, jer vec 7 dana nmg da resim problem...

Evo sta imam za vozila sve

//----------Vehicle----------
enum vInfo
{
vOwned,
    vOwner[24],
    vModel,
    vModelName[64],
    Float:vParkX,
Float:vParkY,
    Float:vParkZ,
    Float:vParkA,
    vColor1,
    vColor2,
    vLocked
}
new VehicleInfo[200][vInfo];

forward LoadVehicle_data(vehicleid, name[], value[]);
public LoadVehicle_data(vehicleid, name[], value[])
{
INI_Int("Owned", VehicleInfo[vehicleid][vOwned]);
INI_String("Owner", VehicleInfo[vehicleid][vOwner], MAX_PLAYER_NAME);
  INI_Int("Model", VehicleInfo[vehicleid][vModel]);
  INI_String("Name", VehicleInfo[vehicleid][vModelName], 64);
    INI_Float("ParkX", VehicleInfo[vehicleid][vParkX]);
INI_Float("ParkY", VehicleInfo[vehicleid][vParkY]);
  INI_Float("ParkZ", VehicleInfo[vehicleid][vParkZ]);
    INI_Float("ParkA", VehicleInfo[vehicleid][vParkA]);
    INI_Int("Color1", VehicleInfo[vehicleid][vColor1]);
    INI_Int("Color2", VehicleInfo[vehicleid][vColor2]);
    INI_Int("Locked", VehicleInfo[vehicleid][vLocked]);
    return 1;
}

forward SaveVehicle(vehicleid);
public SaveVehicle(vehicleid)
{
    new str[16];
    format(str, sizeof(str), VPATH, vehicleid);
    new INI:File = INI_Open(str);
    INI_WriteInt(File, "Owned", VehicleInfo[vehicleid][vOwned]);
    INI_WriteString(File, "Owner", VehicleInfo[vehicleid][vOwner]);
    INI_WriteInt(File, "Model", VehicleInfo[vehicleid][vModel]);
    INI_WriteString(File, "Name", VehicleInfo[vehicleid][vModelName]);
    INI_WriteFloat(File, "ParkX", VehicleInfo[vehicleid][vParkX]);
    INI_WriteFloat(File, "ParkY", VehicleInfo[vehicleid][vParkY]);
    INI_WriteFloat(File, "ParkZ", VehicleInfo[vehicleid][vParkZ]);
    INI_WriteFloat(File, "ParkA", VehicleInfo[vehicleid][vParkA]);
    INI_WriteInt(File, "Color1", VehicleInfo[vehicleid][vColor1]);
    INI_WriteInt(File, "Color2", VehicleInfo[vehicleid][vColor2]);
    INI_WriteInt(File, "Locked", VehicleInfo[vehicleid][vLocked]);
    INI_Close(File);
    return 1;
}


OnGameModeInit
for(new idx = 0; idx<sizeof(VehicleInfo); idx++)
{
    format(str, sizeof(str), VPATH, idx);
    INI_ParseFile(str, "LoadVehicle_%s", .bExtra = true, .extra = idx);
    //OwnedVehicle[idx] =
CreateVehicle(VehicleInfo[idx][vModel], VehicleInfo[idx][vParkX], VehicleInfo[idx][vParkY], VehicleInfo[idx][vParkZ], VehicleInfo[idx][vParkA], VehicleInfo[idx][vColor1], VehicleInfo[idx][vColor2], -1);
}


I ove dve komande sto su vec postavljene. Nemam blage gde bi mogao da bude problem
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: Blaeks poslato Februar 28, 2014, 18:36:13 POSLE PODNE
hm, je l ti je sistem vozila dinamican ?
Naslov: Odg: [POMOC] Mesanje IDa
Poruka od: 032.Marcus poslato Februar 28, 2014, 19:45:44 POSLE PODNE
Nije.
Ali evo uspeo sam na ovaj nacin:
dodao sam u pInfo i vInfo i SellID , i onda kad kupi igrac vozilo, igracu i vozilu taj SellID bude isti, i tako radi... Moze lock