dsh 3 824 Опубликовано 2 Сентября 2016 Это тоже самое, как с ассемблером или C. На них должны писаться только критичные вещи. Так и с движком. Как по мне, так в движке должны быть только низкоуровневые вещи или то, что в скриптовой реализации создаст слишком большую нагрузку. Все остальное - для скриптов. И главное меню яркий тому пример. Зачем цементировать в движке то, что можно написать на скриптовом языке и оно хорошо работает. Смарты, гулаги, респаунеры и многое другое прекрасно реализуется скриптово и нормально работает. 2 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 2 Сентября 2016 Скрипты не предназначены для серьёзной алгоритмической работы Ты исходишь из ложного убеждения. Какой смысл что-то обсуждать далее? Да, исходя из этого убеждения ты абсолютно прав и даже обсуждать нечего. Только вот убеждение изначально ложное. А вот тут начинается самое интересное. Если в случае отладки сложного скрипта нужно запускать игру десятки раз с вылетами и последующим анализом лога (который даёт далеко не полную информацию), то в случае отладки в среде разработки А это всего-лишь говорит об отсутствии инструмента скриптовой отладки. Вместо запихивания в движок всего и вся, полезнее будет сделать такой инструмент. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 2 Сентября 2016 почему именно оно ложное По меньшей мере по одной причине. Что бы оно только попыталось стать не ложным, нужно для начала определить, что есть "серьёзной алгоритмической работы". А так, просто утверждение из серии "C rulez forever" и т.п. Язык примитивен Все императивные языки одинаково примитивны. Все основаны на присваиваниях, циклах и ветвлениях. В этом плане lua и семейство C - одинаковы. По-простому, что экспортировано, то и доступно Ну так для этого и существует движок, что бы экспортировать то и делать доступным то, что нужно использовать и к чему нужно иметь доступ скриптам. Производительность Я об этом писал. Для большинства задач, скриптовой производительности достаточно. Для того, для чего не достаточно, имеет смысл делать движковую поддержку. Среда разработки, точнее её отсутствие. Батенька, а ты ведь не скриптовый писатель? Угадал? Знаешь, какой у меня профессиональный инструмент разработки? Emacs. Вполне себе отличная среда разработки. В ней и на lua ничуть не хуже разрабатывать, чем на перле. 3 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 3 Сентября 2016 @Desertir, да они все одинаковые. Вот ей богу, я в практике особой разницы не вижу между lua, perl, js и python. Особой - это именно прямо такой, кардинальной. Плюс-минус все одинаковые. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 13 Февраля 2017 Не могу удержаться. Уверен, что выскажу общее мнение. Мы все за тебя очень рады. Вот только полезной информации в том, что ты написал, 0. Для наглядности напишу буквами: ноль. А в остальном, жжош, пиши ишчо. 10 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Января 2019 Кто в физике/математике разбирается, подскажите пожалуйста, как рассчитать силу, которую нужно приложить к гранате по трем осям, что бы она долетела до указанной точки? Чую, ускорение свободного падения тут участвует. Может @abramcumner подскажет? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Января 2019 3 minutes ago, abramcumner said: там же пускали гранаты Там эмпирически подобранные константы: local bone = get_grenade(id):get_physics_shell():get_element_by_bone_name("wpn_body") local dir=utils.vector_copy_by_val(target):sub(get_grenade(id):position()) dir:mul(1300) if typ=="lo" then dir:add(vector():set(0,8000,0)) else dir:add(vector():set(0,19000,0)) end if bone then bone:apply_force(dir.x,dir.y,dir.z) end 5 minutes ago, abramcumner said: Vx,z = Sx,z * sqrt(g / D) / 2, Vy = (Sy + 2 * D) * sqrt(g / S) / 2, где D - расстояние до указанной точки. Мне кажется, что в этих формулах еще должна как-то учитываться масса гранаты? А понял, скорость по каждой оси еще нужно умножить на массу гранаты? Не могу понять, что в формулах обозначает S? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Января 2019 3 hours ago, abramcumner said: Sx = dest.x - pos.x Т.е. переводя все на lua получается local D = src:distance_to( dst ) local g = 2 * 9.81 local S = vector():sub( dst, src ) local Vx = S.x * math.sqrt( g / D ) / 2 local Vz = S.z * math.sqrt( g / D ) / 2 local Vy = ( S.y + 2 * D ) * math.sqrt( g / D ) / 2 Правильно? 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 6 Января 2019 @abramcumner, не, не получается. Вот такой вот код local target = vector():mad( obj_pos, db.actor:direction(), 25 ) local D = obj_pos:distance_to( target ) local g = 2 * 9.81 local Sx = target.x - obj_pos.x local Sy = target.y - obj_pos.y local Sz = target.z - obj_pos.z local Vx = Sx * math.sqrt( g / D ) / 2 local Vz = Sz * math.sqrt( g / D ) / 2 local Vy = ( Sy + 2 * D ) * math.sqrt( g / D ) / 2 local mass = 1300 Vx = Vx * mass Vy = Vy * mass Vz = Vz * mass bone:apply_force( Vx, Vy, Vz ) Граната больше летит вверх, чем вперед. Вверх она улетает на 7.6 метра, а вперед только на 8.6. Если поставить в mass obj:mass(), которая 12, то вообще не летит, а только чуть подпрыгивает. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 9 Января 2019 On 1/7/2019 at 3:04 PM, abramcumner said: Вот такой код у меня запускает гранату точно к ногам ГГ. У меня не долетает. Расстояние до гранаты примерно 12 метров. Ровное место. Не долетает примерно 5 метров. Если увеличивать mass, можно сделать, что бы долетела, но это будет верно только для одного расстояния. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 9 Января 2019 2 hours ago, abramcumner said: А ph_frequency что возвращает? Возвращает 100. Вроде все нормально. Может в ЧН g другое? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 28 Июня 2019 @AndreySol, я сначала создаю/копирую h и cpp файлы, а потом уже добавляю их в проект почти так же, только нужно выбрать Add exists что-ли, по памяти точно не напишу. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение