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

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

 
 
5 часов назад, denis2000 сказал:

HECCbl Расчет стоимости ремонта производиться ровно одной функцией how_much_repair, но в одном случае в нее передается параметр condition_type, а в другом - нет. Начните с этого, заканчивайте тем, какое значение параметра item_condition передает движек в обоих случаях.

Пробовал добавлять condition_type  ,  и даже пробовал выпиливать    из  how_much_repair всё, кроме cond_price

Тоесть если в 399 строке вписать 500,   то цену ремонта  показывает ( 500+ цена поломок) , но берет он только 500, за любое оружие. Почему в одном случае он учитывает кол-во поломок , а в другом нет?  

и даже выпилил 495-497 строку ,  ниче не изменилось,  только он перестал чинить поломки,  но цены теже остались.

Че происходит, не пойму.  Может оно где-то чинится во время вопроса о цене? 

 Вот так сейчас:

inventory_upgrades.script

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...a.l.k.e.r. big mod\gamedata\scripts\heli_move.script:66: attempt to perform arithmetic on field 'max_velocity' (a nil value)

Происходит при спавне вертолета через СДК, возможно логика не раочая, короче понятия не имею, может кто что подскажет?

Спойлер

[logic]
active = heli_move

[heli_move]
path_move = l01_perimetr_heli_patrol_fly
engine_sound = true
combat_use_rocket = true
combat_use_mgun = true
rocket_delay = 3000
combat_safe_altitude = -50
mute = true

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Алексей Журавель Параметр max_velocity в  логику добавьте.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
16 минут назад, denis2000 сказал:

Алексей Журавель Параметр max_velocity в  логику добавьте.

Благодарю, сработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Читаются ли игрой закомментированные строчки в файлах? Если читаются, то примерно на сколько байтов (или килобайтов) увеличивается получаемая информация (с комментариями)?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Winzor сказал:

Читаются ли игрой закомментированные строчки в файлах?

Нет.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Народ! подскажите в чём косяк? Двери с самозакрытием. работают нормально, но при выбросе перестают закрываться. Звук есть что они типа закрылись а анимация не идёт... 
 

На другой двери такой же работает нормально...

 

Спойлер

[logic]
active = ph_door@closed

[ph_door@closed]
closed = true
locked = false
on_use = ph_door@open
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop

[ph_door@open]
closed = false
locked = false
on_use = ph_door@closed
on_game_timer = 50 | ph_door@closed
snd_open_start = wood_large_open
snd_close_start = wood_large_close_start
snd_close_stop = wood_large_close_stop
 

В кастом дате  прописано
 

[collide]
ignore_static
ignore_ragdoll

[logic]
cfg = scripts\лока\файл логики.ltx


DCM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 часов назад, Policai сказал:

На другой двери такой же работает нормально...

А может проблема вовсе не в выбросе, а в НПС? Дверь открывается автоматически при их приближении, и теперь они стоят слишком близко к двери, и логика не может понять: закрыть дверь или открыть её. Сделай тест выброса, но без НПС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

В соседнем автобусе закрывается же нормально.. расстоние до НПС там такое же...  Тем более есть звук что дверь закрывается. он прописан в логике, то есть секция логики переключилась на  закрытие... Там видно что дверь дёргается на закрытие а закрыться не может, как будто застряла..
Есть возможность как то уменьшить расстояние реагирования на НПС? Чтоб не убирать их... В каком скрипте прописано это расстояние, или это в движке? 

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

DCM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Policai сказал:

В каком скрипте прописано это расстояние, или это в движке? 

Если открыть это: gamedata\scripts\ph_door.script и пролистать в самый низ файла, то мы увидим функции, которые отвечают за взаимодействие НПС с дверьми.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
26 минут назад, Neptun сказал:

Если открыть это: gamedata\scripts\ph_door.script и пролистать в самый низ файла, то мы увидим функции, которые отвечают за взаимодействие НПС с дверьми.

Просматривал я скрипт, но не нашёл расстояние взаимодействия... Я чайник в скриптах и конфигах...


Дополнено 3 минуты спустя
4 часа назад, Policai сказал:

Там видно что дверь дёргается на закрытие а закрыться не может, как будто застряла..

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

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

DCM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Policai Однозначно, это скрипты открывающие двери для НПС. Расстояние срабатывания 3 метра. Уберете НПС и все будет работать (как оно и работает когда НПС на своих основных работах).

 
2 часа назад, Policai сказал:

Просматривал я скрипт, но не нашёл расстояние взаимодействия...

if npc_position:distance_to_sqr(position) <= 9 then
...
if npc_position:distance_to_sqr(db.level_doors[id]) > 9 then
                                             
distance_to_sqr - квадрат расстояния. 

 

Изменено пользователем denis2000
  • Мастер! 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000   Видел этот параметр,  но не допёр что учитывается квадрат во все направления...То есть если я поставлю к примеру 4, то квадрат будет 2  х 2 метра?  Или возможно ли дробное число,  или число не имеющее целого квадрата например 6, получится не 3 х 3 а  2.44... х  2.44...  На самом деле давно обращал на это внимание. что дверь открывается далеко до подхода НПС...  и вдогонку... Больше нигде в скриптах не проходит проверка этого расстояния?   Или не используется ли этот параметр где то ещё? Боюсь может получиться так что поправил тут а где то вылез косяк в другом месте...


Дополнено 12 минуты спустя

denis2000  Пока лока компилится, переделал геометрию. Передвинул чуток НПС, если не поможет тогда уж скрипт ковырять...
Тут вопрос давненько у меня висит по поводу подмены динамического обьекта, возможно ли реализовать такое...
Есть 2 одинаковых динамических обьекта с разными анимациями, обьект накрыт спейсрестриктором
внутри спейса лежит арт. Стоит динамический обьект с номером 1.
Как реализовать замену обьекта на 2? 
Есть некие условия:
замена обьекта должна произойти не когда ГГ забирает арт,а когда он покинет зону спейса с артом 
в инвентаре. При этом если он вышел из зоны спейса без арта, ничего не должно меняться.. То есть 
грубо говоря нужно чтоб пока арт находится в зоне спейса, независимо в инвентаре ГГ или просто так, 
стоит обьект 1, если арт покинул зону спейса то замена на обьект 2...

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

DCM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
48 минут назад, Policai сказал:

возможно ли дробное число,  или число не имеющее целого квадрата

Любое положительное число или ноль. distance_to_sqr = (X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2

50 минут назад, Policai сказал:

На самом деле давно обращал на это внимание. что дверь открывается далеко до подхода НПС...

Я поэтому и крайне не рекомендую менять этот параметр, поскольку проверка очень тупая она делается с большим запасом. Уменьшите параметр и это отразиться на ВСЕХ НПС и ВСЕХ дверях (а не конкретно на ваших) и полезут проблемы - НПС станут упираться в не успевшие открыться двери.

  • Мастер! 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
55 минут назад, Policai сказал:

Тут вопрос давненько у меня висит по поводу подмены динамического обьекта, возможно ли реализовать такое...
Есть 2 одинаковых динамических обьекта с разными анимациями, обьект накрыт спейсрестриктором
внутри спейса лежит арт. Стоит динамический обьект с номером 1.
Как реализовать замену обьекта на 2? 

Ставим оба объекта в SDK. При старте игры объект 2 удаляем. В нужный момент игры удаляем объект 1 и возвращаем из all.sapwn объект 2 на свое место.

Посмотреть реализацию с работающими и не работающими мониторами можно в игре Связь Времен.

Смотреть здесь с 8:03:50

 

 

  • Мастер! 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Policai 

Спойлер

Логика рестриктора


[logic]
active = sr_idle@wait

[sr_idle@wait]
on_info = {!actor_in_zone(Имя_рестриктора_арта) =actor_has_item(Имя_арта_в_рестрикторе)} sr_idle@obj_respawn

[sr_idle@obj_respawn]
on_game_timer = 20 | nil %=spawn_ids_objects(подменный_объект)%

xr_effects.script


--Спавн объекта с SID
function spawn_ids_objects( actor, npc, p )
	if p then
		local ini = ini_file( "game_spawn_story_ids.ltx" )
		for k,v in pairs( p ) do
			local spawn_story = ini:r_string( "spawn_story_ids" , v )
			local section_number = alife():spawn_id( tonumber( spawn_story ) )
			alife():create( section_number )
		end
	end
end

--Удаление объектов по стори-ид
function remove_ids_objects( actor, obj, p )
	local story_obj_id
	local registr = story_objects.get_story_objects_registry()
	for k,v in pairs( p ) do
		story_obj_id = get_story_object_id( v )
		if story_obj_id then
			local se_obj = alife():object( story_obj_id )
			if se_obj then
				alife():release( se_obj, true )
				registr:unregister_by_id( story_obj_id )
			end
		end
	end
end

--Удаление подменяемых объектов из таблицы со стори-ид
function remove_objects( actor, npc )
	db.actor:give_info_portion("Инфопорция_Объект_удален")
	local id_tbl = {"Удаляемый_объект"}
	for k,v in pairs( id_tbl ) do
		local id = get_story_object_id(v)
		if id then
			alife():release(alife():object(id), true)
		end
	end
end

Скрипт запускаемый в начале игры через _g.script в функции start_game_callback()


--Удаление подменных объектов из таблицы со стори-ид
function start_game_remove_ids_objects()
	if has_alife_info( "start_game_update_done" ) then
		return
	end
	local spawn_ids_table = {"подменный_объект"}
	xr_effects.remove_ids_objects( db.actor, nil, spawn_ids_table )
    give_info( "start_game_update_done" )
end

Файл game_spawn_story_ids.ltx


[spawn_story_ids]
подменный_объект = 1 <-Spawn SID заданный в SDK. К сожалению 0.7 имеет баг с назаначением этого параметра!

 

 

Изменено пользователем denis2000
  • Лайк 2
  • Мастер! 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, denis2000 сказал:

[spawn_story_ids] подменный_объект = 1 <-Spawn SID заданный в SDK. К сожалению 0.7 имеет баг с назаначением этого параметра!

В SDK в файле game_spawn_story_ids.ltx переставляем параметры

[spawn_story_ids]

1 = подменный_объект

Всё будет работать как нужно

  • Мастер! 2

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
26 минут назад, makdm сказал:

Всё будет работать как нужно

Да, точно все работает. Спасибо!

  • Мастер! 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

При попытке загрузить быстрое сохранение такой вылет.

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : ..\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : .... На Распутье 2\gamedata\scripts\bind_stalker.script:428: attempt to concatenate field '?' (a nil value)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, 61dimon161 сказал:

При попытке загрузить быстрое сохранение такой вылет.

К сожалению, мы не знаем что там у вас в файле bind_stalker.script записано в  428 строке.

Поэтому и ответа нет.

 

  • Лайк 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
59 минут назад, makdm сказал:

К сожалению, мы не знаем что там у вас в файле bind_stalker.script

Я этот файл вообще не затрагивал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 минуты назад, 61dimon161 сказал:

Я этот файл вообще не затрагивал.

А вот это, точно нам поможет.

  • Лайк 1
  • Аплодисменты 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добро. Прописал level.hide_indicators() чтобы скрыть интерфейс игрока, но вместе с тем эта функция наделяет ГГ возможностью носить любой вес. Можно ли просто убрать интерфейс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun level.hide_indicators_safe() попробуйте...
 

  • Мастер! 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, denis2000 сказал:

level.hide_indicators_safe() попробуйте...

Тот же самый эффект. Обе эти функции, убирая интерфейс, делают гг вообще бессмертным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу