Roy
Они зависят от С++ вызовов
Roy
Roy
"Kraken" он получит при форматировании строки
Roy
string.format([[CoolDownHouse['%s'].UsedTime = %d]],name,cd)
Roy
вон же он форматирует строку используя name
Roy
Причем форматирует корректно
Leon174
Да с чего нельзя-то? Выдерни этот тестовый кусок и попробуй. Ролей же у тебя конечное количество, отправляешь, проверяешь.
Snusmumriken
Оно не вызывается, пользователь Kraken НЕ СОЗДАН, его нет.
Roy
А это значит что поле почему то отсутствует
Roy
Snusmumriken
ВОТ ТАК НЕТУ ))
Leon174
Snusmumriken
Карочи, просто возьми CoolDownHouse и выведи в файл в момент чтения.
Roy
Погодите-ка, а может там ник из английский + русских символов состоит?
Leon174
Или принтами выводи, что там получается.
Roy
может ли такое сломать таблицу?
Roy
Странно то, что проблемы именно с персонажем Kraken
Leon174
Я вот не пробовал кириллицу в качестве ключей.
Roy
с другими все норм
Roy
У него с ником что-то мутное походу
Snusmumriken
Roy
Snusmumriken
Содержимое таблицы.
Roy
а как это сделать?
Leon174
Snusmumriken
И посмотри, есть там твой кракен или нет, в момент чтения кракена.
Snusmumriken
Как — операции с файлами и допустим serpent.lua
Roy
Там и английские и русские ?
Leon174
Leon174
Roy
Походу @Snusmumriken ты прав
Snusmumriken
Я знаю.
Roy
Я только щас заметил, что мой Kraken находится вообще на другом game server'е
Roy
а у меня луа скрипт исключение выбивает на первом гейм сервере
Roy
Дичь какая та
Roy
Эти таблицы никак не должны знать друг о друге же
Roy
Получается, что игрок сейчас подключен к GameServer1 и там же эти скрипты луашные гоняются, а есть GameServer2 (там другие локации держатся), вот почему то у меня исключение выбрасывается на GameServer2 для Kraken ника, а он находится на GameServer1
Roy
как это вообще возможно?
Snusmumriken
Ну это тебя надо спрашивать )
Roy
Да я рефакторю серверные файлы одной игрули, код не я же писал
Roy
Но я не вижу чтоб где то обращения были, но меня напрягает Lua_All
Roy
Может он передает по сети эту команду
Roy
и она вызывается на другом сервере
Leon174
Roy
Roy
в cmd заносится результат форматирования
Roy
а потом передается по сети
Roy
Скорее всего в этом и есть проблема, надо попробовать найти где этот пакет от Lua_All обрабатывает GameServer
Roy
Roy
Там в оригинале true
Roy
и при тестах true щас стоит
Roy
скрин старый (сделан после отключения этой задержки чтоб не крашило)
Leon174
Прекрасно. А мы должны догадываться по устаревшему коду?
Roy
Roy
Не обратил внимания
Roy
Если я выполню ту команду как lua скрипт на С++, без создания lua файла, то оно в памяти будет лежать?
Roy
Допустим, прилетела мне команда CoolDownHouse[Kraken].UsedTime = 1000;
Roy
Я выполняю его как скрипт
Roy
Оно в памяти луа останется или нет чтоб когда уже выполнится .lua файл таблица там была
Leon174
Меня вот return в 309 строке еще смущает.
Roy
Roy
Snusmumriken
Ну типа тебе приходит невалидный код на исполнение — возвращай ошибку.
Leon174
Почему?
Так если if cooldown > 0, то до string.format не доходит.
Leon174
Snusmumriken
Тут проблема в волшебной строке
Roy
а я могу через lua функцию выполнить lua команду?
Roy
CoolDownHouse["Kraken"].UsedTime = 1000;
Roy
Допустим, аргументом пришла вот такая строка (как выше)
Roy
Snusmumriken
str = [[CoolDownHouse["Kraken"].UsedTime = 1000;]]
local f, err = loadstring(str)
if f then f() end
Roy
Щас попробую
Leon174
Roy