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

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

 
 
15 часов назад, denis2000 сказал:
  АИ-секта :) (Показать контент)

Так это и есть первейшая причина. А вот если сетка валидна, но мобы застревают, тут область полемики - почему, такое может происходить.
Еще в сотый раз про механизм: если сетка имеет разрывы (состоит из нескольких не связанных фрагментов - это и обнаруживает компилятор при валидации), то ИИ моба в движке может выбрать ноду для премещения находящуюся на изолированной части сетки, в результате часть движка - патфайндер (предназначен для построения маршрута между нодами) не может найти решение маршрута и моб находиться на месте, но при этом анимация движения проигрывается.

Интересная теория, но первое - при валидной сетке такого быть не должно, второе - снорк прыгает только при атаке (или в специальной схеме логики) и третье - что что по вашему в этом месте не так? 

Однозначно - нет. Статическая геометрия локации на это никак не влияет напрямую, она может влиять косвенно усложняя конфигурацию АИ-сетки в данном месте, я для эксперимента пробовал погружать АИ-сетку в террейн и снорки никак не реагировали на то, что бегают "в текстурах".

Mawrak Diesel Я ни разу такого не наблюдал на оригинальных локациях, возможно мне просто везло. А вот в модах часто видел.
Теперь гипотезы:
1. Локации в ЗП и модах (по сравнению с ТЧ) стали гораздо больше и сложнее, соответственно АИ-сетка стала больше и сложнее, возможно это само по себе приводит к тому, что патфайндер на такой сетке может глючить, а возможно и компилятор АИ-сетки при компиляции.
2. Возможно дефолтные настройки просчета АИ-сетки в SDK отличаются от тех, что выбирали левелдизайнеры GSC (В режиме редактирования сетки: Scene->Options->AI Map).
3. Возможно - это все же не баг АИ-сетки, а баг самого движка, который хоть рандомен, но есть некие паттерны которые его стабильно вызывают.

 

Создаете функцию в xr_effects.script в которую в качестве параметра передаете стори_ид костра, в функции по стори_ид получаете объект-костер, у этого объекта есть методы turn_off и turn_on - соответственно выкл и вкл, а также метод is_on проверка, что костер горит. Далее в любой логике используете свою функцию.

Механизм отключения костров на пустых смартах или смартах с НПС днем есть в bind_campfire.script в функции campfire_binder:update(delta), но по дефолту он отключен (код закоментирован).
Если костер привязан к смарту (его имя строго такое: имя_смарта_campfire_индекс), то кключать отключать костры можно функциями из вышеупомянутого скрипта.

Создал две функции, по аналогии с лампами. Только сейчас по-немногу начинаю ковырять в кодах х-рея.
Где-то вряд ли правильно указываю, ибо в логике вызываю функцию выключения, и она вроде кое-как срабатывает, но результата нету - костёр как горит изначально, так и продолжает.
 
 

Спойлер

function turn_on_campfire(actor, npc, p)
    local obj
    for k,v in pairs(p) do
        obj = get_story_object(v)

        if not obj then
            abort("TURN_ON [%s]. Target object does not exist", npc:name())
            return
        end
        obj:bind_object(campfire_binder(obj)):turn_on()
    end
end

function turn_off_campfire(actor, npc, p)
    local obj
    for k,v in pairs(p) do
        obj = get_story_object(v)

        if not obj then
            abort("TURN_ON [%s]. Target object does not exist", npc:name())
            return
        end
        obj:bind_object(campfire_binder(obj)):turn_off()
    end
end

 

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


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

NewValveCom Прочтите посты выше...

  • Спасибо 1

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

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


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

* Detected CPU: Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz [GenuineIntel], F6/M10/S7, 2993.00 mhz, 26-clk 'rdtsc'
* CPU features: RDTSC, MMX, SSE, SSE2, SSE3, MONITOR/MWAIT, SSSE3, SSE4.1, SSE4.2
* CPU threads: 4

Initializing File System...
using fs-ltx fsgame.ltx
FS: 40444 files cached 32 archives, 7259Kb memory used.
Init FileSystem 1.172253 sec
'xrCore' build 3967, Dec 14 2009

EH: 9BDBD715169AC65D0242294793C84288

-----loading d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\system.ltx
-----loading d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\system.ltx
Initializing Engine...
Starting INPUT device...
Loading DLL: xrRender_R2.dll
Loading DLL: xrRender_R3.dll
refCount:m_pAdapter 1
Loading DLL: xrRender_R4.dll
command line 
Executing config-script "user.ltx"...
[c:\users\user\docume~1\stalke~1\user.ltx] successfully loaded.
Loading DLL: xrRender_R2.dll
Loading DLL: xrGame.dll
* [win32]: free[4057580 K], reserved[52740 K], committed[83920 K]
* [ D3D ]: textures[0 K]
* [x-ray]: crt heap[13228 K], process heap[2211 K], game lua[0 K], render[0 K]
* [x-ray]: economy: strings[8042 K], smem[0 K]
SOUND: OpenAL: enumerate devices...
SOUND: OpenAL: EnumerationExtension Present
dir[0]=D:\Games\S.T.A.L.K.E.R. Call of Pripyat\bin\
dir[1]=D:\Games\S.T.A.L.K.E.R. Call of Pripyat\
dir[2]=D:\Games\S.T.A.L.K.E.R. Call of Pripyat\bin\
dir[3]=C:\windows\system32\
CleanDeviceSpecifierList
CleanDeviceSpecifierList Generic Hardware
devices Generic Hardware
SOUND: OpenAL: system  default SndDevice name is Generic Hardware
SOUND: OpenAL: default SndDevice name set to Generic Software
SOUND: OpenAL: All available devices:
1. Generic Software, Spec Version 1.1 (default) eax[0] efx[no] xram[no]
2. Generic Software, Spec Version 1.1 (default) eax[0] efx[no] xram[no]
Executing config-script "d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\default_controls.ltx"...
[d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\default_controls.ltx] successfully loaded.
Executing config-script "user.ltx"...
Executing config-script "d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\rspec_default.ltx"...
[d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\rspec_default.ltx] successfully loaded.
Executing config-script "d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\default_controls.ltx"...
[d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\configs\default_controls.ltx] successfully loaded.
~ Invalid syntax in call to 'r2_aa_break'
~ Valid arguments: vector3 in range [0.000000e+000,0.000000e+000,0.000000e+000]-[1.000000e+000,1.000000e+000,1.000000e+000]
~ Invalid syntax in call to 'r2_aa_weight'
~ Valid arguments: vector3 in range [0.000000e+000,0.000000e+000,0.000000e+000]-[1.000000e+000,1.000000e+000,1.000000e+000]
~ Invalid syntax in call to 'sv_adm_menu_ban_time'
~ Valid arguments: ui_mp_am_10_minutes/ui_mp_am_30_minutes/ui_mp_am_1_hour/ui_mp_am_6_hours/ui_mp_am_1_day/ui_mp_am_1_week/ui_mp_am_1_month/ui_mp_am_3_monthes/ui_mp_am_forever
[c:\users\user\docume~1\stalke~1\user.ltx] successfully loaded.
SOUND: Selected device is Generic Software
* sound: EAX 2.0 extension: absent
* sound: EAX 2.0 deferred: absent
* sound : cache: 65537 kb, 4856 lines, 13820 bpl
Starting RENDER device...
* GPU [vendor:1002]-[device:6779]: AMD Radeon HD 6450 Graphics  
* GPU driver: 8.17.10.1083
* CREATE: DeviceREF: 1
* Vertex Processor: PURE HARDWARE
*     Texture memory: 2786 M
*          DDI-level: 9.0
* GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
* GPU vertex cache: unrecognized, 16
* NVAPI is missing.
* Starting rendering as 2-GPU.
* DVB created: 1536K
* DIB created: 512K
! Renderer doesn't support blender 'effects\shadow_world'
* NULLRT supported
* ...and used
* HWDST/PCF supported and used
compiling shader dumb
compiling shader dumb
compiling shader accum_mask
compiling shader accum_sun_mask
compiling shader copy_p
compiling shader accum_volume
compiling shader copy
compiling shader accum_sun_near
compiling shader accum_sun
compiling shader accum_sun_cascade
compiling shader accum_sun_cascade_far
compiling shader accum_omni_unshadowed
compiling shader accum_omni_normal
compiling shader accum_omni_transluent
compiling shader accum_spot_unshadowed
compiling shader accum_spot_normal
compiling shader accum_spot_fullsize
compiling shader accum_volumetric
compiling shader accum_volumetric
compiling shader accum_indirect
compiling shader bloom_build
compiling shader bloom_filter
compiling shader bloom_filter_f
compiling shader bloom_luminance_1
compiling shader bloom_luminance_2
compiling shader bloom_luminance_3
compiling shader combine_1
compiling shader combine_1
compiling shader combine_2_AA
compiling shader combine_2_NAA
compiling shader combine_2_AA_D
compiling shader combine_2_NAA_D
compiling shader combine_volumetric
compiling shader postprocess
compiling shader postprocess_CM
compiling shader distort
compiling shader particle_distort
compiling shader particle
compiling shader particle
compiling shader particle_s-blend
compiling shader particle-clip
compiling shader particle_s-add
compiling shader particle_s-aadd
compiling shader deffer_particle
compiling shader deffer_particle
- r__tf_aniso 4
- r2_tf_mipbias 0.
compiling shader portal
compiling shader portal
compiling shader simple_color
compiling shader editor
compiling shader sky2
compiling shader sky2
compiling shader clouds
compiling shader clouds
Starting engine...
compiling shader stub_default
compiling shader effects_sun
compiling shader hud_font
Loading DLL: xrGameSpy.dll
compiling shader yuv2rgb
! Missing ogg-comment, file:  d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\sounds\video\bitcomposer.ogg
! Missing ogg-comment, file:  d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\sounds\video\ati_radeon_1920x1080.ogg
! Missing ogg-comment, file:  d:\games\s.t.a.l.k.e.r. call of pripyat\gamedata\sounds\video\amd_fusion_final_720.ogg
intro_start intro_logo
intro_delete ::update_logo_intro
compiling shader yuv2rgb
* [win32]: free[3820976 K], reserved[85988 K], committed[287276 K]
* [ D3D ]: textures[64 K]
* [x-ray]: crt heap[98014 K], process heap[11056 K], game lua[2143 K], render[203 K]
* [x-ray]: economy: strings[8092 K], smem[0 K]
*  0.0 : [  56] $null
*  0.0 : [   3] $user$accum
*  0.0 : [   1] $user$accum_temp
*  0.0 : [   6] $user$albedo
*  0.0 : [   6] $user$bloom1
*  0.0 : [   2] $user$bloom2
*  0.0 : [   2] $user$cmap0
*  0.0 : [   2] $user$cmap1
*  0.0 : [   2] $user$env_s0
*  0.0 : [   2] $user$env_s1
*  0.0 : [   7] $user$generic0
*  0.0 : [   5] $user$generic1
*  0.0 : [   1] $user$generic2
*  0.0 : [   1] $user$jitter_0
*  0.0 : [   1] $user$jitter_1
*  0.0 : [   1] $user$jitter_2
*  0.0 : [   1] $user$jitter_3
*  0.0 : [   1] $user$jitter_4
*  0.0 : [   2] $user$lum_t64
*  0.0 : [   3] $user$lum_t8
*  0.0 : [   1] $user$luminance_0
*  0.0 : [   1] $user$luminance_1
*  0.0 : [   1] $user$luminance_2
*  0.0 : [   1] $user$luminance_3
*  0.0 : [   8] $user$material
*  0.0 : [  12] $user$normal
*  0.0 : [  12] $user$position
*  0.0 : [   1] $user$sky0
*  0.0 : [   1] $user$sky1
*  0.0 : [   4] $user$smap_depth
*  0.0 : [   3] $user$smap_surf
*  0.0 : [   7] $user$tonemap
*  0.0 : [   2] $user$tonemap_src
*  0.0 : [   1] act\act_controller_hit1
*  0.0 : [   1] amik\weapons\flame\trace
*  0.0 : [   1] amik\weapons\flame\trail
*  0.0 : [   1] amik\weapons\flash_02
*  0.0 : [   1] amik\weapons\flash_04
*  0.0 : [   1] amik\weapons\trace
*  0.0 : [   1] amik\weapons\trace_01
*  0.0 : [   1] fx\fx_flare1
*  0.0 : [   1] fx\fx_flare2
*  0.0 : [   1] fx\fx_flare3
*  0.0 : [   1] fx\fx_gradient
*  0.0 : [   1] fx\fx_gradient1
*  0.0 : [   1] fx\fx_lightning
*  0.0 : [   1] fx\fx_noise
*  0.0 : [   2] fx\fx_noise2
*  0.0 : [   1] fx\fx_rain
*  0.0 : [   1] fx\fx_rainsplash1
*  0.0 : [   1] fx\fx_sun
*  0.0 : [   1] fx\fx_sun_rise
*  0.0 : [   1] fx\fx_thunderbolts_gradient
*  0.0 : [   1] fx\fx_thunderbolts_gradient_surge
*  0.0 : [   1] fx\fx_volumefog1
*  0.0 : [   1] glow\glow_04
*  0.0 : [   1] glow\glow_fire1
*  0.0 : [   1] glow\glow_orange
*  0.0 : [   1] glow\glow_orange2
*  0.0 : [   1] glow\glow_orange_bright
*  0.0 : [   1] glow\glow_white
*  0.0 : [   4] lights\lights_spot01
*  0.0 : [   1] pfx\pfx_ani-explosion-02
*  0.0 : [   1] pfx\pfx_ani-explosion-02-b-a
*  0.0 : [   1] pfx\pfx_ani-explosion-02a
*  0.0 : [   1] pfx\pfx_ani-fire01
*  0.0 : [   1] pfx\pfx_ani-smoke-01
*  0.0 : [   1] pfx\pfx_anomaly_1
*  0.0 : [   1] pfx\pfx_anomaly_16
*  0.0 : [   1] pfx\pfx_anomaly_18
*  0.0 : [   1] pfx\pfx_anomaly_19
*  0.0 : [   1] pfx\pfx_anomaly_2
*  0.0 : [   1] pfx\pfx_anomaly_21
*  0.0 : [   1] pfx\pfx_anomaly_23
*  0.0 : [   1] pfx\pfx_anomaly_2_green
*  0.0 : [   1] pfx\pfx_anomaly_3
*  0.0 : [   1] pfx\pfx_anomaly_4
*  0.0 : [   1] pfx\pfx_anomaly_5
*  0.0 : [   1] pfx\pfx_anomaly_6
*  0.0 : [   1] pfx\pfx_anomaly_7
*  0.0 : [   1] pfx\pfx_anomaly_8
*  0.0 : [   1] pfx\pfx_anomaly_88
*  0.0 : [   1] pfx\pfx_anomaly_9
*  0.0 : [   1] pfx\pfx_bloodsplash1
*  0.0 : [   1] pfx\pfx_bloodsplash2
*  0.0 : [   1] pfx\pfx_blurry_cloud
*  0.0 : [   1] pfx\pfx_brick
*  0.0 : [   1] pfx\pfx_bubble
*  0.0 : [   1] pfx\pfx_bubble_1
*  0.0 : [   1] pfx\pfx_bubble_water
*  0.0 : [   1] pfx\pfx_concretedebris_01
*  0.0 : [   1] pfx\pfx_concretepuffs_01
*  0.0 : [   1] pfx\pfx_dist2
*  0.0 : [   1] pfx\pfx_dist2inv
*  0.0 : [   1] pfx\pfx_dist3
*  0.0 : [   1] pfx\pfx_dist4
*  0.0 : [   1] pfx\pfx_dist7
*  0.0 : [   1] pfx\pfx_dist8
*  0.0 : [   1] pfx\pfx_dist9
*  0.0 : [   1] pfx\pfx_dist_teleport
*  0.0 : [   1] pfx\pfx_distort_anomaly
*  0.0 : [   1] pfx\pfx_distortion
*  0.0 : [   1] pfx\pfx_explotions_2
*  0.0 : [   1] pfx\pfx_explotions_3
*  0.0 : [   1] pfx\pfx_explotions_4
*  0.0 : [   1] pfx\pfx_explotions_smoke
*  0.0 : [   1] pfx\pfx_flame
*  0.0 : [   1] pfx\pfx_flame_01
*  0.0 : [   1] pfx\pfx_flamefx_01
*  0.0 : [   1] pfx\pfx_flash_01
*  0.0 : [   1] pfx\pfx_flash_05
*  0.0 : [   1] pfx\pfx_flash_07
*  0.0 : [   1] pfx\pfx_gologramma
*  0.0 : [   1] pfx\pfx_gradient
*  0.0 : [   1] pfx\pfx_gradient1
*  0.0 : [   1] pfx\pfx_leaves_01
*  0.0 : [   1] pfx\pfx_leaves_02
*  0.0 : [   1] pfx\pfx_light1
*  0.0 : [   1] pfx\pfx_light3
*  0.0 : [   1] pfx\pfx_light4
*  0.0 : [   1] pfx\pfx_lighting_stancia_01
*  0.0 : [   1] pfx\pfx_lighting_stancia_02
*  0.0 : [   1] pfx\pfx_lightning_01
*  0.0 : [   1] pfx\pfx_lightning_02
*  0.0 : [   1] pfx\pfx_ligth_6
*  0.0 : [   1] pfx\pfx_plasma
*  0.0 : [   1] pfx\pfx_shells1
*  0.0 : [   1] pfx\pfx_shells2
*  0.0 : [   1] pfx\pfx_skinsplash1
*  0.0 : [   1] pfx\pfx_smoke_a
*  0.0 : [   1] pfx\pfx_smoke_b
*  0.0 : [   1] pfx\pfx_smokepuffs1
*  0.0 : [   1] pfx\pfx_smokepuffs2
*  0.0 : [   1] pfx\pfx_spark_01
*  0.0 : [   1] pfx\pfx_sparks
*  0.0 : [   1] pfx\pfx_specks
*  0.0 : [   1] pfx\pfx_specks_poison
*  0.0 : [   1] pfx\pfx_spikey_star
*  0.0 : [   1] pfx\pfx_splash3
*  0.0 : [   1] pfx\pfx_splash_01
*  0.0 : [   1] pfx\pfx_splash_02
*  0.0 : [   1] pfx\pfx_step_blood
*  0.0 : [   1] pfx\pfx_stonedebris1
*  0.0 : [   1] pfx\pfx_stonedebris2
*  0.0 : [   1] pfx\pfx_synus
*  0.0 : [   1] pfx\pfx_teleport
*  0.0 : [   1] pfx\pfx_test_textures
*  0.0 : [   1] pfx\pfx_vehglassdebris_01
*  0.0 : [   1] pfx\pfx_vehmetaldebris_01
*  0.0 : [   1] pfx\pfx_water_wave
*  0.0 : [   1] pfx\pfx_woodchips1
*  0.0 : [   1] pfx\pfx_woodchips3
*  0.0 : [   1] pfx\r_pop\shells\12ga
*  0.0 : [   1] pfx\r_pop\shells\45acp
*  0.0 : [   1] pfx\r_pop\shells\545x39
*  0.0 : [   1] pfx\r_pop\shells\556x45
*  0.0 : [   1] pfx\r_pop\shells\762x54
*  0.0 : [   1] pfx\r_pop\shells\9x18
*  0.0 : [   1] pfx\r_pop\shells\9x19
*  0.0 : [   1] pfx\r_pop\shells\9x39
*  0.0 : [   1] prop\prop_fake_bed_fireplace
*  0.0 : [   1] prop\prop_provod_02
*  0.0 : [   5] sky\sky_12_vibros_cube
*  0.0 : [   5] sky\sky_12_vibros_cube#small
*  0.0 : [  26] sky\sky_13_cube
*  0.0 : [  26] sky\sky_13_cube#small
*  0.0 : [  16] sky\sky_13_cube_night
*  0.0 : [  16] sky\sky_13_cube_night#small
*  0.0 : [  12] sky\sky_13_vibros_cube
*  0.0 : [  12] sky\sky_13_vibros_cube#small
*  0.0 : [  10] sky\sky_14_cube
*  0.0 : [  10] sky\sky_14_cube#small
*  0.0 : [   4] sky\sky_17_clouds_cube
*  0.0 : [   4] sky\sky_17_clouds_cube#small
*  0.0 : [   4] sky\sky_17_cube
*  0.0 : [   4] sky\sky_17_cube#small
*  0.0 : [   8] sky\sky_18_cube
*  0.0 : [   8] sky\sky_18_cube#small
*  0.0 : [  11] sky\sky_19_cube
*  0.0 : [  11] sky\sky_19_cube#small
*  0.0 : [   4] sky\sky_1_clouds_cube
*  0.0 : [   4] sky\sky_1_clouds_cube#small
*  0.0 : [   4] sky\sky_20_clouds_cube
*  0.0 : [   4] sky\sky_20_clouds_cube#small
*  0.0 : [   4] sky\sky_20_cube
*  0.0 : [   4] sky\sky_20_cube#small
*  0.0 : [   4] sky\sky_2_clouds_cube
*  0.0 : [   4] sky\sky_2_clouds_cube#small
*  0.0 : [   4] sky\sky_2_cube
*  0.0 : [   4] sky\sky_2_cube#small
*  0.0 : [  12] sky\sky_3_cube
*  0.0 : [  12] sky\sky_3_cube#small
*  0.0 : [   3] sky\sky_4_cube
*  0.0 : [   3] sky\sky_4_cube#small
*  0.0 : [  30] sky\sky_5_cube
*  0.0 : [  30] sky\sky_5_cube#small
*  0.0 : [   7] sky\sky_6_cube
*  0.0 : [   7] sky\sky_6_cube#small
*  0.0 : [  11] sky\sky_7_cube
*  0.0 : [  11] sky\sky_7_cube#small
*  0.0 : [   8] sky\sky_8_cube
*  0.0 : [   8] sky\sky_8_cube#small
*  0.0 : [  51] sky\sky_9_cube
*  0.0 : [  51] sky\sky_9_cube#small
*  0.0 : [ 238] sky\sky_oblaka
*  0.0 : [   1] ui\ui_actor_hint_wnd
*  0.0 : [   1] ui\ui_actor_multiplayer_game_menu
*  0.0 : [   1] ui\ui_actor_sleep_screen
*  0.0 : [   1] ui\ui_common
*  0.0 : [   1] wm\wm_blood_1
*  0.0 : [   1] wm\wm_blood_1_1
*  0.0 : [   1] wm\wm_blood_1_2
*  0.0 : [   1] wm\wm_blood_1_3
*  0.0 : [   1] wm\wm_blood_drop_4
*  0.0 : [   1] wm\wm_bullet_asfalt_1
*  0.0 : [   1] wm\wm_bullet_asfalt_2
*  0.0 : [   1] wm\wm_bullet_asfalt_3
*  0.0 : [   1] wm\wm_bullet_brick_1
*  0.0 : [   1] wm\wm_bullet_brick_2
*  0.0 : [   1] wm\wm_bullet_concrete
*  0.0 : [   1] wm\wm_bullet_concrete_1
*  0.0 : [   1] wm\wm_bullet_concrete_2
*  0.0 : [   1] wm\wm_bullet_concrete_4
*  0.0 : [   1] wm\wm_bullet_concrete_5
*  0.0 : [   1] wm\wm_bullet_concrete_6
*  0.0 : [   1] wm\wm_bullet_concrete_7
*  0.0 : [   1] wm\wm_bullet_glass01
*  0.0 : [   1] wm\wm_bullet_glass02
*  0.0 : [   1] wm\wm_bullet_glass03
*  0.0 : [   1] wm\wm_bullet_glass04
*  0.0 : [   1] wm\wm_bullet_ground
*  0.0 : [   1] wm\wm_bullet_ground_1
*  0.0 : [   1] wm\wm_bullet_ground_2
*  0.0 : [   1] wm\wm_bullet_metall_thik
*  0.0 : [   1] wm\wm_bullet_metall_thik_1
*  0.0 : [   1] wm\wm_bullet_metall_thik_2
*  0.0 : [   1] wm\wm_bullet_metall_thik_3
*  0.0 : [   1] wm\wm_bullet_metall_thin
*  0.0 : [   1] wm\wm_bullet_metall_thin_1
*  0.0 : [   1] wm\wm_bullet_metall_thin_2
*  0.0 : [   1] wm\wm_bullet_metall_thin_3
*  0.0 : [   1] wm\wm_bullet_metall_thin_4
*  0.0 : [   1] wm\wm_bullet_wood
*  0.0 : [   1] wm\wm_bullet_wood_1
*  0.0 : [   1] wm\wm_bullet_wood_2
*  0.0 : [   1] wm\wm_bullet_wood_3
*  0.0 : [   1] wm\wm_bullet_wood_4
*  0.0 : [   1] wm\wm_bullet_wood_5
*  0.0 : [   1] wm\wm_bullet_wood_6
*  0.0 : [   1] wm\wm_bullet_wood_7
*  0.0 : [   1] wm\wm_bullet_wood_8
*  0.0 : [   1] wm\wm_bullet_wood_9
*  0.0 : [   1] wm\wm_grenade
*  0.0 : [   1] wm\wm_knife_dead
*  0.0 : [   1] wm\wm_knife_horiz
*  0.0 : [   1] wm\wm_knife_horiz_blood
*  0.0 : [   1] wm\wm_knife_horiz_blood1
*  0.0 : [   1] wm\wm_knife_horiz_metal
*  0.0 : [   1] wm\wm_knife_horiz_ston
*  0.0 : [   1] wm\wm_knife_wood
*  0.0 : [   1] wm\wm_knife_wood1
*  0.0 : [   1] wm\wm_knife_wood2
* 16.1 : [   1] ui\ui_font_arial_14_1024
* 32.1 : [   1] ui\ui_font_letter_16_1024
* 32.1 : [   1] ui\ui_font_letter_18_1024
* 32.1 : [   1] ui\ui_magnifier3
* 33.0 : [   1] ui\ui_ani_cursor
* 64.1 : [   1] ui\ui_font_console_02
* 64.1 : [   1] ui\ui_font_graff_19_1024
* 64.1 : [   1] ui\ui_font_graff_22_1024
* 64.1 : [   1] ui\ui_font_hud_01
* 128.1 : [   1] ui\ui_font_graff_32_1024
* 128.1 : [   1] ui\ui_font_letter_25_1024
* 256.1 : [   1] ui\ui_font_graff_50_1024
* 256.1 : [   1] ui\ui_font_hud_02
* 270.0 : [   1] ui\video_voroni_crop
* 936.0 : [   1] ui\video_water_crop
* 1024.1 : [   1] ui\ui_actor_main_menu
compiling shader deffer_base_bump-hq
compiling shader deffer_model_bump-hq_3
compiling shader deffer_base_bump
compiling shader deffer_model_bump_3
compiling shader shadow_direct_model_3
"d:\games\s.t.a.l.k.e.r. call of pripyat\bin\xrengine.exe" 
* phase time: 0 ms
* phase cmem: 108045 K
Loading objects...
compiling shader deffer_base_flat
compiling shader deffer_model_flat_0
compiling shader shadow_direct_model_0
compiling shader deffer_model_bump-hq_0
compiling shader deffer_model_bump_0
compiling shader deffer_base_aref_bump-hq
compiling shader deffer_base_aref_bump
compiling shader shadow_direct_base_aref
compiling shader shadow_direct_model_aref_0
compiling shader deffer_model_bump-hq_1
compiling shader deffer_model_bump_1
compiling shader shadow_direct_model_1
compiling shader deffer_base_bump_d-hq
compiling shader deffer_model_bump_d-hq_0
compiling shader deffer_model_bump-hq_2
compiling shader deffer_model_bump_2
compiling shader shadow_direct_model_2
Loading models...
compiling shader deffer_model_bump-hq_4
compiling shader deffer_model_bump_4
compiling shader shadow_direct_model_4
compiling shader model_def_lq
compiling shader model_def_lq_0
compiling shader deffer_model_bump_d-hq_4
compiling shader deffer_base_aref_flat
compiling shader deffer_model_flat_2
compiling shader shadow_direct_model_aref_2
compiling shader deffer_model_bump_d-hq_3
compiling shader deffer_model_flat_1
compiling shader accum_emissive
compiling shader model_distort4glass_3
compiling shader shadow_direct_model_aref_3
compiling shader deffer_model_flat_4
compiling shader shadow_direct_model_aref_4
! Can't find texture 'amik\weapons\flame\trace'
! Can't find texture 'amik\weapons\flame\trail'
! Can't find texture 'amik\weapons\flash_02'
! Can't find texture 'amik\weapons\flash_04'
! Can't find texture 'amik\weapons\trace'
! Can't find texture 'amik\weapons\trace_01'
! Can't find texture 'pfx\r_pop\shells\12ga'
! Can't find texture 'pfx\r_pop\shells\45acp'
! Can't find texture 'pfx\r_pop\shells\545x39'
! Can't find texture 'pfx\r_pop\shells\556x45'
! Can't find texture 'pfx\r_pop\shells\762x54'
! Can't find texture 'pfx\r_pop\shells\9x18'
! Can't find texture 'pfx\r_pop\shells\9x19'
! Can't find texture 'pfx\r_pop\shells\9x39'
* [prefetch] time:    10468 ms
* [prefetch] memory:  77902Kb
* phase time: 10690 ms
* phase cmem: 188370 K
* phase time: 9 ms
* phase cmem: 188370 K
* Creating new game...
* Loading spawn registry...
* 370 spawn points are successfully loaded
 
FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r. call of pripyat\gamedata\scripts\sim_board.script:233: attempt to call method 'create_npc' (a nil value)
 

stack trace:Yara 

Yara  Изменил ,но появились новые ошибки.

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


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

call of pripyat\gamedata\scripts\sim_board.script:233: attempt to call method 'create_npc'

FFFFF У меня был такой лог. Неправильно был прописан сквад в simulation.ltx. Должно быть так:

название сквада из squad_descr = название смарта где он должен находится


Просто создаю свой мод...

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


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

Прочтите посты выше...

Спасибо, внимание не обратил что страница новая...
Попытки тщетны что-либо сделать.
Со стори_ид вечные вылеты, сделал что-то такого.
 

Спойлер

function campfire_binder:net_spawn(server_object)
    story_objects.check_spawn_ini_for_story_id( server_object )
    if not object_binder.net_spawn(self, server_object) then
        return false
    end
    local smart_name = string.gsub(self.object:name(), "_campfire_%d*", "")
    if sim_board.get_sim_board().smarts_by_names[smart_name] then
        self.campfire:turn_off()
        if campfire_table_by_smart_names[smart_name] == nil then
            campfire_table_by_smart_names[smart_name] = {}
        end
        campfire_table_by_smart_names[smart_name][self.object:id()] = self.campfire
    end
    return true
end
 

(Снизу функции которые нашел рыская по интернету, только название функций изменил)
function turn_off_campfire(actor, npc, p)
local obj = get_story_object(p[1])
    if obj then
        local campfire = obj:get_campfire()
        campfire:turn_on()
    end
end

function turn_on_campfire(actor, npc, p)
local obj = get_story_object(p[1])
    if obj then
        local campfire = obj:get_campfire()
        campfire:turn_off()
    end
end

Спойлер

[logic]
active = sr_idle@1

[sr_idle@1]
on_info = {=actor_in_zone(test)} %=turn_off_campfire(campfire_test)% sr_idle@nil

[sr_idle@nil]

В итоге я ловлю либо вылет либо никаких результатов.
Придется делать через таблицу в db... Вот только про db я знаю ровно ничего) Где найти информацию о нём или что это вообще?
Звиняйте за беспокойство и тупые вопросы. Вопрос с отключением костров смертелен.

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


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

NewValveCom Я сделал так:

Спойлер

добавил в таблицы:


campfire_by_name = {}

Спойлер

В функцию campfire_binder:net_spawn добавил:

db.campfire_by_name[self.object:name()] = self.campfire

Спойлер

Добавил функции:

function campfire_off(actor, npc, p)
    local obj = db.campfire_by_name[p[1]]
    if obj then
        obj:turn_off()
    end

end

function campfire_on(actor, npc, p)
    local obj = db.campfire_by_name[p[1]]
    if obj then
        obj:turn_on()
    end

end

Спойлер

[logic]
active = sr_idle@on

[sr_idle@on]
on_game_timer = 50 | sr_idle@off %=campfire_off(test_campfire)%

[sr_idle@off]
on_game_timer = 50 | sr_idle@on %=campfire_on(test_campfire)%

Работает по имени костра в SDK, кроме статического освещения и DX11!

Изменено пользователем denis2000
  • Мастер! 3
  • Хабар 1
  • Спасибо 1

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

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


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

Братья Монолита! Хотел узнать истину Монолита.... Как сделать так чтоб нпс спавнился после получения инфопоршня? Ответьте скорее прошу? Очень.


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

 

 

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

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


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

Здраствуйте, у меня вопрос:

Как запретить бегать игроку, а потом обратно разрешить. Проще говоря: отключить возможность бегать игроку

Можно ли как то это сделать?


Просто создаю свой мод...

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


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

Извините, а где найти логику НПС ? Просто нпс заспавнить получилось ,но он спавнится не на волк поинтах ,а в центре смарт терейнов.

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

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


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

Можно ли как то это сделать?

Через движок.

6 часов назад, FFFFF сказал:

Извините, а где найти логику НПС ?

А где ты её потерял?

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


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

Товарищи, здравствуйте. У меня возникла проблема. Я смог заспавнить нпс, но он смотрит в стену, вместо того чтоб смотреть на лук_поинт. Прилагаю все матен

Спойлер

[smart_terrain]

squad_id = 1

max_population = 1

 

[exclusive]

zat_a2_stalker_nimble = labx8\zat_a2_stalker_nimble_logic.ltx

Спойлер

 

[logic@zat_a2_stalker_nimble]

active = walker@ranen

suitable = {=check_npc_name(zat_a2_stalker_nimble)}true

prior = 100

 

[walker@ranen]

path_walk = emmis_walk

path_look = emmis_look

Кто нибудь ведает, как проблему решить? 

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

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


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

FFFFF , в точках walk и look флаги должны быть одинаковыми.


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

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


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

makdm Флаги одинаковые. На самом деле он спавнится в центре смар_террейна. Так ,что он вообще не правильно спавнится.

Теперь он вообще спавнится на другом этаже...

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

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


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

FFFFF , в точках walk и look флаги должны быть одинаковыми.

А может дело в названии логики.  есть конфиг с путем до логики, а там зачем то еще название нпс. Я давно уже не шарю в зп. Может эксклюзивы так и работают. Это совместная логика? Типа смарта или сквада? Как быстро я отупел.

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

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


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

Подскажите пожалуйста, а какой параметр нужно править, чтобы уменьшить время, которое НПС после битвы сидят на месте "ждут врагов" (когда они еще говорят фразы типа "подождем еще немного")? Мне нужно, чтобы они буквально секунды через 3 возвращались к нормальному поведению и шли к своим точкам.


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

denis2000 хочу еще спросить кое-что про ИИ сетку. Может ли из-за какой-то конфигурации ИИ сетки падать ФПС? На новой сетке замечаю, что после продолжительной игры довольно часто начинает заметно падать ФПС, до 20-15 кадров, особенно в районе завода. При том на старой сетке у меня такого словить совсем не выходит. И это на самом деле большая проблема, так как в результате старая сетка пока что играется стабильнее.

Есть теория, что это из-за зомбаков в подземке под заводом, они там без ограничений бродят (не прописана логика сейчас), а выход далеко. Может они слышат выстрелы и видят ноды над ними (с завода) и хотят идти туда, но путь ведет их так далеко (вне зоны online), что они залагивают? Может такое быть?
А на старой я вообще не уверен, насколько эта подземка была соединена с другими частями ИИ сетки (оттуда шел ряд ошибок с мутантами), может там они и не пытаются никуда уходить потому что не могут.

Если что, текущая новая сетка валидна.

EDIT: В дополнение к тому, что я писал ранее про ИИ сетку - проверил бекап, на старой там наоборот связь с заводом и подземкой была (странным образом сквозь стену), и я ее походу в какой-то момент убрал. Наверное, в этом причина, надо вернуть, т.к. основной вход в подземку реально очень далеко

EDIT: а вообще нет, черт его знает что там происходит, там кусок какой-то вне геометрии висит вообще, черт поймешь с чем он связан, не знаю короче

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

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


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

буквально секунды через 3 возвращались к нормальному поведению и шли к своим точкам.

post_combat_time = 2,4
По-моему, так это работает. Вписать в секцию logic

  • Лайк 1

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


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

Здравствуйте, как через рестриктор вызвать титры?

Исправляю косяки в моде, и почему-то гг не телепортируется в указанную точку, а просто отключается интерфейс. Причём 3 сквада телепортируются, а гг нет.

Спойлер

[logic]
active = sr_idle@plen

[sr_idle@plen]
on_info = {=actor_in_zone(pripyat_plen_sr)} sr_idle@dialog %=disable_ui =create_squad(pri_zasada_monolith_squad:pripyat_zasada)%

[sr_idle@dialog]
on_game_timer1 = 10| %=add_cs_text(plen_phrase_1)%
on_game_timer2 = 80| %=del_cs_text(plen_phrase_1)%
on_game_timer3 = 90| %=add_cs_text(plen_phrase_2)%
on_game_timer4 = 160| %=del_cs_text(plen_phrase_2)%
on_game_timer5 = 170| %=add_cs_text(plen_phrase_3)%
on_game_timer6 = 220| %=del_cs_text(plen_phrase_3)% sr_idle@dialog2

[sr_idle@dialog2]
on_game_timer1 = 1 | %=add_cs_text(plen_phrase_4)%
on_game_timer2 = 60 | %=del_cs_text(plen_phrase_4)%
on_game_timer3 = 61 | %=add_cs_text(plen_phrase_5)%
on_game_timer4 = 70 | %=del_cs_text(plen_phrase_5)% sr_idle@spawn

[sr_idle@spawn]
on_info = {=actor_in_zone(pripyat_plen_sr)} sr_idle@ui_enable %=create_squad(pri_dolg_sim_squad:pripyat_zasada)%

[sr_idle@ui_enable]
on_game_timer1 = 50 | %=enable_ui =give_task(pripyat_pogovorit_task)% sr_idle@exit

[sr_idle@exit]
on_info = {+pripyat_perehod} sr_idle@tp_actor %=run_postprocess(fade_in:2272) =disable_ui =teleport_squad(pri_dolg_squad:pripyat_perehod_walker_1_walk) =teleport_squad(pri_dolg_sim_squad:pripyat_perehod_walker_1_walk) =teleport_squad(pri_friend_squad:pripyat_perehod_diplomat_walk)%

[sr_idle@tp_actor]
on_game_timer1 = 10 | sr_idle@nil %=teleport_actor(pripyat_perehod_v_pripyat_actor_walk:pripyat_perehod_v_pripyat_actor_look) =stop_postprocess(fade_in:2272) =enable_ui%

[sr_idle@nil]

 

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

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


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

Здравствуйте, как через рестриктор вызвать титры?

=game_credits

3 часа назад, Skala сказал:

почему-то гг не телепортируется в указанную точку

Какая-то из точек не существует. Пересоздай.

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


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

Neptun Пересоздавал точки актёра, но всё тоже самое

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


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

Skala как обходной вариант, можно телепортировать ГГ напрямую по координатам через lua 

db.actor:set_actor_position(vector():set(x,y,z),level_vertex_id,game_vertex_id)

Вроде так это делается. 


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

Да, а сами координаты можно вот так смотреть - https://www.youtube.com/watch?v=WXuF4WmIbBI

Это ТЧ но на ЗП вроде так же работает.

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

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


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

Mawrak А куда это прописывать и как вызвать?

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


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

Skala чтобы вызывать из логики, в xr_effects.script создаем функцию, например

function my_new_teleport()
    db.actor:set_actor_position(vector():set(32.442,-11.221,-241.626),79341,37)
end

А потом из логики вызываем через %=my_new_teleport% как обычную функцию, в вашем случае

on_game_timer1 = 10 | sr_idle@nil %=my_new_teleport =stop_postprocess(fade_in:2272) =enable_ui%

Но все же хочу спросить, почему такая сложная схема? Почему не телепортировать ГГ прямо вместе со сквадами, зачем там отдельная секция и таймер?

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


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

Mawrak Раньше была одна секция вместе со сквадами и всё работало, потом как добавил задание на разговор с персонажем, работать перестало и решил попробовать так. Так тоже не работает

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


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

Skala а, то есть у вас сейчас +pripyat_perehod выдается через диалог? Тогда я думаю что не в самом телепорте проблема, а в том, что ГГ в диалоге в этот момент. Попробуйте добавить

<action>dialogs.break_dialog</action>

Перед выдачей инфы в диалоге:

<action>dialogs.break_dialog</action>
<give_info>pripyat_perehod</give_info>

ну или как у вас там все сделано

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 22.12.2023 в 14:11, denis2000 сказал:

NewValveCom Я сделал так:

  db.script (Показать контент)

добавил в таблицы:


campfire_by_name = {}

  bind_campfire.script (Показать контент)

В функцию campfire_binder:net_spawn добавил:

db.campfire_by_name[self.object:name()] = self.campfire

  xr_effects.script (Показать контент)

Добавил функции:

function campfire_off(actor, npc, p)
    local obj = db.campfire_by_name[p[1]]
    if obj then
        obj:turn_off()
    end

end

function campfire_on(actor, npc, p)
    local obj = db.campfire_by_name[p[1]]
    if obj then
        obj:turn_on()
    end

end

  Файл логики рестриктора (Показать контент)

[logic]
active = sr_idle@on

[sr_idle@on]
on_game_timer = 50 | sr_idle@off %=campfire_off(test_campfire)%

[sr_idle@off]
on_game_timer = 50 | sr_idle@on %=campfire_on(test_campfire)%

Работает по имени костра в SDK, кроме статического освещения и DX11!

Спасибо! Жаль, что не будет работать на всех рендерах, но разберусь.
 


Хочу реализовать субтитры с их появлением через light_anim, и появление субтитров я реализовал с помощью скрипта:
 

Спойлер

function add_text_no_blink_subtitle(actor, npc, p)
    if p[1] then
  local hud = get_hud()
  local cs_text = hud:GetCustomStatic("text_on_screen_subtitle_no_blink")
  if cs_text then
   hud:RemoveCustomStatic("text_on_screen_subtitle_no_blink")
  end
  hud:AddCustomStatic("text_on_screen_subtitle_no_blink", true)
  cs_text = hud:GetCustomStatic("text_on_screen_subtitle_no_blink")
  cs_text:wnd():TextControl():SetText(game.translate_string(p[1]))
    end
end

+логика: %=add_text_no_blink_subtitle(test)%

Попытался реализовать затухание субтитра через отдельный скрипт (но с тем же кодом, надеясь, что так сработает, ну да) и поменял цвета в фреймах light_anim (черный и белый), но в таком случае просто появляется текст практически также, т.е. нужно, чтобы он затухал также, как и появился, а не резко заканчивался.
Это реально сделать, если поменять тот скрипт или нужно вообще новый код?

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


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

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

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

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

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

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

Войти

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

Войти

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