Случайная подборка модов
Смерти Вопреки. В Паутине лжи
4.1
Реборн: Двойники - «Исток»
3.1
Секрет Дианы
2.2
Gott Mit Uns - Бог С Нами
4.0
OGSE 0.6.9.3
4.2
Припять. Точка отсчета
3.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Баги, глюки, ошибки, вылеты (Если возникли трудности, то вам сюда.)
Баги, глюки, ошибки, вылеты
Российская Федерация  Sanjaaa
Среда, 07.11.2012, 09:33 | Сообщение # 106
Dark Reaper Souls
Статус:
Бывалый:
Сообщений: 926
Награды: 6
Регистрация: 22.08.2012

СЕРА, Походу ты туда бегом бежал. попробуй шагом это место пройти
  Злобная реклама
Среда, 07.11.2012, 09:33
Статус:
Сообщений: 666
Регистрация: 22.08.2012
Российская Федерация  СЕРА
Среда, 07.11.2012, 13:46 | Сообщение # 107
Статус:
Новичок:
Сообщений: 284
Награды: 1
Регистрация: 17.04.2012

НЕТ У МЕНЯ ВЫЛЕТ ПРИ ПЕРЕХОДЕ НА ЭТУ ЛАКАЦИЮ
  Злобная реклама
Среда, 07.11.2012, 13:46
Статус:
Сообщений: 666
Регистрация: 17.04.2012
Украина  Comador
Среда, 07.11.2012, 14:43 | Сообщение # 108
Статус:
Неопытный:
Сообщений: 507
Награды: 2
Регистрация: 23.12.2011

ToAll, может будете указывать игровой набор?

Sanjaaa, больше похоже на то, что "вырезано" часть диалогов.

СЕРА, стволы добавлял?
  Злобная реклама
Среда, 07.11.2012, 14:43
Статус:
Сообщений: 666
Регистрация: 23.12.2011
Российская Федерация  СЕРА
Среда, 07.11.2012, 15:37 | Сообщение # 109
Статус:
Новичок:
Сообщений: 284
Награды: 1
Регистрация: 17.04.2012

да добовлял стволы
  Злобная реклама
Среда, 07.11.2012, 15:37
Статус:
Сообщений: 666
Регистрация: 17.04.2012
Молдова  6poHR777
Вторник, 04.12.2012, 18:43 | Сообщение # 110
Статус:
Опытный:
Сообщений: 1480
Награды: 0
Регистрация: 05.01.2012

Получил вылет.
Code
FATAL ERROR
   
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: d:\stalker-my_mod\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)
   

stack trace:

Решил убрать монолог Сидора.
Code
[logic]
active = {+esc_trader_hello_played} mob_trader@new_idle1, mob_trader@new_start_wait
on_trade = mob_trade@new
trade = misc\trade_trader.ltx

; ------------------------------------------------------------------------------------------------------
; СТАРТ
; ------------------------------------------------------------------------------------------------------
; Ждем немного
[mob_trader@new_start_wait]
anim_global = chair_hack_idle
on_timer = 5000| mob_trader@new_start_intro1
can_talk = false
tip_text =  

;Подвигаемся к игроку
[mob_trader@new_start_intro1]
anim_global = chair_hack_to_desk
on_signal = animation_end| mob_trader@new_start_intro2 %+esc_trader_hello_played%
can_talk = false
tip_text =

;Первая фраза "я тебя спас..."
;[mob_trader@new_start_intro2]
;anim_global = first_phrase
;anim_head    = first_phrase
;sound_phrase = trader_monolog1
;on_signal = animation_end| mob_trader@new_start_intro3
;can_talk = false
;tip_text =

; Ждем немного, включаем управление
;[mob_trader@new_start_intro3]
;anim_global = desk_idle
;tip = tips_esc_trader_how_to_talk
;on_info = {=talking} mob_trader@new_idle1
;on_timer = 5000 | mob_trader@new_start_intro4

; Говорим вторую фразу (что стоишь? подходи)
[mob_trader@new_start_intro4]
anim_global = desk_talk
anim_head = normal
sound_phrase = trader_come_here2
on_signal = sound_phrase_end | mob_trader@new_idle1
;on_info = {=talking} mob_trader@new_idle1 ; обрывать фразу
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%

;----------------------------------
;------------- Idle ---------------
;----------------------------------

;Основной idle (1) - за столом
[mob_trader@new_idle1]
anim_global = desk_idle
on_signal = animation_end| {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1
on_info = {=talking} mob_trader@new_idle1_to_idle3
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (2) - по диагонали
[mob_trader@new_idle2]
anim_global = diagonal_idle
on_signal = animation_end| {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2
on_info = {=talking} mob_trader@new_idle2_to_idle3
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (3) - откинувшись на спинку
[mob_trader@new_idle3]
anim_global = chair_hack_idle
on_signal = animation_end| {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3
on_info = {=talking} mob_trader@new_talking
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (4) - за компьютером
[mob_trader@new_idle4]
anim_global = compute_idle
on_signal = animation_end| {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4
on_info = {=talking} mob_trader@new_idle4_to_idle2
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait

; Idle (5) - читает
[mob_trader@new_idle5]
anim_global = listen_idle
on_signal = animation_end| {~45} mob_trader@new_idle5_to_idle1, mob_trader@new_idle5_to_idle5
on_info = {=talking} mob_trader@new_idle5_to_idle1
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait
;----------------------------------
;--------   Автопереходы   --------
;----------------------------------

; Стол - стол (промежуточная)
[mob_trader@new_idle1_to_idle1]
anim_global = desk_idle
on_signal = animation_end| mob_trader@new_idle1

; Диагональ - диагональ (промежуточная)
[mob_trader@new_idle2_to_idle2]
anim_global = diagonal_idle
on_signal = animation_end| mob_trader@new_idle2

; Спинка - спинка (промежуточная)
[mob_trader@new_idle3_to_idle3]
anim_global = chair_hack_idle
on_signal = animation_end| mob_trader@new_idle3

; Компьютер - компьютер (промежуточная)
[mob_trader@new_idle4_to_idle4]
anim_global = compute_idle
on_signal = animation_end| mob_trader@new_idle4

; Читает - читает (промежуточная)
[mob_trader@new_idle5_to_idle5]
anim_global = listen_idle
on_signal = animation_end| mob_trader@new_idle5

;----------------------------------
;----- Переходы  между idle-ми ----
;----------------------------------

; Диагональ - компьютер
[mob_trader@new_idle2_to_idle4]
anim_global = diagonal_to_compute
on_signal = animation_end| mob_trader@new_idle4

; Компьютер - диагональ
[mob_trader@new_idle4_to_idle2]
anim_global = compute_idle_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Диагональ - спинка
[mob_trader@new_idle2_to_idle3]
anim_global = diagonal_to_chair_hack
on_signal = animation_end| {=talking} mob_trader@new_talking, mob_trader@new_idle3

; Спинка - диагональ
[mob_trader@new_idle3_to_idle2]
anim_global = chair_hack_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Стол - спинка
[mob_trader@new_idle1_to_idle3]
anim_global = desk_to_chair_hack
on_signal = animation_end|{=talking} mob_trader@new_talking, mob_trader@new_idle3

; Спинка - стол
[mob_trader@new_idle3_to_idle1]
anim_global = chair_hack_to_desk
on_signal = animation_end| mob_trader@new_idle1

; Стол - диагональ
[mob_trader@new_idle1_to_idle2]
anim_global = desk_to_diagonal
on_signal = animation_end| mob_trader@new_idle2

; Диагональ - стол
[mob_trader@new_idle2_to_idle1]
anim_global = diagonal_to_desk
on_signal = animation_end| mob_trader@new_idle1

; Стол - читает
[mob_trader@new_idle1_to_idle5]
anim_global = desk_to_listen
on_signal = animation_end| mob_trader@new_idle5

; Читает - стол
[mob_trader@new_idle5_to_idle1]
anim_global = listen_to_desk
on_signal = animation_end| mob_trader@new_idle1

;--------------------------------------
;------------- Разговор ---------------
;--------------------------------------

[mob_trader@new_talking]
anim_global = chair_hack_talk
anim_head = normal
on_info = {!talking} mob_trader@new_idle3

;--------------------------------------
;------------ Торговля ----------------
;--------------------------------------

[mob_trade@new]
anim_global = chair_hack_idle
on_info = {=trading =trade_exchanged} mob_trader@new_trade_exchanged
on_info2 = {!trading =trade_exchanged} mob_trader@new_trade_good
on_info3 = {!trading !trade_exchanged} mob_trader@new_trade_bad

[mob_trader@new_trade_bad]
;anim_global = diagonal_talk
anim_global = chair_hack_idle
anim_head = angry
sound_phrase = trader_bad_trade
on_signal = sound_phrase_end | mob_trader@new_idle2
on_actor_dist_ge_nvis = 12 | mob_trader@new_wait

[mob_trader@new_trade_exchanged]
;anim_global = diagonal_talk
anim_global = chair_hack_idle
anim_head = normal
sound_phrase = trader_exchanged
on_signal = sound_phrase_end | mob_trader@new_idle2
on_actor_dist_ge_nvis = 12 | mob_trader@new_wait

[mob_trader@new_trade_good]
;anim_global = diagonal_talk
anim_global = chair_hack_idle
anim_head = good
sound_phrase = trader_good_trade
on_signal = sound_phrase_end | mob_trader@new_idle2
on_actor_dist_ge_nvis = 12 | mob_trader@new_wait

;-------------------------------------
;---------- Приветствия --------------
;-------------------------------------

[mob_trader@new_hello]
anim_global = hello
anim_head = normal
sound_phrase = trader_hello_what_have_you_got
on_signal = animation_end | mob_trader@new_idle2

[mob_trader@new_bye]
on_actor_dist_ge_nvis = 12 |mob_trader@new_wait
anim_global = hello
anim_head = normal
sound_phrase = trader_bye
on_signal = animation_end | mob_trader@new_wait

[mob_trader@new_wait]
anim_global = diagonal_idle_short
on_actor_dist_le_nvis = 3 | {-esc_trader_hello_played} mob_trader@new_hello %+esc_trader_hello_played%
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
on_actor_dist_ge_nvis2 = 12    | %-esc_trader_hello_played -esc_trader_bye_played%
  Злобная реклама
Вторник, 04.12.2012, 18:43
Статус:
Сообщений: 666
Регистрация: 05.01.2012
Украина  Comador
Вторник, 04.12.2012, 19:05 | Сообщение # 111
Статус:
Неопытный:
Сообщений: 507
Награды: 2
Регистрация: 23.12.2011

Quote (6poHR777)
on_signal = animation_end| mob_trader@new_start_intro2 %+esc_trader_hello_played%

Здесь идет переход к секции "mob_trader@new_start_intro2", которую ты дальше за комментировал.
Раскомментируй ее и приведи к такому виду
Quote
[mob_trader@new_start_intro2]
anim_global = desk_idle
on_info = {=talking} mob_trader@new_idle1
on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played%
  Злобная реклама
Вторник, 04.12.2012, 19:05
Статус:
Сообщений: 666
Регистрация: 23.12.2011
Молдова  6poHR777
Воскресенье, 09.12.2012, 03:25 | Сообщение # 112
Статус:
Опытный:
Сообщений: 1480
Награды: 0
Регистрация: 05.01.2012

Comador, спасибо, сейчас буду тестить. yes

Добавлено (09.12.2012, 03:25)
---------------------------------------------
Словил вылет. Лог пустой.
Добавил диалог.

Code
<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>

<dialog id="pda_for_trader">
<precondition>give_trader_pda.have_pda_1</precondition>
<phrase_list>
      <phrase id="0">
    <text>text_pda_for_trader_0</text>
    <next>1</next>
   </phrase>
   
   <phrase id="1">
    <text>text_pda_for_trader_1</text>
    <next>21</next>
    <next>22</next>
    <next>23</next>
   </phrase>
   
   <phrase id="21">
    <text>text_pda_for_trader_2</text>
    <action>give_trader_pda.give_trader_pda_1</action>
    <action>give_trader_pda.give_money_pda_1</action>
    <next>3</next>
   </phrase>
   
   <phrase id="22">
    <text>text_pda_for_trader_3</text>
    <precondition>give_trader_pda.have_pda_5</precondition>
    <action>give_trader_pda.give_trader_pda_5</action>
    <action>give_trader_pda.give_money_pda_5</action>
    <next>3</next>
   </phrase>
    
   <phrase id="23">
    <text>text_pda_for_trader_4</text>
    <precondition>give_trader_pda.have_pda_10</precondition>
    <action>give_trader_pda.give_trader_pda_10</action>
    <action>give_trader_pda.give_money_pda_10</action>
    <next>3</next>
   </phrase>

   <phrase id="3">
    <text>text_pda_for_trader_5</text>
    <next>4</next>
   </phrase>
    
   <phrase id="4">
    <text>text_pda_for_trader_6</text>
    <action>dialogs.break_dialog</action>
   </phrase>
  </phrase_list>
  </dialog>
</game_dialogs>


Скриптовая составляющая такая:
Code
function have_pda_1(task, objective)
if db.actor ~= nil then
return db.actor:object("device_pda") ~= nil
end
return false
end

function have_pda_5()
return give_trader_pda.have_n_m("device_pda",5)
end

function have_n_m(section,number)
local actor = db.actor
if actor then
local cnt = 0
actor:iterate_inventory(
function (dummy, item)
if item:section() == section then cnt = cnt + 1 end
end
,nil)
return cnt >= number
end
return false
end

function have_pda_10()
return give_trader_pda.have_n_m("device_pda",10)
end

function have_n_m(section,number)
local actor = db.actor
if actor then
local cnt = 0
actor:iterate_inventory(
function (dummy, item)
if item:section() == section then cnt = cnt + 1 end
end
,nil)
return cnt >= number
end
return false
end

'------give items

function give_trader_pda_1(first_speaker,
second_speaker)
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
end

function give_trader_pda_5(first_speaker,
second_speaker)
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")   
end

function give_trader_pda_10(first_speaker,
second_speaker)
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")
            dialogs.relocate_item_section(second_speaker,
"device_pda", "out")   
end

'----Revard to Actor

function give_money_pda_1(first_speaker, second_speaker)
  dialogs.relocate_money(first_speaker, 100, "in")
end

function give_money_pda_5(first_speaker, second_speaker)
  dialogs.relocate_money(first_speaker, 600, "in")
end

function give_money_pda_10(first_speaker, second_speaker)
  dialogs.relocate_money(first_speaker, 1200, "in")
end
  Злобная реклама
Воскресенье, 09.12.2012, 03:25
Статус:
Сообщений: 666
Регистрация: 05.01.2012
Украина  GunnerShadow
Пятница, 04.01.2013, 00:10 | Сообщение # 113
Статус:
Неопытный:
Сообщений: 577
Награды: 0
Регистрация: 18.09.2012

6poHR777,
function have_pda_5()
return give_trader_pda.have_n_m("device_pda",5)
end

function have_n_m(section,number)
local actor = db.actor
if actor then
local cnt = 0
actor:iterate_inventory(
function (dummy, item)
if item:section() == section then cnt = cnt + 1 end
end
,nil)
return cnt >= number
end
return false
end

function have_pda_10()
return give_trader_pda.have_n_m("device_pda",10)
end

function have_n_m(section,number)
local actor = db.actor
if actor then
local cnt = 0
actor:iterate_inventory(
function (dummy, item)
if item:section() == section then cnt = cnt + 1 end
end
,nil)
return cnt >= number
end
return false
end
Вот здесь и может быть причина вылета. Вобще я заметил, у тебя очень много вылетов... Я глобалку делаю, и у меня нет такого количества вылетов... А если и были, всегда сам находил причину...
  Злобная реклама
Пятница, 04.01.2013, 00:10
Статус:
Сообщений: 666
Регистрация: 18.09.2012
Молдова  6poHR777
Пятница, 04.01.2013, 12:55 | Сообщение # 114
Статус:
Опытный:
Сообщений: 1480
Награды: 0
Регистрация: 05.01.2012

GunnerShadow, сам свою недоглобалку пилю.
То что не понятно, а что понятно, устраняю сам. Но вроде функции проверенные, а вылеты получил. wacko
Кстати, а что лучше, удаление предметов из инвентаря ГГ или все-таки передача НПС?
  Злобная реклама
Пятница, 04.01.2013, 12:55
Статус:
Сообщений: 666
Регистрация: 05.01.2012
Украина  GunnerShadow
Пятница, 04.01.2013, 14:56 | Сообщение # 115
Статус:
Неопытный:
Сообщений: 577
Награды: 0
Регистрация: 18.09.2012

6poHR777, Если ты говоришь с НПС - то можно и так и так - без разницы. Если через биндер, или другой скрипт - не привязаный к диалогам - через удаление предметов. По другому не работает.
  Злобная реклама
Пятница, 04.01.2013, 14:56
Статус:
Сообщений: 666
Регистрация: 18.09.2012
Украина  BozKurt
Пятница, 04.01.2013, 15:57 | Сообщение # 116
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

6poHR777, я же тебе уже отвечал на этот вопрос: вылет из-за неправильных комментариев в 44 и 90 строках:
Код
'------give items   
'----Revard to Actor


На счёт удаления или перемещения - здесь зависит от того, что тебе конкретно нужно.
Сообщение отредактировал ColR_iT - Пятница, 04.01.2013, 15:57
  Злобная реклама
Пятница, 04.01.2013, 15:57
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Молдова  6poHR777
Пятница, 04.01.2013, 16:12 | Сообщение # 117
Статус:
Опытный:
Сообщений: 1480
Награды: 0
Регистрация: 05.01.2012

ColR_iT, я это все давно убрал, все работало, лог был нормален. Но потом когда захотел использовать функции 5 и 10, то случился вылет.
Вот он, сохранил, чтоб потом на инсайде или АМК поискать.
Код
FATAL ERROR
       
[error]Expression    : assertion failed
[error]Function      : xrServer::Process_event_reject
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\xrServer_process_event_reject.cpp
[error]Line          : 12
[error]Description   : e_parent && e_entity
       

stack trace:


Вот поэтому и интересуюсь, удалять или передавать НПС предметы в диалоге.
Сообщение отредактировал 6poHR777 - Пятница, 04.01.2013, 16:12
  Злобная реклама
Пятница, 04.01.2013, 16:12
Статус:
Сообщений: 666
Регистрация: 05.01.2012
Украина  BozKurt
Пятница, 04.01.2013, 16:33 | Сообщение # 118
Статус:
Опытный:
Сообщений: 1753
Награды: 3
Регистрация: 25.05.2012

6poHR777, это движковый вылет, ни причины, ни лечения нет, некоторым помогает загрузка последнего сохранения.
Что касается передачи или удаления, как уже сказал - зависит от того, что конкретно тебе нужно.
  Злобная реклама
Пятница, 04.01.2013, 16:33
Статус:
Сообщений: 666
Регистрация: 25.05.2012
Российская Федерация  Sanjaaa
Пятница, 04.01.2013, 16:39 | Сообщение # 119
Dark Reaper Souls
Статус:
Бывалый:
Сообщений: 926
Награды: 6
Регистрация: 22.08.2012

помогите мнееее. Тени чернобыля 1.0004. вылет при торговле с барменом. пишет ошибка приложения XR_3DA.exe и все. что делать помогтиее?
  Злобная реклама
Пятница, 04.01.2013, 16:39
Статус:
Сообщений: 666
Регистрация: 22.08.2012
Украина  GunnerShadow
Суббота, 05.01.2013, 01:00 | Сообщение # 120
Статус:
Неопытный:
Сообщений: 577
Награды: 0
Регистрация: 18.09.2012

Sanjaaa, Игра без модов? И где лог?
  Злобная реклама
Суббота, 05.01.2013, 01:00
Статус:
Сообщений: 666
Регистрация: 18.09.2012
Форум » S.T.A.L.K.E.R. Модификации » Помощь в моддинге » Баги, глюки, ошибки, вылеты (Если возникли трудности, то вам сюда.)
Поиск: