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

Simonov50

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

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

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

  • AMKoin

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

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

-2

О Simonov50

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

Информация

  • Реальное имя
    Сергей Симонов
  • Город
    Москва
  • Интересы
    Профессия = системотехник
    Род занятий = вольный пенсионер-сталкер
    Хобби = компьютерные игры
    Характер = лентяй, с элементами здорового мужского "пофигизма"
    Почта = s89104562978@mail.ru
  1. Simonov50

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

    @naxac, Прости засранца, я был сильно неправ (задолбали собственные ошибки). Сергей. Спасибо ! Понял всё. У меня минимум 3 ошибки: 1. Неверно выбрал метод для сдвига. 2. В моём "поминальнике" ошибка (width, height вместо x2, y2) 3. Не перепроверив незаслуженно обидел человека. Поскольку, читал (и конспектировал) все Ваши предыдущие ответы, рискну задать очень важный для меня ворос - не понимаю суть. (непонятки прономерованы в спойлере) class "lbx_kv" (CUIListItemEx) -- Скриптовой лист-бокс, + к основному function lbx_kv:__init() super() self.text = CUIStatic() -- имя только .text (фишка, игра слов) self:AttachChild(self.text) -- дополняем класс -- класс "висит в воздухе", не связан с экраном (и с XML) end class "kovir" (CUIScriptWnd) -- bla_bla -- self.lb_kv = xml:InitList("lbx_wnd_kv:list",self) -- основной лист-бокс self:Register(self.lb_kv, "lbox_kv") -- для калбака ----- function add_string(name) записываем строку local _itm = lbx_kv() -- указатель на скрипт.класс _itm.text:SetText(name) -- пишем name в доп.статик !!! 1)Как это через статик добраться до класса (с другими методами !) ??? self.lb_kv:AddItem(_itm) -- пишем в основной лист kovir.lb_kv 2) ??? что пишем ??? в основной лист (ему нужен тип "string") end -- Читаем строку, именно здесь важно имя .text (фишка, игра слов) -- индекс берём с основного листа, а текст из дополнительного статика name = self.lb_kv:GetItem(index).text:GetText() ???? 3) ??? здесь self== kovir: но!!! .text из другого класса!!! == lbx_kv: И это всё работает, но как совершенно не понятно. Это текст уже из моего скрипта, принцип прямо заимствован из скриптов для Спавен мода Повелитель Зоны. Нужен был работающий лист-бокс.
  2. Simonov50

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

    Загляни пожалуйста в личную переписку. Сергей. Во первых не так, а главное - где ответ на вопрос ?
  3. Simonov50

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

    class CUIScriptWnd - Не могу сдвинуть окно вправо self:SetWndRect(Frect():set(0,0,420,530)) - работает self:SetWndRect(Frect():set(200,0,420,530)) - уже не работает Изображение сдвинулось верно - всё на своих местах, без смещений. Но, у элементов в правой части окна, которые оказались за пределами "старых" координат, исчезли калбаки, не работают едитбоксы. На наведение курсора кнопки и чекбоксы реагируют - подсвечиваются. Левая часть окна работает нормально. ХМЛ - просто россыпь в пределах "старых" координат, без фреймов и наложений. В скрипте ничего не аттачилось. В моём понимании CUIScriptWnd главный в связке, а CScriptXmlInit драйвер-исполнитель, я дал команду главному и мимо. Явно что-то упустил из вида, что ?
  4. Спасибо. Пригодилось и очень. Хотя бы потому, что дало ответ на множество вопросов (вообще не освещённых в разделе ХУДа). Осталась лишь одна "непонятка". В чистой версии (от 1С) шрифты Letterica16Russian (и 18Russian) переназначены на текстуры Letter_16 (18), где русские символы тоже присутствуют. Конкретнее (из fonts.ltx): [ui_font_letterica16_russian] texture = ui\ui_font_letter_16_1024 и т.д. Разницу в именах вижу, пойду разбираться с "кракозябрами". Ещё раз Спасибо!
  5. Simonov50

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

    Спасибо ! Но это сборка люкс, а все мои XR3DA.exe - "г..." Хотелось бы ещё и ссылочку на проверенный профессионалами "открытый" экземпляр (с нефорсированным рендером). Сергей.
  6. Simonov50

    Худ

    Кракозябры при выводе по ed_box:SetText("Вася"). При активации статика с таким текстом всё нормально. (т.е. шрифты норма). Как исправить не используя String_Table.xml ? (Нужно выводить русский текст напрямую.)
  7. Simonov50

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

    Огромное спасибо !!! Не просто интересно а много больше того, о чём я мог мечтать (учитывая реалии - я по специальности не программист). Но пока подключать не к чему. Если подключить к любой "базе" (exe + dll+ ... = /bin), коих даже у меня 7 штук, то сделанное мой будет нормально работать только у одного пользователя из семи (не нарушив то, что было раньше - обязательное условие!). То есть, надо брать наиболее распространённую версию и плясать от неё. На сегодня "лицензионка" для этого явно не годится (имхо). Да и модить через Старфорсе при обилии собственных ошибок - беспредел (не вытерплю!). Требуется имхо человека, который реально в этом "варится", а не стороннего наблюдателя (типа меня). Еще раз спасибо за действенную помощь. Сергей. P.S. Исхожу из того, что "имхо оно и в африке имхо". Любое имхо имеет право быть ... , ни к чему не обязывает, не наказуемо и т.д.
  8. Simonov50

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

    Приношу извинения, если сделал что-то некорректно, но именно на этот комментарий я и отвечал. Ваш же пост я не просто прочитал, а принял к исполнению! Не сделав этого я так и останусь "слепым". За предложенную помощь отдельное Спасибо, но пока по делу спрашивать не готов (оставил резерв на будущее). Пока нагуглил luacap-2012-02-20 (как я понял он включает предложенное Вами). В чистом виде "Lua от RvP" не нашел. Сейчас ищу отдельно расширитель Lua или более позднюю версию luacap. Ещё раз приношу извинения. С уважением, Сергей.
  9. Simonov50

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

    Теоретически можно запустить скрипт из любой папки, но для этого должен быть нестандартный движок (с библиотеками Lua) и самое главное - этот скрипт должен делать строго то же самое, что делается при нормальном спавне. Кроме лишнего гемора ни чего не даёт! Я анализировал подобный вариант на предмет "сунул" в игру/мод новый каталог со всеми ресурсами (что бы не затрагивать игру), а потом ... Но подключать, то его к существующим скриптам (руками или програмой ) всё равно придётся! @Карлан, Спасибо, именно так я и сделал, теперь работает. @Dennis_Chikin, Движок править. Брать исходники, и править. dc Чувствовал, что в подобное вляпаюсь! Но, если я правильно понимаю, скрипты сделанные мной после такой правки, у других работать не будут? Не порекомендуете ли Вы мне какой-либо базовый набор (.bin) игры, в котором функции записи/чтения в файл работают и при этом он широко применяется модерами. У меня есть один "правленый" XR3DA.exe c работающим выводом в файл, но там "криво" работает наследование у брони и артефактов. Возникают "случайные" вылеты при вставке его в мод, где у "новых" вещей не прописаны все параметры (в расчёте на наследование). Есть ещё пяток с форсированным рендерингом, но с ними перегреваются GTX-680 (3 минуты заставки), периодические вылеты при большом количестве аддонов к оружию и при "частом" _update_delta. Вывод в файл в половине из них тоже не работает - видно, как авторы модов заменяли его выводом на консоль.
  10. Simonov50

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

    У меня вылетало именно на if another_script.myfunc при фактическом отсутствии листа another_script . Вылет во время начальной загрузки (another_script = nil value). Ошибка фиксировалась именно при наличии в тексте связки лист.функция (через точку). Присутствие условия (if) не спасало, т.к. сочетание лист.функция транслировалось целиком.
  11. Simonov50

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

    Именно на таком варианте у меня и вылетало, а нужно именно так, как вы мне подсказали в предыдущем посте - через блок, прятать имя функции в переменной, отдельно проверять наличие листа и только при его наличии проверять функцию. Я встроил опрос внутрь своего класса (для менюшки), и всё заработало - спасибо! Но теперь вопросов стало ещё больше !!! В варианте if another_script.myfunc then another_script.myfunc() вылета не может быть в принципе. Как сделать вывод в свой файл ? Начал с local file = io.open("mu_file.txt", "a") Но на все попытки найти io или openfile возвращает nil. Специально установил чистую, лиценз.версию - результат тот же. Что бы понять нужно посмотреть, но для этого сначала нужно написать... и так далее по заколдованному кругу ... - сильно достаёт! Эх, знать бы дорожку в базовое адр.пространство чистого Lua, авторы им наверняка пользуются. Движок править. Брать исходники, и править. dc
  12. Simonov50

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

    @Dennis_Chikin, Спасибо !!! Всё в тему, но кому классика, а кому откровение. Если я верно понял, то нужно засовывать в инфопоршень, а вытаскивать с помощью xr_effects. Ни когда с инфопоршнями не работал. Пойду читать xr_effects. Ещё раз спасибо. @Nazgool, Круг задач определён уровнем моих незнаний и для понимания нормальным человеком слишком обширен. Пока есть только цель - сделать "переносной" скрипт (из мода в мод). Воткнул его, он сам быстренько посмотрел ресурсы и "сказал" что (и где) надо доделывать руками. Скрипт чисто модерский - простенький инструментарий (будет когда-нибудь?). Про _G всё понял, а вот про защищённый режим (на уровне игры) услышал впервые! Где читать? Спасибо за помощь - иду учить мат.часть.
  13. Simonov50

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

    @Nazgool, При обычной загрузке лист сразу транслируется, и если присутствует текст обращения к несуществующей функции будет вылет. То есть, вариант проверки "если есть лист, тогда обратиться к функции не срабатывает". Если "спрятать" текст (mu_call="Имя_скрипта"..".".."имя_функции".."()"), то вылета не будет, но команда dostring(mu_call) не проходит. Видимо в игре недоступна? Пытаюсь найти вариант загрузки в два этапа. Обычным образом загрузить мой 1_й лист, мой второй лист (с обращением к функции) спрятать в другом каталоге, если присутствует некий третий лист,(наличие функции в котором и проверяется), то подключить мой второй лист. Но как это сделать не представляю.
  14. Simonov50

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

    Как подключить/зарегистрировать новый скрипт ? В gamedata\script\ положил, а игра его не видит (нет в пространстве имён). Извиняюсь за "сложность" вопроса, но более подходящего места не обнаружил. Заранее спасибо за помощь!
  15. Simonov50

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

    Двумя постами раньше Dennis_Chikin писал: Не подойдёт? ... Другое - против идеологии языка, и в общем-то трудно представить: зачем бы оно. Не просто подойдет, а просто обалдеть!!! Результат работы первой строки иначе как глюком (в LUA) не назовёшь. По полочкам ещё не разложил, хотя в какую сторону думать понятно. Но каков результат его использования! Применив стандартные средства языка Вы фактически спасли LUA от позора - непригодность для описания акторов (теория акторов/actor/обмен сообщениями - отсутствие стандартных средств поддержки) и, как следствие, непригодность для описания многоагентных систем. Фактически всякий актор может быть определён как самостоятельный поток (программный) высшего логического уровня. В LUA- идеологии можно было пытаться "городить огород" из отдельных "шунков", что в принципе неверно. Либо, как и сделано в игре, "дописывать язык" за счёт подключения собственных Си, ЕХЕ и т.п. модулей. зачем бы оно - Сталкер полноценная (почти) многоагентная система, где каждый "живой" персонаж является актором (кроме объекта "actor"!) и имеет собственный поток (цепочка: obj_id, Logic, xr_logic, binders, bind_tipe_obj). Понятно, что луашные "шунки" авторы использовать не стали. Логическая дыра (возможность взаимодействия потоков) на уровне LUA ни куда не делась. Вы её фактически закрыли. Теперь стало возможным реализовать в игре два отсутствующих у акторов свойства (по определению обязательных!) - способность обмениваться сообщениями и способность воспроизводить себе подобных. Примеры применения: 1. Gamer (достаточно прокачанный), подходит к любому новичку (выбранному по своему усмотрению) и в процессе обмена сообщениями может научить его стрелять и т.п. При этом авторам игры/мода ничего, кроме общих правил, заранее прописывать не нужно. Замечу, что сами диалоги это лишь имитация такого обмена. Инфопоршны это вообще иная песня. Они, как и Action, должны быть конкретно прописаны заранее (т.е. предусмотрены авторами). 2. Собака-самка (белый цвет) после контакта с псом-самцом (тёмный цвет) может вызвать спавн дополнительных особей в своём гулаге. Если Gamer их заранее не отстреляет, то так и произойдёт. Ещё раз подчеркну, авторам нужно лишь описать общие принципы (взаимодействия) для классов акторов. и всё!!! После этого зона реально будет жить собственной (уникальной в каждом компьютере) жизнью. При этом Gamer сможет эффективно воздействовать на ход её развития. А жизнь эта - бесконечна (пока не выключили компьютер ). P.S. Уважаемые, подскажите ни разу не программисту, как подключить спойлер (в личку или на mail). Портянка вместо поста не есть хорошо. текст["/"spoiler]

AMK-Team.ru

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