Карлан 1 049 Опубликовано 26 Ноября 2014 (изменено) @abramcumner, ну например я использую коды 12 симбиона весьма активно, я плохо понимаю в программировании, но как-то складывается со временем так, что улавливаю ход мыслей Artos'a и уже дергаю эту оптимизацию/систему/модуль себе (ну и дописываю/переписываю по мере надобности). И на счет ЛА, там отчетливо штрихи Artos'a видны, тем более он сам по поводу этого высказывался, так что я бы о ЛА не говорил. О неиспользовании этого всего, я думаю что собирается команда, ставятся задачи которые надо в сроки выполнить, и не суть как, но ты должен сделать, а когда начинаешь говорить, что прежде чем писать какие-то скрипты нужно ввести несколько вспомогательных систем, переписать особо кривые моменты в скриптах, что например для меня тоже дело не одного дня. А остальных это не заботит, по какой причине я не знаю, может время, может желание, может навыки. Я вот например уже без ивентов тех же работать не могу, очень мощная и функциональная система, да и скрипты адаптируются всего-лишь добавлением поля в таблицу. На счет трудности понимания венгерки согласен с Денисом. По моему он единственный из известных, кто на ней пишет. Еще один из минусов мне кажется это повальный вывод данных в конфиги, хоть конечно и грузится на старте, но я все-же привык городить килотонные таблицы в скриптах напрямую. По сути НИ зачастую зависит от пересбора all.spawn, либо от каких-то непоправимых квестовых косяков с сопутствующей потерей сейвов. От all.spawn можно вполне отказаться, если написать парсер путей из конфигов, да я понимаю кое-что без него не задать, но в общем и целом незадачливые модмейкеры исправляют кривые координаты путей, вот эту проблему то и можно решить. Делать это еще раз - сизифов труд. В точку сказано, у меня в свое время был выбор чьими кодами пользоваться, Artos'a или malandrinus'a; выбрал первое, так как и функционал пошире, и позаковырестее все написано Самому это все делать конечно можно, но долго, да и зачем? Когда уже все есть давно... Изменено 26 Ноября 2014 пользователем Карлан Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 30 Ноября 2014 Можно и плоское написать, мне вот классом нравится (удобнее). Оверхед я думаю небольшой, хотя специально не замерял, но тем не менее и в примитиве встречаются такие случаи, где код работает раза в два дольше, чем стандартная функция (тот-же table.insert), если я правильно понял о чем ты. У меня и в ивентах все перед глазами, я не знаю чем тебе они не понравились. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Декабря 2014 Объясните мне пожалуйста вот эту шайтан-конструкцию, а то я никак прикола не пойму: --' Сохраняем уровень сложности if save_treasure_manager == true then packet:w_u8(level.get_game_difficulty() + 128) else packet:w_u8(level.get_game_difficulty()) end --' Загружаем уровень сложности local game_difficulty = reader:r_u8() local load_treasure_manager = false if game_difficulty >= 128 then game_difficulty = game_difficulty - 128 load_treasure_manager = true end Собственно спрашивается, а нафига 128 прибавлять/вычитать, когда можно просто уровень хранить? Или тут какой-то подвох, которого я не разглядел? Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Декабря 2014 Кстати да, хотя ничто не мешает эту муру(ненужную опциональность) перенести в сам менеджер, а еще никто не мешает собственный биндер боксов написать и уже да, работать непосредственно с боксами. Соственно как я и думал это можно вырезать к черту. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 3 Декабря 2014 И снова я, теперь вопрос по тайникам: function CTreasure:save(p) --' Сохраняем размер таблицы local size = 0 for k,v in pairs(self.treasure_info) do size = size + 1 end p:w_u16(size) ... end Нафига такие телодвижения? Нельзя разве просто p:w_u16(#self.treasure_info) написать? Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 4 Декабря 2014 @Dennis_Chikin, ну так пока отрубишь от олспавна, пока полную аналогию на скриптах напишешь, долго больно. Проще написать скрипт который сам координаты и хабар получает... да и модель до кучи, и уже спавнить где угодно что угодно с чем угодно. Тем более подобное уже было, только поскольку идея опять же была подрезана, то там и задумка не до конца раскрыта, а ровно на столько, насколько подрезана идея. Займусь как-нибудь, тема реально интересная. Так же прицепить попутно идею ЗП, правда реализация ее тоже из ряда вон... Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 27 Января 2015 Вопрос к знатокам, а есть какой-то глубинный смысл в том, что разрабы юзали только 100 типов моделей визуалов людей? Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 28 Января 2015 (изменено) Следующий вопрос, а вообще как-то где-то удивительный postprocess.PostProcess(ini_file(name_ini_file)) задействован? Я вот лично не видел что-бы им кто-то когда-то пользовался. Да и вообще слабо уловил смысл скрипта. А то там какие-то супер параметры передаются. Как я понял корнями уходит в CEffectorPP, ну мне это понять пока не под силу. В ЗП, к слову, успешно выпилен. Ничего фатального не будет если и в ТЧ его зарубить? Ну он правда нигде вообще не используется. Изменено 28 Января 2015 пользователем Карлан Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Августа 2015 (изменено) Просьба ко всем сюда заглядывающим, как по вашему мнению лучше всего переписать безобразие с level_tasks.script(?), там задумка то вроде и хорошая, но реализация просто насквозь пробагованная. Я всегда опасался этой системы, а сейчас решил заняться и так вжало меня от всех свистоплясок кои там имеют место быть. Вообще я планирую написать что-то вроде менеджера управления как раз получением всяко-разного с навесом его на сигналы, так как обременять такими простынями код это выше моих сил. Есть мысли какие, разделить все эти функции, то есть засунуть их в таблицу с привязкой к айди таска, и на коллбеке проверять есть ли у нас этот таск, и если есть то включать порцию функций для этого таска (это с теми функциями, которые незадачливые квестеры неосилили прибить напрямую к квесту), или же просто напросто самому прибить эти функции к квестам, только это вангую будет слишком муторно. Изменено 1 Августа 2015 пользователем Карлан Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 29 Августа 2015 Видимо я поднимаю очень актуальные вопросы, продолжу монолог. Как вы считаете, какая самая приемлемая архитектура таблиц должна быть в оригинале у тайников? val_secret_0029 = { items = "af_mincer_meat,energy_drink,bandage,3", condlist = "{=npc_rank(experienced)}2", description = "val_secret_0029_description", active = false, target = 5429, done = false, name = "val_secret_0029_name", }, Пока прикололся по тупому копирайту, но по моему если вносить в скрипты, то надо как-то все же по другому данные сделать. Ну вот что итемы таблицей (точнее итемы мы просто уведем в логично дифференцированный рандом) - это понятно, а вот кондилст как? Все ли понимают распарсенный кондлист? То есть кондлист вышеуказанной таблицы в распарсенном виде выглядит вот так: condlist = { 1 = { infop_check = { 1 = { expected = true, func = "npc_rank", params = { 1 = "experienced", }, }, }, infop_set = { }, section = "2", }, }, Вариант очень так себе. И вот стоит вопрос как его оформить, либо оставить как есть и парсить как есть (так скорее всего и будет). Интересно было бы услышать мнения всяких тех кто со спавном (тайников в т.ч.) работает и все такое. Стоит что-то вообще менять, или нет? У меня есть несколько идей по улучшению, я их обязательно реализую, но хочется услышать еще мнения что нравится/не нравится, так же возможно чего-то не хватает. Еще вопрос, стоит ли вводить тайники как в ЗП, и если да, то делать ли их в единой системе, или все-же разграничить? Если в единой, то как должны отличатся данные одних от других? Если в разных, то опять же как должны выглядеть данные в первом и втором случае? Вариант оставить как есть разумеется рассматривается, вопрос в том удобно ли это будет в скриптах, там все же царство таблиц. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 29 Августа 2015 , дело не в выигрыше времени, дело в субъективной стилистике . Я думаю оставить все как есть, то есть первый вариант, ну и еще несколько несколько ключей добавить. Что думаешь о идее тайников ЗП? Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Сентября 2015 @Полтергейст, если говорить о исходниках, то там есть нормальное хранилище данных, и сейвы забивать/не забивать становится вопросом скорости загрузки (он немаловажен). Экспортировать ничего не нужно, можно оставить как есть, можно сделать ивент (нужно только событие), а там все в хранилище забивать без пакета актора. Вот и все "как следует". active и done можно записывать с помощью побитовых операций, они ничего не жрут абсолютно, я выкладывал когда-то здесь примеры, не вижу смысла как-то урезать функционал ради каких-то сомнительных экономий. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 1 Сентября 2015 Условия выдачи тайников не надо хранить вообще. Они и не хранятся. Зачем хранить константы? Тайник надо спавнить при выдаче. А лучше - вообще при заходе актора на локацию. Предварительно они все равно будут в олл спавне (так быстрее и рациональнее). Но мне этот вариант не нравится. Всякие обломки труб тоже предлагаешь спавнить по условию? @HESH, что должно по твоему к этому привести? Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 Какое отношение обломки труб имеют к тайникам ? Прямое (см. спавн). А я снова напомню об объемах. Постоянный скан и апдейт - жрут. Ты точно о тайниках? Сейчас пишу одну систему хранения объектов (не на пакетах), и вот там если действовать агрессивно, то можно целиком все упаковывать без всяких компрессий и ограничений (ну тут в пределах разумного разумеется). То есть если действовать агрессивно, то self.treasure_info можно будет упаковывать целиком, вопрос скорости, что будет быстрее - загрузка таблицы, или текущие циклы. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 При заходе на локу спавнишь рестриктор. При заходе в рестр спавнишь тайник и удаляешь рестр. А при уходе с локи удаляешь рестриктор? И имеешь куча объектов + рестриктор. Какие таблицы и данные в памяти? Два булева и одно u16, остальное константы. Вообще не понимаю о чем разговор. Если делать полное сохранение, то да, еще добавится одна строка, это если с компрессией, без нее четыре, но "итемы" надо делать по аналогии с боксами, только с исключениями (именные, квестовые и прочая фигня). Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 Не понимаю сарказма - рестр удаляется сразу же при срабатывании командой из собственной логики. А если я в него на зашел? Или такой вариант не принимается? А я что-то видел выше про тайнички в олл_спавне. Это нормально, там тыщу тайничков держать? Хе, ну вот мы недавно только это с abramcumner обсуждали, пришли к выводу что можно, но не нужно, и не в случае с тайниками точно. Ну хотя если ты напишешь формулу вычисления дирекции, то давай, я жду. Денис, давай за оригинал, ага. Проверять - выдан/не выдан - можно и банально по наличию объекта, ага. Я откровенно не понимаю чем мешает одно u16 и два булева, которые упаковываются в один u8. Это еще соображения экономии, а не скорости. Лечить психиатром уже в принципе некого, те кто это сделали уже и так того. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 Таки вне очереди накидал историю о бездонном хранилище безо всяких икебан. Скоро выкину. @Dennis_Chikin, я согласен, что если мыслить не как сами, то один флаг явно лишний, причем не в сохранении, а вообще. А активность все-таки нужны, тема со спавном только когда получили инфо равносильна варке артефакта только при наличии рецепта, что есть терминальный идиотизм. Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 @Dennis_Chikin, смотри, ну иду я себе по кордону, вижу крест, теоретически там тайник, я хочу туда посмотреть, а без инфо мне не дают туда посмотреть, не идиотизм? Тоже самое со "спавном в рестрикторе", не, я конечно допускаю магию, но в разумных пределах. Делать как ты предлагаешь это просто зарядить один кондлист на выдачу и собственно все, ни таблиц, ни парсера, ни сохранений, но мне так не катит. Если о деле, то я это делать не хочу из-за шайтан-формул по геометрии (ага, крутить мыслью предметы), в которой я не так чтобы гуру, если предложишь рабочий вариант (без костыля с копированием вектора), то заранее спасибо, не для тайников, так для другого сгодится. 1 Поделиться этим сообщением Ссылка на сообщение
Карлан 1 049 Опубликовано 2 Сентября 2015 @Dennis_Chikin, смотреть то мне никто не мешает, только хочется без "кто там"(с). А по поводу буковки - форс омния версас, что как-бы тоже напрочь отметает стопроцентность этой затеи, но я таки тестировал тайники с физикой (причем через два способа, как раз с невидимкой, и без него), со всеми вытекающими. Поделиться этим сообщением Ссылка на сообщение