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

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


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

nuklia, вот лог вылета, посмотри, я все еще пытаюсь адаптировать твой тест-мод...

* Loading spawn registry...

! Cannot find saved game ~~~dbg:_se_smart_terrain:_set_load_marker:_%s

! Cannot find saved game ~~~dbg:_se_smart_terrain:_set_load_marker:_171

! Cannot find saved game ~~~dbg:abort!!!

! Cannot find saved game ~~~dbg:incorrect_load_[%s].[%s][%s]

! Cannot find saved game ~~~dbg:incorrect_load_[_se_smart_terrain].[1536][5]

 

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 : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:486: bad argument #2 to 'format' (string expected, got no value)

 

 

stack trace:

 

 

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

SDR-team,

на С++ написан. Для разборки сгодится любой дизассемблер. Впрочем, если ты этого не знал, то пожалуй тебе и браться за подобные дела не стоит.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

nuklia вот тут http://asm.shadrinsk.net/ и лучше начать с книг (посоветую Пирогова Учебный курс и Ассемблер для Windows).

Но если честно это дебри для здравомыслящего человека(хотя все програмисты не нормальные). Ну а с вопросами и ошибками на http://forum.sources.ru .

Ах чуть не забыл http://netcode.ru/ тут тож много полезного.

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

Здраствуйте, у меня в Зове Припяти в алл.спавне есть секция НПС:

[5896]

; cse_abstract properties

section_name = stalker

name = bar_drunk_dolg

position = 134.305435180664,-4.83976221084595,26.5520305633545

direction = -0.00560344057157636,3.05430865287781,-0.000491185463033617

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = bar_drunk_dolg

 

; cse_alife_object properties

game_vertex_id = 2721

distance = 12.5999994277954

level_vertex_id = 36606

object_flags = 0xffffffff

custom_data = <<END

[logic]

cfg = scripts\l05_bar\bar_drunk_dolg.ltx

[game_info]

END

 

; cse_visual properties

visual_name = amk\mar_yej

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 0

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = 134.305435180664,-4.83976221084595,26.5520305633545

upd:o_model = 0

upd:o_torso = 3.05430865287781,-0.00560344057157636,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 0,0,1,1,2

predicate4 = 0,0,2,0

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

Ну и логика к моему НПС:

[logic]

active = animpoint@motion1

suitable = {=check_npc_name(bar_drunk_dolg)}

;trade = misc\trade\trade_zat_a2_barmen.ltx

can_select_weapon = true

can_select_item = true

;level_spot = trader

 

[animpoint@motion1]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table

on_game_timer = 5000 | animpoint@motion2

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion2]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_weapon

on_game_timer = 5000 | animpoint@motion3

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion3]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_eat_bread

on_game_timer = 300 | animpoint@motion4

meet = no_meet

combat_ignore_cond = true

combat_ignore_keep_when_attacked = true

invulnerable = true

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

 

[animpoint@motion4]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_guitar

on_game_timer = 300 | animpoint@motion5

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion5]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_drink_vodka

on_game_timer = 300 | animpoint@motion1

meet = no_meet

combat_ignore_cond = true

combat_ignore_keep_when_attacked = true

invulnerable = true

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

 

[meet]

close_snd_hello = zat_a2_stalker_barmen_greeting

close_snd_bye = zat_a2_stalker_barmen_farewell

close_anim = nil

close_victim = nil

far_anim = nil

far_victim = nil

close_distance = 0

far_distance = 0

close_snd_distance = 3

abuse = false

use = {=actor_enemy} false, true

allow_break = false

meet_on_talking = false

meet_on_talking = false

 

 

Как ему прописать сквад, чтоб он на карте отображался звездочкой(главарь сквада)?

Изменено пользователем PavelSnork
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

PavelSnork, если нпц со своим профилем, то просто пропиши сквад из одного нпц(вот имеенно этого) в squad_descr.ltx и спавни сквад на месте спавна сталкера, через смарт террейн или чпейс рестриктор. Может и другой способ есть, но я не знаю.

 

Добавлено через 2 мин.:

mira попробуй следующее

[logic]

active = remark1

danger = danger_ignore

anim = desk_idle

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

meet = meet_guide

 

close_anim = nil

close_victim = nil

far_anim = nil

far_victim = nil

close_distance = 0

far_distance = 0

close_snd_distance = 3

abuse = false

use = {=actor_enemy} false, true

allow_break = false

meet_on_talking = false

meet_on_talking = false

 

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

А как ты спавнишь через сквад? Я вот так

в алайф локи

[106]

; cse_abstract properties

section_name = smart_terrain

name = pri_depot

position = -98.9999237060547,-2.22980952262878,-3.57069754600525

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 1068

distance = 6.29999971389771

level_vertex_id = 17711

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg=scripts\marsh\smart\mar_sim_1.ltx

END

 

; cse_shape properties

shapes = shape0

shape0:type = box

shape0:axis_x = 1.27540004253387,0,0

shape0:axis_y = 0,1.74879992008209,0

shape0:axis_z = 0,0,1.27540004253387

shape0:offset = 0,0,0

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

 

в mar_sim_1.ltx

[smart_terrain]

squad_id = 27

max_population = 1

respawn_params = respawn@1

arrive_dist=65

 

[respawn@1]

spawn_stalker@master

spawn_stalker@advanced

spawn_stalker@veteran

 

[spawn_stalker@master]

spawn_squads = greh_sim_squad_novice,greh_sim_squad_advanced

spawn_num = 1

 

[spawn_stalker@advanced]

spawn_squads = greh_sim_squad_veteran, greh_sim_squad_advanced, greh_sim_squad_novice

spawn_num = 2

 

[spawn_stalker@veteran]

spawn_squads = greh_sim_squad_veteran, greh_sim_squad_veteran, greh_sim_squad_veteran

spawn_num = 3

 

 

 

в вей можешь создать им анимпоинты.

А и еще! ТЫ сквад то создал из одного пнц?

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

alexwew, маленько не такая логика..Я имел ввиду что если на него нападают и он куда то одбегает...А потом как всех замочит то шёл на тоже место где стоял раньше.....?

Ссылка на комментарий

mira ну тогда без вей путей тебе не обойтись, теоретически-одна точка(со своим анимпоинтом) там где нпц стоит, и сделай проверку если не на этой точке стоит, то вернуться в эту точку.

 

Добавлено через 3 мин.:

Посмотри в амк Narodnaya Solanka 2009, там болотный доктор убегал при опасности(потом это пофиксили), но как всех убивали врагов, он возращался в подвал.

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

Я пытаюсь создать ексклюзивного НПС, и прописать ему сквад, но он не появляется. Вот файлы для НПС, что не так?

[5923]

; cse_abstract properties

section_name = smart_terrain

name = bar_100rentgen

position = 134.305435180664,-4.83976221084595,26.5520305633545

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2721

distance = 17.5

level_vertex_id = 36606

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg = scripts\l05_bar\smart\bar_100rentgen.ltx

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 2

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

Вот его логика:

[logic@bar_drunk_dolg]

active = animpoint@motion1

suitable = {=check_npc_name(bar_drunk_dolg)}

;trade = misc\trade\trade_zat_a2_barmen.ltx

prior = 200

can_select_weapon = true

can_select_item = true

 

[animpoint@motion1]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table

on_game_timer = 5000 | animpoint@motion2

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion2]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_weapon

on_game_timer = 5000 | animpoint@motion3

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion3]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_eat_bread

on_game_timer = 300 | animpoint@motion4

meet = no_meet

combat_ignore_cond = true

combat_ignore_keep_when_attacked = true

invulnerable = true

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

 

[animpoint@motion4]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_guitar

on_game_timer = 300 | animpoint@motion5

meet = meet

danger = danger_ignore

use_camp = false

 

[animpoint@motion5]

cover_name = bar_drunk1

avail_animations = animpoint_stay_table_drink_vodka

on_game_timer = 300 | animpoint@motion1

meet = no_meet

combat_ignore_cond = true

combat_ignore_keep_when_attacked = true

invulnerable = true

gather_items_enabled = false

help_wounded_enabled = false

corpse_detection_enabled = false

 

 

 

 

[meet]

close_snd_hello = zat_a2_stalker_barmen_greeting

close_snd_bye = zat_a2_stalker_barmen_farewell

close_anim = nil

close_victim = nil

far_anim = nil

far_victim = nil

close_distance = 0

far_distance = 0

close_snd_distance = 3

abuse = false

use = {=actor_enemy} false, true

allow_break = false

meet_on_talking = false

meet_on_talking = false

 

 

Вот описание для сквада:

[bar_drunk_dolg_squad]:online_offline_group

faction = stalker

npc = bar_drunk_dolg

target_smart = bar_100rentgen

spawn_point = bar_100rentgen_spawn_point

story_id = bar_drunk_dolg_squad

 

И чуть не забыл, вот сам смарт террейн:

[smart_terrain];bar_100rentgen

squad_id = 1

respawn_radius = 10

max_population = 3

arrive_dist = 15

spawn_point = bar_100rentgen_spawn_point

 

[exclusive]

;uniq

bar_drunk_dolg = l05_bar\bar_drunk_dolg.ltx ;+surge

 

 

Там еще файлы для смарт террейна и для сквада НПС, но я выложил все основное.

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

PavelSnork, А прописать сквад в simulation.ltx? А где у тебя спавн непися? Где его профиль, класс?

 

PavelSnork, отлично, так где прописан спавн непися? и что за непонятное - у тебя уровень l05_marsh, а в конфигах он l05_bar. Это опечатка или у тебя так и есть?

 

Вот тут - [start_position_l05_bar] - нужно прописывать название локи. Если у тебя alife_l05_marsh, то и писать надо [start_position_l05_marsh]

 

Ну а откуда игра узнает, кого тебе спавнить в отряд? ты дал ссылку npc = bar_drunk_dolg, а куда придет скрипт по этой ссылке? тебе надо твоего уникального непися прописать в spawn_sections_bar, его профиль в character_desc_bar и npc_profile. Там по аналогии все легко получается. Не забудь только подключить spawn_sections_bar в spawn_sections, а character_desc_bar - в system.ltx

Изменено пользователем KD87
Ссылка на комментарий

Вот дополнение к моему предидущему посту:

;;;;;;;;;;;;;;;;;;;;;; FINAL BAR;;;;;;;;;;;;;;;;;;;;;;;;;

 

[start_position_l05_bar]

bar_drunk_dolg_squad = bar_100rentgen

 

 

;-----------BAR--------------------------

;--------- BAR UNIQUE SQUADS --------

 

[bar_drunk_dolg_squad]:default_squad

sim_avail = false

 

 

В файлах smart_names, smart_terrain_masks, game_graphs также все прописал по инструкции от nikulia. Локацию также зарегестрировал в скриптах, way файлы также имеются.

 

Добавлено через 20 мин.:

KD87, Какой спавн непися? Можешь написать? И там у меня опечатка, там должно быть alife_l05_bar.

Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

Вообщем так сделай(попробуй, я тебя не заставляю делать так как я)

в алайф локи

 

[116]

; cse_abstract properties

section_name = smart_terrain

name = pri_monolith

position = 9.49155235290527,0.315742492675781,119.389312744141

direction = -2.35785728364135e-006,1.30893598182524e-008,-3.69004169442633e-007

 

; cse_alife_object properties

game_vertex_id = 964

distance = 63.7000007629395

level_vertex_id = 113787

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg=scripts\marsh\smart\mar_sim_1.ltx

END

 

; cse_shape properties

shapes = shape0

shape0:type = box

shape0:axis_x = 1.80637753009796,0,0

shape0:axis_y = 0,3.14440083503723,0

shape0:axis_z = 0,0,2.03072786331177

shape0:offset = 0,0,0

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

в вей файл локи

 

[pri_monolith_camper_n_look_1]

points = p0

p0:name = name00

p0:flags = 0x1

p0:position = 112.711151123047,-2.39083909988403,70.7033309936523

p0:game_vertex_id = 960

p0:level_vertex_id = 223370

 

 

[pri_monolith_camper_n_look_2]

points = p0

p0:name = name00

p0:flags = 0x1

p0:position = 107.967597961426,-6.58138847351074,43.8503875732422

p0:game_vertex_id = 960

p0:level_vertex_id = 218780

 

 

[pri_monolith_camper_n_walk_1]

points = p0

p0:name = name00

p0:flags = 0x1

p0:position = 107.812072753906,-0.680063724517822,102.212394714355

p0:game_vertex_id = 997

p0:level_vertex_id = 218851

 

 

[pri_monolith_camper_n_walk_2]

points = p0

p0:name = name00

p0:flags = 0x1

p0:position = 107.107414245605,-2.39083194732666,70.6450805664063

p0:game_vertex_id = 960

p0:level_vertex_id = 218100

 

 

 

 

 

в squad_descr.ltx

;--------------- greh simulation squads ----------------------

 

[greh_sim_squad_veteran]:online_offline_group

faction = greh

npc_random = sim_default_greh_2

npc_in_squad = 1, 1

 

 

в squad_behaviours.ltx регистрируешь группировку как сквад

[default_behaviour]

actor = 1

resource = 2

surge = 1

base = 1

territory = 1

lair = 0

squad = 0

 

[ecolog]:default_behaviour

 

[stalker]:default_behaviour

 

[freedom]:default_behaviour

 

[dolg]:default_behaviour

 

[bandit]:default_behaviour

 

[killer]:default_behaviour

 

[greh]:default_behaviour

 

[army]:default_behaviour

 

[monolith]:default_behaviour

surge = 1

 

 

и логика которая прописана смарту

[smart_terrain]

squad_id = 27

max_population = 1

respawn_params = respawn@1

arrive_dist=65

 

[respawn@1]

spawn_stalker@master

spawn_stalker@advanced

spawn_stalker@veteran

 

[spawn_stalker@master]

spawn_squads = greh_sim_squad_veteran

spawn_num = 1

 

[spawn_stalker@advanced]

spawn_squads = greh_sim_squad_veteran

spawn_num = 2

 

[spawn_stalker@veteran]

spawn_squads = greh_sim_squad_veteran

spawn_num = 3

 

 

 

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

alexwew, он хочет эксклюзива. Ты же респавнишь стандартных болванчиков. А зачем группировку как сквад регистрить?

PavelSnork, покажи, если ты прописывал, может ошибся где.

 

А ты локу в sim_board.script не забыл прописать? иначе и не будет спавниться

Изменено пользователем KD87
Ссылка на комментарий

KD87, а, понял, мой НПС в спавн секции, и в остальных файлах прописан. И в system.ltx и в spawn_sections тоже все прописано. Но мой НПС все равно не появляется...

alexwew, а так можно спавнить уникальных НПС? и в каком файле у тебя находится ссылка на вей файлы?

[bar_drunk_dolg]:stalker

$spawn = "respawn\bar_drunk_dolg"

character_profile = bar_drunk_dolg

spec_rank = master

community = stalker

spawn_point = bar_100rentgen_spawn_point

story_id = bar_drunk_dolg

 

 

<!----------------------------------------------bar_drunk_dolg------------------------>

<specific_character id="bar_drunk_dolg" team_default="1">

<name>Исстребитель</name>

<icon>ui_inGame2_bar_barman</icon>

<map_icon x="1" y="0">

</map_icon>

<bio>Опытный сталкер. Детальная информация отсутствует.</bio>

<class>bar_drunk_dolg</class>

<community>stalker</community>

<terrain_sect>stalker_terrain</terrain_sect>

<snd_config>characters_voice\human_01\stalker\</snd_config>

<rank>50</rank>

<reputation>0</reputation>

<money min="480000" max="480000" infinitive="1" />

<visual>actors\stalker_neutral\stalker_neutral_7</visual>

 

<supplies>

[spawn] \n

wpn_ak74u \n

ammo_5.45x39_fmj = 1 \n

wpn_beretta \n

ammo_9x19_fmj = 1 \n

grenade_rgd5 = 1 \n

 

#include "gameplay\character_items.xml"

#include "gameplay\character_food.xml"

#include "gameplay\character_drugs.xml"

</supplies>

#include "gameplay\character_criticals_4.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

 

<character id="bar_drunk_dolg">

<class>bar_drunk_dolg</class>

</character>

 

Про sim_board.script также НЕ забыл

Изменено пользователем PavelSnork
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

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

я изменился. пью, курю, употребляя наркотические средства.

Жизнь-говно. Бабы -консервы.

Забьюсь под стол, чтоб никто не трогал.

Ссылка на комментарий

alexwew, группировку можно и прописать группировкой, а не сквадом. Он и создал профиль и сквад создал. А если сделать так, как ты сделал, то как минимум, этот чел будет респавниться после убийства.

 

Добавлено через 4 мин.:

PavelSnork, в squad_descr у тебя не хватает такого npc_in_squad = 1,1. И попробуй в конфиге террейна убрать arrive_dist. Зачем это, если он за столом просто стоит?

 

alexwew, в squad_behaviour - не надо. У него сталкер, эта группировка прописана.

Изменено пользователем KD87
Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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