_Призрак_ 11 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 Куфзук Лучше всего эти функции повесить на дроп, юзание и на загрузку игры Freedom Ссылка на комментарий
ColR_iT 171 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 (изменено) _Призрак_, так я что, я ничего! Просто на сколько я понял TRAMP14 он хочет выводить колличество имеющихся аптечек в инвенторе на худ. Если функцию повесить на дроп, юзание и на загрузку игрыинформация порой будет выводиться ложная. Хотя лично Я, обыграл бы этот момет твоим способом. TRAMP14, в инструкции вывода часов на худ, присутствует вот такая строка: msg = string.format(" %02d:%02d\n", time_h, time_m) Вместо того, что в скобках напиши переменную number_of_kits. Т.е. функция должна выглядеть function show_time() local hud = get_hud() local cs = hud:GetCustomStatic("hud_show_time") if cs == nil then hud:AddCustomStatic("hud_time_static", true) hud:AddCustomStatic("hud_show_time", true) cs = hud:GetCustomStatic("hud_show_time") end local number_of_kits = all_kits (db.actor) msg = string.format(number_of_kits) if cs ~= nil then cs:wnd():SetText(msg) end end Нужно передать в эту функцию number_of_kits, а не просто прописать!!! Если ошибся, пусть меня поправят! Изменено 28 Декабря 2010 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 (изменено) Охохо чем больше я занимаюсь скриптоучением тем больше мне хочет плюнуть и стать конфигером. Куфзук так должно получится? local function counting_kits(item) if item:name() == "medkit" or item:name() == "medkit_army" or item:name() == "medkit_scientic" then number_of_kits = number_of_kits + 1 end end local number_of_kits = 0 function all_kits (actor, npc) actor:inventory_for_each(counting_kits) return number_of_kits end msg = string.format(number_of_kits) end Изменено 28 Декабря 2010 пользователем TRAMP14 Ссылка на комментарий
ColR_iT 171 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 (изменено) TRAMP14, нет! В одном файле размести три функции: counting_kits, all_kits и show_time. В апдейте нужно вызывать show_time, как в инструкции "выводим часы на худ". Только имеет смысл переименовать функцию show_time, например в show_all_kits. ВАЖНО! Я не проверял работоспособность! Приду домой проверю и отпишусь в ЛС. ОЧЕНЬ ВАЖНО! Не стоит останавливаться на достигнутом! TRAMP14, выучить луа ты сможешь! Но важно панять и функции которые использует STALKER, начни отсюда: Справочник по функциям и классам Изменено 28 Декабря 2010 пользователем Куфзук Ссылка на комментарий
_Призрак_ 11 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 ZeeK Был такой вылет когда не правильно сделал сам квест Куфзук Это когда она будет выводится неправильно? Что можно сделать с аптечкой - использовать и выкинуть. Повесить на колбеки эти нужно эту функуцию. Ну еще нужно чтобы скрипт обрабатывал инвентарь при создании игры. Когда же будет показываться неправильное кол-во аптечек Freedom Ссылка на комментарий
Министр 4 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 ZeeK, скорее всего у квеста заголовок не прописан, поэтому и вылет по нилу при конкатенации. _Призрак_, а еще аптечку могу передать НПСы, можно взять ее из ящика и много еще того, что не коллбек на дроп, не на юзание не могут отследить. Так что лучше всего вешать эту ф-ию на апдейт, не очень-то и сильно это нагрузит систему (посмотри на оригинальный актор_апдейт, там на него и не такое повешено). Ссылка на комментарий
TRAMP14 1 Опубликовано 28 Декабря 2010 Поделиться Опубликовано 28 Декабря 2010 Помогите пожалуйста делал новую фичу по этому уроку но при использовании предмета звука нет. Почему? Помогите разобратся. Есть подозрение что неправильно прописал звуки, напишите пожалуйста пример Ссылка на комментарий
znachara 0 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 такая проблема... полностью переделал окно инвентаря. всё работает нормально, только мини-окно с информацией об отдельном предмете (по клику на него) не отображается вообще. в чём может быть проблема? Ссылка на комментарий
ColR_iT 171 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 (изменено) Всем доброго утра! И разумеется с наступающим Новым Годом! В начале страницы шла речь о том, чтобы вывести на худ колличество аптечек. Так вот собственно эта реализация: Скрипт подсчета - мой, а вот вывод пришлось позаимствовать у steelrat, Выводим часы на HUD Итак! В папке scripts создаем файл ваше_название_скрипта.script и вписываем в него следующие строки: local function counting_kits(item) local section = item:section() if section == "medkit" or section == "medkit_army" or section == "medkit_scientic" then number_of_kits = number_of_kits + 1 end end function all_kits () number_of_kits = 0 db.actor:inventory_for_each(counting_kits) return number_of_kits end function output_kits_to_hud() local hud = get_hud() local cs = hud:GetCustomStatic("hud_show_time") if cs == nil then hud:AddCustomStatic("hud_time_static", true) hud:AddCustomStatic("hud_show_time", true) cs = hud:GetCustomStatic("hud_show_time") end msg = string.format("%s", all_kits()) if cs ~= nil then cs:wnd():SetText(msg) end end После, в файл ui_custom_msgs.xml в папке config/ui/ дописываем следующее: <hud_time_static x="852" y="17" width="156" height="52"> <text complex_mode="0" x="65" y="0" font="letterica16" r="255" g="255" b="255" a="130">st_pda_total</text> <texture>ui_hud_frame_clock</texture> </hud_time_static> <hud_show_time x="862" y="38" width="156" height="52"> <text x="0" y="0" font="graffiti19" r="255" g="255" b="255" a="140" align="c"/> </hud_show_time> Затем в файл bind_stalker.script дописываем после function actor_binder:update(delta) object_binder.update(self, delta) строку ваше_название_скрипта.output_kits_to_hud() ЗАМЕЧАНИЕ! Принцип вывода на худ не мой, а steelrata. Описание алгоритма есть парой постами выше. Выводить на худ можно количество чего угодно лежащего в инвенторе. В строке if section == "medkit" or section == "medkit_army" or section == "medkit_scientic" then вместо аптечек вписываем нужную секцию. Выражаю свою благодарнось malandrinus, за помощь в отладке скрипта. Изменено 29 Декабря 2010 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 (изменено) Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) Блин опять етото файл, третий вылет по скрипту и всё время етот файл. как править? Изменено 29 Декабря 2010 пользователем TRAMP14 Ссылка на комментарий
ColR_iT 171 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 TRAMP14, почитай тему. Вылет происходит из-за не правильного! написании логики. Перепроверь. Ссылка на комментарий
ZeeK 57 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 как написать скрипт alife():create, но что бы было несколько вариантов координат для одного спавна, что бы разнообразие было? Не соответствует. N6260 Ссылка на комментарий
Министр 4 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 Куфзук, какой еще логики? В логе вообще про отсутствие значения сказано. ZeeK, сделай таблицу со списком координат и рандомно выбирай оттуда значения. TRAMP14, покажи свой код (под спойлером конечно). Ссылка на комментарий
znachara 0 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 (изменено) такой довольно странный баг, всё проверил на сто раз - ошибки быть не может. однако игра вылетает. лог такой: [quote] Expression : fatal error Function : CRender::texture_load File : E:\stalker\sources\trunk\xr_3da\xrRender\Texture.cpp Line : 295 Description : <no expression> Arguments : Can't find texture 'inv_fon' [/quote] а теперь смотрите. игра использует текстуру "inv_fon". она прописана вот так: <ui_texture> <file_name>ui\ui_inventory_s</file_name> <texture id="inv_fon" x="0" y="0" width="895" height="1024" /> </ui_texture> в файле "iba.xml"в папке config\ui, сам файл прописан в system.ltx в строке [texture_desc] files файл "ui_inventory_s" существует и лежит в нужной папке. он также нужного формата. из-за чего вылет-то?!! Изменено 29 Декабря 2010 пользователем Министр Ссылка на комментарий
ColR_iT 171 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 (изменено) ZeeK, вот как это сделано у АМК: local points={ { position={x=-24.2727108001709,y=-12.1660995483398,z=-100.200202941895}, gv=0, lv=73868 }, { position={x=159.56,y=4.72,z=88.60}, gv=155, lv=463808 }, { position={x=-4.11,y=2.90,z=108.09}, gv=85, lv=272619 } } function spawn_star(actor,npc,p1,p2) local a = points[math.random(table.getn(points))] local obj = alife():create("amk_af_night_star", vector():set(a.position.x,a.position.y,a.position.z), a.lv, a.gv) if (obj) then if is_debug==true then add_spot_on_map(obj.id, "red_location", "art") end end local m_where if news_main then m_where = news_main.get_point_description("l01_escape", vector():set(a.position.x,a.position.y,a.position.z)) else m_where = "Здесь, на Кордоне" end db.actor:give_talk_message(m_where.." скорее всего поискать стоит. Где-то там он, точно говорю.", "ui\\ui_iconstotal", Frect():set(0,0,10,10), "simple_answer_item") end Добавлено через 48 мин.: znachara, что ты делаешь? Ни в одном из оригиналов STALKERa, ни в одном модов который у меня имеется, текстура inv_fon, не используется! :ny_huh: Добавлено через 59 мин.: TRAMP14, у меня код работает, могу видюшку снять. Делал на полностью пустых локациях от KostyaV. Изменено 29 Декабря 2010 пользователем Куфзук Ссылка на комментарий
TRAMP14 1 Опубликовано 29 Декабря 2010 Поделиться Опубликовано 29 Декабря 2010 Министр вот всё как сказал Куфзук local function counting_kits(item) local section = item:section() if section == "medkit" or section == "medkit_army" or section == "medkit_scientic" then number_of_kits = number_of_kits + 1 end end function all_kits () number_of_kits = 0 db.actor:inventory_for_each(counting_kits) return number_of_kits end function output_kits_to_hud() local hud = get_hud() local cs = hud:GetCustomStatic("hud_show_time") if cs == nil then hud:AddCustomStatic("hud_time_static", true) hud:AddCustomStatic("hud_show_time", true) cs = hud:GetCustomStatic("hud_show_time") end msg = string.format("%s", all_kits()) if cs ~= nil then cs:wnd():SetText(msg) end end Добавлено через 3 мин.: znachara идиотский конечно вопрос но не забыл текстуру в ui положить? Ссылка на комментарий
Гость max_max_08 Опубликовано 30 Декабря 2010 Поделиться Опубликовано 30 Декабря 2010 (изменено) TRAMP14, вот минимод выводящий количество аптечек, водки, бинтов и антирада на худ + кейлоджер. Скачать. Изменено 30 Декабря 2010 пользователем max_max_08 Ссылка на комментарий
@"StreloK" 2 Опубликовано 30 Декабря 2010 Поделиться Опубликовано 30 Декабря 2010 (изменено) У меня вот такой вопрос-сделал такую догику- [smart_terrains] none = true [dont_spawn_loot] [logic] active = remark combat_ignore = combat_ignore [remark] anim = hello_wpn target = actor combat_ignore_cond = always meet = meet [meet] meet_state = 10|guard@wait meet_state_wpn = 10|backoff2@threat_back victim = 10|actor victim_wpn = 10|actor use = true use_wpn = false syndata = backoff2@threat_back [combat_ignore] combat_ignore_cond = always НПСи должны стоять на месте и впринципе стоят, но если они куда-нибудь отходят-собак пострелять или труп обобрать, то остаются стоять там и на своё место возвращаться не хотят. Можно это как-нибудь исправить? П.С. - схемы walker или camper не подходят т.к. all.spawn править нельзя - делаю небольшое дополнение к народной солянке и со all.spawn не хочу связываться, да и руки кривоваты. gruber спасибо помогло. А можно всё-таки сделать что-бы они возвращались на место спавна? Изменено 30 Декабря 2010 пользователем @"StreloK" Prefiero morir de pie, que vivir siempre arrodillado. Ссылка на комментарий
gruber 2 481 Опубликовано 30 Декабря 2010 Поделиться Опубликовано 30 Декабря 2010 @"StreloK", Никак в ремарке у нпс нет путей,они стоят там где заспавнились.а чтоб не ходили ставь полный игнор(он у тебя кстати стоит,но неправильно-строку после active перемести на место той что у тебя в ремарке)чтоб собачек не стреляли.Но такая логика подходит для группировки нейтральной ко всем иначе замочат и сожрут твоего НПС Ссылка на комментарий
_Призрак_ 11 Опубликовано 31 Декабря 2010 Поделиться Опубликовано 31 Декабря 2010 Меня вот интересует вопрос - как сделать так чтобы НПС после нападения на него, возвращался на точку и ему можно было прописать анимацию стаяния и target? Что то типа ремарка только с возможностью возвращаться на точку Freedom Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти