Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- nearestPump(playerID) {
- for(new i = 0; i < MAX_GAS_PUMPS; i++) if(pumpData[i][pumpID] != INVALID_PUMP_ID && IsPlayerInRangeOfPoint(playerID, 4.0, pumpData[i][pumpPos][0], pumpData[i][pumpPos][1], pumpData[i][pumpPos][2])) {
- return i;
- }
- return INVALID_PUMP_ID;
- }
- forward onLoadPump(bizID); public onLoadPump(bizID) {
- static
- rows,
- fields,
- localPumpID = -1;
- cache_get_data(rows, fields, g_iConnectionHandle[0]);
- for(new i = 0; i < rows; i++) if((localPumpID = getPumpFreeID()) != -1) {
- pumpData[localPumpID][pumpBusinessID] = bizID;
- pumpData[localPumpID][pumpID] = cache_get_field_content_int(i, "pumpID");
- pumpData[localPumpID][pumpPos][0] = cache_get_field_content_float(i, "pumpPosX");
- pumpData[localPumpID][pumpPos][1] = cache_get_field_content_float(i, "pumpPosY");
- pumpData[localPumpID][pumpPos][2] = cache_get_field_content_float(i, "pumpPosZ");
- pumpData[localPumpID][pumpPos][3] = cache_get_field_content_float(i, "pumpPosA");
- pumpData[localPumpID][pumpFuel] = cache_get_field_content_int(i, "pumpFuel");
- pumpData[localPumpID][pumpObject] = CreateDynamicObject(1676, pumpData[localPumpID][pumpPos][0], pumpData[localPumpID][pumpPos][1], pumpData[localPumpID][pumpPos][2], 0.0, 0.0, pumpData[localPumpID][pumpPos][3]);
- updatePump(localPumpID);
- }
- return 1;
- }
- getPumpFreeID() {
- for(new i = 0; i < MAX_GAS_PUMPS; i++) if(pumpData[i][pumpID] != INVALID_PUMP_ID) {
- return i;
- }
- return -1;
- }
- stock isPumpOccupied(pumpid) {
- foreach (Player, i) if(playerData[i][pRefill] != INVALID_VEHICLE_ID) {
- if(playerData[i][pGasPump] == pumpid) return 1;
- }
- return 0;
- }
- deletePump(localPumpID) {
- if(localPumpID != -1 && pumpData[localPumpID][pumpID] != INVALID_PUMP_ID) {
- new
- szQuery[90];
- format(szQuery, sizeof szQuery, "DELETE FROM `pumps` WHERE `pumpBusinessID` = %i AND `pumpID` = %i", businessData[pumpData[localPumpID][pumpBusinessID]][businessID], pumpData[localPumpID][pumpID]);
- mysql_function_query(g_iConnectionHandle[0], szQuery, false, "", "");
- if(IsValidDynamic3DTextLabel(pumpData[localPumpID][pumpText3D]))
- DestroyDynamic3DTextLabel(pumpData[localPumpID][pumpText3D]);
- if(IsValidDynamicObject(pumpData[localPumpID][pumpObject]))
- DestroyDynamicObject(pumpData[localPumpID][pumpObject]);
- foreach (Player, i) if(playerData[i][pGasPump] == localPumpID) {
- stopRefilling(i);
- }
- pumpData[localPumpID][pumpFuel] = 0;
- pumpData[localPumpID][pumpID] = INVALID_PUMP_ID;
- }
- return 1;
- }
- createPump(playerID, bizID) {
- static
- Float: playerPos[4],
- szQuery[64],
- localPumpID = INVALID_PUMP_ID;
- if(GetPlayerPos(playerID, playerPos[0], playerPos[1], playerPos[2])) {
- if((localPumpID = getPumpFreeID()) != -1) {
- GetPlayerFacingAngle(playerID, playerPos[3]);
- playerPos[0] += 5.0 * floatsin(-playerPos[3], degrees);
- playerPos[1] += 5.0 * floatcos(-playerPos[3], degrees);
- pumpData[localPumpID][pumpBusinessID] = bizID;
- pumpData[localPumpID][pumpPos][0] = playerPos[0];
- pumpData[localPumpID][pumpPos][1] = playerPos[1];
- pumpData[localPumpID][pumpPos][2] = playerPos[2];
- pumpData[localPumpID][pumpPos][3] = playerPos[3];
- pumpData[localPumpID][pumpFuel] = 2000;
- pumpData[localPumpID][pumpObject] = CreateDynamicObject(1676, playerPos[0], playerPos[1], playerPos[2], 0.0, 0.0, playerPos[3]);
- format(szQuery, sizeof szQuery, "INSERT INTO `pumps` (`pumpBusinessID`) VALUES(%i)", businessData[bizID][businessID]);
- mysql_function_query(g_iConnectionHandle[0], szQuery, true, "onCreatePump", "i", localPumpID);
- return localPumpID;
- }
- }
- return INVALID_PUMP_ID;
- }
- forward onCreatePump(localPumpID);
- public onCreatePump(localPumpID)
- {
- pumpData[localPumpID][pumpID] = cache_insert_id();
- savePump(localPumpID);
- return 1;
- }
- updatePump(localPumpID) {
- if(localPumpID != -1 && pumpData[localPumpID][pumpID] != INVALID_PUMP_ID) {
- static
- string[128];
- format(string, sizeof(string), "[GAS PUMP: %i]\n{FFFFFF}Fuel Left: %i liters", localPumpID, pumpData[localPumpID][pumpFuel]);
- if(IsValidDynamic3DTextLabel(pumpData[localPumpID][pumpText3D]))
- DestroyDynamic3DTextLabel(pumpData[localPumpID][pumpText3D]);
- if(IsValidDynamicObject(pumpData[localPumpID][pumpObject]))
- DestroyDynamicObject(pumpData[localPumpID][pumpObject]);
- pumpData[localPumpID][pumpText3D] = CreateDynamic3DTextLabel(string, COLOR_YELLOW, pumpData[localPumpID][pumpPos][0], pumpData[localPumpID][pumpPos][1], pumpData[localPumpID][pumpPos][2], 15.0);
- pumpData[localPumpID][pumpObject] = CreateDynamicObject(1676, pumpData[localPumpID][pumpPos][0], pumpData[localPumpID][pumpPos][1], pumpData[localPumpID][pumpPos][2], 0.0, 0.0, pumpData[localPumpID][pumpPos][3]);
- }
- return 1;
- }
- savePump(localPumpID) {
- static
- szQuery[256];
- format(szQuery, sizeof szQuery, "UPDATE `pumps` SET `pumpPosX` = '%.4f', `pumpPosY` = '%.4f', `pumpPosZ` = '%.4f', `pumpPosA` = '%.4f', `pumpFuel` = %i WHERE `pumpBusinessID` = %i AND `pumpID` = %i",
- pumpData[localPumpID][pumpPos][0],
- pumpData[localPumpID][pumpPos][1],
- pumpData[localPumpID][pumpPos][2],
- pumpData[localPumpID][pumpPos][3],
- pumpData[localPumpID][pumpFuel],
- businessData[pumpData[localPumpID][pumpBusinessID]][businessID],
- pumpData[localPumpID][pumpID]
- );
- return mysql_function_query(g_iConnectionHandle[0], szQuery, false, "OnQueryFinish", "i", THREAD_NO_RESULT);
- }
- stock removeBusinessPumps(bizID) {
- if(businessData[bizID][businessID] != INVALID_BUSINESS_ID && businessData[bizID][businessType] == 7) {
- static
- szQuery[32];
- foreach (Player, i) if(playerData[i][pRefill] != INVALID_VEHICLE_ID && playerData[i][pGasStation] == bizID) stopRefilling(i);
- for(new i = 0; i < MAX_GAS_PUMPS; i++) if(pumpData[i][pumpID] != INVALID_PUMP_ID && pumpData[i][pumpBusinessID] == bizID) {
- DestroyDynamicObject(pumpData[i][pumpObject]);
- DestroyDynamic3DTextLabel(pumpData[i][pumpText3D]);
- pumpData[i][pumpID] = INVALID_PUMP_ID;
- pumpData[i][pumpFuel] = 0;
- }
- format(szQuery, sizeof szQuery, "DELETE FROM `pumps` WHERE `pumpBusinessID` = %i", businessData[bizID][businessID]);
- mysql_function_query(g_iConnectionHandle[0], szQuery, false, "", "");
- }
- return 1;
- }
- CMD:createpump(playerid, params[]) {
- new
- localPumpID,
- bizID = INVALID_BUSINESS_ID;
- if(playerData[playerid][pAdmin] < 5)
- return sendErrorMessage(playerid, "You are not authorised to use this command.");
- if(sscanf(params, "i", bizID))
- return sendSyntaxMessage(playerid, "/createpump [businessid]");
- if((bizID < 0 || bizID >= MAX_BUSINESSES) || businessData[bizID][businessID] == INVALID_BUSINESS_ID)
- return sendErrorMessage(playerid, "You specified an invalid business ID.");
- if(businessData[bizID][businessType] != 7)
- return sendErrorMessage(playerid, "You specified a business that is not a Gas Station.");
- if(GetPlayerInterior(playerid) > 0 || GetPlayerVirtualWorld(playerid) > 0)
- return sendErrorMessage(playerid, "You cannot place gas pumps inside interiors.");
- localPumpID = createPump(playerid, bizID);
- if(localPumpID == INVALID_PUMP_ID)
- return sendErrorMessage(playerid, "You cannot create any more gas pumps for the specified business, you have reached the limit.");
- sendServerMessage(playerid, "You have successfully created gas pump ID: %i, type '/editpump' to edit.", localPumpID);
- return 1;
- }
- CMD:editpump(playerid, params[]) {
- new
- localPumpID;
- if(playerData[playerid][pAdmin] < 5)
- return sendErrorMessage(playerid, "You are not authorised to use this command.");
- if(sscanf(params, "i", localPumpID))
- return sendSyntaxMessage(playerid, "/editpump [pumpid]");
- if((localPumpID < 0 || localPumpID >= MAX_GAS_PUMPS) || pumpData[localPumpID][pumpID] == INVALID_PUMP_ID)
- return sendErrorMessage(playerid, "You specified an invalid pump ID.");
- sendServerMessage(playerid, "You are editing pump ID %i.", localPumpID);
- playerData[playerid][pEditPump] = localPumpID;
- EditDynamicObject(playerid, pumpData[localPumpID][pumpObject]);
- return 1;
- }
- CMD:destroypump(playerid, params[]) {
- new
- localPumpID;
- if(playerData[playerid][pAdmin] < 5)
- return sendErrorMessage(playerid, "You are not authorised to use this command.");
- if(sscanf(params, "i", localPumpID))
- return sendSyntaxMessage(playerid, "/destroypump [pumpid]");
- if((localPumpID < 0 || localPumpID >= MAX_GAS_PUMPS) || pumpData[localPumpID][pumpID] == INVALID_PUMP_ID)
- return sendErrorMessage(playerid, "You specified an invalid pump ID.");
- deletePump(localPumpID);
- sendServerMessage(playerid, "You have destroyed pump ID %i.", localPumpID);
- return 1;
- }
- CMD:setpump(playerid, params[]) {
- new
- localPumpID,
- localpumpFuel;
- if(playerData[playerid][pAdmin] < 5)
- return sendErrorMessage(playerid, "You are not authorised to use this command.");
- if(sscanf(params, "ii", localPumpID, localpumpFuel))
- return sendSyntaxMessage(playerid, "/setpump [pumpid] [fuel amount]");
- if((localPumpID < 0 || localPumpID >= MAX_GAS_PUMPS) || pumpData[localPumpID][pumpID] == INVALID_PUMP_ID)
- return sendErrorMessage(playerid, "You specified an invalid pump ID.");
- pumpData[localPumpID][pumpFuel] = localpumpFuel;
- updatePump(localPumpID);
- savePump(localPumpID);
- sendServerMessage(playerid, "You have changed the fuel to %i in pump ID %i.", localpumpFuel, localPumpID);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment