Stiingray 4 Опубликовано 15 Апреля 2013 Поделиться Опубликовано 15 Апреля 2013 Подскажите, что не правильно сделано: local con = get_console() local ren = con:get_string("renderer")if ren = renderer_r2 then news_manager.send_tip(db.actor, "%c[0,0,255,25]рендер р2", nil, nil, 20000)end Какая ошибка - в логе не указывается. Ссылка на комментарий
Charsi 440 Опубликовано 15 Апреля 2013 Поделиться Опубликовано 15 Апреля 2013 Stiingray, неправильно написано условие. if ren == "renderer_r2" then В логе должно быть как минимум то, что файл скрипта невалидный. Используй для проверки синтаксиса script Syntax Checker. Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
OFF_ender 33 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 Gun12, только сейчас добрался до твоего 2-го экономного варианта конвертации таблиц в строку (первый работает без проблем). Сначала не мог понять, почему пропускаются проверки элементов извлеченных таблиц, вроде бы внешний вид такой же, как и до преобразования в строку... Оказалось, на выходе toTable получаем стринги (как я понял). Наверное, где-то не хватает tonumber или ещё чего. Подскажи, плиз. Ссылка на комментарий
Nazgool 250 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 Да, действительно я забыл про tonumber. Найди в функции toTable : for m in v:gmatch('%S+') do t2[k[n]] = to10(m) n = n+1end и замени на : for m in v:gmatch('%S+') do local x = to10(m) t2[k[n]] = tonumber(x) n = n+1end Ссылка на комментарий
OFF_ender 33 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 (изменено) Gun12, я уже пробовал вставлять tonumber, но на выходе большие числа были не те, что записывались в строку. Если я всё правильно вставил, то последнее твоё решение не помогло. Может дело во втором аргументе в tonumber(x, y) ? Изменено 17 Апреля 2013 пользователем OFF_ender Ссылка на комментарий
Nazgool 250 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 (изменено) Не нужен там никакой второй аргумент. У меня всё работает. Можешь показать свою таблицу? Или дай несколько чисел, которые не правильно переводятся. Да, ещё найди и замени вот ещё что (там лишнее поле создаётся) : for i = 0, 9 do t100['0'..i] = char(240+i)end Изменено 17 Апреля 2013 пользователем Gun12 Ссылка на комментарий
OFF_ender 33 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 Gun12, попробовал поставить девятку. Результат не изменился. К примеру загоняю в строку: table1 = { [1]={id=5000,s=1,art=100} }. На выходе имеем: { [1]={id=800,s=1,art=160} } Может конечно это у меня что-то не так сростается... но 1-й вариант ведь работает... В любом случае спасибо за помощь! Ссылка на комментарий
Nazgool 250 Опубликовано 17 Апреля 2013 Поделиться Опубликовано 17 Апреля 2013 (изменено) Твоя таблица у меня работает нормально. Так что может ты не так что-то исправил, либо опять причуды lua а-ля сталкер. Отправил тебе ЛС. Смотри там. -------- Ага, таки ты всё-таки наисправлял... Пожалуйста. Изменено 17 Апреля 2013 пользователем Gun12 Ссылка на комментарий
Stiingray 4 Опубликовано 19 Апреля 2013 Поделиться Опубликовано 19 Апреля 2013 (изменено) Stiingray, неправильно написано условие.if ren == "renderer_r2" then В логе должно быть как минимум то, что файл скрипта невалидный. Используй для проверки синтаксиса script Syntax Checker. Спасибо, исправил. Теперь появилась другая проблема, когда назначаю данную проверку на нажатие клавиши в меню, то сообщение почему-то не выводится: if level.present() and (db.actor ~= nil) and db.actor:alive() then if dik == DIK_keys.DIK_NUMPAD1 then local con = get_console() local ren = con:get_string("renderer") if ren == renderer_r2 then news_manager.send_tip(db.actor, "%c[0,0,255,25] р2", nil, nil, 20000) end end end Но, без проверки условия значение ren выводится: if level.present() and (db.actor ~= nil) and db.actor:alive() then if dik == DIK_keys.DIK_NUMPAD2 then local con = get_console() local ren = con:get_string("renderer") news_manager.send_tip(db.actor, "%c[25,240,25,25] рендер "..ren.."", nil, nil, 20000) end end ЗЫ Проверял Script syntax checker'ом Изменено 19 Апреля 2013 пользователем Stiingray 1 Ссылка на комментарий
ColR_iT 171 Опубликовано 19 Апреля 2013 Поделиться Опубликовано 19 Апреля 2013 Stiingray, и что же ты исправил, если ошибка, на которую тебе указали так и осталась? Данной условие: if ren == renderer_r2 thenникогда не выполниться, т.к. ты пытаешь сравнить строку в переменной ren со значением nil, которое присвоено переменной renderer_r2. Поэтому сообщение и не выводится. Теперь о менее приятном: Во-первых, цитировать посты полностью не нужно, достаточно просто указать ник. Во-вторых, используй теги для того чтобы выделить код, в шапке темы об этом моменте ясно написано. Ссылка на комментарий
Сталкер Лом 356 Опубликовано 21 Апреля 2013 Поделиться Опубликовано 21 Апреля 2013 Здравствуйте. Решил вернуть имена и описания для каждого тайника (как это было в ТЧ): в trasure_mananger.script заменил в функции CTreasureManager:give_treasure(treasure_id, spawn) локальную local text = "Тайник\\n%c[255,155,238,23]" на local text = "%c[255,238,155,23]"..game.translate_string(self.name).."\\n".."%c[default]"..game.translate_string(self.description). После функцию function CTreasureManager:__init() function CTreasureManager:__init() self.name = utils.cfg_get_string(ini, section, "name", nil, true, "") self.description = utils.cfg_get_string(ini, section, "description", nil, true, "") self.items_spawned = false self.check_time = nil self.secrets = {} self.secret_restrs = {} self.items_from_secrets = {}end Добавил файл-описания st_trasure.xml из ТЧ и сделал чтоб его читала игра, но при начале новой игры получаю вылет: 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 : ...l.k.e.r. - Зов Припяти\gamedata\scripts\utils.script:170: attempt to concatenate local 'section' (a nil value)stack trace:001B:69737365 nvd3dum.dll Как я понял, нужно для каждого тайника в st_trasure.xml нужно создать секцию описания name и description? Или не в ту сторону копать начал и описания от таких манипуляций я не получу? Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
Shredder 49 Опубликовано 21 Апреля 2013 Поделиться Опубликовано 21 Апреля 2013 На сколько я понял, ты ничего не понял. self.name = utils.cfg_get_string(ini, section, "name", nil, true, "") self.description = utils.cfg_get_string(ini, section, "description", nil, true, "") Вылет происходит из-за того, что ты передаёшь в функцию cfg_get_string первые два аргумента, которые не определены, другими словами их значения nil, о чём, собственно, в логе и сказано. Поэтому, если со скриптами не дружишь, то методом тыка можно долго добиваться результата. Ссылка на комментарий
АuReN 0 Опубликовано 21 Апреля 2013 Поделиться Опубликовано 21 Апреля 2013 (изменено) Работает ли в Сталкере библиотека ввода-вывода io? Не уверен, но кажется только в ЗП. ColR_iT Изменено 21 Апреля 2013 пользователем ColR_iT Ссылка на комментарий
Unnamed Black Wolf 4 Опубликовано 21 Апреля 2013 Поделиться Опубликовано 21 Апреля 2013 ЗП, ЧН.. ТЧ, только в правленой версии... Ссылка на комментарий
Reisen 3 Опубликовано 22 Апреля 2013 Поделиться Опубликовано 22 Апреля 2013 (изменено) Пробую положить npc в анимацию после попадания. B xr_motivator.script после function motivator_binder:hit_callback(obj, amount, local_direction, who, bone_index)callstack() поместил свой код.. if (bone_index == 15 or bone_index == 19) then --// попаданиe в кости головы. local math = math local rnd = math.random(1,10) local say = "" if rnd <= 7 then --// 70% will result in heavy injury (Health reduced with script to 0.10%). obj.health =- 0.9 say = "Heavy Injury" --//state_mgr.set_state(obj, "wounded_heavy_3") obj:play_cycle("idle_to_wounded_1") elseif rnd == 8 or rnd == 9 then --// 20% chance it will result in temporary stun (Play sitting/sleeping animation). say = "Temporary Stun" --//state_mgr.set_state(obj, "sit_ass") obj:play_cycle("idle_to_wounded_0") elseif rnd == 10 then --// 10% chance it will just bounce off. say = "Ricochet" end news_manager.send_tip(db.actor, say, nil, nil, 2000) end Пробовал со state_mgr.set_state(obj, "sit_ass"), анимация начинает играть но быстро прерываетсям, наверное покрывается со state с более высоким приоритетом.Тоже самое с obj:play_cycle("idle_to_wounded_0"), начинает играть и быстро прекращается. Но если убрать все вражеские отношения (Чтобы враги не отвлекались) и стрельнут по npc то анимация будет проигриватся корректно и раз положены в анимацию npc в ней и останется.Eсть ли какой то способ чтобы npc остался в этой анимации и не прерывал ее. Изменено 22 Апреля 2013 пользователем Reisen Ссылка на комментарий
Unnamed Black Wolf 4 Опубликовано 22 Апреля 2013 Поделиться Опубликовано 22 Апреля 2013 Raisen если мне помнится, там надо захватить его под скрипт.. Чтоб стейт отработал корректно... Ссылка на комментарий
Reisen 3 Опубликовано 22 Апреля 2013 Поделиться Опубликовано 22 Апреля 2013 Не особо понимаю что значит "захватить его под скрипт", какие то примеры этого захвата под скрипт? И если можна так объяснить как для очень нового, я со скриптами от нескольких дней только знакомлюсь. Ссылка на комментарий
Shredder 49 Опубликовано 23 Апреля 2013 Поделиться Опубликовано 23 Апреля 2013 Тебе нужно добавить схему поведения. Или, возможно, допилить схему xr_wounded, чтобы она заработала так, как тебе нужно. Примеров таких схем в самой игре предостаточно, но если ты со скриптами несколько дней, то сложновато будет. Ссылка на комментарий
Shadowman 939 Опубликовано 23 Апреля 2013 Поделиться Опубликовано 23 Апреля 2013 Речь была про функцию io... ЗП, ЧН.. ТЧ, только в правленой версии... 6 патч от Macron-а? Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Callisto 2 Опубликовано 25 Апреля 2013 Поделиться Опубликовано 25 Апреля 2013 Доброго времени суток. Что-то никак не могу найти, "то ли лыжи не едут, то ли..." В общем, можно ли проверить существование файла и папки? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти