Карлан 1 049 Опубликовано 2 Декабря 2014 Поделиться Опубликовано 2 Декабря 2014 Кстати да, хотя ничто не мешает эту муру(ненужную опциональность) перенести в сам менеджер, а еще никто не мешает собственный биндер боксов написать и уже да, работать непосредственно с боксами. Соственно как я и думал это можно вырезать к черту. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 2 Декабря 2014 Автор Поделиться Опубликовано 2 Декабря 2014 (изменено) Самое смешное, что он - есть ! Просто в одном флаконе со всякими дверями, прожекторами и прочими бтр'ами. Кстати, почищенный и отформаченный: https://dl.dropboxusercontent.com/u/27871782/bind_physic_object.script Убраны операции бессмысленные и беспощадные (закомменчены). Оставленное - черная магия, без которой не работает. Изменено 2 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 3 Декабря 2014 Поделиться Опубликовано 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) написать? Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Декабря 2014 Автор Поделиться Опубликовано 4 Декабря 2014 (изменено) local nfo = {}; self.treasure_info = nfo ... r, id, v = ini:r_line( "list", i, "", "" ) ... nfo[id] = { ... } Это когда переписывал - пытался сохранить совместимость по сэйвам, пока уже с другими, прости-господи, менеджерами, не понял, что проще закрасить, чем осткребать. то есть, индексы - не последовательные. То есть, # вернет бред. Пока на скорую руку набросал паллиатив https://dl.dropboxusercontent.com/u/27871782/treasure_manager.script - не жрет по 3-5 секунд при загрузке - да и ладно. А потом - просто снести совсем за полной ненуностью и неземной кривизной. Вместе с раскиданными по локациям из олспавна "тайниками". Все это - не нужно, и если по-уму, делается для одного конкретного тайника при выдаче, а потом вместе с ним и убирается. Изменено 4 Декабря 2014 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Декабря 2014 Поделиться Опубликовано 4 Декабря 2014 @Dennis_Chikin, ну так пока отрубишь от олспавна, пока полную аналогию на скриптах напишешь, долго больно. Проще написать скрипт который сам координаты и хабар получает... да и модель до кучи, и уже спавнить где угодно что угодно с чем угодно. Тем более подобное уже было, только поскольку идея опять же была подрезана, то там и задумка не до конца раскрыта, а ровно на столько, насколько подрезана идея. Займусь как-нибудь, тема реально интересная. Так же прицепить попутно идею ЗП, правда реализация ее тоже из ряда вон... Ссылка на комментарий
Полтергейст 37 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 Насколько я понимаю, здесь обсуждается переписывание оригинальных игровых скриптов, которые кочуют из мода в мод либо копипастой, либо с очень мелкими изменениями. На мой взгляд, проблема намного шире, чем просто оптимизация. Во-первых, надо обозначить, с какого набора скриптов (то есть - оригинал или какой-то мод, какая версия и т.д.) начинать, чтобы осилить и не "забуксовать", но в то же время чтобы изменения были заметными. Во-вторых, надо знать, какие вносятся правки - оптимизация и повышение производительности, правка багов, упрощение отладки, или же более глубокое переписывание механизмов игры. Если с этими вопросами не определиться, в правках не будет порядка. 1 Ссылка на комментарий
Struck 61 Опубликовано 5 Января 2015 Поделиться Опубликовано 5 Января 2015 @Полтергейст, успокойся, это никому не надо. Кому надо - делают сами, и (бес)порядок себе делай какой хочешь. К сожалению, разумеется. Добавлено Dennis_Chikin, 6 Января 2015 Вот не надо говорить за всех. Конкретно эта тема, с _g.script - она как бы в надежде, что у кого какие правленные куски найдутся - дополнят. Опять же лишьний раз посмотрят, в что в нем есть, отловят, что неправильно. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 6 Января 2015 Автор Поделиться Опубликовано 6 Января 2015 (изменено) Грубо говоря, вот такое, например: function action(obj,...) local arg = {...} local act = entity_action() local i = 1 while true do if (arg[i] ~= nil) then act:set_action(arg[i]) else break end i = i + 1 end if (obj ~= nil) then obj:command(act,false) end return entity_action(act) end -- вот кто-нибудь знает, ЧТО ЭТО ? Не, то, что это - похмельный бред - я сам знаю. А про "кому надо, кому не надо" - вот то я и смотрю, что сплошь и рядом вместо, скажем, parse_custom_data()/gen_custom_data(), как оно причесано выше в меру на сколько лениво было и задней левой, по 10-20 копий где попало не далеко ушедшего от того, что под спойлером. А если какой-нибудь get_obj_name(), как обычно, 50 вызовов через 20 скриптов, то вообще - ни в сказке сказать, ни в слух произнесть. А ежели здесь написать - то сразу 7 суток бана по 2.1 2 Полтергейст: короче, я сюда выкладываю по кускам до чего руки дошли, и приведенное хотя-бы в читаемый вид. Из рассчета получить в итоге некую минимально рабочую систему, не конфликтующую с аmk/соль -based модами, но чтоб дальше не надо было что-то еще низводить до прежнего монстрообразного вида, прежде чем выложить. То есть, если, например, в скрипте ПРОСТЫХ быстрых таймеров используется переменная, добавленная в _g, так не надо было каждый раз ее обратно заменять на набор из 20 монстрофункций, и в итоге опять получить "45-е мая". Опять же рассчитываю, что ее чем-то дополнят, да хоть бы и теми же таймерами, но уже не "простыми". Но результат - закончить однажды эпопею с "адаптациями". Изменено 6 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Struck 61 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 Сделать движок "под себя" - это будет все же, себе. Сделать все процессы управляемыми через скрипт - значит дать возможность управления всем кто будет на базе этой платформы, делать что-то свое. В этом принципиальная разница и состоит. Что-бы делать для всех, надо переписать скрипты/конфиги до узнаваемого вида, и по возможности движок, в самой же игре абсолютно ничего не меняя, а это мало у кого получится. Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить, ну берем какого-нибудь модмейкера в вакууме у которого с точностью до наоборот понимание о ЗО, ты думаешь у него будет желание копаться в твоем моде? По мне так кажется что все и будут модить на оригинал, т.к. для каждого это способ заняться чем то по силам, а когда ты сделаешь все за него, ну какой уже интерес ковыряться? Я сам всегда хотел писать что-то свое, но когда понял что не по силам, использовал материалы, но оригинальных кодов старался не использовать (переписывал). @Dennis_Chikin, я все равно не понимаю зачем все переписывать, всякие "менеджеры" то оно понятно, переписываются часа за 2 одна штука с полным переводом конфига в скриптовую таблицу. Чем тебе не хватает инвентаря? Какие динамические квесты? С нынешним ИИ любая такая система будет провальна, а все это делать в стиле "типа было" - смешно. И, да, в скриптовый ПДА как раз можно перевести все диалоги, а прямой контакт вырезать, нуачо, сколько простыней то сразу уберем? Ну и можно будет диалоги прям текстом на ходу динамически выстраивать, о чем все так давно мечтали. Ну я правда не знаю кому это надо и кто в этом остро нуждается. Я сам об этом думал, но что бы так допекало, неа. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 6 Января 2015 Автор Поделиться Опубликовано 6 Января 2015 (изменено) "но что бы так допекало, неа." - ну вот именно что мирились. По тому что невозможно сделать все сразу. Пока, наконец, кого-то не допекло. По моим прикидкам в той же соли мегабайта 3 xml'ов сразу уйдет, остальное надо смотреть. И кой-чего добавится, что давно надо, но xml-ами это делать - нафиг-нафиг. По скриптотаблицам после выноса отовсюду в отдельный скрипт (было что-то руками вбито, включая устаревшее и с ошибками, что-то из ltx больше ни для чего не нужного формировалось - десятками экземпляров по всем местам), получилось итого 200 кил мгновенно читаемого (а не по полминуты каждый раз). Минус всякого рода "прихрамывания" на чтениях вот этого вот самого. "Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить" - я это возьму по любому. Хотя не факт, что не придется "драконить" на части с более простыми вызовами. Но оно в любом случае того стоит, чем с нуля делать. Кстати, взял бы еще много всякого разного отовсюду, если бы был простой быстрый апи. Собственно, почему вот весь "рефакторинг" - что я хочу таки это сделать, и потом туда еще интегрировать этого "всякого разного". Вот у того же Артоса, хотя бы, то, что сейчас не использую именно по тому, что надо все-таки вчитываться, и апи все-таки громоздок. И надо, блин, опять же "адаптировать". "Самодаптирующееся" должно быть. Впрочем, мы уже по кругу пошли, и вообще это в более соседнюю тему. Upd: "Самоадаптирующееся? Ну давайте тут все соберемся и напишем ... что-бы все понятно было как использовать" - ну, кое-что есть. Не Юбер, но зато просто и изящно. Собсьтвенно, тот же _g зачищаемый с комментариями начал выкладывать, по тому как кусочек маленький туда втыкается. И для того же просил версий класс-регистратора, чтоб уж совсем все "на автомате" подцеплялось. Немножко тормознулся тут на разных других вещах, но намерен продолжить. Upd2: "именно первое открытие, далее все было быстро" - а вот это нынче легко лечится. Года 4 назад просто готовить не умели такие вещи. Да тут можно даже не "собираться-договариваться", а банально, с миру по нитке. Вот прямо в те темы. Кой чего уже закинули, кой чего перенесу - будет время/настрой - так и кусочками выделю/вставлю туда, куда вижу... Изменено 6 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Struck 61 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 (изменено) @Dennis_Chikin, ты я так понял один скриптовый интерфейс возьмешь. Не бросишь же ты солянку изменив ей с судьбой зоны . Я же говорю о том, что бы мод себе в основу для разработки брать, а не по чему-то откуда-то дергать. Этим и я с успехом занимаюсь, т.к. не мазохист все сам писать. В этом и заключается база толкового мода, основываясь на опыте других писать нечто более "прямо работающее". У Артоса вполне понятный и приятный код, если не смотреть на сИНтаКсис, есть вещи конечно которые реально можно переписать, но нужно отдать дань времени, они писаны уже давным-давно, разумеется сейчас у всех другой уровень. Самоадаптирующееся? Ну давайте тут все соберемся и напишем уберфункционал, напишем сопроводилово, что-бы все понятно было как использовать, и тогда все новые скрипты будут реально просто адаптирующимися, это реально, просто это нужно сделать и пропиарить, донести народу что на этом будет работать гораздо лучше и проще, к тому же все получится "самооадаптирующееся", только это не надо ведь не кому, так? Каждый делает что-то свое, и любит помечтать в это же время "как круто было-бы, если-бы...", вместо того, что-бы общими усилиями сделать раз и навсегда нормальную основу и не парить в дальнейшем себе и всем мозг. Порой я не понимаю зачем существует столько команд и проектов, делать одно и тоже, ради чего? Ради лайков? Люди, такое ощущение, хотят двигать себя, а не моддинг, ну ладно, остановлюсь на этом . Кхм, и по поводу скриптового ПДА, тут вспомнил что сам подобное писал года 3-4 назад. Я конечно понимаю, что криворукий, но работало это все из ряда вон медленно (именно первое открытие, далее все было быстро, ибо табконтрол). Upd: Собсьтвенно, тот же _g зачищаемый с комментариями начал выкладывать, по тому как кусочек маленький туда втыкается.Да не о том я. Я предлагаю собраться всем страждущим в какое-то подобие команды, и обсуждая (в конфе например) что и как лучше переписывать - собственно переписывать. Т.к. один человек сделает по своему, второму не понравится он сделает по своему, а тут вроде все должны к консенсусу придти, далее это все выложим, оно и быстрее и качественнее априори выйдет. Еще раз повторю, кому амбиции позволяют, можете писать мне, я человек далекий от выкладывания своих модификаций Изменено 6 Января 2015 пользователем Struck Ссылка на комментарий
Zander_driver 10 334 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить, ну берем какого-нибудь модмейкера в вакууме у которого с точностью до наоборот понимание о ЗО, ты думаешь у него будет желание копаться в твоем моде? Ну во всяком случае копаться в моем моде ему будет проще, чем в подавляющем большинстве других. Комментарии-разбор функций и туторы по изменению всякоразного не заставят себя ждать. В том же скриптовом инвентаре - каждая функция уже сейчас снабжена комментарием, что это, и зачем. И да, широта и удобство настроек вполне позволяют сделать за базе Судьбы Зоны - полную ее противоположность, какую захотите. Может быть даже собрать полный аналог солянки, но при том нормально работающий. Вполне. И таки да. Сначала видео в известно какой теме. Потом еще видео. А уж потом, готовая платформа, с кодом, и к нему - подробным разбором и инструкциями, в которую можно еще и играть просто так, как в геймплейный мод. Кстати когда будете видео смотреть - там оно будет в том виде, какое мне надо для моего мода. Но, имейте в виду что небольшими манипуляциями все можно поменять до неузнаваемости. При разработке основной приоритет делался не на быстродействие и не на красоту кода, но, на максимальную широту функциональных возможностей. Впрочем, быстродействие вполне комфортное получилось тоже. Таки да, кроме цели сделать свой мод, есть еще маленькое желаньице продвинуть вперед моддинг в целом. Если в моих комментах к моему же коду кто-то да разберется (поидее несложно же, должно быть) - то это и получится. Да не о том я. Я предлагаю собраться всем страждущим в какое-то подобие команды, и обсуждая (в конфе например) что и как лучше переписывать - собственно переписывать. Т.к. один человек сделает по своему, второму не понравится он сделает по своему, а тут вроде все должны к консенсусу придти, далее это все выложим, оно и быстрее и качественнее априори выйдет. Еще раз повторю, кому амбиции позволяют, можете писать мне, я человек далекий от выкладывания своих модификаций Да собственно не факт что это так уж необходимо для общего "продвижения". Артос вот писал как бы сам себе, но его модули же используются многими. Почему? Да потому что он задался целью сделать универсально работающее всегда и везде, и при этом легко и удобно используемое. Та же цель и у меня. И вы пишите пусть даже каждый сам себе, но если при этом ваш код универсален и удобно используется, и снабжен понятным ридми - то кому то он пригодится, не сомневайтесь. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Struck 61 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 И вы пишите пусть даже каждый сам себе, но если при этом ваш код универсален и удобно используется, и снабжен понятным ридми - то кому то он пригодится, не сомневайтесь. Иногда код, написанный под конкретную задачу работает куда быстрее универсального, в этом и проблема. Да и предложив собраться я имею ввиду общими умами сооружать наиболее качественные функции, т.к. например я далеко не мастер, но свое мнение тоже имею, и мне было бы приятно поработать с теми кто лучше меня сечет (на благо Родины). Ссылка на комментарий
Zander_driver 10 334 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 Иногда код, написанный под конкретную задачу работает куда быстрее универсального, в этом и проблема Да это так, но, делать что-то принципиально новое - на чем удобнее? на универсальной системе которая предоставляет все необходимые возможности, или на куче узкоспециальных кодов каждый под свою задачу? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 успокойся, это никому не надо. Кому надо - делают сами Вот уж действительно говорите за себя, уважаемый. Все крепче убеждение, что "ничего не надо" - лично вам. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 6 Января 2015 Автор Поделиться Опубликовано 6 Января 2015 (изменено) Все просто: ветки. А поскольку язык - скриптовый, мы здесь до конфликта библиотек вряд-ли доживем. Все проблемы с "адаптациями" пока что успешно сводятся к тому, чтобы впихать мусор среди мусора (и поправить мусор в 20 скриптах), плюс отсутствие одной переменной, из за которой надо добавить себе 50 килобайт мусора, поскольку одну переменную добавить - религия не позволяет. После того, как мусор успешно вычистить, а религию чуток реформировать, вполне можно иметь и универсальный код, и быстрый. В смысле, параллельно, хоть в одном скрипте. Ну вот типа гляньте на тот xr_meet в "прозекторской" - там в комментариях даже отчасти цензурно. Изменено 6 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Полтергейст 37 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 (изменено) Dennis_Chikin Кстати, взял бы еще много всякого разного отовсюду, если бы был простой быстрый апи. Собственно, почему вот весь "рефакторинг" - что я хочу таки это сделать, и потом туда еще интегрировать этого "всякого разного". То есть опять всё сводится к тому, что нужен набор дописанных, переписанных и новых скриптов, которые сделали бы код более универсальным. А с адаптациями проблема в том, что в модах изменения общих скриптов не отделены от изменений скриптов, привязанных логике объектов и локаций - всё слишком переплетено, чтобы отделить. И ещё treasure_manager.script function CTreasure:dialog( npc ) local comm = npc.character_community() Там должно быть двоеточие вместо точки, надо поправить.Упс ! Спасибо. Что-то не проверил эту ветку. dc Мда, поправил, так поправил... Закинул вместо ООПшного от соли обезжиренной. Ну и черт с ним, с ООПшным... Все равно уже ни кому не нужен. Изменено 6 Января 2015 пользователем Dennis_Chikin Ссылка на комментарий
Struck 61 Опубликовано 6 Января 2015 Поделиться Опубликовано 6 Января 2015 (изменено) Вот уж действительно говорите за себя, уважаемый. Все крепче убеждение, что "ничего не надо" - лично вам. Язык сарказма вам неведом. Сам-то горазд отступить от своего мода и заняться "универсальным" рефакторингом в узком кругу скриптеров? Принципиально новое, универсальное, мешает делать отсутствие разумных идей для оного, а так я всем чем только можно "за". @Полтергейст, ага, он и нужен, что-бы любой скрипт я мог безболезненно вставить и выбросить, ничего не меняя абсолютно нигде, и это - реально. Полную автономию (даже на ивент-драйвен модели) сделать вполне можно, где даже ни в какой конфиг/таблицу не придется вписывать имя модули или чего еще. Этим я и предлагаю заняться, вы только представьте как будет удобно если каждый будет разрабатывать под стандартизированную систему любую свою работу, проблему со всякоразными адаптациями истребим на корню, а кривой код будет локализован этим скриптом. Вообще вот мне интересно, ради галочки, можете "поднять руку" те, кто реально готов бросить свои проекты и заняться подобным? Почему это нужно делать сообща - уже пояснил. Изменено 6 Января 2015 пользователем Struck Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 6 Января 2015 Автор Поделиться Опубликовано 6 Января 2015 (изменено) Я поступил пока просто и незатейливо: -- "ручная" инициализация модулей, для контроля корректности -- и обеспечения порядка инициализации для зависимых модулей string_format = string.format function log( ... ) _util.log( "_init", ... ) end function abort( ... ) _util.abort( "_init", ... ) end local t = { -- последовательность важна ! ["start"] = { -- инициализация глобальных таблиц и менеджеров "_util", -- служебные функции "_tbl_npc", -- разные забавные особенности неписей "_tbl_protected", -- защищенные предметы "_tbl_global", -- соответствия классов и типов "_tbl_outfits", -- костюмы "_tbl_levels", -- уровни "_tbl_treasures", -- тайники "_tbl_deathmgr", -- лут "_tbl_sounds", -- звуки "sound_theme", "amk_netpk", -- работа с нетпакетом "xl_imgr", -- кэши параметров предметов "amk" -- управляющий скрипт амк (помойка на самом деле) }, ["amk"] = {}, -- дополнения amk ["actor"] = { -- скрипты, требующие актора "actor_data", -- данные актора, нужны для всего онлайнового "ui_amk_options", -- опции солянки "fix_it", -- правки глюков allspawn 2010.14.08 "amk_timers", -- таймеры (сохраняются в pstor) "xr_sound", -- звук "news_manager", -- типсы, init не нужен, но пусть будет "sr_psy_antenna", -- пси-излучение, самоинициализируется, но для контроля вставим "bind_restrictor", -- обновление рестрикторов (в основном всякие "разрывающиеся рюкзаки" и прочая ересь "amk_spawn", -- спавн amk "inv_manager", -- инвентарь актора "dialogs", -- функции для диалогов "xl_offline", -- состояние объектов в офлайне (требует level) "amk_anoms", -- аномалии "bind_art", -- арты, для детектора, и будет еще для "контейнеров" "death_manager", -- лут "xl_online", -- состояние объектов в онлайне "xr_box", -- лут из ящиков -- не включать - init() дергается из конфигов -- "bind_physic_object" -- всякая всячина, от ящиков до БТР "news_data", -- тексты новостей "news_main", -- новости "level_weathers", -- смена погоды "ui_rad", -- шкала радиации "actor_effects", -- эффекты актора "treasure_manager", -- тайники "task_manager", -- квесты "dialog_manager", -- диалоги "sr_territory", -- стрельба на особых территориях, инициализация не нужна, но пусть будет "xl_relations", -- сообщества и отношения "bind_heli", -- вертолет "mob_combat", -- схемы монстров, не нужно, но чтобы было, для контроля "mob_death", "mob_panic", "mob_trade", "mob_trader", "arc_diary", -- дневники контролеров "bind_monster", -- онлайн-монстры -- "xr_motivator", -- онлайн-неписи "xr_wounded", -- ранения, чтобы было "sak", -- функции сюжета и диалогов Сяка -- "amk_offline_alife", -- офлайн, устарело ---- "tag_spb", -- превращение трупов в зомби при выбросе "amk_mod" -- большая помойка от АМК }, ["np_pda"] = { -- требуют netpacket_pda в онлайне "spawn_level_changer", -- телепорты и принудительные смены уровня "bind_mteleport", -- внутриуровневые телепорты, создание/удаление здесь же ---- "flamethrower", -- огнемет ---- "repair_check", -- ремонт и апгрейд ---- "aem_manager", -- арена -- "storyline", -- сюжет "escape_dialog", ---- "braad_test", -- функции сюжета, прибито гвоздями к all.spawn "kostya_dialog", -- функции сюжета и диалогов ---- "new_dialog", -- функции сюжета и диалогов ---- "wawka_dialog", -- функции сюжета и диалогов -- "arhara_dialog", -- функции для диалогов Архары "actor_devices", -- функции шмоток актора -- -- "amk_artmod", -- варка артов -- -- "ui_pda_art_mod", -- какой-то девайс для варки артов, устарело "biodetector", -- детектор монстров (раньше не нужен) "sleep_manager" -- сон } } local m_name = false function check( blk ) local f, pt1 local tt = t[blk] local pt2 = profile_timer() pt2:start() for i = 1, #tt do if m_name then abort( "error in module [%s]", m_name ) end m_name = tt[i] f = _G[m_name].init if f then pt1 = profile_timer() pt1:start() if f() then pt1:stop() log( "init", "init %s [%s], ok (%s)", m_name, blk, pt1:time() ) else pt1:stop() log( "warning", "init %s [%s], !true (%s)", m_name, blk, pt1:time() ) end m_name = false else abort( "init, no %s.init() [%s]", m_name, blk ) end end pt2:stop() log( "init", "profile time: %s", pt2:time() ) end Дергается из трех разных мест. А из соответствующих init() подключаемся в заранее предназначенные точки. Как бы пока достаточно. Ну, измерение времени - понятно для чего. Образец init() можно по ссылке выше посмотреть. Изменено 6 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Struck 61 Опубликовано 7 Января 2015 Поделиться Опубликовано 7 Января 2015 (изменено) @Dennis_Chikin, и такие простыни тоже нафиг не нужны. Все делается переписыванием всех файлов, это еще проще Абсолютно без каких-либо телодвижений скрипт подключается сам, о чем тут разговоры говорили давным давно и пытались сделать это с помощью каких-то prefetch для этого не предназначенных, к слову - у них не вышло. И кстати о: Да потому что он задался целью сделать универсально работающее всегда и везде, и при этом легко и удобно используемое. В этих его "хелперах" результаты работы всего комьюнити, т.е. делались они как-бы сообща, а Артос собрал все воедино, убрал ошибки, протестировал, и всем выдал, за что ему безмерная благодарность разумеется. Т.е. я это к чему, делать нужно опять-же - сообща, а не каждый в своей норе. Изменено 7 Января 2015 пользователем Struck Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти