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

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


Svoboда

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

speczadanie я думаю проблема не в АИ сетке, поскольку в случае спавна НПС в зоне, где сетки нет, например хатка за спиной у Волка, то он просто будет в судорожном состаянии "левитировать" к ближайшей точки АИ сетки, это я проверял лично.

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

З.Ы. присоеденяюсь к вопросу Scarabay

Изменено пользователем Куфзук

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


Ссылка на сообщение
speczadanie, какую анимацию ты используешь? На ком ставишь эксперементы?

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


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

Galil,т.е. как это как? Через all.spawn, вот его секция:

[4361]
; cse_abstract properties
section_name = stalker
name = yantar_semenov
position = 32.7772598266602,-11.7194442749023,-276.717651367188
direction = 6.52600806727577e-010,-4.13636257813902e-015,6.3382735788764e-006

; cse_alife_trader_abstract properties
money = 5000
character_profile = yan_Semenov

; cse_alife_object properties
game_vertex_id = 1480
distance = 21.6999988555908
level_vertex_id = 55344
object_flags = 0xffffffff
custom_data = <<END
[smart_terrains]
yan_scientist = true
END
story_id = 905

; cse_visual properties
visual_name = actors\ecolog\stalker_ecolog

; cse_alife_creature_abstract properties
g_team = 8
g_squad = 8
g_group = 2
health = 2
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 2
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 32.7772598266602,-11.7194442749023,-276.717651367188
upd:o_model = 0
upd:o_torso = -4.13636257813902e-015,6.52600806727577e-010,0
upd:g_team = 8
upd:g_squad = 8
upd:g_group = 2

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 1,0,0,1,1
predicate4 = 2,2,1,2

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

Если Круглов не выжил спавниться Семенов. Как? Вот:

При смерти Круглова, actor получает инфопоршен yan_scientist_die, в файле yantar_tasks.script есть функция вида:

function yan_scientist_task_fail ()
        return has_alife_info("yan_scientist_die") and not has_alife_info("yan_scientist_return_to_bunker")
end

После чего и спавнится Семенов.

Изменено пользователем Куфзук

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


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

Я бы сказал, что эта инфопорция yan_scientist_return_to_bunker, будет у ГГ, вслучае прибытия на место Круглова. Поэтому функция и проверяет одновременное наличие инфопорции yan_scientist_die и отсутствие yan_scientist_return_to_bunker, что собственно и определяет спавн Семенова.

Или я ошибаюсь... :huh:

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


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

Gektor, ты знаешь в процессе собственных испытаний, я так же частенько получал вылет с указанием на 20ю строку _g.script, именно в случаях спавна НПС и написания ему собственной логики. И вот что я для себя определил:

Чтобы понять в чем дело, я закоментировал эту самую 20ю строку и игра стала грузиться. НО! НПС не делал того, что предполагала прописанная ему логика, он мог просто стоять, втыкая в одну точку (самый частый случай), мог нервно подергиваться и тому подобное. А все дело оказалось в правильности написания путей. Если сказать совсем просто, то вылет с руганью на 20ю строку, я получал, когда косячил в way_ файлах или файлах логики. Так что тебе стоит попробывать закоментировать эту строку и посмотреть, что из этого выйдет.

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


Ссылка на сообщение
max_max_08, в корне не согласен! У меня не один сейв битым не был. К тому же если Gektor прописывает ему новую логику, то сейвы ему и не пригодятся, поскольку необходимо начинать новую игру. Изменено пользователем Куфзук

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


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

Gektor, мало можно чем-то тебе помочь! поскольку телепатическими способностями обладают не многие... , то предлагаю тебе выложить, естественно под спойлером, логику твоего НПС. И тогда обязательно найдется тот, кто сможет тебе помочь.

И на счет...

Скорее всего и з этого выйдет битый сэйв (при наличии ошибок).
max_max_08, я не предлагаю оставлять закоментированную 20ю строку _g.script, я советую это сделать на время, чтобы увидеть (возможно) в чем косяк.

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


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

Gektor, почему не срабатывает, не делает то, что ты задумал или делает, но не так? Вертолет. А при чем тут вертолет? Секция [spawner] ему не нужна.

Wiki

Эта секция, которая присутствует как у NPC, так и у монстров, спавнит их по определенному условию (выводит в онлайн). ...

где здесь про вертолет то сказано!? Например, тот же вертолет на кордоне, что мимо вагончика пролетает, спавниться при старте игры. Когда игрок входит в space_restrictor c именем esc_heli_attack_zone, то он получает инфопорцию esc_heli_go, по которой в логике вертолета начинается его движение. И к тому же, разве вертолет можно переводить в online?
... С нпц тоже попадается такая проблема. ...
всмысле "попадается"? Спавнется в начале игры? Вероятно срабатывает условие спавна, нужно проверить нет ли у тебя его при старте игры.

Лис, Фанат, Наемники, все у того же вагончика, три кабана и с десяток псов, появляется на Кордоне, именно благодаря этой секции, взгляни на них, возможно тебе они помогут.

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


Ссылка на сообщение
Gektor, а схема отвечающая за секцию [spawner] находится в файле xr_spawner.script. :) Изменено пользователем Куфзук

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


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

Jurok, а какова вероятность того, что необходимый инфопоршен отсутствует?

 

И попробуй инфопоршен проверить не not has_alife_info, а через dont_has_info.

Изменено пользователем Куфзук

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


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

Jurok, так вот именно dont_has_info и проверяет отсутствие инфопоршня у актора.

bool dont_has_info(string <имя инфопоршена>);  // проверка на отсутствие инфопоршена

Это из темы "Справочник по функциям и классам"

Просто почему я склоняюся к инфопоршню. Всего лишь потому, что проверка на наличие костюма правильная. Попробуй убрать проверку инфопоршня... Постой.

...а умираю я сразу же в начале игры (имея в инветаре броник)...
так у тебя же проверка стоит на его наличие! :huh:

 

С _Призрак_ом полностью согласен! :)

Изменено пользователем Куфзук

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


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

Jurok, загляни в тему "Справочник по функциям и классам", там четко указано, что и для скриптов есть такая функция.

Твой вариант

not has_alife_info("maior_barsakov_info")

работает так: функция has_alife_info возвращает true(да), при наличии у тебя инфопоршня maior_barsakov_info, а отрицанием not - ты меняешь его на false (нет).

А функция

dont_has_info("maior_barsakov_info")

сразу возвращает значение false(нет).

Поэтому это своего рода опримизация кода. :)

Изменено пользователем Куфзук

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


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

SLAVYANICH

...как отменить уже заспавненного непися...
Ну по всей видимости Ctrl+Z. :rofl2:

Ну а если серьезно, то тебе нужно перевести его в offline. Почитать об этом можешь здесь: Переход нпс в offline-online через скрипт

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


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

Unmerklich Jo, ну лично я бы не торопился с выводами, а если и было сотню раз, то может ссылку даш... :ny_tongue:

 

znachara, теперь по делу! Хотя нет, для начала - с наступающим тебя!

Я бы не стал вешать на апдейт еще один таймер, ведь есть уже, почему бы им не воспользоваться!?

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

И сразу скажу, что в твоем случае, если при первом запуске, таймер насчитает больше 10, то при всех остальных вызовах этой функции, это значение, так же будет больше 10 и ничего происходить не будет! Это так, на заметку.

Изменено пользователем Куфзук

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


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

znachara, ты сейчас пытаешься сделать велосипед! АМК уже давно все сделала, причем в том же алгоритмы, разве что цифры отличаются. Вот тебе сон с рюкзаком на основе АМК файлов: >>Click me<<

Если что-то не понравиться можешь подправить с указанием авторов скрипта.

 

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


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

znachara, есть мод, точного названия не помню, кажеться "Биорадар" или "Детектор жизненых форм". Там именно скриптами отображалося положение всех живых существ на радаре, подшаманив можно отключить отображение НПС.

По поводу военных, нужно глянуть в их гулаг под мостом или попробывать отредактировать частоту спавна НПС на локации.

 

а про добавленный вопрос?
Что, про добавленный выброс? :ny_unsure: Изменено пользователем Куфзук

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


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

Byurrer, не вмешиваясь в логику приемника - нет! Я сначала думал, что возможен вариант как с телевизором, у него в модель вшиты анимаии, может у приемника есть, что либо бодобное, но нет. Наткнулся только на надпись в User Data:

[disable]
linear_factor   =0.1
angular_factor  =0.1

Что это я не знаю!

 

Есть конечно вариант через схему sr_sound_act, но помоему это, так сказать, "веселый" вариант...

А почему для тебя критично не вмешиваться в логику?

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


Ссылка на сообщение
znachara, ну вот ты как думаешь, что легче: прописать условие в нужном месте или создавать всю схему с нуля? Я тебе сказал, что данный алгоритм уже реализован, а с какими нюансами - это ты уж извеняй! :ny_cool:

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


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

Byurrer, а что ты считаешь "ресурсоемким"? На крайний случай заспавни этот приемник через скрипт, если ты не хочешь трогать all.spawn во избежании совместимости.

Конечно интересно! Обязательно отпишись... :ny_thumbsup:

Изменено пользователем Куфзук

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


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

ЙоЖеГ, с наступающим Новым Годом!

На двадцатую строчку ругань идет в случае ситкасической ошибки в логике (уже обсуждалося, 101 пост на этой странице), я вот например, случайно вместо active написал activ, так вот и получил ругань на 20ю строку _g.script.

И по поводу озвучки фразы, возможно gruber прав! Нужно попробывать в папку sounds\dialogs положить файл с названием один-в-один, как айди фразы в диалоге. Попробуй, может что-то и выйдет! :ny_thumbsup:

Изменено пользователем Куфзук

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


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

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