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

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

Полтергейст, ну вот считай ты сам и ответил на свой вопрос: "... заспавненная аномалия не реагирует ни на кого ...".

Неужели вы читаете, что бездумно пытаясь идти методом "тыка", меняя абы что и как, что-то получите, а ваши непонятки вам кто-то растолкует? Сорри, но например у меня, нет желания в который раз растолковывать азы работы с нет-пакетами и то, что прилепив "свою" пару байт, глупо называть это сохранением/загрузкой ... и то, что применяя какой-то класс объектов, нужно все же понимать что он из себя представляет и каковы его свойства в игре. Тем более, к теме топика все эти потуги не имеют никакого смыслового отношения.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Я прошу следующее

 

У меня есть скрипт, который будет сидеть НПС respwanen но проблема в том, что они gespwant снова и снова anchdem я перезагрузить его, а не тогда, когда они умерли, что они на самом деле.

 

Как мне справиться с этой, так как скрипт хранится и как я могу взять эту я знаю, к сожалению, пока нет.

 

Благодарю вас, прежде чем

 

 

local respwan_table = {}

local timer = nil

local levels = {marsh= {x=-61.996055603027,y=0.92057931423187,z=293.67742919922} }

 

local respwan_npc = {

["mar_clear_sky_respawn_1"] = true,

["mar_clear_sky_respawn_2"] = true,

["mar_clear_sky_respawn_3"] = true,

}

 

 

function spwanen()

if db.actor:alive() == false then return end

local level_name = level.name()

local coordinates = levels[level_name]

if coordinates then

local pos = vector():set(coordinates.x, coordinates.y, coordinates.z)

local lvi = db.actor:level_vertex_id()

local gvi = db.actor:game_vertex_id()

for section,flag in pairs(respwan_npc)do

if flag == true then

if timer == nil then

timer = level.get_time_hours() + math.random(3, 6)

if timer > 23 then timer = timer - 24 end

end

if time_global() > timer then

timer = nil

local se_obj = alife():create(section, pos, lvi, gvi)

respwan_table[se_obj.id] = section

respwan_npc[section] = false

end

end

end

end

end

 

for id,section in pairs(respwan_table) do

local obj = db.storage[id] and db.storage[id].object

if not obj or obj:alive() == false then

respwan_npc[section] = true

respwan_table[id] = nil

end

end

 

 

 

 

 

 

 

Ссылка на комментарий

olaf1

Машинный перевод английского на русский для многих выглядит значительно хуже, чем текст, просто написанный на английском.

Я так и не смог толком понять что же тебе нужно, поэтому пришлось понимать по приведённому тобой коду.

И в нём присутствует абсурд.

А именно в строке

if time_global() > timer then

time_global() измеряется в миллисекундах, а timer у тебя задан в часах.

Естественно, что time_global() у тебя всегда будет больше чем timer.

Приведи оба операнда к единому измерению.

 

Всё бы хорошо, но по всей видимости и английский не является родным языком нашего гостя.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

So you want that I write better in English.

I have a problem if I ever will, and reload again and again the NPC's as often as I want but I want to reload respectively only if they want to be, respectively, they are dead.

I've heard that you can grab something eo something similar or something like

packet: w_u16 (self.m_restrictor_id)

But I know that I do not look as good that would be very nice if someone would do this for me.

the code is better than the

time_global

as

level.get_time_hours

?

I test this.

I would like to save this and have also saved and can read it but I know myself so unfortunately not so well marked and not a tutorial for it

i hope that is better to understand for you and other.

Изменено пользователем ColR_iT
Ссылка на комментарий

Да, и оформлять код нужно должным образом. Так, чтобы читать можно было легко.

Например (шутка) :

local respwan_table = {}local timer = nil

local levels = {marsh= {x=-61.996055603027,y=0.92057931423187,z=293.67742919922} }local respwan_npc = {

["mar_clear_sky_respawn_1"] = true,

["mar_clear_sky_respawn_2"] = true,

["mar_clear_sky_respawn_3"] = true,

}

 

function spwanen()

if
db
.
actor
:
alive
() ==
false then return end

local
level_name
=
level
.
name
()

local
coordinates
=
levels
[
level_name
]

if
coordinates
then

local
pos
=
vector
():
set
(
coordinates
.
x
,
coordinates
.
y
,
coordinates
.
z
)

local
lvi
=
db
.
actor
:
level_vertex_id
()

local
gvi
=
db
.
actor
:
game_vertex_id
()

for
section
,
flag
in
pairs
(
respwan_npc
)
do

if
flag
==
true then

if
timer
==
nil then

timer
=
level
.
get_time_hours
() +
math.random
(
3
,
6
)

if
timer
>
23
then
timer
=
timer
-
24
end

end

if
time_global
() >
timer
then

timer
=
nil

local
se_obj
=
alife
():
create
(
section
,
pos
,
lvi
,
gvi
)

respwan_table
[
se_obj
.
id
] =
section

respwan_npc
[
section
] =
false

end
end
end
end
end

 

for id,section in pairs(respwan_table) do

local
obj
=
db
.
storage
[
id
]
and
db
.
storage
[
id
].
object

if not
obj
or
obj
:
alive
() ==
false then

respwan_npc
[
section
] =
true

respwan_table
[
id
] =
nil

end
end

 

 

Добавлено через 79 мин.:

I long ago do not work with S.T.A.L.K.E.R so answer will not very exact.

First. Get population gulag

function IsPopulationGulag(name)
        local gulag = xr_gulag.get_gulag(name)
        -- or local gulag  = xr_gulag.fraction["name_gulag"]  -- "name_gulag" is string at name gulag. Sorry, exactly not litter.
        return gulag:get_population() > 0
end

Second. If population is a zero, that cause forced respawn

function ForceRespawn(name) -- name is story id smart_terrain or name (string) gulag
    if not IsPopulationGulag(name) then
        -- your function for spawn NPC
        spwanen() -- Only correct mistakes, about which I have said
    end
end

 

А еще интересно то, что вот такой предложенный "искусственный" респавн, наш гость пытается "прилепить" к НПС, не в гулаге, а со своей логикой.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Ну тогда писать каждому в логику секцию [on_death] и в ней выдачу инфопорции на смерть. Когда соберутся все, производить спавн и восстановление инфопорций.

Ссылка на комментарий

hey

will you that i writ it so?

that when i have has_alife_info thrn

spwan this npc?

but when the respwant npc is dead when will he respwan?

and i have no gulag i have only a logic script.

can you help me away or a other?

thank you

 

Желающие помочь/ответить иностранному гостю - пишите, плз, ему в ЛС.

ИМХО, пока прекращать эти потуги и практически бесплезную болтологию на англо-русско-луашном сленге, только засоряющую топик ... --/Artos

 

Добавлено через 120 мин.:

why ?

you will not help me Artus?

 

i have a problem by this every i laod again the npc´s will respwan but that i don´t will must i save it?

but how i can save it?

 

 

thank you

Изменено пользователем Artos
Ссылка на комментарий

olaf1, я уже говоррил в теме про использование русского языка на форуме!

Мне не требуется коверканный английский (Artos -> Artus, load -> laod, then -> thrn ...), чтобы пытаться понять ваши попытки писать коды/скрипты ... К сожалению, желания растолковывать азы и уже не раз написанное тому, кто даже толком не может объяснить что же хочет - более не имею.Вот тут: #7812 и #7815 все разжевано и приведены даже коды. И то, что ты пытаешься понять и сделать самописными скриптами уже давно имеется в оригинальных кодах.

Есть желание - переводи, читай и применяй.

И, чтобы не было обид или непонимания, почему ваши посты будут удаляться/скрываться, или пиши на англоязычной версии форума или потрудись свои вопросы переводить на понятный для русско-язычных читателей темы.

Заранее спасибо, если вы НЕ будете обращаться с вопросами именно ко мне. I will not help you since I have on it no possibility and desire.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Oh i have some misspelling in englisch sorry for that but that can you make too in Russian.

And this i have read ,too but it is not that what i will by that the npcґs where delet from the List(clear) and this give by me a cras as i have test it.

But i will respwan NPCґs.

But i donґt know how i can save it and i have not find somthing abut it (which I do believe)

This is the problem not the re_spwan.script that i donґt need.

The re_spwan.script is only i think for gulags and by me the gualgs get a crash and i have make all but it work not.

And then i have found a text in the englisch forum of GSC-Forum that logic script are better then the gulags then i will make logic script but the NPCґs respwan by this not ;(

And then i have an Idea that i can writ a script the spwan script is easy but the repswan that i donґt can and is very hard.

But this where very nice when you ot an other can help me.

I donґt know why this only make how it wants speak the npcґs are spwan when i save and load the game again but this i donґt will and i have not find somethinh about that.

I hope that anyone will help me.

Thnak you.

Изменено пользователем ColR_iT
Ссылка на комментарий

olaf1

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

Есть такая поговорка - "Изобретать велосипед", думаю, не стоит объяснять смысл этой фразы...

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

В игре присутствует респавн НПС после их смерти. Да, в большей степени это реализовано для гулагов, но что мешает использовать их?

Если на это есть веская причина и единственным решением является использование НПС с их собственной логикой, то Gun12 в последнем своём сообщении дал, возможно, единственное правильное решение того, что вам необходимо.

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

P.S. В дальнейшем пишите, пожалуйста, ваши вопросы на родном вам языке под одним спойлером, а также перевод на русский язык под другим спойлером, как в данном случае сделал я.

Благодарю за понимание.

It's not that you are allowing a lot of mistakes when writing text, and that this text is very difficult to read and thus to understand exactly what you need, almost impossible. I originally asked you to write in their native language you on how you use in everyday life. But even this is not a problem.

There is a saying - "Re-invent the wheel", I think it is not necessary to explain the meaning of this phrase...

So you're trying to reproduce what did the developers and what are all well.

The game has NPC respawn after their death. Yes, to a greater extent it is implemented for the gulags, but what prevents you from using them?

If this is a good reason and the only solution is to use the NPCs with their own logic, then Gun12 in his latest report gave possibly the only correct decision on what you need.

And the last one. A foreign visitor to us is good, but there are rules on the forum, one of which states that it is necessary to comply with the rules of spelling and this applies not only to the Russian language, but also to all others in which users write. Therefore, I urge you to write correctly, otherwise I will have to punish you according to prescribed rules.

P.S. In the future, please write your questions in their native language, you are under a spoiler, as well as the Russian translation of a different spoiler, as in this case I did.

Thank you for your understanding.

 

Изменено пользователем ColR_iT
Ссылка на комментарий

Однажды я спросил ее один надеюсь, что я ответил на него так или иначе?

Я хотел бы знать, можно ли написать скрипт с файла LTX и сохранить то, если да, то как?

 

Благодарю вас, прежде чем

 

I hope you will help me continue anyway?

 

I would like to know whether you can write a script with an ltx file and save it then if so how?

 

thank you before

 

rus: Правилами форума запрещено дублировать один и тот же вопрос.

eng: Rules of a forum it is forbidden to duplicate the same question.

--/Artos

 

Добавлено через 54 мин.:

ой извините, но ознакомиться с правилами и понять, то после того, как переводится это действительно трудно.

 

rus: Не знание и/или непонимание правил не освобождает от ответственности их нарушения.

eng: Not the knowledge and/or misunderstanding of rules doesn't relieve from responsibility of their violation.

--/ Artos

 

Строгое предупреждение от модератора ColR_iT
Запрещено оставлять сообщения, содержащие чрезмерное количество грамматических и пунктуационных ошибок.
Изменено пользователем ColR_iT
Ссылка на комментарий

Краткая реплика по поводу сохранений данных из "самописных" скриптов:

Нередко возникают вопросы от начинающих модмейкеров - почему данные из их скриптов, которые были в игре (таймеры, таблицы, ...) не сохраняются в сэйвах.

Ответ же очевиден(!), если модмейкер не позаботился сохранить свои данные, то почему игра должна за него это делать автоматически?

Как же сохранить данные (значения различных переменных) из скриптов?

 

Основной вариант:

В скрипте xr_logic.script имеется две функции pstor_store и pstor_retrieve (соответственно запись и чтение), которые предназначены для записи в хранилище (pstor) выбранного объекта (в том числе и актору). Все данные, которые попадают в это хранилище автоматически записываются в сэйв и восстанавливаются в это же хранилище при запуске игры из сэйва.

Примеров использования этих функций немало в оригинальной игре и модах.

Примечание: Все данные сохраняются в виде таблицы: {key_N = value_N}, где key - строка, а value - строка, число или булево значение. Если требуется иное - смотрим расширенные коды в модах.

Предупреждение: Общий размер сохраняемых данных для объекта не может превышать 8192 байта (для ТЧ), включая данные и собственно самого объекта, а не только его pstor'а.

 

В версиях игры ЧН/ЗП имеется возможность сохранять значения в файлах (*.ltx,*.txt и др.) используя пространство io. Синтаксис работы с io можно посмотреть в мануалах по Lua. В оригинальной версии игры ТЧ (SHoC) 'этой возможности нет и для возможности использования требуются те или иные расширители движка (см. x-Ray Extensions, xrLuaFix, LuaCap).

 

Более продвинутый вариант сохранения данных был предложен Malandrinus'ом, см. про "Универсальная система хранения пользовательских данных" в топике "Язык Lua. Общие вопросы программирования.". Материал требует знаний и навыков в языке Lua и моддинге игры.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Во-первыx, что подразумевается вами под 'для этого'? Или Вам "простенько" расписать все три варианта сохранения? (чего конечно делать не буду).

 

Во-вторых, несложно поиском по ключевым словам pstor_store и pstor_retrieve найти в оригинальных скриптах от разработчиков игры готовые примеры. Хотя бы в xr_effects.script функции inc_counter и dec_counter, которые читают и сохраняют счетчики актора.

 

В-третьих, вам похоже хочется сохранять таблицы (индексы заспавненых неписей и/или их секции), а для этого "простенько" уже не получится и проще всего взять коды из АМК-мода (или написать аналогичные), которые переводят таблицы в строки, тем самым позволяя их сохранять и восстанавливать. См. amk.save_table и amk.load_table.

 

И, повторяю, все, что вами тут затевается довольно просто делается на штатных кодах/скритах.

Респавнеры (см. se_respawn.script) никак не завязаны на гулагах и задавая респавнеру набор секций для спавна и требуемое кол-во заспавненных неписей - респавнер за вас будет отслеживать удаленных и мертвых и доспавнивать новых. Он же и сохранит кол-во уже заспавненных в сэйве и "вспомнит" при запуске сэйва.

Ну а при желании, можно обуславливать респавн неписей самыми разными условиями/ограничениями.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Вы имеете в виду это произойдет в конце концов?

Я уже сделал это здесь

local ltx = ini_file("respawn\\respwaner.ltx")

function spwanen()
if db.actor:alive() == false then return end
    local level_name = level.name()
        if ltx then
            if ltx:section_exist("respawns") then
            local respwan_haupt = read_section(ltx, "respawns")
                for respwans,bool in pairs(respwan_haupt) do
                    if bool == true then
                        if ltx:section_exist(respwans) then
                        local level = ltx:r_bool(respwans,"level")
                            if level_name == level then 
                            local sections = ltx:r_bool(respwans,"sections") 
                            local position = ltx:r_bool(respwans,"position") 
                            local pos = vector():set(position)
                            local lvi = db.actor:level_vertex_id()
                            local gvi = db.actor:game_vertex_id()
                            local se_obj = alife():create(section, pos, lvi, gvi)
                            datei = io.open("respawn\\respwaner.ltx", "w")


                        end
                    end
                end
            end
        end        
    end
end

 

и это LTX файл

[respawns]
mar_clear_sky_respawn_1 = true
mar_clear_sky_respawn_2 = true
mar_clear_sky_respawn_3 = true


[mar_clear_sky_respawn_1]
level = marsh
sections    = mar_clear_sky_respawn_1
position = -61.996055603027,0.92057931423187,293.67742919922



[mar_clear_sky_respawn_2]
level = marsh
sections    = mar_clear_sky_respawn_2
position = 61.996055603027,0.92057931423187,293.67742919922



[mar_clear_sky_respawn_3]
level = marsh
sections    = mar_clear_sky_respawn_3
position = -61.996055603027,0.92057931423187,293.67742919922

 

 

и как я могу написать книгу сейчас LTX особенность файла, так что, что?

Я сказал, да hbae книга теперь с "W", что я напишу об этом, но я могу сказать Вам точно, где

 

спасибо

 

Cколько же вам можно твердить, что библиотека io (Input-Output) ОТСУТСТВУЕТ в оригинальной игре "S.T.A.L.K.E.R.: \'Shadow Of Chernobyl"!

И кем же нужно быть (?), чтобы как вы, имея версию именно SHOC (v.1.0004), продолжать пытаться писать коды с использованием:

datei = io.open("respawn\\respwaner.ltx", "w")

- Не возможно применение данной библиотеки в вашем случае!

--/Artos

 

Строгое предупреждение от модератора ColR_iT
Запрещено оставлять сообщения, содержащие чрезмерное количество грамматических и пунктуационных ошибок.

Сутки чтения.

Изменено пользователем ColR_iT
Ссылка на комментарий
дело было к вечеру, делать было нечего ...

О кострах: Пока форум был недоступен, почитал соотв.топик на СП, где шел разговор о кострах и их трех(?) составных частях.
Т.к. это вероятно интересно и другим, но ответ так и не был дан, решил внести свою лепту ... т.к. в свое время немного поковырял и эту тему. Ну, а т.к. тема для любой версии игры - то решил, что место ей в этом топике вполне подойдет.
Итак, костры в игре/модах, как правило, состоят (спавнятся) из 5-ти(!) частей, а не из 3-х, как обсуждалось на СП:
1. "Кострище" (fireplace) - собственно модель костра. В оригинальной игре это объект карты и создан в SDK, в игре может быть заспавнен скриптами или в all.spawn'е;
2. "Искры" - партиклы, приписанные кострищу и отображающие тлеющие угольки, дымок, и разбасываемые искорки. Также в оригинале приписывается к модели в SDK;
3. "Осветитель" (lights_lamp) - объект, который при активном (горящем) костре, дает освещение окружающего пространства, блики;
4. "Пламя" (zone_flame_small) - собственно это тип аномалии (жарка), которая имеет визуалом пламя и которая собственно и наносит хиты другим объектам (жжется);
5. "Ограничитель" (space_restrictor) - это обычный рестриктор, который ограничивает собою некое пространство вокруг костра.

Естественно, каждая из указанных частей может отсутствовать у костра, тем самым меняя и внешний вид и функционал.
Без кострища (дрова,угольки,бочка,кирпичи,...) несколько странным выглядят посителки у источника пламени "из травы" ...
Без осветителя - костры становятся "темными", ничего почти не освещая вокруг себя ...
Без искр и дымка - это уже смахивает на некие керосинки ...

Основные непонятки на СП были связаны с рестриктором. Для чего же он нужен и нужен ли вообще?
Если посмотреть, то можно видеть, что этот рестриктор имеет тип 2 (DefaultRestrictorTypeIn), т.е. ограничивает вхождение в зону костра. Учитывая, что "пламя" (это аномалия zone_flame_small), которая также сделана на классе рестриктора имеет тип 0, т.е. не заметна для НПС, то как раз "ограничитель" и командует неписям не входить в собственно зону костра. При "рассаживании" неписей вокруг кострища (схема kamp) это как раз и не позволяет проходить через "бочки"/"кирпичи", а выбирать пути в обход кострища.
Не следует заблуждаться и удивляться, что мол если есть ограничитель, то почему нередко в оригинальной игре неписи "жарятся" в кострах? Ограничитель является логическим, а не бетонной стеной вокруг костра. Если какая-либо схема скомандует напрямую идти по пути, проходящему через костер - НПС и пойдет именно этим путем. Если в боевке потребуется по какой-то причине заступить в костер - так и происходит.

Вот чего мне самому непонятно, то это:
1. Почему разработчики для "пламени" (zone_flame_small) использовали тип 0 (DefaultRestrictorTypeNone)? Как будто неписи слепые и не имеют осязания, чтобы не лезть в открытое пламя или в жар. Ведь тип 2 (DefaultRestrictorTypeIn) продублировал бы запрет на вхождение в костер и может быть снизил бы кол-во поджаривающихся НПС.
2. Почему выбран куб в качестве формы ограничивающего костер рестриктора? Хотя это не столь важно, но сфера более логична для применения ... Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos,

1. Почему разработчики для "пламени" (zone_flame_small) использовали тип 0 (DefaultRestrictorTypeNone)? ...Ведь тип 2 (DefaultRestrictorTypeIn) продублировал бы запрет на вхождение в костер и может быть снизил бы кол-во поджаривающихся НПС.

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

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

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

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

malandrinus, ты не совсем понял мой вопрос, или ... я его недостаточно полно сформулировал:

Мною не ставится под сомнение желательность/обязательность наличия именно "ограничителя", т.е. спейс-рестриктора, который окружает кострище (аномалию). Это само собою дает именно "не обжигаться" каждый раз при подходе к костру.

Вопрос в том, что применение типа 2 именно к "пламени" (аномалии) ничем не осложняет коды и прочее, и как раз бы дало помимо дублирования ограничения на вход (хотя и более меньего радиуса), как-бы "видимость" аномалий неписями. Ведь разница для срабатывания аномалий типа 0 и типа 2 никакой, а вот если все же НПС попал в радиус "пламени" - то движек бы дополнительно к внешнему рестриктору бы добавил условие на невхождение ... и дал бы пинок, чтобы НПС вылезал бы из костра. Хотя ... если одно условие не срабатывает (от внешнего рестриктора), то вполне может и вторичное не срабатывать, но все же лишним всего лишь 0->2 не было бы. ИМХО.

 

А по второму вопросу, о кубической форме ограничителя - нет мыслей/предположений? Вроде как практически все костры в Зоне "круглые" и как то непонятнен выбор куба вместо сферы.

 

P.S. А по хорошему, чтобы не жарились, нужно бы на коллбэк хита живым неписям ставить поверку на "не костер ли их обжег?" и давать безусловный "пинок" в сторону "от костра" ...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos,

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

 

Почему бокс, а не сфера, сие мне не ведомо. Может схалтурили просто.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

malandrinus, из контекста моего описания и вопроса как раз и следует: а почему, если аномалия все же заспавнена и имеет обязательным параметр restrictor_type, значение это установлено именно 0, а не 2.

Ведь все одно уже задается тип рестриктора в том же (all.spawn'e) и ничего не мешает именно по смыслу дать ограничивающий тип.

То, что установка в 2 не выполняет всего того, что внешний спейс-рестриктор, окружающий аномалию - это ясно и в контексте описания ранее. Но, учитывая, что это все же не аномалия, которых немало в зоне и которым специально в модах ставится тип 0, дабы неписи в них попадались, а именно костер, который заведомо виден неписям, то значение 2 просто бы продублировало внешний ограничитель. И, учитывая эмпирические наблюдения, НПС "видит" границу рестрикторов несколько ранее, чем касается их, т.к. видно, как при своих похождениях они именно обходят зоны, а не "коснувшись" границы - начинают обход. Вот это и подразумевал под "может поменьше бы жарились", т.к. возможно "видели" бы не одно, а целых два ограничения.

 

А халтура (это о форме куба) - обычно делается с целью облегчения ... Но задать сферу, с ее двумя параметрами радиуса и offset'а, гораздо проще, чем четыре для куба ... тем более для пламени все одно сфера применена ... Вот это и смущает, а может есть какой-то скрытый смысл в "халтуре" разрабов? ;-)

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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