Как сделать базу в мта dayz

Обновлено: 13.05.2024

Установка модификации DayZ на сервер MTA достаточно простая. Для начала нужно скачать сам мода.

Установка файлов

Папка installation содержит файл internal.db, его необходимо поместить с заменой в директорию

Настройка ACL

Для работы мода (сохранение машин, пользовательских данных), ему необходимо выдать права администратора.

1. Откройте файл acl.xml.
2. Найдите группу Admin и вставьте туда следующее:

3. Если вы являетесь владельцем сервера, вам также нужно добавить себя в группу администраторов.

Установка ресурсов

Папка resources содержит все необходимые файлы для игры в MTA:DayZ.
Скопируйте папку [DayZ-MTA] копируем к остальным ресурсам сервера


Настройка конфигурации

Для запуска мода, вам нужно отредактировать файл конфигурации mtaserver.conf. Согласно лицензионному соглашению разработчика, имя сервера должно отвечать следующему шаблону:

Если название сервера не будет соответствовать данному шаблону, мод просто не запустится.</div>

Так же вам необходимо добавить 3 дополнительных ресурса в файл конфигурации mtaserver.conf

И удалить или отключить следующие ресурсы:

Если не удалить эти ресурсы из автозагрузки - мод DayZ будет работать нормально.

Общая информация
1. Не создавайте машины через панель администратора, это может повредить базу данных и все сохраненные данные будут потеряны.
2. Предметы респавнятся каждые 4 часа, что может приводить к лагам на сервере (time-out, выбросы игроков, временное отключение сервера).

Как сделать базу в мта dayz

Находиться в районе карьера, высоко в воздухе

Базовый ресурс для MTA Resource Cash Box

Базовый ресурс для MTA Resource Cash Box

Базовый ресурс для настройки кассы.

Находиться на побережье со стороны стадиона. У шоссе, которое ведет в ЛВ, есть развилка и дорога к базе

База в стандартном здании. Локация : Автосалон СФ. Замена на ID : 10949

Базы за игровую валюту

Базы за игровую валюту

Админская часть забиндена на F9 Ресурс позволяющий администраторам создавать базы за игровую валюту. Есть 2 типа валюты, это предмет в инвентаре (для dayz) либо стандартные деньги GTA. (Как настро.

Стандартное здание GTA:SA с открытым входом и небольшим помещением. Отлично подойдёт для режимов DayZ.

База в ЛВ от SeFaWi

База в ЛВ от SeFaWi

Находиться в LV (на въезде у моста).

Полицейская база в ЛС

Полицейская база в ЛС

Находиться на пирсе, в Лос Сантосе.

База для Администраторов

База для Администраторов

Имеет свой интерьер, находиться в LS возле "звездной дорожки".

Карта добавляет военную базу возле каньона.

[DayZ] База с Защитой от Steve

[DayZ] База с Защитой от Steve

Отличная база с защитой, новые стены (колиззия изменена), защита работает на группу игрока, изменить под свою можно, заправка собственная(можно не включать), текстуры тоже есть в архиве. Крыша откр.

Карта добавляет базу окруженную забором в пустыне (Кладбище самолетов).

[DayZ] Военная база

[DayZ] Военная база

Военная база для MTA DayZ

Бункер в небоскребе СФ

Бункер в небоскребе СФ

Данная карта добавляет бункер в небоскреб Сан Фиерро. Внутри есть:ворота,лифт,лестница,ванную и койки.

Представляю вашему вниманию весьма внушительный мапинг зоны 51 для сервера MTA. - Новое эксклюзивное ограждение (забор), по которому можно будет ходить.Взобраться можно по лестнице (их 15 штук) .

Базовая сборка MTA:DayZ

Базовая сборка MTA:DayZ

Моя сборка MTA DayZ. Го*ницо редкостное, но, на халяву :D Установлена новая логинка по серии. Исправлено большинство багов и т д. Кое что заменено, в общем качайте сами всё увидите.

|DayZ| Военная база ЛВ

|DayZ| Военная база ЛВ

Небольшая военная база в ЛВ. Не судите строго, это моя первая работа.

Глобальная карта и бункер

Глобальная карта и бункер

Глобальный маппинг по всей карте, подземный бункер.

Для работы бункера нужен пак стен из SAMP v2. Местонахождение в доках ЛС, гетто район.

Как сделать базу в мта dayz

Инструкция по эксплуатации баз ver2.0 на примере BUNKERBASE.

Lion Golden

И вот спустя кучу времени руки дошли до этого гайда.

Lion Golden

Для получения базы нужно сообщить свой серийный номер и место куда ее ставить. serial - серийник, GP - текущее местоположение. Установка базы занимает рекордные 5 мин. В данной базе исправлены все недостатки предыдущих версий. Текстурщики ни за что не смогут угнать или навредить вашим ТС, не занимает пространство и никак не мешает игрокам.

Lion Golden

Чтобы войти в базу не нужно никаких команд, можно всего лишь подойти к лифту и нажать Е. В базе есть защита которая распознает игроков по серийному номеру и пропускает только тех кто прописан. Владелец базы прописывается перманентно.

Lion Golden

Спустившись в лифте вы попадаете в центральное помещение из которого можно попасть в гараж либо жилые помещения.

Lion Golden

В базе много дверей открыть которые можно через консоль справа от них опять же нажатием Е, они помогут сдержать рейдеров какое то время, на взлом каждой двери рейдерам потребуется 4 - 16 мин.

Lion Golden

Лимит базы 6 малогабаритных ТС, база сама контролирует его и не даст вам поставить в базу ТС больше предусмотренного числа и габаритов. В случае если вы находитесь в ТС гаражная дверь открывается сама при подъезде к ней. Все ТС в базе получают, ремонт и ГМ.

Lion Golden

Одна из самых главных комнат в базе - генераторная. Вся база работает на электричестве (защита, двери, лифт, компьютер. ), пока генератор работает все будет хорошо. Генератору требуется двигатель, аккумулятор и топливо. При спавне базы все в наличии и бак полностью заправлен, полного бака хватает на 5-7 реальных дней. Раз в час есть шанс 1/1000 что в генераторе что то сломается.

Lion Golden

В базе есть лутовая, ее вместимость практически не ограничена и здесь вы сможете хранить весь свой лут. Когда вы добавляете что то или забираете оно появляется/пропадает с полок придавая реалистичности. При спавне выдается немного стартового лута которого хватит для небольшой перестрелки.

Lion Golden

Бар, здесь вы можете включить музыку на всю базу, потанцевать и устроить дебош с сокланами. Если вы покупали базу можете заказать пару треков и они появятся в списке.

Lion Golden

Для этой комнаты было слишком много идей из которых сложно выбрать лучшую и поэтому здесь почти ничего нет. Оставил ее на фантазию владельца.

Lion Golden

Спальня, можно поспать на кровати и сохраниться. В случае если с прошлой смерти прошло более 60 мин, вы пороснетесь здесь в базе.

Lion Golden

Комната с золотым унитазом. Во время зомби апокалипсиса можно себе и такое позволить.

Lion Golden

Мини тюрьма. Планировалось что можно будет похищать игроков, но пока туда попадают только те кто не любит играть честно, лезет искать баги или по решению админа.

Lion Golden

Комната совещаний, переговоров, планирования и дебоша.

Lion Golden

Тоже одна из самых главных комнат специально помещенная в дальний от входа конец базы. Здесь находится компьютер который управляет базой. Пользоваться им может только владелец, ну или могут взломать бомж-рейдеры, если владелец не уследил за топливом и в базе все отключилось. Сколько же планов и разработок было с этим ПК. но в этой версии баз он управляет только вписанными в базу игроками. Те с помощью него можно прописать друга если он онлайн или удалить кого то кто уже прописан. Владелец базы в этом списке не отображается и выписать его даже после рейда не возможно. Многие специально сдавали базы рейдервам, те поселялись, пригоняли топ-тс и лут, а потом приходил владелец и выписывал их. Вообще такая система рейда баз была принята чтобы базы не простаивали призраками как это было с их прошлой версией + бонус игрокам которые не любят донатить, но своя база все равно лучше - никто не выпишет :)

Как сделать базу в мта dayz

MTA DayZ Дополнения

if newbieShow == false then return end

local x,y,z = getElementPosition(newbiePosition)

local x,y = getScreenFromWorldPosition (x,y,z)

local length = dxGetTextWidth(newbieText,1,"default-bold")

dxDrawingColorText(newbieHead,x-length/2-screenWidth*0.01,y, x+length/2+screenWidth*0.01, y+screenHeight*0.03, tocolor(22,255,22,120),0.5, 1.1, "default-bold", "center", "center")

dxDrawingColorText(newbieText,x-length/2-screenWidth*0.01,y+screenHeight*0.03, x+length/2+screenWidth*0.01, y+screenHeight*0.07, tocolor(22,255,22,120),0.5, 1, "default-bold", "center", "center")

И меняем на это:

if newbieShow == false then return end

local x,y,z = getElementPosition(newbiePosition)

local x,y = getScreenFromWorldPosition (x,y,z)

local length = dxGetTextWidth(newbieText,1,"default-bold")

dxDrawImage ( x-length/3-screenWidth*0.02,y, screenWidth*0.07, screenHeight*0.1, "images/items.jpg",0,0,0,tocolor(255,255,255))

Открываем meta.xml и прописываем:

Саму картинку кидайте в папку images

MTA DayZ Дополнения

И вставляем в самый вниз вот это:

function autoInjectMorphine(thePlayer)
if getElementData(thePlayer,"logedin") then
if getElementData(thePlayer,"brokenbone") then
setElementData(thePlayer,"brokenbone",false)
setElementData(thePlayer, "Morphine Auto-Injector", getElementData(thePlayer, "Morphine Auto-Injector") - 1)
end
end
end
addEventHandler("onPlayerDamage",getRootElement(),autoInjectMorphine)

Теперь осталось отредактировать скрипт и настроить его под свой мод.
Ищем строку:

За место Morphine Auto-Injector пишем свое название Морфина ( зависит от названия в вашем моде )
Должно получиться так:

setElementData(thePlayer, "Морфин", getElementData(thePlayer, "Морфин") - 1)

Вы так же можете изменить скрипт на любую другую вещь, а на какую это уже решать вам)

MTA DayZ Дополнения

Открываем SurvivorSystem.lua
Ищем:
setPedAnimation (player,"WUZI","CS_Dead_Guy",-1,true,false,false,true)

И заменяем на:
setPedAnimation (player,"WUZI","CS_Dead_Guy",-1,false,false,false,true)

MTA DayZ Дополнения

Приступим:
Создаём файл anim.lua,и вставляем туда это:
function funcBindLie(player, key, keyState)
if lying then
setPedAnimation(player, false)
lying = false
else
if isPedInVehicle(player) then
return
end
setPedAnimation(player, "ped", "cower", nil, true, false, false, true)
lying = true
function setVisibility()
value = 0
end
end
end
function funcBindLie(player, key, keyState)
if lying then
setPedAnimation(player, false)
lying = false
else
if isPedInVehicle(player) then
return
end
setPedAnimation(player, "ped", "fucku", nil, true, false, false, true)
lying = true
function setVisibility()
value = 0
end
end
end
function funcBindLie(player, key, keyState)
if lying then
setPedAnimation(player, false)
lying = false
else
if isPedInVehicle(player) then
return
end
setPedAnimation(player, "ped", "endchat_03", nil, true, false, false, true)
lying = true
function setVisibility()
value = 0
end
end
end
function bindTheKeys()
bindKey(source, "[", "down", funcBindLie)
end

addEventHandler("onPlayerLogin", getRootElement(), bindTheKeys)

Кидаем файл в mods/deathmatch/resources/[DayZ-MTA]/DayZ. Открываем meta.xml и пишем в самом низу там:
<script src="anim.lua" type="server" cache="false"/>

MTA DayZ Дополнения

row2,column2 = guiGridListGetSelectedItem ( gridlistItems["inventory"] )

row2,column2 = guiGridListGetSelectedItem ( gridlistItems["loot"] )

--guiGridListSetSelectedItem ( gridlistItems["loot"], row2,column2)

И открываем код убирая —

guiGridListSetSelectedItem ( gridlistItems["loot"], row2,column2)

MTA DayZ Дополнения

Заменяем на
statsLabel["blood"] = guiCreateLabel(0, 0.45, 1, 0.15, "Blood: 12000", true, statsWindows)

Теперь ищем
refreshDebugMonitor

Это заменяем
guiSetText(statsLabel.blood, "Blood: " .. value)

На
guiSetText(statsLabel.blood, "Blood: " .. value .. " [" .. math.round((value/100)/(12000/100/100), 2) .. "%]")

MTA DayZ Дополнения

MTA DayZ Дополнения

601 - это ID транспорта
4 - количество колёс (Tire)
1 - двигатель (0 не имеет) (Engine)
1 - топливный бак (TankParts)

Поиск (CTRL+F) вводим "vehicleFuelTable =

601 - это ID транспорта
150 - объём топливного бака

Открываем файл "Pickups.lua"

Поиск "CTRL+F" вводим "vehicleFuelTable =

601 - это ID транспорта
150 - объём топливного бака
ДОЛЖНО СОВПАДАТЬ С КОЛИЧЕСТВО УКАЗАННОМ В "inventory.lua"

Открываем файл "vehicle_spawns.lua"

В самом начале , добавляем :

Поиск "CTRL+F" вводим "vehicleAddonsInfo =

Поиск "CTRL+F" вводим "function spawnDayZVehicles()"

for i, veh in ipairs(pheonixSpawns) do
local x, y, z = veh[1], veh[2], veh[3]
veh = createVehicle(601, x, y, z)
vehCol = createColSphere(x, y, z, 1.5)
attachElements(vehCol, veh, 0, 0, 0)
setElementData(vehCol, "parent", veh)
setElementData(veh, "parent", vehCol)
setElementData(vehCol, "vehicle", true)
setElementData(vehCol, "MAX_Slots", 12)
local tires, engine, parts = getVehicleAddonInfos(getElementModel(veh))
setElementData(vehCol, "Tire_inVehicle", math.random(0, tires))
setElementData(vehCol, "Engine_inVehicle", math.random(0, engine))
setElementData(vehCol, "Parts_inVehicle", math.random(0, parts))
setElementData(vehCol, "spawn", <
471,
x,
y,
z
>)
setElementData(vehCol, "fuel", 10)
end

Строка
setElementData(vehCol, "MAX_Slots", 12) - количество слотов в машине

Поиск "CTRL+F" вводим "vehicleAddonsInfo =

Поиск "CTRL+F" вводим "vehicleFuelInfo =

601 - ID Транспорта
0.25 - Расход топлива за 1 км .

Поиск "CTRL+F" вводим "vehicle spawnpoint"

Добавляем координаты места , где будет спавниться транспорт :

MTA DayZ Дополнения

function setVehicleWheelsIn ( veh )
if isElement ( veh ) then
local parent = getElementData ( veh, "parent" )
if isElement ( parent ) then
local wheels = getElementData ( parent, "Колесо_inVehicle" ) or 0
local tires = getVehicleAddonInfos ( getElementModel ( veh ) ) or 0
if tires > 3 then
setElementFrozen ( veh, true )
if wheels == 0 then
setTimer ( function (car) setVehicleWheelStates ( car, 2, 2, 2, 2) end, 5000, 1, veh )
elseif wheels == 1 then
setTimer ( function (car) setVehicleWheelStates ( car, 0, 2, 2, 2) end, 5000, 1, veh )
elseif wheels == 2 then
setTimer ( function (car) setVehicleWheelStates ( car, 0, 0, 2, 2) end, 5000, 1, veh )
elseif wheels == 3 then
setTimer ( function (car) setVehicleWheelStates ( car, 0, 0, 0, 2) end, 5000, 1, veh )
else
setTimer ( function (car) setVehicleWheelStates ( car, 0,0,0, 0); setElementFrozen ( car, false ) end, 5000, 1, veh )
end
end
end
end
end

function wheelsChanged(dataName,oldValue)
if getElementType(source) == "colshape" and dataName == "Колесо_inVehicle" then
setVehicleWheelsIn ( getElementData ( source, "parent" ) )
end
end
addEventHandler("onElementDataChange",getRootElement(),wheelsChanged)

Разберём строчку:
if getElementType(source) == "colshape" and dataName == "Колесо_inVehicle" then

Колесо_inVehicle , если кто не переводил (Двигатель,Колса,Бензобак) Ставит своё название.

MTA DayZ Дополнения

Открываем на рабочем столе gta3.img через IMGManager

И в маленьком окошке поиска пишем .col
И у нас открывается список колизий всех объектов,среди всего этого ищем файл sfse_2.col и открываем его через ColEditor
И у нас снова открывается список файлов,из этого списка нам понадобится 2 файла: drydock1_SFSe и drydock1_SFSe01
Дальше жмём по одному из них ПКМ и наводим стрелку на кнопку Export и в появившемся окне жмём на Combined Collision File. и сохраняем это в любую папку,и так делаем с обеими файлами.

MTA DayZ Дополнения

Так как я забросил свой сервер, решил помочь игрокам.
Почему я не залил его в ресурсы? -Потому что школота сразу начнёт его качать, а тут я подробно объясню как и что делать. Скрипт для защиты от дюпа во время релута.
Как работает дюп:
(Люди ждут релута, выбрасывают всё на землю, и когда появился NETWORK TROUBLE, люди начинают подбирать этот лут. После окончания релута, они подбирают в 20 раз больше).

Функции:
Во время обновления точек лута, скрипт выкидывает всех с сервера и ставит пароль на сервер. После окончания релута, снимается пароль и люди снова могут зайти.

2. Ищем такую строчку

function onPlayerChangeLoot(loot)
local players = getElementsWithinColShape (loot,"player")
for theKey,player in ipairs(players) do
triggerClientEvent(player,"refreshLootManual",player,loot)

и выделяем содержимое от её начала до конца всего файла pickups.lua.

3. Открываем мой файл, копируем всё содержимое моего файла.

4. Заменяем всё выделенное в вашем файле.

MTA DayZ Дополнения

Дальше ищем строчку

Теперь убираем баг с бензином
Чуть ниже ищем такие строки :

if not getElementData(col,"Parts_inVehicle") then
setElementData(col,"Parts_inVehicle",math.random(0,parts))
end

И заменяем на это :
if ((getElementData(col,"Parts_inVehicle") or 0) < tonumber(parts)) then
setVehicleEngineState ( veh, false )
return
end

Теперь авто не сможет ездить без него
И теперь под бензобаком вставляем проверку на бензин

if (getElementData(col,"fuel") or 0) < 0 then
setVehicleEngineState ( veh, false )
return
end

И просто ставим "--" перед каждой строкой вот так :

И ее то же отключаем

MTA DayZ Дополнения

Нам Нужно:
Открываем surviviorSystem.lua. Нажимаем Ctrl+F и ищем

Находим анимацию (анимация для употребления пищи):

setPedAnimation(source, "FOOD", "EAT_Burger", nil, false, false, nil, false)

и исправляем на:

setPedAnimation(source, "FOOD", "EAT_Burger", -1, false, false, false, false)

MTA DayZ Дополнения

Где написано Drift King, Insane Drift, Outrageous,Colossal
Suberb,Great Drift,Good Drift

Это всё надо перевести допустим будет так:

MTA DayZ Дополнения

Открываем: inventory.lua
и под
local buttonItems = <>

добавляем
local button = <>

теперь ищем:
inventoryWindows

и под этим добавляем это:
button["kill"] = guiCreateButton(0.89, 0.95, 0.09, 0.09, "Суицид",true,inventoryWindows)

и под этой строкой вставляем эту функцию:
function VitosProKILL()

if source == button["kill"] then

MTA DayZ Дополнения

открываем файл survivorSystem_client

MTA DayZ Дополнения

Открываем vehicle_spawns.lua
Ищем:
-----------------—
hospitalCol = <>
function createHospitalPacks()
number1 = 0
for i,box in ipairs(hospitalPacks) do
number1 = number1+1
local x,y,z = box[1],box[2],box[3]
object = createObject(1558,x,y,z,nil,nil,nil)
hospitalCol[i] = createColSphere(x,y,z,2)
setElementData(hospitalCol[i],"parent",object)
setElementData(hospitalCol[i],"hospitalbox",true)
setElementData(hospitalCol[i],"MAX_Slots",20)
for _,items in ipairs(lootItems["hospital"]) do
local randomNumber = math.random(1,10)
if randomNumber >= 2 then
setElementData(hospitalCol[i],items[1],math.random(1,5))
end
end
end
setTimer(updateHospitals,3600000,1)
end
createHospitalPacks()
-----------------—

Ниже вставляем эту функцию:
-----------------—
ammoCol = <>
function createAmmoPacks()
number1 = 0
for i,box in ipairs(ammoPacks) do
number1 = number1+1
local x,y,z = box[1],box[2],box[3]
object = createObject(1558,x,y,z,nil,nil,nil)
ammoCol[i] = createColSphere(x,y,z,2)
setElementData(ammoCol[i],"parent",object)
setElementData(ammoCol[i],"ammobox",true)
setElementData(ammoCol[i],"MAX_Slots",20)
for _,items in ipairs(lootItems["ammo1"]) do
local randomNumber = math.random(1,10)
if randomNumber >= 2 then
setElementData(ammoCol[i],items[1],math.random(1,5))
end
end
end
setTimer(updateAmmo,3600000,1)
end
createAmmoPacks()
-----------------—

Далее ищем:
-----------------—
hospitalPacks = <
-----------------—
И после всех кординат и закрытия функции ( > )

MTA DayZ Дополнения

Нам нужны координаты "начала" и "конца" лифта.
Заходим в MapEditor,летим к месту где будет база.
Создаем объект лифт(id 3114 или 3115)

Ставим его на "начало".
И нажимаем F3 и скриншотим или записываем координаты,а также угол поворота.

И теперь тоже самое,но "конец".

Теперь открываем SciTE

Создаем файл с названием server:
addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),
function(resource)
plate0 = createObject(3114,2416.8999023438,2503.8999023438,9.3000001907349,0,0,0) — [[координаты создания лифта, 3114 это id лифта,следующие 3 координаты по x,y,z,потом 3 угла поворота]]
end)
function moveup1()
moveObject(plate0,15000,2416.8999023438,2503.8999023438,67.900001525879) — [[координаты "конца"]]
triggerClientEvent("Lift1",getRootElement(),plate0)
outputChatBox("Лифт поднимается", source)
end
addCommandHandler ( "lu", moveup1 )— [[lu это команда поднимающая лифт,она пишется через /]]
function moveupu1()
triggerClientEvent("Lift1",getRootElement(),nil)
end
function movedn1()
moveObject(plate0,15000,2416.8999023438,2503.8999023438,9.3000001907349) — [[координаты "начала"]]
outputChatBox("Лифт опускается", source)
end
addCommandHandler ( "ld", movedn1 )— [[ld это команда опускающая лифт,она пишется через /]]

Создаем файл с именем client:
function Acc1(plate)
local vehicle = getPedOccupiedVehicle(getLocalPlayer())
if plate then
local x,y,z = getElementPosition(vehicle)
if x > 2426.8999023438 and x < 2406.8999023438 then — [[1-ая цифра это координата по x + 10,2-ая x -10]]
if y > 2513.8999023438 and y < 2493.8999023438 then — [[тоже самое только вместо x, координату y]]
local rx,ry,rz = getElementRotation(vehicle)
ox = x + -2416.8999023438 —[[пишем свою координату по x НО противоположную,тоесть если цифра отрицательная то пишем положительную]]
oy = y + -2503.8999023438 —[[пишем свою координату по y и тоже противоположную]]
attachElements(vehicle,plate,oy,-ox,1.2,0,0,rz-90)
end
end
else
detachElements(vehicle)
end
end
addEvent("Lift1",true)
addEventHandler("Lift1",getRootElement(),Acc1)

Читайте также: