PTB 8 Опубликовано 13 Июня 2016 Здравствуйте форумчане! Если не сложно, объясните пожалуйста как пользоваться списками ------------------- >>> Класс элемента списка eat_1_ptb <<< ------------------- class "eat_1_ptb_ListItem"(CUIListItemEx) function eat_1_ptb_ListItem:__init() super() self.text_item = CUIStatic() self:AttachChild(self.text_item) self.text_item:SetFont(GetFontLetterica18Russian()) self.text_item:SetTextColor(255,216,186,140) end ------------------- >>> END <<< ------------------- function ui1_ptb:AddItemTo_eat_1_ptb(item_name) --/Добавление элемента в список eat_1_ptb local _itm = eat_1_ptb_ListItem() _itm.text_item:SetText(item_name) self.eat_1_ptb:AddItem(_itm) end Вопрос, как добавить в список что-нибудь? Заранее спасибо! В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 14 Июня 2016 @Zander_driver, Вот скрипт: function ptb_eat(obj) if obj ~= nil then if obj:section() == "eat_ptb" then local hud = ui1_ptb(get_hud()) level.start_stop_menu(hud, true) end endendclass "ui1_ptb" (CUIScriptWnd)function ui1_ptb:__init() super() self:InitControls() self:InitCallBacks()endfunction ui1_ptb:__finalize()endfunction ui1_ptb:InitControls() local xml = CScriptXmlInit() self:Init(0,0,1024,768) xml:ParseFile("ui1_ptb.xml") self.frame2 = xml:InitFrame("frame2", self) self:Register(xml:Init3tButton("frame2:b_exit", self.frame2), "b_exit") self:Register(xml:Init3tButton("frame2:button3", self.frame2), "button3") xml:InitFrame("frame2:eat_1_ptb_frame", self.frame2) self.eat_1_ptb = xml:InitList("frame2:eat_1_ptb", self.frame2) self.eat_1_ptb:ShowSelectedItem(true) self:Register(self.eat_1_ptb, "eat_1_ptb") xml:InitFrame("frame2:eat_2_ptb_frame", self.frame2) self.eat_2_ptb = xml:InitList("frame2:eat_2_ptb", self.frame2) self.eat_2_ptb:ShowSelectedItem(true) self:Register(self.eat_2_ptb, "eat_2_ptb") self.Static3 = xml:InitStatic("frame2:Static3", self.frame2) self.Static4 = xml:InitStatic("frame2:Static4", self.frame2)endfunction ui1_ptb:InitCallBacks() self:AddCallback("b_exit", ui_events.BUTTON_CLICKED, self.b_exit_button_clicked, self) self:AddCallback("button3", ui_events.BUTTON_CLICKED, self.on_quit, self)endfunction ui1_ptb:b_exit_button_clicked() self:GetHolder():start_stop_menu(self, true) alife():create("eat_ptb", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())endfunction ui1_ptb:button3_button_clicked() alife():create("medkit_army", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())end------------------- >>> Класс элемента списка eat_1_ptb <<< -------------------class "eat_1_ptb_ListItem"(CUIListItemEx)function eat_1_ptb_ListItem:__init() super() self.text_item = CUIStatic() self:AttachChild(self.text_item) self.text_item:SetFont(GetFontLetterica18Russian()) self.text_item:SetTextColor(255,216,186,140)end------------------- >>> END <<< -------------------function ui1_ptb:AddItemTo_eat_1_ptb(item_name) --/Добавление элемента в список eat_1_ptb local _itm = eat_1_ptb_ListItem() _itm.text_item:SetText(item_name) self.eat_1_ptb:AddItem(_itm)end------------------- >>> Класс элемента списка eat_2_ptb <<< -------------------class "eat_2_ptb_ListItem"(CUIListItemEx)function eat_2_ptb_ListItem:__init() super() self.text_item = CUIStatic() self:AttachChild(self.text_item) self.text_item:SetFont(GetFontLetterica18Russian()) self.text_item:SetTextColor(255,216,186,140)end------------------- >>> END <<< -------------------function ui1_ptb:AddItemTo_eat_2_ptb(item_name) --/Добавление элемента в список eat_2_ptb local _itm = eat_2_ptb_ListItem() _itm.text_item:SetText(item_name) self.eat_2_ptb:AddItem(_itm)endfunction ui1_ptb:Hide() self:GetHolder():start_stop_menu(self, true)end @Zander_driver, Сделал в Stalker UI Creator В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 15 Июня 2016 @abramcumner, Простите за глупый вопрос(про100 я в скриптах плохо шарю) как в этот список вынести например предметы которые есть в инвентаре Например есть функция: function name_func() if db.actor:object("bread") then ... end if db.actor:object("kolbasa") then ... end if db.actor:object("vodka") then ... end if db.actor:object("conserva") then ... end end Что написать вместо точек? В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 15 Июня 2016 @Max_Raf, Да, например выбрав 1 предмет из списка, нажав на кнопку что-то происходило. Заранее прошу прощения, за свои тупые вопросы! В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 15 Июня 2016 http://www.amk-team.ru/forum/topic/6185-skriptovanie/?p=1018174 В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 16 Июня 2016 (изменено) @Nazgool, self:GetHolder():start_stop_menu(self, true)alife():create("eat_ptb", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())-- спавним обратно в рюкзак alife():create("medkit_army", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())--а это для теста, просто при прохождении аптечек не хватало) Надо после, выбранного предмета из списка и нажатии на кнопку воспроизводилась функция. Изменено 16 Июня 2016 пользователем Kirgudu В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 16 Июня 2016 @Zander_driver, Простите что сразу всё не разъяснил. В общем то так : Хочу сделать ручной апгрейдер оружия или брони, решил попрактиковаться на еде. Как должно было выглядеть: Юзаем вещь, выбираем из списка предмет, во втором списке выбираем апгрейд, жмём кнопку(ту где сейчас аптечка спавнится) и хопа оружие удалилось из инвентаря и в место него добавилось новое. В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 17 Июня 2016 Здравствуйте товарищи! Захотелось обучится lua. Начал с самого простого, с операторов. Изменил скрипт прототипа дин.новостей. --Включены ли каналы? local k_bandits = false local k_dolg = false local k_svoboda = false local k_novise = true local k_military = false --local k_neizvesten = false --Сообщения канала бандитов: local k_bandits_text = { "Гопчики пацанчики, сегодня таких лахов пресанули. Все артефакты нам выложили. Сейчас пойдём их хабары шманать.", "Погодка сёне просто замечательная мля. Птички поют, солнышко светит, Пахан орёт. Ни жизнь а мечта.", "Ну а что поделать1.." } local k_dolg_text = { "Вы этих свободовцев в новых бронекостюмах видели? Эо ужас! Не учто долг по технике свободе начал отставать.", "Вчера какой то гад весь хабар спёр, оставил только записку: Здеся бил бюрер. Не учто школьники по зоне гулять начали?", "Ну а что поделать2.." } local k_svoboda_text = { "Внимание!!! В скором времени будет рейд на заставу долга. Всем кто рад надрать задницу засранцам, прозьба подойти к лукашу.", "Решил коноплю посжигать, сжёг сарай.", "Ну а что поделать3.." } local k_novise_text = { "Ребята! Помогите! Бандиты на ферме зажали.", "Чёрт, военные совсем охренели, теперь ни за 500 ни за бутылку не пропустят. Пят штук им подавай. Черти.", "Ну а что поделать4.." } local k_military_text = { "Внимание всем отрядам находящимся на кардоне. Необходимо собраться у Кузнецова в 23.00 для получения дольнейших указаний", "Всем отрядам на свалке слушать внимательно. На агропроме взорвали наш вертолёт, не простим обиды, умрём все до последнего!!!", "Ну а что поделать5.." } time_ptb = 0 -- переменная промежутка времени function time_update_spam() -- функция промежутка времени local time = time_global() -- переменная времени if time_ptb < time then time_ptb = time + 30000 -- время через которое будет вызываться сообщение truefalse() update_spam() end end function truefalse() if db.actor:object("bread") then k_bandits = true elseif db.actor:object("conserva") then k_bandits = false k_svoboda = true end end function update_spam() if k_bandits == true then news_manager.send_tip(db.actor, (k_bandits_text[math.random(6)]), nil, nil, 30000) elseif k_dolg == true then news_manager.send_tip(db.actor, (k_dolg_text[math.random(6)]), nil, nil, 30000) elseif k_svoboda == true then news_manager.send_tip(db.actor, (k_svoboda_text[math.random(6)]), nil, nil, 30000) elseif k_novise == true then news_manager.send_tip(db.actor, (k_novise_text[math.random(6)]), nil, nil, 30000) elseif k_military == true then news_manager.send_tip(db.actor, (k_military_text[math.random(6)]), nil, nil, 30000) end end Проблема в том что сообщение в истории видно, а на худ оно не показывается. Кто-нибудь с этим сталкивался? Изменил [math.random(6)] на [math.random(3)] вроде заработало. Простите, как изменить иконку сообщения? В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 18 Июня 2016 Простите за глупый вопрос, но кто-нибудь обьяснит как вызывать таймер АМК: --старт таймера в реальном времени function start_timer(name, delay, parameters) Хочу вызвать: amk.start_timer(name, delay, parameters) но не знаю что написать в скобках вместо name, delay, parameters? В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 20 Июня 2016 Здравствуйте! Снова прошу помощи. Есть функция: function start_demka() local console = get_console() console: execute("demo_play start_demka") end Как во время ролика можно отключить худ? В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 20 Июня 2016 (изменено) @TIGER_VLAD, Спасибо, помогло! Но есть ещё одна проблема: Во время полёта, можно юзать вещи, например бинокль. Можно и это как нибудь отключить? Изменено 20 Июня 2016 пользователем PTB В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 21 Июня 2016 @Kober(BRUC), Вот есть фу-ии в уроках: function del_pusto() local sim = alife() local se_obj = sim:story_object(888) --номер обьекта в game_stori_ids if se_obj then sim:release(se_obj, true) end end Незнаю подойдёт или нет, не проверял. В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение
PTB 8 Опубликовано 24 Июня 2016 @TIGER_VLAD, Честно говоря не знаю но по моему в двиг лезть надо. В жизни много плохих моментов. Пытайся избавляться от них ! Поделиться этим сообщением Ссылка на сообщение