Технический форум Помощь по скриптингу
TOPBASS 28.08.2017 в 21:54

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

Всем привет! Кто может сделать из этого кода так, чтоб ворота открывались и закрывались по Одной команде, а не откр - одна команда, закр - вторая?? Помогите плиз, а то я ноль в скриптинге..
local gate = createObject(2929,211.89999389648,1875.4000244141,13.89999961853, 0, 0, 0 )

function open()

moveObject(gate, 6000, 208.5,1875.4000244141,13.89999961853, 0, 0, 0 )

end

addCommandHandler("open", open)

function close()

moveObject(gate, 6000, 211.89999389648,1875.4000244141,13.89999961853, 0, 0, 0 )
end

addCommandHandler("close", close)
FoxWiZZard 29.08.2017 в 03:03

Модератор

Репутация: 161 бал.

Замечания: 0 бал.

TOPBASS, Почему бы не попробовать самому?

Из самого простого способа - объявить переменную которая будет отражать состояние ворот.

Назовём её opened и дадим значение false(т.е. изначально они закрыты).

Далее создадим функцию и в ней пропишем проверку на то, открыты ли ворота, если да, то закроем их и закончим выполнение функции. Ну а если ворота были закрыты, то из-за несоответствия условия в первой проверки выполнение скрипта перейдёт ко второй.

local gate = createObject(2929,211.89999389648,1875.4000244141,13.89999961853, 0, 0, 0 )
local opened = false
function gates()
if opened = true then
moveObject(gate, 6000, 211.89999389648,1875.4000244141,13.89999961853, 0, 0, 0 ) -- Если открыты, закрываем ворота.
elseif opened = false then
moveObject(gate, 6000, 208.5,1875.4000244141,13.89999961853, 0, 0, 0 )
end
end
addCommandHandler("gates", gates)


Вот самый простой пример.
devour 29.08.2017 в 12:59

Пользователь

Репутация: 2 бал.

Замечания: 0 бал.


local aGate1 = createObject(2951, 213.88200378418, 1875.5999755859, 13.45, 0, 90, 0)
local aGate2 = createObject(2951, 213.91000366211, 1875.5999755859, 13.42, 0, 270, 0)
local aGateStatus = true

local function openGates()
aGateStatus = not aGateStatus
if aGateStatus == false then
moveObject(aGate1, 8000, 217.32000732422, 1875.5999755859, 13.45)
moveObject(aGate2, 8000, 210.47999572754, 1875.5999755859, 13.42)
elseif aGateStatus == true then
moveObject(aGate1, 2500, 213.88200378418, 1875.5999755859, 13.45)
moveObject(aGate2, 2500, 213.91000366211, 1875.5999755859, 13.42)
end
end

addEventHandler("onResourceStart", resourceRoot, function()
if isElement(aGate1) and isElement(aGate2) then
setObjectScale(aGate1, 1.09)
setObjectScale(aGate2, 1.09)
addCommandHandler("gates", openGates)
return
end
cancelEvent()
end)


Команда /gates - (Открывает/Закрывает ворота)
parapassr 29.08.2017 в 14:07

Пользователь

Репутация: 0 бал.

Замечания: 0 бал.

При регистрации стоит setElementData(player,"Health",100) но в мускуле значение не появляется, в чем может быть проблемс?
Cat 29.08.2017 в 17:54

Проверенный

Репутация: 187 бал.

Замечания: 0 бал.

parapassr, в отсутствии запроса в мускул?
LordOri 30.08.2017 в 02:14

Проверенный

Репутация: 32 бал.

Замечания: 0 бал.

Подскажите как оформить.
Вот я придумал маленький скрипт который должен регенить кровь по чучуть)
так вот он
setTimer(function ()
if getElementData(localPlayer, "thirst") > 50 and getElementData(localPlayer, "food") > 50 then
setElementData ( localPlayer, "blood", math.random(50,250))
end
end, math.random(900,2500), 0)

только сразу заметно что он будет устанавливать определённое количество крови а не добавлять.
Подскажите как сделать что бы добавлял))
Спасибо.
FoxWiZZard 30.08.2017 в 02:43

Модератор

Репутация: 161 бал.

Замечания: 0 бал.

LordOri, Ну как то так
setElementData ( localPlayer, "blood",getElementData(localPlayer,"blood")+math.random(50,250)) 
LordOri 30.08.2017 в 02:59

Проверенный

Репутация: 32 бал.

Замечания: 0 бал.

FoxWiZZard, не работает. Спамит что неверный аргумент

Блин предложите чего то ещё а я спать. Бо у меня почти 4 утра и рано вставать. Заранее спасибо всем за идеи!)
devour 30.08.2017 в 10:14

Пользователь

Репутация: 2 бал.

Замечания: 0 бал.

LordOri,
setElementData( getLocalPlayer(), "blood", getElementData(getLocalPlayer(), "blood") + math.random(50, 250) )
LordOri 30.08.2017 в 14:59

Проверенный

Репутация: 32 бал.

Замечания: 0 бал.

devour, вот твой вариант заработал. Спасибо, хотя странно переменная localPlayer прописана но почему-то не работала. Спасиб)
LordOri 30.08.2017 в 20:27

Проверенный

Репутация: 32 бал.

Замечания: 0 бал.

Подскажите а можно ли осуществить бег с оружием в руках?
FoxWiZZard 30.08.2017 в 23:57

Модератор

Репутация: 161 бал.

Замечания: 0 бал.

LordOri, setWeaponProperty(ссылка), флаг "move_speed".
Наверно...
Никогда таким вопросом не интересовался.
LordOri 31.08.2017 в 19:07

Проверенный

Репутация: 32 бал.

Замечания: 0 бал.

FoxWiZZard, вот видишь, всегда можно что-то и о чём-то подумать)
Yakien_Hgar 01.09.2017 в 12:04

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

У меня в моде много домов(~2300) и их будет только больше, особенно в интерьерах(система квартир), + всякие дополнительные города, которые будут наполнены домами , а так же я собираюсь делать систему личных авто(и у некоторых домов будет по 1-3 парковки авто). Так вот, как сделать лучше?
1.) При выходе игрока с сервера удалять весь транспорт игрока, а при заходе спавнить весь транспорт игрока у дома
2.) Ничего не делать, оставить всё как есть, т.е весь транспорт игрока будет постоянно у дома вышел с сервера он или нет.
larnet7 01.09.2017 в 12:53

Проверенный

Репутация: 225 бал.

Замечания: 0 бал.

Yakien_Hgar, если онлайн большой, то большое количество машин будут захламлять сервер, что скажется на FPS клиентов (тем более что на стрим игрока есть лимит по машинам и педам, что может также повлиять на дальность отрисовки). Так что я считаю первый вариант самым подходящим, ну или поступай по примерам других игр, как например GTA 5 Online. Они не хранят машины в чистом виде, но машину можно пригнать через смартфон
Yakien_Hgar 01.09.2017 в 13:06

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

larnet7, я создал циклом авто для каждого дома в сумме (2300 машин + серверные), место 60-40 фпс, стало сразу 15-20 фпс.
1.) Какой лимит на машины в MTA ?
2.) А пикапы в отличие от машин нагружают сервер(у меня пикапов для входа в дом 2300, и для выхода пикап = 4600, + еще будут всякие бизнесы около 1000, ну и другие выходы и входы)?
larnet7 01.09.2017 в 13:23

Проверенный

Репутация: 225 бал.

Замечания: 0 бал.

Yakien_Hgar,
1) лимит макс машин, прогруженых в стриме игрока, остальные просто не будут прогружаться
2) любые элементы нагружают сервер, поэтому мод считается наиболее оптимизированным, если в нём используется наименьшее число объектов, необходимых для работы (p.s. вот почему DayZ такой ущербный со своей системой объект+коллизия)
Yakien_Hgar 01.09.2017 в 15:21

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

Скачал с паблика radar gta v, но там не отображаются radararea(ганг-зоны), как их отобразить?
Код:
larnet7 01.09.2017 в 15:42

Проверенный

Репутация: 225 бал.

Замечания: 0 бал.

Yakien_Hgar, значит твой GPS не поддерживает отрисовку зон
diman42199 01.09.2017 в 15:53

Проверенный

Репутация: 69 бал.

Замечания: 0 бал.

Товарищи, подскажите какой функцией можно получить список всех команд имеющихся на сервере (Например Медики или Военные)
Войдие или зарегистрируйтесь что бы написать сообщение