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

Kirgudu

Жители
  • Число публикаций

    1 401
  • Регистрация

  • Последнее посещение

  • Дней в топе

    6
  • AMKoin

    2,602 [Подарить AMKoin]

Kirgudu последний раз побеждал 24 Ноября 2017

Kirgudu - автор самых популярных публикаций!

Баланс оценок

701

8 подписчиков

О Kirgudu

  • День рождения 12.03.1974

Контакты

  • Сайт
    http://www.voinitsa.ru

Недавние посетители профиля

4 131 просмотр профиля
  1. Kirgudu

    OGSM CS 1.8 CE Fixes

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

    Скриптование

    С каких пор? Может, уже появились альтернативные темы по всем трём платформам, а народ-то и не в курсе? Тема по ТЧ - это "[SoC] Ковыряемся в файлах" или, например, "[SOC] Мелкие правки движка". "Скриптование" же всегда было мультиплатформенной темой, не надо искусственно навязывать лишние рамки. @Norman Eisenherz но тема всё равно вряд ли правильная, с таким вопросом, имхо, надо идти к тем, кто ковыряет движок.
  3. Kirgudu

    Old Good Stalker Mod - Clear Sky

    @MegaStalker может потому, что так было сделано, и никто в те времена, когда мод разрабатывался, не подумал, что можно (или нужно) сделать по-другому?
  4. Kirgudu

    Ачивки

    https://forum.ixbt.com/ Недостижимый идеал.
  5. Интересно, а можно ли как-нибудь скрыть внезапно (я так полагаю, в результате случившегося обновления движка) появившиеся "ранги"? Как-то немножко странно видеть надпись "newbie" при почти 10 годах стажа и тысяче с гаком сообщений.
  6. Kirgudu

    OGSM CS 1.8 CE Fixes

    Совершенно верно. А вороны и фантомы были добавлены, скорее всего, по принципу "перечислим всех". "Скорее всего" потому, что модуль имеет в авторах изначальных создателей мода OGSM, причём ещё до Community Edition, и позже почти не переделывался (я в своё время ограничился точечными коррекциями, хотя сейчас весь этот модуль переписал бы процентов на 70-80 - если б видел смысл и было время), в том числе не менялась и эта функция. Поэтому мы можем только гадать.
  7. Kirgudu

    OGSM CS 1.8 CE Fixes

    @hetrikWHY фраза "порядок проверки не менять" там рассчитана скорее на полных новичков, и её вполне можно заменить на "менять с умом". Позже или завтра (по возможности), если надо, распишу, что имелось в виду, а пока это сложно - я с мобильного. Кстати, вопрос этот относится к "ковырянию", которое в теме не слишком приветствуется, так что если уважаемый автор будет против, придётся переместиться в личку.
  8. Kirgudu

    OGSM CS 1.8 CE Fixes

    Кто-нибудь может навскидку перечислить типы заданий от членов группировки, которые, будучи выданными, должны быть актуальными только пока ты числишься в составе? Кроме удержания точки есть ещё такие? Добавлю автоотмену этих заданий в случае выхода из рядов группировки (или в случае вступления в другую группировку).
  9. А вот я рад, что меня не отправляют (потенциально) за ответом в какой-то ВК. Если я задал вопрос здесь, то и ответ хочу получить именно здесь, в противном случае воспользовался бы условным гуглом для поиска.
  10. Kirgudu

    Скриптование

    Как ни странно, да. Примеры двойного объявления одних и тех же функций встречаются даже в скриптах оригинала (хотя, может быть, это-то как раз и не странно). Если кому интересно - загляните в чистонебовский скрипт task_objects.script, функция CHideFromSurgeTask:check_task(). Там внутри есть две встроенные функции, описанные дважды в пределах одного пространства. На практике, если представить, что содержимое повторяющихся функций различно, работать будет та, которая объявлена второй (третьей, четвёртой и так далее). Что конкретно должно быть в примере выше, сказать не могу. Всё зависит от логики, которую хотелось вложить в код автору. Возможно, заполняться должна только таблица creatures, возможно - creature, а возможно и обе сразу. Надо изучать те скрипты, где они используются далее. Но я предлагаю критически взглянуть на другое место. Вот: function add_obj( obj ) -- ... <skip> ... if IsStalker(obj) and IsMonster(obj) then --> если И сталкер И монстр btr_target[obj:id()] = true end end Ничего не смущает?
  11. Kirgudu

    Скриптование

    Не надо так делать, в том варианте должно быть именно sobj.id. А так гейм вертекс можно (и нужно в данном случае) получать уже из серверного объекта: local sobj = alife():object(i) if sobj and sobj.m_game_vertex_id == 2482 and IsStalker(sobj) and sobj:alive() then return true end И ещё: почему только 2482? Других вертексов на нужной локации нет? Имхо, лучше из гейм вертекса получать id локации и проверять уже его совпадение с нужным: function get_level_nps() local al, gg = alife(), game_graph() -- многократно используемые функции кешируем для производительности for i=1,65535 do local sobj = al:object(i) if sobj and gg:vertex(sobj.m_game_vertex_id):level_id() == XXX and IsStalker(sobj) and sobj:alive() then -- вместо XXX подставить Id локации (не путать с наименованием) return true end end return false end Или, чтобы не вызывать лишние функции, сравнивать sobj.m_game_vertex_id с диапазоном значений - больше одного и меньше другого: if sobj and sobj.m_game_vertex_id >= XXX and sobj.m_game_vertex_id <= YYY and IsStalker(sobj) and sobj:alive() then -- вместо XXX и YYY подставить граничные гейм вертексы локации return true end
  12. Kirgudu

    Скриптование

    @h0N0r все перечисленные методы действительно клиентские, а в переменной obj у тебя серверный объект. Если хочешь получить клиентский, следует действовать например так: local cobj = level.object_by_id(obj.id) if cobj then ... end и далее по написанному. Однако зачем делать это после удаления, если я правильно тебя понял? Ты уж определись, что необходимо - удалить объект или придать ему ускорение.
  13. Kirgudu

    Скриптование

    for k,v in pairs(бла) do if v == true then db.actor:give_game_news('бла-бла', 'бла-бла-бла', "ui_iconsTotal_PDA", 0, 3000) end end P.S.: задавай свои вопросы в человекопонятной форме.
  14. Kirgudu

    Скриптование

    @UriZzz у тебя и подсказка в логе есть args=[string]~not_table! и пример в конце модуля start_game_timer(3*60, nil, {info_id = "my_infoportion"}) Грубо говоря, ты в качестве доп. аргумента передаёшь строку "UriZzz_test.mecheny_mail", а надо таблицу. То есть: start_game_timer(30*60, nil, {param1 = "UriZzz_test.mecheny_mail"}) -- аргумент - таблица Если же ты хотел вызвать функцию внешнего модуля (на что слегка намекает текст "UriZzz_test.mecheny_mail"), то для этого надо было воспользоваться вторым аргументом, который у тебя сейчас равен nil, и без кавычек. А именно: start_game_timer(30*60, UriZzz_test.mecheny_mail) -- аргумент - указатель на функцию внешнего модуля В общем, смотри внимательно примеры в конце модуля таймеров, там всё расписано.
  15. Не критично, но потребовало некоторого времени для привыкания. В общем, тоже занудничаю.

AMK-Team.ru

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