PHP Code:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <foreach>
#include <YSI\y_ini>
#include <mSelection>
#include <TdMenu2>
new Text:Textdraw0[MAX_PLAYERS];
new Text:Textdraw1[MAX_PLAYERS];
new Text:Textdraw2[MAX_PLAYERS];
new Text:Textdraw3[MAX_PLAYERS];
new Text:Textdraw4[MAX_PLAYERS];
new Text:Textdraw5[MAX_PLAYERS];
new Text:Textdraw6[MAX_PLAYERS];
new Text:Textdraw7[MAX_PLAYERS];
new Text:Textdraw8[MAX_PLAYERS];
new Text:Textdraw9[MAX_PLAYERS];
new Text:Textdraw10[MAX_PLAYERS];
new Text:Textdraw11[MAX_PLAYERS];
new Text:Textdraw12[MAX_PLAYERS];
new Menu:Car;
new OpenedCarMenu[MAX_PLAYERS];
#define CarPath "Cars/%s.ini"
native WP_Hash(buffer[],len,const str[]);
enum PlayercInfo
{
PlayerName[20],
Car1Model,
Float:CarX1,
Float:CarY1,
Float:CarZ1,
Float:CarA1,
Car2Model,
Float:CarX2,
Float:CarY2,
Float:CarZ2,
Float:CarA2,
Car3Model,
Float:CarX3,
Float:CarY3,
Float:CarZ3,
Float:CarA3,
}
new cInfo[MAX_PLAYERS][PlayercInfo];
public OnPlayerConnect(playerid)
{
Textdraw0[playerid] = TextDrawCreate(257.000000, 114.000000, "_");
TextDrawBackgroundColor(Textdraw0[playerid], 255);
TextDrawFont(Textdraw0[playerid], 1);
TextDrawLetterSize(Textdraw0[playerid], 0.460000, 17.900032);
TextDrawColor(Textdraw0[playerid], -1);
TextDrawSetOutline(Textdraw0[playerid], 0);
TextDrawSetProportional(Textdraw0[playerid], 1);
TextDrawSetShadow(Textdraw0[playerid], 1);
TextDrawUseBox(Textdraw0[playerid], 1);
TextDrawBoxColor(Textdraw0[playerid], 170);
TextDrawTextSize(Textdraw0[playerid], 0.000000, 4.000000);
Textdraw1[playerid] = TextDrawCreate(257.000000, 114.000000, "_");
TextDrawBackgroundColor(Textdraw1[playerid], 255);
TextDrawFont(Textdraw1[playerid], 1);
TextDrawLetterSize(Textdraw1[playerid], 1000.000000, 2.999999);
TextDrawColor(Textdraw1[playerid], 65535);
TextDrawSetOutline(Textdraw1[playerid], 0);
TextDrawSetProportional(Textdraw1[playerid], 1);
TextDrawSetShadow(Textdraw1[playerid], 1);
TextDrawUseBox(Textdraw1[playerid], 1);
TextDrawBoxColor(Textdraw1[playerid], 176895);
TextDrawTextSize(Textdraw1[playerid], 0.000000, 4.000000);
Textdraw2[playerid] = TextDrawCreate(15.000000, 115.000000, "The Auto Bahn");
TextDrawBackgroundColor(Textdraw2[playerid], 255);
TextDrawFont(Textdraw2[playerid], 1);
TextDrawLetterSize(Textdraw2[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw2[playerid], -1);
TextDrawSetOutline(Textdraw2[playerid], 0);
TextDrawSetProportional(Textdraw2[playerid], 1);
TextDrawSetShadow(Textdraw2[playerid], 1);
Textdraw3[playerid] = TextDrawCreate(49.000000, 126.000000, "- Sport Vehicles 2");
TextDrawBackgroundColor(Textdraw3[playerid], 255);
TextDrawFont(Textdraw3[playerid], 1);
TextDrawLetterSize(Textdraw3[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw3[playerid], -1);
TextDrawSetOutline(Textdraw3[playerid], 0);
TextDrawSetProportional(Textdraw3[playerid], 1);
TextDrawSetShadow(Textdraw3[playerid], 1);
Textdraw4[playerid] = TextDrawCreate(58.000000, 244.000000, "Press F6 (T) And Select A Number");
TextDrawBackgroundColor(Textdraw4[playerid], 255);
TextDrawFont(Textdraw4[playerid], 1);
TextDrawLetterSize(Textdraw4[playerid], 0.219999, 1.000000);
TextDrawColor(Textdraw4[playerid], -1);
TextDrawSetOutline(Textdraw4[playerid], 0);
TextDrawSetProportional(Textdraw4[playerid], 1);
TextDrawSetShadow(Textdraw4[playerid], 1);
Textdraw5[playerid] = TextDrawCreate(65.000000, 256.000000, "Press LMB To Close This Box");
TextDrawBackgroundColor(Textdraw5[playerid], 255);
TextDrawFont(Textdraw5[playerid], 1);
TextDrawLetterSize(Textdraw5[playerid], 0.219999, 1.000000);
TextDrawColor(Textdraw5[playerid], -1);
TextDrawSetOutline(Textdraw5[playerid], 0);
TextDrawSetProportional(Textdraw5[playerid], 1);
TextDrawSetShadow(Textdraw5[playerid], 1);
Textdraw6[playerid] = TextDrawCreate(94.000000, 150.000000, "Select A Vehicle Below To Preview");
TextDrawBackgroundColor(Textdraw6[playerid], 255);
TextDrawFont(Textdraw6[playerid], 1);
TextDrawLetterSize(Textdraw6[playerid], 0.219999, 1.000000);
TextDrawColor(Textdraw6[playerid], -1);
TextDrawSetOutline(Textdraw6[playerid], 0);
TextDrawSetProportional(Textdraw6[playerid], 1);
TextDrawSetShadow(Textdraw6[playerid], 1);
Textdraw7[playerid] = TextDrawCreate(9.000000, 165.000000, "1.");
TextDrawBackgroundColor(Textdraw7[playerid], 255);
TextDrawFont(Textdraw7[playerid], 1);
TextDrawLetterSize(Textdraw7[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw7[playerid], 176895);
TextDrawSetOutline(Textdraw7[playerid], 1);
TextDrawSetProportional(Textdraw7[playerid], 0);
Textdraw8[playerid] = TextDrawCreate(9.000000, 175.000000, "2.");
TextDrawBackgroundColor(Textdraw8[playerid], 255);
TextDrawFont(Textdraw8[playerid], 1);
TextDrawLetterSize(Textdraw8[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw8[playerid], 176895);
TextDrawSetOutline(Textdraw8[playerid], 1);
TextDrawSetProportional(Textdraw8[playerid], 0);
Textdraw9[playerid] = TextDrawCreate(9.000000, 185.000000, "3.");
TextDrawBackgroundColor(Textdraw9[playerid], 255);
TextDrawFont(Textdraw9[playerid], 1);
TextDrawLetterSize(Textdraw9[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw9[playerid], 176895);
TextDrawSetOutline(Textdraw9[playerid], 1);
TextDrawSetProportional(Textdraw9[playerid], 0);
Textdraw10[playerid] = TextDrawCreate(9.000000, 195.000000, "4.");
TextDrawBackgroundColor(Textdraw10[playerid], 255);
TextDrawFont(Textdraw10[playerid], 1);
TextDrawLetterSize(Textdraw10[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw10[playerid], 176895);
TextDrawSetOutline(Textdraw10[playerid], 1);
TextDrawSetProportional(Textdraw10[playerid], 0);
Textdraw11[playerid] = TextDrawCreate(9.000000, 205.000000, "5.");
TextDrawBackgroundColor(Textdraw11[playerid], 255);
TextDrawFont(Textdraw11[playerid], 1);
TextDrawLetterSize(Textdraw11[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw11[playerid], 176895);
TextDrawSetOutline(Textdraw11[playerid], 1);
TextDrawSetProportional(Textdraw11[playerid], 0);
Textdraw12[playerid] = TextDrawCreate(9.000000, 215.000000, "6.");
TextDrawBackgroundColor(Textdraw12[playerid], 255);
TextDrawFont(Textdraw12[playerid], 1);
TextDrawLetterSize(Textdraw12[playerid], 0.310000, 1.100000);
TextDrawColor(Textdraw12[playerid], 176895);
TextDrawSetOutline(Textdraw12[playerid], 1);
TextDrawSetProportional(Textdraw12[playerid], 0);
return 1;
}
public OnGameModeInit()
{
Car = CreateMenu("1", 1, 50.0, 180.0, 200.0, 200.0);
AddMenuItem(Car,0,"1.Infernus - $2131200");
AddMenuItem(Car,0,"1.Super GT - $504561");
AddMenuItem(Car,0,"1.Cheetah - $455468");
AddMenuItem(Car,0,"1.Banshee - $645234");
AddMenuItem(Car,0,"1.Bullet - $1200000");
AddMenuItem(Car,0,"1.ZR-350 - $189542");
return 1;
}
CMD:cars(playerid, params[])
{
OpenedCarMenu[playerid] = 1;
TextDrawSetString(Textdraw7[playerid],"1.Infernus - $2131200");
TextDrawSetString(Textdraw8[playerid],"2.Super GT - $504561");
TextDrawSetString(Textdraw9[playerid],"3.Cheetah - $455468");
TextDrawSetString(Textdraw10[playerid],"4.Banshee - $645234");
TextDrawSetString(Textdraw11[playerid],"5.Bullet - $1200000");
TextDrawSetString(Textdraw12[playerid],"6.ZR-350 - $189542");
TextDrawShowForPlayer(playerid, Textdraw0[playerid]);
TextDrawShowForPlayer(playerid, Textdraw1[playerid]);
TextDrawShowForPlayer(playerid, Textdraw2[playerid]);
TextDrawShowForPlayer(playerid, Textdraw3[playerid]);
TextDrawShowForPlayer(playerid, Textdraw4[playerid]);
TextDrawShowForPlayer(playerid, Textdraw5[playerid]);
TextDrawShowForPlayer(playerid, Textdraw6[playerid]);
TextDrawShowForPlayer(playerid, Textdraw7[playerid]);
TextDrawShowForPlayer(playerid, Textdraw8[playerid]);
TextDrawShowForPlayer(playerid, Textdraw9[playerid]);
TextDrawShowForPlayer(playerid, Textdraw10[playerid]);
TextDrawShowForPlayer(playerid, Textdraw11[playerid]);
TextDrawShowForPlayer(playerid, Textdraw12[playerid]);
return 1;
}
public OnPlayerText(playerid, text[])
{
if(strfind(text,"1", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 1200000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -1200000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(541, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
INI_Close(file);
}
if(fexist(Path(playerid)))
{
if(cInfo[playerid][CarX1] > 0 && cInfo[playerid][CarX2] == 0)
{
new INI:file = INI_Open(Path(playerid));
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(541, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX2] = p[0];
cInfo[playerid][CarY2] = p[1];
cInfo[playerid][CarZ2] = p[2];
cInfo[playerid][CarA2] = p[3] + 90;
INI_WriteFloat(file,"CarX2",cInfo[playerid][CarX2]);
INI_WriteFloat(file,"CarY2",cInfo[playerid][CarY2]);
INI_WriteFloat(file,"CarZ2",cInfo[playerid][CarZ2]);
INI_WriteFloat(file,"CarA2",cInfo[playerid][CarA2]);
INI_Close(file);
}
else if(cInfo[playerid][CarX1] > 0 && cInfo[playerid][CarX2] > 0)
{
new INI:file = INI_Open(Path(playerid));
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(541, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX3] = p[0];
cInfo[playerid][CarY3] = p[1];
cInfo[playerid][CarZ3] = p[2];
cInfo[playerid][CarA3] = p[3] + 90;
INI_WriteFloat(file,"CarX3",cInfo[playerid][CarX3]);
INI_WriteFloat(file,"CarY3",cInfo[playerid][CarY3]);
INI_WriteFloat(file,"CarZ3",cInfo[playerid][CarZ3]);
INI_WriteFloat(file,"CarA3",cInfo[playerid][CarA3]);
INI_Close(file);
}
}
}
if(strfind(text,"2", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 1900000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -1900000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
}
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(411, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
}
if(strfind(text,"3", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 4000000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -4000000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
}
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(494, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
}
if(strfind(text,"4", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 22000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -22000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
}
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(409, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
}
if(strfind(text,"5", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 600000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -600000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
}
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(506, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
}
if(strfind(text,"6", true) != -1 && OpenedCarMenu[playerid] == 1)
{
if(GetPlayerMoney(playerid) < 600000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -600000);
if(!fexist(Path(playerid)))
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Car's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
}
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(506, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
cInfo[playerid][CarX1] = p[0];
cInfo[playerid][CarY1] = p[1];
cInfo[playerid][CarZ1] = p[2];
cInfo[playerid][CarA1] = p[3] + 90;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"Player's Data");
INI_WriteFloat(file,"CarX1",cInfo[playerid][CarX1]);
INI_WriteFloat(file,"CarY1",cInfo[playerid][CarY1]);
INI_WriteFloat(file,"CarZ1",cInfo[playerid][CarZ1]);
INI_WriteFloat(file,"CarA1",cInfo[playerid][CarA1]);
INI_Close(file);
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:current;
current = GetPlayerMenu(playerid);
if(current == Car)
{
switch(row)
{
case 0:
{
if(GetPlayerMoney(playerid) < 1200000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -1200000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(541, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 1:
{
if(GetPlayerMoney(playerid) < 1900000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -1900000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(411, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 2:
{
if(GetPlayerMoney(playerid) < 4000000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -4000000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(494, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 3:
{
if(GetPlayerMoney(playerid) < 22000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -22000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(409, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 4:
{
if(GetPlayerMoney(playerid) < 460000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -460000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(560, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 5:
{
if(GetPlayerMoney(playerid) < 600000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -600000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(506, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
case 6:
{
if(GetPlayerMoney(playerid) < 5000000)
return SendClientMessage(playerid, 0, "You don't have enough cash to buy this car!");
GivePlayerMoney(playerid, -5000000);
new Float:p[4];
GetPlayerPos(playerid, p[0], p[1], p[2]);
GetPlayerFacingAngle(playerid, p[3]);
CreateVehicle(521, p[0], p[1], p[2], p[3]+90, -1, -1, 9999999);
}
}
}
return 1;
}
stock Path(playerid) //Will create a new stock so we can easily use it later to load/save user's data in user's path
{
new str[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str),CarPath,name);
return str;
}