11.01.2016, 01:58
Hey guys ! I'm currently scripting a Command that create vehicle object and saves it in the player files. Problem is, Its the first time i'm doing a command that saves and i'd like a little help. ( I can pay if anyone want to help me in private )
Ok so here is how it goes :
-Player has to be a mechanic to use /cartoys
-When /cartoys is used, shows a dialog box that ask a choice between 3 car items
-When choosing car item number 1 ( because other arent scripted yet ) it checks if the player is in a car and as driver. Then if yes, a surf board is attached to the car.
The thing is, the surf respawns with the car but, doesnt save when server restarts
I tried to make it save, I'm stuck somewhere on my code and can't get what to write next.
Ok so here's the code
The save Ctoys
The load Ctoys
This is the case 0 ( case 1 and 2 arent scripted )
So i think everything is here and i think that my error is just above. Like i said i'll be more than grateful to anyone who helps of course i rep but I can also pay. Thanks
Ok so here is how it goes :
-Player has to be a mechanic to use /cartoys
-When /cartoys is used, shows a dialog box that ask a choice between 3 car items
-When choosing car item number 1 ( because other arent scripted yet ) it checks if the player is in a car and as driver. Then if yes, a surf board is attached to the car.
The thing is, the surf respawns with the car but, doesnt save when server restarts
I tried to make it save, I'm stuck somewhere on my code and can't get what to write next.
Ok so here's the code
Код:
new cartoys[MAX_PLAYERS];
Код:
pCToyModel[3], Float:pCToyX[3], Float:pCToyY[3], Float:pCToyZ[3], Float:pCToyRX[3], Float:pCToyRY[3], Float:pCToyRZ[3], Float:pCToySX[3], Float:pCToySY[3], Float:pCToySZ[3],
Код:
stock ClearChar(playerid) for(new i=0; i<3; i++) // Toys { PlayerInfo[playerid][pCToyModel][i] = 0; PlayerInfo[playerid][pCToyX][i] = 0; PlayerInfo[playerid][pCToyY][i] = 0; PlayerInfo[playerid][pCToyZ][i] = 0; PlayerInfo[playerid][pCToyRX][i] = 0; PlayerInfo[playerid][pCToyRY][i] = 0; PlayerInfo[playerid][pCToyRZ][i] = 0; PlayerInfo[playerid][pCToySX][i] = 0; PlayerInfo[playerid][pCToySY][i] = 0; PlayerInfo[playerid][pCToySZ][i] = 0; return 1; }
Код:
stock SaveChar(playerid) SaveCToys(playerid, file); //its not the actual code but its too long. ( I can give it on demand tho)
Код:
stock LoadChar(playerid) //same here its quite long LoadCToys(playerid, file);
Код:
stock SaveCToys(playerid, file[]) { // Toys Model dini_IntSet(file, "CtModel0", PlayerInfo[playerid][pCToyModel][0]); dini_IntSet(file, "CtModel1", PlayerInfo[playerid][pCToyModel][1]); dini_IntSet(file, "CtModel2", PlayerInfo[playerid][pCToyModel][2]); // Toys X dini_FloatSet(file, "CtX0", PlayerInfo[playerid][pCToyX][0]); dini_FloatSet(file, "CtX1", PlayerInfo[playerid][pCToyX][1]); dini_FloatSet(file, "CtX2", PlayerInfo[playerid][pCToyX][2]); // Toys Y dini_FloatSet(file, "CtY0", PlayerInfo[playerid][pCToyY][0]); dini_FloatSet(file, "CtY1", PlayerInfo[playerid][pCToyY][1]); dini_FloatSet(file, "CtY2", PlayerInfo[playerid][pCToyY][2]); // Toy Z dini_FloatSet(file, "CtZ0", PlayerInfo[playerid][pCToyZ][0]); dini_FloatSet(file, "CtZ1", PlayerInfo[playerid][pCToyZ][1]); dini_FloatSet(file, "CtZ2", PlayerInfo[playerid][pCToyZ][2]); // Toy RX dini_FloatSet(file, "CtRX0", PlayerInfo[playerid][pCToyRX][0]); dini_FloatSet(file, "CtRX1", PlayerInfo[playerid][pCToyRX][1]); dini_FloatSet(file, "CtRX2", PlayerInfo[playerid][pCToyRX][2]); // Toy RY dini_FloatSet(file, "CtRY0", PlayerInfo[playerid][pCToyRY][0]); dini_FloatSet(file, "CtRY1", PlayerInfo[playerid][pCToyRY][1]); dini_FloatSet(file, "CtRY2", PlayerInfo[playerid][pCToyRY][2]); // Toy RZ dini_FloatSet(file, "CtRZ0", PlayerInfo[playerid][pCToyRZ][0]); dini_FloatSet(file, "CtRZ1", PlayerInfo[playerid][pCToyRZ][1]); dini_FloatSet(file, "CtRZ2", PlayerInfo[playerid][pCToyRZ][2]); // Toy SX dini_FloatSet(file, "CtSX0", PlayerInfo[playerid][pCToySX][0]); dini_FloatSet(file, "CtSX1", PlayerInfo[playerid][pCToySX][1]); dini_FloatSet(file, "CtSX2", PlayerInfo[playerid][pCToySX][2]); // Toy SY dini_FloatSet(file, "CtSY0", PlayerInfo[playerid][pCToySY][0]); dini_FloatSet(file, "CtSY1", PlayerInfo[playerid][pCToySY][1]); dini_FloatSet(file, "CtSY2", PlayerInfo[playerid][pCToySY][2]); // Toy SZ dini_FloatSet(file, "CtSZ0", PlayerInfo[playerid][pCToySZ][0]); dini_FloatSet(file, "CtSZ1", PlayerInfo[playerid][pCToySZ][1]); dini_FloatSet(file, "CtSZ2", PlayerInfo[playerid][pCToySZ][2]); return 1; }
Код:
stock LoadCToys(playerid, file[]) { // Toys PlayerInfo[playerid][pCToyModel][0] = dini_Int(file, "CtModel0"); PlayerInfo[playerid][pCToyModel][1] = dini_Int(file, "CtModel1"); PlayerInfo[playerid][pCToyModel][2] = dini_Int(file, "CtModel2"); // Toys X PlayerInfo[playerid][pCToyX][0] = dini_Float(file, "CtX0"); PlayerInfo[playerid][pCToyX][1] = dini_Float(file, "CtX1"); PlayerInfo[playerid][pCToyX][2] = dini_Float(file, "CtX2"); // Toys Y PlayerInfo[playerid][pCToyY][0] = dini_Float(file, "CtY0"); PlayerInfo[playerid][pCToyY][1] = dini_Float(file, "CtY1"); PlayerInfo[playerid][pCToyY][2] = dini_Float(file, "CtY2"); // Toy Z PlayerInfo[playerid][pCToyZ][0] = dini_Float(file, "CtZ0"); PlayerInfo[playerid][pCToyZ][1] = dini_Float(file, "CtZ1"); PlayerInfo[playerid][pCToyZ][2] = dini_Float(file, "CtZ2"); // Toy RX PlayerInfo[playerid][pCToyRX][0] = dini_Float(file, "CtRX0"); PlayerInfo[playerid][pCToyRX][1] = dini_Float(file, "CtRX1"); PlayerInfo[playerid][pCToyRX][2] = dini_Float(file, "CtRX2"); // Toy RY PlayerInfo[playerid][pCToyRY][0] = dini_Float(file, "CtRY0"); PlayerInfo[playerid][pCToyRY][1] = dini_Float(file, "CtRY1"); PlayerInfo[playerid][pCToyRY][2] = dini_Float(file, "CtRY2"); // Toy RZ PlayerInfo[playerid][pCToyRZ][0] = dini_Float(file, "CtRZ0"); PlayerInfo[playerid][pCToyRZ][1] = dini_Float(file, "CtRZ1"); PlayerInfo[playerid][pCToyRZ][2] = dini_Float(file, "CtRZ2"); // Toy SX PlayerInfo[playerid][pCToySX][0] = dini_Float(file, "CtSX0"); PlayerInfo[playerid][pCToySX][1] = dini_Float(file, "CtSX1"); PlayerInfo[playerid][pCToySX][2] = dini_Float(file, "CtSX2"); // Toy SY PlayerInfo[playerid][pCToySY][0] = dini_Float(file, "CtSY0"); PlayerInfo[playerid][pCToySY][1] = dini_Float(file, "CtSY1"); PlayerInfo[playerid][pCToySY][2] = dini_Float(file, "CtSY2"); // Toy SZ PlayerInfo[playerid][pCToySZ][0] = dini_Float(file, "CtSZ0"); PlayerInfo[playerid][pCToySZ][1] = dini_Float(file, "CtSZ1"); PlayerInfo[playerid][pCToySZ][2] = dini_Float(file, "CtSZ2"); for(new i=0; i<10; i++) // Toys { if(PlayerInfo[playerid][pCToySX][i] == 0) PlayerInfo[playerid][pCToySX][i] = 1; if(PlayerInfo[playerid][pCToySY][i] == 0) PlayerInfo[playerid][pCToySY][i] = 1; if(PlayerInfo[playerid][pCToySZ][i] == 0) PlayerInfo[playerid][pCToySZ][i] = 1; } return 1; }
Код:
else if(dialogid == 111) // Car toys { if(response) { switch(listitem) { case 0: // Surf Board { new vehicleid = GetPlayerVehicleID(playerid); new string[128]; new Float:vH; GetVehicleHealth(GetPlayerVehicleID(playerid), vH); new Float:vel[3]; GetVehicleVelocity(GetPlayerVehicleID(playerid), vel[0], vel[1], vel[2]); if(vH < 250) return SendClientMessage(playerid, COLOR_GREY, "The vehicle's engine is too hot to be modified."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_GREY, "You must be in the driver seat to modify a vehicle."); if(vel[0] != 0 || vel[1] != 0 || vel[2] != 0) return SendClientMessage(playerid, COLOR_GREY, "You can't modify a vehicle while it's moving."); GivePlayerMoney(playerid, -200); PlayerInfo[playerid][pJobSkill][JOB_MECHANIC] ++; PlayerPlaySound(playerid,1133,0.0,0.0,0.0); format(string, sizeof(string), "* %s is modifying the vehicle he's inside.", RPN(playerid)); SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); new surfboard = CreateObject(2404,0,0,0,0,0,0,0); new playerveh = GetPlayerVehicleID(playerid); AttachObjectToVehicle(surfboard, playerveh, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); format(string, sizeof(string), "* %s has attached a surfboard on the car.", RPN(playerid)); PlayerInfo[playerid][pCToyModel][index] = model; //my error must be in this line but i don't know how to use these lines. }