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

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


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

Artos, ок. Вот мой вопрос - я ищу тутор по добавлению монстра с новым классом, конфигом, но чтобы он использовал логику снорка : прыгал и т.п.

AWRP : Re - Load 0.2 ©

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

Уважаемы пользователи данного форума,у меня к вам есть один вопрос,скачал я мод под названием Improved interface,но там такая проблема,при использование Аптечки,Антирада,Бинта,При сохранение игры и.т.д надписи остаются,что делать,как мне их убрать,или уменьшить их время на экране?

 

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

Всем здравия!

Вопрос 1

a4d9c4c6be82t.jpg

Вопрос 2

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

 

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

Clayman,

Спасибо за ответ.

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

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

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

Подскажите пожалуйста как в "тайник" заспавнить предмет?

Насколько я понимаю спавн происходит в рестиктор, я таким еще не занимался, а найти пример что-то пока не получается.

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

karavan, изучаем сталкервики и xr_effects.script - поверь, много полезного найдешь;)

 

1. spawn_object_in(id_объекта(предмета):имя_коробки_в_которую_спауним_предмет)

 

Пример использования:

=spawn_object_in(zat_b12_key_1:zat_b12_key_1_box)

 

А если тебя интересует создание тайника как в ЗП, то на эту тему тоже тутор есть. Спейс-рестриктор там используется только в качестве метки.

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

Clayman Спасибо.

 

Еще вопрос:

В файлах tm_название_локации прописываются таски заданий.

Соответственно есть точка на которую ставится метка. Например:

target = jup_a9_power_info

 

Я вот не могу взять в толк что именно здесь jup_a9_power_info? Поршень? И есть ли возможность поставить метку на рестриктор, НПС, смарт и пр.

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

karavan, метку можно поставить на любой объект со story_id (рестриктор, сквад, объект спавна). Именно на story_id и указываются ссылки в target. Как присваивать скваду story_id, думаю, ты знаешь, а объектам спавна story_id прописывается в Custom data, например:

 

[story_object]

story_id = marsh_csky_base_spot_id

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

Clayman, уточню:

Метки ставятся на любой об'ект имеющий игровой идентифиуатор (ID), те именно на ID и ставится метка.

В квестах для установки метки задаются story_id, по которым простенькой функцией id_by_sid (см. _g.script) получается текущий ID и уже на него ставится метка.

Так что метки ставить можно и не только по story_id, важно получить текущий идентификатор нужного об'екта ...

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Кто знает, помогите! Как зарегестрировать новый класс монстра, созданного на основе снорка? И ещё : нашел в конфиге монстра вот такую строку :

species        = snork

 

И если меняю на свою, то вылетает с логом на отсутствие этой самой строки. В общем, где её регестрировать?

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

AWRP : Re - Load 0.2 ©

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

Всем доброго времени суток! Скажите, пожалуйста, из-за чего может быть вот такой вылет?

FATAL ERROR

[error]Expression    : assertion failed
[error]Function      : doors::door::door
[error]File          : D:\prog_repository\sources\trunk\xrGame\doors_door.cpp
[error]Line          : 36
[error]Description   : m_object.get_door_vectors( m_closed_vector, m_open_vector )


stack trace:

 

Получил вот такой лог при загрузки той локи, на которой эта дверь заспавнена.

П.с. Модель двери сделана новая, но на костях стандартной двери.

 

 

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

Akella-96 aka SvD, новый класс регистрируется в class_registrator.script.

cs_register    (object_factory, "CAI_Trader", "se_stalker.se_trader",    "AI_TRD_S",     "script_trader")

CAI_Trader -клиентский класс для движка игры

se_stalker.se_trader - ссылка на скрипт, функцию, которая управляет этим классом(спавн и пр.)

AI_TRD_S - класс, который прописывается в конфиге созданного трейдера

script_trader - что это незнаю, но регистрируется в _g.script

 

 

Находим строчки

function start_game_callback()

aa = alife()

 

squad_community_by_behaviour = {

["stalker"] = "stalker",

["bandit"] = "bandit",

["dolg"] = "dolg",

["freedom"] = "freedom",

["army"] = "army",

["ecolog"] = "ecolog",

["killer"] = "killer",

["zombied"] = "zombied",

["monolith"] = "monolith",

["monster"] = "monster",

["monster_predatory_day"] = "monster",

["monster_predatory_night"] = "monster",

["monster_vegetarian"] = "monster",

["monster_zombied_day"] = "monster",

["monster_zombied_night"] = "monster",

["monster_special"] = "monster"

}

 

 

 

 

monster_classes = {

[clsid.bloodsucker_s] = true,

[clsid.boar_s] = true,

[clsid.dog_s] = true,

[clsid.flesh_s] = true,

[clsid.pseudodog_s] = true,

[clsid.burer_s] = true,

-- [clsid.cat_s] = true,

[clsid.chimera_s] = true,

[clsid.controller_s] = true,

-- [clsid.fracture_s] = true,

[clsid.poltergeist_s] = true,

[clsid.gigant_s] = true,

-- [clsid.zombie_s] = true,

[clsid.snork_s] = true,

[clsid.tushkano_s] = true,

[clsid.psy_dog_s] = true,

[clsid.psy_dog_phantom_s] = true}

 

stalker_classes = {

[clsid.script_actor] = true,

[clsid.script_stalker] = true}

 

weapon_classes = {

[clsid.wpn_vintorez_s] = true,

[clsid.wpn_ak74_s] = true,

[clsid.wpn_lr300_s] = true,

[clsid.wpn_hpsa_s] = true,

[clsid.wpn_pm_s] = true,

[clsid.wpn_shotgun_s] = true,

[clsid.wpn_auto_shotgun_s] = true,

[clsid.wpn_bm16_s] = true,

[clsid.wpn_svd_s] = true,

[clsid.wpn_svu_s] = true,

[clsid.wpn_rg6_s] = true,

[clsid.wpn_rpg7_s] = true,

[clsid.wpn_val_s] = true,

[clsid.wpn_walther_s] = true,

[clsid.wpn_usp45_s] = true,

[clsid.wpn_groza_s] = true,

[clsid.wpn_knife_s] = true,

[clsid.wpn_grenade_f1_s] = true,

[clsid.wpn_grenade_rgd5_s] = true,

[clsid.wpn_grenade_launcher] = true,

[clsid.wpn_grenade_fake] = true}

 

artefact_classes = {

[clsid.art_bast_artefact] = true,

[clsid.art_black_drops] = true,

[clsid.art_dummy] = true,

[clsid.art_electric_ball] = true,

[clsid.art_faded_ball] = true,

[clsid.art_galantine] = true,

[clsid.art_gravi] = true,

[clsid.art_gravi_black] = true,

[clsid.art_mercury_ball] = true,

[clsid.art_needles] = true,

[clsid.art_rusty_hair] = true,

[clsid.art_thorn] = true,

[clsid.art_zuda] = true,

[clsid.artefact] = true,

[clsid.artefact_s] = true}

 

printf ("start_game_callback called")

smart_names.init_smart_names_table()

task_manager.clear_task_manager()

sound_theme.load_sound()

xr_sound.start_game_callback()

dialog_manager.fill_phrase_table()

xr_s.init()

sim_objects.clear()

sim_board.clear()

sr_light.clean_up ()

pda.add_quick_slot_items_on_game_start()

-- Tестирование оптимизации

--local test_object = test_object.test_object_class()

--test_object:test()

end

 

и добавляем по анологии с другими классами. Например так:

monster_classes = {
        [clsid.bloodsucker_s]             = true,
...
Добавляем:
[code]monster_classes = {
        [clsid.bloodsucker_s]             = true,
        [clsid.script_trader]             = true,

[/code]

 

 

Все, наш класс добавлен и не будет вылетать при спавне. Удачи!

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

Legend of Stalker

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

ziStam, спасибо конечно, но я все это сделал. Вылетает с вот этим логом :

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....А.Л.К.Е.Р. - Зов Припяти\gamedata\scripts\_g.script:555: table index is nil

Изменено пользователем Akella-96 aka SvD

AWRP : Re - Load 0.2 ©

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

ziStam,

monster_classes = {

[clsid.bloodsucker_s] = true,

[clsid.boar_s] = true,

[clsid.dog_s] = true,

[clsid.flesh_s] = true,

[clsid.pseudodog_s] = true,

[clsid.burer_s] = true,

[clsid.cat_s] = true,

[clsid.chimera_s] = true,

[clsid.controller_s] = true,

[clsid.fracture_s] = true,

[clsid.poltergeist_s] = true,

[clsid.gigant_s] = true,

[clsid.zombie_s] = true,

[clsid.snork_s] = true,

[clsid.tushkano_s] = true,

[clsid.psy_dog_s] = true,

[clsid.cropper_s] = true,

 

 

cs_register (object_factory, "CTushkano", "se_monster.se_monster", "SM_TUSHK", "tushkano_s")

cs_register (object_factory, "CPsyDog", "se_monster.se_monster", "SM_DOG_P", "psy_dog_s")

cs_register (object_factory, "CPsyDogPhantom", "se_monster.se_monster", "SM_DOG_F", "psy_dog_phantom_s")

cs_register (object_factory, "CCropper", "se_monster.se_monster", "SM_CROPPER", "cropper_s")

 

 

Изменено пользователем Akella-96 aka SvD

AWRP : Re - Load 0.2 ©

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

ziStam, Akella-96 aka SvD

Вам обоим стОит почитать тему "Справочник пл функциям и классам" (и в частности #29) дабы не заниматься ерундою и советовать осознанно ...

 

Поправленные "пояснялки":

CAI_Trader - клиентский класс экспортированный в сталкеровский Lua из движка игры;

se_stalker.se_trader - ссылка на скрипт и класс, в котором реализован конструктор для серверных об'ектов;

AI_TRD_S - строковый идентификатор класса, прописывается в секции (конфиге) для об'ектов класса (параметр class);

script_trader - скриптовой идентификатор класса, обычно регистрируется в _g.script (ключ в таблице clsid).

 

Попытки заниматься регистрацией классов "методом тыка" практически бессмыслены. Любое непонимание и соответственно "тупое" использование любого из перечисленных выше параметров ведет в лучшем случае в никуда ... а обычно - фатальная ошибка и вылет.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Akella-96 aka SvD, простыми словами. Поправь

CCropper

на

CSnork

к примеру. Вылет происходит из-за того, что клиентский класс, не экспортирован в игру.

Artos, спасибо за более точные разъяснения. Топик я читал, в конце концов пришел к выводу, что создавать свой класс(ну по крайней мере для монстра) бессмысленно и сделал то что мне надо было на классе снорка.

Legend of Stalker

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

ziStam, бессмысленно создавать что-либо из ничего!

Класс(ы), в том числе и для монстров создавать (регистрировать) вполне можно, но ТОЛЬКО на базе уже имеющихся (экспортированный в Lua!).

Основной вопрос - а нафига?! :crazy: Если для "прикольно" и делать "в тупую" - действительно бессмысленно и только время тратится (свое и чужое).

 

И даже после пояснений ты тоже не понял, что clsid.cropper_s - и приводит к фатальной ошибке, если класс не зарегистрирован по какой либо-причине.

Ну а CCropper - это одна из причин, т.е. регистрация "класса" просто игнорируется и в результате никакой регистрации того, чего нет.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

ziStam (ответ тебе, а не "пасону")

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

species - вид (разновидность). Смотрим в game_relations.ltx и в частности в секцию [monster_communities] - и видим, что заданы communities, напоминающие группировки для "человекоподобных", но все гуманоиды об'единены в один вид (human), а для монстров есть помимо "обычных" и другие (например, arena_monstr, bird) ...

Т.о. species - некое соответствие живого об'екта некоей группе: актор, гуманоид, птица, аренный монстр, ... и именно по этому параметру и выстраиваются взаимоотношения между видами.

Естественно, попытки использовать "кривую отсебятину" - чреваты (cкрипты просто не переваривают).

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

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

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

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

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

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

Войти

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

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

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