Stalk15 27 Опубликовано 12 Июня 2010 (изменено) Всем здорово...Ну, у меня вопрос: <info_portion id="ui_pda_jobs_hide"> <disable>ui_pda_jobs</disable> </info_portion> Что означают зеленые строки и для чего они? <info_portion id="global_dialogs"> <dialog>actor_break_dialog</dialog> </info_portion> Что за диалог в оранжевой строке?Это если получить инфопоршень и диалог как-то появится или что? SanekKZN Понятно, спасибо за полное пояснение. Изменено 12 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 13 Июня 2010 (изменено) shooting unicorn Жми СЮДА.Там расписано, как спавнить переходы. Или через all.spawn можно заспавнить(нужна новая игра): [919] ; cse_abstract properties section_name = level_changer name = exit_to_lab_x14 position = 142.776275634766,0.65879100561142,348.384643554688 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 231 distance = 0 level_vertex_id = 447889 object_flags = 0xffffff3e story_id = 6500 ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 2.22939944267273,0,0 shape0:axis_y = 0,4.83859968185425,0 shape0:axis_z = 0,0,2.22939944267273 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 ; cse_alife_level_changer properties dest_game_vertex_id = 2803 dest_level_vertex_id = 1782 dest_position = -1.81663203239441,-34.5705871582031,-8.4624662399292 dest_direction = 0,0,0 dest_level_name = lab_x14 dest_graph_point = start_actor_01 Поменяй на свои координаты и все. --------------------------------------------------------------------------------------------------------------------------------- У меня вопрос: Недавно у меня произошел такой вылет: FATAL ERROR [error]Expression : fatal error [error]Function : out_of_memory_handler [error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp [error]Line : 336 [error]Description : <no expression> [error]Arguments : Out of memory. Memory request: 58611 K По логу видно, что запрос памяти большой...С чем это может быть связано, вредно ли это для машины? Сообщение от модератора n6260 http://www.amk-team.ru/forum/index.php?showtopic=9357 Изменено 14 Июня 2010 пользователем n6260 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 16 Июня 2010 (изменено) Ни кто не знает функцию, которая восстанавливала жизни/оживляла бы мертвого НПС'а.?Id этого НПС'а известен.И вообще возможно ли такое? Изменено 16 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 16 Июня 2010 (изменено) Не подскажите функцию, при вызове которой, Бандиты становились нейтралами по отношению к ГГ? Jurok Так вылетает. Изменено 17 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 21 Июня 2010 (изменено) Вообщем я заспавнил метку в ПДА такой функцией: local ObjId=0 function pda_killer_spawn() local obj= alife():create("pda_merc_killer_glav",vector():set(-223.700,-7.678,-129.688),17000,281) local text = "Типа текст" level.map_add_object_spot_ser(obj.id, "blue_location", text) ObjId=obj.id end Потом пытался удалить эту метку такой функцией: function delete_spot(ObId) if level.map_has_object_spot(ObId,"blue_location") then level.map_remove_object_spot(ObId,"blue_location") end end игра не вылетала, но и метка не удалялась...Не подскажите, как эту метку можно удалить? Изменено 21 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 21 Июня 2010 (изменено) меченый(стрелок) Можно по подробнее... То есть удалять метку так?: function delete_spot(ObId) level.map_remove_object_spot(ObId,"blue_location") end ------------------------------------------------------------------------------------ Так тоже не удаляется... ------------------------------------------------------------------------------------ меченый(стрелок) Не совсем понял, что за описание и параметры... Изменено 21 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 21 Июня 2010 (изменено) Я метку без присвоения id'а спавнил, а вот убрать не получается. Real Wolf Я в скриптах не очень, а функцию удаления где-то нарыл, но не рабочую.Других больнше не нашел. Изменено 21 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 22 Июня 2010 Как сделать так, чтоб когда подходишь к НПС в упор(или на расстоянии, когда можно завести разговор с НПС), диалог появлялся не при нажатии на (F), а чтоб сам появлялся.(Образно говоря: НПС сам жмет на (F), чтоб говорить )? ...Раньше юзал логику, но потом понял, что это скрипт нужен(наверно)...Так вот не подскажите, как описанное мною реализовать? Сообщение от модератора n6260 А зачем? В бою, будешь разговаривать со всеми, кто подойдет близко? Добавлено через 132 мин.: n6260 Ну-у...Нужно просто такое сделать ...Не всем НПС, а одному какому-нибудь..Ну так что, знает кто-нибудь, как такое сделать? Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 22 Июня 2010 Ну так я и юзал и ЧН и ЗП - ни чего не нашел... Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 22 Июня 2010 (изменено) malandrinus Так, уже что-то есть, спасибо .Можно поподробнее.. Как будет выглядеть функция полностью, вот так правильно?: function function() db.actor:run_talk_dialog(npc) end А как ее использовать, на апдейт ставить? Изменено 22 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 23 Июня 2010 malandrinus Я не совсем понял, как эту функцию вызывать.Пробовал засунуть в actor_binder:update(delta) - вылетает при загрузке.Вызывал таймер и стоял рядом с НПС - функция вызывалась, но диалог сам не появлялся(вылета не было).Вызывал эту функцию: function function() db.actor:run_talk_dialog(npc) end Почему не срабатывает - не знаю .Как ее правильно вызывать то? Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 23 Июня 2010 (изменено) malandrinus В скриптах мало, что понимаю - как будет выглядеть функция в полном виде - с заданным 2 обьектом?Типа такого?: local npc = level.object_by_id( 006 ) --id Волка(Диалог должен появится сам именно с Волком) function function() db.actor:run_talk_dialog(npc) end Я знаю, что я не правильно написал .Помогите правильно сделать? Изменено 23 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 23 Июня 2010 Попробовал такую функцию: function on_talk() local npc = level.object_by_id( 006 ) --id Волка(Диалог должен появится сам именно с Волк db.actor:run_talk_dialog(npc) end Вызвал через таймер, стоял рядом с Волком, но диалог сам все равно не появляется ...Что не так я сделал? Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 23 Июня 2010 (изменено) ФеНиКс, Garry_Galler Теперь заработало. P.S Garry_Galler Я запутался.На СП вы мне говорили, что Sid, например Волка, = 6.Хотя может я и ошибаюсь... верно подмечено - не пошли на пользу все наши уроки товарисчу на СП. :-) Ну почему не пошли, я немного разобрался с клиентскими и северными обьектами и седня впервые сам дописал строку в функцию, правда не в то место, но.. --------------------------------------------------------------------------- ФеНиКс я бы ещё добавил проверку на расстояние вот так:... Да я рестриктором воспользуюсь А строка if npc:position():distance_to(db.actor:position()) < 3 then проверяет дистанцию от всех НПС, я правильно понял? Изменено 23 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 24 Июня 2010 function give_sidor_2_bumazhki_sidora(first_speaker, second_speaker) for i=1,2 do dialogs.relocate_item_section(second_speaker, "2_bumazhki_sidora", "out") end end Если я отдам "2_bumazhki_sidora" Волку, то функция нормально сработает, а если отдам Сидрычу - получаю вылет с логом: FATAL ERROR [error]Expression : e_entity->ID_Parent == id_parent [error]Function : xrServer::Process_event_reject [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp [error]Line : 24 [error]Description : 2_bumazhki_sidora27905 [error]Arguments : single_player .Это как понимать?Типа Сидрыч особенный, ему дукументы противопоказано в руки брать Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 24 Июня 2010 Я вот хотел заспавнить предмет НПС в инвентарь(Сид и ид НПС не известен), так вот подскажите, что там нужно сделать?Преребирать айди и получать ид НПС:local obj_id = obj.id или как? Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 24 Июня 2010 malandrinus Ну-у...Его секция известна и профиль... Вот, что у меня пока что имеется: Основная функция erlik'а: local count = 0 function uni_spawn_mnogo_itemsov(tab_items,tab_where) local pos, lvid, gvid, id for k, v in pairs(tab_items) do if type(tab_where)=='table' then for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v,vector():set(tab_where['x'], tab_where['y'],tab_where['z']), tab_where['lv'],tab_where['gv']) end end elseif type(tab_where)=='string' then for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end elseif type(tab_where)=='number' then local obj = level_object_by_sid(tab_where) if obj ~= nil then id = obj:id() pos = obj:position() lvid = obj:level_vertex_id() gvid = obj:game_vertex_id() elseif obj == nil then obj = alife():story_object(tab_where) id = obj.id pos = obj.position lvid = obj.m_level_vertex_id gvid = obj.m_game_vertex_id for k, v in pairs(tab_items[k]) do count = k for i=1, count do alife():create(v, pos, lvid, gvid, id) end end end end end end И "вызывная" есть(только работает, когда Id определен): function spawn_pda_in_killer() local tab_items ={{[1]="PDA"} local tab_where = 006 this.uni_spawn_mnogo_itemsov(tab_items,tab_where) end Нужно преобразовать 2 функцию, чтоб спавнила "Без Id'ному НПС", я подумал, но ни чего толкового не пришло в голову...Зная, что не смогу, все равно попробовал.:-).Вот, что получилось(не полностью - как дальше - не знаю): function spawn_pda_in_killer() for a=1,65534 do --наверно надо добавить Перебор айди local obj = alife():object(a) if obj and obj:section_name() == "Секция нужного НПС" then local tab_items ={{[1]="PDA"} local tab_where = 006 this.uni_spawn_mnogo_itemsov(tab_items,tab_where) end Незнаю куда деть local tab_where = 006 - может просто стереть и аргумент tab_wherе убрать...Да и ваще, в правильную "сторону" я копаю... Дальще не знаю, как делать.Знаю, что написал полную лажу, но старался ...Не подскажете, как дельше правильно сделать? Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 25 Июня 2010 (изменено) Как можно НПС'у поменять его группировку.Вот например, поговорил с Волком, вызвал функцию и Волк стал Бандитом.Можно так сделать? Изменено 25 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 25 Июня 2010 (изменено) ФеНиКс Спасибо. А не подскажите еще кто-нибудь функцию, которая удалила бы, например, Волка? Изменено 25 Июня 2010 пользователем Stalk15 Поделиться этим сообщением Ссылка на сообщение
Stalk15 27 Опубликовано 26 Июня 2010 1 функция(и): local ObjId=0 function spawn_pm_for_kvest_zadumka_mercs() local obj = alife():create("wpn_pm",vector():set(-233.41,-32.22,-337.19),21722,36) --pda_merc_killer_glav local text = "Место последнего прибывания Наемников" level.map_add_object_spot_ser(obj.id, "blue_location", text) ObjId = obj.id end function delete_spot_kvest_zadumka_mercs_pm() for a = 1,65534 do --Перебор айди local obj = alife():object(a) if obj and obj:section_name() == "wpn_pm" then level.map_remove_object_spot(obj.id,"blue_location") break end end end 2 функция(и): local ObjId=0 function spawn_pm_for_kvest_zadumka_mercs() local obj = alife():create("pda_merc_killer_glav",vector():set(-233.41,-32.22,-337.19),21722,36) --pda_merc_killer_glav local text = "Место последнего прибывания Наемников" level.map_add_object_spot_ser(obj.id, "blue_location", text) ObjId = obj.id end function delete_spot_kvest_zadumka_mercs_pm() for a = 1,65534 do --Перебор айди local obj = alife():object(a) if obj and obj:section_name() == "pda_merc_killer_glav" then level.map_remove_object_spot(obj.id,"blue_location") break end end end В первой функции спавнится метка на ПМ, а потом удаляется. Во второй функции тоже самое, что и первое, только спавнится квестовый предмет pda_merc_killer_glav - из файла qest_items.ltx. Вопрос:Почему метка на ПМ не удаляется - функция не срабатывает(вылета нет), а метка с ПДА (pda_merc_killer_glav) удаляется? Поделиться этим сообщением Ссылка на сообщение