psevdoгринго 6 Опубликовано 10 Декабря 2009 Думаю это будет что-то вроде этого function item(task, objective) if db.actor ~= nil then return db.actor:object("wpn_pm") ~= nil then db.actor:give_info_portion("actor_has_item") end Но тогда возникает вопрос, куда вставить вызов функции?(думаю в диалог не прокатит) P.S. Предыдущий пост отредактировать не смог Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Гм... Вылазит зелёный жучок и ругается вот с таким логом Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:1270: attempt to index local 'obj' (a nil value) Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Можешь поподробнее про он_итем тейк ? Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Опять вылет Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...рипяти\gamedata\scripts\smart_terrain_control.script:65: attempt to index field 'actor' (a nil value) Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Если лог указывает на smart_terrain_control.script это ещё не значит что именно в нем я правил. Просто скрипты связаны между собой и ошибка в одном может привести к эффекту домино Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 (изменено) Так и не пойму в чем проблема Вот как у меня В моем скрипте function actor_has_pda() if db.actor:object(a) ~= nil then if a == "pda_bandit_tech" and not db.actor:has_info("actor_has_pda") then db.actor:give_info_portion("actor_has_pda") end end end pda_bandit_tech-это pda, который я ввёл в игру и с ним проблем не было В bind_stalker.script function actor_binder:update(delta) object_binder.update(self, delta) ................................................. ................................................... new_quests.actor_has_pda end Изменено 10 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Вообщето там написано если у актора есть предмет и нет инфопоршня, то тогда выдать ему этот инфопоршень. это делается для того, чтоб игроку не выдавался несколько раз один и тот же инфопоршень Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Нет. Я их никогда не прописывал и все было нормально Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 10 Декабря 2009 Не помогает. Тут не в этом дело, собака зарыта где-то здесь if db.actor:object(a) ~= nil then Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 11 Декабря 2009 Всем спасибо за помощь Но у меня ещё один вопрос - Нужно сделать непися, враждебного к ГГ, независимо от отношения группировки непися к ГГ. Пробовал сам поковыряться в логике, но не получилось Сообщение от модератора Halford Используй set_relation. Например:function become_friend(first_speaker, second_speaker) first_speaker:set_relation(game_object.friend, second_speaker) end Если нужно сделать врагом - то game_object.enemy, нейтралом - game_object.neutral Помогите! Сделал свой броник, начинаю новую игру с ним и вылет Ну вообщето ты нам написал не лог ошибки. Лог ошибки это всё то что идёт после строки FATAL ERROR. И выложи файлы своего броника. Сообщение от модератора Halford Это вылет. Ток "без лога"... Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 11 Декабря 2009 Используй set_relation. Например: function become_friend(first_speaker, second_speaker) first_speaker:set_relation(game_object.friend, second_speaker) end Если нужно сделать врагом - то game_object.enemy, нейтралом - game_object.neutral Происходит вылет Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....r. - Зов Припяти\gamedata\scripts\new_quests.script:202: attempt to index local 'first_speaker' (a nil value) Вызов функции добавлял в bind_stalker.actor_binder:update(delta) Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 14 Декабря 2009 (изменено) ktytxrf , посмотри в теме "Уроки по модостроению" там было про создание апгрейдов. mrak13 ищи в папке textures/act Опять возник вопрос. Мне раньше никогда не приходилось спавнить что-то в инвентарь NPC. Так что возникли некоторые проблемы. Конечно, можно было просто добавить предмет неписю через его профиль, но тогда надо начинать новую игру. Вот я решил сделать для этого скрипт. Вот такой function spawn_killers_pda() local npc npc = "zat_b103_lost_merc_leader" -------Тесак- наёмник на подстанции-------- alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end Но игра всё время вылетает. пробовал по разному писать функцию но игра ругается что якобы не может вызвать метод position Изменено 14 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 14 Декабря 2009 (изменено) Ну например в alife_zaton.ltx вставляешь вот такую вот хреновину [1866] ; cse_abstract properties section_name = level_changer name = zaton_level_changer_0001 position = 133.4,-7.04,190.17 ;--координаты левл чанджера direction = 0,0,0 cse_abstract__unk1_h16 = 0x1 ; cse_alife_object properties game_vertex_id = 296 distance = 65 level_vertex_id = 1194668 object_flags = 0xffffff3e ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 8.25219917297363,0,0 shape0:axis_y = 0,3.09340000152588,0 shape0:axis_z = 0,0,8.25219917297363 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 ; cse_alife_level_changer properties dest_game_vertex_id = 666 dest_level_vertex_id = 437980 dest_position = 211.057,4.54,-19.411 ;--коордтнаты выхода из левл чанджера dest_direction = 0,0,0 dest_level_name = pripyat dest_graph_point = pripyat_lc_graph_point silent_mode = 1 ; se_level_changer properties Начинаешь новую игру, заходишь на Скадовск и вуаля - ты в Припяти Изменено 14 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 14 Декабря 2009 Блин, вылетает. И при обоих способах один и тот же лог Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : No such operator defined Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 15 Декабря 2009 Сразу не обратил внимание, но в строчке: alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) зачем там npc:id()? Оставь без него: alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id()) Опять вылет. Нет, тут что-то не то Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 15 Декабря 2009 (изменено) ktytxrf Надо менять quest_item = true на false Код function spawn_killers_pda() local id, npc name = "zat_b103_lost_merc_leader" id = name.id npc = level.object_by_id(id) alife():create("killers_pda", npc.position, npc.m_game_vertex_id, npc.m_level_vertex_id, npc.id) end Блин, не спавниться Изменено 15 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 23 Декабря 2009 (изменено) Мужики, вы меня конечно извините... Но у меня опять проблема. Делал переходы между локациями через скрипт, всё было нормально пока не пришлось их отметить в КПК. Пробовал отмечат как в ТЧ local sim = alife() if sim then local obj = sim:story_object(960) if obj then level.map_add_object_spot(obj.id, "level_changer_up", "На Затон") end Пробовал как в ЧН local sim = alife() if sim then local obj = sim:story_object(960) set_lchanger_mapspot(obj, "level_changer_up", "На Затон") end функцию set_lchanger_mapspot ессно взял из ЧН. Ну так вот ни один из этих способов не даёт эффекта, т.е. значок в КПК так и не появляется Пробовал вставлять вот такое в функцию инициализации level_changer'а level.map_add_object_spot(obj.id, "level_changer_up", "На Затон") Тогда всё появляется, но когда переходишь на другую локацию- исчезает В общем помогите чем можете... Ладно, другого выхода как нарисовать нет... Изменено 24 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение
psevdoгринго 6 Опубликовано 29 Декабря 2009 (изменено) кровоSTALKER, вот function actor_have_item(first_speaker, second_speaker) local item_sections = {"your_item"} local needed = 20 --тут пишешь скока предметов local count = 0 local item_section local function calc(temp, item) if item:section() == item_section then count = count + 1 end end for k,v in pairs(item_sections) do item_section = v get_story_object("actor"):iterate_inventory(calc, actor) end return count >= needed end Изменено 29 Декабря 2009 пользователем psevdoгринго Ушёл из модостроения Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951 Поделиться этим сообщением Ссылка на сообщение