AndrewMor 530 Опубликовано 16 Сентября 2013 Вот еще возник вопрос: не таскаются трупы (ни НПС, ни монстров). Причем подсказка сочетания клавиш отображается, а при нажатии ничего не происходит. Подскажите, куда копать? ============== Прежде чем копать, попробуй просто сменить свою броню или снять её вовсе. BFG Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 20 Сентября 2013 (изменено) Кто подскажет, уважаемые: В моде на базе ОГСМ для ТЧ создал новую группировку по тутору из сети. Вроде все прописал, как надо, но при выходе из игры получаю вылет: Expression : fatal errorFunction : CScriptEngine::lua_errorFile : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cppLine : 73Description :Arguments : LUA error: ...publishing\s.t.a.l.k.e.r\gamedata\scripts\amk.script:110: attempt to index field 'pstor' (a nil value) -- Старт таймера в игровом времениfunction g_start_timer(name,delay_d,delay_h,delay_m,action)local time = level.get_time_days()*60*24+level.get_time_hours()*60+level.get_time_minutes() --time in game minutesif delay_d==nil or delay_h==nil or delay_m==nil thenreturn falseendif action==nil thenaction = ""endlocal a=1while db.storage[db.actor:id()].pstor["gt"..a] doa=a+1if a>100 thenreturn falseendendsave_variable("gt"..a, name)save_variable("gt"..a.."d", time+delay_d*60*24+delay_h*60+delay_m)save_variable("gt"..a.."p", action)return trueend Красным выделена 110 строка. Что сие означает и как с этим бороться? По вылету с созданием новой группировки вопрос снимается, ошибку нашел сам. Изменено 20 Сентября 2013 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 25 Сентября 2013 Люди, посоветуйте грамотный туторов по респавну. А то одну статейку читал, вроде делал, как написано, а респавн все равно не происходит... RESPAWN NPC-----------------------------------------------------------------------------Для создания респавна, понадобится два файла, all.spawn и spawn_section.ltx.Это минимальный набор. Для полной настройки респавнера, нужны ещё character_desc_simulation.xml и npc_profile.xml.--------------------------------------------------------------------------------1. В gamedata\spawns\all.spawn создаём секцию респавнера [10000] ; cse_abstract propertiessection_name = respawnname = имя респавнера, например, pred_respawn_military_blockpostposition = координаты (x,y,z)direction = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 10level_vertex_id = левел-вертексobject_flags = 0xffffff3ecustom_data = <[respawn]respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9 (pred_military_respawn_1);max_count = 8;min_count = 4max_spawn = 2 (5)idle_spawn = mediumconditions = 100END; cse_shape propertiesshapes = 1shape_0:type = sphereshape_0:offset = 0,0,0shape_0:radius = 1; cse_alife_space_restrictor propertiesrestrictor_type = 0; se_respawn properties Если используется программа XrSpawner,; то копируем любую секцию respawn; меняем имя объекта,; координаты, и в окошке скрипт прописываемspawned_obj =[respawn]respawn_section = esc_urody_respawn_1,12, esc_urody_respawn_2,9max_count = 8min_count = 4max_spawn = 2idle_spawn = mediumconditions = 100;Где respawn_section = id респавн-секций из файла spawn_section.ltx.;Цифры после запятой, означают отношение одной секции к другой.;Если планируется одинаковое количество респавна из каждой секции,;то цифры ставить не требуется. max_count = количество респавн-запросов;за период времени, пока ГГ находится на уровне. При переходе на другой уровень;счётчик max_count сбрасывается. (ставить не обязательно);min_count = минимальное количество нпс, для экстренного респавна.;(ставить не обязательно);max_spawn = количество нпс за один цикл респавна.;idle_spawn = тип спавна. Известно три типа: medium, often, seldom.;Обычно используется тип medium.;conditions = Условие респавна. Можно установить проверку условий (инфопоршень),;где респавн будет происходить только при выполнении условия. Номер означает;общий процент выполнения респавна. Например так conditions = {+инфо} 100, 0;где респавн будет происходить со стопроцентной вероятностью, только при наличии;установленного инфопоршна.--------------------------------------------------------------------------------2. В файле gamedata\config\creatures\spawn_section.ltx создаём респавн-секции[esc_urody_respawn_1]:stalker$spawn = "respawn\esc_urody_respawn_1"character_profile = sim_urody_novice (sim_military_regular)spec_rank = novice (regular)community = bandit (military)[esc_urody_respawn_2]:stalker$spawn = "respawn\esc_urody_respawn_2"character_profile = sim_urody_regularspec_rank = regularcommunity = bandit;Где esc_urody_respawn_1 - id респавн-секции.;sim_urody_novice и sim_urody_regular - классы профайлов нпс.;novice и regular - ранги нпс.;bandit - группировка нпс.--------------------------------------------------------------------------------3. В файле gamedata\config\gameplay\npc_profile.xml регистрируем классы sim_urody_regular и sim_urody_novice <character id="sim_urody_regular>"<class>sim_urody_regular</class></character> <character id="sim_urody_novice"><class>sim_urody_novice</class></character> --------------------------------------------------------------------------------4. Создаём профили, в файле character_desc_simulation.xml, с классами sim_urody_regular и sim_urody_novice и группировкой bandit.--------------------------------------------------------------------------------RESPAWN MUTANTOV-------------------------------------------------------------------------------В принципе, респавн мутантов идентичен респавну нпс. Но с одним лишь отличием, которое егозначительно упрощает. Вся настройка респавна мутантов, ограничивается секцией в файле all.spawn.Вписываем секцию респавнера, как указано в -RESPAWN NPC-. Все настройки идентичны, кроме строкиrespawn_section = . В ней прописываем типы мутантов, из файла se_respawn.script.Такие как flesh_weak, flesh_normal, dog_weak, boar_strong, и т.д..--------------------------------------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------------------------------------Обязательные условия респавна 1. На уровне обязательно должен быть хоть один гулаг для респавнящихся нпс и мутантов.Так как количество неписей для респавна ориентируется по доступным местам в гулагах.2. Респавн производится, только если под гулагами есть доступные работы.3. На каждом уровне респавн ограничен определёнными типами неписей. Данные ограниченияустановлены в файле miscsmart_terrain_presets.ltx. Чтобы сделать возможным респавннеписей, не предусмотренных на данном уровне, надо в секции нужного уровня дописать требуемые типы неписей.--------------------------------------------------------------------------------Для проверки созданного респавнера можно не ждать когда сработает системный респавн,а вызвать принудительно респавн в нужной секции. Для этого прописываем в любой логикевызов функции %=respawner_spawn(имя респавнера)%. Где имя респавнера - имя секции,созданой в файле all.spawn. Скобки обязательны.Например, можно создать рядом с зоной респавнера, временный рестриктор. И в кастом датерестриктора прописать вызов функции принудительного вызова респавна в нужном респавнерепри входе ГГ в зону рестриктора[logic]active = sr_idle@in[sr_idle@in]on_actor_inside = %=respawner_spawn(имя респавнера)% sr_idle@out[sr_idle@out]on_actor_outside = sr_idle@in Функция принудительного вызова респавна, находится в файле xr_effects.script.--------------------------------------------------------------------------------RESPAWN ITEMS-------------------------------------------------------------------------------Респавн инвентаря в инвентарных ящиках, несколько отличается от способа респавна неписей.--------------------------------------------------------------------------------1. Первое, что нам нужно сделать, это создать инвентарный ящик в файле all.spawn[10000]; cse_abstract propertiessection_name = inventory_boxname = имя ящикаposition = координаты x,y,zdirection = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 0level_vertex_id = левел-вертексobject_flags = 0xffffffbastory_id = ай-ди ящика; cse_visual propertiesvisual_name = equipmentsitem_box_01--------------------------------------------------------------------------------2. Затем, в файле game_story_id.ltx регистрируем id ящика. (выбираем любое свободное число).--------------------------------------------------------------------------------3. Создаём респавнер в файле all.spawn. Координаты и размеры зоны респавнера должныбыть такими, чтоб инвентарный ящик поместился внутри зоны респавнера[10001]; cse_abstract propertiessection_name = respawnname = имя респавнераposition = координаты x,y,zdirection = 0,0,0id = 65535version = 118script_version = 6; cse_alife_object propertiesgame_vertex_id = гейм-вертексdistance = 2level_vertex_id = левел-вертексobject_flags = 0xffffff3ecustom_data = END[respawn]respawn_section = список вещей респавнаidle_spawn = -1parent = ай-ди ящикаitem_spawn = truemax_count = 7END; cse_shape propertiesshapes = 1shape_0:type = boxshape_0:axis_x = 0.5,0,0 (ширина зоны респавнера по X)shape_0:axis_y = 0,0.5,0 (высота зоны респавнера по Y)shape_0:axis_z = 0,0,1 (ширина зоны респавнера по Z)shape_0:offset = 0,0,0; cse_alife_space_restrictor propertiesrestrictor_type = 3; se_respawn propertiesГде respawn_section = список вещей респавна. Как и в респавнерах неписей, возможна прописка соотношений между вещами. Напримерrespawn_section = wpn_pm,2, vodka,2, medkit,1, energy_drink,2, ammo_9x18_fmj,3idle_spawn = тип спавна. Инвентарь не имеет типов спавна, поэтому ставится (-1).parent = ай-ди инвентарного ящика, в котором производить респавн вещей.item_spawn = (true/false) - возможность включения и отключения респавна. Можно задавать условия.max_count = количество респав-циклов за определённый период времени.(Пока ГГ находится на уровне. После перехода ГГ на другой уровень счётчик сбрасывается).--------------------------------------------------------------------------------4. Создаём вызов респавна. Обычно вызов производится из smart_terrain. В custom_dataлюбого подходящего smart_terrain, под секцией [smart_terrain], вписываем вызов респавна[smart_terrain]respawn = имя респавнера И респавн будет производиться при каждом пополнении нпс под данным смартом. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Сентября 2013 (изменено) Главным условием, чтобы ты в игре увидел своих заспавненных неписей является или независимость твоих неписей от гулагов ("smart_terrains = none") Что-то я не совсем понял. У меня заспавнены неписи через all.spawn, приписаны к своему смарту. Вот и надо мне, чтобы при их смерти происходил респавн. А как понять - smart_terrains = none? Попробую объяснить, что я сдедал: 1. заспавнил НПС через all.spawn. 2. приписал их к смарту. 3. прописал им логику. 4. вписал их в character_desc_имя локи и сделал свой профиль. И вот чтобы при их смерти спавнились новые (другие), сделать-то нужно что? 1. респавнер. 2. прописать их в character_desc_simulation. 3. вписать в spawn_section. 4. создать профиль. Это все или я не совсем правильно понимаю и нужно сделать что-то еще? Изменено 27 Сентября 2013 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 12 Октября 2013 Всем привет! Возник вопрос: заспавнил двух сталкеров: торговца и бармена. Они спавнятся, торгуют, говорят, все чин чинарем. Решил поменять им визуал. Вытащил модели из ЧН, скопировал текстуры, все запустилось, визуалы сменились, но почему-то с ними нельзя поговорить: надпись "Говорить (F)" не появляется. В чем может быть причина? И да, забыл написать, что при наведении прицела на этих сталкеров не появляется даже их имен. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 12 Октября 2013 La'Rento, да я пользовался другим уроком. Спасибо за ответ и ссылку, все заработало, как надо. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 13 Октября 2013 Вот интересно стало: в паке локаций от Кости (вроде) есть лока Болота. Так вот, костры там не горят, а тлеют. Можно ли их сделать, как в чистой ТЧ? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 14 Октября 2013 La'Rento, да, действительно, в алайфе на заспавнены костры: нет ни lights_hanging_lamp, ни zone_flame_small, ни space_restrictor. Буду спавнитьь сам, огромное спасибо. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Октября 2013 Доброй ночи всем, словил вылет Expression : fatal errorFunction : CScriptEngine::lua_errorFile : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cppLine : 73Description : Arguments : LUA error: ...s.t.a.l.k.e.r\gamedata\scripts\dialog_manager.script:283: attempt to perform arithmetic on field 'phrase' (a string value) Предыстория: есть сталкер-трейдер, соответственно, конфиг торговли. Самое интересное, что при покупке чего-либо ассортимент не обновляется (save\load ничего не дают), а самое главное, если сохранится после покупки и поговорить - вышеописанный вылет. А диалог один единственный - стандартный hello_dialog. Собственно, вопрос один: что это за вылет, с чем связан. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 11 Ноября 2013 (изменено) В оригинальной ТЧ, в квесте на Кордоне по зачистке АТП, группа Петрухи: сам Петруха обычный, на мини-карте отображается желтой точкой, а два его напарника - на мини-карте не отображаются. Подскажите, что у них и где прописано, что их на мини-карте не видно ? В файле логики Кордона ищи строчку show_spot = false. Закомеентируй или удали ее совсем. И будет тебе счастье. Попутно тоже спрошу. Есть мод на базе ОГСМ для ТЧ с добавленными локациями. Но фишка в том, что на этих локах нет укрытий от выброса. А при попытке спавна получаю вылет. function first_run() local ind --------------------------- -- Укрытия в Предбаннике -- --------------------------- -- Подвал справа от тоннеля spawn_restrictor("predbannik", vector():set(2.51,13.23,57.36), 947350, 3996, "stalker", 3) ------------------------ -- Укрытия на Кордоне -- ------------------------ -- Бункер Сидора spawn_restrictor("l01_escape", vector():set(-249.9,-24.8,-134.4), 10136, 7, "fake_", 3) -- Лагерь новичков spawn_restrictor("l01_escape", vector():set(-206.5,-22.53,-128.1), 46582, 58, "stalker", 3) spawn_restrictor("l01_escape", vector():set(-211.4,-23.17,-129.5), 41963, 59, "stalker", 3) Добавлена строка, где написано "predbannik" Expression : fatal error Function : CInifile::r_section File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp Line : 342 Description : Arguments : Can't open section 'predbannik_hide_restrictor' function spawn_restrictor(p_level, p_vector, p_lv, p_gv, p_type, p_radius) local p_name if p_type == "pp" then p_name = p_level.."_psy_restrictor" else p_name = p_level.."_hide_restrictor" end local obj = alife():create(p_name, p_vector, p_lv, p_gv) local hide_name if string.find(p_type, "_") then hide_name = "ogsm_common_hide" else hide_name = "ogsm_"..p_type.."_hide" end local mapspot if p_radius < 4 then mapspot = "ogsm_hide_spot_min" elseif p_radius < 11 then mapspot = "ogsm_hide_spot_mdl" else mapspot = "ogsm_hide_spot_max" end local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() -- свойства cse_shape local shape_count = packet:r_u8() local shape_type local center local radius if shape_count == 0 then shape_type = 0 center = vector():set(0,0,0) radius = 10.0 shape_count = 1 else for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local v1 = packet:r_vec3() local v2 = packet:r_vec3() local v3 = packet:r_vec3() local v4 = packet:r_vec3() end end end -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_alife_object packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if p_type == "pp" then custom_data = "[logic] \nactive = ogsm_effector \n[ogsm_effector]" else custom_data = "[logic] \nactive = sr_mapspot \n[sr_mapspot] \nhint = "..hide_name.." \nlocation = "..mapspot end local cd = parse_custom_data(custom_data) if not cd then cd={} end if not cd.parameters then cd.parameters = {} end cd.parameters.community = p_type cd.parameters.radius = p_radius custom_data = gen_custom_data(cd) packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) -- свойства cse_shape packet:w_u8(shape_count) for i=1,shape_count do packet:w_u8(shape_type) if shape_type == 0 then packet:w_vec3(center) packet:w_float(p_radius) else packet:w_vec3(v1) packet:w_vec3(v2) packet:w_vec3(v3) packet:w_vec3(v4) end end -- свойства cse_alife_space_restrictor packet:w_u8(restrictor_type) obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return obj end Собственно, где копать, может подскажете? Я правильно понимаю, что скрипт не видит новых локаций, или что другое не так прописано? AndrewSol, файл логики Кордона называется gulag_escape.ltx. Лежит в gamedata\config\misc Изменено 11 Ноября 2013 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 11 Ноября 2013 (изменено) У тебя в логе же чётко указанно что игра не может найти в конфигах секцию [predbannik_hide_restrictor] В функции спавна рестриктора ты передаёшь имя уровня, а в скрипте к нему потом дописывается _hide_restrictor Найди в конфигах по аналогии например l01_escape_hide_restrictor и глянь что туда писать надо. Я понимаю, что невозможно открыть такую секцию. Но откуда она читается (или берется) - не понимаю. В самом начале скрипта написано restrictor_list={}. Думаю, что это список рестрикторов, он и заполняется. Я выше привел полностью функцию spawn_restictor. На всякий случай привожу функцию, где этот самый локация_hide_restrictor формируется: function get_level_mobs() for i=1,65535 do local obj = alife():object(i) if obj then if string.find(get_monster_portion(obj.id), level.name()) then list_mob_ids[obj.id] = obj.id end if string.find(obj:name(), level.name().."_hide_restrictor") then table.insert(restrictor_list, obj) end if string.find(obj:name(), level.name().."_psy_restrictor") then table.insert(psy_list, obj) end end end end Shoker, я в натуре дико протупил. Он же в system.ltx прописан Изменено 11 Ноября 2013 пользователем AndrewMor 1 Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 20 Ноября 2013 Подскажите, кто знает, из-за чего может быть такой вылет (вылет в Х-18: после убийства огненного плтера не было сна и вылет) FATAL ERROR[error]Expression : fatal error[error]Function : CPostprocessAnimator::Load[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\PostprocessAnimator.cpp[error]Line : 76[error]Description : [error]Arguments : Can't find motion file 'amp_1_task'. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 30 Ноября 2013 Всем привет, возникла проблема. Мод на базе ТЧ с восстановленными монстрами. Хотел заспавнить бюрера через all.spawn, но не нашел подходящей секции. Попробовал заспавнить по секции полтергейста, изменив ссылку на визуал, спавн скомпилился, но при старте игры вылет: Expression : count != 0Function : CControlAnimationBase::UpdateAnimCountFile : E:\stalker\sources\trunk\xr_3da\xrGame\ai\Monsters\control_animation_base.cppLine : 426Description : Error! No animation: stand_eat_ for monster garold_burer1 Понятно, что нет анимации, но как же тогда спавнить бюрера? Брать другую секцию, или менять только section_name на другую? И на какую конкретно? По спавну бюреров все получилось. В all.spawn в секции на базе полтергейста надо написать section_name = burer_normal. И в m_burer.ltx добавить секцию [burer_normal], скопировав секцию [burer_weak]. Именно так сделано в Солянке. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 22 Декабря 2013 Всем привет, возникла проблема. Потребовалось заспавнить в моде на основе ТЧ кота через all.spawn. Ни одной секции с котом в ТЧ нету, но котов можно заспавнить и скриптом. написал свою секцию в all.spawn и получил вылет при сборке ; cse_abstract properties section_name = cat_normalname = swa_cat01position = 133.11943054199, 8.5584344863892, -14.657176971436direction = 0, 0, 0id = 65535version = 118script_version = 6spawn_id = 2236; cse_alife_object propertiesgame_vertex_id = 4019distance = 0level_vertex_id = 1152766object_flags = 0xffffffffcustom_data = < END[smart_terrains]none = trueEND; cse_visual propertiesvisual_name = monsters\cat\cat ; cse_alife_creature_abstract propertiesg_team = 0g_squad = 1g_group = 1health = 1dynamic_out_restrictions =dynamic_in_restrictions =; cse_alife_monster_abstract properties ; cse_ph_skeleton properties; cse_alife_monster_base properties; se_monster propertiesupd:health = 1upd:timestamp = 0upd:creature_flags = 0upd:position = 133.11943054199, 8.5584344863892, -14.657176971436upd:g_squad = 1upd:g_group = 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; лог вылета FATAL ERROR:Function: stkutils::scan::get_classLine: 1919Description: cannot find clsid for class cat_normal at stkutils/debug.pm line 58 Дальше написано из какой функции вызывается и прочее, но вопрос не в этом. ACDC ругается на недопустимое имя секции в строке section_name - cat_normal отпадает. Пробовал подобрать другое имя - то же самое. Не подскажет кто, какое имя секции нужно писать? Или где посмотреть эти самые классы или как их там, чтобы не тыкаться подбором, а найти нужное? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 22 Декабря 2013 @Korpus, Насчет странных id'ов и прочего - таки как раз и скопирована секция обычной зверюги. "level_vertex_id = 1152766" - тоже ничего странного, локация добавлена билдовская, а координаты и вертексы вытащить - пара пустяков, тем более что обычные зверюги спавнятся с таким id'ом и вертексом на ура. Кошек уже добавили до меня, и это не чистый ТЧ, а мод на основе ОГСМ и ФАЕ. И те же кошки скриптом спавнятся на ура. Впрочем, решение я уже нашел, спасибо за ответ. , Ага, спасибо, буду иметь в виду. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 2 Января 2014 mil_freedom = {-aes_arrive_to} В alife_l07_military.ltx прогони весь файл на {-aes_arrive_to} и везде его убери, после знака равентсва напиши true, и будет тебе счастье. Все сталкеры, у кого в логике был этот поршень, останутся на своих местах. Это база Свободы и ребята с барьера. А не подскажет кто, где находятся иконки частей зверюг? Все перерыл и не нашел. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 2 Января 2014 @SneakyFoxes, в этом файле описание самих запчастей. Где именно находится та строка, которая отвечает за вывод конкретной иконки? Поясню: добавляю хвост кошки. Всю секцию хвоста (как раз из того файла) скопировал к себе, модель добавил. Хвост спавнится, но в инвентори вместо хвоста - какая-то мура. Описание присутствует. Я тут нашел файл ui_icon_equipment.dds, там части нарисованы, но в НС этот файл другой, там больше иконок. И где ссылка на конкретную иконку? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 2 Января 2014 @SneakyFoxes, это я уже понял. Но в моем ui_icon_equipment этих иконок нет. И как их добавить из НС - я не знаю. Я правильно понимаю, что иконки частей монстров автоматически берутся из ui_icon_equipment? И из другого файла игра их не увидит? И посоветуйте урок, как дорисовать/перенести иконку из другого файла в свой. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 2 Января 2014 , если рисовать - то да. А скопировать иконку из другого файла и вставить в свой - Stalker Icon Editor и вперед. И все так просто оказалось. Спасибо всем за ответы. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 3 Января 2014 (изменено) Пытаюсь поставить метку на перса, почему-то не работает. level.map_add_object_spot(54512, "blue_location", "Скупой") Мож чего не так делаю?Может. Первый аргумент в функции это у тебя что?ColR_iT Изменено 3 Января 2014 пользователем ColR_iT Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение