Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #include <a_mysql>
- #include <sscanf2>
- #define SCRIPT_CARS 100
- #define DEFAULT_VEHICLE_OWNER "Dealership"
- #define DEFAULT_SELL_PRICE 50000
- #define DEFAULT_VEHICLE_PRICE 500000
- #define DIALOG_CS 7171
- #define DIALOG_CSL 7172
- new vehtimer;
- public OnFilterScriptInit()
- {
- vehtimer = SetTimer("vload",10000,0);
- print("\n------------------------------------------------");
- print("Cameltoe's car saving system Edited by Legena loaded!");
- print("-------------------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SendClientMessage(playerid,0x00FF00FF,"This Server Use Cameltoe's car saving system which is edited to Car Ownership!");
- return 1;
- }
- enum posInfo
- {
- Float: X,
- Float: Y,
- Float: Z,
- Float: R,
- }
- forward vload();
- public vload()
- {
- LoadVehicles();
- KillTimer(vehtimer);
- }
- enum vInfo // You could really name this anything.. Foo, pop, vehicle, vehicles whatever you like.
- {
- Id, // This is needed as SScanf loads the car variables through this Enum, i'll get back to that later.
- Owner[25],
- Model,
- Price,
- Float:Pos[posInfo],
- col1,
- col2, // Arrays ftw.
- }
- new VehicleInfo[SCRIPT_CARS][vInfo];
- new SaleCars[100];
- stock LoadVehicles() // You might want to make this an public so you could call it on an timer.
- {
- new Query[255];
- for(new i; i < SCRIPT_CARS; i++)
- {
- format(Query, sizeof(Query), "SELECT * FROM vehicles WHERE id = '%d'",i); // Formats the query for "mysql_query"
- mysql_query(Query); // Querys the "Query" Variable.
- mysql_store_result(); // Stores the result from Query
- while(mysql_fetch_row_format(Query,"|")) // Splits the row
- {
- sscanf(Query, "p<|>e<is[25]iiffff>", VehicleInfo[i]); // Pretty neat ehh? [ ID, OWNER, MODEL, PRICE, POS X, POS Y, POS Z, POS A ]
- SaleCars[i] = CreateVehicle(VehicleInfo[i][Model],VehicleInfo[i][Pos][X],VehicleInfo[i][Pos][Y],VehicleInfo[i][Pos][Z],VehicleInfo[i][Pos][R],VehicleInfo[i][col1],VehicleInfo[i][col2], 60*10000);
- }
- }
- }
- command(createveh, playerid, params[]) // Create vehicle command, not Tested.
- {
- new vID, Query[200];
- if(sscanf(params, "i", vID)) return SendClientMessage(playerid, -1, "Usage: /createveh [ ModelID ]");
- new Float:pPOS[4];
- GetPlayerPos(playerid, pPOS[0], pPOS[1], pPOS[2]);
- GetPlayerFacingAngle(playerid , pPOS[3]);
- new Color1 = random(126); new Color2 = random(126);
- format(Query, sizeof(Query), "INSERT INTO vehicles (id, owner, model, price, x, y, z, a,col1,col2) VALUES (NULL, '%s', %d, %d, %f, %f, %f, %f,%d,%d);",DEFAULT_VEHICLE_OWNER,vID, DEFAULT_VEHICLE_PRICE, pPOS[0], pPOS[1], pPOS[2], pPOS[3],Color1,Color2);
- mysql_query(Query);
- format(Query, sizeof(Query), "Created an %d at x: %f y: %f z: %f a: %f);",vID,pPOS[0], pPOS[1], pPOS[2], pPOS[3]);
- SendClientMessage(playerid, -1, Query);
- return 1;
- }
- command(reloadvehicles, playerid, params[]) // Reload's Vehicles
- {
- for(new i; i < SCRIPT_CARS; i++)
- {
- if(IsVehicleConnected(i)) DestroyVehicle(i);
- }
- LoadVehicles();
- SendClientMessage(playerid, -1, "Vehicle's reloaded");
- }
- command(vehctrl, playerid, params[]) // Reload's Vehicles
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- if(IsPlayerInVehicle(playerid,vehicleid))
- {
- ShowPlayerDialog(playerid, DIALOG_CS, DIALOG_STYLE_LIST, "Vehicle Control Panel", "Park Car\nLeave Car", "Select", "Close");
- }
- else
- {
- SendClientMessage(playerid,-1,"You can't use this command in car which is not yours!");
- }
- }
- new owncar[SCRIPT_CARS];
- public OnPlayerStateChange(playerid,newstate,oldstate)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- if(newstate == PLAYER_STATE_DRIVER)
- {
- for(new i; i < SCRIPT_CARS; i++)
- if(vehicleid == SaleCars[i])
- {
- new playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- if(VehicleInfo[vehicleid][Owner] == playername[playerid])
- {
- SendClientMessage(playerid, -1, "Welcome back to your car");
- }
- else
- {
- if(owncar[vehicleid] == 0)
- {
- ShowPlayerDialog(playerid, 5818, DIALOG_STYLE_MSGBOX, "DealerShip Services", "Welcome to dealership service!\nDo you want to buy this car? If you do than you need to have drive licence and 500,000$\nSo do you want to buy this car?", "Yes", "No");
- }
- else
- {
- SendClientMessage(playerid, -1, "Welcome back to your car");
- }
- }
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 5818)
- {
- if(response)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- new query[200];
- format(query, sizeof(query), "UPDATE vehicles SET owner='%s' WHERE id=%d",playername,VehicleInfo[vehicleid][Id]);
- mysql_query(query);
- SendClientMessage(playerid, -1, "Thank you for buying this car. Enjoy in driving!");
- GivePlayerMoney(playerid,-500000);
- owncar[vehicleid] = 1;
- }
- else
- {
- SendClientMessage(playerid, -1, "Thank you for visiting! See ya soon!");
- RemovePlayerFromVehicle(playerid);
- }
- return 1;
- }
- if(dialogid == DIALOG_CS)
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- new Float:pPOS[4], query[200], vehicleid = GetPlayerVehicleID(playerid);
- GetPlayerPos(playerid, pPOS[0], pPOS[1], pPOS[2]);
- GetPlayerFacingAngle(playerid , pPOS[3]);
- format(query, sizeof(query), "UPDATE vehicles SET x='%f', y='%f',z='%f',a='%f' WHERE id=%d",pPOS[0],pPOS[1],pPOS[2],pPOS[3],VehicleInfo[vehicleid][Id]);
- mysql_query(query);
- SendClientMessage(playerid, -1, "Your car is parked on new location!");
- }
- case 1:
- {
- SendClientMessage(playerid, -1, "You are removed from your car!");
- RemovePlayerFromVehicle(playerid);
- }
- }
- }
- return 1;
- }
- return 0;
- }
- stock IsVehicleConnected(vehicleid)
- {
- new Float:x1,Float:y1,Float:z1;
- GetVehiclePos(vehicleid,x1,y1,z1);
- if(x1==0.0 && y1==0.0 && z1==0.0)
- {
- return 0;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement