Текущее время: 11 апреля 2018


Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 05 июл 2014, 15:45 
Модераторы lvl1.
«I'am WorkOut» ♫
«АВТОР ТЕМЫ»
Сообщений: «1195»
Откуда: Алтайский край
Cпасибо сказано: 75 раз(а)
Спасибо получено: 186 раз(а)
Медали: 5
-
+
Репутация: 1721
Мод: Relative СITE | |
Автор: Merlin
[youtube]http://www.youtube.com/watch?v=n7C8_4E3LVw[/youtube]

К #include

#include <morphinc>


в forward

forward CustomPickups();
forward LockCar(carid);



К new

new Float:PosPic[3][MAX_PLAYERS];
new bool:dPic[MAX_PLAYERS];
new CreatedCar;
new IsLocked[MAX_VEHICLES];
new gCarLock[MAX_VEHICLES];
new bool:EngineState[MAX_PLAYERS];
new CarIdHouse[MAX_PLAYERS];


После в
enum pInfo

pHouseKey,



Рядом

enum hInfo
{
Float:hEntrancex,
Float:hEntrancey,
Float:hEntrancez,
Float:hExitx,
Float:hExity,
Float:hExitz,
Float:hCarx,
Float:hCary,
Float:hCarz,
Float:hCarc,
Float:hGarx,
Float:hGary,
Float:hGarz,
Float:hGarc,
hOwner[MAX_PLAYER_NAME],
hValue,
hHel,
hInt,
hLock,
hOwned,
hTakings,
hClass,
hPickup,
hMIcon,
hGarage,
hOplata
};
new HouseInfo[801][hInfo];


В public OnGameModeInit()

LoadProperty();
SetTimer("CustomPickups", 1, true);
//================================================== ========================
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned] == 0)
{
HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], -1);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1);
}
if(HouseInfo[h][hOwned] == 1)
{
HouseInfo[h][hPickup] = CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], -1);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1);
}
}
//================================================== ========================



В
public OnPlayerConnect(playerid)

PlayerInfo[playerid][pHouseKey] = 999;


Далее в stock SetPlayerSpawn(playerid)

new house = PlayerInfo[playerid][pHouseKey];
SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]);//plevel
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);//skib
if(house != 999)
{
SetPlayerInterior(playerid, HouseInfo[house][hInt]);
SetPlayerVirtualWorld(playerid, house+50);
SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity], HouseInfo[house][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
return true;
}



К public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

if(newkeys == 1024)
{
new house = PlayerInfo[playerid][pHouseKey];
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if(PlayerToPoint(5, playerid,2211.5476,-2967.2781,685.1125))
{
SetPlayerInterior(playerid, HouseInfo[house][hInt]);
SetPlayerVirtualWorld(playerid, house+50);
SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity], HouseInfo[house][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
}
if(PlayerToPoint(3, playerid, HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
{
if(GetPlayerVirtualWorld(playerid) == i+50)
{
if(HouseInfo[house][hGarage] == 1)
{
SPD(playerid, 1997, DIALOG_STYLE_LIST, "Выход","Войти в гараж\nВыйти из дома", "Выбрать", "Отмена");
}
if(HouseInfo[house][hGarage] == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
PlayerInfo[playerid][pInt] = 0;
}
}
}
}
}
if(newkeys == KEY_CROUCH)
{
new house = PlayerInfo[playerid][pHouseKey];
if(HouseInfo[house][hGarage] == 1)
{
new tmpcar = GetPlayerVehicleID(playerid);
if(IsAGarage(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetVehicleVirtualWorld(tmpcar,0);
SetVehiclePos(tmpcar,HouseInfo[house][hGarx], HouseInfo[house][hGary], HouseInfo[house][hGarz]);
SetVehicleZAngle(tmpcar, HouseInfo[house][hGarc]);
}
}
if(PlayerToPoint(1.8,playerid,HouseInfo[house][hGarx], HouseInfo[house][hGary], HouseInfo[house][hGarz]))
{
if(IsPlayerInAnyVehicle(playerid))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid,house);
SetVehicleVirtualWorld(tmpcar,house);
SetVehiclePos(tmpcar,2213.0229492,-2960.9060059,685.0310059);
SetVehicleZAngle(tmpcar, 0.0000);
}
}
}
}


К public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

case 140:
{
if(response)
{
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if(PlayerToPoint(2, playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
{
if(PlayerInfo[playerid][pHouseKey] == i || HouseInfo[i][hLock] == 0) return SetPlayerInterior(playerid, HouseInfo[i][hInt]), SetPlayerVirtualWorld(playerid, i+50), SetPlayerPos(playerid, HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]), PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];
else return GameTextForPlayer(playerid, "~r~Closed", 5000, 1);
}
}
}
else return true;
}
case 150:
{
if(response)
{
new sendername[MAX_PLAYER_NAME];
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(PlayerInfo[playerid][pHouseKey] != 999 && strcmp(sendername, HouseInfo[PlayerInfo[playerid][pHouseKey]][hOwner], true) == 0) return SendClientMessage(playerid, COLOR_GREY, "У вас уже есть дом");
if(PlayerInfo[playerid][pCash] > HouseInfo[h][hValue])
{
PlayerInfo[playerid][pHouseKey] = h;
HouseInfo[h][hOwned] = 1;
HouseInfo[h][hHel] = 0;
HouseInfo[h][hTakings] = 1000;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
PlayerInfo[playerid][pCash] -= HouseInfo[h][hValue];
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
SetPlayerVirtualWorld(playerid, h+50);
SendClientMessage(playerid, COLOR_WHITE, "Поздравляем с покупкой!");
SendClientMessage(playerid, 0xFFD800AA, "Помощь по командам /mm [0] Дом");
SaveProperty();
LoadTuning(playerid);
BuyHouse(h);
return true;
}
else return SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег");
}
}
}
else return true;
}



Находим stock SavePlayer(playerid)

ini_setInteger(iniFile,"House",PlayerInfo[playerid][pHouseKey]);


В stock OnPlayerLogin(playerid,password[])

ini_getInteger(iniFile,"House",PlayerInfo[playerid][pHouseKey]);


В конце мода

//=====================================
public CustomPickups()
{
new string[256];
NameTimer();
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!PlayerToPoint(3.0, i, PosPic[0][i], PosPic[1][i], PosPic[2][i])) dPic[i] = false;
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(1.5, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
if(GetPlayerState(i) != PLAYER_STATE_DRIVER)
{
if(dPic[i] == true) continue; else GetPlayerPos(i,PosPic[0][i],PosPic[1][i],PosPic[2][i]),dPic[i] = true;
new ttext[32];
if(HouseInfo[h][hGarage] == 1) ttext = "{00FF00}Присутствует{FFFFFF}";
else if(HouseInfo[h][hGarage] == 0) ttext = "{FF0000}Не присутствует{FFFFFF}";
if(HouseInfo[h][hOwned] == 1)
{
new ttextt[32];
if(IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) ttextt = "{22ff00}[Online]{F2EEF0}";
else if(!IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) ttextt = "{ff001c}[Offline]{F2EEF0}";
switch(HouseInfo[h][hClass])
{
case 0: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tВременное жильё\nКоличество Комнат:\t\t3\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 1: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tЭконом класс\nКоличество Комнат:\t\t4\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 2: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tСредний класс\nКоличество Комнат:\t\t5\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 3: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tБольшой дом\nКоличество Комнат:\t\t7\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 4: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tВип класс\nКоличество Комнат:\t\t6\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 5: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tЛюкс класс\nКоличество Комнат:\t\t8\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
}
ShowPlayerDialog(i, 140, DIALOG_STYLE_MSGBOX, "{FFFF17}Дом занят", string, "Войти", "Отмена");
return true;
}
else
{
switch(HouseInfo[h][hClass])
{
case 0: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tВременное жильё\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t3\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 1: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tЭконом класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t4\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 2: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tСредний класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t5\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 3: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tБольшой дом\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t7\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 4: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tВип класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t6\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 5: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tЛюкс класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t8\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
}
ShowPlayerDialog(i, 150, DIALOG_STYLE_MSGBOX, "{17FF28}Дом свободен", string, "Купить", "Отмена");
return true;
}
}
}
}
}
}
return true;
}
stock GetPlayerID(string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
for(new house = 0; house < sizeof(HouseInfo); house++)
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(i, PlayerName, sizeof(PlayerName));
if(strcmp(PlayerName, string, true, strlen(string)) == 0 && PlayerInfo[i][pHouseKey] == house) return i;
}
}
}
return INVALID_PLAYER_ID;
}
stock BuyHouse(h)
{
if(HouseInfo[h][hOwned] == 0)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1);
}
if(HouseInfo[h][hOwned] == 1)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1);
}
}
stock LoadProperty()
{
new time = GetTickCount();
new arrCoords[24][64];
new strFromFile2[256];
new File: file = fopen("house.cfg", io_read);
if(file)
{
new idx;
while(idx < sizeof(HouseInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
strmid(HouseInfo[idx][hOwner], arrCoords[6], 0, strlen(arrCoords[6]), 255);
HouseInfo[idx][hValue] = strval(arrCoords[7]);
HouseInfo[idx][hHel] = strval(arrCoords[8]);
HouseInfo[idx][hInt] = strval(arrCoords[9]);
HouseInfo[idx][hLock] = strval(arrCoords[10]);
HouseInfo[idx][hOwned] = strval(arrCoords[11]);
HouseInfo[idx][hTakings] = strval(arrCoords[12]);
HouseInfo[idx][hClass] = strval(arrCoords[13]);
HouseInfo[idx][hCarx] = floatstr(arrCoords[14]);
HouseInfo[idx][hCary] = floatstr(arrCoords[15]);
HouseInfo[idx][hCarz] = floatstr(arrCoords[16]);
HouseInfo[idx][hCarc] = floatstr(arrCoords[17]);
HouseInfo[idx][hGarx] = floatstr(arrCoords[18]);
HouseInfo[idx][hGary] = floatstr(arrCoords[19]);
HouseInfo[idx][hGarz] = floatstr(arrCoords[20]);
HouseInfo[idx][hGarc] = floatstr(arrCoords[21]);
HouseInfo[idx][hGarage] = strval(arrCoords[22]);
HouseInfo[idx][hOplata] = strval(arrCoords[23]);
idx ++;
}
fclose(file);
}
printf("[Загрузка домов]: Было загружено - %d потрачено %d (ms)", sizeof(HouseInfo), GetTickCount() - time);
}
stock SaveProperty()
{
new idx;
new File: file2;
while(idx < sizeof(HouseInfo))
{
new coordsstring[128];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d,%f,%f,%f ,%f,%f,%f,%f,%f,%d,%d\n",
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
HouseInfo[idx][hExitx],
HouseInfo[idx][hExity],
HouseInfo[idx][hExitz],
HouseInfo[idx][hOwner],
HouseInfo[idx][hValue],
HouseInfo[idx][hHel],
HouseInfo[idx][hInt],
HouseInfo[idx][hLock],
HouseInfo[idx][hOwned],
HouseInfo[idx][hTakings],
HouseInfo[idx][hClass],
HouseInfo[idx][hCarx],
HouseInfo[idx][hCary],
HouseInfo[idx][hCarz],
HouseInfo[idx][hCarc],
HouseInfo[idx][hGarx],
HouseInfo[idx][hGary],
HouseInfo[idx][hGarz],
HouseInfo[idx][hGarc],
HouseInfo[idx][hGarage],
HouseInfo[idx][hOplata]);
if(idx == 0) file2 = fopen("logs/house.cfg", io_write);
else file2 = fopen("logs/house.cfg", io_append);
fwrite(file2, coordsstring);
idx ++;
fclose(file2);
}
}
stock LoadTuning(playerid)
{
if(PlayerInfo[playerid][pHouseKey] != 999)
{
new house = PlayerInfo[playerid][pHouseKey];
CreatedCar = CarIdHouse[playerid];
if(HouseInfo[house][hGarage] == 0)
{
CarIdHouse[playerid] = CreateVehicle(PlayerInfo[playerid][pCar], HouseInfo[house][hCarx], HouseInfo[house][hCary], HouseInfo[house][hCarz], HouseInfo[house][hCarc], PlayerInfo[playerid][pColor], PlayerInfo[playerid][pColor1], 86400);
}
if(HouseInfo[house][hGarage] == 1)
{
CarIdHouse[playerid] = CreateVehicle(PlayerInfo[playerid][pCar], 2213.0229492,-2960.9060059,685.0310059, 0.0000, PlayerInfo[playerid][pColor], PlayerInfo[playerid][pColor1], 86400);
SetVehicleVirtualWorld(CarIdHouse[playerid],house);
}
CreatedCar ++;
LockCar(CarIdHouse[playerid]);
IsLocked[CarIdHouse[playerid]] = 1;
//Fuell[CarIdHouse[playerid]] = PlayerInfo[playerid][pFuelcar];
EngineState[CarIdHouse[playerid]] = false;
SetVehicleNumberPlate(CarIdHouse[playerid], MakeRandomNumber());
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pWheels]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pNitro]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pHydrawlic]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pAirCollector1]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pAirCollector2]);
if(PJ(CarIdHouse[playerid])) ChangeVehiclePaintjob(CarIdHouse[playerid], PlayerInfo[playerid][pPaintJob]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pSpoiler]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pBumper1]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pBumper2]);
}
}


После в stock CreateObjects()

//================================= Гаражи Дом =============================
CreateObject(3677,2208.1142578,-2964.2187500,678.5499878,0.0000000,0.0000000,179.9 945068); //object(lawnhousegreyls) (1)
CreateObject(19364,2217.6220703,-2957.0249023,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2960.2070312,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2963.3820801,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2966.5759277,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2215.9641113,-2968.2351074,685.8629761,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2212.7609863,-2968.2351074,685.8629761,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2209.5681152,-2968.2351074,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2966.5759277,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2963.3820801,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2960.2070312,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2957.0249023,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(11319,2212.8750000,-2955.4460449,684.6849976,0.0000000,0.0000000,90.00 00000); //object(sprayshpdr2_sfse) (1)
CreateObject(19437,2208.4689941,-2955.4208984,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall077) (1)
CreateObject(19437,2217.2800293,-2955.4208984,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall077) (2)
CreateObject(11393,2218.0654297,-2964.0976562,685.6309814,0.0000000,0.0000000,269.9 945068); //object(hubprops1_sfs) (2)
CreateObject(1535,2210.8579102,-2968.1459961,684.1129761,0.0000000,0.0000000,0.000 0000); //object(gen_doorext14) (1)
CreateObject(2610,2217.1489258,-2960.3889160,684.9379883,0.0000000,0.0000000,270.0 000000); //object(cj_p_fileing2) (1)
CreateObject(1764,2217.0878906,-2960.7839355,684.1129761,0.0000000,0.0000000,270.0 000000); //object(low_couch_2) (1)
CreateObject(2843,2216.6101074,-2962.1350098,684.5380249,0.0000000,0.0000000,0.000 0000); //object(gb_bedclothes02) (1)
CreateObject(2689,2217.4609375,-2964.1950684,686.2639771,0.0000000,0.0000000,270.0 000000); //object(cj_hoodie_2) (1)
CreateObject(4141,2197.0371094,-2962.4279785,708.3629761,270.0000000,0.0000000,0.0 000000); //object(hotelexterior1_lan) (1)
CreateObject(11392,2210.1999512,-2960.3540039,684.1309814,0.0000000,0.0000000,0.000 0000); //object(hubfloorstains_sfse) (2)



В конце

stock IsAGarage(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,2213.02294 92,-2960.9060059,685.0310059))return true; // Дома Гараж № 1
return false;
}



Ну вот и всё )
Проблемы будут пишите !
Скачать : http://rghost.ru/56289064 | файл с домами


Изображение

— Парень в крутом костюме. Кто ты без него?
— Э, гений, миллиардер, плейбой, филантроп.

© Мстители

Хочу стать легендой , пока есть время © Merlin

Изображение

Изображение


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 05 июл 2014, 16:13 
Модераторы lvl1.
«I'am WorkOut» ♫
«АВТОР ТЕМЫ»
Сообщений: «1195»
Откуда: Алтайский край
Cпасибо сказано: 75 раз(а)
Спасибо получено: 186 раз(а)
Медали: 5
-
+
Репутация: 1721
:diavol:


Изображение

— Парень в крутом костюме. Кто ты без него?
— Э, гений, миллиардер, плейбой, филантроп.

© Мстители

Хочу стать легендой , пока есть время © Merlin

Изображение

Изображение


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 11 июл 2014, 07:03 
Аватара пользователя
пользователь
Купил Bullet
Сообщений: «142»
Cпасибо сказано: 9 раз(а)
Спасибо получено: 11 раз(а)
Медали: 2
-
+
Репутация: 88
Nice!


Услуги,
Главный Супер модератор : Info-Pawn.Ru


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 11 июл 2014, 08:07 
Модераторы lvl1.
«I'am WorkOut» ♫
«АВТОР ТЕМЫ»
Сообщений: «1195»
Откуда: Алтайский край
Cпасибо сказано: 75 раз(а)
Спасибо получено: 186 раз(а)
Медали: 5
-
+
Репутация: 1721
:kenti:


Изображение

— Парень в крутом костюме. Кто ты без него?
— Э, гений, миллиардер, плейбой, филантроп.

© Мстители

Хочу стать легендой , пока есть время © Merlin

Изображение

Изображение


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 16 июл 2014, 12:51 
Аватара пользователя
пользователь
Какой? :D
Сообщений: «11»
Cпасибо сказано: 0 раз(а)
Спасибо получено: 1 раз(а)
-
+
Репутация: 0
Angel 03 писал(а):
Мод: Relative СITE | |
Автор: Merlin
[youtube]http://www.youtube.com/watch?v=n7C8_4E3LVw[/youtube]

К #include

#include <morphinc>


в forward

forward CustomPickups();
forward LockCar(carid);



К new

new Float:PosPic[3][MAX_PLAYERS];
new bool:dPic[MAX_PLAYERS];
new CreatedCar;
new IsLocked[MAX_VEHICLES];
new gCarLock[MAX_VEHICLES];
new bool:EngineState[MAX_PLAYERS];
new CarIdHouse[MAX_PLAYERS];


После в
enum pInfo

pHouseKey,



Рядом

enum hInfo
{
Float:hEntrancex,
Float:hEntrancey,
Float:hEntrancez,
Float:hExitx,
Float:hExity,
Float:hExitz,
Float:hCarx,
Float:hCary,
Float:hCarz,
Float:hCarc,
Float:hGarx,
Float:hGary,
Float:hGarz,
Float:hGarc,
hOwner[MAX_PLAYER_NAME],
hValue,
hHel,
hInt,
hLock,
hOwned,
hTakings,
hClass,
hPickup,
hMIcon,
hGarage,
hOplata
};
new HouseInfo[801][hInfo];


В public OnGameModeInit()

LoadProperty();
SetTimer("CustomPickups", 1, true);
//================================================== ========================
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned] == 0)
{
HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], -1);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1);
}
if(HouseInfo[h][hOwned] == 1)
{
HouseInfo[h][hPickup] = CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], -1);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1);
}
}
//================================================== ========================



В
public OnPlayerConnect(playerid)

PlayerInfo[playerid][pHouseKey] = 999;


Далее в stock SetPlayerSpawn(playerid)

new house = PlayerInfo[playerid][pHouseKey];
SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]);//plevel
SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);//skib
if(house != 999)
{
SetPlayerInterior(playerid, HouseInfo[house][hInt]);
SetPlayerVirtualWorld(playerid, house+50);
SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity], HouseInfo[house][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
return true;
}



К public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

if(newkeys == 1024)
{
new house = PlayerInfo[playerid][pHouseKey];
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if(PlayerToPoint(5, playerid,2211.5476,-2967.2781,685.1125))
{
SetPlayerInterior(playerid, HouseInfo[house][hInt]);
SetPlayerVirtualWorld(playerid, house+50);
SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity], HouseInfo[house][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
}
if(PlayerToPoint(3, playerid, HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
{
if(GetPlayerVirtualWorld(playerid) == i+50)
{
if(HouseInfo[house][hGarage] == 1)
{
SPD(playerid, 1997, DIALOG_STYLE_LIST, "Выход","Войти в гараж\nВыйти из дома", "Выбрать", "Отмена");
}
if(HouseInfo[house][hGarage] == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]);
PlayerInfo[playerid][pInt] = 0;
}
}
}
}
}
if(newkeys == KEY_CROUCH)
{
new house = PlayerInfo[playerid][pHouseKey];
if(HouseInfo[house][hGarage] == 1)
{
new tmpcar = GetPlayerVehicleID(playerid);
if(IsAGarage(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetVehicleVirtualWorld(tmpcar,0);
SetVehiclePos(tmpcar,HouseInfo[house][hGarx], HouseInfo[house][hGary], HouseInfo[house][hGarz]);
SetVehicleZAngle(tmpcar, HouseInfo[house][hGarc]);
}
}
if(PlayerToPoint(1.8,playerid,HouseInfo[house][hGarx], HouseInfo[house][hGary], HouseInfo[house][hGarz]))
{
if(IsPlayerInAnyVehicle(playerid))
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid,house);
SetVehicleVirtualWorld(tmpcar,house);
SetVehiclePos(tmpcar,2213.0229492,-2960.9060059,685.0310059);
SetVehicleZAngle(tmpcar, 0.0000);
}
}
}
}


К public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

case 140:
{
if(response)
{
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if(PlayerToPoint(2, playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
{
if(PlayerInfo[playerid][pHouseKey] == i || HouseInfo[i][hLock] == 0) return SetPlayerInterior(playerid, HouseInfo[i][hInt]), SetPlayerVirtualWorld(playerid, i+50), SetPlayerPos(playerid, HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]), PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];
else return GameTextForPlayer(playerid, "~r~Closed", 5000, 1);
}
}
}
else return true;
}
case 150:
{
if(response)
{
new sendername[MAX_PLAYER_NAME];
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(PlayerInfo[playerid][pHouseKey] != 999 && strcmp(sendername, HouseInfo[PlayerInfo[playerid][pHouseKey]][hOwner], true) == 0) return SendClientMessage(playerid, COLOR_GREY, "У вас уже есть дом");
if(PlayerInfo[playerid][pCash] > HouseInfo[h][hValue])
{
PlayerInfo[playerid][pHouseKey] = h;
HouseInfo[h][hOwned] = 1;
HouseInfo[h][hHel] = 0;
HouseInfo[h][hTakings] = 1000;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
PlayerInfo[playerid][pCash] -= HouseInfo[h][hValue];
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
SetPlayerVirtualWorld(playerid, h+50);
SendClientMessage(playerid, COLOR_WHITE, "Поздравляем с покупкой!");
SendClientMessage(playerid, 0xFFD800AA, "Помощь по командам /mm [0] Дом");
SaveProperty();
LoadTuning(playerid);
BuyHouse(h);
return true;
}
else return SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег");
}
}
}
else return true;
}



Находим stock SavePlayer(playerid)

ini_setInteger(iniFile,"House",PlayerInfo[playerid][pHouseKey]);


В stock OnPlayerLogin(playerid,password[])

ini_getInteger(iniFile,"House",PlayerInfo[playerid][pHouseKey]);


В конце мода

//=====================================
public CustomPickups()
{
new string[256];
NameTimer();
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!PlayerToPoint(3.0, i, PosPic[0][i], PosPic[1][i], PosPic[2][i])) dPic[i] = false;
for(new h = 0; h < sizeof(HouseInfo); h++)
{
if(PlayerToPoint(1.5, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
{
if(GetPlayerState(i) != PLAYER_STATE_DRIVER)
{
if(dPic[i] == true) continue; else GetPlayerPos(i,PosPic[0][i],PosPic[1][i],PosPic[2][i]),dPic[i] = true;
new ttext[32];
if(HouseInfo[h][hGarage] == 1) ttext = "{00FF00}Присутствует{FFFFFF}";
else if(HouseInfo[h][hGarage] == 0) ttext = "{FF0000}Не присутствует{FFFFFF}";
if(HouseInfo[h][hOwned] == 1)
{
new ttextt[32];
if(IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) ttextt = "{22ff00}[Online]{F2EEF0}";
else if(!IsPlayerConnected(GetPlayerID(HouseInfo[h][hOwner]))) ttextt = "{ff001c}[Offline]{F2EEF0}";
switch(HouseInfo[h][hClass])
{
case 0: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tВременное жильё\nКоличество Комнат:\t\t3\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 1: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tЭконом класс\nКоличество Комнат:\t\t4\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 2: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tСредний класс\nКоличество Комнат:\t\t5\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 3: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tБольшой дом\nКоличество Комнат:\t\t7\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 4: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tВип класс\nКоличество Комнат:\t\t6\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 5: format(string, sizeof(string), "{FFFFFF}Владелец:\t\t\t{27D0E3}%s %s{FFFFFF}\n\nТип:\t\t\t\tЛюкс класс\nКоличество Комнат:\t\t8\nНомер дома:\t\t\t%d\nСтоймость:\t\t\t%d\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт",HouseInfo[h][hOwner],ttextt,h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
}
ShowPlayerDialog(i, 140, DIALOG_STYLE_MSGBOX, "{FFFF17}Дом занят", string, "Войти", "Отмена");
return true;
}
else
{
switch(HouseInfo[h][hClass])
{
case 0: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tВременное жильё\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t3\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 1: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tЭконом класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t4\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 2: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tСредний класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t5\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 3: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tБольшой дом\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t7\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 4: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tВип класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t6\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
case 5: format(string, sizeof(string), "{FFFFFF}Тип:\t\t\t\tЛюкс класс\nНомер дома:\t\t\t%d\n\nСтоймость:\t\t\t%d\nКоличество Комнат:\t\t8\n{FFFFFF}Гараж в доме:\t\t\t%s\nЕжедневная плата:\t\t%d Вирт", h,HouseInfo[h][hValue],ttext,HouseInfo[h][hOplata]);
}
ShowPlayerDialog(i, 150, DIALOG_STYLE_MSGBOX, "{17FF28}Дом свободен", string, "Купить", "Отмена");
return true;
}
}
}
}
}
}
return true;
}
stock GetPlayerID(string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
for(new house = 0; house < sizeof(HouseInfo); house++)
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(i, PlayerName, sizeof(PlayerName));
if(strcmp(PlayerName, string, true, strlen(string)) == 0 && PlayerInfo[i][pHouseKey] == house) return i;
}
}
}
return INVALID_PLAYER_ID;
}
stock BuyHouse(h)
{
if(HouseInfo[h][hOwned] == 0)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1);
}
if(HouseInfo[h][hOwned] == 1)
{
DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
DestroyPickup(HouseInfo[h][hPickup]);
CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1);
}
}
stock LoadProperty()
{
new time = GetTickCount();
new arrCoords[24][64];
new strFromFile2[256];
new File: file = fopen("house.cfg", io_read);
if(file)
{
new idx;
while(idx < sizeof(HouseInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
strmid(HouseInfo[idx][hOwner], arrCoords[6], 0, strlen(arrCoords[6]), 255);
HouseInfo[idx][hValue] = strval(arrCoords[7]);
HouseInfo[idx][hHel] = strval(arrCoords[8]);
HouseInfo[idx][hInt] = strval(arrCoords[9]);
HouseInfo[idx][hLock] = strval(arrCoords[10]);
HouseInfo[idx][hOwned] = strval(arrCoords[11]);
HouseInfo[idx][hTakings] = strval(arrCoords[12]);
HouseInfo[idx][hClass] = strval(arrCoords[13]);
HouseInfo[idx][hCarx] = floatstr(arrCoords[14]);
HouseInfo[idx][hCary] = floatstr(arrCoords[15]);
HouseInfo[idx][hCarz] = floatstr(arrCoords[16]);
HouseInfo[idx][hCarc] = floatstr(arrCoords[17]);
HouseInfo[idx][hGarx] = floatstr(arrCoords[18]);
HouseInfo[idx][hGary] = floatstr(arrCoords[19]);
HouseInfo[idx][hGarz] = floatstr(arrCoords[20]);
HouseInfo[idx][hGarc] = floatstr(arrCoords[21]);
HouseInfo[idx][hGarage] = strval(arrCoords[22]);
HouseInfo[idx][hOplata] = strval(arrCoords[23]);
idx ++;
}
fclose(file);
}
printf("[Загрузка домов]: Было загружено - %d потрачено %d (ms)", sizeof(HouseInfo), GetTickCount() - time);
}
stock SaveProperty()
{
new idx;
new File: file2;
while(idx < sizeof(HouseInfo))
{
new coordsstring[128];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d,%f,%f,%f ,%f,%f,%f,%f,%f,%d,%d\n",
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
HouseInfo[idx][hExitx],
HouseInfo[idx][hExity],
HouseInfo[idx][hExitz],
HouseInfo[idx][hOwner],
HouseInfo[idx][hValue],
HouseInfo[idx][hHel],
HouseInfo[idx][hInt],
HouseInfo[idx][hLock],
HouseInfo[idx][hOwned],
HouseInfo[idx][hTakings],
HouseInfo[idx][hClass],
HouseInfo[idx][hCarx],
HouseInfo[idx][hCary],
HouseInfo[idx][hCarz],
HouseInfo[idx][hCarc],
HouseInfo[idx][hGarx],
HouseInfo[idx][hGary],
HouseInfo[idx][hGarz],
HouseInfo[idx][hGarc],
HouseInfo[idx][hGarage],
HouseInfo[idx][hOplata]);
if(idx == 0) file2 = fopen("logs/house.cfg", io_write);
else file2 = fopen("logs/house.cfg", io_append);
fwrite(file2, coordsstring);
idx ++;
fclose(file2);
}
}
stock LoadTuning(playerid)
{
if(PlayerInfo[playerid][pHouseKey] != 999)
{
new house = PlayerInfo[playerid][pHouseKey];
CreatedCar = CarIdHouse[playerid];
if(HouseInfo[house][hGarage] == 0)
{
CarIdHouse[playerid] = CreateVehicle(PlayerInfo[playerid][pCar], HouseInfo[house][hCarx], HouseInfo[house][hCary], HouseInfo[house][hCarz], HouseInfo[house][hCarc], PlayerInfo[playerid][pColor], PlayerInfo[playerid][pColor1], 86400);
}
if(HouseInfo[house][hGarage] == 1)
{
CarIdHouse[playerid] = CreateVehicle(PlayerInfo[playerid][pCar], 2213.0229492,-2960.9060059,685.0310059, 0.0000, PlayerInfo[playerid][pColor], PlayerInfo[playerid][pColor1], 86400);
SetVehicleVirtualWorld(CarIdHouse[playerid],house);
}
CreatedCar ++;
LockCar(CarIdHouse[playerid]);
IsLocked[CarIdHouse[playerid]] = 1;
//Fuell[CarIdHouse[playerid]] = PlayerInfo[playerid][pFuelcar];
EngineState[CarIdHouse[playerid]] = false;
SetVehicleNumberPlate(CarIdHouse[playerid], MakeRandomNumber());
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pWheels]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pNitro]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pHydrawlic]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pAirCollector1]);
AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pAirCollector2]);
if(PJ(CarIdHouse[playerid])) ChangeVehiclePaintjob(CarIdHouse[playerid], PlayerInfo[playerid][pPaintJob]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pSpoiler]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pBumper1]), AddVehicleComponent(CarIdHouse[playerid], PlayerInfo[playerid][pBumper2]);
}
}


После в stock CreateObjects()

//================================= Гаражи Дом =============================
CreateObject(3677,2208.1142578,-2964.2187500,678.5499878,0.0000000,0.0000000,179.9 945068); //object(lawnhousegreyls) (1)
CreateObject(19364,2217.6220703,-2957.0249023,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2960.2070312,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2963.3820801,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2217.6220703,-2966.5759277,685.8629761,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2215.9641113,-2968.2351074,685.8629761,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2212.7609863,-2968.2351074,685.8629761,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2209.5681152,-2968.2351074,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2966.5759277,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2963.3820801,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2960.2070312,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(19364,2208.0480957,-2957.0249023,685.8560181,0.0000000,0.0000000,0.000 0000); //object(wall012) (17)
CreateObject(11319,2212.8750000,-2955.4460449,684.6849976,0.0000000,0.0000000,90.00 00000); //object(sprayshpdr2_sfse) (1)
CreateObject(19437,2208.4689941,-2955.4208984,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall077) (1)
CreateObject(19437,2217.2800293,-2955.4208984,685.8560181,0.0000000,0.0000000,90.00 00000); //object(wall077) (2)
CreateObject(11393,2218.0654297,-2964.0976562,685.6309814,0.0000000,0.0000000,269.9 945068); //object(hubprops1_sfs) (2)
CreateObject(1535,2210.8579102,-2968.1459961,684.1129761,0.0000000,0.0000000,0.000 0000); //object(gen_doorext14) (1)
CreateObject(2610,2217.1489258,-2960.3889160,684.9379883,0.0000000,0.0000000,270.0 000000); //object(cj_p_fileing2) (1)
CreateObject(1764,2217.0878906,-2960.7839355,684.1129761,0.0000000,0.0000000,270.0 000000); //object(low_couch_2) (1)
CreateObject(2843,2216.6101074,-2962.1350098,684.5380249,0.0000000,0.0000000,0.000 0000); //object(gb_bedclothes02) (1)
CreateObject(2689,2217.4609375,-2964.1950684,686.2639771,0.0000000,0.0000000,270.0 000000); //object(cj_hoodie_2) (1)
CreateObject(4141,2197.0371094,-2962.4279785,708.3629761,270.0000000,0.0000000,0.0 000000); //object(hotelexterior1_lan) (1)
CreateObject(11392,2210.1999512,-2960.3540039,684.1309814,0.0000000,0.0000000,0.000 0000); //object(hubfloorstains_sfse) (2)



В конце

stock IsAGarage(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,2213.02294 92,-2960.9060059,685.0310059))return true; // Дома Гараж № 1
return false;
}



Ну вот и всё )
Проблемы будут пишите !
Скачать : http://rghost.ru/56289064 | файл с домами


А можно както добавить ко всем гаражам (Ко всем!) открывающиеся ворота? если да скажите пожалуйста как :)))


 Профиль  
Cпасибо сказано 
  За это сообщение пользователю dinya "Спасибо" сказали: -WorcOut-
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 16 июл 2014, 13:19 
Аватара пользователя
пользователь
Ищу скриптера :З
Сообщений: «203»
Cпасибо сказано: 12 раз(а)
Спасибо получено: 22 раз(а)
Медали: 3
-
+
Репутация: 119
Цитата:
А можно както добавить ко всем гаражам (Ко всем!) открывающиеся ворота? если да скажите пожалуйста как :)))

Удалить стандартные ворота, добавить открывающиеся ворота.


[center]Изображение


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 23 сен 2014, 15:15 
Аватара пользователя
пользователь
Сообщений: «30»
Cпасибо сказано: 3 раз(а)
Спасибо получено: 4 раз(а)
-
+
Репутация: 614
:happybirthday:


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 25 окт 2014, 09:59 
Модераторы lvl1.
«I'am WorkOut» ♫
«АВТОР ТЕМЫ»
Сообщений: «1195»
Откуда: Алтайский край
Cпасибо сказано: 75 раз(а)
Спасибо получено: 186 раз(а)
Медали: 5
-
+
Репутация: 1721
:buxoi:


Изображение

— Парень в крутом костюме. Кто ты без него?
— Э, гений, миллиардер, плейбой, филантроп.

© Мстители

Хочу стать легендой , пока есть время © Merlin

Изображение

Изображение


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 30 ноя 2014, 16:45 
Аватара пользователя
пользователь
vk.com/luigifergus
Сообщений: «93»
Cпасибо сказано: 0 раз(а)
Спасибо получено: 0 раз(а)
Медали: 1
-
+
Репутация: 122
Кто поможет Добавить в Мод?


 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: [Мануал] Система Домов + Гараж для [new.pwn]
СообщениеДобавлено: 01 дек 2014, 09:41 
Аватара пользователя
пользователь
Ищу скриптера :З
Сообщений: «203»
Cпасибо сказано: 12 раз(а)
Спасибо получено: 22 раз(а)
Медали: 3
-
+
Репутация: 119
Luigi_Fergus писал(а):
Кто поможет Добавить в Мод?

А сам ?)


[center]Изображение


 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

В обязанности Администрации не входит контроль легальности или нелегальности передаваемой информации (любой, включая, но не ограничиваясь, информацией передаваемой между пользователями, внутренней пересылки информации в виде различных ссылок, текстов или архивов), определение прав собственности или законности передачи, приема или использования этой информации.
Администрация не несёт никакой ответственности за пользователей и модер состав форума!
cron

Copyright Info-Pawn © 2014-2018. Все права защищены.