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

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

 
 
7 минут назад, Paradox27kms сказал:

add_map_spot из xr_effects.script

Она не подходит для ЗП. Для ЧН да,  там не строковый стори айди как в ЗП, а числовой

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

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


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

Mass Мне и надо для ЧН

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


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

Мне и надо для ЧН

Это тема для ЗП

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


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

Mass Я знаю, просто там тема тухлая а тут больше вероятность отклика к тому же знатоки и по чн и здесь найдутся. Вот почему я пишу здесь, это же логично. 

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

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


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

Paradox27kms 

Спойлер

 

Здесь я не буду отвечать. Если другой юзер, у которого будут идентичный вопрос, захочет воспользоваться поиском именно в этой теме, то получит ошибку. Не зря же темы разделили.

Если что это жесткий оффтоп. Пусть модератор, если захочет подотрёт наши посты

 

 

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

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


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

MassНужна проверка в логике НПС на хит по частям тела,рук,ног,торса, головы чтобы при хите происходило действие, например функция. destroy_object.

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

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


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

Нужна проверка в логике НПС на хит по частям тела

Проверка только для секции hit! Поддерживает список. Полный перечень костей можно взять из m_stalker.ltx

В логике пишите on_hit = hit  в самой секции hit

on_info = {=hitted_on_bone(bip01_head:bip01_pelvis:bip01_neck:bip01_spine2:bip01_spine1) -hit_po_kosti} %+hit_po_kosti   =destroy_object%

Внимание: функция hitted_on_bone есть только в ЗП. Чтобы понадобилась в чн нужно просто перенести эту функцию из xr_conditions cop в cs. А для ТЧ нужен еще xr_hit.script поменять

  • Мастер! 1

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


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

Кто нибудь сталкивался с тем, что один из эксклюзивных нпс в смарте, при добавлении ещё одного терял свою логику и отдавал другому неписю? Если да, то как фиксили? Единственное, что схоже между "потеряшкой" и вором - это отчасти id, т.к. второй является охранником первого, соответвенно у него в id - npc_guard

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

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


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

fenit Я не сталкивался, раз уж вам это интересно.

  • Сталкерский лайк 1

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

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


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

Единственное, что схоже между "потеряшкой" и вором - это отчасти id, т.к. второй является охранником первого, соответвенно у него в id - npc_guard

Совсем непонятно что подразумевается под id

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


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

Совсем непонятно что подразумевается под id

character_id и class (в моём случае они одинаковы)

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


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

fenit а можно увидеть пример вашей логики?


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами

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


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

Pavel2000,

Спойлер

[logic@predbannik_barmen]
suitable = {=check_npc_name(predbannik_barmen)} true
prior = 200
active = walker@bar_1
can_select_weapon = false

[walker@bar_1]
on_info = {-predbannik_barmen_bar_tp} %+predbannik_barmen_bar_tp =teleport_npc(predbannik_bar_smart_bar_1_walk:predbannik_bar_smart_bar_1_look)%
path_walk = bar_1_walk
path_look = bar_1_look
meet = meet
invulnerable = true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 50 | walker@bar_2

[walker@bar_2]
path_walk = bar_2_walk
path_look = bar_2_look
meet = meet
invulnerable = true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
on_game_timer = 50 | walker@bar_1

[meet]
close_anim 		= nil
close_victim 	= nil
far_anim 		= nil
far_victim 		= nil
abuse           = false
use = {=actor_enemy} false, true
allow_break = false
meet_on_talking = false

 

Спойлер

[logic@predbannik_ment]
suitable = {=check_npc_name(predbannik_ment)} true, false
prior = 200
active = walker@start_game
can_select_weapon = true

[walker@start_game]
on_info = {-predbannik_ment_start_tp} %+predbannik_ment_start_tp =teleport_npc(predbannik_bar_smart_ment_stay_1_walk:predbannik_bar_smart_ment_stay_1_look)%
path_walk = ment_stay_1_walk
path_look = ment_stay_1_look
meet = meet@generic
invulnerable = true
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[meet@generic]
close_anim 		= nil
close_victim 	= nil
far_anim 		= nil
far_victim 		= nil
abuse           = false
use = {=dist_to_actor_le(6) -ment_first_talk} %+ment_first_talk% self, {=actor_enemy} false, true
meet_dialog = {-ment_first_talk} predbannik_ment_first_dialog
allow_break = false
meet_on_talking = false
trade_enable    = false

 

Спойлер

[logic@predbannik_ment_guard_1]
suitable = {=check_npc_name(predbannik_ment_guard_1)} true
prior = 200
active = walker@ment_guard_1_guard
can_select_weapon = true

[walker@ment_guard_1_guard]
on_info = {-predbannik_ment_guard_1_bar_tp} %+predbannik_ment_guard_1_bar_tp =teleport_npc(predbannik_bar_smart_guarder_1_walk:predbannik_bar_smart_guarder_1_look)%
path_walk = guarder_1_walk
path_look = guarder_1_look
meet = meet@generic
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[logic@predbannik_ment_guard_2]
suitable = {=check_npc_name(predbannik_ment_guard_2)} true
prior = 201
active = walker@ment_guard_2_guard
can_select_weapon = true

[walker@ment_guard_2_guard]
on_info = {-predbannik_ment_guard_2_bar_tp} %+predbannik_ment_guard_2_bar_tp =teleport_npc(predbannik_bar_smart_guarder_2_walk:predbannik_bar_smart_guarder_2_look)%
path_walk = guarder_2_walk
path_look = guarder_2_look
meet = meet@generic
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false

[meet@generic]
close_anim 		= nil
close_victim 	= nil
far_anim 		= nil
far_victim 		= nil
abuse           = false
use             = false
allow_break = false
meet_on_talking = false
trade_enable    = false

 

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


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

predbannik_ment_guard_1

Попробуйте обозвать своего воришку другим именем типа predbannik_guarder_menta_1


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами

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


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

Попробуйте обозвать своего воришку другим именем типа predbannik_guarder_menta_1

Не помогло.

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


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

fenit а в смарте всё правильно прописано?


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами

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


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

Pavel2000, да, ибо если закомментировать строчку с барменом, то всё работает как надо. Если что, бармен работает нормально, так что тут явно не причина в том, что он ссылается на чужой файл логики или что-то вроде.

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

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


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

fenit max_population пробовали менять у смарта?


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами

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


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

Pavel2000, да.

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


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

fenit Просто напоминаю, что проверка =check_npc_name(predbannik_ment) не означает, что имя секции НПС должно РАВНЯТЬСЯ predbannik_ment, оно должно СОДЕРЖАТЬ эту строку. А значит у вас как минимум три НПС претендуют на работу logic@predbannik_ment (predbannik_ment, predbannik_ment_guard_1, predbannik_ment_guard_2)

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

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

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


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

fenit Просто напоминаю, что проверка =check_npc_name(predbannik_ment) не означает, что имя секции НПС должно РАВНЯТЬСЯ predbannik_ment, оно должно СОДЕРЖАТЬ эту строку. А значит у вас как минимум три НПС претендуют на работу logic@predbannik_ment (predbannik_ment, predbannik_ment_guard_1, predbannik_ment_guard_2)

Хм, спасибо за подсказку, а нет более строгой проверки? Или её самому писать придётся?

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


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

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...all of pripyat\gamedata\scripts\smart_terrain.script:95: attempt to index local 'obj' (a nil value)

игра при переходе на другую локацию или при быстром выходе из игры (на Клавишу Q) вылетает с этим логом

Изменено пользователем стрелок_2009

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


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

а нет более строгой проверки?

Убирать string.find из функции не рекомендую. дело в том что, игра гинеририрует id и добавляет его к имени, можно убрать цифры например с помощью шаблона %d* в string.sub. Но тогда столкнешься с идентичной проблемой predbannik_ment_guard_1 и predbannik_ment_guard_2 вернет predbannik_ment_guard_. Оно надо?

стрелок_2009  Скрипт из оргинала? Если да, то возможно проблема в сквадах

local squad = smart.board.squads[obj.group_id]

Эта же строчка? Возможно значение потерялось в таблице arriving_npc. Но тогда это критическая ошибка, нужно делать логирование

  • Мастер! 1

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


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

fenit Не морочьте себе голову, просто подтяните нейминг объектов.


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

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


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

Убирать string.find из функции не рекомендую. дело в том что, игра гинеририрует id и добавляет его к имени, можно убрать цифры например с помощью шаблона %d* в string.sub. Но тогда столкнешься с идентичной проблемой predbannik_ment_guard_1 и predbannik_ment_guard_2 вернет predbannik_ment_guard_. Оно надо?

Та же самая идея была, вообще я думал "отрезать" конец строки, но я не до конца уверен сколько там цифр и фиксированно ли их количество. Я решил пойти более простым путём.

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

fenit Не морочьте себе голову, просто подтяните нейминг объектов.

Вот этим, я просто добавил _npc в конце. Спасибо всем за помощь!

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


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

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

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

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

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

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

Войти

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

Войти

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