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

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


Svoboда

Рекомендуемые сообщения

Вот с этим могут быть проблемы. Возможно я ошибаюсь за давностью, но в памяти сидит, что все, что не "none = true" - потенциальные грабли. Кажется как раз с Кротом эти грабли и вылазили. Хотя, повторюсь, могу с чем-то путать.

Поделиться этим сообщением


Ссылка на сообщение

@mole venomous как можно вернуть то, чего никогда не было? Никогда в сталкере не было броня + арты. Сначала хит проходит через артефакты. Потом то, что осталось от хита, проходит через броню. Надеюсь понятно выразился.

  • Полезно 3

Поделиться этим сообщением


Ссылка на сообщение

@mole venomous какие цифры? Что за цифры? А то, как в анекдоте: "Приборы? 200. Что 200? А что приборы?". Хочешь получить нужный ответ, описывай ситуацию точно и подробно.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@mole venomous теперь кажется понятно. По костюму. У клиентского объекта есть метод get_outfit()

local outfit = db.actor:get_current_outfit():get_outfit()

То, что будет возвращено - это экспорти класса CCustomOutfit https://github.com/dsh2dsh/OGSR-Engine/blob/f34eae64c24957639a2e61ae5d2050bf2c04840e/ogsr_engine/xrGame/derived_client_classes.cpp#L313

у которого доступны на чтение/запись некоторые свойства. По ссылке можно увидеть их список. Вот для примера функция, обнуляющая всю защиту брони:

function zero_outfit_protection( obj )
  local outfit = obj:get_outfit()
  for _, k in ipairs({   
    "burn_protection",
    "chemical_burn_protection",
    "fire_wound_protection",
    "explosion_protection",
    "radiation_protection",
    "shock_protection",
    "strike_protection",
    "telepatic_protection",
    "wound_protection",
  }) do
    outfit[ k ] = 0
  end
end

 

По поводу защиты от артефактов, не могу припомнить, что бы было что, возвращающее суммарную защиту по требуемым типам. Я для этого вот такой скрипт использую https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/inventory.script

который ведет реестр объектов на поясе и можно быстро получить информацию типа

local burn_immunity = inventory.on_belt_hit_immunity( "burn_immunity" )
local health_restore_speed = inventory.on_belt_restore_speed( "health_restore_speed" )

и т.п.

 

Поискал быстренько в движке и не нашел ничего, что бы для пояса возвращало суммарные защиты. Т.ч. только своим скриптом.

 

Изменено пользователем dsh
  • Спасибо 1
  • Согласен 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

Скорее всего, твой sound_object удаляет уборщик мусора, вот звук и выключается. Сохраняй его где-нибудь. Или play_no_feedback используй, должно помочь.

  • Спасибо 1
  • Согласен 1
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение
5 hours ago, mole venomous said:

У меня самого, кстати, не выходит запретить неписям подбирать оружие.

В оригинальном движке есть такая движковая схема, что бы подбирать оружие. И если я не путаю, ее там даже и не отключить никак или не отключить полностью.

@mole venomous не поможет, если непись будет близко с оружием, грубо говоря, пройдет по нему. Если оружие окажется лучше имеющегося, он его просто пропылесосит. Это тоже самое, как если в непися бросить оружие.

  • Полезно 4

Поделиться этим сообщением


Ссылка на сообщение

Вот же любит народ сложно. Это игра, здесь не нужно соблюдать физ. законы, достаточно сделать иллюзию их наличия. Что ты привязался к этому трансферу. Удали, что тебе нужно из инвентаря актора, и создай в инвентаре непися то, что тебе там нужно. Никто не узнает, что эта злосчастная пачка была там создана заново, а не перемещена существующая.

  • Нравится 2
  • Согласен 3

Поделиться этим сообщением


Ссылка на сообщение

На мой взгляд, трасфером вообще не нужно пользоваться без реальной на то необходимости. Т.е. только тогда, когда без этого никак. Результат трансфера будет только на следующем апдейте, а для новичков это слишком сложно и запутано. Да и не для новичков тоже грабли, стоит только эту отложенность из виду упустить.

  • Спасибо 1
  • Согласен 1
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение
6 hours ago, Norman Eisenherz said:

подсказка меняется на один апдейт

Вот это вот мне подсказывает, что что-то ещё меняет подсказку. Может скрипт какой, или движок, тебе должно быть виднее.

Поделиться этим сообщением


Ссылка на сообщение

Могу посоветовать делать это через combat ignore, забыл, как колбек называется. Т.е. нужные мутанты изначально враги, а в колбеке возвращать, что они игнорируют друг друга до нужного момента.

 

Ещё можешь глянуть вот на этот скрипт

https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh/dsh_rats.script

Здесь меняется отношение между крысами и актором. Уже не помню точно, наверное я в движок что-то добавлял для этого.

Поделиться этим сообщением


Ссылка на сообщение
2 hours ago, Kirgudu said:

Можно предположить, например, что функция drop_item удаляет предмет не одномоментно, а с некоторым запаздыванием

Даже и предполагать не нужно. Это так и есть. На следующем апдейте предмет будет выброшен. А пока только помечен к выбрасыванию и это можно проверить методом dropped_mark или как-то так. Я вечно названия забываю.

  • Согласен 2

Поделиться этим сообщением


Ссылка на сообщение

Ну, если уж ссылаться на OGSR, то там же можно, если не путаю, спаунить и по имени, без всяких story и spawn id.

А нет, я таки путаю. Не нахожу этого в OGSR. Это я только у себя добавлял получения spawn_id по имени:

https://github.com/dsh2dsh/OGSR-Engine/commit/be0d672ca18c80289cfa0c8bd7e6552b513f4587

Quote

Добавил alife():spawn_id( имя )

которая возвращает spawn_id из all.spawn по имени объекта.

 

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Jekyll unpack может помочь, если я не путаю: math.max(unpack(table)) Могу в имени напутать.

 

О, да уже тут ответили.

Изменено пользователем dsh
  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Black_Raven_03 что-то я не понял. Если тебе мешают две конкретные аномалии, то просто удали эти две конкретные аномалии. Можно прямо в начале игры это сделать.

  • Спасибо 1
  • Согласен 5

Поделиться этим сообщением


Ссылка на сообщение

@mole venomous так ведь огенемет этот стрелял обыкновенной дробью. Я отлично помню, что только на OGSR смог назначить ему огненный урон. Хотя... Может я путаю? Может огненный урон можно было, а я исправлял наличие рикошетов, звука попадания и следов от пуль при использовании урона, отличного от пулевого? М-да, тут помню - тут не помню.

Поделиться этим сообщением


Ссылка на сообщение
6 часов назад, mole venomous сказал:

огнемёт казался очень мощным, оттуда и уверенность, что он именно сжигал.

Так ведь это никак не связано с типом хита. А партиклы огня, и это я уже точно не путаю, запускались скриптом, притом без всякого лимита, из-за чего оно безбожно начинало тормозить. Т.ч. я по прежнему не уверен, что оригинальный движок позволяет изменить тип хита для оружия.

 

Вот, точно, я же помню, не умеет это оригинальный движок. Вот я это менял

https://github.com/dsh2dsh/OGSR-Engine/commit/7f153347fe9f1df60d43e1f52e9972f93b01a67f

 

  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

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