Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
SLIVA 0 Опубликовано 21 Декабря 2010 Поделиться Опубликовано 21 Декабря 2010 (изменено) Как не странно делал тоже самое,а вылет вот вылет: Expression : !m_DefaultCharacters.empty() Function : CSE_ALifeTraderAbstract::specific_character File : D:\xray-svn\xr_3da\xrGame\xrServer_Objects_ALife_Monsters.cpp Line : 332 Description : no default specific character set for class Arguments : marsh_provodnik Изменено 21 Декабря 2010 пользователем SLIVA Ссылка на комментарий
ColR_iT 171 Опубликовано 21 Декабря 2010 Поделиться Опубликовано 21 Декабря 2010 (изменено) SLIVA, по всей видимости у тебя игра не может найти соответствующий класс marsh_provodnik. И у меня вопрос к публике. А возможно ли отследить с какой локации на какую переходит ГГ. На какой локации ГГ находиться сейчас - это я могу узнать, а вот на какой был до этой? Изменено 21 Декабря 2010 пользователем Куфзук Ссылка на комментарий
Полтергейст 37 Опубликовано 21 Декабря 2010 Поделиться Опубликовано 21 Декабря 2010 (изменено) А возможно ли отследить с какой локации на какую переходит ГГ Сделать в биндере игрока поле actor_on_level и в net_spawn поставить сравнение имени текущего уровня с именем уровня, записанного в этом поле. Если значения отличаются - записать это в какой-нибудь параметр. Может можно было бы сделать это через биндер для level_changer, но как именно пока не знаю. Изменено 21 Декабря 2010 пользователем Полтергейст Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Подскажите пожалуйста как омжно заспавнить телевизор. Радио получается а телевизор я не знаю как в спавне прописывать Ссылка на комментарий
ColR_iT 171 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 (изменено) TRAMP14, вот пример телевизора в баре: [3455] ; cse_abstract properties section_name = lights_hanging_lamp name = bar_tv_01 position = 130.294647216797,-2.38456416130066,18.8145923614502 direction = 0,3.06333684921265,0 s_flags = 0x23 ; cse_alife_object properties game_vertex_id = 1168 distance = 0 level_vertex_id = 76465 object_flags = 0xfffffffa ; cse_visual properties visual_name = physics\decor\tv_1 ; cse_ph_skeleton properties skeleton_name = ; cse_alife_object_hanging_lamp properties main_brightness = 1 main_color_animator = tv light 1 main_range = 4 light_flags = 0xb57c startup_animation = lamp_fixed_bones = link health = 100 main_virtual_size = 0.100000001490116 ambient_radius = 2 ambient_power = 0.200000002980232 main_bone = bone_lamp main_cone_angle = 2.09439516067505 glow_texture = glow\glow_orange glow_radius = 1 ambient_bone = bone_lamp Пропиши ему другое имя, поставь нужные координаты и вуаля! Полтергейст, а можно поподробнее, потому как я ни чего похожего actor_on_level не нашел. Где именно сохраняется имя предыдущего уровня? Изменено 22 Декабря 2010 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Куфузук skeleton_name = это менять? Ссылка на комментарий
ColR_iT 171 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 (изменено) TRAMP14, вот это: name = bar_tv_01 ;свое имя напиши, например TRAMP14_telek. position = 130.294647216797,-2.38456416130066,18.8145923614502 game_vertex_id = 1168 level_vertex_id = 76465 ;Поставь соответствующие координаты. Изменено 22 Декабря 2010 пользователем Куфзук Ссылка на комментарий
Stalk15 27 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 (изменено) Куфзук Ранее посещенный ГГ уровень можно определить так: При приближении к Lевел_чанджеру определяем текущий уровень и сохраняем с помощью pstor_store. Потом, после перехода на другую локацию, можно прочитать сохраненное имя уровня. Вот и все. Изменено 22 Декабря 2010 пользователем Stalk15 Ссылка на комментарий
ColR_iT 171 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Stalk15, хорошо, а как мне тогда определить, что я в level_changere или пытаюся в него зайти? Ссылка на комментарий
Stalk15 27 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Куфзук Ну например так: for k, v in pairs (db.storage) do local object = level.object_by_id(k) if object:section(или section_name) == "level_changer" then Думаю, дальше сможешь проверить дистанцию до object. Только проверяй дистанцию на 1 метр или на 2. А то при переходе на другую локу ГГ вель будет не подалеку от левел_чанджера. Ссылка на комментарий
Charsi 440 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Куфзук, левелченджер сам определит, что ГГ внутри него, сохранит игру и загрузит ГГ на другой локации. Во время сохранения выполнится функция actor_binder:save(packet), в ней и нужно сохранять имя текущей локации - level.name(). При загрузке в actor_binder:net_spawn(data) сравнивай имя текущего уровня и того, что сохраняли. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 А телевизор будет стандарт вертеть? или свои можно? Ссылка на комментарий
ColR_iT 171 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Да будет то, что обычно. Чтобы сделать свое, нужно в самой модельке прописать нужный путь к seq файлу. Ссылка на комментарий
TRAMP14 1 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 А можно какнить удалить все телевизоры чтобы толькоиз спавна а не конфиги не скрипты редать не пришлось? Строгое предупреждение от администратора n6260 1. Пишите грамотно. Сообщение от администратора n6260 2. Распаковываете алл_спавн, удаляете секции, компилируете обратно. Ссылка на комментарий
Полтергейст 37 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 (изменено) потому как я ни чего похожего actor_on_level не нашел Там этого и нет, надо самому создать поле actor_on_level и приравнять его к level.name(). Сделать, чтобы этот параметр сохранялся. Потом в net_spawn() сравнивать actor_on_level с level.name(). Выглядит это примерно так: function actor_binder:__init (obj) super(obj) ... actor_on_level = nil level_changing_from = nil level_changing_to = nil ... end function actor_binder:net_spawn(data) ... if actor_on_level == nil then actor_on_level = level.name() else level_changing_from = actor_on_level actor_on_level = level.name() level_changing_to = actor_on_level end ... end function actor_binder:save(packet) ... packet:w_stringZ(actor_on_level) ... end function actor_binder:load(reader) ... reader:r_stringZ(actor_on_level) ... end После этого можно будет запрашивать параметры level_changing_to и level_changing_from из любого скрипта. Можно это же сделать через биндер для самого level_changer'а, но это чуть сложнее. В функциях save/load всё должно быть в той же последовательности, то есть, если сохранение параметра actor_on_level идёт после сохранения какого-то другого параметра, то и в загрузке они должны идти в таком же порядке. ------ Сегодня мне удалось перенести state_mgr.script из ЗП в ТЧ. Всё работает, кроме раненых и анимаций сидения у костра. При попытке вылечить раненого игра вылетает (ругается, что передаю nil в state_mgr.set_state. А любители погрятся у костра просто стоят как столбы. Копал xr_kamp - ничего не нашёл. Кто-нибудь знает, как правильно вызвать смену анимации при лечении раненых и в схеме xr_kamp? Изменено 22 Декабря 2010 пользователем Полтергейст Ссылка на комментарий
ColR_iT 171 Опубликовано 22 Декабря 2010 Поделиться Опубликовано 22 Декабря 2010 Доброй ночи! Хочу задать вопрос касающийся анимаций НПС. Где-то на форуме видел вопрос на тему как прописать нужному "чудику" нужную анимацию. Меня это зацепило и я полез в SDK глядеть на неиспользованный труд ПЫСов. Так вот собственно вопрос: а как правильно прописать новую анимацию для НПС в файлы state_lib.script и state_mgr_animation_list.script. Вот "вырезки" из этих файлов: wait_rac = {weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "stand", animation = "raciya" } и raciya = { prop = { maxidle = 1, sumidle = 1, rnd = 100 }, into = { [0] = {"raciya_0_draw_0", {a="hand_radio"}, "raciya_0_draw_1"}, [1] = {"raciya_1_draw_0", {a="hand_radio"}, "raciya_1_draw_1"}, [2] = {"raciya_2_draw_0", {a="hand_radio"}, "raciya_2_draw_1"}, [3] = {"raciya_3_draw_0", {a="hand_radio"}, "raciya_3_draw_1"}, [4] = {"raciya_4_draw_0", {a="hand_radio"}, "raciya_4_draw_1"}, [8] = {"raciya_8_draw_0", {a="hand_radio"}, "raciya_8_draw_1"}, [9] = {"raciya_9_draw_0", {a="hand_radio"}, "raciya_9_draw_1"}, [10]= {"raciya_10_draw_0",{a="hand_radio"}, "raciya_10_draw_1"} }, out = { [0] = {"raciya_0_hide_0", {d="hand_radio"}, "raciya_0_hide_1"}, [1] = {"raciya_1_hide_0", {d="hand_radio"}, "raciya_1_hide_1"}, [2] = {"raciya_2_hide_0", {d="hand_radio"}, "raciya_2_hide_1"}, [3] = {"raciya_3_hide_0", {d="hand_radio"}, "raciya_3_hide_1"}, [4] = {"raciya_4_hide_0", {d="hand_radio"}, "raciya_4_hide_1"}, [8] = {"raciya_8_hide_0", {d="hand_radio"}, "raciya_8_hide_1"}, [9] = {"raciya_9_hide_0", {d="hand_radio"}, "raciya_9_hide_1"}, [10]= {"raciya_10_hide_0",{d="hand_radio"}, "raciya_10_hide_1"} }, idle = { [0] = "raciya_0_idle_0", [1] = "raciya_1_idle_0", [2] = "raciya_2_idle_0", [3] = "raciya_3_idle_0", [4] = "raciya_4_idle_0", [8] = "raciya_8_idle_0", [9] = "raciya_9_idle_0", [10]= "raciya_10_idle_0" }, rnd = { [0] = {"raciya_0_talk_0"}, [1] = {"raciya_1_talk_0"}, [2] = {"raciya_2_talk_0"}, [3] = {"raciya_3_talk_0"}, [4] = {"raciya_4_talk_0"}, [8] = {"raciya_8_talk_0"}, [9] = {"raciya_9_talk_0"}, [10]= {"raciya_10_talk_0"} } } Как видно, в файле state_mgr_animation_list.script дело ведется непосредственно с файлами анимации (stalker_animation.ogf, bandits_animation.omf и тому подобные), а вот в файле state_lib.script задаются параметры непосредственно самой анимации, так сказать - готовой. Так вот, кто нибудь знает назначение параметров этих файлов и какие значения они могут принимать? Ссылка на комментарий
Полтергейст 37 Опубликовано 23 Декабря 2010 Поделиться Опубликовано 23 Декабря 2010 Вот "вырезки" из этих файлов: Подставьте перед элементами таблицы "state_mgr_". Для первого элемента получится state_mgr_movement. И так далее. Короче говоря, эти параметры делаются для скриптов, имена которых можно узнать этой подстановкой. Вот у меня почему-то на новом state_mgr'е не хочет работать анимация "sit", причина непонятна. Ссылка на комментарий
gruber 2 481 Опубликовано 23 Декабря 2010 Поделиться Опубликовано 23 Декабря 2010 Куфзук, Лучше всего эта тема освещена на с-портале(там соответствующая тема есть) И еще набери в поиске"возвращение вырезаных анимаций"-самый подробный тутор из попадавшихся мне Ссылка на комментарий
ColR_iT 171 Опубликовано 23 Декабря 2010 Поделиться Опубликовано 23 Декабря 2010 Полтергейст, не совсем понял! Меня интересуют параметры, например в: wait_rac = { weapon = "strapped", movement = move.stand, mental = anim.free, bodystate = move.standing, animstate = "stand", animation = "raciya" } и raciya = { prop = { maxidle = 1, sumidle = 1, rnd = 100 }, into = { [0] = {"raciya_0_draw_0", {a="hand_radio"}, "raciya_0_draw_1"}, [1] = {"raciya_1_draw_0", {a="hand_radio"}, "raciya_1_draw_1"}, [2] = {"raciya_2_draw_0", {a="hand_radio"}, "raciya_2_draw_1"}, [3] = {"raciya_3_draw_0", {a="hand_radio"}, "raciya_3_draw_1"}, [4] = {"raciya_4_draw_0", {a="hand_radio"}, "raciya_4_draw_1"}, [8] = {"raciya_8_draw_0", {a="hand_radio"}, "raciya_8_draw_1"}, [9] = {"raciya_9_draw_0", {a="hand_radio"}, "raciya_9_draw_1"}, [10]= {"raciya_10_draw_0",{a="hand_radio"}, "raciya_10_draw_1"} }, out = { [0] = {"raciya_0_hide_0", {d="hand_radio"}, "raciya_0_hide_1"}, [1] = {"raciya_1_hide_0", {d="hand_radio"}, "raciya_1_hide_1"}, [2] = {"raciya_2_hide_0", {d="hand_radio"}, "raciya_2_hide_1"}, [3] = {"raciya_3_hide_0", {d="hand_radio"}, "raciya_3_hide_1"}, [4] = {"raciya_4_hide_0", {d="hand_radio"}, "raciya_4_hide_1"}, [8] = {"raciya_8_hide_0", {d="hand_radio"}, "raciya_8_hide_1"}, [9] = {"raciya_9_hide_0", {d="hand_radio"}, "raciya_9_hide_1"}, [10]= {"raciya_10_hide_0",{d="hand_radio"}, "raciya_10_hide_1"} }, idle = { [0] = "raciya_0_idle_0", [1] = "raciya_1_idle_0", [2] = "raciya_2_idle_0", [3] = "raciya_3_idle_0", [4] = "raciya_4_idle_0", [8] = "raciya_8_idle_0", [9] = "raciya_9_idle_0", [10]= "raciya_10_idle_0" }, rnd = { [0] = {"raciya_0_talk_0"}, [1] = {"raciya_1_talk_0"}, [2] = {"raciya_2_talk_0"}, [3] = {"raciya_3_talk_0"}, [4] = {"raciya_4_talk_0"}, [8] = {"raciya_8_talk_0"}, [9] = {"raciya_9_talk_0"}, [10]= {"raciya_10_talk_0"} } } какие параметры они могут принимать? По совету gruber. На сталкер-портале был, ничего существенного не нашел. Были ссылки, но датированные прошлогодним летом, соответственно - не рабочие! Да и вообще почему-то тема больше похожа на "моделирование", а не "анимирование". Может у кого есть тутор по внедрению новых "старых" анимаций. З.Ы. прошу прощение за каламбур. Ссылка на комментарий
amik 253 Опубликовано 23 Декабря 2010 Поделиться Опубликовано 23 Декабря 2010 Куфзук У эрлика или у сингапура22 в журнале смотри. Не помню у кого, но там есть. Мой архив Сталкером не занимаюсь. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти