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

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


Svoboда

Рекомендуемые сообщения

После убийства непися можно сделать удаление этого оружия

Поделиться этим сообщением


Ссылка на сообщение

Куфзук часы я перебрал, как вывести сообщение ужо понял но вот как определить сколько аптечек у ГГ незнаю как

 

Добавлено через 3 мин.:

Была идея определить для каждого числа но это не есть выполнимо я например ношу 100-120 аптечек а ктото мож всего 10 просчитывать все варианты както не гуд

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Мда я думал что хоть немного разберусь но нет обьясни пожалуйста какими способом прилепить вывод цифры на экран точнее функция вывода меня не интересует а интересует как её вставить чтобы она циферку понимала и выводила

Изменено пользователем TRAMP14

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Охохо чем больше я занимаюсь скриптоучением тем больше мне хочет плюнуть и стать конфигером. Куфзук так должно получится?

local function counting_kits(item)
    if item:name() == "medkit" or item:name() == "medkit_army" or item:name() == "medkit_scientic" then
        number_of_kits = number_of_kits + 1
    end
end

local number_of_kits = 0
function all_kits (actor, npc)
    actor:inventory_for_each(counting_kits)
    return number_of_kits
end
    msg = string.format(number_of_kits)    
end

Изменено пользователем TRAMP14

Поделиться этим сообщением


Ссылка на сообщение

Помогите пожалуйста делал новую фичу по этому уроку но при использовании предмета звука нет. Почему? Помогите разобратся.

Есть подозрение что неправильно прописал звуки, напишите пожалуйста пример

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

Блин опять етото файл, третий вылет по скрипту и всё время етот файл. как править?

Изменено пользователем TRAMP14

Поделиться этим сообщением


Ссылка на сообщение

Министр вот всё как сказал Куфзук

local function counting_kits(item)
    local section = item:section()
    if section == "medkit" or section == "medkit_army" or section == "medkit_scientic" then
        number_of_kits = number_of_kits + 1
    end
end

function all_kits ()
    number_of_kits = 0
    db.actor:inventory_for_each(counting_kits)
    return number_of_kits
end

function output_kits_to_hud()
    local hud = get_hud()
    local cs = hud:GetCustomStatic("hud_show_time")
    if cs == nil then
        hud:AddCustomStatic("hud_time_static", true)
        hud:AddCustomStatic("hud_show_time", true)
        cs = hud:GetCustomStatic("hud_show_time")
    end

    msg = string.format("%s", all_kits())
    
    if cs ~= nil then cs:wnd():SetText(msg) end
end

 

 

Добавлено через 3 мин.:

znachara идиотский конечно вопрос но не забыл текстуру в ui положить?

Поделиться этим сообщением


Ссылка на сообщение

Помогите пожалуйста. сделал вот такую менюшку

class "cheat" (CUIScriptWnd)
function nachali() -- пошла жара
level.start_stop_menu(cheat(get_hud()),true)
end
function cheat:__init(owner) super()
self.owner = owner
self:InitCtrls()
self:InitCall()
end
function cheat:__finalize()
end
function cheat:InitControls()
self:Init(50,50,550,450)

    -- отсюда будут братся текстурки
    local xml = CScriptXmlInit()
    xml:ParseFile("ui_menuv.xml")

     -- рамка менюшки
    xml:InitStatic("background", self)

    -- кнопки меню
self:Register(xml:Init3tButton("btn_1", self),"btn_1")
self:Register(xml:Init3tButton("btn_2", self),"btn_2")
self:Register(xml:Init3tButton("btn_3", self),"btn_3")
    -- незабываем про выход
    self:Register (xml:Init3tButton("btn_quit", self),"btn_quit")

end

function cheat:InitCallBacks()
    -- обьяснения что делать кнопкам
    self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self:apte, self)
    self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self:bint, self)
    self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self:konserva, self)
    self:AddCallback"btn_quit", ui_events.BUTTON_CLICKED, self:on_quit, self)
end
-- нажатие первой кнопки - спавним аптечку    
function cheat:apte() 
alife():create("medkit", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())
end
-- вторая кнопка - бинт
function cheat:bint()
alife():create("bandage", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())
end
-- третья кнопка - консерва
function cheat:konserva()
alife():create("conserva", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())
end
-- ввыход
function cheat:on_quit()
-- убираем наше окно, показываем предыдущее (или возвращаемся в игру)
    local console = get_console()
    GetHolder():start_stop_menu (self.owner, true)
    GetHolder():start_stop_menu (self,true)
    owner:Show    (true)
end

 

 

но в результате вылет

--Expression    : fatal error
--Function      : CScriptEngine::lua_error
--File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
--Line          : 73
--Description   : <no expression>
--Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:216: attempt to index global 'moi_modik' (a nil value)

moi_modik - название файла с етим скриптом. Что не так? как исправить?

Поделиться этим сообщением


Ссылка на сообщение

rexel521 бинд это так я сдуру поставил, я поставил в диалог с волком теперь вообще не запускается :)

Stalk15 а можно исправление - где ошибки?

Поделиться этим сообщением


Ссылка на сообщение

Я использовал :) 56 ошибок и ни одной я не понял

Поделиться этим сообщением


Ссылка на сообщение

Счас запусти тетсить новый скрипт - я вижу ошибок 2 (сам допустил специально) а он ни одной не нашёл

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

АААА ну я имя функции написал а саму функцию нет

Строгое предупреждение от модератора kokkai
Общение в таком духе следует вести в личке

 

Добавлено через 68 мин.:

проверьте пожалуйста функцию

function delslot()
local mel = db.actor:item_in_slot(3)
local oItem = db.actor:object(mel) 
if oItem then
db.actor:drop_item(oItem) 
alife():release(alife():object(oItem:id()), true) 
end
end

Функция удаления предмета находящегося в слоте. Составлял так. на коленке но мож правильная :)

Изменено пользователем kokkai

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

А как тогда?

Сообщение от модератора kokkai
Старайтесь избегать таких постов. Если не получаете удовлетворительного ответа, лучше задать вопрос уже в личке.
Изменено пользователем kokkai

Поделиться этим сообщением


Ссылка на сообщение

Помогите заспавнить дом (здание типа как на АТП двухэтажное). Как мне всёравно - можно через скрипт, можно через спавн. Хочу базу для группировки сделать.

Поделиться этим сообщением


Ссылка на сообщение

Появилась новая идея, но опыта нехватает. Можно ли каким нибудь способом запретить использовать определённый тип аптечек?

 

Добавлено через 5 мин.:

И есчо - будет такая функция работать?

function item()
local obj = obj:section()
if obj == 'medkit' then 
alife():create("medkit", db.actor():position(), 1, db.actor:game_vertex_id(), db.actor:id())
end
end

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Сталкер ломать нехочется. А так профессионалы сразу скажут что тут неправильно. он у меня и так чудит.

 

p/s/ Что такое - я не могу исправлять свои сообщения ?

Сообщение от модератора kokkai
Только в течение 15 мин.

 

Добавлено через 29 мин.:

Сообщение от модератора kokkai

Только в течение 15 мин.

Я сообщение написал - заметил ошибку и сразуже хотел нажать "Исправить" но такой кнопки не наблюдается

 

Чоё? Как ты можешь скриптом игру сломать. Хоть понял, что сказал?

Если ты эту свою функцию вызовешь - вылетит. Потому что ты применяешь метод section() к какому-то obj, который у тебя == nil.

Чай не первый день скриптингом занимаюсь - после создания нескольких неписей (неудачных) чистая игра стала вылетать с вылетами логики.

И ещё у бинокля появился индикатор патронов (откуда?)

Изменено пользователем kokkai

Поделиться этим сообщением


Ссылка на сообщение

Левел вертекс =1 это я с какогото урока скомуниздл функцию спавна в инвентарь. А хочу сделать я многоразовую аптечку только чтоб с каждым разом она меньше лиечила. К томуже - если я проверю у меня будет вылет и я всё равно полезу сюда за советом по решению. Так что лучше выложить щас чем потом копатся в логах. А по второму вопросу?

Можно ли каким нибудь способом запретить использовать определённый тип аптечек?

Поделиться этим сообщением


Ссылка на сообщение

А я вё время думаю завчем в етих скобках пишт локальные так ето что луа не взбеслся.

Можно ли каким нибудь способом запретить использовать определённый тип аптечек?

Поделиться этим сообщением


Ссылка на сообщение

Как через скрипт (в игре) можно прибавлять и убавлять максимальный переносимый вес?

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Значит только в ЗП .......

Создал новую фичу

Основной скрипт

function nyss()
local itemslot = db.actor:item_in_slot(10)
if itemslot == "chasbI" then 
myne.show_time()
db.actor:give_info_portion("vivod")
if itemslot ~= "chasbI" and db.actor:has_info("vivod") then 
myne.ybiraem()
db.actor:disable_info_portion("vivod")
end 
end

текст myne.show_time()

function show_time()
    local hud = get_hud()
    local cs = hud:GetCustomStatic("hud_show_time")
    if cs == nil then
        hud:AddCustomStatic("hud_time_static", true)
        hud:AddCustomStatic("hud_show_time", true)
        cs = hud:GetCustomStatic("hud_show_time")
    end

    local time_h = level.get_time_hours()
    local time_m = level.get_time_minutes()
    local msg
    if time_m >= 10 then
        msg = string.format(" %02d:%02d\n", time_h, time_m)
    else
        msg = string.format(" %02d:%02d\n", time_h, time_m)
    end

    if cs ~= nil then cs:wnd():SetText(msg) end
end

текст myne.ybiraem()

function ybiraem()
get_hud():RemoveCustomStatic("hud_time_static")
get_hud():RemoveCustomStatic("hud_show_time")
end

Собственно - когда на поясе предмет, выводится часы когда предмет снимается часы тоже снимаются но на практике :

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:216: attempt to index global 'aktivacii' (a nil value)

 

Что нитак? луа чекер сказал что всё нормально, но нет. Вылет

 

p/s/ aktivacii - название скрипта

Изменено пользователем TRAMP14

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

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