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

[SoC] Ковыряемся в файлах


Halford

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

Мне вот еще интересно стало. В ТЧ на Кордоне рядом с Петрухой стоят два новичка. Не разговаривают никогда. Вообще никакого диалога не появляется и вроде с ними даже не поторгуешь. Кто знает, отчего так? И где это можно изменить?



 

 


понятно, но sid - уникальный или динамический? Ты его зарегистрировал? Откуда ты его взял?

Я его прописал персу в all.spawn, в game_story_idx.ltx тоже зарегистрировал, тут все чин чинарем.

Сталкер - наше всё!

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


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

 

 


Посмотри в файле character_desc_general.xml и попробуй прописать там диалоги новичкам.

Новичкам там стандартные диалоги прописаны. У них в работах стоит meet = no meet, вот потому и молчали.



 

 


Ты ее прописал в каком-то скрипте, но где-ты ее вызываешь (по инфопоршню\заходу на локацию или еще как)?

Я пытался ее вызвать из скрипта при нажатии кнопки. Есть скрипт такой - в меню нажимаешь кнопку (Титры например) и он отрабатывает. Можно заспавнить чего-нибудь, координаты вытащить, а я хотел метку поставить. То есть, я прописал просто эту единственную строчку. Наверно неправильно, да?

Сталкер - наше всё!

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


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

AndrewMor, смотри файл gulag_escape.ltx.

Уже посмотрел и увидел, что у них написано meet = no meet.

Еще вопросик: есть функция для проверки наличия у ГГ в инвентаре определенного предмета

 

function weapon_have(task, objective)

      if db.actor ~= nil then

          return db.actor:object("wpn_fn2000u") ~= nil

      end

      return false

end

 

 

 

А как проверить, что в рюкзаке скажем не менее 10 предметов? Заменить nil на 10?

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

Сталкер - наше всё!

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


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

@varan, я ведь не просто так спрашивал. Мне нужно сделать квест на поиск скажем, 10 рук бюрера. Я посмотрел, как это сделано в АМК - это ж  тихий ужас. Из одной функции вызывается вторая, из второй - третья, из третьей - четвертая. Квест на поиск одного предмета - не проблема, а вот как именно осуществить подсчет собранных предметов и передать это в функцию, вызываемыю из tasks_имя_локации - вот в чем беда.

 

Я был бы благодарен примеру, но только не из АМК, там для меня слишком сложно.

Сталкер - наше всё!

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


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

Всем привет, возник вопрос: мод на базе ОГСМ ТЧ с добавленными локациями. Естественно, в подземках накрывает выброс. В ogsm_surge.script нашел строку

if (level_name ~= "l03u_agr_underground") and (level_name ~= "l08u_brainlab") and (level_name ~= "l10u_bunker") and (level_name ~= "l04u_labx18") and (level_name ~= "l12u_sarcofag") and (level_name ~= "l12u_control_monolith") and (level_name ~= "l12_stancia") and (level_name ~= "l12_stancia_2") then

db.FlagEsc = 0

 

 

То есть здесь как раз подземки, где выброс отключен. Пытаюсь добавить новые подземки аналогичным способом and (level_name ~= "peshera"), а выброс все равно происходит. В чем здесь причина?



Вопрос по подземкам снимается, их еще в amk.script прописать надо было.

Сталкер - наше всё!

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


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

Еще возник вопрос: заспавнил сталкеров. Все заспавнились, свою работу выполняют. решил сменить им визуал на визуал охотников из Солянки. На синхронизации словил вылет:

FATAL ERROR

[error]Expression : ini->section_exist(imm_sect)
[error]Function : CHitImmunity::LoadImmunities
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\hit_immunity.cpp
[error]Line : 22
[error]Description : hunter_regular_resistance

stack trace:

 

Что сей вылет означает? И куда копать, мож подскажет кто?

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

Сталкер - наше всё!

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


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

, не, здесь все в порядке.



@NFSNeedForSpirt, Да, не было этой секции. И еще в damages.ltx костюм надо было прописать, и все заработало. Спасибо за ответы

Сталкер - наше всё!

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


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

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

[logic]
active = sr_sound_act

[sr_sound_act]
snd = red_forest\red_forest_warning_1

 

 

Сталкер - наше всё!

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


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

@_Val_, Уже попробовал, не работает. Буду думать дальше.

 

Вот раскопал в  alife_l01_escape:

on_actor_inside = {+esc_kill_gunslinger} nil %{+esc_kill_gunslinger  =play_snd(red_forest\red_forest_warning_1)%

 

 

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

Сталкер - наше всё!

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


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

@_Val_, я ведь еще только учусь (с)

 

Вот еще проблема: заспавнил рестриктор, а контролер не спавнится

[spawner]


cond = {+controller_spawn -dinka_escort}

 

 

Правильно ли я ставлю условие для спавна? Здесь два поршня: один выдан, второй нет.

 

А вот логика рестриктора:

[logic]
active = sr_idle

[sr_idle]
on_actor_inside = nil {+controller_spawn}

 

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

Сталкер - наше всё!

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


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

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

* Log file has been saved successfully!


! Unknown command: ***__atp_tushkano_--_State:_0_--_Total_population:_14/14_--_Non_exclusive_population:_0/0
* Log file has been saved successfully!
! Unknown command: ***__atp_flesh_--_State:_0_--_Total_population:_6/6_--_Non_exclusive_population:_0/0
* Log file has been saved successfully!
! Unknown command: ***__atp_pseudodog_--_State:_0_--_Total_population:_3/3_--_Non_exclusive_population:_0/0
* Log file has been saved successfully!
! Unknown command: ***__atp_snork_--_State:_0_--_Total_population:_3/3_--_Non_exclusive_population:_0/0
* Log file has been saved successfully!
! Unknown command: [smart_terrain_rad_bloodsucker]_register_called_obj=rad_bloodsucker_normal_gulag_type=rad_bloodsucker
* Log file has been saved successfully!
! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_object_setup_offline:_obj=rad_bloodsucker_normal
* Log file has been saved successfully!
! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_setJob:_obj=rad_bloodsucker_normal_job=1_logic@rad_bloodsucker_suck1
* Log file has been saved successfully!
! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_beginJob:_obj=rad_bloodsucker_normal_job=1_logic@rad_bloodsucker_suck1
* Log file has been saved successfully!
! Unknown command: ***__rad_bloodsucker_--_State:_0_--_Total_population:_1/1_--_Non_exclusive_population:_0/0

 

 

Дальше вылетает. Что означает сие Total_population, Non_exclusive_population?

Сталкер - наше всё!

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


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

Доброго времени суток всем.

 

Подскажите, кто знает, за что отвечает/на что влияет строка visual_flags = 0x1 в секции cse_visual_properties в файле all.spawn? Встречается в секции некоторых дверей и почему-то в секции спавна Беса на Свалке.

Сталкер - наше всё!

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


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

Доброго времени всем.

Кто подскажет, какой прогой можно изменить комментарии в ogg-файлах? Или это только в СДК сделать можно?

 

Есть же спецтема. И там имеется то, что тебе необходимо.

Здесь http://www.amk-team.ru/forum/index.php?showtopic=1481&p=797305

Здесь http://www.amk-team.ru/forum/index.php?showtopic=1481&p=808603

BFG

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

Сталкер - наше всё!

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


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

Еще есть вопрос. Банальный, наверное, но я его так и не решил. Создал уникальный квестовый предмет и хочу его заспавнить через all.spawn. Искал возможные варианты спавна, но кроме скриптов и спавна физического объекта ничего не нашел. В итоге, остановился на этом варианте, который работает некорректно (невозможно подобрать предмет, а если в него выстрелить, то вообще проваливаешься под текстуры и начинаешь жестко лагать).

Вот в качестве примера секция спавна ПДА из Солянки:

[2157]

 

; cse_abstract properties

section_name = physic_object

name = bar_object_item_pda_b_1

position = 113.923637390137, -5.30530166625977, 20.6050510406494

direction = 0, 0, 0

id = 65535

version = 118

script_version = 6

 

; cse_alife_object properties

game_vertex_id = 1239

level_vertex_id = 33495

object_flags = 0xffffff3a

 

; cse_visual properties

visual_name = physics\decor\item_pda_b

 

; cse_ph_skeleton properties

 

; cse_alife_object_physic properties

physic_type = 0x3

mass = 10

 

 

 

В свою очередь задам вопрос: как заспавнить рычаг, когда отключаешь, например, выжигатель, или в Х-16 вырубаешь аппараты?

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

Сталкер - наше всё!

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


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

Такой вопрос возник: можно ли удалить аномалию, заспавненную через all.spawn, по выдаче инфопоршня?

 

Или возможно ли в секции спавна аномалии прописать условие спавна?

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

Сталкер - наше всё!

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


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

Скорее всего возможно, вот пример(сам не проверял, но работать должно)

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

 

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

И не будет. Скрипты не читают секцию spawner в объектах отличных от НПС или мобов.

ColR_iT

Тогда такой вопрос: есть аномалия, спавненная скриптом. Как ее скриптом убрать? Известны ее координаты и вертексы.

Масса способов: заспавнить уникальную секцию или запомнить где-то переменную с id этой аномалии, как самое простое.

ColR_iT

 

 

 

Масса способов: заспавнить уникальную секцию или запомнить где-то переменную с id этой аномалии, как самое простое. ColR_iT

А примерчик не можете привести? Или ссылочку.

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

Сталкер - наше всё!

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


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

В продолжение темы: вот скрипт, который спавнит аномалию. Как здесь вписать ее id? Чтобы он сохранялся и читался из нет-пакета?

function get_story_id_not_replay()
   local ST
   ST = xr_logic.pstor_retrieve(db.actor, "ScriptAnomId", 0)
   if type(ST) ~= "number" or ST == nil then
     ST = 9000
     xr_logic.pstor_store(db.actor, "ScriptAnomId", ST)
  end
  if type(ST) == "number" or ST ~= nil then
    ST = ST + 1
    xr_logic.pstor_store(db.actor, "ScriptAnomId", ST)
  end
  return tonumber(ST)
end

function create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom)
   local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)
-----------------------write----------------------
local packet = net_packet()
obj:STATE_Write(packet)
-----------------------load-----------------------
-- cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
-- cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local box = packet:r_matrix()
end
end
-- cse_alife_space_restrictor
local restrictor_type = packet:r_u8()
-- cse_alife_custom_zone
local max_power = packet:r_float()
local owner_id = packet:r_u32()
local enabled_time = packet:r_u32()
local disabled_time = packet:r_u32()
local start_time_shift = packet:r_u32()
-- cse_alife_anomalous_zone
local offline_interactive_radius = packet:r_float()
local artefact_spawn_count = packet:r_u16()
local artefact_position_offset = packet:r_u32()
-- se_zone_anom
local last_spawn_time_present = packet:r_u8()
if (string.find (name_anom, 'zone_zharka_static') ~= nil
or string.find (name_anom, 'zone_witches_galantine') ~= nil
or string.find (name_anom, 'zone_mosquito_bald') ~= nil
or string.find (name_anom, 'zone_mincer') ~= nil
or string.find (name_anom, 'zone_gravi_zone') ~= nil
or string.find (name_anom, 'zone_buzz') ~= nil )
and packet:r_elapsed() ~= 0 then
abort("left=%d", left)
end
---------------------------save--------------------
-- cse_alife_object
packet:w_begin(game_vertex_id)
packet:w_float(distance)
packet:w_u32(direct_control)
packet:w_u32(level_vertex_id)
object_flags = bit_not(193)
packet:w_u32(object_flags)
packet:w_stringZ(custom_data)
packet:w_u32(get_story_id_not_replay())
packet:w_u32(get_story_id_not_replay())
-- cse_shape
packet:w_u8(1) -- количество фигур
packet:w_u8(0) -- тип фигуры: сфера
packet:w_vec3(vector():set(0, 0, 0))
if radius_anom ~= nil then
packet:w_float(radius_anom)
else
packet:w_float(1.0)
end
-- cse_alife_space_restrictor
packet:w_u8(restrictor_type)
-- cse_alife_custom_zone
if power_anom ~= nil then
packet:w_float(power_anom)
else
packet:w_float(max_power)
end
packet:w_u32(owner_id)
packet:w_u32(enabled_time)
packet:w_u32(disabled_time)
packet:w_u32(start_time_shift)
-- cse_alife_anomalous_zone
packet:w_float(offline_interactive_radius)
packet:w_u16(artefact_spawn_count)
packet:w_u32(artefact_position_offset)
-- se_zone_anom
packet:w_u8(last_spawn_time_present)
------------------------read------------------------
packet:r_seek(0)
obj:STATE_Read (packet, packet:w_tell())
end
-----------------------------------спавним аномалии-----------------------------------
function spawn_anom1()
this.create_anom('zone_witches_galantine_strong', vector():set(132.84954833984,8.5610275268555,-19.224378585815),1152755,4019, 3, 0.7)
end

 

 

Сталкер - наше всё!

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


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

 

 


Тут ты можешь можешь только все zone_witches_galantine_strong удалить. Как вариант можешь создать уникальную аномалию, или:

Мне нужно удалить именно конкретные аномалии, которые я буду спавнить скриптом. Дать им уникальные id'ы, а потом по этим id/ам их удалить, также скриптово.

 

Хотя я могу эти аномалии и через all.spawn заспавнить, а удалить скриптово. Так даже удобнее будет. Спасибо, буду пробовать.

Сталкер - наше всё!

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


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

Заспавнил дверь на Затоне, как в ЗП в Железном лесу. При подключении логики двери - вылет:

Expression : motion_ID.valid()
Function : CKinematicsAnimated::ID_Cycle
File : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cpp
Line : 136
Description : ! MODEL: can't find cycle:
Arguments :

 

Чего-то не хватает, анимации, что ли? И где ее взять?

Сталкер - наше всё!

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


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

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

AMK-Team.ru

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