enum carInfo{vID,vModel,Float:vPosX,Float:vPosY,Float:vPosZ,Float:vRot,vCol1,vCol2};new cInfo[MAX_VEHICLES][carInfo];
CMD:vehicles(playerid, params[]){VehicleSaveAll();printf(\"Jarmuvek elmentve!\");return 1;}
stock VehicleSaveAll(){ new index = 0; for(new i = 0; i < MAX_VEHICLES ; i++) {VehicleGet(index); VehicleSave(index);index++; } printf(\"Jarmuvek mentve: %d\", index); return 1;}
stock VehicleGet(jarmuID) { GetVehiclePos(cInfo[jarmuID][vID],cInfo[jarmuID][vPosX],cInfo[jarmuID][vPosY],cInfo[jarmuID][vPosZ]); GetVehicleZAngle(cInfo[jarmuID][vID], cInfo[jarmuID][vRot]); return 1;}stock VehicleSave(jarmuID){new query[1024];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;}
for(new i = 0; i < MAX_VEHICLES ; i++){ VehicleGet(i); VehicleSave(i);}
new i = 0;for(; i < MAX_VEHICLES ; i++)
printf(\"Jarmuvek elmentve!\");SendClientMessageToAll(COLOR_WHITE,\"(( Jármûvek elmentve! ))\");
cInfo[jarmuID][vID]
ide nem kell még egy változó az indexeléshez: for(new i = 0; i < MAX_VEHICLES ; i++){ VehicleGet(i); VehicleSave(i);} ja látom, miért volt külön index...de úgy is MAX_VEHICLES-1-ig fut a ciklus...az ciklus változót (i) is létrehozhatod kívül és akkor így néz ki: new i = 0;for(; i < MAX_VEHICLES ; i++) A VehicleSave alatt ez a 2 sor miatt 2000-szer (MAX_VEHICLE) fogja írni az üzeneteket: printf(\"Jarmuvek elmentve!\");SendClientMessageToAll(COLOR_WHITE,\"(( Jármûvek elmentve! ))\"); írasd ki ennek az értékét: cInfo[jarmuID][vID] és nézd meg, hogy nem e ugyanaz mindenhol...amúgy amikor lefuttatod ezt a parancsot milyen üzenetek jönnek a chatben?
new jarmuID;enum carInfo{vID,vModel,Float:vPosX,Float:vPosY,Float:vPosZ,Float:vRot,vCol1,vCol2};new cInfo[MAX_VEHICLES][carInfo];
CMD:vehicles(playerid, params[]){VehicleSaveAll();printf(\"Jarmuvek elmentve!\");return 1;} stock VehicleSaveAll(){ //for(new i = 0; i < MAX_VEHICLES ; i++) // Loop through the maximum amount of vehicles allowed by sa-mp. for(; cInfo[jarmuID][vID]< sizeof(cInfo);cInfo[jarmuID][vID]++){VehicleGet(); VehicleSave(); } printf(\"Jarmuvek mentve: %d\", cInfo[jarmuID][vID]); // Print out how many vehicles has been saved.return 1;} stock VehicleGet() { 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];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,\"\",\"\");return 1;}
jarmuID globális változó lett? sehol nem látom, hogy változtatnád az értékét...és nem értem miért globális változó
CMD:vehicles(playerid, params[]){VehicleSaveAll();return 1;}stock VehicleSaveAll(){new query[1024]; //for(new i = 0; i < MAX_VEHICLES ; i++) // Loop through the maximum amount of vehicles allowed by sa-mp.for(new i=0; i < jarmuID+1; i++){GetVehiclePos(jarmuID,cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ]);GetVehicleZAngle(jarmuID, cInfo[vRot]);format(query,sizeof(query),\"UPDATE sveh SET VehX=\'%f\',VehY=\'%f\',VehZ=\'%f\',VehRot=\'%f\' WHERE ID=\'%d\'\",cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ],cInfo[vRot],jarmuID);mysql_function_query(dbhandle,query,true,\"\",\"\");//VehicleGet(); //VehicleSave(jarmuID); } printf(\"Jarmuvek mentve: %d\", jarmuID); // Print out how many vehicles has been saved.return 1;}
CMD:vehicles(playerid, params[]){ new str[22]; format(str,sizeof(str),\"Jármûvek mentve: %d\",VehicleSaveAll()); return 1;}stock VehicleSaveAll(){ // Leghosszabb query: UPDATE sveh SET VehX=\'-1234.12\',VehY=\'-1234.12\',VehZ=\'-1234.12\',VehRot=\'-1234.12\' WHERE ID=\'1234\' new query[98],v; for(new i = 0; i < MAX_VEHICLES ; i++) { if(!GetVehicleModel(i)) { continue; } // ha nincs ilyen jármû akkor ugrik a következõre // adatok lekérése GetVehiclePos(i,cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ]); GetVehicleZAngle(i, cInfo[vRot]);// mentésformat(query,sizeof(query),\"UPDATE sveh SET VehX=\'%.2f\',VehY=\'%.2f\',VehZ=\'%.2f\',VehRot=\'%.2f\' WHERE ID=\'%d\'\",cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ],cInfo[vRot],i); mysql_function_query(dbhandle,query,true,\"\",\"\");//v++; } printf(\"Jarmuvek mentve: %d\", v); return v; // visszatérési érték a mentett jármûvek száma}
ez biztos nem lenne jó...1 jármû ID-ra frissíti az összeset...próbáld ki ezt: CMD:vehicles(playerid, params[]){ new str[22]; format(str,sizeof(str),\"Jármûvek mentve: %d\",VehicleSaveAll()); return 1;}stock VehicleSaveAll(){ // Leghosszabb query: UPDATE sveh SET VehX=\'-1234.12\',VehY=\'-1234.12\',VehZ=\'-1234.12\',VehRot=\'-1234.12\' WHERE ID=\'1234\' new query[98],v; for(new i = 0; i < MAX_VEHICLES ; i++) { if(!GetVehicleModel(i)) { continue; } // ha nincs ilyen jármû akkor ugrik a következõre // adatok lekérése GetVehiclePos(i,cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ]); GetVehicleZAngle(i, cInfo[vRot]);// mentésformat(query,sizeof(query),\"UPDATE sveh SET VehX=\'%.2f\',VehY=\'%.2f\',VehZ=\'%.2f\',VehRot=\'%.2f\' WHERE ID=\'%d\'\",cInfo[vPosX],cInfo[vPosY],cInfo[vPosZ],cInfo[vRot],i); mysql_function_query(dbhandle,query,true,\"\",\"\");//v++; } printf(\"Jarmuvek mentve: %d\", v); return v; // visszatérési érték a mentett jármûvek száma} ja és ha szeretnéd használni ezt a funkciót GM módosítás nélkül akkor ajánlom, hogy public-al hozd létre...így megtudod hívni scriptekbõl is...mentés funkciót azért jó ha letudod futtatni scriptbõl esetleges hiba esetén...de ezt te döntöd el