Перейти к контенту
Dennis_Chikin

Рефакторинг

Рекомендуемые сообщения

Кстати да, хотя ничто не мешает эту муру(ненужную опциональность) перенести в сам менеджер, а еще никто не мешает собственный биндер боксов написать и уже да, работать непосредственно с боксами. Соственно как я и думал это можно вырезать к черту.

Ссылка на комментарий

Самое смешное, что он - есть ! Просто в одном флаконе со всякими дверями, прожекторами и прочими бтр'ами.

Кстати, почищенный и отформаченный: https://dl.dropboxusercontent.com/u/27871782/bind_physic_object.script

 

Убраны операции бессмысленные и беспощадные (закомменчены).

Оставленное - черная магия, без которой не работает.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

И снова я, теперь вопрос по тайникам:

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) написать?

Ссылка на комментарий

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 секунд при загрузке - да и ладно.

А потом - просто снести совсем за полной ненуностью и неземной кривизной. Вместе с раскиданными по локациям из олспавна "тайниками".

 

Все это - не нужно, и если по-уму, делается для одного конкретного тайника при выдаче, а потом вместе с ним и убирается.

Изменено пользователем Dennis_Chikin
  • Спасибо 1
Ссылка на комментарий

@Dennis_Chikin, ну так пока отрубишь от олспавна, пока полную аналогию на скриптах напишешь, долго больно. Проще написать скрипт который сам координаты и хабар получает... да и модель до кучи, и уже спавнить где угодно что угодно с чем угодно. Тем более подобное уже было, только поскольку идея опять же была подрезана, то там и задумка не до конца раскрыта, а ровно на столько, насколько подрезана идея. Займусь как-нибудь, тема реально интересная. Так же прицепить попутно идею ЗП, правда реализация ее тоже из ряда вон...

Ссылка на комментарий

Насколько я понимаю, здесь обсуждается переписывание оригинальных игровых скриптов, которые кочуют из мода в мод либо копипастой, либо с очень мелкими изменениями. На мой взгляд, проблема намного шире, чем просто оптимизация. Во-первых, надо обозначить, с какого набора скриптов (то есть - оригинал или какой-то мод, какая версия и т.д.) начинать, чтобы осилить и не "забуксовать", но в то же время чтобы изменения были заметными. Во-вторых, надо знать, какие вносятся правки - оптимизация и повышение производительности, правка багов, упрощение отладки, или же более глубокое переписывание механизмов игры. Если с этими вопросами не определиться, в правках не будет порядка.

  • Согласен 1
Ссылка на комментарий
@Полтергейст, успокойся, это никому не надо. Кому надо - делают сами, и (бес)порядок себе делай какой хочешь. К сожалению, разумеется.
Добавлено Dennis_Chikin,

Вот не надо говорить за всех.

Конкретно эта тема, с _g.script - она как бы в надежде, что у кого какие правленные куски найдутся - дополнят. Опять же лишьний раз посмотрят, в что в нем есть, отловят, что неправильно.

 

 

Ссылка на комментарий

Грубо говоря, вот такое, например:

 

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-е мая". ;)

 

Опять же рассчитываю, что ее чем-то дополнят, да хоть бы и теми же таймерами, но уже не "простыми".

 

Но результат - закончить однажды эпопею с "адаптациями".

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Сделать движок "под себя" - это будет все же, себе. Сделать все процессы управляемыми через скрипт - значит дать возможность управления всем кто будет на базе этой платформы, делать что-то свое. В этом принципиальная разница и состоит.

Что-бы делать для всех, надо переписать скрипты/конфиги до узнаваемого вида, и по возможности движок, в самой же игре абсолютно ничего не меняя, а это мало у кого получится. Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить, ну берем какого-нибудь модмейкера в вакууме у которого с точностью до наоборот понимание о ЗО, ты думаешь у него будет желание копаться в твоем моде? По мне так кажется что все и будут модить на оригинал, т.к. для каждого это способ заняться чем то по силам, а когда ты сделаешь все за него, ну какой уже интерес ковыряться? Я сам всегда хотел писать что-то свое, но когда понял что не по силам, использовал материалы, но оригинальных кодов старался не использовать (переписывал).

 

@Dennis_Chikin, я все равно не понимаю зачем все переписывать, всякие "менеджеры" то оно понятно, переписываются часа за 2 одна штука с полным переводом конфига в скриптовую таблицу. Чем тебе не хватает инвентаря? Какие динамические квесты? С нынешним ИИ любая такая система будет провальна, а все это делать в стиле "типа было" - смешно.

 

И, да, в скриптовый ПДА как раз можно перевести все диалоги, а прямой контакт вырезать, нуачо, сколько простыней то сразу уберем? ;) Ну и можно будет диалоги прям текстом на ходу динамически выстраивать, о чем все так давно мечтали. Ну я правда не знаю кому это надо и кто в этом остро нуждается. Я сам об этом думал, но что бы так допекало, неа.

Ссылка на комментарий

"но что бы так допекало, неа." - ну вот именно что мирились. По тому что невозможно сделать все сразу. Пока, наконец, кого-то не допекло.

По моим прикидкам в той же соли мегабайта 3 xml'ов сразу уйдет, остальное надо смотреть. И кой-чего добавится, что давно надо, но xml-ами это делать - нафиг-нафиг.

 

По скриптотаблицам после выноса отовсюду в отдельный скрипт (было что-то руками вбито, включая устаревшее и с ошибками, что-то из ltx больше ни для чего не нужного формировалось - десятками экземпляров по всем местам), получилось итого 200 кил мгновенно читаемого (а не по полминуты каждый раз). Минус всякого рода "прихрамывания" на чтениях вот этого вот самого.

 

"Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить" - я это возьму по любому. Хотя не факт, что не придется "драконить" на части с более простыми вызовами. Но оно в любом случае того стоит, чем с нуля делать.

 

Кстати, взял бы еще много всякого разного отовсюду, если бы был простой быстрый апи. Собственно, почему вот весь "рефакторинг" - что я хочу таки это сделать, и потом туда еще интегрировать этого "всякого разного".

 

Вот у того же Артоса, хотя бы, то, что сейчас не использую именно по тому, что надо все-таки вчитываться, и апи все-таки громоздок. И надо, блин, опять же "адаптировать".

 

"Самодаптирующееся" должно быть. Впрочем, мы уже по кругу пошли, и вообще это в более соседнюю тему.

 

Upd: "Самоадаптирующееся? Ну давайте тут все соберемся и напишем ... что-бы все понятно было как использовать" - ну, кое-что есть. Не Юбер, но зато просто и изящно.

Собсьтвенно, тот же _g зачищаемый с комментариями начал выкладывать, по тому как кусочек маленький туда втыкается. И для того же просил версий класс-регистратора, чтоб уж совсем все "на автомате" подцеплялось. Немножко тормознулся тут на разных других вещах, но намерен продолжить.

 

Upd2: "именно первое открытие, далее все было быстро" - а вот это нынче легко лечится. Года 4 назад просто готовить не умели такие вещи.

 

 

Да тут можно даже не "собираться-договариваться", а банально, с миру по нитке. Вот прямо в те темы. Кой чего уже закинули, кой чего перенесу - будет время/настрой - так и кусочками выделю/вставлю туда, куда вижу...

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@Dennis_Chikin, ты я так понял один скриптовый интерфейс возьмешь. Не бросишь же ты солянку изменив ей с судьбой зоны ;). Я же говорю о том, что бы мод себе в основу для разработки брать, а не по чему-то откуда-то дергать. Этим и я с успехом занимаюсь, т.к. не мазохист все сам писать. В этом и заключается база толкового мода, основываясь на опыте других писать нечто более "прямо работающее". У Артоса вполне понятный и приятный код, если не смотреть на сИНтаКсис, есть вещи конечно которые реально можно переписать, но нужно отдать дань времени, они писаны уже давным-давно, разумеется сейчас у всех другой уровень.

 

Самоадаптирующееся? Ну давайте тут все соберемся и напишем уберфункционал, напишем сопроводилово, что-бы все понятно было как использовать, и тогда все новые скрипты будут реально просто адаптирующимися, это реально, просто это нужно сделать и пропиарить, донести народу что на этом будет работать гораздо лучше и проще, к тому же все получится "самооадаптирующееся", только это не надо ведь не кому, так? Каждый делает что-то свое, и любит помечтать в это же время "как круто было-бы, если-бы...", вместо того, что-бы общими усилиями сделать раз и навсегда нормальную основу и не парить в дальнейшем себе и всем мозг. Порой я не понимаю зачем существует столько команд и проектов, делать одно и тоже, ради чего? Ради лайков? Люди, такое ощущение, хотят двигать себя, а не моддинг, ну ладно, остановлюсь на этом :).

 

Кхм, и по поводу скриптового ПДА, тут вспомнил что сам подобное писал года 3-4 назад. Я конечно понимаю, что криворукий, но работало это все из ряда вон медленно (именно первое открытие, далее все было быстро, ибо табконтрол).

 

Upd:

 

Собсьтвенно, тот же _g зачищаемый с комментариями начал выкладывать, по тому как кусочек маленький туда втыкается.

Да не о том я. Я предлагаю собраться всем страждущим в какое-то подобие команды, и обсуждая (в конфе например) что и как лучше переписывать - собственно переписывать. Т.к. один человек сделает по своему, второму не понравится он сделает по своему, а тут вроде все должны к консенсусу придти, далее это все выложим, оно и быстрее и качественнее априори выйдет.

Еще раз повторю, кому амбиции позволяют, можете писать мне, я человек далекий от выкладывания своих модификаций ;)

Изменено пользователем Struck
Ссылка на комментарий

 

 

Даже взять тебя, ты надеешься что твой мод кто-то возьмет и будет на его основе что-то лепить, ну берем какого-нибудь модмейкера в вакууме у которого с точностью до наоборот понимание о ЗО, ты думаешь у него будет желание копаться в твоем моде?

Ну во всяком случае копаться в моем моде ему будет проще, чем в подавляющем большинстве других. Комментарии-разбор функций и туторы по изменению всякоразного не заставят себя ждать. В том же скриптовом инвентаре - каждая функция уже сейчас снабжена комментарием, что это, и зачем. И да, широта и удобство настроек вполне позволяют сделать за базе Судьбы Зоны - полную ее противоположность, какую захотите. Может быть даже собрать полный аналог солянки, но при том нормально работающий. Вполне.

И таки да. Сначала видео в известно какой теме. Потом еще видео. А уж потом, готовая платформа, с кодом, и к нему - подробным разбором и инструкциями, в которую можно еще и играть просто так, как в геймплейный мод.

Кстати когда будете видео смотреть - там оно будет в том виде, какое мне надо для моего мода. Но, имейте в виду что небольшими манипуляциями все можно поменять до неузнаваемости. При разработке основной приоритет делался не на быстродействие и не на красоту кода, но, на максимальную широту функциональных возможностей. Впрочем, быстродействие вполне комфортное получилось тоже.

 

Таки да, кроме цели сделать свой мод, есть еще маленькое желаньице продвинуть вперед моддинг в целом. Если в моих комментах к моему же коду кто-то да разберется (поидее несложно же, должно быть) - то это и получится.


 

 

Да не о том я. Я предлагаю собраться всем страждущим в какое-то подобие команды, и обсуждая (в конфе например) что и как лучше переписывать - собственно переписывать. Т.к. один человек сделает по своему, второму не понравится он сделает по своему, а тут вроде все должны к консенсусу придти, далее это все выложим, оно и быстрее и качественнее априори выйдет. Еще раз повторю, кому амбиции позволяют, можете писать мне, я человек далекий от выкладывания своих модификаций

 

Да собственно не факт что это так уж необходимо для общего "продвижения". Артос вот писал как бы сам себе, но его модули же используются многими. Почему? Да потому что он задался целью сделать универсально работающее всегда и везде, и при этом легко и удобно используемое. Та же цель и у меня. И вы пишите пусть даже каждый сам себе, но если при этом ваш код универсален и удобно используется, и снабжен понятным ридми - то кому то он пригодится, не сомневайтесь.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

 

 

И вы пишите пусть даже каждый сам себе, но если при этом ваш код универсален и удобно используется, и снабжен понятным ридми - то кому то он пригодится, не сомневайтесь.

Иногда код, написанный под конкретную задачу работает куда быстрее универсального, в этом и проблема. Да и предложив собраться я имею ввиду общими умами сооружать наиболее качественные функции, т.к. например я далеко не мастер, но свое мнение тоже имею, и мне было бы приятно поработать с теми кто лучше меня сечет (на благо Родины).

Ссылка на комментарий

 

 

Иногда код, написанный под конкретную задачу работает куда быстрее универсального, в этом и проблема

Да это так, но, делать что-то принципиально новое - на чем удобнее? на универсальной системе которая предоставляет все необходимые возможности, или на куче узкоспециальных кодов каждый под свою задачу?

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

 

 

успокойся, это никому не надо. Кому надо - делают сами

Вот уж действительно говорите за себя, уважаемый. Все крепче убеждение, что "ничего не надо" - лично вам.

 

 

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Все просто: ветки. А поскольку язык - скриптовый, мы здесь до конфликта библиотек вряд-ли доживем.

 

Все проблемы с "адаптациями" пока что успешно сводятся к тому, чтобы впихать мусор среди мусора (и поправить мусор в 20 скриптах), плюс отсутствие одной переменной, из за которой надо добавить себе 50 килобайт мусора, поскольку одну переменную добавить - религия не позволяет.

 

После того, как мусор успешно вычистить, а религию чуток реформировать, вполне можно иметь и универсальный код, и быстрый. В смысле, параллельно, хоть в одном скрипте.

 

Ну вот типа гляньте на тот xr_meet в "прозекторской" - там в комментариях даже отчасти цензурно. ;)

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Dennis_Chikin


Кстати, взял бы еще много всякого разного отовсюду, если бы был простой быстрый апи. Собственно, почему вот весь "рефакторинг" - что я хочу таки это сделать, и потом туда еще интегрировать этого "всякого разного".

То есть опять всё сводится к тому, что нужен набор дописанных, переписанных и новых скриптов, которые сделали бы код более универсальным. А с адаптациями проблема в том, что в модах изменения общих скриптов не отделены от изменений скриптов, привязанных логике объектов и локаций - всё слишком переплетено, чтобы отделить.
 
И ещё
 
treasure_manager.script

function CTreasure:dialog( npc )
    local comm = npc.character_community()

Там должно быть двоеточие вместо точки, надо поправить.

Упс ! Спасибо. Что-то не проверил эту ветку. dc

Мда, поправил, так поправил... Закинул вместо ООПшного от соли обезжиренной. Ну и черт с ним, с ООПшным... Все равно уже ни кому не нужен.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
Вот уж действительно говорите за себя, уважаемый. Все крепче убеждение, что "ничего не надо" - лично вам.

Язык сарказма вам неведом. Сам-то горазд отступить от своего мода и заняться "универсальным" рефакторингом в узком кругу скриптеров? Принципиально новое, универсальное, мешает делать отсутствие разумных идей для оного, а так я всем чем только можно "за".

 

@Полтергейст, ага, он и нужен, что-бы любой скрипт я мог безболезненно вставить и выбросить, ничего не меняя абсолютно нигде, и это - реально. Полную автономию (даже на ивент-драйвен модели) сделать вполне можно, где даже ни в какой конфиг/таблицу не придется вписывать имя модули или чего еще. Этим я и предлагаю заняться, вы только представьте как будет удобно если каждый будет разрабатывать под стандартизированную систему любую свою работу, проблему со всякоразными адаптациями истребим на корню, а кривой код будет локализован этим скриптом.

 

 

Вообще вот мне интересно, ради галочки, можете "поднять руку" те, кто реально готов бросить свои проекты и заняться подобным? Почему это нужно делать сообща - уже пояснил.

Изменено пользователем Struck
Ссылка на комментарий

Я поступил пока просто и незатейливо:

 

-- "ручная" инициализация модулей, для контроля корректности
-- и обеспечения порядка инициализации для зависимых модулей

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() можно по ссылке выше посмотреть.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

@Dennis_Chikin, и такие простыни тоже нафиг не нужны. Все делается переписыванием всех файлов, это еще проще ;) Абсолютно без каких-либо телодвижений скрипт подключается сам, о чем тут разговоры говорили давным давно и пытались сделать это с помощью каких-то prefetch для этого не предназначенных, к слову - у них не вышло.

 

И кстати о:

 

 

Да потому что он задался целью сделать универсально работающее всегда и везде, и при этом легко и удобно используемое.

В этих его "хелперах" результаты работы всего комьюнити, т.е. делались они как-бы сообща, а Артос собрал все воедино, убрал ошибки, протестировал, и всем выдал, за что ему безмерная благодарность разумеется. Т.е. я это к чему, делать нужно опять-же - сообща, а не каждый в своей норе.

Изменено пользователем Struck
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...