Немогу понять почему выводится сообщение "Ремонт стоит nil рублей" помогите пожалуйста разобраться?
Скрипт вот:
local item_repair_cost = 0
local weapon_profit_margin = 1.3
function yes_no_ui_repair_slot_1:yes()
local weapon = db.actor:item_in_slot(1)
if repair_slot_money() then
if weapon ~= nil then
item_repair_cost = math.floor( (1-weapon:condition()) * weapon:cost() * weapon_profit_margin )
if weapon ~= nil and 1 > weapon:condition() then
weapon:set_condition(1)
delete_money(item_repair_cost)
news_manager.send_tip(db.actor, "Фух, починил.", 0)
end
end
end
self:no()
end
--dialogs.relocate_money(actor, item_repair_cost, "out")
function repair_slot_money(item_repair_cost) -- Проверка наличия денег у ГГ
return db.actor:money(item_repair_cost) -- >= item_repair_cost
end
Вот строка : local _question = xml:InitStatic ( "question" ,self)
_question:SetText ( "Ремонт стоит "..tostring( item_repair_cost ).." рублей" )
end
добавлено спустя 10 минут
Хочу добавить что при том что в сообщении nil деньги отнимаются согласно формуле.
karavan
раз nil выводится значит переменной другого значения не назначается. (у тебя все части кода в одном файле? )
насчет самой функции - правильная\неправильная ничего утверждать не буду - так как не все части кода вижу(да и думалка не работает :-))
Но я бы немножко по другому сделал.
если ты хочешь получить цену ремонта то логичней разделить функцию - одна при вызове (нажатии одной кнопки меню ) считает цену ремонта в зависимости от состояния и цены ствола (можно еще кучу факторов добавить) и выводит инфу в меню.
Другая непосредственно чинит - если ГГ согласен и жмет кнопку "починить"
В общем если надо - то завтра попробую свой вариант сделать.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik Жаль что ничего другого не назначат кроме как nil. 8-(
А мысль с разделением кнопок интересная попробую сделать, но и ты если будут время выложи свой вариант пожалуйста.
Подскажите пожалуйста,как сделать квест,чтобы он начинался не от кокого либо Нпс_а,а от самого Гг,например как в ЗП.Помогите пожалуйста,а то я понять немогу.
помогите добавить уровень из зп в тч.я примерно знаю как подключать локации.а как добавлять их не знаю.какие файлы надо копировать?в каких регить новый уровень?
Т_О_П_О_Л_Ь_ предоставил сайт,но там есть только создание совсем нового уровня,а об добавлении уже готового ничего.:-(
Вот скорость добавления постов: день не прошел, а уже страниц две заполнено. А я еще не доспросил.
Как работать с damage.ltx
Там напротив каждой части тела стоит два значения (=1, 0.ХХ): первое - всегда 1, второе - не больше 1. За что они отвечают (каждое)?
Там идут названия частей тела, я не могу разобраться, что это: upperarm, calf. И еще, что такое spine1,2,3 - почему их три.
Ну и напоследок - что такое FULL SECTIONS. За что это отвечает?
добавлено спустя 5 минут
Вспомнил: bones_koeff_protection = kurtka_mask_damage из outfit.ltx - эта строчка как раз и ссылается на то, какие коэффициенты мы используем?
Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
karavan
насчет твоей функции - я так думаю что ты не там текст выводишь. Из-за этого и nil.
вот этот блок local _question = xml:InitStatic ( "question" ,self)
_question:SetText ( "Ремонт стоит "..tostring( item_repair_cost ).." рублей" )
end
я так понимаю у тебя входит в функцию инициации компонентов :InitControls()
а тебе нужно чтобы текст выводился на нажатие кнопки - следовательно нужно вывод текста писать в функцию который обрабатывает событие нажатия кнопки
вот допустим у меня на нажатие кнопки меню срабатывает эта функция
function my_message:message_1() local vij = self:GetStatic("screen") --инициализация виджета по имени local text= this.show_message() - получим текст из функции vij:InitTexture("ui\\screen.dds") --отобразим в виджете текстуру. vij:SetText(text) -- выведем текст
end
то есть для вывода текста в виджет нужно сначала написать функцию которая этот текст будет возвращать при вызове как результат своей работы - и только затем этот текст можно будет вывести через метод SetText(text) .
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
1)Скажите можно как нибудь восстановить вампиризм кровоссоса в ТЧ..
2)Как сделать чтобы рукова менялись когда костюм одеваешь....
Помогите пожалуйста!!Заранее спасибо!!
АнархОПанк можешь подсказать,вот в игре стоят модели из чистого неба,и вот я кого-то убиваю,и при убийстве он как кукла падает на землю и его невозможно сдвинуть не перетащить куда-нибудь подскажи как это исправить.
Сталкер Монолита
1. В диалог игры можно вывести только заранее написанный текст (либо один множества заранее написанных вариантов).
2. А зачем тебе в диалог? Ты с SCITE работаешь?
Это прога в которой пишешь код как в обычном редакторе жмешь F5 (как в Визуал Студии для шарпа) и получаешь результат в консоли.
То есть можно написать заранее функции с формулами математики и физики - в которые затем просто передавать значения через другие функции - и получать решение.
Пример:
--функция возвращает площадь треугольника по длинам сторон
function GetSquareTriangle(a,b,c)
--площадь произвольного треугольника по формуле Герона
local p =(a+b+c)/2 --полупериметр
local s = math.sqrt(p*(p-a)*(p-b)*(p-c))
return s
end
--делаем вызов этой функции в SCITE с передачей аргументов - длин сторон
function result()
local res = GetSquareTriangle(10,10,10)
print(res)
end
result()
в консоли видим ответ - 43.3 с копейками
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Сталкер Монолита, если писать диалог не через xml, а через скрипт, то можно. Фраза диалога, в таком случае, будет иметь вид:
...
local a = 5
local b = 3
local cost = a + b
local phr = dlg:AddPhrase("Ты должен заплатить: " .. cost .. " рублей.","0","",-10000)
...
В игре у тебя будет написано так:
Ты должен заплатить: 8 рублей.
Примеры, как писать диалоги через скрипт, смотри в файле dialog_manager.script и ещё функции в lua_help.script.
Типа универсальный решебник задач по физике и алгебре...
Представляю, подходишь к сталкеру в игре с просьбой: "Задачку не решишь?":lol).
отредактировал(а) Максим Р.: 16-04-2010 15:50 GMT3 час.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.