Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <dini>
- //EDIT BLOW
- new DefaultVehOwners[][] =
- {
- "Zezombia",
- "YoMomma",
- "Poopsicle"
- };
- new VehIDs[][] =
- {
- "411",
- "541",
- "415"
- };
- #define MAX_VEHS 3
- //END OF EDIT
- #define yellow 0xFFFF00AA
- #define red 0xFF0000AA
- #define green 0x33FF33AA
- forward AfterPlayerConnect(playerid);
- enum Variables
- {
- ID,
- Ammount
- }
- new Cars[MAX_VEHS];
- new BuySell[MAX_PLAYERS][Variables];
- public OnFilterScriptInit()
- {
- if(dini_Exists("vehs") == 0)
- {
- dini_Create("vehs");
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new veh[5], string[128];
- format(veh, sizeof(veh), "%d", i);
- format(string, sizeof(string), "%s 0.0000 0.0000 5.0000 0.0000", DefaultVehOwners[i]);
- dini_Set("vehs", veh, string);
- }
- }
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new veh[5], string[128];
- format(veh, sizeof(veh), "%d", i);
- if(dini_Isset("vehs", veh) == 0)
- {
- format(string, sizeof(string), "%s 0.0000 0.0000 5.0000 0.0000", DefaultVehOwners[i]);
- dini_Set("vehs", veh, string);
- }
- }
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new Float:X, Float:Y, Float:Z, Float:A;
- new veh[5], get_veh[128], pos;
- for(new v = 0; v < 4; v++)
- {
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- if(v == 0)
- {
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, strlen(get_veh));
- X = strval(get_veh);
- }
- if(v == 1)
- {
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, strlen(get_veh));
- Y = strval(get_veh);
- }
- if(v == 2)
- {
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, strlen(get_veh));
- Z = strval(get_veh);
- }
- if(v == 3)
- {
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- A = strval(get_veh);
- }
- }
- Cars[i] = CreateVehicle(strval(VehIDs[i]), X, Y, Z, A, -1, -1, 60);
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new i = 0; i < MAX_VEHS; i++)
- {
- DestroyVehicle(Cars[i]);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetTimerEx("AfterPlayerConnect", 1000, 0, "i", playerid);
- return 1;
- }
- public AfterPlayerConnect(playerid)
- {
- BuySell[playerid][ID] = -1;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128], idx;
- cmd = strtok(cmdtext, idx);
- if(strcmp("/vehhelp", cmdtext, true) == 0)
- {
- new pname[MAX_PLAYER_NAME], vehicle = -1;
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new veh[5], get_veh[128];
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- new pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(pname, get_veh, true) == 0)
- {
- vehicle = i;
- }
- }
- if(vehicle == -1)
- {
- SendClientMessage(playerid, red, "You do not own a vehicle");
- }
- else
- {
- SendClientMessage(playerid, green, "You own a vehicle!");
- SendClientMessage(playerid, green, "/gotoveh to go to it");
- SendClientMessage(playerid, green, "/park to save it's position");
- SendClientMessage(playerid, green, "/sellveh to sell it to someone");
- }
- return 1;
- }
- if(strcmp("/gotoveh", cmdtext, true) == 0)
- {
- new pname[MAX_PLAYER_NAME], vehicle = -1;
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new veh[5], get_veh[128];
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- new pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(pname, get_veh, true) == 0)
- {
- vehicle = i;
- }
- }
- if(vehicle == -1)
- {
- SendClientMessage(playerid, red, "You do not own a vehicle");
- }
- else
- {
- /*new Float:X, Float:Y, Float:Z;
- GetVehiclePos(Cars[vehicle], X, Y, Z);
- SetPlayerPos(playerid, X, Y, Z + 3);*/
- PutPlayerInVehicle(playerid, Cars[vehicle], 0);
- SendClientMessage(playerid, yellow, "You have been teleported to your vehicle");
- }
- return 1;
- }
- if(strcmp("/park", cmd, true) == 0)
- {
- new pname[MAX_PLAYER_NAME], vehicle = -1;
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new veh[5], get_veh[128];
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- new pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(pname, get_veh, true) == 0)
- {
- vehicle = i;
- }
- }
- if(vehicle == -1)
- {
- SendClientMessage(playerid, red, "You do not own a vehicle");
- }
- else
- {
- new Float:X, Float:Y, Float:Z, Float:A, string[128], get_veh[128], veh[5], pos;
- GetVehiclePos(Cars[vehicle], X, Y, Z);
- GetVehicleZAngle(Cars[vehicle], A);
- format(veh, sizeof(veh), "%d", vehicle);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- format(string, sizeof(string), "%s %0.4f %0.4f %0.4f %0.4f", pname, X, Y, Z, A);
- dini_Set("vehs", veh, string);
- SendClientMessage(playerid, yellow, "You have saved your cars position");
- DestroyVehicle(Cars[vehicle]);
- Cars[vehicle] = CreateVehicle(strval(VehIDs[vehicle]), X, Y, Z, A, -1, -1, 60);
- }
- return 1;
- }
- if(strcmp("/sellveh", cmd, true) == 0)
- {
- new tmp[128], tmp2[128], id;
- tmp = strtok(cmdtext, idx);
- tmp2 = strtok(cmdtext, idx);
- if(strlen(tmp) == 0) return SendClientMessage(playerid, red, "You did not enter an ID");
- if(strlen(tmp2) == 0) return SendClientMessage(playerid, red, "You did not enter a cash ammount");
- if(strval(tmp2) > 10000000 || strval(tmp2) < 0) return SendClientMessage(playerid, red, "Invalid cash ammount");
- if(IsPlayerConnected(strval(tmp)) == 0) return SendClientMessage(playerid, red, "That player is not connected");
- id = strval(tmp);
- new pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME], get_veh[128], veh[5], vehicle = -1, ovehicle = -1, pos;
- GetPlayerName(playerid, pname, sizeof(pname));
- GetPlayerName(strval(tmp), oname, sizeof(oname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(pname, get_veh, true) == 0)
- {
- vehicle = i;
- }
- }
- for(new i = 0; i < MAX_VEHS; i++)
- {
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(oname, get_veh, true) == 0)
- {
- ovehicle = i;
- printf("%d", i);
- }
- }
- if(vehicle == -1)
- {
- SendClientMessage(playerid, red, "You do not own a vehicle");
- }
- else
- {
- if(ovehicle == -1)
- {
- format(tmp, sizeof(tmp), "You have offered your vehicle to %s for $%d", oname, strval(tmp2));
- SendClientMessage(playerid, yellow, tmp);
- format(tmp, sizeof(tmp), "%s has offered to sell his vehicle to you for $%d", pname, strval(tmp2));
- SendClientMessage(id, yellow, tmp);
- SendClientMessage(id, yellow, "You can eather /accept it or /decline it");
- BuySell[id][ID] = playerid;
- BuySell[id][Ammount] = strval(tmp2);
- }
- else
- {
- SendClientMessage(playerid, red, "That player already owns a vehicle");
- }
- }
- return 1;
- }
- if(strcmp("/accept", cmdtext, true) == 0)
- {
- if(BuySell[playerid][ID] == -1)
- {
- SendClientMessage(playerid, red, "You don't have an offer");
- }
- else
- {
- if(GetPlayerMoney(playerid) < BuySell[playerid][Ammount])
- {
- new pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME], tmp[128];
- GetPlayerName(playerid, pname, sizeof(pname));
- GetPlayerName(BuySell[playerid][ID], oname, sizeof(oname));
- format(tmp, sizeof(tmp), "%s did not have enough money", pname);
- SendClientMessage(BuySell[playerid][ID], yellow, tmp);
- SendClientMessage(playerid, yellow, "You do not have enough money");
- }
- else
- {
- new pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME], tmp[128], veh[5], vehicle, pos;
- GetPlayerName(playerid, pname, sizeof(pname));
- GetPlayerName(BuySell[playerid][ID], oname, sizeof(oname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- new get_veh[128];
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(oname, get_veh, true) == 0)
- {
- vehicle = i;
- }
- }
- new Float:X, Float:Y, Float:Z, Float:A, string[128], get_veh[128];
- GetVehiclePos(Cars[vehicle], X, Y, Z);
- GetVehicleZAngle(Cars[vehicle], A);
- format(veh, sizeof(veh), "%d", vehicle);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- pos = strfind(get_veh, " ", true);
- strdel(get_veh, 0, pos + 1);
- format(string, sizeof(string), "%s %0.4f %0.4f %0.4f %0.4f", pname, X, Y, Z, A);
- dini_Set("vehs", veh, string);
- format(tmp, sizeof(tmp), "You have gave your vehicle to %s", pname);
- SendClientMessage(BuySell[playerid][ID], yellow, tmp);
- format(tmp, sizeof(tmp), "You have recived a vehicle from %s", oname);
- SendClientMessage(playerid, yellow, tmp);
- GivePlayerMoney(BuySell[playerid][ID], BuySell[playerid][Ammount]);
- GivePlayerMoney(playerid, -BuySell[playerid][Ammount]);
- BuySell[playerid][ID] = -1;
- DestroyVehicle(Cars[vehicle]);
- Cars[vehicle] = CreateVehicle(strval(VehIDs[vehicle]), X, Y, Z, A, -1, -1, 60);
- }
- }
- return 1;
- }
- if(strcmp("/decline", cmdtext, true) == 0)
- {
- if(BuySell[playerid][ID] == -1)
- {
- SendClientMessage(playerid, red, "You don't have an offer");
- }
- else
- {
- new pname[MAX_PLAYER_NAME], oname[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pname, sizeof(pname));
- GetPlayerName(BuySell[playerid][ID], oname, sizeof(oname));
- format(string, sizeof(string), "You have declined %ss offer", oname);
- SendClientMessage(playerid, yellow, string);
- format(string, sizeof(string), "%s has declined your offer", pname);
- SendClientMessage(BuySell[playerid][ID], yellow, string);
- BuySell[playerid][ID] = -1;
- }
- return 1;
- }
- return 0;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(newstate == PLAYER_STATE_DRIVER)
- {
- new pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- for(new i = 0; i < MAX_VEHS; i++)
- {
- if(GetPlayerVehicleID(playerid) == Cars[i])
- {
- new veh[5], get_veh[128];
- format(veh, sizeof(veh), "%d", i);
- format(get_veh, sizeof(get_veh), "%s", dini_Get("vehs", veh));
- new pos = strfind(get_veh, " ", true);
- strdel(get_veh, pos, pos + strlen(get_veh));
- if(strcmp(pname, get_veh, true) == 0)
- {
- SendClientMessage(playerid, yellow, "Welcome to your car");
- }
- else
- {
- SendClientMessage(playerid, red, "This is not your vehicle");
- RemovePlayerFromVehicle(playerid);
- }
- }
- }
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement