- Регистрация
- 16 Дек 2015
- Сообщения
- 1,737
- Лучшие ответы
- 0
- Репутация
- 499
Доброе время суток, пользователи Pawno-Info.Ru
Автор данной копии: #Salev | #Rips
Версия MYSQL: 39-2
Что отсутствует в данной системе:
- Оплата за гараж - P.S Вы должны ее написать сами так как у всех код разный
- Респавн автомобиля - P.S Вы тоже должны написать сами так как у всех код разный
Дефайны использующийся в коде:
Создаем ENUM
В OnPlayerKeyStateChange
Диалог покупки:
Делаем загрузку гаражей:
Делаем сток обновления 3D Text'a:
Команды на создание и выставление координат кара:
Где происходит подключение к базе данных:
Создаем таблицу:
Автор данной копии: #Salev | #Rips
Версия MYSQL: 39-2
Что отсутствует в данной системе:
- Оплата за гараж - P.S Вы должны ее написать сами так как у всех код разный
- Респавн автомобиля - P.S Вы тоже должны написать сами так как у всех код разный
Дефайны использующийся в коде:
PHP:
#define SPD ShowPlayerDialog
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
PHP:
#define MAX_GARAGE 200
enum gInfo
{
gID, // Индивидуальный ID
gOwner[MAX_PLAYER_NAME], // Хозяин гаража
Float:gCar[4],Float:gPEnter[3], // Координаты респавна автомобиля | Координаты для пикапа
gCost, // Цена гаража
gPrice, // Последняя цена с покупки
gPickupC // Сам пикап
}
new GarageInfo[MAX_GARAGE][gInfo], total_garage = 0;
new Text3D:LabelGarage[60]; // 3DText пикапа
PHP:
if(PRESSED(KEY_WALK))
{
for(new idx = 1; idx <= total_garage; idx++)
{
if(IsPlayerInRangeOfPoint(playerid, 4,GarageInfo[idx][gPEnter][0], GarageInfo[idx][gPEnter][1], GarageInfo[idx][gPEnter][2]))
{
new strings[350];
if(!strcmp(GarageInfo[idx][gOwner],"None",true))
{
format(strings,sizeof(strings), "{FF9900}\n\nЭтот гараж свободен.{FFFFFF}\nВы хотите купить этот гараж за {FF9900}%i рублей{FFFFFF}\
\n\n{FF9900}Информация{FFFFFF}: Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома",GarageInfo[idx][gCost]);
SPD(playerid, 63, DIALOG_STYLE_MSGBOX, "{FF9900}Гараж", strings, "Купить", "Закрыть");
}
else
{
format(strings,sizeof(strings), "{FF9900}\n\nЭтот гараж занят.{FFFFFF}\nВладелец: {FF9900}%s{FFFFFF}\nДней оплачено: {FF9900}30{FFFFFF}\n\
Нажмите {FF9900}'Респавн'{FFFFFF} чтобы возратить автомобиль к гаражу. Стоимость: {FF9900}600 рублей.\n\n\
Информация{FFFFFF}: Гаражи предназначены только для тех, кто арендует комнаты в частных домах или не имеет дома",GarageInfo[idx][gOwner]);
SPD(playerid, 64, DIALOG_STYLE_MSGBOX, "{FF9900}Гараж", strings, "Респавн", "Закрыть");
}
}
}
}
Диалог покупки:
PHP:
case 63:
{
if(response)
{
if(!response) return true;
if(strcmp(GarageInfo[total_garage][gOwner],"None",true) != 0) return SendClientMessage(playerid,-1,"У гаража уже есть владелец!");
PlayerInfo[playerid][pCash] -= GarageInfo[total_garage][gPrice];
GarageInfo[total_garage][gPrice] = GarageInfo[total_garage][gPrice];
SendClientMessage(playerid, 0xFF9900FF, "Поздравляем с покупкой гаража!");
strmid(GarageInfo[total_garage][gOwner],PlayerInfo[playerid][pName], 0, strlen(PlayerInfo[playerid][pName]), MAX_PLAYER_NAME);
new string[128];
format(string,sizeof(string), "UPDATE `garage` SET `gOwner` = '%s', `gPrice` = '%d' WHERE `gID` = '%d'",PlayerInfo[playerid][pName],GarageInfo[total_garage][gPrice]);
mysql_function_query(connects, string, false, "", "");
UpDataGarageInfo(total_garage);
}
}
PHP:
forward LoadGaragePlayer();
public LoadGaragePlayer()
{
new rows, fields, stringers[84];
cache_get_data(rows, fields);
if(!rows) return printf("[SYSTEM-GARAGE]: Гаражи не загружены!");
new idx;
for(idx = 1; idx <= rows; idx++)
{
GarageInfo[idx][gID] = cache_get_field_content_int(idx-1, "gID");
cache_get_field_content(idx-1, "gOwner", GarageInfo[idx][gOwner], connects, 26);
GarageInfo[idx][gCar][0] = cache_get_field_content_float(idx-1, "gCarX", connects);
GarageInfo[idx][gCar][1] = cache_get_field_content_float(idx-1, "gCarY", connects);
GarageInfo[idx][gCar][2] = cache_get_field_content_float(idx-1, "gCarZ", connects);
GarageInfo[idx][gCar][3] = cache_get_field_content_float(idx-1, "gCarA", connects);
GarageInfo[idx][gPEnter][0] = cache_get_field_content_float(idx-1, "gPEnterX", connects);
GarageInfo[idx][gPEnter][1] = cache_get_field_content_float(idx-1, "gPEnterY", connects);
GarageInfo[idx][gPEnter][2] = cache_get_field_content_float(idx-1, "gPEnterZ", connects);
GarageInfo[idx][gCost] = cache_get_field_content_int(idx-1, "gCost");
GarageInfo[idx][gPrice] = cache_get_field_content_int(idx-1, "gPrice");
GarageInfo[idx][gPickupC] = CreateDynamicPickup(1080,23, GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2]);
if(!strcmp(GarageInfo[idx][gOwner],"None",true))
{
format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}Отсутствует", GarageInfo[idx][gID]);
LabelGarage[idx] = CreateDynamic3DTextLabel(stringers,0xFFFFFFFF,GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2],15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
}
else
{
format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}%s", GarageInfo[idx][gID], GarageInfo[idx][gOwner]);
LabelGarage[idx] = CreateDynamic3DTextLabel(stringers,0xFFFFFFFF,GarageInfo[idx][gPEnter][0],GarageInfo[idx][gPEnter][1],GarageInfo[idx][gPEnter][2],15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
}
total_garage++;
}
printf("[SYSTEM-GARAGE]: Гаражи успешно загружены! Количество гаражей: %i", total_garage);
return 1;
}
PHP:
stock UpDataGarageInfo(idx)
{
new stringers[84];
if(!strcmp(GarageInfo[idx][gOwner],"None",true)) { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}Отсутствует", GarageInfo[idx][gID]); }
else { format(stringers,sizeof(stringers), "Номер гаража: {FF9900}%i{FFFFFF}\nВладелец: {FF9900}%s", GarageInfo[idx][gID], GarageInfo[idx][gOwner]); }
UpdateDynamic3DTextLabelText(LabelGarage[idx], -1, stringers);
return 1;
}
PHP:
CMD:addg(playerid, params[])
{
new Float:GaragePos[4];
if(sscanf(params, "d", params[0])) return SCM(playerid, -1, "{FF9900}• [Подсказка]{FFFFFF}: Используйте /addg [цена]");
GetPlayerPos(playerid, GaragePos[0], GaragePos[1], GaragePos[2]);
GetPlayerFacingAngle(playerid, GaragePos[3]);
GarageInfo[total_garage][gPEnter][0] = GaragePos[0];
GarageInfo[total_garage][gPEnter][1] = GaragePos[1];
GarageInfo[total_garage][gPEnter][2] = GaragePos[2];
GarageInfo[total_garage][gCost] = params[0];
GarageInfo[total_garage][gPickupC] = CreateDynamicPickup(1080,23, GarageInfo[total_garage][gPEnter][0],GarageInfo[total_garage][gPEnter][1],GarageInfo[total_garage][gPEnter][2]);
new string[128];
format(string,sizeof(string), "INSERT INTO `garage` (`gPEnterX`,`gPEnterY`,`gPEnterZ`,`gCost`) VALUES ('%f','%f','%f','%i')",GarageInfo[total_garage][gPEnter][0],GarageInfo[total_garage][gPEnter][1],GarageInfo[total_garage][gPEnter][2],
params[0]);
mysql_function_query(connects, string, true, "", "d", playerid);
SCM(playerid, -1, "Создайте кар и встаньте как будет респавниться авто в гараже и пропишите /poscar [id гаража]!");
return 1;
}
CMD:poscar(playerid, params[])
{
if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "{FF9900}• [Подсказка]{FFFFFF}: Используйте /setposcar [id гаража]");
if(params[0] < 0 || params[0] > 200) return 1;
new Float:X,Float:Y,Float:Z,Float:Angle; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
GarageInfo[params[0]][gCar][0] = X;
GarageInfo[params[0]][gCar][1]= Y;
GarageInfo[params[0]][gCar][2] = Z;
GarageInfo[params[0]][gCar][3] = Angle;
SendClientMessage(playerid, -1, "Координаты машины установлены");
new string[258];
format(string, sizeof(string), "UPDATE `garage` SET `gCarX` = '%f', `gCarY` = '%f', `gCarZ` = '%f', `gCarA` = '%f' WHERE gID = '%i'",X,Y,Z,Angle,params[0]);
mysql_function_query(connects, string, false, "", "");
return true;
}
PHP:
mysql_function_query(connects,"SELECT * FROM `garage`", true, "LoadGaragePlayer", "");
PHP:
CREATE TABLE IF NOT EXISTS `garage` (
`gID` int(11) NOT NULL AUTO_INCREMENT,
`gOwner` varchar(26) NOT NULL,
`gCarX` float NOT NULL,
`gCarY` float NOT NULL,
`gCarZ` float NOT NULL,
`gCarA` float NOT NULL,
`gCost` int(11) NOT NULL,
`gPrice` int(11) NOT NULL,
`gPEnterX` float NOT NULL,
`gPEnterY` float NOT NULL,
`gPEnterZ` float NOT NULL,
PRIMARY KEY (`gID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Последнее редактирование: