Malandrinus 615 Опубликовано 20 Ноября 2015 Поделиться Опубликовано 20 Ноября 2015 я так понимаю, LuaBind это можетТвоя правда, я и не подумал об этом. Там же метаметод "call", а не просто выбор по ключу. Внутри по списку аргументов можно выбрать и нужную функцию. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 24 Ноября 2015 Поделиться Опубликовано 24 Ноября 2015 А поясните мне такую вещь: когда в дескрипшен таска мы передаем id статьи из "энциклопедии" - текст должен быть сформирован в xml- файле ? Хранится ведь не он, а только id ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Serge! 127 Опубликовано 25 Ноября 2015 Поделиться Опубликовано 25 Ноября 2015 А разве в Lua есть перегрузка функций? По моему вызов функции, как и обращение к чему угодно другому по имени, - это просто выбор из таблицы по ключу, а значит и функция будет вызвана одна и та же, просто с разным списком аргументов. Или я не понял мысли? Я довольно долго переваривал эти ваши 3 строчки. Мне самому всё и понятно и используемо давно, а вот как сказать, чтобы было понятно и Вам, мне стало ясно не сразу. Попробую. В Lua в чистом виде, разумеется, нет никаких перегрузок. Это априори. Но! Вполне возможно очень элегантно это эмулировать. Я сейчас не буду даже трогать метатаблицы, а простенький пример, оперируя только со стандартной библиотекой Lua “string” и понятием, которое в Lua определяется как «замыкание» (я его уже как-то приводил, но мой пост был удалён на стадии премодерации, видимо). Пишем такой код и проверяем его: local old_len = function(str) return string.len(str) end string.len = function(str, str1) return str1 and (str1..' равна = '..old_len(str)) or #str end и смотрим результаты string.len( 'bnm', 'длина' ) --> длина равна = 3 string.len( 'bnm' ) --> 3 Это перегрузка? И вот тут начинается игра слов. По внешнему виду функция вроде одна и та же, как Вы говорите, и список аргументов может быть тот же (вторая строчка). Но! Это разные функции. Так это перегрузка? В чём Вы безусловно правы – внутри всего этого безобразия производится выбор из таблицы (а Lua по другому и не умеет), но вот значение этого ключа в этой таблице Вы имеете возможность подменить. Замечательная возможность! Более сложно это реализуется с мета-таблицами или через «якобы» классы (хотя чистых классов, как их понимают в том же С++ конечно нет, т.к. такое и не было предусмотрено разработчиками), но главное это всё вполне реально. Lua очень расширяемый инструмент. Ссылка на комментарий
RayTwitty 492 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 Никто не знает, почему колбек на хит неписей вызывается так странно? По несколько раз за один выстрел и с нулевым amount. Ссылка на комментарий
dsh 3 824 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 @RayTwitty, просто мысль: может какой скрипт хит такой наносит, по факту выстрела? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Карлан 1 049 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 @RayTwitty, конкретнее ситуацию можешь обрисовать? Чтобы всегда и везде у меня такого нет, работает как и должно. В коде есть места где используется рудиментарная установка агрессии одного на другого через хит (как раз нулевой), возможно она имеет место быть, но телепатов таки нет. Есть еще глюк самой схемы, но это дебри логики, которые пока не вижу смысла расписывать. Ну а так иди пальни в новичка в деревне, выведи в лог, там все это достаточно наглядно, ну и сразу отсюда идет пойдет вывод что надо подправить в экшнах. Ссылка на комментарий
RayTwitty 492 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 (изменено) @Карлан, постреляй в труп и посмотри, что выводит в лог. Снятие колбеков на death_callback разумеется убрал. Впрочем, вопрос неактуален - сделал уже нормально в движке. Изменено 28 Ноября 2015 пользователем RayTwitty Ссылка на комментарий
Карлан 1 049 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 @RayTwitty, ну так дурное дело не хитрое . Причем тут пострелять в труп я не понял, также как и причем тут движок. Весь вопрос объясняется на уровне скриптов. Ссылка на комментарий
RayTwitty 492 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 (изменено) Причем тут пострелять в труп я не понялА труп это разве не НПС и для него колбек вызываться не может? Весь вопрос объясняется на уровне скриптов.Вот только объяснений как таковых я не увидел. Впрочем, вопрос неактуален - сделал уже нормально в движке. Изменено 28 Ноября 2015 пользователем RayTwitty Ссылка на комментарий
Карлан 1 049 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 А труп это разве не НПС и для него колбек вызываться не может? Может, и вызывается, и отличий нет. Я не понял зачем ты различаешь вызов хит коллбека на труп и на живого, когда это суть одно и тоже, ну и до кучи причем тут движок я тоже не понял. А вектор куда копать я дал, так как телепатов нет. Ссылка на комментарий
RayTwitty 492 Опубликовано 28 Ноября 2015 Поделиться Опубликовано 28 Ноября 2015 (изменено) @Карлан, нет, ну написал три раза уже Впрочем, вопрос неактуален - сделал уже нормально в движке.он продолжает... Неугомонный. Изменено 28 Ноября 2015 пользователем RayTwitty 1 Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Декабря 2015 Поделиться Опубликовано 8 Декабря 2015 (изменено) Добрый Вечер! Такой вопрос, поставил комплект модулей от Артоса(качал с этого поста жмак), вроде все нормально, но игра при сохранении вылетает. ! Cannot find saved game ~:bind_stalker:save:size=[18] ! Cannot find saved game ~:se_stor:save_storehouse:size=[0/<nil>]: (>)FATAL ERROR[error]Expression : !m_error_code[error]Function : raii_guard::~raii_guard[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp[error]Line : 748[error]Description : ....r - call of pripyat\gamedata\scripts\se_stor.script:156: attempt to index local 'pk' (a nil value)stack trace: Я подумываю на то, что сохраняюсь не на оригинальном уровне. Может нужно куда-то записывать имена уровней? Изменено 8 Декабря 2015 пользователем vampirnik77 Официальная страница проекта Neof-One Crew Ссылка на комментарий
Kirgudu 1 204 Опубликовано 8 Декабря 2015 Поделиться Опубликовано 8 Декабря 2015 @vampirnik77, модуль работает независимо от уровней. В упомянутом посте находится комплект, который я проверил «от и до» на чистой игре и всех платформах. При условии соблюдения всех инструкций по подключению, добавления всех указанных вставок и удаления указанных кусков кода всё должно работать. Проверь, всё ли учёл при подключении, возможно что-то случайно пропустил. Обрати внимание на таблицу tPkChunks в модуле и методы ext_save и ext_load в биндере актора - если прикручиваешь не к чистой игре, а к моду, вполне возможно, что их содержимое следует поменять. 1 Инструмент Ссылка на комментарий
vampirnik77 121 Опубликовано 8 Декабря 2015 Поделиться Опубликовано 8 Декабря 2015 @Kirgudu, Вопрос снят. Не прописал что нужно в class_registrator 1 Официальная страница проекта Neof-One Crew Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 8 Декабря 2015 Поделиться Опубликовано 8 Декабря 2015 @Kirgudu, Уже не раз видел и хотел спросить : а что такое чанки? Ссылка на комментарий
Kirgudu 1 204 Опубликовано 8 Декабря 2015 Поделиться Опубликовано 8 Декабря 2015 @TIGER_VLAD, это ссылка на скомпилированный байт-код. Если говорить о частном случае сохранения данных, чанк представляет собой технологический нет-пакет, созданный для хранения данных конкретного внешнего модуля; данные пишутся в него стандартными для нет-пакета методами при сохранении. Сначала создаются такие чанки для всех внешних модулей, которые мы подключаем к хранилищу. Затем чанки побайтово копируются в нет-пакет специального игрового объекта (или нескольких объектов, если суммарный размер чанков того требует), который, в свою очередь, сохраняется в сейве. Описал несколько сумбурно - слов под конец рабочего дня не хватает. Возможно, гуру меня поправят или дополнят. 1 Инструмент Ссылка на комментарий
vampirnik77 121 Опубликовано 10 Декабря 2015 Поделиться Опубликовано 10 Декабря 2015 (изменено) Здравствуйте. Такая проблема, не могу прочитать custom_data объекта, использую m_netpk. Подскажите пожалуйста в чем проблема. local bla = "kgsdglsgmsmgksgnbmsdjngsgmsko" function Create_Art() local spawn_section = "af_cristall_flower" local pos,dir = db.actor:position(),db.actor:direction() local lvid,gvid = db.actor:level_vertex_id(),db.actor:game_vertex_id() local sobj = alife():create(spawn_section, pos:add(dir), lvid, gvid) local pk = get_netpk(sobj) --/ запрос пакета --/ если получен доступ к пакету local data = pk:get() --/ считываем параметры в таблицу local description = pk:dumpDesc() news_manager.send_tip(db.actor, description) --/> заполняем параметры if bla and type(bla) == 'string' then news_manager.send_tip(db.actor, "STRING WRITE!") data.custom_data:setString(bla) end data.condition = 5 pk:set(data) --/< запись news_manager.send_tip(db.actor, "DONE!") test.take_artefact(sobj) --\И тут же считываю, если менять например condition, то читаеться все нормально end -- перечень артефактов, которые бьются local hit_art_list = { [clsid.art_bast_artefact] = true, [clsid.art_black_drops] = true, [clsid.art_dummy] = true, [clsid.art_electric_ball] = true, [clsid.art_faded_ball] = true, [clsid.art_galantine] = true, [clsid.art_gravi] = true, [clsid.art_gravi_black] = true, [clsid.art_mercury_ball] = true, [clsid.art_needles] = true, [clsid.art_rusty_hair] = true, [clsid.art_thorn] = true, [clsid.art_zuda] = true, [clsid.artefact] = true, [clsid.artefact_s] = true, } function take_artefact(obj) news_manager.send_tip(db.actor, "FAZA2") local pk = get_netpk(obj) local data = pk:get() --/ считываем параметры в таблицу local custom = data.custom_data:getString() local custom_data = tostring(custom) news_manager.send_tip(db.actor, custom_data) --\Пытаюсь вывести, приходит пустое сообщение end Изменено 10 Декабря 2015 пользователем vampirnik77 Официальная страница проекта Neof-One Crew Ссылка на комментарий
Charsi 440 Опубликовано 11 Декабря 2015 Поделиться Опубликовано 11 Декабря 2015 (изменено) @vampirnik77, в методе setString с помощью функции _parse_custom_data переданная строка преобразуется в таблицу. Твоё bla превращается в пустую таблицу, т.к. строка для кастомдаты должна иметь вид, подобный ini-файлу, т.е. набор секций с параметрами и значениями. Можно было написать, например, так: local bla = "[my_data]\nkgsdglsgmsmgksgnbmsdjngsgmsko" Изменено 11 Декабря 2015 пользователем Charsi 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
vampirnik77 121 Опубликовано 11 Декабря 2015 Поделиться Опубликовано 11 Декабря 2015 Еще такой вопрос. Апдейт актора, сколько в нем происходит вызовов в секунду? Официальная страница проекта Neof-One Crew Ссылка на комментарий
Desertir 202 Опубликовано 11 Декабря 2015 Поделиться Опубликовано 11 Декабря 2015 (изменено) @vampirnik77, число вызовов не постоянно и пропорционально FPS (по факту это и есть FPS). Если тебе нужно что то изменять с постоянной скоростью, нужно использовать передаваемый в апдейт аргумент delta - число прошедших миллисекунд (вроде) с предыдущего апдейта. Изменено 11 Декабря 2015 пользователем Desertir 1 ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти