abramcumner 1 229 Опубликовано 24 Января 2015 (изменено) На исходниках такой хак сделать в принципе нельзя...Этот хак: если можно читать/писать значения прямо в память?Делается ровно так же, как и на ассемблере. В чем проблема-то. Изменено 24 Января 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 30 Января 2015 (изменено) (и случится, если мне удастся задуманное)Звучит как http://xkcd.ru/927/ Изменено 30 Января 2015 пользователем abramcumner 1 2 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 2 Февраля 2015 self explained код - это миф.Не миф. Это идеал, к которому надо стремиться. Не бывает 100% самокоментируемого кода, как не бывает 100% безглючного кода или 100% ооп кода. Но к ним можно стремиться К примеру твой кусок кода вполне самокомментируемый: for id=0,65535 do local cobj = level.object_by_id(id) if cobj and cobj:is_stalker() and is_bandit(npc) then if distance_between(db.actor, cobj) < 20.0 then remove_head(cobj) end end endА вот наличие комментариев только усложняет его модификацию. Увеличил радиус поиска бандитов - надо править в двух местах: в коде и в комментарии Хорошо было бы конечно забацать итератор по онлайновым объектам... Тогда было бы вообще, как в комментариях: for _, cobj in pairs(level.objects) do if is_bandit(cobj) and distance_between(db.actor, cobj) < 20.0 then remove_head(cobj) end end end 1 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 3 Февраля 2015 От этого момента вызовы оставшихся в очереди колбэков не имеют смысла, поэтому тот колбэк, что удаляет предмет, должен просигналить, что он является последним в цепочке вызовов.А не получится так, что за ним шел коллбек, который у себя вел учет предметов в инвентаре(на on_take добавлял в словарик, на on_drop удалял из словарика). А тут до него коллбек не дошел и предмет так и остался висеть не удаленным. Ну и наоборот. 2 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 4 Февраля 2015 (изменено) @abramcumner, в таких случаях перед удалением можно дропать, как вариант. ну или банально дропать, как предлагают ребята. Его в on_drop и удалили. А половина модулей об этом не оповещена. Также как вариант, можно послать сигнал что предмет удален, и дать всем подписчикам возможность удалить из списков. В этом и есть гибкость event систем 2) Там где надо я могу выстрелить еще один ивент, скажем on_post_take (после взятия) или on_pre_drop (перед удалением), Есть в этом нечто забавное - остановить ивент, а потом вместо него посылать новые. Хотя вполне возможно - оставшейся части посылать уже не on_drop, а on_release. Но тогда модулям придется обрабатывать 2 ивента вместо одного. Вообще "концепция ивентов" на мой взгляд включает следующие 2 пункта: - локальность подключения к системе ивентов - иначе можно и через bind_stalker подключаться, - и гарантированность доставки события(не важно как это будет сделано с пометкой, что предмет удален или даже переносом удаления из коллбека на апдейт или еще как, но сообщение должно дойти до всех подписчиков). Пример с инвентарем привел из-за явной симметрии on_take/on_drop и такого же явного ее нарушения. А так это может быть маленький квестовый модуль, который следит за каким-то предметом и обновляет статус побочного квеста. Явно же это не тот модуль, который надо регистрировать первым и в специальном реестре. Просто маленький иногда подглючивающий квест Изменено 4 Февраля 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 5 Февраля 2015 Именно потому, что получение значения по ключу - тот же перебор, по хешмапу.Хмм... Не хилое такое заявление про хешмап и перебор. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 5 Февраля 2015 Хорошо-хорошо, не полный перебор. а бинарный поиск :-)Это у map - бинарный поиск. У хешмепов время поиска ключу - константа. 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 1 Июня 2015 Вообще-то экспортрованные вещи написаны и так и так: змея: game_object, биндер, серверные классы(за исключением имен ) верблюд: уи-классы и прочее Так что лезть в движок по-любому, чтобы привести к единообразному виду. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 1 Июня 2015 Да, это так. Т.е. вопрос только в том, кто это будет делать? Тот, кто начинает свой глобальный проект с правками движка и скриптов. В том же xp-dev - править смысла нет, отвалятся у всех скрипты. А переписывать скрипты только потому, что кому-то так кажется красивей... 2 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 1 Июня 2015 (изменено) @svarog2741, ты серьезно? У тебя куда-то потерялось тело функции. Найди его и посмотри: может файл с ним не добавлен в проект или оно под каким-нибудь дефайном или еще что. Ну и переключи язык на английский. В менюшках как-нибудь разберешься, зато сможешь нормально гуглить ошибки. Методы действуют на объекты у которых вызываются. Тут все вполне логично. Вот если бы было написано get_normalize или на крайняк tonormalize, тогда этот метод уже что то возвращает. Тебе дали удочку, а тебе цвет не нравится? Смирись/ищи другую/сделай сам/забей на всё. Точно так же, как и ты Ты высказал предложения, Денис высказал свои. У вектора часть методов возвращают новый объект, не меняя исходный, а часть методов меняет исходный. Он всего лишь предложил упорядочить это. Изменено 1 Июня 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 1 Июня 2015 (изменено) Если бы потерялось, то на DX8 не компилилось.ДХ8 - это отдельный солюшен? Не увидел у тебя в студии на тулбаре панели с конфигурацией. К сожалению у этой ошибки большой перечень возможностей её возникновения. Возможно, на 8 студии построение прошло бы успешно.Все они сводятся к тому, что тело функции не найдено. Номер студии абсолютно не важен. Итак: ты нашел файл, в котором определена функция UpdatePowerStatus? Изменено 1 Июня 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 2 Июня 2015 @svarog2741, забей на него. Переходи на хрей - единственный нормальный движок, поддерживающий дх9 и дх8 Ну ты хотя бы скажи, что тебе не нравится в приведенном коде Или компилятору что не нравится. Код перебирает режимы моника и заполняет структурку. Что там: режимы не преребираются или структурка плохо заполняется? 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 2 Июня 2015 Can't find appropriate full screen video mode Mode: 800 x 600 x UNKNOWNВыведи в лог все доступные режимы и посмотри почему ни один не подходит. Есть подозрения, что в EnumAdapterModes надо передавать номер режима(типа переменную i). Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 2 Июня 2015 @abramcumner, кстати вопрос: как реализована поддержка HLSL на дх8? Вроде как он появился только в дх9... Читал где-то, что на самом деле там не дх8, а обрезок дх9 (хотя и непонятно, как такое возможно).Так и есть, р1 работает на самом деле на дх9. Можно и на ДХ12 сделать сталкеровский р1 - пиши шейдеры с запеченными тенями/освещением и все. 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 2 Июня 2015 Кто хочет р1, тот будет браться. Не представляю кому даже сейчас р1 может понадобиться. 2 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 20 Августа 2015 Ню-ню (код практически всех модов говорит мне обратное), но почему-то никому в голову не приходило это использовать. Особенно тем, кто любит говорить что на их моде можно будет с легкостью что угодно сделать .Чтобы твой способ работал, нужно собирать спавн храи. Если храи не пользуешься, а пользуешься асдс, то твой способ только прибавит работы. h0N0r, дирекция переписывается в абстрактном пакете - делай раз, дирекцию ставишь тем же поинтом (если это какой-то объект у которого есть схема с лук-точками) - делай два.Вместо того, чтобы поставить респавнер, ты предлагаешь ставить вейпоинты и писать скрипты. Вместо того, чтобы развернуть предмет в сдк, предлагаешь ставить несколько вейпоинтов и писать еще больше скриптов. Тебе надо еще в СДК поработать. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 20 Августа 2015 АСДС я использую в режиме RO, слишком муторная телега чтобы с ней работать, но в связке с СДК утиль крутой. Я и подразумевал что работать надо в СДК, в любом случае даже если юзаешь асдс потом олл спавн можно будет побить, не вижу проблемы.Способ безусловно хороший, только разговор же не о тебе, ты еретиками назвал всех, кто использует "alife():create" Повторю, что твой способ подходит только тем, у кого есть возможность ставить в сдк вейпоинты, собирать спавн храи и писать скрипты. Без этих трех условий способ не работает. По правильному в функции alife():create не должно быть вообще лв/гв - это внутренности системы навигации. Должны быть только координаты. А лв/гв пусть эта самая система навигации и считает, если они ей нужны. А вейпоинты для получения координат предлагали использовать еще на офф. форуме в лохматые годы. Да и в модах проскакивает, правда бессистемно. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 20 Августа 2015 Хм, а ничего, что одни и те-же координаты могут быть на куче разных локаций ? Как бы все не спорили, а реальность есть такова, что имея только координаты заспавнить объект не получится - по любому нужен gv, который определяет целевую локацию.И имя локации, например, в параметры добавить. Именно гв то зачем? Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 20 Августа 2015 (изменено) Но я не ради америку открыть, а ради разузнать почему деятели которые объвяляют свои моды как какие-то платформы/базы для дальнейших разработок этим не озадачиваются, а может мне понравится их мод как основа, но состав уровней не понравится, или просто захочу заменить сам сетку где-то, что тут делать? То-то и оно .Какие деятели? АМК? Я же написал причины, по которым твой способ может не подходить. По-видимому у них одна из трех причин. Может стоит добавить конкретики, а то обсуждать сферических деятелей в вакууме совершенно не хочется. Изменено 20 Августа 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 229 Опубликовано 20 Августа 2015 (изменено) А в чем разница? Все одно нужен еще один параметр, кроме координат: меня и gv устраивает, хотя-бы тем, что имея имя уровня, придется городить какой-то скрипт для получения gv на целевом уровне. А имея gv, можно его сразу и передать в create...Разница в том, что ни скриптеры, ни квестовики не замарачиваются с гв/лв. Разбор делается в движке. Если добавить имя уровня, то оно по-любому понятней и проще гв. Если перейти, например, на глобальные координаты, то и имя уровня не нужно. P.S. А желание, с помощью скриптов создать некий универсальный спавнер всего и вся, якобы не привязанный ни к чему, кроме координат - на мой взгляд фикция, до тех пор, пока не будет альтернативы единственной ф-ции создания объектов в игре(хоть она и в нескольких ипостасях), которая обязательно требует одним из параметров gv, для определения целевой локации.Я говорил исключительно про дизайн движка. Что его внутренности вытащены наружу(в скрипты). Все. Ни о каких универсальных спавнерах и прочем я не говорил. Собственно я и говорил об этой альтернативе. Изменено 20 Августа 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение