Hali!
Már tegnap óta ezt próbálom megcsinálni,de sehogy se bírok rájönni,ezért inkább azt kérném hogy valaki lenne oly szíves,hogy megírja helyettem.
Szóval jármûveket akarok lementeni MySQL -be de valahogy nem ment el semmit.
Szóval egy parancs meg hívja a \'VehicleSaveAll\' -t:
CMD:vehicles(playerid, params[])
{
VehicleSaveAll();
printf(\"Jarmuvek elmentve!\");
return 1;
}
itt a \'VehicleSaveAll\' stock rész:
stock VehicleSaveAll()
{
new vehicles = 0;
//for(new i = 0; i < MAX_VEHICLES ; i++) // Loop through the maximum amount of vehicles allowed by sa-mp.
for(new jarmuID = 1;jarmuID<500;jarmuID++)
{
VehicleGet(jarmuID);
VehicleSave();
vehicles++;
}
printf(\"Jarmuvek mentve: %d\", vehicles); // Print out how many vehicles has been saved.
return 1;
}
Ez meghívja ugye a VehicleGet és VehicleSave -t
stock VehicleGet(jarmuID)
{
GetVehiclePos(jarmuID,cInfo[jarmuID][vPosX],cInfo[jarmuID][vPosY],cInfo[jarmuID][vPosZ]);
// Get the current position of that vehicle and assign it to our system\'s vehicle information.
GetVehicleZAngle(jarmuID, cInfo[jarmuID][vRot]);
// Get the current rotation of that vehicle and assign it to our system\'s vehicle information.
return 1;
}
stock VehicleSave()
{
new query[1024];
for(new jarmuID = 1;jarmuID<500;jarmuID++)
{
format(query,sizeof(query),\"UPDATE sveh SET VehX=\'%f\',VehY=\'%f\',VehZ=\'%f\',VehRot=\'%f\' WHERE ID=\'%d\'\",cInfo[jarmuID][vPosX],cInfo[jarmuID][vPosY],cInfo[jarmuID][vPosZ],cInfo[jarmuID][vRot],cInfo[jarmuID][vID]);
mysql_function_query(dbhandle,query,true,\"\",\"\");
printf(\"Jarmuvek elmentve!\");
SendClientMessageToAll(COLOR_WHITE,\"(( Jármûvek elmentve! ))\");
}
return 1;
}
Majd ezzel töltöm be az autókat a mysqlbõl,ez meghívódik mikor elindul a játékmód:
public OnQueryFinish(resultid, extraid, ConnectionHandle)
{
new num_rows, num_fields;
if(resultid != THREAD_NO_RESULT)
{
cache_get_data(num_rows, num_fields);
}
switch(resultid)
{
case THREAD_LOAD_VEHICLES:
{
new vehicles = 0;
if(num_rows)
{
for(new i = 0; i < num_rows; i++)
{
new jarmuID;
cInfo[jarmuID][vID] = cache_get_field_content_int(i,\"ID\",dbhandle);
cInfo[jarmuID][vModel] = cache_get_field_content_int(i,\"VehModel\",dbhandle);
cInfo[jarmuID][vPosX] = cache_get_field_content_float(i,\"VehX\",dbhandle);
cInfo[jarmuID][vPosY] = cache_get_field_content_float(i,\"VehY\",dbhandle);
cInfo[jarmuID][vPosZ] = cache_get_field_content_float(i,\"VehZ\",dbhandle);
cInfo[jarmuID][vRot] = cache_get_field_content_float(i,\"VehRot\",dbhandle);
cInfo[jarmuID][vCol1] = cache_get_field_content_int(i,\"VehCol1\",dbhandle);
cInfo[jarmuID][vCol2] = cache_get_field_content_int(i,\"VehCol2\",dbhandle);
CreateVehicle(cInfo[jarmuID][vModel],cInfo[jarmuID][vPosX],cInfo[jarmuID][vPosY],cInfo[jarmuID][vPosZ],cInfo[jarmuID][vRot],cInfo[jarmuID][vCol1],cInfo[jarmuID][vCol2],-1);
vehicles++;
}
}
printf(\"Jarmuvek betoltve: %d\", vehicles);
}
}
return 1;
}
Ez pedig az a parancs amivel tudok lerakni autót (teszt végett a parancsot majd kiszedem):
CMD:jarmu(playerid, params[])
{
new Float:pPosX;
new Float:pPosY;
new Float:pPosZ;
new query[512];
new jarmuID;
GetPlayerPos(playerid, pPosX,pPosY,pPosZ);
format(query,sizeof(query),\"INSERT INTO sveh (VehModel,Tulaj,Rendszam,VehX,VehY,VehZ,VehRot,VehCol1,VehCol2,KmSzamlalo,VehHP) VALUES (\'420\',\'Állam\',\'SA-789AO\',\'%f\',\'%f\',\'%f\',\'0\',\'6\',\'6\',\'0\',\'1000\')\",pPosX,pPosY,pPosZ);
mysql_function_query(dbhandle,query,false,\"\",\"\");
CreateVehicle(420,pPosX,pPosY,pPosZ,0,6,6,-1);
cInfo[jarmuID][vID]++;
return 1;
}
Aki segít annak megy a plusz,mert nagyon fontos lenne nekem,elõre is köszönöm szépen.