Случайная подборка модов
AVS "Закон Меченого" 2 части
3.4
Выживший. Побег из Зоны
3.7
Белый отряд
3.7
Shoker Weapon Mod 2.1
4.1
Новый Арсенал 5.0
3.6
Контракт на хорошую жизнь
4.1
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
Баги, глюки, ошибки, вылеты
Российская Федерация  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
Поиск: