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

Garry_Galler

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

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

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

  • AMKoin

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

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

7

1 подписчик

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

2 327 просмотров профиля
  1. function StringSplit() - Спасибо :)

  2. Igor88.89 Решение находится поиском по цифре 15 - за пару секунд. if ((not db.actor:see(npc) and npc:position():distance_to(db.actor:position())>15)
  3. TRAMP14 Если ты имеешь ввиду обычную активацию - то, конечно, можно. Но не парой строчек. В гравипушке malandrinus'a и kirag'a при захвате арта происходит его активация. Что такое активация? Удаление арта, проигрыш определенных партиклов и звуков, спавн (скриптом - амкашным или из любого другого мода) на месте арта определенной аномалии.
  4. Выкладываю небольшой разбор содержимого полей таблицы db.storage, которое относится в NPC. Делал его некоторое время назад в тестовых целях, до конца так все и не разобрал, но думаю и этого будет достаточно для основных нужд модмейкеров. ЗЫ: Оформлено все в виде функции, которая содержит таблицу: строковой идентификатор=значения поля и возвращает значения того или иного поля db.storage по его идентификатору в таблице и айди NPC ( вызов примерно такой - GetData(level_object_by_sid(sid), "target_state") ). Там где используется много операторов and - это способ защиты от вылета при обращении к несуществующему полю таблицы. Распечатку таблицы я делал сразу по всем полям, а так как у разных NPC содержание полей было разным, то такие проверки избавляли меня от вылетов. ЗЗЫ: Данную функцию можно использовать только в тестовых целях, а не для реального применения.
  5. Whisper Она там... присутствует. Как памятник нерукотворный гению разрабов. Собственно в оригинале она(если я не ошибаюсь) никак задействована, так как скрипты в которых ее можно найти - тестовый мусор. Впрочем, попробовать применить ее можно - только скрипт нужно запустить как подпрограмму(тогда и малопонятных вылетов не будет) - по идее она должна тормозить выполнение только данного скрипта, а не весь процесс игры. Впрочем, тестил я это дело давно и сейчас даже не помню какие результаты были. ЗЫ: для запуска скрипта как подпрограммы нужно использовать lua пространство имен coroutine.
  6. Garry_Galler

    Худ

    Vergas Ссылка на мои часы лежит на 5-ой странице данной темы. Ссылка на мод 7.9 - в разделе Модификации в разработке - "Реальные географические координаты".
  7. Garry_Galler

    Худ

    Выходит у меня, а также у 7.9 с malandrinus' ом текстуры вращаются вследствие аццких заклинаний. Это ЗП нет. А в ТЧ есть. Советую глянуть скрипты наших модов.
  8. Garry_Galler

    Худ

    А зачем подставлять? Достаточно сделать одну (не считая фоновой)- рисуем стрелку и вращаем ее скриптом как в компасе у 7.9 и malandrinus'а . Или как у меня в часах и спидометре. Главное - точный расчет формулы вращения. Для знающих математику проблем особо никаких. Knyaz Поизучай возможности применения метода level.main_input_receiver(). И заодно статьи по созданию GUI в сталкере.
  9. TRAMP14 Можно. Скрипт гравипушки, в частности, основан на отслеживании выстрела (нажатии ЛКМ). Алгоритм прост - сравниваем на апдейте кол-во патронов в стволе и размер магазина. Либо считаем каждый выстрел и опять сравниваем. В скриптах гравипушки используется ствол с магазином на один патрон - так проще отслеживать выстрел. Если же писать скрипт для ствола с реальным магазином - то все несколько сложнее.
  10. Garry_Galler

    Худ

    TRAMP14 Необязательно. Я сделал вертикальную, потому что мне так было проще сделать расчеты движения стрелки по градусам. Если поменять расположение стрелки - то придется менять и формулу.
  11. function CountItems(uWho, sSection) local count=0 uWho:iterate_inventory(Iterate) local function Iterate(dummy, uItem) if uItem:section()==sSection then count=count+1 end end return count end
  12. Galil Типа так что ли? 'lin' =~ )etats.reganam_dnuow.dednuow.])(di:cpn[egarots.bd(gnirtsot nruter Долго ползал пацтулом TRAMP14 Дроп - это когда выбрасываешь из инвентаря. А перемещение предмета в слот это и есть "перемещение предмета в слот". Хотя собственно в чем соль вопроса я не понял. Если брать аспект абстрактный - то и то и другое действие представляет из себя добавление в нетпакет объекта идентификатора нахождения. При дропе идентификатор владельца объекта становится равным 65535 - то есть объект "ничей". При перемещении в слот - идентификатор владельца остается прежним, но меняется идентификатор нахождения который определяет где конкретно находится объект - рюкзак\слот\пояс. Если же ты имеешь виду каллбек на дроп - то он отслеживает только выбрасывание либо удаление предмета из инвентаря (не важно из какого места - пояса, слота или рюкзака).
  13. TRAMP14 Очень плохо что не понял. Локальная функция - это именованная функция внутри функции. Посмотри примеры в модах. for у тебя не закрыт. Ты не соблюл правила lua - так что вперед изучать теорию. И вообще зачем изобретать велосипед - возьми пример готовой функции из любого мода (поиск по iterate) которая итерирует инвентарь - сделай себе из нее то что нужно.
  14. Disord Существует. Но не в оригинале, а в не выложенном в открытый доступ патче для ТЧ. (патч делается эксклюзивно для одного мода). TRAMP14 Цикл for закрой end-ом. Чекер тебе написал все что нужно сделать. И nil можешь убрать - он не нужен. А дабы не путаться вместо анонимной функции итерации пиши локальную.
  15. ZeeK Забыл, что у тебя это на апдейте стоит - тогда стоит добавить проверку на текущую группировку,чтобы лишних действий не выполнялось. А лог твой мне ни о чем не говорит. function change_relationship() local actor = db.actor local outfit=db.actor:get_current_outfit() if outfit then if find_in_string(outfit:section(),"stalker_monolith_outfit") then if actor:character_community() ~= "monolith" then actor:set_character_community("monolith" ,0,0) end else if actor:character_community() ~= "actor" then actor:set_character_community("actor",0,0) end end end end TRAMP14 А может у него своя 'обертка' ? Поэтому я исправлять не стал.
×
×
  • Создать...