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

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


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

strchi, вот цитаты с википедии:

ambient_color = 0.0425, 0.045, 0.0475 ; общее освещение локации, те тона, в которые она

будет окрашена (цвет и интенсивность света фонового освещения там, где не светит солнце -

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

работает только на R2.

hemi_color = 0.0425, 0.045, 0.0475, 0.1 ;по слухам, параметр, идентичный амбиенту,

только предназначенный для статичного освещения. насчет четвертой цифры - не в курсе.

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

ColR_iT Есть много мнений по этому поводу. Та статья на вики уже старая вроде.

Я по погоде придерживаюсь этой темы:

_http://www.gameru.net/forum/index.php?showtopic=39337&st=0

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

Здравствуйте. Как сделать чтобы при использовании предмета спавнились другие придметы в рюкзаке гг?(например: сьел хлеб и в рюкзаке появляется 10 бутылок водки).

 

Сообщение от модератора ColR_iT
Не ленитесь искать на форуме нужную информацию! Подобного рода вопросы уже были и не однократно!

И старайтесь выбирать соответствующую тему.

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

Вот такой вопрос, как в сообщения о смерти сталкеров добавить группировку убитого..? В народной солянке..

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

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

И ещё вот с военными помогите разобраться вот файлик модели soldier_bandana.ogf это что за солдат, потом такие же файлы но с цифрами.

 

Military - спецназ в бронекостюмах. Soldier - обычные солдаты. А вообще, в посте ниже верно написано.

Изменено пользователем Cyclone
Ссылка на комментарий
ХЕМУЛЬ36RUS Привет. СДК есть? Пора установить, там всех и все можно посмотреть, в крайнем случае качай OGFViewer или тому подобное добро. Никто на память ничего не помнит :ph34r:
Ссылка на комментарий

К всему выше сказанному добавлю :)

Свобода

stalker_sv_hood_9 - обычный мен в противогазе (противогаз с двумя темно-красными фильтрами) {красным низя писать :)}

stalker_sv_hood_91 - обычный мен в противогазе (противогаз с двумя зелеными фильтрами)

stalker_sv_rukzak_1 - мен с открытым лицом (не видел такого)

stalker_sv_rukzak_1_1 в маске 1

stalker_sv_rukzak_2 в маске 2

stalker_sv_rukzak_3 в маске на нос (лоб не закрывает :)) и капюшоне

stalker_sv_rukzak_3_1 в маске на нос и капюшоне + лоб и часть щек намазаны камуфляжем (тушь потекла :D)

Солдаты в папке soldier (soldaticys obychnovenicys - солдат обыкновенный)

soldier_antigas - в противогазе

soldier_bandana_1 - в бандане с "потекшей тушью"

soldier_bandana_2 - в черной бандане

soldier_bandana_3 - в зеленой

soldier_bandana_4 - опять в черной но с другим лицом (в игре не видел)

soldier_bandana_5 - еще раз в черной + намазан камуфляжным крЭмом

soldier_bandana_5 - текстурщик ПЫСов видемо любит черный + другое лицо + снова в игре не видел (я их когда свинцом кормил особо не разглядывал, может и используются :))

С приставкой mask - это в черной маске, obichniy - копия в бандане_1, спецназ - не знаю как описать, рот только открыт, а милитари_грин и милитари_блек копии из папки military.

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

Попробовал я СДК и честно сказать не понял в нем ничего, видимо это не для моих мозгов, если не сложно просто скажите кто помнит папка милитари в игре задействована или она там для веса. :russian_ru:

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

Люди может кто подсказать-делаю звук для перезарядки.

До этого сделал несколько звуков-всё было нормально, а теперь появился вылет -

Expression    : ovi->rate==44100
Function      : CSoundRender_Source::LoadWave
File          : E:\stalker\patch_1_0004\xrSound\SoundRender_Source_loader.cpp
Line          : 72
Description   : Invalid source rate:
Arguments     : e:\games\stalker\gamedata\sounds\swmt_sounds\p90\reload.ogg

Может кто подсказать из за чего он? Всё делал как обычно, в СДК прогонял.

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

Вот такой вопрос, как в сообщения о смерти сталкеров добавить группировку убитого..? В народной солянке..

Сообщения о смерти сталкеров обычно берутся из amk_death_lists.скрипт, уникальные сообщения от группировок в amk_uniq_news_lists.скрипт. Сообщения о группировках есть ещё в news_data.скрипт (community_name["stalker"]... и т.д.), впиши свою группировку. Текст сообщений строится из news_main.скрипт, тексты сообщений в news_data.скрипт, звуки сообщений в news_manager.скрипт.

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

Хочу запомнить информацию (строку) для "инвентарного ящика".

Как сделать так, что-бы в pstor, сохранялись не только данные НПС, но и данные моего "инвентарного ящика". Или может это надо делать не через pstor?

 

Делаю так:

1. Создаю: sobj = alife():create("inventory_box",vector():set(24.540,16.526,678.405),3,9)
2. Получаю: cobj = level.object_by_id(sobj.id)
3. Пишу: xr_logic.pstor_store(cobj, "data_name", "data_value")
4. Читаю: xr_logic.pstor_retrieve(cobj, "data_name", "data_default_value")
--Данные есть.
5. save-load
6. Получаю: cobj = level.object_by_id(sobj.id)
7. Читаю: xr_logic.pstor_retrieve(cobj, "data_name", "data_default_value")
--Ничего нет.

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

7.9

Т.к. далеко не все ящики биндятся (в 'bind_physic_object.script') - то для подобных операций с pstor'ом требуются принудительные действия, дабы активизировать бинд-методы save/load для ящиков без логики.

Ящики с логикой(!) биндятся в 'bind_physic_object.script', там же запоминаются.читаются их переменные (pstor).

Чтобы ящик биндился - для него требуется наличие логики или же ... 'ручками' добавить все (деже без логики) ящики в биндер (аналогично прожекторам). Тогда и будут активированы для всех них запись/чтение pstor'а.

 

Ну а для вновь заспавненных, можно просто добавить 'логику-пустышку' (типа 'treasure_inventory_box.ltx'), не ковыряя их биндер.

 

P.S. Ну или самое простое: хранить свою строку для ящика в сторадже актора, помня, что он все же не резиновый. :-)

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

Добавил через секцию логику своему ящику - pstor сохраняется. Но только при "ручном" сейве. При переходе между локациями (туда и сразу обратно) ящик не "биндится".

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

7.9

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

1. Наличие логики - прописывается в юзердате серверного объекта (см. нет-пакет -> параметр 'custom_data' или читай 'obj:spawn_ini()') и никак не может быть потеряно, если только скриптом же специально не почистить.

2. Если объект-ящик имеет логику - он обязательно биндится (добавляется в биндер). Подразумевается, что объект имеет в своей или родительской секции параметр: 'script_binding = bind_physic_object.init'.

3. Авто-сэйвы при переходах между локациями имеют некоторые особенности, но никак не для ящиков. Эти объекты сохраняются в в любых сэйвах абсолютно одинаково (если не предпринимать в отношении их специальных действий).

 

Т.о. твое утверждение/предположение: "При переходе между локациями (туда и сразу обратно) ящик не "биндится" " - ошибочно. Ящик или биндится (имея логику) или нет, не зависимо загружается локация при переходе актора на этот уровень или же после 'ручного' сэйва.

Без доп.информации от тебя - можно сколь угодно спорить о теории.

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

покопался в погоде(48 секций на каждый пол часа заделал), вернул солнце и луну с помощью ogsm скриптов и поймал вылет

[error]Expression : xml_doc.NavigateToNode(path,index)

[error]Function : CUIXmlInit::InitWindow

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\ui\UIXmlInit.cpp

[error]Line : 87

[error]Description : XML node not found

[error]Arguments : global_wnd

 

как на xml мог подействовать скрипт погоды?

 

 

 

local wthr

 

function on_game_load()

wthr = level.get_weather()

level.set_weather("ogsm",true)

game.start_tutorial("restore_sun")

end

 

 

function set_sun()

level.set_weather(wthr)

end

 

 

 

и bind_stalker, с вот сдесь и так зареганным скриптом ogsm (возвращение этого проклятого солнца)

 

 

death_manager.init_drop_settings()

ogsm.on_game_load(obj)

return true

 

помогите прошу)

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

Artos, извиняюсь за портянки - спойлеры не работают.

 

Более подробная информация:

 

Воспроизведение ситуации:

начать новую игру

создать ящик

записать данные

прочитать данные -> пстор на месте, данные читаются

уйти на другую локацию

сразу вернуться

прочитать данные -> пстора не будет, данных соответственно, то-же

записать данные

прочитать данные -> пстор на месте, данные читаются

сохраниться в "ручную"

загрузиться

прочитать данные -> пстор на месте, данные читаются

 

сейв для удобства (начало игры, кордон, переход на свалку, рядом с ящиком)

(_http://narod.ru/disk/22390122001/test_pstor.7z.html)

 

 

Секция ящика.

     [inv_box]
      GroupControlSection    = spawn_group
      discovery_dependency = 
      $spawn                 = "devices\inventory box"
      class                = O_INVBOX
      cform                = skeleton
      script_binding      = bind_physic_object.init
      custom_data         = scripts\test_pstor_custom_data.ltx
      visual                = physics\box\expl_dinamit.ogf
      description            = "описание"
      radius                = 1

 

Логика ящика.

[logic]
      active = ph_idle@enable
      
      [ph_idle@enable]
      tips = "?"

 

Скрипт (функции вызывались кнопками кейлогера)

     local string_test = "string_elrment1, string_elrment2, string_elrment3, string_elrment4"
      
      function create()
          local sobj = alife():create("inv_box",vector():set(24.540,16.526,678.405),3,9)
          msg("создан ящик: "..tostring(sobj.id))
          db.storage[0].pstor.inv_box_id = sobj.id
          msg("записан id ящика: "..db.storage[0].pstor.inv_box_id)
      end
      
      function write()
          local obj_id = db.storage[0].pstor.inv_box_id
          if obj_id then
              local cobj = level.object_by_id(obj_id)
              if not db.storage[obj_id].pstor then
                  db.storage[obj_id].pstor = {}
              end
              db.storage[obj_id].pstor.data = string_test
              local tmp = tostring(db.storage[obj_id].pstor.data).."->"..tostring(obj_id)
              msg("записано: "..tmp)
          else
              msg("нет ящика")
          end
      end
      
      function read()
          local obj_id = db.storage[0].pstor.inv_box_id
          if obj_id then
              local cobj = level.object_by_id(obj_id)
              if db.storage[obj_id].pstor then
                  local tmp2 = tostring(obj_id).."->"..tostring(db.storage[obj_id].pstor.data)
                  msg("прочитано: "..tmp2)
              else
                  msg("нет pstor-a для "..tostring(obj_id))
              end
          else
              msg("нет ящика")
          end
      end
      
      
      --\\//
      function msg(text)
          if text then
              db.actor:give_game_news(text, "ui\\ui_iconsTotal", Frect():set(0,188,83,47), 0, 5000)
          end
      end

 

Версия игры 1.006

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

покопался в погоде(48 секций на каждый пол часа заделал), вернул солнце и луну с помощью ogsm скриптов и поймал вылет

....

помогите прошу)

"global_wnd" есть в game_tutorials.xml. Посмотри где-то в этом файле не закрыл тег.

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

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

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

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

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

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

Войти

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

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

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