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

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


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

! error in stalker with visual actors\neytral\stalker_neytral_hood_2
stack trace:
 
001B:057BB0FD xrGame.dll
Из-за чего происходит вылет и как его исправить? Раньше не было, а сейчас появился и исключительно на Агропроме.

Очевидно, что-то не то с указанным файлом. Вспоминать, что с ним делали, либо обращаться к автору. dc

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

Кто подскажет, с чем может быть связан такой вылет?

FATAL ERROR

 

[error]Expression : assertion failed

[error]Function : CAI_Stalker::OnEvent

[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\Ai\Stalker\ai_stalker_events.cpp

[error]Line : 38

[error]Description : O

 

 

Не рандомный, случаем?

 

Кто может разъяснить: в чистой ТЧ на локациях летают вороны, а в маппаке локаций от Кости на добавленных локациях ворон нет совершенно. Как сие можно исправить, где и что редактировать?

 

@sneik, надо же, и правда в all.spawn прописаны.

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

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

@AndrewMor, В ТЧ они заспавнены кажется через all.spawn, ищи секции section_name = m_crow. Делай то же самое, сними координаты и заспавни их аналогично.

  • Спасибо 1

sneik, а вот и не спавнятся вороны. Секцию скопировал о своими кординатами - и ничего не заспавнилось почему-то.

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

@AndrewMor, точно правильно спавнишь? Я так понял, руками? Координаты, лвид/гвид правильные? Еще у ворон есть одно свойство, что после запуска игры им надо взлететь, что занимает некоторое время, затем они будут летать за ГГ. Ну я лично спавнил помню пару лет назад руками ворон в паке Кости, все ок было.

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

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

 

Вот секция спавна, скопирована с Кордона, только координаты с вертексами свои:

; cse_abstract properties


section_name = m_crow
name = pred_m_crow
position = 132.84954833984, 8.5610275268555, -19.224378585815
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6

; cse_alife_object properties
game_vertex_id = 4019
level_vertex_id = 1152755
object_flags = 0xffffffba

; cse_visual properties
visual_name = monsters\crow\crow

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
dynamic_out_restrictions =
dynamic_in_restrictions =
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 132.84954833984, 8.5610275268555, -19.224378585815
upd:o_torso = 0, 0, 0

 

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

Возник вопрос , аналогичный этому посту - НПС на Радаре у костров (15 штук) заспавнены через all.spawn с жестко указанным visual (аналогично Фанату, у которого нельзя изменить физуал через character_desc_esc.xml). при таком спавне, хотя они и спавнятся из класса, указанного в character_desc_radar.xml - игра игнорирует параметр visual из этого файла, поэтому у нас 15 близнецов. Как то можно обойти данный спавн? не редактируя непосредственно all.spawn?

 

Благодарю!

@AndrewMor, Попробуй штук 50 забацать, кто нибудь так точно полетит! :)

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

w:SetStretchTexture( true ) - масштабирование, я так понимаю, независимое по осям ? А пропорционального нет ?

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

Кто может помочь наставить на путь истинный:

 

словил вылет при перезарядке неписем оружия:

! error in stalker with visual actors\stalker_neutral\stalker_neutral_3_face_1


stack trace:

001B:00466222 XR_3DA.exe, CKinematicsAnimated::PlayCycle()

 

По всему судя, дело вроде бы в модели (не в анимации ли). Хотя в СДК модельку открыл, анимации указаны две стандартные: critical_hit_grup_1 и stalker_animation. В этом ли вообще дело, а если нет, то в чем?

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

ТЧ 1.006

Пытаюсь разобраться с object_binder. Присоединяю к предмету в инвентаре через script_binding.

function bind( obj )
   obj:bind_object( winsor_object( obj ) )
end

function winsor_object:net_destroy()
   self.object:set_callback(callback.use_object, nil)
   self.object:set_callback(callback.on_item_drop, nil)
   object_binder.net_destroy(self)
end

function winsor_object:reinit()
   object_binder.reinit(self)
   self.object:set_callback(callback.use_object, self.use_callback, self)
   self.object:set_callback(callback.on_item_drop, self.drop_callback, self)
end

function winsor_object:use_callback(obj,who)
   get_console():execute("use_callback")
end

function winsor_object:drop_callback(obj)
   get_console():execute("drop_callback")
end

 

 

Но при спавне в инвентаре и попытке использования в логах ни строчки о вызовах callback-ов (только вызов reinit). Для предметов в инвентари это не работает?

Благодарю за подсказки!

 

[winsor_std_item]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
class = II_ANTIR
cform = skeleton
cost = 0
eat_health = 0
eat_satiety = 0
eat_power = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = 1
eat_alcohol = 0.3
animation_slot = 4
slot = -1
hud = wpn_vodka_hud
quest_item = true
can_trade = false
inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 18
inv_grid_y = 38
inv_weight = 0.1
description = playboy_desc
script_binding = winsor_binder.bind

 

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

@Winsor, лично я не увидел такого:

class "winsor_object" (object_binder) -- объявление класса + указываем базовый класс

function winsor_object:__init(obj) super(obj) end -- вызываем базовый конструктор, на сколько помню

  • Спасибо 1

ТЧ 1.0004. SAP и Trans mod

github

 

 

function winsor_object:__init(obj) super(obj) end

это все есть. просто вырезал из паста. Может ли класс предмета влиять на срабатывание этих каллбеков? class = II_ANTIR - какой то другой? 

@Winsor, коллбек on_item_drop вызывается только для владельца инвентаря. use_object по идее срабатывать должен

 

 

use_object по идее
- у актора эти коллбеки работают, а на предмет в инвентари у актора - почему то нет, т.е. если добавить вывод в консоль на net_spawn/net_destoy моего объекта - то при добавлении, использовании из инвентаря - в консоли вывод есть (типа таки да, мой биндер прибинделся). А вот коллбеки - тишина, предмет просто "съедается", в консоли просто появляется сообщение о том что он удаляется (sv destroy с моим классом)...

Так простите, использование в инвентаре - это съедание. Что там можно запустить, если предмета УЖЕ нет ?

Использование "на земле" - это именно использование. Вызов соответствующего коллбэка. С самим предметом ничего не происходит.

2 большие разницы.

 

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

  • Спасибо 1

Ну как бы да. use_callback вызывается у самого актора, при съедении им итема.

а так же у внешне-лежащих объектов, когда актор их юзает, но не ест :)

drop_callback - у актора при дропе итема. а не у самого итема.

  • Спасибо 1

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

Т.е. использование биндера на предмет в инвентаре, на который я хочу повесить custom callback- такого функционала нет? только через actor_binder? в моей внутренней логике callback.on_use_item должен был вызываться у прибинженого объекта при нажатии на клавищу "Использовать" в инвентаре :) .
В связи с этим следующие вопросы, на которые не смог найти ответа на форуме-
1)можно ли через конфиг создать инвентарный предмет используемый но не съедаемый (какой либо другой class), или только переспавнивать в калбеке?
2) цепочка калбеков у актора - use_object->"съедается" итем->drop_item, или "съедается" итем->use_object->drop_item
3)почему в биндере актора большинство обработок на использование, например в НС, повешено на drop_item, а не на use_object? в drop_item ведь итем все еще существует, так какая разница?
 
Благодарю!

http://www.amk-team.ru/forum/index.php?showtopic=13054
В каких-то древних версиях, типа 1.0, это не работало. dc

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

1)можно ли через конфиг создать инвентарный предмет используемый но не съедаемый (какой либо другой class), или только переспавнивать в калбеке?

Нельзя. Коллбек use_object вызывается только для съедаемых предметов. Можно выставить ему очень большое количество порций.

 

2) цепочка калбеков у актора - use_object->"съедается" итем->drop_item, или "съедается" итем->use_object->drop_item

Что такое "съедается"? Последовательность такая:

выбираешь в инвентаре "использовать",

применяются эффекты,

коллбек use_object,

если съели весь, то коллбек drop_item и удаление предмета

 

3)почему в биндере актора большинство обработок на использование, например в НС, повешено на drop_item, а не на use_object? в drop_item ведь итем все еще существует, так какая разница?

По историческим причинам. До использования коллбека use_object использовалась связка on_drop_item/проверка надличия предмета на следующем апдейте
  • Спасибо 1

 

 

2)

Это же можно самому протестировать)

 

 

Коллбек use_object вызывается только для съедаемых предметов.

Вообще-то еще для юзаемых физ-объектов, когда их юзает актор. У самого актора да, для съедаемых им.

Щас задумался над логикой такого сочетания... это когда мы в выжигателе жмем на рычаг, то рычаг должен по логике актора съесть :blink:

 

 

3)

Исторически так сложилось, да. А еще из-за инертности много чего, эти методы усердно копируются из мода в мод. Что не есть хорошо.

  • Спасибо 1

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

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

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

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

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

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

Войти

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

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

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