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

Рефакторинг

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

Таки не совсем без телодвижений. Есть еще зависимости, когда одно без другого не заводится. Иди еще бывают рекурсивные ссылки, которые пока еще все от всюду вычистишь... Ну вот я напрягаться и не стал, а просто заношу в нужном порядке.

 

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

 

Ну как бы уже писал - гонюсь не за универсальностью и академичностью, а за минимумом телодвижений и возможностью "охватить взглядом" хотя бы нужный блок, если уж не функцию. В смысле, и что у него внутри делается, а не только на уровне псеВд00смЬIслЕнНыхНаZвАниЙ.

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

 

 

Таки не совсем без телодвижений. Есть еще зависимости, когда одно без другого не заводится. Иди еще бывают рекурсивные ссылки, которые пока еще все от всюду вычистишь... Ну вот я напрягаться и не стал, а просто заношу в нужном порядке.

 

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

 

На логи это никак не повлияет, все ошибки будут видны. 

 

Я гнался в последнее время за "сжатостью кода" и скоростью, код у меня такой, что сам порой не пойму (прогонял через обфускатор), но зато желаемое все же получил. Сейчас все что хотел уже сделал, и больше уже не пишу, вот захожу в подобные темы просто поговорить :). И да, как и многие здесь присутствующие могу начать пиарить свою систему скриптов, т.к. на ней тоже приятно и легко работать, если разобраться... как в прочем и на любой из ваших (ключевое слово я думаю вы поняли ;)). 

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

О какой тогда "общей системе" может идти речь если тут почти до трио дошло?

нужно делать "общую систему"

Как? Я спрашиваю, как эту систему писать, если тут все при своем мнении? Изменено пользователем Desertir
  • Нравится 1

ТЧ 1.0004. SAP и Trans mod

github

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

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

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

Ну таки прогресс то происходит со временем. технологический, хоть какой то. В наше время, создавая новый проект, люди чаще начинают все-таки - уже не с чистого ТЧ. (хотя я именно с него начал :D )

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

Вот мы пишем вроде что-то неплохое. в принципе полезное, наверно. И вероятно свои пять копеек в эту копилку закинем. И хоть квартетом хоть как угодно. Хуже то точно не будет, правда?)

 

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

Я к примеру, отлично знаю что я буду для этого делать.

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

Изменено пользователем Zander_driver

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

Как это не с чистого ТЧ? А как же амбиции?

По поводу пяти копеек - хуже будет по определению, @Desertir на это явно указал. Один будет тянуть в сторону универсальности, второй скорости, третий академичности, мне странно что ты этого не понял.

 

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

"что ты сделал для того" - Я даже ее не выложил. И не собираюсь. Какие еще мануалы? :)

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

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

 

Это не полуоффтоп. Каждый что-то делает, но ни у кого из вас я уверен целиком и полностью работу за основу не возьмут. "Пиксельно" из каждой работы повыдирают, что по глазу пришлось, и все. Почему? Все просто. Ваши системы не идеальны (сейчас это частый увидит, прошли времена смуты, когда все себе в фундамент брали амк). И если они у вас не дают сбоев, и вы в них не видите явных ошибок - это вовсе не значит, что их нет. Это кстати один из ответов на вопрос: "А какого хрена, ты, Struck, умничаешь тут, а на деле от тебя нифига нет?" ;).

 

Для тех кто еще не понял, я буду говорить "все безнадежно" до тех пор, пока мы тут все не соберемся, и повозку в одну сторону не потянем. А этим мешают заняться ваши бесконечные персональные амбиции моды, т.к. работаете по 3-4 года, потом выпускаете, потом это оказывается Beta, и занимаетесь дальше непонятно чем (а имя этому - Full версия). Причем ладно-бы это еще было уровня лост альфы, так ведь нет, и все равно делаете.

 

По скольку раз  его уже исправляли ? Вот так вот чисто прикинуть ?

Ну так вывод-то какой? Уже не первый, да и не десятый пост пытаюсь это донести, а Зандер все свое твердит, все у него идеально и безупречно. Изменено пользователем Struck
  • Нравится 1
Ссылка на комментарий

"И вероятно свои пять копеек в эту копилку закинем. И хоть квартетом хоть как угодно. Хуже то точно не будет, правда?)"

О ! Собственно, ради чего, и.
Кстати, в скриптах недавно хваленые Артосомодули исправленные закидывали. У меня просто руки не доходят перенести куда надо.

 

Что я хочу на первом этапе - чтобы каждые не делал одно и то же одновременно, но в подполье. Вбухивая кучу времени на зачистки мусора, и борьбу с теми же рекурсиями.  Уже хлеб будет.

На самом деле даже короткий анонс  - и тот полезен.

 

Ну и про "не видите явных ошибок" - см. выше про те же артосомодули. Да и недавнего кровососа из скриптования тоже в сюда же можно вспомнить. По скольку раз  его уже исправляли ? Вот так вот чисто прикинуть ?

 

P.S. Да, неписи, в кострах сидящие, полагаю, у всех 5 лет назад исправлены ? А то я вот на парочке соседних форумов буквально пару месяцев опять видел рассуждения, про то, что в пути надо "_task" добавлять. ;)

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

Я модом уже давно не занимаюсь.

За основу все равно надо брать оригинал и на него накатывать "нужные" "универсальные" скрипты/функции/модули/строчки кода.

Как решить проблему правильности того, как же надо писать скрипты? Ответ - так, чтобы игра работала как можно быстрее и надежнее. Все скрипты в академ. целях идут лесом, а точнее в статьи, просто потому, что это решается на уровне документации, и в релизе никогда такого не должно быть. Это я про то, что в скриптах не надо разбираться тому, кто хочет их использовать, этому человеку просто нужен текст, который описывает, что дает та или иная возможность. В скриптах разбираются в 2-х случаях, если это просто интересно другому скриптеру или их надо исправлять, т.е. написаны они (скрипты) неверно.

Ну а если есть два, три, четыре решения одной проблемы, тут надо просто думать, что будет лучшим в данной ситуации.

ТЧ 1.0004. SAP и Trans mod

github

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

 

 

а Зандер все свое твердит, все у него идеально и безупречно.

Я такого не говорил, если что :) и у меня монстрообразного хлама хватает, не забудь что я начинающий, ага?)

 

 

Уже не выйдет. Денис заберет интерфейс, не переживай.

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

 

 

Все просто. Ваши системы не идеальны

Да знаю я. А ты думаешь если все соберутся и попробуют что-то вместе написать, лучше выйдет? Вот тут я сильно сомневаюсь. У семи нянек известно что с дитем случается.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

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

 

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

 

Про семь нянек. Я же не говорю о том, чтобы пилить один скрипт всемером, я говорю о том что-бы работать над всем в ЕДИНОМ ключе, а не каждый как ему хочется. Собрать круглый стол, сообразить устраивающую всех систему, сИнтАкСИс и прочее. И распределять работу, кто шарит похуже, вроде меня, перерабатывает че-нибудь простое типа каких-нибудь всеми любимых менеджеров, а кто посильнее - те что-то вроде логики. Ведь общими умами я думаю можно прийти к гораздо более лаконичному решению задач, нежели в одиночку. А поскольку среди этой возможно попадутся "известные" личности, они пропиарят потом эту систему. Распишем подробный мануал как пользоваться, и в принципе многое решится. Либо будем ждать кого-то вроде monk'a, который для всех скриптов сделает compilation fixes из всего что где-либо существует под оригинал.

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

@Struck, ну мы же говорим об универсальности, да и комменты в коде никто не убирал. ИМХО тот, кому надо, разберется в чем угодно. Я не говорю, что надо писать скрипты с обфускаторами или прогонять их через минифайеры (ну которые ненужные пробелы удаляет), их надо писать просто грамотно с точки зрения программирования. На самом деле адекватный код читается без комментов намного легче, чем полный бред с ними. Конечно, односточниками можно заниматься, но не надо переусердствовать.

В общем уже есть предложение собрать короля Артура и Ко, выяснить явные косяки скриптов, исправить их (написать свои или взять готовое), создать платформу с функционалом, который используется в большинстве больших модов, доработать его, если требуется. Что я упустил или забыл? Цель такая? Там чтото про универсальность было, скажите в конечном итоге, что это значит. Лично я это понимаю так: подключение любого модуля к любому набору "родных" модулей так, чтобы это не вызвало сбоев в работе "родных" модулей и подключаемого с сохранением полной функциональности. Т.е. взяли скрипт, положили в геймдату, в другом вызываем функцию из нового скрипта, и все ок. Это?

Изменено пользователем Desertir

ТЧ 1.0004. SAP и Trans mod

github

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

Фигня это, пр круглый стол, и единый синтаксис. Не нужная.

 

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

А занялся чем-то более приоритетным.

 

Если меня тот ПЛА не устроит чем-то - так поправлю, как надо будет. Делов-то...

 

Что нужно на самом деле: вот этот долбаный actor в _G я заявил, и дальше уже не парюсь, чтобы весь свой код обратно низводить до "совместимости с 1.0004".

amk_netpk выложил - теперь Struck таки будет xr_wounded.script смотреть - так знает, где найти, если что. Впрочем, там все то же самое, что было в амк, только быстрое, и ошибки исправлены.

 

Как-то так.

 

 

"выяснить явные косяки скриптов, исправить их (написать свои или взять готовое),"

Ну так подключайтесь.

 

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

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

Видимо я чего то до сих пор не понял.

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

Лично я хочу понять, что тут происходит, и, если это интересно и полезно, то чем то помочь, но пока в аутсайдерах по пониманию.

ТЧ 1.0004. SAP и Trans mod

github

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

-- вот кто-нибудь знает, ЧТО ЭТО ? Не, то, что это - похмельный бред - я сам знаю.

Не бред, а постановка экшена для моба в очередь. Хотя написать можно было бы и получше, да.

 

upd: например так:

function action(obj, ...)
    local arg = {...}
    local act = entity_action()
    for k, v in pairs(arg) do
        act:set_action(v)
    end
    if obj then
        obj:command(act, false)
    end
    return entity_action(act)
end
Изменено пользователем Shadows
  • Нравится 1
Ссылка на комментарий

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

 

Да и к ОП2, если присмотреться, там правки не только "все сломать", но и кой-какой новый функционал понаделали, а кой-чего и исправили, что давно надо было. Не самым лучшим образом, но тем не менее.

 

И этим всем пользуются. А вот все, что "да зачем оно", и "чтоб не украли" - или вообще пропало с концами, или таки именно украли. (причем одно не исключает другое).

 

Короче, все просто: видим интересное - берем. Имеем интересное - выкладываем. Видим, что что-то надо поправить - поправляем. Видим, как красиво и аккуратно одно состыковать с другим - стыкуем.

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

Короче, все просто: видим интересное - берем. Имеем интересное - выкладываем. Видим, что что-то надо поправить - поправляем. Видим, как красиво и аккуратно одно состыковать с другим - стыкуем.

Где есть список того, что исправлено, что нуждается в доработке, а где вообще поле непаханое?

Разве не будет набора универсальных скриптов, где я могу прочесть, что и где есть в разных модулях, какие там функции/классы и что делают, скачать часть нужных мне модулей и не париться за внутренности? А просто юзать "из коробки".

PS: @Dennis_Chikin, что же ты все цепляешься за солянки и ОП2?

ТЧ 1.0004. SAP и Trans mod

github

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

Усе будет, но не все мгновенно.

 

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

 

А вот скриптики от нее отвязываю, по-тихоньку.

 

 

2 Shadows: на самом деле даже

function action( obj, ... )
	local act = entity_action()
	for i, v in ipairs( { ... } ) do act:set_action( v ) end
	if obj then obj:command( act, false ) end
	return entity_action( act )
end


function action_first( obj, ... )
	local act = entity_action()
	for i, v in ipairs( { ... } ) do act:set_action( v ) end
	if obj then obj:command( act, true ) end
	return entity_action( act )
end
- просто не дошли руки до выкладывания следующего куска, поскольку не проверено и не оттестировано нормально. А вот всего скрипта, пригодного к выложить - как-то до сих пор нет. Полуфабрикат какой-то... Вот и откладывал в долгий ящик.

 

Зачем это надо было бы переписать - да чтоб хотя-бы понятно было, какие функции там вообще есть, и как их использовать. А не гадать, что там за if ... == nil then break, и есть ли в этом глубокий сакральный смысл, который нам неизвестен.

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

@Dennis_Chikin

А почему for i, v in ipairs ?

for i = start, end, step do раза в два быстрее.

Ну на одну строку больше будет ?

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

2 Shadows: на самом деле даже

От того что в одну строчку написал - быстрее не будет :D

 

А вот на читаемость кода влияет.

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

local arg = {...} - на самом деле вот это присвоение здесь совсем лишнее.

Ну и pairs vs. ipairs.

 

Почему не оставить arg, и не for i = 1, #arg do что-то там arg ? - А вот как раз доли наносекунд ловить уже лениво. Этож еще специально тест писать, чтоб проверить... А громоздкость конструкции - на лицо.

 

Но ежли кому не лень - да, проверьте варианты. Интересно. ;)

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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