-
Число публикаций
1 629 -
Регистрация
-
Последнее посещение
-
Дней в топе
27 -
AMKoin
15,160 [Подарить AMKoin]
Весь контент пользователя Kirgudu
-
Снова для тех, кто пользуется модулями от Artos. На этот раз под прицел попали: скрипт «Общие функции» (m_helper) от 28.09.2013 из этого поста; модуль «Универсальные таймеры» (m_timers) от 23.09.2013 из этого поста. В обоих модулях (в m_timers постольку, поскольку этот модуль содержит в себе m_helper) обнаружена и исправлена ошибка, приводившая к вылету при попытке определения типа патронов в стволе и режима стрельбы из подствольника. Какие-либо другие изменения авторского кода не производились. Ссылки на скачивание архивов с исправленной ошибкой: https://yadi.sk/d/HYBcS9iccfWMV - «Общие функции» https://yadi.sk/d/DPa6ZiGscfWeY - «Универсальные таймеры»
-
Для тех, кто пользуется модулем m_netpk от Artos. В прошлогодней (последней, выложенной автором здесь на форуме) версии модуля обнаружена и исправлена ошибка, которая приводила к вылету во время работы с абстрактной частью нет-пакета, а именно при срабатывании коллбэка, читающего абстрактную часть в момент её доступности. Кроме того, было уточнено название одного из флагов фонаря, но это на общую функциональность модуля не влияет. Ссылка на скачивание исправленной версии: https://yadi.sk/d/qVBvicSdQPHra За обнаружение ошибки и помощь в её исправлении спасибо @Charsi.
-
@BFG, а я с дайлапа и до недавних пор только ReGet-ом пользовался, даже после того, как они обновляться перестали. Тут тоже можно холивар устроить. Поэтому и говорю - автор вопроса должен выбрать сам из нескольких вариантов, нагуглив их в сети, а в общем случае может вообще ткнуть пальцем в первую попавшуюся прогу.
-
@zxc, последнее время пользуюсь Download Master. А вообще, имхо, их как грязи, бери любую - не ошибёшься.
-
@monk, неплохо бы тогда флешек добавить. Плюс на каждой локации - несколько дополнительных мест возможного спавна (исходя из условий "не слишком легко/очевидно добраться" и "хорошо заныкаться и умереть" - то есть такие места, где при усердном поиске можно обнаружить не найденный ранее никем труп с флешкой).
-
@Barmolini, ... weathers[level.get_weather()] and weathers[level.get_weather()] or ... в этом есть какая-то великая сермяжная правда?
-
@kalmah(13), судя по тому коду, который ты привёл, познания в языках программирования вообще и Lua в частности у тебя минимальные. В этих условиях обучение написанию скриптов с нуля становится слишком обширной задачей, на что тут вряд ли кто-то способен просто из-за недостатка свободного времени. Так что, имхо, пока надо самостоятельно разбирать примеры, запоминать, пробовать применить и т. д. Впрочем, если найдётся кто-то, кто сможет предложить тебе помощь в обучении - буду только рад. Если же говорить конкретно, тебе для начала следует запомнить базовые конструкции языка, такие как function ... end, if ... then ... end, if ... then ... else ... end, for ... do ... end и другие. В частности, в твоих функциях вида function dump_world_rain() if level.get_weather() == "sect_default_weather_rain" then get_console():execute("r2_gloss_factor 6") end ты функцию объявляешь, открываешь условие, что-то делаешь, затем закрываешь только условие - а функция остаётся открытой. В то время как в конце обязательно должен стоять ещё один end: function dump_world_rain() if level.get_weather() == "sect_default_weather_rain" then get_console():execute("r2_gloss_factor 6") end end иначе весь модуль будет невалидным.
-
[SoC] Ковыряемся в файлах
Kirgudu ответил на тему форума автора Halford в Скрипты / конфиги / движок
@nego, это прибавка к максимальному весу, после которого игрок не сможет не только бегать, но и сдвинуться с места. -
[SoC] Ковыряемся в файлах
Kirgudu ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Romann, не занимайся ерундой. Если ты для того, чтобы проделать какие-то действия с единственным НПС, будешь каждый раз перебирать все игровые объекты, да ещё и размножишь потом такой перебор в сотне мест (а что, по-другому ведь не получилось, а так работает) - мод будет тормозить постоянно. Это крайне плохая практика. Лучше сделай так, как тебе советовали выше - добавь в xr_effects.script функцию, а её вызов в логику НПС. Например, в ремарк с анимацией: [remark@suicide] anim = suicide on_signal = anim_end | nil %=npc_suicide% Сама же функция будет примерно такая, как написал @_Val_: function npc_suicide(actor, npc, p) npc:kill(npc) -- плюс любые другие действия end -
@Вспышка, третья версия мода всё-таки несколько о другом. Здесь - исправление ошибок, некоторые изменения, добавления, но всё в рамках классического сюжета ЧН. Там - новый сюжет после окончания событий ЧН. Считаю, тему закрывать не нужно, она вполне может быть кому-то интересна.
-
[CoP] Ковыряемся в файлах
Kirgudu ответил на тему форума автора Halford в Скрипты / конфиги / движок
Это именно «или». Каждый следующий блок условий, отделённый запятой, проверяется тогда, когда предыдущий блок вернул результат «false». Понятно, что такая цепочка может быть сколь угодно длинной. -
Да, с метками командиров как раз тот случай, когда фиксили одно, но при этом попортили другое. Иногда такое случается; хорошо, что ошибка была замечена «въедливым» игроком. Правка, которую вчера получил от меня и включил в фикс @warwer, должна теперь быть полноценной.
-
@zerocobra, так в том-то и дело, что поиск нового командира отряда при гибели (исчезновении) старого никто не удалял. Наоборот, оригинальное переназначение иногда могло таки оставлять отряд без командира, и в HWM мы постарались минимизировать такое поведение. Соответствующая правка как раз включена в последний фикс. Конечно, я не исключаю того, что несмотря на все проверки, мы ввели в мод новую ошибку, но сейчас, проглядев скрипт, я ничего подозрительного не увидел. Нужна предметная проверка. Например, если получится сделать сэйв, после загрузки которого можно будет повстречать (желательно сразу, причём не случайно, а со стопроцентной повторяемостью) именно такой, «обезглавленный» отряд - это сильно поможет. Лично я никогда не сталкивался с отрядами без командиров, поэтому разыскать источник не так просто.
-
@Хемуль36рус, не могу сейчас посмотреть, как в ТЧ, но в ЧН в модуле dialogs.script есть такая функция: function who_is_npc(first_speaker, second_speaker) local npc = second_speaker if db.actor:id() == npc:id() then npc = first_speaker end return npc end которая возвращает НПС при любом порядке подачи аргументов. Можно обратить условие и получить функцию возврата актора. В любом случае, используя эти функции, ты всегда будешь уверен в том, что применяешь последующие действия к нужному тебе объекту. Для твоего примера как-то так: function npc_set_killer(actor, npc) local npc = who_is_npc(actor, npc) printf("NPC [%s] NOW IN KILLER COMMUNITY", npc:name()) npc:set_character_community("killer", 0, 0) end
-
@vik45, вот сохранение на Кордоне, сразу после перехода со Свалки: https://yadi.sk/d/xWqmNUuEbBXVT Глючный отряд из 4 тушканчиков удален. Однако что с ними произошло - ума не приложу. Такого никогда не было. Эти тушканы умудрились забиндиться к модулям, используемым только для объекта типа "сталкер". Не исключено, что с самого начала игры всё пошло наперекосяк. Конечно, есть шанс, что получится доиграть до самого конца без дальнейших ошибок, но стоит быть морально готовым к полной переигровке. А о том, что для игрока установлено полторы мегатонны допустимого веса, надо предупреждать.
-
@Хемуль36рус, немного дополню ответ @naxac. Тут ещё важно, для какой версии игры тебе надо реализовать смену группировки. Подозреваю, что для ТЧ, но если для ЧН (а вдруг), необходимо ещё сделать цикл по всем заданиям, выданным не целевой группировкой (именно группировкой, а не отдельными НПС), и отменить их. Это, как правило, задания на захват точек, оборону и т. д.
-
@vik45, странный вылет. Планировщик действий здесь не должен быть нулевым. Выложи свой сэйв (желательно поближе к моменту вылета) и напиши, что нужно сделать, чтобы получить ошибку - покручу у себя.
-
[SoC] Ковыряемся в файлах
Kirgudu ответил на тему форума автора Halford в Скрипты / конфиги / движок
@stalk9r, и не должна работать. text = "..obj.." - это присвоение именно той строки, которая указана между кавычками. Никакой отсылки к полученному объекту тут нет. Надо так: local obj = alife():story_object(12345) if obj then text = obj:name() end -
[CoP] Ковыряемся в файлах
Kirgudu ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Grif_on, не исключено, что ты используешь не то свойство. Попробуй назначить не строковый story_id в кастомдате, а числовой story_id, прописанный в свойствах объекта. Примерно так: -
@Скат Манта, сова есть на обеих картинах, однако хороший хирург только на второй. @Murarius, может потому, что смотрит вправо и/или внутрь помещения? Правда, затрудняюсь ответить, что это означает в рамках тогдашних верований.
-
@monk, удалятся при первой же загрузке из сэйва. Лучше сделать по-другому; обсудим по скайпу в пятницу - раньше времени не будет. Upd: хотя, может быть, вообще не удалятся - для них может не отработать соотв. коллбек. В любом случае лучше сделать иначе.
-
И снова обновлён комплект 64-разрядных таймеров для сборника. Ссылка прежняя: https://yadi.sk/d/CD3HIfiTZcMZA Исправлена скрытая ошибка, которую вы, скорее всего, не заметили бы, но она могла, тем не менее, привести к вылету в определённых ситуациях.
-
, или так: function round(num, idx) local coeff = 10^(idx or 0) return math.floor(num*coeff+0.5)/coeff end где num - округляемое число, idx - порядковый номер знака после запятой, до которого следует округлить, включая 0 для округления до целого. Но если необходимо предусмотреть округление в том числе и до какого-либо старшего знака в целой части, тогда нужна доработка.
-
@Dimus, ты бы проверил, как эти таймеры (бывшие до того 32-разрядными) работают потом, после их конвертации в 64-разрядные. Выброс, усталость, голод сохранились? monk это сделать не смог, так как у него не сохранились старые сэйвы. Если всё в порядке - можно будет наконец порекомендовать включение данной правки в сборник.
-
Ещё раз обновлён комплект 64-разрядных таймеров. Ссылка прежняя: https://yadi.sk/d/CD3HIfiTZcMZA При условии начала новой игры всё должно быть хорошо; все обнаруженные ошибки поправлены. Спасибо monk за активную помощь в тестировании. Загрузка старых, 32-разрядных таймеров теперь тоже должна отработать, однако это пока не проверялось.
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ