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

Ковыряем ОП-2


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

(изменено)

2 stalk9r: снести из net_spawn(), и не мучиться. Ну то есть просто по имени взять atp_torgovetz_sms_restrictor и atp_sedoy_delete_restrictor, и снести.

Можно, кстати, сразу с тем вертолетом, для которого надо "vse_poshla_vertuha".

 

Ну или разбирать логику, а потом перезаписать.

 

 

По поводу правок к 7.3, 7.4, и прочим 7.777 - так не проще уже освоить, как это делается ? Если вот так вот прямо обязательно надо ? Ну сделают вам для 7.888 - а завтра 8888.8888 будет...

Изменено пользователем Dennis_Chikin
  • Нравится 2

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


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

Но некоторые трупы остаются неделю и более...

Имеющие sid, либо занесенные в protected_items.script

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

 

2 zerocobra: если вот так вот лениво разбираться, где - чье, пишем:

использованы материалы с форума amk (http://www.amk-team.ru/forum/index.php?showtopic=12839&p=846749)

Простое удаление рестрикторов Седого не помогает, ахтунги вылазят всё равно

- вообще, если рестрикторы удалены правильно, то он даже и не прилетает.

 

Есть правка на визуал рестрикторов 2.05-7?

ну там ж пара строк всего. Неужели так сложно перенести ? Изменено пользователем Dennis_Chikin

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


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

"fake_wpn_knife" - не без разницы ли, если все равно одно подменяется другим ?

Потом - когда 1 нож в слоте уже есть - да, есть нюанс.

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


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

Попробуй в файле xr_wounded.script изменить это:

и "уберите в xr_wounded.Cwound_manager:hit_callback()

if self.npc:critically_wounded() == true then return end" тогда уж.

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

Если предмет найден в конфиге, то хорошо бы сразу указывать и конфиговое название. ;)

после spawn_level_changer.checking_droped_obj(obj) добавляем первой строчкой if true then return end

 

 

Гм, по поводу флуда... Будем, все-таки, лечить. Уговоры надоели и продемонстрировали очевидную бессмысленность.

Изменено пользователем Dennis_Chikin
  • Полезно 1

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


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

+1 к предыдущему оратору.

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

В результате очень много что работает неправильно.

 

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

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

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


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

К вопросу об автовыборе бинокля при загрузке (ну и вообще автовыборе оружия):

В солянку обезжиренную наконец дошли руки добавить actor:activate_slot( 5 ) - просто на 5-ю секунду после загрузки.

Полет нормальный, теперь всегда выбран болт.

 

Эрго, в ОП2 аналогично всаживается выбор нужного слота на получение бинокля в on_item_take() и в восстановление оружия - после actor:restore_weapon(), и будет выбран этот самый слот. Если он все равно не выбирается, а выбирается бинокль - значит ищите где-то аналогичный принудительный выбор.

 

Других вариантов я таки не представляю. Если все равно не работает - ну, значит, делаете что-то не то.

  • Нравится 2

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


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

Поставить одну строку в проверку.
Опять же, переделанный скрипт в солянкоскайпе я давал еще 4 года назад. Можно ж и там посмотреть.
 
В общем, для всех остальных:
function add_to_binder( трам-пам-пам )
...
action = act_reach_item( чо-то там )

вот ТАК должно быть:
action:add_precondition( world_property( stalker_ids.property_alive, true ) )
action:add_precondition( world_property( stalker_ids.property_enemy, false ) )
action:add_precondition( world_property( stalker_ids.property_danger, false ) )
action:add_precondition( world_property( prop_contact, false ) )
action:add_precondition( world_property( xr_evaluators_id.sidor_wounded_base, false ) )
action:add_precondition( world_property( blowout_scheme.evid_anomaly, false ) )
action:add_precondition( world_property( blowout_scheme.evid_blowout, false ) )
action:add_precondition( world_property( evid_see_stuff, true ) )

 

а вот это наоборот:  -- action = manager:action( stalker_ids.action_danger_planner )

 

 

Ну и, да, напоминаю, что всю ересь про memory_sound() стоит снести заодно. Они и так на 360 градусов и на всю локацию сквозь стены видят, чтоб потом еще раз по всем год-либо имевшим место в игре звукам проверять. Слава слонопотаму, что хоть еще поиск по нюху не добавили.

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

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


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

Еще раз переделывать не хочу, по тому как сделана связка для AI, и любопытствующие могут сравнить. Есть в соседней теме.

Возращать обратно все унылые извращения... Бр...

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

 

Сам не буду.

 

Ну вот если на скорую руку, снести наиболее очевидный бред, то что-то типа такого:

https://dl.dropboxusercontent.com/u/27871782/watcher_act_op2.script

А вот как оно работать будет, и будет ли вообще...

 

P.S. но все равно бред. Кто-то в свое время очень старался с очередным ущучиванием игрока. Чтоб ни единого сломаного ПМа, и ни одного облезлого хвоста с дохлой собаки не досталось.

Изменено пользователем Dennis_Chikin
  • Полезно 1

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


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

Про Кузнецова, если вдруг кому еще зачем понадобится...

найдите в config\misc\gulag_escape.ltx кусок:

 

; -- Soldiers on the bridge --


[meet@sold_zoneguard]
meet_state	= 30| {+esc_bridge_pass_on} guard, guard@ {+esc_bridge_pass_on} talk_hello, wait
meet_state_wpn	= 30| {+esc_bridge_pass_on} guard, guard@ {+esc_bridge_pass_on} talk_hello, wait
victim		= 30| actor
victim_wpn	= 30| actor
use		= true
use_wpn		= true
;zone		= esc_bridge_kill_zone|{-esc_bridge_pass_on} true@ {-esc_bridge_pass_on} esc_bridge_soldiers
meet_dialog	= esc_bridge_soldiers_start
precond = visibility
...
[walker@esc_bridge_patrol]
path_walk = patrol_walk
path_look = patrol_look
combat_ignore_cond = {-esc_bridge_pass_fire =fighting_actor =is_alive(032)}


; -- Killers --

 

и замените на

 

; -- Soldiers on the bridge --


[meet@sold_zoneguard]
meet_state	= 30| {+esc_bridge_pass_on} guard, guard@ {+esc_bridge_pass_on} talk_hello, wait
meet_state_wpn	= 30| {+esc_bridge_pass_on} guard, guard@ {+esc_bridge_pass_on} talk_hello, wait
victim		= 30| actor
victim_wpn	= 30| actor
use		= true
use_wpn		= true
meet_dialog	= esc_bridge_soldiers_start
precond = visibility

[combat_ignore@esc_bridge]
combat_ignore_cond = {=fighting_actor}

[hit@soldier]
on_info = {=hit_by_actor} %+esc_bridge_pass_fire%

[death@soldier]
on_info = {=killed_by_actor} %+esc_bridge_pass_fire%

[death@soldier_kuzn]
on_info = {=killed_by_actor} %+esc_bridge_pass_fire%


[logic@esc_bridge_post1]
active	= walker@esc_bridge_post1
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier

[walker@esc_bridge_post1]
path_walk = post1_walk
path_look = post1_look
combat_ignore_cond = {=fighting_actor}

[logic@esc_bridge_post2]
active	= walker@esc_bridge_post2
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier_kuzn

[walker@esc_bridge_post2]
path_walk = post2_walk
path_look = post2_look
meet = meet@sold_zoneguard
on_actor_dist_le_nvis = 35 | remark@esc_bridge_post2_1
combat_ignore_cond = {=fighting_actor}

[remark@esc_bridge_post2_1]
anim	= guard
target	= actor
on_actor_dist_le_nvis = 20 | remark@esc_bridge_post2
on_info	= {+esc_bridge_pass_fire} walker@esc_bridge_post2
combat_ignore_cond = {=fighting_actor}

[remark@esc_bridge_post2]
anim	= guard
target	= actor
snd	= esc_bridge_soldiers
on_signal = sound_end| walker2@esc_bridge_post2
combat_ignore_cond = {=fighting_actor}

[walker2@esc_bridge_post2]
path_walk = post2_walk
path_look = post2_look
meet = meet@sold_zoneguard
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_post3]
active	= walker@esc_bridge_post3
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier

[walker@esc_bridge_post3]
path_walk = post3_walk
path_look = post3_look
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_post4]
active	= walker@esc_bridge_post4
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier

[walker@esc_bridge_post4]
path_walk = post4_walk
path_look = post4_look
meet = meet@sold_zoneguard
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_post5]
active	= walker@esc_bridge_post5
on_hit	= hit@soldier
on_death= death@soldier
combat_ignore = combat_ignore@esc_bridge

[walker@esc_bridge_post5]
path_walk = post5_walk
path_look = post5_look
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_post6]
active	= walker@esc_bridge_post6
combat_ignore = combat_ignore@esc_bridge
on_hit	= hit@soldier
on_death= death@soldier

[walker@esc_bridge_post6]
path_walk = post6_walk
path_look = post6_look
meet = meet@sold_zoneguard
on_actor_dist_le = 25| remark@esc_bridge_post6
combat_ignore_cond = {=fighting_actor}

[remark@esc_bridge_post6]
anim	= guard
target	= actor
snd	= esc_bridge_soldiers
on_signal = sound_end| walker2@esc_bridge_post6
combat_ignore_cond = {=fighting_actor}

[walker2@esc_bridge_post6]
path_walk = post6_walk
path_look = post6_look
meet = meet@sold_zoneguard
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_kamp1]
active = kamp@esc_bridge_post1
combat_ignore = combat_ignore@esc_bridge

[kamp@esc_bridge_post1]
center_point	= kamp_point
path_walk	= kamp_point_task
soundgroup	= esc_bridge_soldiers
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_kamp3]
active = kamp@esc_bridge_post3
combat_ignore = combat_ignore@esc_bridge

[kamp@esc_bridge_post3]
center_point	= kamp_point
path_walk	= kamp_point_task
soundgroup	= esc_bridge_soldiers
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_kamp4]
active = kamp@esc_bridge_post4
combat_ignore = combat_ignore@esc_bridge

[kamp@esc_bridge_post4]
center_point	= kamp_point
path_walk	= kamp_point_task
soundgroup	= esc_bridge_soldiers
combat_ignore_cond = {=fighting_actor}


[logic@esc_bridge_patrol]
active = walker@esc_bridge_patrol
combat_ignore = combat_ignore@esc_bridge

[walker@esc_bridge_patrol]
path_walk = patrol_walk
path_look = patrol_look
combat_ignore_cond = {=fighting_actor}


; -- Killers --

-- дальше можно хоть песни петь, хоть дуэль на мясорубках устраивать - всем будет пофиг.

 

Должно работать для всех разновидностей солянок, и не только.

Изменено пользователем Dennis_Chikin
  • Полезно 3

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


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

Хваталки и прочие "невидимые": config\misc\zone_ameba.ltx

[zone_ameba]

 

idle_particles		= static\buble_distort00
idle_particles_dont_stop= true

idle_light		= on
idle_light_range	= 5.0
idle_light_range_delta	= 0.25
idle_light_anim		= light_green_02
idle_light_height	= 0.2	; подъем источника света на высоту

 

[zone_ameba1]

 

idle_particles		= static\buble_distort00
idle_particles_dont_stop= true

idle_light             = on
idle_light_range       = 5.0
idle_light_range_delta = 0.2
idle_light_anim        = koster_01
idle_light_height      = 0.1	; подъем источника света на высоту

- подкрутить под свой монитор и свои настройки

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

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


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

2 shahvkit:

 

Полоски показываются абсолютно корректно, включая все hit_rate, disp_rate и иже с ними, также как и к боеприпасов, прописанных как основные.

Если в конфигах - бред, тогда - да, бред и показывается.

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


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

Делаю для "обезжиренной" соли.

 

Но на кой вообще рестриктор ?
Делается на старте диалога. Хоть через trade_manager, хоть на основе скрипта ремонтно-апгрейдного.

 

Upd:
Не детали, а нефиг глюкодромы с глюкодромами скрещивать.
Оторвать все бартеры вместе со всеми "принеси мне медузу", и все дурные апдейты, и сделать динамический конфиг для торговли.

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

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


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

alife():create("monster_hell"..tostring(math.random(999))

 

Уверены, что в конфигах прописано 999 типов вертолетов ?

И, кстати, alife():create() с одной строкой, без координат, просто повиснет.

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


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

Военные постоянно нападают на Деревню Новичков.

Как решить эту проблему ?

Ответ:

Попробовать прописать в gulag_escape.script в работы военным на БП squad = 2
Быстро уйти за радиус алайфа от деревни, дождаться смены дня/ночи.

Должно полегчать. Буквально несколько дней назад разбиралось.
Подробности см. http://www.amk-team.ru/forum/index.php?showtopic=13078&p=974373 и далее.

А вообще - править ПАЧКУ багов в нескольких местах. Поскольку тестеров нормальных для модов нет, и не предвидится - ну, ждите. Через годик сделаю. Для 0309.

Изменено пользователем shahvkit
Объединение и удаление
  • Нравится 1

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


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

Немножко не так.

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

 

То есть, перебор, внутри еще перебор, и еще и еще. Да, всего что есть. И как бы попытка ввести ограничения, например, по расстоянию.

Вот если непись в случайное время переберет по 60 раз  все, что ему доступно по расстоянию, то часть объектов тупо удалит. То есть, ни куда не ходит, ничего не продает, а просто удаляет. Как бы случайным образом. (Случайность, там, кстати тоже сделана отвратительно, ибо математику, блин, надо было учить, так что получилось некоторое количество мясорубок и некоторое количество мест, где все сносится под чистую), и некоторое количество мест, где срабатывает крайне редко.

 

Ну, вот эти вот все цифирьки - они случайность как бы ограничивают.

  • Спасибо 1
  • Нравится 2

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


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

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

system.ltx:

 

[trade]

;коэффициенты изменения цены при торговле в зависимости от отношения к персонажу

;линейно апроксимируются между значения

buy_price_factor_hostile = 0.7 ;коэффициент покупки при goodwill = -100

buy_price_factor_friendly = 1 ;коэффициент покупки при goodwill = 100

sell_price_factor_hostile = 1.2 ;коэффициент покупки при goodwill = -100

sell_price_factor_friendly = 1 ;коэффициент покупки при goodwill = 100

Изменено пользователем Eugen81
процитировал
  • Спасибо 1
  • Полезно 1

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


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

А Петрович мне не верит про метки. 8(

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

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


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

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

AMK-Team.ru

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