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

Shredder

Опытные
  • Число публикаций

    375
  • Регистрация

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

  • Дней в топе

    1
  • AMKoin

    720 [Подарить AMKoin]

Весь контент пользователя Shredder

  1. Shredder

    GUNSLINGER mod [S.T.A.L.K.E.R. CoP]

    Столько работы сделано по пистолетам, а ведь в ЗП при равноправности слотов они становятся бесполезны. Да, в чистом ЗП и на мастере всё достаточно просто, что всю игру можно пройти с одним ПМ. Но с автоматиком то куда проще. Я это к чему всё. Планируются ли какие-нибудь, так сказать, нововведения, которые бы заставляли игрока использовать пистолеты? Допустим, ограничение на кол-во переносимого оружия (не вес, объём) или может пистолеты в ножевой слот? Пока неясно как с этим быть, перебираем варианты. Большего сказать на данный момент не могу. STRIFER
  2. inventory_upgrades.script, функция: local function how_much_repair( item_name, item_condition ) local ltx = system_ini() local cost = ltx:r_u32(item_name, "cost") local class = ltx:r_string(item_name, "class") local cof = 0.6 return math.floor(cost*(1-item_condition)*cof * cur_price_percent) end Заменяешь на свой расчёт
  3. Shredder

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

    Добавлю, что помимо actor_menu.script срабатывает функция actor_menu_mode из pda.script, но только для случаев: -- 10 = Talk dialog show -- 11 = Talk dialog hide В actor_menu.script они не срабатывают. На открытие pda выдаётся какой-то инфопоршень, на закрытие кажется тоже. Какие именно легко проверить, просто пишу, что они есть. Используя xray-extensions получить текущее активное окно можно так: dialog_wnd = CUIListBox():GetMainInputReceiver() За что товарищу malandrinus огромное спасибо!
  4. @Clayman, чтобы новые аномалии обнаруживались детектором, их нужно прописать в конфиг соответствующего детектора: zone_class_35 = amk_zone_zharka_static_strong и в файле configs/ui/ui_detector_artefact.xml: <palette id="amk_zone_zharka_static_strong" width="0.004" height="0.004" stretch="1" alignment="c"> <texture shader="hud\p3d">ui_inGame2_Detector_icon_electro_big</texture> </palette>
  5. При спавне добавляй координате y 0.1
  6. Можешь написать, в чём профит продвинутых систем? Глянул описание. В "Песочнице" принципиальной разницы не увидел, разве что пара плюшек (e:stop(), e:removeThisCallback()), но у меня такой надобности не возникало. В ogse_signals принцип регистрации практически тот же, про слоты не понял.
  7. Я уже давно использую функционал xr_s.script, хотя и немного правленый для моих целей, но мне не разу не приходилось регистрировать одну и ту же функцию несколько раз. Можешь привести практический пример, для чего это нужно?
  8. Если меняются только аргументы, так для каждой функции и создавай таблицу этих параметров: tbl = {} function Past(f,v) if not tbl[f] then tbl[f] = {} end table.insert(tbl[f], v) end function OnPrint() func2 = func func3 = func Past (func2, "two") Past (func3, "three") for fun,vals in pairs (tbl) do for i,val in pairs(vals) do fun(val) end end endИзвиняюсь, если не уловил суть вопроса.
  9. Через колбэки item_take, item_drop. Поскольку любое добавление/удаление предметов проходит через эти колбэки, можно кэшировать кол-во патронов и проверять только одну переменную, а не перебирать весь инвентарь.
  10. А что за слот такой -1? 11 - слот артефакта, слот противогаза: 12.
  11. Shredder

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

    Признаю, был не прав. Всё от того, что в своё время намучился с подобной ситуацией в javascript, где замыкание работает как раз так, как я описал выше. В lua всё ок. Приношу извинения за дезинформацию.
  12. Shredder

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

    Проверено и не раз, не работает. Я прекрасно знаю, что такое замыкание. В твоём примере на каждую кнопку навешан свой обработчик: function() self:OnBtnClick(id) end. В момент вызова будет фактически выполнен код self:OnBtnClick(id), но к тому моменту переменная id будет содержать последнее значение цикла. Замыкается переменная, а не её значение.
  13. Shredder

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

    Да? А ты пробовал? Ничего, что при нажатии на любую кнопку id в функции OnBtnClick(id) будет всегда равен последнему. Т.к. в каждой функции ты оставил ссылку на одну и ту же переменную, значение которой в конце цикла будет равно последнему числу. Поэтому, ещё неизвестно, кого куда занесло...
  14. Shredder

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

    self:AddCallback("Button_"..id,ui_events.WINDOW_LBUTTON_DB_CLICK, loadstring("имя_скрипта.on_db_click('" .. id .. "')")) function on_db_click(id) get_console():execute("load ~~~нажата " .. id) end
  15. Shredder

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

    На сколько я знаю, только методом перебора:
  16. Shredder

    [CoP] Вопросы по SDK

    В логе явно говориться, что на строке 1256 идёт сравнение числа с nil, смотрим строку 1256: if squad_count ~= nil and (self.max_population <= squad_count) then И тут невооружённым глазом видно, что nil-ом может быть только self.max_population. Следовательно, для какого-то из смартов он не указан.
  17. Shredder

    [CoP] Вопросы по SDK

    У тебя smart_terrain.script отличается от оригинального, потому что на 1256 строке нет операторов сравнения, о чем говорится в логе. Поэтому опять можно только гадать, чего там исправлялось или дописывалось. Покажи хотябы эту строку, а лучше конечно весь файл
  18. Shredder

    [CoP] Вопросы по SDK

    Ну если и т.д., тогда сам и разбирайся
  19. Shredder

    [CoP] Вопросы по SDK

    Ты не указал max_population для esc_stalker_base
  20. Shredder

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

    Вот и ищи в секции контроллера, все что найдешь - твое, все остальное в движке.
  21. В ЗП все нпс и мутанты спавнятся скриптами.
  22. В CoP инфопоршни прописывать не обязательно.
  23. Shredder

    Разговоры о модах

    В смысле после убийства обыскивают, если ничего не нашли - загрузка до момента убийства, убийство нпс и снова обыск? Тут конечно серьёзную защиту придётся делать, вплоть до записи в отдельные файлы.
  24. Shredder

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

    Тебе нужно добавить схему поведения. Или, возможно, допилить схему xr_wounded, чтобы она заработала так, как тебе нужно. Примеров таких схем в самой игре предостаточно, но если ты со скриптами несколько дней, то сложновато будет.
×
×
  • Создать...