Перейти к контенту

Cagorich

Пользователи
  • Число публикаций

    10
  • Регистрация

  • Последнее посещение

  • AMKoin

    0 [Подарить AMKoin]

Баланс оценок

0

О Cagorich

  • День рождения 31.03.1997

Информация

  • Реальное имя
    Юрий

Недавние посетители профиля

532 просмотра профиля
  1. Cagorich

    Скриптование

    Попробовал чистый AMK. function out_desyat_hvostov_to_wolf(first_speaker, second_speaker) local actor, trader if db.actor and db.actor:id() == first_speaker:id() then actor = first_speaker trader = second_speaker else actor = second_speaker trader = first_speaker end flamethrower.relocate_n_items_section(trader, "mutant_dog_tail", "out", 10) end В итоге вылет: Скрытый текст FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ... Тень Чернобыля\gamedata\scripts\flamethrower.script:7: attempt to call method 'id' (a nil value) stack trace:
  2. Cagorich

    Скриптование

    Пробовал но все сводиться к: Скрытый текст FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...r. Тень Чернобыля\gamedata\scripts\new_dialog.script:323: attempt to call method 'id' (a nil value) stack trace: Бесполезно.
  3. Cagorich

    Скриптование

    Дополнение к посту выше. Ради теста взял скрипты из Тайных Троп 2. amk.script, flamethrower.script, new_dialog.script предметы передаются, НО! До бесконечности, даже если закрыть диалог и начать снова то передача несмотря неначто продолжается. Вызвал так: function out_desyat_hvostov_to_wolf() new_dialog.out_item_much("mutant_dog_tail",10) end Много способов испытал, либо вылет, либо не работает, либо работает но передает лишь 1 предмет, либо передает вовсе до бесконечности. Тоже самое в обратном порядке.
  4. Cagorich

    Скриптование

    Скрытый текст -- Проверка на наличие нескольких и разных предметов в рюкзаке ГГ. -- 1. local items_count=0 local itemin=nil function item_much(itm,need_namber) local actor=db.actor items_count=0 itemin=itm actor:iterate_inventory(cheking_item,actor) if items_count>=need_namber then return true else return false end end function cheking_item(actor,item) local items=item:section() if items==itemin then items_count=items_count+1 end end function create_items(npc,section,number) for i=1,number do alife():create(section, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end end -- Отдача в нужном количестве нужные предметы. -- 2. local reloc_params={} local stalk function out_item_much(itm_section,need_number) reloc_params.itm_section=itm_section reloc_params.itm_cnt=need_number reloc_params.itm_cnt_found=0 db.actor:iterate_inventory(checkout_items_count,db.actor) reloc_params.itm_cnt_found=0 if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then db.actor:iterate_inventory(out_items_count,db.actor) end news_manager.relocate_item(db.actor, "out", itm_section) reloc_params={} end function checkout_items_count(actor,item) if item.section and item:section()==reloc_params.itm_section then reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1 end end function out_items_count(actor,item) if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then soc_script_help.remove_item_from_inventory(item, actor) reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1 end end -- Удаляем предмет из инвентаря по имени. function remove_item_from_inventory_by_name(remove_item_name,npc) return remove_item_from_inventory(npc:object(remove_item_name),npc) end -- Удаляем предмет из инвентаря. function remove_item_from_inventory(remove_item,npc) if npc==nil then npc=db.actor end if remove_item~=nil then -- npc:mark_item_dropped(remove_item) alife():release(alife():object(remove_item:id()), true) return true end return false end Вызов: -- Отдача. function out_desyat_hvostov_to_wolf(second_speaker, first_speaker) soc_script_help.out_item_much("mutant_dog_tail",10) end Не работают функции на передачу нескольких предметов, вместо 10 передает лишь 1 предмет. Платформа: ТЧ. В чем может быть ошибка?
  5. Всем привет. ТЧ. Как сделать так что бы ящики разбивались намного дольше? Что именно нужно править?
  6. И вправду, проблема оказалась в Милке. Прогнал через обычный конвертер, затем в SDK и все работает.
  7. В object я перегонял с помощью MilkShape 3D. Затем в SDK 0.4. Хм.. Попробую конвертером. С моделями НПС проблем никаких не было. Кстати, не только с артефактами, с любыми предметами из ЗП и ЧН.
  8. Доброго времени суток. Столкнулся с непонятной для меня проблемой, решил перенести артефакты из ЗП в ТЧ. Перенес модели все прекрасно работают, но есть одна проблема. Если взять артефакт, а затем выбросить его то происходить вылет такого вида: Скрытый текст * MEMORY USAGE: 281047 K stack trace: 0023:008B000D xrCore.dll 0023:0077CDD8 xrCore.dll, xrDebug::fail() 0023:03A892EB xrGame.dll И это не только с артефактами, любыми простыми предметами из ЗП. Артефакты прогонял через SDK 0.4. На отсутствие шейдеров или еще чего то лог не жаловался. Подскажите может кто-то по курсу где я допустил ошибку?
  9. Cagorich

    Ищу файлы / моды / аддоны

    Всем привет, ищу карту локации "Предбанник" от АМК из любого мода.
  10. - "Пойми, на небесах только и говорят, что о море. Как оно бесконечно прекрасно… О закате, который они видели… О том, как солнце, погружаясь в волны, стало алым как кровь. И почувствовали, что море впитало энергию светила в себя, и солнце было укрощено, и огонь уже догорал в глубине.. А ты? Что ты им скажешь? Ведь ты ни разу не был на море. Там, наверху, окрестят тебя лохом."

    - "Что ж теперь поделаешь?" (с) Достучаться до Небес.

  11. Cagorich

    Скриптование

    Доброго времени суток. Недавно заинтересовался созданием сюжета на платформе Теней Чернобыля и обнаружил для себя одну проблему, проблема в том что я не нашел в оригинале функцию на передачу\взятие одинаковых предметов в разном количестве. После долгого поиска на форумах нашел такую функцию: Скрытый текст -- Проверка наличия нескольких и разных предметов у ГГ. local items_count=0 local itemin=nil function item_much(itm,need_namber) local actor=db.actor items_count=0 itemin=itm actor:iterate_inventory(cheking_item,actor) if items_count>=need_namber then return true else return false end end function cheking_item(actor,item) local items=item:section() if items==itemin then items_count=items_count+1 end end function create_items(npc,section,number) for i=1,number do alife():create(section, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end end -- Отдача определенных предметов в нужном количестве. local reloc_params={} local stalk function out_item_much(itm_section,need_number) reloc_params.itm_section=itm_section reloc_params.itm_cnt=need_number reloc_params.itm_cnt_found=0 db.actor:iterate_inventory(checkout_items_count,db.actor) reloc_params.itm_cnt_found=0 if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then db.actor:iterate_inventory(out_items_count,db.actor) end news_manager.relocate_item(db.actor, "out", itm_section) reloc_params={} end function checkout_items_count(actor,item) if item.section and item:section()==reloc_params.itm_section then reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1 end end function out_items_count(actor,item) if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then ваш_скрипт.remove_item_from_inventory(item, actor) reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1 end end И оформляется это к примеру так: -- Есть ли два "ammo_gauss" - проверка. function have_ammo_gauss() return ваше_название_скрипта.item_much("ammo_gauss",2) ~= false end -- Проверка на количество разных предметов. return ваше_название_скрипта.item_much("conserva",5) ~= false and ваше_название_скрипта.item_much("kolbasa",5) ~= false and ваше_название_скрипта.item_much("bread",5) ~= false end -- Отдача "этих" предметов без появления их в торговле НПС - тупо отбирание предметов у ГГ. function ваша_функция(second_speaker, first_speaker) ваше_название_скрипта.out_item_much("conserva",5) ваше_название_скрипта.out_item_much("kolbasa",5) ваше_название_скрипта.out_item_much("bread",5) end Вроде бы все хорошо и понятно, но я не понял строчку в функции под спойлером: ваш_скрипт.remove_item_from_inventory(item, actor) Что имелось ввиду? С какого скрипта должно вызываться remove_item_from_inventory? Там откуда я взял "это" нет никаких объяснений, а форум мертв. И как сделать так что бы отдача определенных предметов в разном количестве была "наоборот" от НПС к ГГ? Или можно сделать все проще? В скриптах я не силен, я только недавно начал ковыряться в файлах игры. Мне посоветовали обратиться с данным вопросом на этот форум.

AMK-Team.ru

×
×
  • Создать...