Norman Eisenherz 302 Опубликовано 18 Августа 2018 Поделиться Опубликовано 18 Августа 2018 Здрасьте. Пытаюсь добавить подложку к счетчику радиации в контейнере для 8 артов (солянка 2010), чтобы сделать текст заметным на фоне любого арта. Добавил в список новую текстуру (строки, отмеченные знаком "+"), теперь вижу счетчик на подложке, но поверх пустых ячеек – текстуры артов не отображаются. Поменял местами текстуры артов и подложки – вижу исходный вариант с счетчиком поверх артов, но без подложки. Какой должен быть код, чтобы получить порядок вывода "ящик - арт - подложка - счетчик"? [scripts\arc_ui_8container_menu.script] b:InitTexture("ui\\ui_icon_equipment") b:SetOriginalRect(tx,ty,50,50) + b:InitTexture("ui\\ui_dg_arc_back") + b:SetOriginalRect(0,0,50,50) b:SetText(t) b:SetTextColor(255,0,255,255) Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
vampirnik77 121 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 (изменено) Можно ли считать код равносильным? Скрытый текст function get_stat(index) -- index= int return string if(index==0) then return "00:00:00" elseif(index==1) then return tostring(xr_statistic.actor_statistic.surges) elseif(index==2) then return tostring(xr_statistic.actor_statistic.completed_quests) elseif(index==3) then return tostring(xr_statistic.actor_statistic.killed_monsters) elseif(index==4) then return tostring(xr_statistic.actor_statistic.killed_stalkers) elseif(index==5) then return tostring(xr_statistic.actor_statistic.artefacts_founded) elseif(index==6) then return tostring(xr_statistic.actor_statistic.founded_secrets) end end Скрытый текст local IndTbl = {} IndTbl[0] = "00:00:00" IndTbl[1] = "xr_statistic.actor_statistic.surges" IndTbl[2] = "xr_statistic.actor_statistic.completed_quests" IndTbl[3] = "xr_statistic.actor_statistic.killed_monsters" IndTbl[4] = "xr_statistic.actor_statistic.killed_stalkers" IndTbl[5] = "xr_statistic.actor_statistic.artefacts_founded" IndTbl[6] = "xr_statistic.actor_statistic.founded_secrets" function get_stat(index) -- index= int return string if (IndTbl[index]) then return IndTbl[index] end end Изменено 20 Августа 2018 пользователем vampirnik77 Официальная страница проекта Neof-One Crew Ссылка на комментарий
WinCap 314 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 @vampirnik77, Что бы код стал равносильным нужно второй вариант изменить на: Скрытый текст local IndTbl = {} IndTbl[0] = "00:00:00" IndTbl[1] = xr_statistic.actor_statistic.surges IndTbl[2] = xr_statistic.actor_statistic.completed_quests IndTbl[3] = xr_statistic.actor_statistic.killed_monsters IndTbl[4] = xr_statistic.actor_statistic.killed_stalkers IndTbl[5] = xr_statistic.actor_statistic.artefacts_founded IndTbl[6] = xr_statistic.actor_statistic.founded_secrets function get_stat(index) -- index= int return string if IndTbl[index] then return tostring(IndTbl[index]) end end Как мне кажется, второй вариант не только "читабельнее", но и быстрее. 1 1 S.T.A.L.K.E.R. CoP Objects (upd 28.10.24) Ссылка на комментарий
vampirnik77 121 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 @WinCap, Да, первый вариант это от пыс, второй от меня, перелопачиваю чуть по чуть скрипты в рамках Scripting basis. 1 Официальная страница проекта Neof-One Crew Ссылка на комментарий
Graff46 598 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 В луа_хелп метод alive прописан у серверных объетов, в скриптах видел его применение к клиентским объектам, я же использовал этот метод к серверным но иногда получал вылеты с указанием на отсутствие такого метода. Так к каким объектам этот метод применять? Ссылка на комментарий
AndreySol 215 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 28 минут назад, Graff46 сказал: ... в скриптах видел его применение к клиентским объектам... Если можно, давай фрагмент скрипта в студию. Очень хочется увидеть. Ссылка на комментарий
Kirgudu 1 187 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 @AndreySol, например, ряд функций в xr_conditions.script - is_alive, is_alive_one, is_alive_all, actor_alive и др. Инструмент Ссылка на комментарий
AndreySol 215 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 @Kirgudu, @Graff46 Не приходилось явно использовать эту ф-цию, по этому посмотрел в исходники: .def("alive", &CScriptGameObject::Alive) bool CScriptGameObject::Alive() const { CEntity *entity = smart_cast<CEntity*>(&object()); if (!entity) { ai().script_engine().script_log(ScriptStorage::eLuaMessageTypeError,"CSciptEntity : cannot access class member Alive!"); return (false); } return (!!entity->g_Alive()); } IC BOOL g_Alive() const { return GetfHealth()>0; } Так что ф-ция явно клиентская, и оказалась примитивнее не куда - простая проверка на то, что здоровье больше 0. А lua_help, видимо в наше время читать уже не стоит... Ссылка на комментарий
lordmuzer 743 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 (изменено) alive есть и у серверного объекта см: https://github.com/joye-ramone/xray-1.0007-origin/blob/99a20ebf9847c21d9d86151bd60acf54cdbdabdb/xr_3da/xrGame/xrserver_objects_alife_monsters_script3.cpp#L73 Но, только у cse_alife_creature_abstract Изменено 20 Августа 2018 пользователем lordmuzer Ссылка на комментарий
Graff46 598 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 Как это тогда? или game_object включает cse_alife_creature_abstract ? Ссылка на комментарий
lordmuzer 743 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 Не понял вопроса, db.actor вернет cse_alife_creature_actor который есть наследник cse_alife_creature_abstract Ссылка на комментарий
Graff46 598 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 @lordmuzer db.actor это клинтский объект же Ссылка на комментарий
lordmuzer 743 Опубликовано 20 Августа 2018 Поделиться Опубликовано 20 Августа 2018 (изменено) Тьфу, под вечер глаз уже не тот. Прочитал как alife():actor() Да, db.actor клиентский. Но у него тоже вроде бы есть "alive" свойство как ужу сказали выше. Изменено 20 Августа 2018 пользователем lordmuzer Ссылка на комментарий
AndreySol 215 Опубликовано 21 Августа 2018 Поделиться Опубликовано 21 Августа 2018 (изменено) 4 часа назад, lordmuzer сказал: alive есть и у серверного объекта Там это не метод(ф-ция) класса, а свойство(переменная класса). Не путаем два разных понятия. Изменено 21 Августа 2018 пользователем AndreySol 4 Ссылка на комментарий
Graff46 598 Опубликовано 21 Августа 2018 Поделиться Опубликовано 21 Августа 2018 Просмотрел луа_хелп еще раз - оказывается alive есть у серверных объектов и у game_object! Почему alive иногда не видится у серверных объектов - не понятно, приходится дополнительно условие писать if obj and obj.alive and obj:alive() then ... end @AndreySol alive всегда функция, посмотрите lua_help и как alive "написан" в скриптах (через двоеточие и со скобками в конце). Ссылка на комментарий
dsh 3 824 Опубликовано 21 Августа 2018 Поделиться Опубликовано 21 Августа 2018 @Graff46, потому, что alive() у серверных объектов есть только у живых, т.к. сказать: if obj and ( IsStalker( obj ) or IsMonster( obj ) ) and obj:alive() then @lordmuzer вон там выше указал, у кого этот метод есть. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Graff46 598 Опубликовано 21 Августа 2018 Поделиться Опубликовано 21 Августа 2018 @dsh, в моем случае obj подразумевается только НПС. Ссылка на комментарий
dsh 3 824 Опубликовано 21 Августа 2018 Поделиться Опубликовано 21 Августа 2018 @Graff46, может там Сидорович затесался? А то он такой... dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Graff46 598 Опубликовано 22 Августа 2018 Поделиться Опубликовано 22 Августа 2018 @dsh, У него сталкера клсид? Ссылка на комментарий
dsh 3 824 Опубликовано 22 Августа 2018 Поделиться Опубликовано 22 Августа 2018 @Graff46, не уверен. Скорее script_trader. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти