Akella-96 aka SvD 35 Опубликовано 16 Мая 2012 Поделиться Опубликовано 16 Мая 2012 Artos, ок. Вот мой вопрос - я ищу тутор по добавлению монстра с новым классом, конфигом, но чтобы он использовал логику снорка : прыгал и т.п. AWRP : Re - Load 0.2 © Ссылка на комментарий
xSnakE[AMP] 0 Опубликовано 16 Мая 2012 Поделиться Опубликовано 16 Мая 2012 Уважаемы пользователи данного форума,у меня к вам есть один вопрос,скачал я мод под названием Improved interface,но там такая проблема,при использование Аптечки,Антирада,Бинта,При сохранение игры и.т.д надписи остаются,что делать,как мне их убрать,или уменьшить их время на экране? Ссылка на комментарий
-StalkMen- 159 Опубликовано 16 Мая 2012 Поделиться Опубликовано 16 Мая 2012 Всем здравия! Вопрос 1 Вопрос 2 Как заставить сталкеров вставать в боевые смарт коверы? Вроде поставил э смарт настроил, обозвал(смотрел как на припяти они названы) и ничего... ( где вздумалось там и стоят, отстреливаясь. Ссылка на комментарий
Clayman 104 Опубликовано 16 Мая 2012 Поделиться Опубликовано 16 Мая 2012 -StalkMen-, в боевые каверы нпс по идее должны ныкаться при денжере и отстреливаться оттуда. На зп локациях этих каверов много, но честно говоря работают они как попало - я специально эксперементировал, ставил разные каверы, проверял - каверы нпс занимают от случая к случаю, скажем так, достаточно редко они туда лезут. Так что не вижу смысла вообще с ними заморачиваться, особенно на новых локах расставлять - только allspawn увеличивать... Ссылка на комментарий
-StalkMen- 159 Опубликовано 17 Мая 2012 Поделиться Опубликовано 17 Мая 2012 Clayman, Спасибо за ответ. Тогда вопрос, как (если можно) прописать через логику? И можно ли запехать в смарт сталкера, чтобы он от туда не мог выйти(ток если помер)))) и только стрелял? (что то вроде логики торговцев, ремонтников, врачей и тп.) Ссылка на комментарий
karavan 36 Опубликовано 18 Мая 2012 Поделиться Опубликовано 18 Мая 2012 Подскажите пожалуйста как в "тайник" заспавнить предмет? Насколько я понимаю спавн происходит в рестиктор, я таким еще не занимался, а найти пример что-то пока не получается. Ссылка на комментарий
Clayman 104 Опубликовано 18 Мая 2012 Поделиться Опубликовано 18 Мая 2012 (изменено) karavan, изучаем сталкервики и xr_effects.script - поверь, много полезного найдешь 1. spawn_object_in(id_объекта(предмета):имя_коробки_в_которую_спауним_предмет) Пример использования: =spawn_object_in(zat_b12_key_1:zat_b12_key_1_box) А если тебя интересует создание тайника как в ЗП, то на эту тему тоже тутор есть. Спейс-рестриктор там используется только в качестве метки. Изменено 18 Мая 2012 пользователем Clayman Ссылка на комментарий
karavan 36 Опубликовано 18 Мая 2012 Поделиться Опубликовано 18 Мая 2012 Clayman Спасибо. Еще вопрос: В файлах tm_название_локации прописываются таски заданий. Соответственно есть точка на которую ставится метка. Например: target = jup_a9_power_info Я вот не могу взять в толк что именно здесь jup_a9_power_info? Поршень? И есть ли возможность поставить метку на рестриктор, НПС, смарт и пр. Ссылка на комментарий
Clayman 104 Опубликовано 18 Мая 2012 Поделиться Опубликовано 18 Мая 2012 karavan, метку можно поставить на любой объект со story_id (рестриктор, сквад, объект спавна). Именно на story_id и указываются ссылки в target. Как присваивать скваду story_id, думаю, ты знаешь, а объектам спавна story_id прописывается в Custom data, например: [story_object] story_id = marsh_csky_base_spot_id Ссылка на комментарий
Artos 99 Опубликовано 18 Мая 2012 Поделиться Опубликовано 18 Мая 2012 (изменено) Clayman, уточню: Метки ставятся на любой об'ект имеющий игровой идентифиуатор (ID), те именно на ID и ставится метка. В квестах для установки метки задаются story_id, по которым простенькой функцией id_by_sid (см. _g.script) получается текущий ID и уже на него ставится метка. Так что метки ставить можно и не только по story_id, важно получить текущий идентификатор нужного об'екта ... Изменено 18 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) Кто знает, помогите! Как зарегестрировать новый класс монстра, созданного на основе снорка? И ещё : нашел в конфиге монстра вот такую строку : species = snork И если меняю на свою, то вылетает с логом на отсутствие этой самой строки. В общем, где её регестрировать? Изменено 19 Мая 2012 пользователем ColR_iT AWRP : Re - Load 0.2 © Ссылка на комментарий
ziStam 1 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) Всем доброго времени суток! Скажите, пожалуйста, из-за чего может быть вот такой вылет? 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] Все, наш класс добавлен и не будет вылетать при спавне. Удачи! Изменено 19 Мая 2012 пользователем ziStam Legend of Stalker Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) 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 Изменено 19 Мая 2012 пользователем Akella-96 aka SvD AWRP : Re - Load 0.2 © Ссылка на комментарий
ziStam 1 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 Akella-96 aka SvD, покажи что и как делал. Я не телепат. Legend of Stalker Ссылка на комментарий
Akella-96 aka SvD 35 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) 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") Изменено 19 Мая 2012 пользователем Akella-96 aka SvD AWRP : Re - Load 0.2 © Ссылка на комментарий
Artos 99 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) ziStam, Akella-96 aka SvD Вам обоим стОит почитать тему "Справочник пл функциям и классам" (и в частности #29) дабы не заниматься ерундою и советовать осознанно ... Поправленные "пояснялки": CAI_Trader - клиентский класс экспортированный в сталкеровский Lua из движка игры; se_stalker.se_trader - ссылка на скрипт и класс, в котором реализован конструктор для серверных об'ектов; AI_TRD_S - строковый идентификатор класса, прописывается в секции (конфиге) для об'ектов класса (параметр class); script_trader - скриптовой идентификатор класса, обычно регистрируется в _g.script (ключ в таблице clsid). Попытки заниматься регистрацией классов "методом тыка" практически бессмыслены. Любое непонимание и соответственно "тупое" использование любого из перечисленных выше параметров ведет в лучшем случае в никуда ... а обычно - фатальная ошибка и вылет. Изменено 19 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
ziStam 1 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 Akella-96 aka SvD, простыми словами. Поправь CCropper на CSnork к примеру. Вылет происходит из-за того, что клиентский класс, не экспортирован в игру. Artos, спасибо за более точные разъяснения. Топик я читал, в конце концов пришел к выводу, что создавать свой класс(ну по крайней мере для монстра) бессмысленно и сделал то что мне надо было на классе снорка. Legend of Stalker Ссылка на комментарий
Artos 99 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) ziStam, бессмысленно создавать что-либо из ничего! Класс(ы), в том числе и для монстров создавать (регистрировать) вполне можно, но ТОЛЬКО на базе уже имеющихся (экспортированный в Lua!). Основной вопрос - а нафига?! Если для "прикольно" и делать "в тупую" - действительно бессмысленно и только время тратится (свое и чужое). И даже после пояснений ты тоже не понял, что clsid.cropper_s - и приводит к фатальной ошибке, если класс не зарегистрирован по какой либо-причине. Ну а CCropper - это одна из причин, т.е. регистрация "класса" просто игнорируется и в результате никакой регистрации того, чего нет. Изменено 19 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
ziStam 1 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 Artos, благодарю. Присоединяюсь ко второму вопросу Akella-96 aka SvD что за строка такая? species = snork Legend of Stalker Ссылка на комментарий
Artos 99 Опубликовано 19 Мая 2012 Поделиться Опубликовано 19 Мая 2012 (изменено) ziStam (ответ тебе, а не "пасону") Не ручаюсь за абсолютную правильность ответа, т.к. только предполагать возможно: species - вид (разновидность). Смотрим в game_relations.ltx и в частности в секцию [monster_communities] - и видим, что заданы communities, напоминающие группировки для "человекоподобных", но все гуманоиды об'единены в один вид (human), а для монстров есть помимо "обычных" и другие (например, arena_monstr, bird) ... Т.о. species - некое соответствие живого об'екта некоей группе: актор, гуманоид, птица, аренный монстр, ... и именно по этому параметру и выстраиваются взаимоотношения между видами. Естественно, попытки использовать "кривую отсебятину" - чреваты (cкрипты просто не переваривают). Изменено 19 Мая 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти