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

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


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

ХЕМУЛЬ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.

ТЧ 1.0004. SAP и Trans mod

github

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

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

Подскажите имя профиля Крысюка из НЛС(аддона на АМК).. Что то найти не могу..

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

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

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

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"

Prefiero morir de pie, que vivir siempre arrodillado.
 

Частота видимо не равна 44100 Гц. Могу посоветовать прочитать.

ТЧ 1.0004. SAP и Trans mod

github

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

Сообщения о смерти сталкеров обычно берутся из 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. Посмотри где-то в этом файле не закрыл тег.

.

возможно кто знает для чего нужны эти параметры в конфигах машин:

[disable]
linear_factor            = 0.5
angular_factor            = 0.5

[air_resistance]
linear_factor           = 500.f    ;
angular_factor          = 500.f

;

очень надо знать

 

S.T.A.L.K.E.R 1.004, Народная..Солянка от 19.04.10, дополнение 14.08.10, патч 3.09.10, DMX 1.3.5, Saruman addon 1.1

Vkontakte

Добавление нового транспорта в сталкер

В чем может быть причина вылетов?Спавню бармена как m_barman вылетает без лога.Меняю m_barman на stalker, все работает, но прописанная ему секция торговца(родная, я ничего не менял) не работает.Ассортимента нет.

7.9

Теперь понятна причина твоей потери pstor'а ящика.

Ты упустил одну немаловажную особенность игры: клиентские объекты ящиков появляются в игре (переходят в он-лайн) по мере их попадания в радиус алайфа (switch_distance) и соответственно их биндер считывает их 'pstor' по-мере попадания ящиков в этот радиус.

 

Т.о. начав игру и заспавнив ящик в радиусе алайфа относительно актора, ты можешь читать/писать в 'pstor' этого объекта.

Уход с уровня, как и возвращение - происходит далеко за пределами дистанции алайфа до заспавненного ящика и он просто еще не попал в биндер, а значит и не был считан его 'pstor'.

Делая 'ручной' сэйв - ты это делаешь в пределах радиуча алайфа, и соответственно при загрузке этого сэйва ящик тут же оказывается в радиусе алайфа и считывается его 'pstor'.

 

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

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

Artos.

Все действия совершались в радиусе 10 метров от ящика, в том числе и уход-заход на локацию - всё в этом радиусе. Домик на выходе с Кордона: там точка ухода, точка прихода, и сам ящик, около стола. Но поисследовать влияние переходов онлайн-офлайн надо.

всё легко

7.9

Вынужден признать свою неправоту при измышлениях о тождественности авто-сэйва и сэйва для объектов 'инвентарные ящик'.

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

На вскидку пока не имею вариантов обхода этого нюанса. :-( Бум думать ...

 

P.S. Пока приходит на ум только вариант хранения строки в самой кастом-дате (например, аналогично зомбированым неписям из АМК-мода), но это требует уже работы с нет-пакетами.

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

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

Может кто нибудь подсказать решение проблемы тремя постами выше(про бармена),плз.

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

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

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

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

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

Войти

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

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

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