tryp
Умник
[Мануал] Система парковок(spark anti[p)
Здрасте вам. На павно инфо такая тема существует но в тех парковок много багов . В этих я представлю систему парковок не багнутые само писанные . Плюс возможность добавлять парковки командой /addpark[ид парковки] как сам пикап так и машину /addpcar [ид парковки]
Итак начнем
Для начало добавим переменные
В enum pinfo добавим это
после new PlayerInfo[MAX_PLAYERS][pInfo]; добавим это
public onplayerlogin
public SavessAkk(playerid,string3[])
public OnPlayerRegister(playerid, password[])
Для гф мода:
public onplayerlogin
public onplayerregister
public OnPlayerSave(playerid)
public onplayerconnect
Теперь добавим загрузку парковок идем в конец мода добавляем это
Теперь в public OnPropUpdate() добавим
public OnPlayerCommandText(playerid, cmdtext[])
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
в public OnGameModeInit()
кому нужны уже расставлены парковки
папку Parki засунуть в scriptfiles
Подобные парковки стояли на spark anti[p](не реклама)
Автор: >>я<<
Здрасте вам. На павно инфо такая тема существует но в тех парковок много багов . В этих я представлю систему парковок не багнутые само писанные . Плюс возможность добавлять парковки командой /addpark[ид парковки] как сам пикап так и машину /addpcar [ид парковки]
Итак начнем
Для начало добавим переменные
В enum pinfo добавим это
PHP:
pPK,
PHP:
enum kPark
{
kID, //ид парковки
kOwner[MAX_PLAYER_NAME], //владелец парковки
kOwned, //куплен или нет
Float:kEntX, //координаты пикапа
Float:kEntY,
Float:kEntZ,
Float:kCarX, //координаты машины
Float:kCarY,
Float:kCarZ,
Float:kCarA,
kVeh, //ид машины
kCol1, //цвет
kCol2,
kBuyPrice, //цена парковки
kLock //закрыта ли машина или нет
}
new ParkInfo[100][kPark]; //100 парковок
new ParkVehicle[100];
new Text3D: Parking[sizeof(ParkInfo)];
PHP:
ini_getInteger(File,"Parks",PlayerInfo[playerid][pPK]);
PHP:
ini_setInteger(File,"Parks",PlayerInfo[playerid][pPK]);
PHP:
ini_setInteger(File,"Parks",PlayerInfo[playerid][pPK]);
public onplayerlogin
PHP:
if( strcmp( key , "Parks" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPK] = strval( val ); }
PHP:
format(var, 32, "Parks=%s\n", PlayerInfo[playerid][pPK]);fwrite(hFile, var);
PHP:
format(var, 32, "Parks=%s\n", PlayerInfo[playerid][pPK]);fwrite(hFile, var);
PHP:
PlayerInfo[playerid][pPK] = 255;
PHP:
stock LoadParks()
{
new arrCoords[15][64];
new strFromFile2[256];
new File: file = fopen("Parki/Parks.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(ParkInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
ParkInfo[idx][kID] = strval(arrCoords[0]);
strmid(ParkInfo[idx][kOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255);
ParkInfo[idx][kOwned] = strval(arrCoords[2]);
ParkInfo[idx][kEntX] = floatstr(arrCoords[3]);
ParkInfo[idx][kEntY] = floatstr(arrCoords[4]);
ParkInfo[idx][kEntZ] = floatstr(arrCoords[5]);
ParkInfo[idx][kCarX] = floatstr(arrCoords[6]);
ParkInfo[idx][kCarY] = floatstr(arrCoords[7]);
ParkInfo[idx][kCarZ] = floatstr(arrCoords[8]);
ParkInfo[idx][kCarA] = floatstr(arrCoords[9]);
ParkInfo[idx][kVeh] = strval(arrCoords[10]);
ParkInfo[idx][kCol1] = strval(arrCoords[11]);
ParkInfo[idx][kCol2] = strval(arrCoords[12]);
ParkInfo[idx][kBuyPrice] = strval(arrCoords[13]);
ParkInfo[idx][kLock] = strval(arrCoords[14]);
idx++;
}
fclose(file);
}
return true;
}
PHP:
while (idx < sizeof(ParkInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d,%s,%d,%f,%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d\n",
ParkInfo[idx][kID], //ид парковки
ParkInfo[idx][kOwner], //владелец парковки
ParkInfo[idx][kOwned], //куплен или нет
ParkInfo[idx][kEntX], //координаты пикапа
ParkInfo[idx][kEntY],
ParkInfo[idx][kEntZ],
ParkInfo[idx][kCarX], //координаты машины
ParkInfo[idx][kCarY],
ParkInfo[idx][kCarZ],
ParkInfo[idx][kCarA],
ParkInfo[idx][kVeh], //ид машины
ParkInfo[idx][kCol1], //цвет
ParkInfo[idx][kCol2],
ParkInfo[idx][kBuyPrice], //цена парковки
ParkInfo[idx][kLock]);
if(idx == 0)
{
file2 = fopen("Parki/Parks.cfg", io_write);
}
else
{
file2 = fopen("Parki/Parks.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
idx = 0;
PHP:
if(strcmp(cmd, "/parkhelp", true) == 0)
{
new bouse = PlayerInfo[playerid][pPK];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
if (bouse != 255 && strcmp(playername, ParkInfo[PlayerInfo[playerid][pPK]][kOwner], true) == 0)
{
if (PlayerToPoint(10, playerid,ParkInfo[bouse][kEntX], ParkInfo[bouse][kEntY], ParkInfo[bouse][kEntZ]))
{
ShowPlayerDialog(playerid,5500, DIALOG_STYLE_LIST,"Панель Управления Парковкой","1.Продать парковку\n2.Поменять машину\n3.Изменить окраску\n4.Вернуть машину на место","Ок","Отмена");
}
}
}
if(strcmp(cmd, "/buypark", true) == 0)
{
new name[MAX_PLAYER_NAME];
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid,name,sizeof(name));
for(new h = 0; h < sizeof(ParkInfo); h++)
{
if(PlayerToPoint(2.0, playerid, ParkInfo[h][kEntX], ParkInfo[h][kEntY], ParkInfo[h][kEntZ]) && ParkInfo[h][kOwned] == 0)
{
if(PlayerInfo[playerid][pPK] != 255 && strcmp(name, ParkInfo[PlayerInfo[playerid][pPK]][kOwner], true) == 0)
{
SendClientMessage(playerid, COLOR_LIGHTGREEN, "У вас уже есть парковка");
SendClientMessage(playerid, COLOR_WHITE, "(( /parkhelp - [1] Продать ))");
return 1;
}
if(PlayerInfo[playerid][pCash] < ParkInfo[h][kBuyPrice]) return SendClientMessage(playerid, COLOR_WHITE, "У вас нет столько денег на руках!");
strmid(ParkInfo[h][kOwner], name, 0, strlen(name), 255);
PlayerInfo[playerid][pCash] -= ParkInfo[h][kBuyPrice];
ParkInfo[h][kVeh] = 510;
ParkInfo[h][kOwned] = 1;
PlayerInfo[playerid][pPK] = h;
DestroyVehicle(ParkVehicle[h]);
ParkVehicle[h] = CreateVehicle(ParkInfo[h][kVeh], ParkInfo[h][kCarX], ParkInfo[h][kCarY], ParkInfo[h][kCarZ], ParkInfo[h][kCarA], ParkInfo[h][kCol1], ParkInfo[h][kCol2], 60000);
pickups++;
format(string2,sizeof(string2), "[Владелец:%s]",ParkInfo[h][kOwner]);
Update3DTextLabelText(Parking[h],COLOR_YELLOW,string2);
OnPropUpdate();
OnPlayerUpdateRL(playerid);
SendClientMessage(playerid, COLOR_WHITE,"Поздравляем");
SendClientMessage(playerid, COLOR_WHITE,"Вы купили парковочное место");
SendClientMessage(playerid, COLOR_YELLOW,"Используйте /parkhelp");
}
}
return true;
}
else if(strcmp(cmd, "/addpark", true) == 0)
{
new Byxou[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Введите: /addpark [ ид ]");
new Float: lwx, Float:lwy, Float:lwz;
GetPlayerPos(playerid, lwx, lwy, lwz);
new house = strval(tmp);
ParkInfo[house][kEntX] = lwx;
ParkInfo[house][kEntY]= lwy;
ParkInfo[house][kEntZ] = lwz;
ParkInfo[house][kBuyPrice] = 250000;
ParkInfo[house][kOwned] = 0;
strmid(ParkInfo[house][kOwner], "The State", 0, strlen("The State"), 255);
CreatePickup(1270, 23, ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ],0);
pickups++;
format(Byxou, sizeof(Byxou), "[Парковка продается]\n[Цена:%d]\n[Чтоб купить введите /buypark]",ParkInfo[house][kBuyPrice]);
Create3DTextLabel(Byxou,COLOR_YELLOW,ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ]+1,30,0,1);
OnPropUpdate();
}
else if(strcmp(cmd, "/addpcar", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Введите: /setposcar [ дом ]");
new Float:X,Float:Y,Float:Z,Float:Angle; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
new house = strval(tmp);
ParkInfo[house][kCarX] = X;
ParkInfo[house][kCarY]= Y;
ParkInfo[house][kCarZ] = Z;
ParkInfo[house][kCarA] = Angle;
ParkInfo[house][kCol1] = 1;
ParkInfo[house][kCol2] = 1;
ParkInfo[house][kVeh] = 509;
CreateVehicle(ParkInfo[house][kVeh],ParkInfo[house][kCarX],ParkInfo[house][kCarY],ParkInfo[house][kCarZ],ParkInfo[house][kCarA],ParkInfo[house][kCol1],ParkInfo[house][kCol2], 60000);
OnPropUpdate();
SendClientMessage(playerid, COLOR_GREY, "Координаты машины установлены");
}
PHP:
case 5500://для гф (dialogid == 5500) за место case 5500:
{
if(response)
{
if(listitem == 0)
{
new house = PlayerInfo[playerid][pPK];
{
if(PlayerToPoint(10.0, playerid, ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ]))
{
PlayerInfo[playerid][pPK] = 255;
ParkInfo[house][kOwned] = 0;
ParkInfo[house][kLock] = 0;
strmid(ParkInfo[house][kOwner], "The State", 0, strlen("The State"), 255);
PlayerInfo[playerid][pBank] +=ParkInfo[house][kBuyPrice];
SendClientMessage(playerid, COLOR_GREEN, "::: Парковка Продана Госу ::::");
SendClientMessage(playerid, COLOR_WHITE, "::: За 250.000$ ::::");
format(string2, sizeof(string2), "[Парковка продается]\n[Цена:%d]\n[Чтоб купить введите /buypark]",ParkInfo[house][kBuyPrice]);
Update3DTextLabelText(Parking[house],COLOR_YELLOW,string2);
OnPropUpdate();
OnPlayerUpdateRL(playerid);
return 1;
}
}
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,5501, DIALOG_STYLE_INPUT,"Панель Управления Парковкой","Введите ид автомобиля в окошо\n\nОт 400 до 611\nТакже вы не можите поставить танк и супер самолеты","Ок","Отмена");
}
if(listitem == 2)
{
ShowPlayerDialog(playerid,5502, DIALOG_STYLE_INPUT,"Панель Управления Парковкой","Введите ид цвета покраски","Ок","Отмена");
}
if(listitem == 3)
{
new house = PlayerInfo[playerid][pPK];
{
if(PlayerToPoint(10.0, playerid, ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ]))
{
DestroyVehicle(ParkVehicle[house]);
ParkVehicle[house] = CreateVehicle(ParkInfo[house][kVeh], ParkInfo[house][kCarX], ParkInfo[house][kCarY], ParkInfo[house][kCarZ], ParkInfo[house][kCarA], ParkInfo[house][kCol1], ParkInfo[house][kCol2], 60000);
PlayerInfo[playerid][pCash] -=5000;
SendClientMessage(playerid,COLOR_WHITE,"Ваша машина успешно доставлена на парковочное место за 5.000$");
}
}
}
}
return true;
}
case 5502:
{
new house = PlayerInfo[playerid][pPK];
{
if(PlayerToPoint(10.0, playerid, ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ]) )
{
if(PlayerInfo[playerid][pCash] < 200000) return SendClientMessage(playerid,COLOR_WHITE,"У вас нет 200к");
new idd = strval(inputtext);
if(idd < 0 || idd > 126) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] номер может быть от 0 до 126!");
format(string, sizeof(string), "Вы купили новый цвет за 200.000$.");
SendClientMessage(playerid, 0x6495EDFF, string);
ParkInfo[house][kCol1] = idd;
ParkInfo[house][kCol2] = idd;
PlayerInfo[playerid][pCash] -=200000;
DestroyVehicle(ParkVehicle[house]);
ParkVehicle[house] = CreateVehicle(ParkInfo[house][kVeh],ParkInfo[house][kCarX], ParkInfo[house][kCarY], ParkInfo[house][kCarZ], ParkInfo[house][kCarA], ParkInfo[house][kCol1], ParkInfo[house][kCol2], 60000);
OnPropUpdate();
OnPlayerUpdateRL(playerid);
ShowPlayerDialog(playerid,5500, DIALOG_STYLE_LIST,"Панель Управления Парковкой","1.Продать парковку\n2.Поменять машину\n3.Изменить окраску\n4.Вернуть машину на место","Ок","Отмена");
}
}
}
case 5501:
{
new house = PlayerInfo[playerid][pPK];
{
if(PlayerToPoint(10.0, playerid, ParkInfo[house][kEntX], ParkInfo[house][kEntY], ParkInfo[house][kEntZ]))
{
if(PlayerInfo[playerid][pCash] < 500000) return SendClientMessage(playerid,COLOR_WHITE,"У вас нет 500к");
new idd = strval(inputtext);
if(idd < 400 || idd > 611) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] номер может быть от 400 до 611!");
format(string, sizeof(string), "Вы купили автомобиль за 500.000$.");
SendClientMessage(playerid, 0x6495EDFF, string);
DestroyVehicle(ParkVehicle[house]);
ParkInfo[house][kVeh] = idd;
PlayerInfo[playerid][pCash] -=500000;
ParkVehicle[house] = CreateVehicle(ParkInfo[house][kVeh],ParkInfo[house][kCarX], ParkInfo[house][kCarY], ParkInfo[house][kCarZ], ParkInfo[house][kCarA], ParkInfo[house][kCol1], ParkInfo[house][kCol2], 60000);
OnPropUpdate();
OnPlayerUpdateRL(playerid);
ShowPlayerDialog(playerid,5500, DIALOG_STYLE_LIST,"Панель Управления Парковкой","1.Продать парковку\n2.Поменять машину\n3.Изменить окраску\n4.Вернуть машину на место","Ок","Отмена");
}
}
}
PHP:
LoadParks();
new Byxou[256];
for(new h = 0; h < sizeof(ParkInfo); h++)
{
if(ParkInfo[h][kOwned] == 0)
{
new Byxou[256];
CreatePickup(1270, 23, ParkInfo[h][kEntX], ParkInfo[h][kEntY], ParkInfo[h][kEntZ],0);
ParkVehicle[h] = CreateVehicle(ParkInfo[h][kVeh], ParkInfo[h][kCarX], ParkInfo[h][kCarY], ParkInfo[h][kCarZ], ParkInfo[h][kCarA], ParkInfo[h][kCol1], ParkInfo[h][kCol2], 6000);
pickups++;
format(Byxou, sizeof(Byxou), "[Парковка продается]\n[Цена:%d]\n[Чтоб купить введите /buypark]",ParkInfo[h][kBuyPrice]);
Create3DTextLabel(Byxou,COLOR_YELLOW,ParkInfo[h][kEntX], ParkInfo[h][kEntY], ParkInfo[h][kEntZ]+1,30,0,1);
}
if(ParkInfo[h][kOwned] == 1)
{
new Byxou[256];
CreatePickup(1270, 23, ParkInfo[h][kEntX], ParkInfo[h][kEntY], ParkInfo[h][kEntZ],0);
ParkVehicle[h] = CreateVehicle(ParkInfo[h][kVeh], ParkInfo[h][kCarX], ParkInfo[h][kCarY], ParkInfo[h][kCarZ], ParkInfo[h][kCarA], ParkInfo[h][kCol1], ParkInfo[h][kCol2], 6000);
pickups++;
format(Byxou,sizeof(Byxou), "[Владелец:%s]",ParkInfo[h][kOwner]);
Create3DTextLabel(Byxou,COLOR_YELLOW,ParkInfo[h][kEntX], ParkInfo[h][kEntY], ParkInfo[h][kEntZ]+1,30,0,1);
}
}
http://image.pawno-info.ru/images/xCBc6.png
http://image.pawno-info.ru/images/xYLmK.png
http://image.pawno-info.ru/images/ygxwB.png
http://image.pawno-info.ru/images/xYLmK.png
http://image.pawno-info.ru/images/ygxwB.png
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
папку Parki засунуть в scriptfiles
Подобные парковки стояли на spark anti[p](не реклама)
Автор: >>я<<
Последнее редактирование:
