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

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


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

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

 

Самих предметов в ящиках не должно быть вообще.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
Речь идет об том, чтобы работать с ящиками внешним гуем: у актора предметы удаляются/создаются, у ящика - меняются данные о предметах. Самих предметов в ящиках не должно быть вообще.

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

 

П.С. А ведь предметы в игровых тайниках тоже спавнятся по факту выдачи инфы о тайнике, каким образом инфа о них сохраняется и не пропадает при сейв/лоаде? Хотя, это наверно не здесь пишу.

 

Оффтоп: Pascal и Delphi  сам постигал, но с Lua - беда. Неудобен факт: чтоб какую-нибудь мысль проверить, надо кучу всего городить и Сталкер полдня мучить. Компилятор бы какой иметь под рукой...

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

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

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

lua.org - там есть много полезного.

 

Предметы по факту выдачи инфо ни куда не спавнятся, если сам это не сделаешь.

По поводу гуя для тайников у меня была большая надежда на Zander_driver.

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

@HellRatz,  а какая логика у твоего персонажа? 
Можно обмануть судьбу следующим образом... Сделай две секции(минимум), можно больше. Создай поршень и поставь в каждой логической схеме (кроме последней) проверку с переходом на последнюю схему, где персонаж уже набегался и просто стоит/сидит. Типа, так: 

on_info = {+твой_поршень} walker@последняя_схема

А в последней схеме выдай его: 

on_info = %+твой_поршень%

Всё. Сталкер один раз проделает всё, что тебе надо, в последней секции логика выдаст поршень, а при следующем появлении в онлайне логика сталкера начнёт грузиться с самого начала, но условие перекинет его в самый конец, где он уже стоит... 

Попробуй, отпишись...

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

@AndrewMor, вот тебе ссылка на рюкзаки-нычки именно это и реализующие: https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh_rukzak.script

 

Разберешься - используй. На конкретные вопросы отвечу. Но только на конкретные.

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

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

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

@HellRatz, добрался до компьютера и теперь могу уточнить. Дополнительная запись и сохранение параметров текущей логики происходит в xr_logic.script, в save_logic_online() и load_logic_online(). Увидишь там манипуляции с sobj.s_storage - это оно и есть. Сам sobj.s_storage сохраняется в сейв и читается уже в se_stalker.script. Если тебе это поможет.

  • Спасибо 1
Ссылка на комментарий

Увидишь там манипуляции с sobj.s_storage - это оно и есть.

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

 

PS попробовал закомментировать вызовы этих функций, не помогло.

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

@BFG,

Очередной вопрос по логике.

 

 

Как сделать так, чтобы НПС при достижении [kamp1], всегда в нём и оставался, независимо, от того где шастает наш ГГ ?

Спасибо.

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


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

В любой момент времени НПС  должен находиться в схеме соответствующей этому моменту ))).


BFG  Как то так   функция  если  время больше равно 0 анд  время  меньше равно 24 

ретурн   труе


Да и сама функция в xr conditions мог ошибиться .


Ну и добавлю .

Любая работа, любого гулага  может находиться на любой локаци.

Шейпы   радиусы смарта  используеться только  в сдк  (виазуализация)

А так ни на что не влияют )).


Аж вот понесло блин !  на дворе 2016.

Я был тут 5 БЛИН ЛЕТ назад  .

А что нового ? 

Да и в первую очередь меня интересует логика .


Забыл функция в xr кондишен

вызов из логики .


НУ вот  хоть кто то есть ))


Так блин и скажу  реальная симуляция  ток в ТЧ.


Блин проверяете что ле  )).


Денис что  фиг знает  я по русскому лох  а так  озадачил


Денис или админ  в самом деле  нужна тема логики НПС.


Что блин потерялись.


НУ  Опровергнете


Извините  .


Ну тогда стопе 


А где Денис ?


Извеняюсь


Так я жду опровержения )))).


Ну извините  

Добавлено warwer,

90% из написанного - вряд ли кто-то поймёт.

Ты блины печёшь, нет? Спокойнее.

Добавлено  HellRatz,

Предупреждение за флуд. Что это за полотно из непонятных никому речей?

Ссылка на комментарий
@HellRatz, у тебя эта проблема давно тянется. Там надо плотно сидеть и отлаживать строчку за строчкой, в поисках причины, по которой теряется активная секция логики, при загрузке. Мне в голову ничего не приходит.
Ссылка на комментарий
ой, точно, забыл. Привык к анонимным функциям и даже не посмотрел.

Сделал так, как ты написал.

function spawn_card()

local obj = alife():object("pred_inventory_box")

if obj then

spawn_item_in_inv("access_card", obj)

end

end

 

function spawn_item_in_inv(spawn_item,npc)

if not npc then

npc = db.actor

end

local item = alife():create(spawn_item,

npc:position(),

npc:level_vertex_id(),

npc:game_vertex_id(),

npc:id())

 

if npc:id() ~= db.actor:id() then

-- Фикс пропадания доспавненного предмета при сейв/лоаде

level.client_spawn_manager():add(item.id, -1, fix_spawn_item_in_inv, npc) -- Калбек на выход item в онлайн

end

 

return item

end

 

function fix_spawn_item_in_inv(npc, id, item)

npc:transfer_item(item, npc)

end

 

 

При вызове функции вылет:

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description :

Arguments : LUA error: No such operator defined

 

 

 

Чего я сделал не так? И скрипт этот я в Закоулках правды увидал.

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

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

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

@AndrewMor, ты в spawn_item_in_inv() серверный объект передал, как минимум. А эта функция ожидает клиентский объект в качестве npc. Вот так вот делай, тогда уж:

function spawn_card()
  local sobj = alife():object("pred_inventory_box")
  if sobj then
    local obj = level.object_by_id( sobj.id )
    if obj then
      spawn_item_in_inv("access_card", obj)
    end
  end
end

А если у тебя ящик вообще в оффлайне, так и не заморачивайся, сразу создавай в нем через alife():create()

  • Спасибо 1
Ссылка на комментарий

 

 

ты в spawn_item_in_inv() серверный объект передал, как минимум. А эта функция ожидает клиентский объект в качестве npc. Вот так вот делай, тогда уж:

Спасибо, попробую. Через alife():create() поначалу делал, так не сохраняются вещи после s/l.

Добавлено BFG,

Личку почитай.

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

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

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

Возможно ли это исправить?

 

Вот сравнительные скрины - для наглядности проблемы.

 

Статика - всё прекрасно, искривления пространства почти не заметны

 

 

 

Динамика - просто ужос(

http://hostingkartinok.com/show-image.php?id=4dae0846325a760414a3eb0bc5335874

 

Подскажите решение

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

Не соответствует правилам.

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

Здравствуйте, прошу объясните пожалуйста что это такое:

; cse_shape properties
shapes = 6
shape_0:type = box
shape_0:axis_x = 71.6746063232422,0,0
shape_0:axis_y = 0,18.0631980895996,0
shape_0:axis_z = 0,0,7.15800046920776
shape_0:offset = 0,0,0
shape_1:type = box
shape_1:axis_x = 71.6746063232422,2.67008715582051e-007,-2.13606972465641e-006
shape_1:axis_y = 0,18.063196182251,1.34581313204762e-007
shape_1:axis_z = 0,2.66656297043255e-008,7.15800046920776
shape_1:offset = -70.810791015625,3.28049087524414,0.246719360351563
shape_2:type = box
shape_2:axis_x = 70.5857162475586,-5.34017431164102e-007,-12.4460964202881
shape_2:axis_y = 6.72906566023812e-008,18.063196182251,-6.72906566023812e-008
shape_2:axis_z = 1.24296712875366,1.06662518817302e-007,7.04925537109375
shape_2:offset = -139.549942016602,6.66907978057861,6.34806823730469
shape_3:type = box
shape_3:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_3:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_3:axis_z = 3.0250871181488,0,6.48735809326172
shape_3:offset = -203.898208618164,6.86461544036865,27.2836456298828
shape_4:type = box
shape_4:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_4:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_4:axis_z = 3.0250871181488,0,6.48735809326172
shape_4:offset = -260.097442626953,7.74838256835938,53.8768310546875
shape_5:type = box
shape_5:axis_x = 65.4553070068359,4.65114135295153e-006,-45.8319931030273
shape_5:axis_y = -1.67716643773019e-006,26.4829940795898,9.86568466032622e-007
shape_5:axis_z = 6.40486860275269,3.32790563106755e-007,9.14716148376465
shape_5:offset = -318.800598144531,12.4033985137939,88.3407592773438 

 

 

В жизни много плохих моментов. Пытайся избавляться от них !

Ссылка на комментарий
 на кусок от level_changer-а похоже

С чего вдруг ? ЛЧ это частный случай рестриктора.

А фрагмент  это шейп. А вот ЧЕГО шейп, это гадание на косточках совы натянутой на глобус.

 

p.s. Ага, нашёл, этот рестриктор

 

; cse_abstract properties
section_name = space_restrictor
name = esc_tips_fox
position = 287.200012207031, 16.6319103240967, 275.321502685547
direction = -0.104504659771919, 0.517827808856964, -0.0501847825944424
id = 65535
version = 118
script_version = 6
spawn_id = 506

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 594270
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {+agroprom_military_case -escape_stalker_help} sr_tip %+escape_stalker_meet +escape_stalker_help +escape_stalker_dog_spawn +esc_find_railroad_passage_done%
on_info = {+escape_stalker_help}  sr_idle@end

[sr_tip]
name = escape_fox_quest
type = tips
single = true
on_signal = tip_sended| sr_idle@end

[sr_idle@end]
END

; cse_shape properties
shapes = 6
shape_0:type = box
shape_0:axis_x = 71.6746063232422,0,0
shape_0:axis_y = 0,18.0631980895996,0
shape_0:axis_z = 0,0,7.15800046920776
shape_0:offset = 0,0,0
shape_1:type = box
shape_1:axis_x = 71.6746063232422,2.67008715582051e-007,-2.13606972465641e-006
shape_1:axis_y = 0,18.063196182251,1.34581313204762e-007
shape_1:axis_z = 0,2.66656297043255e-008,7.15800046920776
shape_1:offset = -70.810791015625,3.28049087524414,0.246719360351563
shape_2:type = box
shape_2:axis_x = 70.5857162475586,-5.34017431164102e-007,-12.4460964202881
shape_2:axis_y = 6.72906566023812e-008,18.063196182251,-6.72906566023812e-008
shape_2:axis_z = 1.24296712875366,1.06662518817302e-007,7.04925537109375
shape_2:offset = -139.549942016602,6.66907978057861,6.34806823730469
shape_3:type = box
shape_3:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_3:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_3:axis_z = 3.0250871181488,0,6.48735809326172
shape_3:offset = -203.898208618164,6.86461544036865,27.2836456298828
shape_4:type = box
shape_4:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_4:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_4:axis_z = 3.0250871181488,0,6.48735809326172
shape_4:offset = -260.097442626953,7.74838256835938,53.8768310546875
shape_5:type = box
shape_5:axis_x = 65.4553070068359,4.65114135295153e-006,-45.8319931030273
shape_5:axis_y = -1.67716643773019e-006,26.4829940795898,9.86568466032622e-007
shape_5:axis_z = 6.40486860275269,3.32790563106755e-007,9.14716148376465
shape_5:offset = -318.800598144531,12.4033985137939,88.3407592773438

; cse_alife_space_restrictor properties
restrictor_type = 3

 

 

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

"Кругом зомби.....у меня кончаются патроны...."

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

Ребят, а какие классы объектов поддерживают худ модель? В смысле, к каким объектам можно её прикручивать, чтобы она работала? 

... А наше дело маленькое - с ружьём да по болотам. (с)

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

@MegaStalker, В ТЧ достаточно много вырезанной озвучки. sounds\characters_voice - ищи там  (озвучку гоп-стопа можно с ЧН взять)

Мы по аномалиям зону разберём!

Сидора повесим, а Бармена убьём!

Ну а вояк мы смоем в унитаз!

Пускай плывет в канализации спецназ!

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

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

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

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

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

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

Войти

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

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

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