-
Число публикаций
8 -
Регистрация
-
Последнее посещение
-
AMKoin
171 [Подарить AMKoin]
Баланс оценок
2Недавние посетители профиля
Блок недавних посетителей отключен и не доступен другим пользователям для просмотра.
-
Реализованная Купером правка на отображение содержимого тайника при снятии с трупа гугуол диск
-
@Купер это не оригинал NS, это оригинал ОП 2.2. вот отсюда по заголовку "Содержимое тайника в метке на карте" . В оригинале ОП такого нет, но это было абсолютно работоспособно и удобно (по крайней мере мне) поскольку NS сейчас топ -было бы очень удобно иметь такую правку именно на NS а не на ОП. Спасибо попроюуб сегодня, отпишусь что как
-
@Купер , спасибо это сдвинуло с места - сумел нормально загрузиться и даже играть до выдачи тайника, при выдаче вылет. Насколько понимаю по логу ругается на это [17.06.23 09:28:22.119] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR: ...l.k.e.r.ns.ogsr\gamedata\scripts\treasure_manager.script:519: attempt to index global 'has_level' (a nil value) stack traceback: [C]: in function '__index' ...l.k.e.r.ns.ogsr\gamedata\scripts\treasure_manager.script:519: in function 'give_treasure' А так, это часть кода из правок к файлу treasure из мода ОП 2.2., котороая позволяет смотреть содержимое тайника на карте - пытаюсь адаптировать под NS OGSR 2023 Compare выдает различия между оригинальным кодом treasure.script из мода ОП 2.2. и поправленным для отображения содержимого тайников на карте в 12 строчек: Оригинал: --' Выдача тайника function CTreasure:give(treasure_id,npc) if treasure_id==nil then abort("! ERROR invalid treasure_id from queue!!!") end local treasure_info = self.treasure_info[treasure_id] local obj = story_object(treasure_info.target) if obj ~= nil then if obj:clsid() ~= clsid.inventory_box then abort("Story object [%s] is not an inventory box", treasure_info.target) end news_manager.send_treasure(treasure_info.name, object_level_name(obj)) --' Пометить на карте local text = "%c[255,238,155,23]"..translate(treasure_info.name).."\\n".."%c[default]"..translate(utils.cfg_get_string(self.ini, treasure_id, "description", nil, true, "")) map_spot(obj.id, "treasure", text) -- если тайник не именной, то заменим содержимое if treasure_info.named == false then treasure_info.items = self:give_item_list(npc) else if not self.treasure_info[treasure_id].active then treasure_info.items = parse_spawns(utils.cfg_get_string(self.ini, treasure_id, "items", nil, true, "")) else treasure_info.items={} end end --' Сгенерить вещи for __,item_info in pairs(treasure_info.items) do for i=1,item_info.prob do create(item_info.section, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id) end end Поправленная версия: --' Выдача тайника function CTreasure:give(treasure_id,npc) if treasure_id==nil then abort("! ERROR invalid treasure_id from queue!!!") end local treasure_info = self.treasure_info[treasure_id] local obj = story_object(treasure_info.target) if obj ~= nil then if obj:clsid() ~= clsid.inventory_box then abort("Story object [%s] is not an inventory box", treasure_info.target) end news_manager.send_treasure(treasure_info.name, object_level_name(obj)) -- если тайник не именной, то заменим содержимое if treasure_info.named == false then treasure_info.items = self:give_item_list(npc) else if not self.treasure_info[treasure_id].active then treasure_info.items = parse_spawns(utils.cfg_get_string(self.ini, treasure_id, "items", nil, true, "")) else treasure_info.items={} end end local txt_items = "%c[255,238,155,23] " if has_map_spot(obj.id, "treasure") then for i = 1, 65534 do local item = alife():object(i) if item and item.parent_id == obj.id then txt_items = txt_items.."\\n • "..translate(system_ini():r_string(item:section_name(), "inv_name")) end end end --' Сгенерить вещи for __,item_info in pairs(treasure_info.items) do for i=1,item_info.prob do create(item_info.section, obj.position, obj.m_level_vertex_id, obj.m_game_vertex_id, obj.id) txt_items = txt_items.."\\n • "..translate(system_ini():r_string(item_info.section, "inv_name")) end end --' Пометить на карте local text = "%c[255,238,155,23]"..translate(treasure_info.name).."\\n".."%c[default]"..translate(utils.cfg_get_string(self.ini, treasure_id, "description", nil, true, "")) map_spot(obj.id, "treasure", text.."\\n"..txt_items) вот как можно перенести эту фишку с отображением содержимого тайников на карте в NS OGSR? я попробовал но мне явно не хватает опыта - мой опыт скриптера ограничен OFP, да и то чисто шаблонными вещами - помогите кто может
-
Подскажите пожалуйста - правил treasure_manager - пытался встроить отображение содержимого тайников на метке карты как в ОП 2.2. в частности правил так --' Выдача тайника function CTreasure:give_treasure(k, npc, friend) local v = self.treasure_info[k] local sim = alife() local sobj = sim:story_object(v.target) if sobj then news_manager.send_treasure(v.name) local txt_items = "%c[255,238,155,23] " if has_level.map_add_object_spot_ser(sobj.id, "treasure") then for i = 1, 65534 do local item = alife():object(i) if item and item.parent_id == sobj.id then txt_items = txt_items.."\\n • "..translate(system_ini():r_string(item:section_name(), "inv_name")) end --' Пометить на карте local text = "%c[255,238,155,23]" .. game.translate_string(v.name) .. "\\n" .. "%c[default]" .. game.translate_string(v.description) level.map_add_object_spot_ser(sobj.id, "treasure", text.."\\n"..txt_items) не работат, что я накорявил нетак?
-
Это не совсем то что хотел, там надо подойти к тайнику, а я хочу видеть содержимое тайника на карте т.е. получив наводку на тайник на агро не бежать проверять его на кордон, а глянуть по карте - есть там чего стоящего По такой логике и наводка на тайник в КПК его должна отсутствовать - он ведь помнил где что заныкал, правда? Игровая условность дает возможность снимать наводки на тайники, так почему же в них не может лежать опись что там лежит? Если эта игровая условность объяснена применением маячков GPS которые выводят инфу на КПК владельца - тем более логично что есть список что там лежит.
-
Хочется иметь возможность посмотреть что содержит тайник только что снятый с трупа сталкера. В каком то моде (может SGM) в ПДА на карте, при наведении на иконку тайника, показывалось его актуальное содержимое. Сталкер, с которого "сняли" тайник ведь знал что именно он припрятал. - Запарило пробегать 2 локи за очередным грави.
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ