[POMOC] Mesanje IDa


Započeo 032.Marcus, Februar 28, 2014, 12:31:43 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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;
}

Blaeks

*

Madmen

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

Pogledaj ucitavanje i iscitavanje mora da ti bude po istom redu


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.

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

Blaeks

*

Madmen

hm, je l ti je sistem vozila dinamican ?

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