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

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


Halford

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

как сделать чтоб при подходе к нпс, он кидал тебе диалог как коряга на Скадовске.... И если можно то распишите как это делать в мельчайших деталях... просто я пока нуб... и ещё где есть уроки по диалогом для Зов Припяти... можно ссылку пожалуйста :blush:

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


Ссылка на сообщение
(Зов Припяти) есть один вопрос... но блин по нему уроков нету... Связан с [animpoint] и смарт коверами! 

есть смарт pripyat_fmg3. Он на первом этаже здания. На крыше я хочу поставить квестового НПС. Что-бы он там стоял с определенной анимацией! в сдк смарт коверах нету просто stay или это не там прописывается? мне нужно, что-бы он там стоял! как это писать в логике? и в настройках смарта ? А то чет не догоняю... в squad_descr_pripyat в разделе отряда есть spawn_point. Что там писать? спейс рестриктор? или ещё что нить? мне нужно что-бы он проспавнился сразу на крыше, а не шел с 1 этажа.. как в ЗП скадовск... смотрел примеры Скадовска плохо понял... Если есть урок то скинь ссылку! заранее спс.. и если будете писать, пишите подробнее... заранее спс!

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


Ссылка на сообщение

Привет! есть один вопросик по скриптам... На счет вызова сообщения.

Мне нужно, что-бы при получении опр инфо поршня выдавалось сообщение 1 раз. Пытался сделать функцию... но словил вылет вот она:

 

function give_prov_mess()
if not db.actor:has_info("test_1")
if db.actor:has_info("give_mess")
then
db.actor:give_game_news("Неизвестно", "Грач это Проводник! Нужно встретится в подвале Гастронома", "ui_iconsTotal_lost_thing", 3000, 30000)
db.actor:give_info_portion("test_1")--выдача инфопоршня
end
end

 

Но поскольку мои знания  в скриптах равны 0, у меня ничего не получилось... Так как можно реализовать это? я убрал строчку if not db.actor:has_info("test_1") и функция работала.. я поставил её в update в stalker_binder... но после получения инфопоршня give_mess, это сообщение выдавалось бесконечно... Заранее спс!

 

и как можно запустить какую нибудь функцию через рестриктор %тут%... или там можно использовать функции заранее написанные в движке? ( ну или в др месте.. я незнаю просто )

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

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


Ссылка на сообщение
Происходит вылет, при подходе к одному месту! там есть смарт и спейсрестриктор начала ( выдача квеста ) и рестриктор для квеста ( айди ), так-же это рестриктор вызывает выброс и прочее... Вот вылет лога: 

 


* Saving spawns... 

* Saving objects... 

* 556 objects are successfully saved 

* Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop' 

stack trace: 

 

0023:0884E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 

0023:0884FB45 xrGame.dll, CDialogHolder::CDialogHolder() 

0023:0570A5B4 lua.JIT.1.1.4.dll, lua_getinfo() 

0023:0570A898 lua.JIT.1.1.4.dll, lua_getinfo() 

0023:057020A5 lua.JIT.1.1.4.dll, lua_call() 

0023:0570AAE8 lua.JIT.1.1.4.dll, lua_yield() 

0023:030C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() 

 

[error][ 183] : Невозможно создать файл, так как он уже существует.


 

Это вылет текущего билда... прогрузил старый! ( вчерашний.. ). Там тоже есть этот вылет! но лог немного другой. Вот он: 

 


intro_start intro_game 

intro_delete ::update_game_intro 

compiling shader particle_alphaonly 

compiling shader model_distort_1 

compiling shader model_distort_2 

* [win32]: free[2709660 K], reserved[183260 K], committed[1301320 K] 

* [ D3D ]: textures[374111 K] 

* [x-ray]: crt heap[331506 K], process heap[13922 K], game lua[10540 K], render[2876 K] 

* [x-ray]: economy: strings[9883 K], smem[10215 K] 

* Saving spawns... 

* Saving objects... 

* 614 objects are successfully saved 

* Game Никита - выброс.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - выброс.scop' 

stack trace: 

 

0023:085AE8B3 xrGame.dll, CDialogHolder::CDialogHolder() 

0023:085AFB45 xrGame.dll, CDialogHolder::CDialogHolder() 

0023:056CA5B4 lua.JIT.1.1.4.dll, lua_getinfo() 

0023:056CA898 lua.JIT.1.1.4.dll, lua_getinfo() 

0023:056C20A5 lua.JIT.1.1.4.dll, lua_call() 

0023:056CAAE8 lua.JIT.1.1.4.dll, lua_yield() 

0023:02F79DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() 

 

[error][ 8] : Недостаточно памяти для обработки команды. 


 

Из-за чего они происходят?? Мне хотяб приблизительно знать... фишка в том, что вылет происходит только в том месте!

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


Ссылка на сообщение
Добавлю: 
После выброса выдается инфопоршень, вот все, что написано в логике этого поршня: 
Код
[logic] 
active = sr_idle@dolg_go 
 
[sr_idle@dolg_go] 
on_info = {=actor_in_zone(pripyat_sr_vibros)} %+dolg_go_fmg2% sr_idle@wait_info 
   
[sr_idle@wait_info] 
on_info = {+dialog_prov_vse} %=start_surge%  sr_idle@wait_end_surge 
   
[sr_idle@wait_end_surge] 
on_info = {!surge_started} %+vibros_proshel -dialog_prov_vse% sr_idle@kill_otrad 
 
[sr_idle@kill_otrad] 
on_info = {+vibros_proshel} %=remove_npc(pri_fmg_prov) =remove_squad(dolg_nachalo_squad)% sr_idle@nil 
 
[sr_idle@nil]
 

Если вбежать в эту зону во время выброса ( там есть укрытие ), то вылета нет! после выброса, вылета тоже нет! но если убежать из этой зоны, а затем вернуться... вылет! и скорее всего из-за смарта... У смарта есть ексклюзивная логика 3 НПС. Суть такова, после в хода в Этот спей рестриктор ( его код выше ) выдается поршень +dolg_go_fmg2. И отряд идет на 2 смарт. После выброса этот отряд удаляется! логика НПС 3 ниже: 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;;;;;;;;;;;;;;;;;;;;Логика Главоря Долга;;;;;;;;;;;; 
[logic@fellon] 
active = walker@vstrecha 
suitable = {=check_npc_name(fellon)} true 
 
[walker@vstrecha] 
meet = meet@fellon_nach 
path_walk = fellon_1_walk 
path_look = fellon_1_look 
on_info = {+dolg_dialog_done} animpoint@fellon 
 
[animpoint@fellon] 
cover_name = pripyat_fmg1_fellon_animpoint 
meet = no_meet 
use_camp = false 
on_info = {+vibros_proshel} nil 
 
[meet@fellon_nach] 
use = self 
meet_state = nil 
mmet_state_wpn = nil 
victim = 8|actor 
victim_wpn = 8|actor 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;;;;;;;;;;;;;;;;;;;;Логика Долга 1;;;;;;;;;;;; 
[logic@jora] 
active = walker@vstrecha2 
suitable = {=check_npc_name(jora)} true 
 
[walker@vstrecha2] 
meet = meet@jora 
path_walk = jora_1_walk 
path_look = jora_1_look 
on_info = {+dolg_dialog_done} animpoint@jora 
 
[animpoint@jora] 
cover_name = pripyat_fmg1_jora_animpoint 
meet = no_meet 
use_camp = true 
on_info = {+vibros_proshel} nil 
 
[meet@jora] 
use = false 
victim = 8|actor 
victim_wpn = 8|actor 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;;;;;;;;;;;;;;;;;;;;Логика Долга 2;;;;;;;;;;;; 
[logic@maik] 
active = walker@vstrecha1 
suitable = {=check_npc_name(maik)} true 
 
[walker@vstrecha1] 
meet = meet@maik 
path_walk = maik_1_walk 
path_look = maik_1_look 
on_info = {+dolg_dialog_done} animpoint@maik 
 
[animpoint@maik] 
cover_name = pripyat_fmg1_maik_animpoint 
meet = no_meet 
use_camp = true 
on_info = {+vibros_proshel} nil 
 
[meet@maik] 
use = false 
victim = 8|actor 
victim_wpn = 8|actor

 
Мб это из-за этого? мол смарт ищет отряд, а их нет? on_info = {+vibros_proshel} nil без этого то-же происходит вылет... Максимум подробно расписал... Заранее СПС!
Это все относится к билду! то-есть ко 2 логу! или ошибки у них разные?


теперь вылет в билде, такой же как и в 1 логе... вот на всякий случай лог вылета:

 

* RM_Dump: vs        : 81
* RM_Dump: ps        : 83
* RM_Dump: dcl       : 20
* RM_Dump: states    : 78
* RM_Dump: tex_list  : 1807
* RM_Dump: matrices  : 0
* RM_Dump: lst_constants: 0
* RM_Dump: v_passes  : 2355
* RM_Dump: v_elements: 2356
* RM_Dump: v_shaders : 1292
* GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
* GPU vertex cache: unrecognized, 16
* NVidia MGPU: Logical(1), Physical(1)
* Starting rendering as 2-GPU.
*** RESET [106 ms]
* MEMORY USAGE: 331713 K
* End of synchronization A[1] R[1]
* [win32]: free[2756080 K], reserved[178664 K], committed[1259496 K]
* [ D3D ]: textures[373086 K]
* [x-ray]: crt heap[331754 K], process heap[13410 K], game lua[12692 K], render[3605 K]
* [x-ray]: economy: strings[9837 K], smem[10212 K]
* Saving spawns...
* Saving objects...
* 606 objects are successfully saved
* Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop'
stack trace:
 
0023:0869E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0869FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0679A5B4 lua.JIT.1.1.4.dll, lua_getinfo()
0023:0679A898 lua.JIT.1.1.4.dll, lua_getinfo()
0023:067920A5 lua.JIT.1.1.4.dll, lua_call()
0023:0679AAE8 lua.JIT.1.1.4.dll, lua_yield()
0023:031C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall()
 
[error][     183]    : Невозможно создать файл, так как он уже существует.
 

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

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


Ссылка на сообщение

FeLLoN, когда происходит вылет, отряд ещё жив?

они удаляются! =remove_squad(их айди) в логике Спейс Рестриктора!Без ремув Сквада вылет из 2 лога первого сообщения, после ремов сквад вылет из 1 лога 1сообщения

 

Не нужно цитировать предыдущие сообщения целиком!

ColR_iT

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

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


Ссылка на сообщение

Вопрос по вылету закрыт! Причина была следующая ( скорее всего так, но вылета нет! )

Рядом был смарт, там было 2 отряда ( симуляционныйх ). У них не было таргет смарт, там были нпс_рандом. Ну короч сим отряд. У того смарта где они были, не-было укрытия от выброса. У всех смартах Откл была симуляция, кроме 1! Там симуляция разрешалась, после окончания выброса. Так-вот после выброса, когда я шел на смарт где были эти отряды, там было пусто! выброс их убил.. или не знаю что! и видимо, эти сим отряды должны были идти на тот смарт ( возле которого был вылет), а их то не-было.. ну короч вылет пропал, после удаления этих отрядов из simulations.ltx 

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

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


Ссылка на сообщение
Есть один вопрос. Пытался сам реализовать, но не получилось.

Суть такова. Есть здание ( большое ). Есть один смарт. Нужно, что-бы вокруг здания находилось 3 отряда собак! в разных точках. Здание от начала новый игры далеко ( собаки при старте новой игры оффлайн ), нужно, что-бы при переходе в онлайн, собачки оказались на своих местах.

Что я делал: В squad_descr_pripyat, в секции отряда писал spawn_point = pripyat_fmg4_spawn_point_1 ( и ставил вей поинт с таким-же именем. В итоге когда я прихожу на смарт, собаки появляются в центре смарта, а не на spawn_pont. Ставил 3 точки ( pripyat_fmg4_dog_home_1,2,3 ). В логике смарта писал:


[smart_terrain];собачки! перед КБО!

squad_id = 4  

max_population = 4

 

[exclusive]

dog_1 = fmg\pripyat\logic_dog_kbo.ltx

dog_2 = fmg\pripyat\logic_dog_kbo.ltx

dog_3 = fmg\pripyat\logic_dog_kbo.ltx

dog_4 = fmg\pripyat\logic_dog_kbo.ltx

dog_5 = fmg\pripyat\logic_dog_kbo.ltx

dog_6 = fmg\pripyat\logic_dog_kbo.ltx

dog_7 = fmg\pripyat\logic_dog_kbo.ltx

dog_8 = fmg\pripyat\logic_dog_kbo.ltx

dog_9 = fmg\pripyat\logic_dog_kbo.ltx

dog_10 = fmg\pripyat\logic_dog_kbo.ltx

dog_11 = fmg\pripyat\logic_dog_kbo.ltx

dog_12 = fmg\pripyat\logic_dog_kbo.ltx


Вот логика собачек:


;********************** 1 ***************

[logic@dog_1]

active = mob_home@dog_1

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = true

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_1]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 2 ***************

[logic@dog_2]

active = mob_home@dog_2

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = true

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_2]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 3 ***************

[logic@dog_3]

active = mob_home@dog_3

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_3]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;********************** 4 ***************

[logic@dog_4]

active = mob_home@dog_4

suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_4]

path_home = pripyat_fmg4_god_home_1

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;*****************5***********************

 

[logic@dog_5]

active = mob_home@dog_5

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_5]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 30

home_max_radius = 45

aggressive_home

 

;*****************6***********************

[logic@dog_6]

active = mob_home@dog_6

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_6]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 45

home_max_radius = 100

aggressive_home

 

;*****************7***********************

[logic@dog_7]

active = mob_home@dog_7

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_7]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 65

home_max_radius = 110

aggressive_home

 

;*****************8***********************

[logic@dog_8]

active = mob_home@dog_8

suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_8]

path_home = pripyat_fmg4_god_home_2

home_min_radius = 22

home_max_radius = 48

aggressive_home

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;*****************9***********************

[logic@dog_9]

active = mob_home@dog_9

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_9]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 60

home_max_radius = 89

aggressive_home

 

;*****************10***********************

[logic@dog_10]

active = mob_home@dog_10

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_10]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 54

home_max_radius = 84

aggressive_home

 

;*****************11***********************

[logic@dog_11]

active = mob_home@dog_11

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_11]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 71

home_max_radius = 96

aggressive_home

 

;*****************12***********************

[logic@dog_12]

active = mob_home@dog_12

suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true

prior = 200

monster_job = false

out_restr = pripyat_fmg4_sr_dombita

 

[mob_home@dog_12]

path_home = pripyat_fmg4_god_home_3

home_min_radius = 23

home_max_radius = 47

aggressive_home


Если написать в squad_descr_pripyat, в секции отряда target_smart = pripyat_fmg4, то происходит вот такой вылет:


Expression    : !m_error_code

Function      : raii_guard::~raii_guard

File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

Line          : 748

Description   : ...Ð. Çîâ Ïðèÿïÿòè\gamedata\scripts\bind_monster.script:262: attempt to index local 'smart_task' (a nil value)


Там, что-то связанно с работой... Ставил 12 валкеров в смарте... в логике собачек писал monster_job = false (там это в коде есть ). Мб я, что-то не так делаю? 

В оригинальном ЗП видел, как отряд монстров пришел на смарт, некоторые кабаны начали патрулировать, другие спать... смотрел в СДК смарт... вроде стандартный, с гуардами, валкерами, кемпом, коверами... Помогите пожалуйста!

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

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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