Dennis_Chikin 3 658 Опубликовано 2 Декабря 2014 (изменено) Ну... Жрет вызов функции. Факт. Жрет выборка из таблицы в зависимости от размера таблицы. 2 выбора из таблицы жрут больше, чем 1 выбор из таблицы, даже довольно большой, но меньше, чем вызов функции. Мораль: обратно ломать, чтоб все как было - ничего не будем. И, да, если нечто используется довольно часто, и есть форма записи, которая быстрее, чем другая - почему бы и не использовать более быструю ? Изменено 2 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 2 Декабря 2014 (изменено) Ломая совместимость чего ? И мне казалось, что profile_timer() выдает результаты в микросекундах. Изменено 2 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 4 Января 2015 (изменено) "Выпиливать" иногда приходится элементарно для того, чтобы разобраться, как оно вообще работает. Многое выглядит, как прогнанное через обфускатор (а может быть и не "как"). Плюс начинаешь разворачивать, а там такое... От банальных опечаток и до, действительно "надо доктора вызывать". Изменено 4 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 5 Января 2015 (изменено) Вот это - function isWeapon(object)local clsid_weapon = { [clsid.wpn_ak74_s] = true, [clsid.wpn_bm16_s] = true, [clsid.wpn_grenade_f1] = true, [clsid.wpn_grenade_fake] = true, [clsid.wpn_grenade_launcher] = true, [clsid.wpn_grenade_rgd5] = true, [clsid.wpn_grenade_rpg7] = true, [clsid.wpn_groza_s] = true, [clsid.wpn_hpsa_s] = true, [clsid.wpn_knife_s] = true, [clsid.wpn_lr300_s] = true, [clsid.wpn_pm_s] = true, [clsid.wpn_rpg7_s] = true, [clsid.wpn_shotgun_s] = true, [clsid.wpn_svd_s] = true, [clsid.wpn_svu_s] = true, [clsid.wpn_usp45_s] = true, [clsid.wpn_val_s] = true, [clsid.wpn_vintorez_s] = true, [clsid.wpn_walther_s] = true,} return (object and clsid_weapon[object:clsid()])end - по Вашему - ЧТО ? Только заполнена неправильно, и реализация, опять же, странна (создание таблицы при каждом вызове). Плюс к тому, за заведомый бред, запощенный в этот раздел, про lua_help в частности, хотя скриптовые классы на самом деле определяются в class_registrator, будете отправляться в r/o каждый раз, как оттуда вылезете. Изменено 5 Января 2015 пользователем Dennis_Chikin 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 24 Января 2015 Опять за рыбу деньги... Есть полтора десятка разных поделий, с которыми имеем эффект хромоты. Меняем вызовы тупо поиск/замена - эффект пропадает. Дальше уже можно спокойно разбираться по отдельности с каждым поделием. С Вариантом Артоса - разница на порядки во-первых, во-вторых - замена в данном случае не проще, чем сразу все переписать. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 24 Января 2015 "волоча за собой 13-гигабайтный прицеп глобального мода" Ну вот собственно да. Это и есть ответ на все вопросы, заданные выше, кроме как про то, чтобы кому-то сделать уже хорошее годное описание того, что мы имеем к 15-ому году в смысле движков. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 27 Января 2015 (изменено) Ну, давайте поговорим о кулинарии. Во-первых, кстати, да: я надеялся альтернативные варианты здесь тоже увидеть. С описаниями. Что касается амк, то вот до меня, например, доползли сон, выброс и новости. Ну и еще порча костюмов в луте. Плюс какие-то странные простыни с выбрасыванием предметов. Как он сделано - создаются эти самые таймеры, перебираются с лютой, бешеной частотой, наконец срабатывают и удаляются. По срабатыванию проверяется количество этих самых срабатываний, как-то подобранных для прибитого гвоздями значения в alife.ltx, создается запускается новый таймер. Зачем ? Если по факту раз n секунд надо лишь проверить, не наступило ли собственно время для события х. То есть, сравниваем нашу константу с game_time(). При чем здесь таймеры ? С лутом - там вообще все странно, поскольку задача - дождаться появления искомого предмета в онлайне, и что-то с ним сделать, и выжидать ровно секунду (при этом зачем-то сохраняя ее в сэйвах !) - это либо много, либо, кстати, можно вполне и на любимое всеми "e-entity" напороться, если трупик далеко лежит. О простынях в полмегабайта функций на выбрасывание предмета - ничего не скажу, по тому что п2.0 правил. Все написано в теме про инвентарные коллбэки. То есть, где и для чего именно нужен именно таймер - я так и не понял. Может быть кто-нибудь разъяснит. Итого, по ссылкам - костыль, на время, пока эти простыни станного не будут заменены на что-то более другое. P.S. По сну - меня в принципе вполне устроило то, что выложено здесь. Секунды ловить - неинтересно. Да и в общем-то не планируется ни каких таких "длинных" апдейтов во время "промотки". Ну а в этой теме он лежит именно для иллюстрации, поскольку остался единственный таймер, понятия не имею для чего используемый и используемый ли вообще. Но остался. P.P.S. Да, надеюсь, что руки дойдут до расписать смысл и устройство предлагаемого костыля, поскольку он тоже, в какой-то степени, "комплексный". Но опять же, рассчитан на то, что в него ДОПИСЫВАТЬ ничего не надо - полностью управляется "внешними" скриптами. А вот избыток "интегрирования" - я считаю, что не есть хорошо. Но, возможно, кому-то удобнее "интегрированное". Изменено 27 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 27 Января 2015 "Для чего нужно ООП?" - вот понятия не имею. Типа, как бы, для сокращения времени разработки, но вот по реализациям - я бы не сказал. Наличие определенной дисциплины при создании библиотек было бы на много полезнее. Возвращаясь к кулинарии: 1. создаем таймер. 2. перебираем таймеры. В цикле. 3. выполняем запуск по таймеру. 4. удаляем таймер. 5. пересоздаем таймер. А еще - сохраняем и и загружаем таймеры + параметры. Ради чего ? Ради одного действия в известный момент времени. Ну, преобразование количества срабатываний во время - это уже вообще за гранью бобра и зла. Вообще я вижу им применение - это многократные но иррегулярные события через плохо предсказуемые промежутки времени. Ага, теперь осталось такие события найти. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 28 Января 2015 (изменено) Ну вот как бы +1, но это еще надо сделать. А пока годика 3 как есть вот такая штука, которую можно использовать, банально заменив в вызовах префикс с amk. на amk_netpk., или вообще банально копипастой нужного к себе (что с amk не получится). Изменено 28 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Января 2015 Страшный и ужасный pstor - всего-лишь табличка. И при вызове сохранения сохраняется фактически руками. Эрго, в 2015 году уже можно добавить в движок сохранение данных произвольного объема. Но поскольку всем лень, то если уж у кого-то каким-то загадочным образом образовался pstor жуткого размера - просто добавить проверку на размер пакета, и после 6, скажем, кило, сохранять в более другой. Слава Маландринусу - есть в куда. А вот городить какой-то дополнительный апи с покером и гейшами^W^W^W объектами и какими-то ивинтами - смысла не вижу. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 29 Января 2015 (изменено) На самом деле напишите уже кто-нибудь success story по сборке, для начала. И по успешному использованию собранного. Начиная с того, где брали софт, и как устанавливали. А то у меня лично все кончилось тем, что какая-то студия потребовала денег и отказалась и работать, и переустанавливаться, и удаляться. Так и требует какой-то диск h: и денег. В отличии от gcc во фре, с которым сроду ни каких проблем не было. Так и болтается. Вот только боюсь, что на gcc я точно ничего под вынь не соберу. Изменено 29 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 (изменено) Больше флуда богу флуда !Ну, давайте подискутируем. тем более, что темы были осмыслены в более другом разделе, а сейчас уже пора по 3-4 поста из каждой перетащить в "прозекторскую", а под остальное, похоже, вообще флудилку специально выделенную делать. И, кстати, на самом деле оная флудилка бы с самого начала не помешала.Во-первых, вот в первом посте, сразу после ссылок так и было написано: "а вообще - не нужны". Не нужны - это значит - ни в каком виде. Ну, то есть, если у кого-то есть ВМЕСТО этого нечто сложное и навороченное - наверное, он их зачем-то применяет. А если незачем - то и не применяет.Про on_drop'ы в амк тоже все сказано, и вышеупомянутые системы сложные и навороченные - их существование не значит, что теперь надо взять, и амк-простыни, солянкопростыни, а тем более, простите за нецензурное слово, ОП2 простыни перетаскивать под..., зачем-то тщательно сохранив все on_drop'ы.Вот что я не понимал никогда, и понять, наверно, не смогу - это вот ну выложен код, ладно, не нужен он вам - что за бурная такая реакция "зачем выложили". Затем. Чтоб побурлило. А может быть и для того, что если оно кому не надо - а кому, глядишь, зачем-то и надо.И, да, читаем мы тоже знатно, этак, по диагонали. Ну, собственно, в неповторимом стиле взаимоисключающих параграфов, хотя как вот так вот писать можно - это я еще представляю, а вот чтоб читать - так это мне еще учиться и учиться. В общем, вы (обращено к неопределенному кругу лиц) как-то определитесь, что-ли: или срочно переносим 500 проверок на on_drop под se_stor, или все ж как-нибудь обойдемся ? А вот под два события за все игру - тут как-то тоже может позволить всем сами решать: или водружать se_stor для этого, или из амк копипастить, или вот огрнаичиться предложенными двумя десятками строк ?Не говоря уже о том, что кто-то может тупо решит проверку в on_spawn к актору запихать, или и вовсе в диалог...Или, еще, да, вот кто-то увидел что-то, что ему не понравилось, поменял, и выложил. Тоже просто из соображений, что кому оно - того, а кому - и не того.Другой счел, что можно сделать лучше, и написал: как именно. То есть, что, где и на что поменять. Или чем заменить, тоже конкретно с примером. Глядишь, моддинг куда-нибудь и продвинется. Ну, по крайней мере шансов хоть на полпроцента, но больше, чем во всех подряд темах грозно вопрошать: "КТО РАЗРЕШИЛ ?" и "Почему строем не ходите?"А вот ни кто не разрешил. Хочу - и переписываю. А строем ходить - не хочу, вот и не хожу. Чего и всем остальным желаю. P.S. Да, на приоритеты ваши ни кто здесь не покушается. Считаете, что незаслуженно забыты - так и напишите.Хотя и не всякий велосипед того стоит. Но пусть будет хоть для истории. Опять же, выложенная в общий доступ реализация, с пояснениями - что, и зачем - оно и приоритет застолбит наилучшим образом, и от велосипедов, кого, глядишь, сохранит.Опять же, кто совсем не знает "как работает" или "как сделать" - будет иметь перед глазами хоть какую-то базу для размышлений и последующих более конкретных вопросов. Изменено 30 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 (изменено) Судя по регулярно происходящему в других темах - таки нужна.Вот здесь как раз можете спросить про "зачем создали эту тему ?" А также про ООП, про как заниматься моддингом и его устарелости неустарелости, кто как его себе представляет и т.д. В общем, для много слов "обо всем". Что в более специализированные темы не лезет, но поговорить давно хотелось и хочется. Но таки да, пп 2.0, 2.1 и даже 2.5 правил здесь вполне таки действуют. Изменено 30 Января 2015 пользователем Dennis_Chikin 5 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 (изменено) Важнейшим из искусств для нас является флуд ! По тому что вот щас сюда страницы три сразу перетащу, как минимум. Изменено 30 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 (изменено) Да ну, "ни кто не говорил". Только вот сюда перетащенное глянуть... Не считая снесенного. По on_drop - да, полезный пост был. Но ведь и его проигнорировали - и это был не я. Не будем показывать пальцем, но опять же на этих 4-х страницах можно найти. А я уже просто так сказать, "по итогам" пост написал. В общем, давайте все-таки обойдемся без выискивания несуществующих оскорблений, и будем воздерживаться от реальных ? Даже и в теме "обо всем". Вот есть у каждого что-то свое - так вот лучше и написать, для чего именно и как именно оно используется. А уж кто что умеет готовить - собственно, из этого и видно будет. Изменено 30 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 (изменено) Не, без переводчика, чувствую, ни как. Я вообще-то про то, что люди вот прямо сейчас, в 2015 году, продолжают копипастить вот эти самые - неназываемые. Другое дело, есть серьезные сомнения, что если каждый из здесь отметившихся напишет, что так делать не надо - то это как-то поможет. Все равно продолжат. И строки в таблицы и обратно побайтно преобразовывать при каждом вызове - тоже продолжат. И вот те самые пакеты из amk.script в апдейтах дергать. Ну и т.д. Но, зачем писать, что "вы/ты/он/она занимается полной ерундой, и им вообще не надо моддингом заниматься" ? Опять же обращаюсь не к конкретному оппоненту, а к тем, кому зачем-то захочется что-то подобное написать. Результат-то какой в итоге ожидается ? Далее, ладно, 2015 год на дворе. Так ведь и я согласен с Арамисом. Вывод-то опять же какой ? Давайте все бросим, и будем разрабатывать некий перспективный проект на 2018-й, 5 лет его будем делать, а потом остальные будут его еще 5 осваивать ? Или все-же какие-то промежуточные шаги имеют право на существование ? Кстати, да. У меня вот vs13 сейчас ставится, так я посмотрю, что получится, и возможно сделаю банально работу с указателями и чтением/записью по произвольным адресам. А то и действительно, нафиг все эти скрипты, сразу все в исходниках сделаю как хочу, соберу, и... гм. А что, собственно, и ? Интересная мысль, и я ее буду думать. (И вообще, не портировать ли мне сталкера на фрю ?) Ну так вот, про идеи, ноу-хау, и прочее: хорошая, не хорошая - но вот где вы все раньше были, когда оно могло быть хорошим ? И вот согласно какой религии это нельзя выставить сейчас ? Конкретно, какую статью УК это нарушает ? Вопрос второй, еще раз: Если вот СРАЗУ так и написано было "но вообще - не нужны" ? Не про чье-то там, а вот именно про выложенное. Извините, то, что за этим последовало - это именно десяток раз повторенные взаимоисключающие параграфы "нет, нужны, но не нужно". Кому нужно - пользуйтесь, кому не нужно - не пользуйтесь. В чем дело-то ? Что здесь вообще обсуждать ? P.S. А, да, есть еще полно изобретающих велосипеды. Тоже в 2015-ом году. Хотя тоже вряд-ли поможет. В смысле, хоть 200 раз написать "надо", хоть столько же - "не надо". Какой вывод ? А простой. Положил, и путь лежит. Есть-пить не просит. Изменено 30 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 30 Января 2015 По сну - я пытался в эту сторону думать, но в итоге признал скорее полезной фичей. Так-то можно и на fast_call перевесить, с проверкой времени - всяко точнее будет. А действительно ли эти пол часа критичны ? По таймерам, ну вот применительно к понятно-какому монстромоду у меня есть вариант с таймерами amk-style, то есть, однократными, и сохраняющими параметры, доработанными на добавление-проверку функции и собственно активного таймера, и добавление функции на "плавный" апдейт актора с последующим удалением, когда становится не нужна. В итоге понял, что пользуюсь постоянно вторым вариантом, а первый - не только не использую, но и перевожу на второй там, где встретилось. На данный момент осталось 3 одноразовых по сюжету. И те - без параметров. Ну, по тому что либо оно да, должно крутиться в апдейте постоянно, либо там же - с некоего события, и до наступления, опять же, некоего другого события. То есть, все равно проверяется не время. Да, минимум одна из упомянутых функций будет переделываться на проверку позиции актора, ибо привязка кода к конфигу - не есть правильно. Вторая - там завязано на время проигрывания озвучки. Тоже неправильно константы подбирать, вместо проверки на играется ли звук. Третья - на анимацию. 8/ Ну, понятно, что новости и выброс - это вообще не вариант. Варка артов... Гм. Вот тоже ситуация примерно как со сном. НУ и все параметры правильнее хранить в самой аномалии. Мало ли, как и кто на нее будет воздействовать... Порча заспавненного броника из десменеджера ? Это вообще вредно, поскольку опять же проверять надо появление предмета. Которое зависит от расстояния до актора. На этом моя фантазия исчерпалась. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 31 Января 2015 "Что такое таймеры и в чем смысл жизни ?" - вот так этот вопрос должен звучать. В данном конкретном случае, говоря об amk-таймерах я могу сказать только то, что вижу, а именно: набор неких функций, предназначенных для запуска более других функций через какой-то заданный интервал времени, и сохраняющих параметры, предназначенные для этих самых более других функций, в сэйвах. Предназначены как бы для того, чтобы спрятать некие рутинные операции от кого-то (кого ?). Попытку следует признать неудачной, поскольку количество операций с не совсем ясным смыслом скорее возросло. Что-то мы уже на пятый круг заходим: ибо предчувствую, что мне сейчас опять начнут объяснять, что 1 - я не умею их готовить, 2 - это старье, по тому что в 2008-ом только учились, и по тому что древние версии движка не имели тех возможностей, которые есть в 1.0004. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 31 Января 2015 Я понятия не имею, что от меня хотят услышать. Что вижу - выше написал. Для чего использовалась предложенная мной модификация - это для временной замены амк таймеров пока не были внесены боле глубокие изменения. То есть, функция запуска просто переименовывалась, и убиралось преобразование таблица->строка и строка->таблица. Вызываемая выносилась из amk.script, и добавление производилось из того же скрипта, который запускал собственно таймер. Только при необходимости. На данный момент таких осталось 3 места. Все. 2 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 31 Января 2015 (изменено) По тому что в игре нет таких событий, которые одновременно бы удовлетворяли бы следующим условиям: 1. Происходили неоднократно. 2. Иррегулярно. 3. Через точно заданное время от момента x. Или, по крайней мере, я не могу себе такие представить. Либо они однократные, либо промежуток регулярный (раз в n секунд), либо зависят от каких-то других условий (выбрали фразу в диалоге, появился предмет, достигли некоей точки, отыгралась анимация и т.д.) И не "пофиг какие" - а amk-style и их аналоги. Допускаю, что есть нечто принципиально более другое, которое для чего-то используется. Но тогда и хотелось бы увидеть описание: что, как и для чего. "Пункты 2 и 3 у тебя противоречат друг другу, если что" - ну я что написал ? Изменено 31 Января 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение