Пользователей: 2
Гостей: 904
Всего: 906

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
17-05-2011 04:46 GMT3 час. #1481048   
Artos Спасибо за ссыль. Полезная штуковинка.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
17-05-2011 11:34 GMT3 час. #1481097   
Создал скриптовое окно. В нем список и ScrollBar. ScrollBar у меня почему то на много длинее, чем само окно, а эле


Новые фишки для сталкера(см. журнал)
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
17-05-2011 12:35 GMT3 час. #1481117   
Stalk15 Откорректируй координаты в xml файле. Кстати, его и надо было выкладывать, вместо скрипта.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
17-05-2011 13:08 GMT3 час. #1481121   
Stalk15
Дополню (поправлю) ответ singapur22'а:

Ты задал высоту строки для итемов(строк) в окне скролла:
  self.list_items:SetItemHeight(22)

Очевидно, что с 22 у тебя вылезают за пределы твоего окна.

а) Задай высоту окна скролла типа:
  self.list_items:Init(x,y,w,h)

б) установить поменьше высоту, выделенную для каждой строки:
  self.list_items:SetItemHeight(16)

в) и уменьшить шрифт типа:
  self.list_items:SetFont( GetFontLetterica16Russian() )
Комбинацией а+б+в - подбирай требуемое.

Примечание: можно и в коде или в xml'ке задать.

P.S. Сорри, сдублировал ... пост подкорректировал.

отредактировал(а) Artos: 17-05-2011 13:48 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
17-05-2011 13:54 GMT3 час. #1481133   
Artos
Stalk15 Немного не то. SetItemHeight() задаёт высоту каждой сроки, и никак не влияет на высоту листа. То

отредактировал(а) singapur22: 17-05-2011 14:24 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
17-05-2011 14:44 GMT3 час. #1481144   
singapur22
Не соглашусь с "Немного не то", это просто два равноправных варианта.
(Не)удобство выставлять нужные параметры в скриптах или xml'ках - дело вкуса и зависит от конкретного применения. При создании динамических меню/худов порою xml'ками не добьешься нужного результата.
В своем ответе сделал упор на скрипты, т.к. Stalk15 выложил именно скрипт и все можно сделать/поправить именно в нем.

По сути:
1. Базой является размер окна скролла и задается:
а) x="220" y="50" width="365" height="340" - в xml'ке
б) self.list_items:Init(220,50,265,340) - скриптом

2. Кол-во строк, которые будут отображаться вычисляется просто: высота окна делится на высоту стороки для итемов. Изменяя высоту строк:
а) item_height="20" - в xml'ке
б) self.list_items:SetItemHeight(20) - скриптом
- выбираем сколько строк хотим видеть в выбранном окне скролла, конечно же учитавая размер выбранного скрипта:
а) font="letterica18" - в xml'ке
б) self.list_items:SetFont( GetFontLetterica16Russian() ) - скриптом

Если учесть, что кто-то играет на разрешении 1024x768, а кто-то 1920x1200 - выбор использования фиксированных xml'ек или скриптов ... ;-)

отредактировал(а) Artos: 17-05-2011 14:53 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
17-05-2011 15:12 GMT3 час. #1481158   
Artos Вкусы вкусами, но я не считаю рациональным выводить в скрипты статические параметры. Другое дело, когда планируется динамическое использование. Вот представь, у меня щас на данный момент вкладка спавнера в проекте, при наличии 28 элементов, имеет размер в 613 строк. Где около 10% комменты. И это при том, что я стараюсь не использовать в скриптах то, что можно задать в xml. А теперь представь, какого размера был бы скрипт, если бы я вывел в него все возможные параметры. :blink Такой код явно бы тяжело читался. Статичные параметры просто напросто бы мешали.
И на счёт разрешения. Каким бы оно нибыло, в 90% случаев, лишь требуется изменять положение окна, что в скриптах занимает лишь одну строчку, так как сам размер окна обычно не превышает 900Х600 пикселей.

P.S.
Кстати, я играю на разрешении 1024x768. И это при мониторе ('19). А вся проблема в том, что любые другие разрешения в игре настроены некорректно. В итоге изображение или слишком растягивается, или чересчур сжимается. Разрешение 1024x768, нахожу самым оптимальным для монитора с соотношением (8/5).

отредактировал(а) singapur22: 17-05-2011 15:34 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
17-05-2011 16:05 GMT3 час. #1481190   
singapur22
"я не считаю" - это и есть 'вкус' ...
А если кто-то, например я, считаю иначе? :-)
В таких случаях только аргументация может что-то разруливать.
Ты приводишь свою, я свою. Пока вроде бы НЕТ разноглачий в том, что можно использовать и xml'ки и скрипты.
Далее, ты критикуешь скрипты ... Позволю и я немного покритиковать xml'ки.
1. То, что можно сделать скриптами - порой невозможно в xml'ках.
2. Если можно сделать одним файлом (скриптом) - так ли уж нужно использовать второй (xml)?
3. О динамичности скрипта и статичности xml - уже упоминалось.
...
О спавнере:
1. Тоже писал спавнер, его упрощеный вариант (спавн-меню) можно посмотреть в пакете к NLC6.008. Начинал вероятно с того же, что и у тебя, кучка xml'ек и кучка скриптов. ... В итоге остался один скрипт + ltx'шка-конфиг. Избавился от всех xml'ек.
Тебе же хорошо известно, что кол-во кода, кол-во строк и пр. , в том числе и его читабельность, зависит в первую очередь от алгоритма!
2. Не в обиду (т.к. понимаю, что при написании черновика порой проще по-кусочкам), но взяв твой вариант"Mobile_Manager" решил посмотреть 'в работе'. Начал прикручивать ... в итоге получил один скрипт гораздо короче твоих исходных и небольшой файлик xml - остаток от твоих.
...
О разрешении: Можно вообще ничего не менять, но ... имея широкоформатник и используя 1920x1200 - я (особенно в инструментарии) правлю и картинки, и кнопки, и шрифты, и многое прочее...
P.S. Считаю наоборот: следует не подстраиваться под разрешение которое лучше остальных доработали разрабы, а выжать из доступного все под то разрешение, в котором мне удобнее.
И если даже нам разрабы дали только 4:3 и 16:10, то в моде уже веду работы по автоподстройке под 5x4 и 16x9, т.к. немало уже игроков и на ноутах играются.

Кстати, хотел подсказат/напомнить: в твоем ММ часто используется конструкция:
  SetText(game.translate_string(string)
которая эквивалентна:
  SetTextST(string)

отредактировал(а) Artos: 17-05-2011 16:30 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
17-05-2011 17:00 GMT3 час. #1481222   
Artos Ну я вроде не критикую создание менюшек только через скрипт. Маленькие менюшки (с низким функционалом) вполне обходятся и без xml'ек. Но если меню с множеством страниц и элементов, тут без них просто не обойтись. Очень хорошо помогают авто-теги, для оформления статического визуала, которые не нужно инициализировать через скрипт, а достаточно прописать в xml'ке.

1. То, что можно сделать скриптами - порой невозможно в xml'ках.

Не спорю. Но есть ситуации и наоборот. Например класс CUIScrollView() просто требует наличие xml'ки, без неё он просто не инициализируется.

2. Не в обиду (т.к. понимаю, что при написании черновика порой проще по-кусочкам), но взяв твой вариант"Mobile_Manager" решил посмотреть 'в работе'. Начал прикручивать ... в итоге получил один скрипт гораздо короче твоих исходных и небольшой файлик xml - остаток от твоих.

Как ты сам сказал, это действительно пока черновая работа, и пишется с возможностями расширения в различных направлениях. А в некоторых случаях, просто на скорую руку. Улучшение и упрощение кода будет производиться в самую последнюю очередь. Когда всё задуманное будет реализовано в полной мере.

Считаю наоборот: следует не подстраиваться под разрешение которое лучше остальных доработали разрабы, а выжать из доступного все под то разрешение, в котором мне удобнее.

Ну тут уже бесполезно чтото изменять. Привык к данному формату уже на столько, что просто не смогу работать при другом. Стажа 3 года, не шутка. :-)

Кстати, хотел подсказат/напомнить: в твоем ММ часто используется конструкция:
SetText(game.translate_string(string)
которая эквивалентна:
SetTextST(string)

Огромное спасибо за Подсказку!!! А до меня всё никак не доходило, чем он вообще отличается?! ;-)


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
17-05-2011 17:44 GMT3 час. #1481237   

singapur22: Но если меню с множеством страниц и элементов, тут без них просто не обойтись.
Несмотря на сказаное мною: "... зависит в первую очередь от алгоритма!",**5001618d69873ce82a42**= 8 ;--/
rat_normal = 8 ;--/
tushkano_normal = 8 ;--/
chimera_normal = 8 ;--/
electro_chimera = 8 ;--/
fracture_strong = 8 ;--/
zombie_normal = 8 ;--/
zombie_strong = 8 ;--/
zombie_trup = 8,Зомби(trup) ;--/
zombie_trup2 = 8,Зомби(trup2) ;--/
zombie_hell = 8,Зомби(hell) ;--/
zombie_ghost = 8,Зомби(ghost) ;--/
zombie_immortal = 8,Зомби(imm) ;--/
zombie_blow = 8,Зомби(blow) ;--/

[15];--/ "Техника"/Vehicles
vehicle_uaz = 8,КОЗЛИК
vehicle_zaz = 8,ЗАПОРОЖЕЦ
vehicle_msk = 8,МОСКВИЧ
vehicle_niva = 8,НИВА
vehicle_kamaz = 8,КАМАЗ
vehicle_tr13 = 8,ТРАКТОР
vehicle_btr = 8,БТР
helicopter = 15,ВЕРТОЛЕТ
helicopter_mi2 = 15,ВЕРТОЛЕТ_Ми-2
helicopter_mi6 = 15,ВЕРТОЛЕТ_Ми-6
[/code]
- по сути это выборка, пополнение листами/списками делается за 5 минут ... практически только в конфиге.
А это код (без хелпов) для худа, который все эти 15 листов-списков крутит:
[code]
--/ -----------------------------------------------------------------------------------------------
class "UI_SpawnMenu" (CUIScriptWnd)
--/ -----------------------------------------------------------------------------------------------
function UI_SpawnMenu:__init() super()
if not bInit then init() end
self.wide = device().width/device().height > 1.333
self:InitControls()
self:InitCallBacks()
end

function UI_SpawnMenu:__finalize() end

function UI_SpawnMenu:InitControls()
--self:SetWndRect(Frect():set(0,0,1024,768)) --/STCS&SCOP
self:Init(25,25,540,460) --/SHOC
self:SetAutoDelete(true)
--/ текстура
local background = CUIStatic()
background:SetWndRect(0,0,540,461)
background:InitTexture("ui_menu_options_dlg")
background:SetStretchTexture(true)
background:SetAutoDelete(true)
self:AttachChild(background)
--/ заголовок
local title = CUIStatic()
title:SetWndRect(45,10,300,33) --/SHOC
title:SetFont(GetFontGraffiti19Russian()) --/GetFontLetterica18Russian()
title:SetTextColor(255,216,188,140)
title:SetTextAlign(0)
title:SetText("Меню спавна")
title:SetAutoDelete(true)
self:AttachChild(title)
--/ картинка (текстура)
local pic = CUIButton() --/CUIStatic()
--pic:SetWndRect(435,50,77,77) --/SHOC
pic:Init(435,50,77,77)
pic:InitTexture("ui\\ui_skull")
pic:SetStretchTexture(true)
if self.wide then --/ подбираем смещение и ширину картинки
pic:SetWidth(64)
end
pic:SetAutoDelete(true)
self:AttachChild(pic)
self:Register(pic,"btn_pic")
--/ кнопки спавн-меню
local btn
local tP = {x=45,y=35,w=117,h=29}
for i=1,#tSpawnMenu do
local x = tP.x + 119*math.floor((i-1)/10)
local y = tP.y + 30*i - 300*math.floor((i-1)/10)
btn = this.Get_Button(x,y,tP.w,tP.h)
btn:SetText(tSpawnMenu.title or "")
self:AttachChild(btn)
self:Register(btn,"btn_"..i)
end
--/ кнопка выхода (quit)
btn = this.Get_Button(402,400,117,29)
btn:SetTextST("ui_inv_exit")
self:AttachChild(btn)
self:Register(btn,"btn_quit")
--/ копирайт
local copyright = CUIStatic()
copyright:SetWndRect(55,430,400,25) --/SHOC
copyright:SetFont(GetFontSmall()) --/GetFontLetterica16Russian()
copyright:SetTextColor(255,216,188,140)
copyright:SetTextAlign(0)
copyright:SetText("Copyright 2010 © SIMBION multiMod")
copyright:SetAutoDelete(true)
self:AttachChild(copyright)
UI_MySpawn(self) --/ добавочка
end

function UI_SpawnMenu:InitCallBacks()
for i=1,#tSpawnMenu do
self["OnButton_"..i] = function() self:Get_MenuDlg(i) end
self:AddCallback("btn_"..i, ui_events.BUTTON_CLICKED, self["OnButton_"..i], self)
end
self:AddCallback("btn_pic", ui_events.BUTTON_CLICKED, self.OnList, self)
self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnQuit, self)
end

function UI_SpawnMenu:OnKeyboard(dik, keyboard_action)
local bRes = CUIScriptWnd.OnKeyboard(self, dik, keyboard_action)
if bRes == false then
local bind = dik_to_bind(dik)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
self:OnQuit()
end
end
end
return bRes --/>
end

function UI_SpawnMenu:OnQuit()
--/ возврат: закрываем окно диалога
if self:GetHolder() then
if self.owner then self:GetHolder():start_stop_menu(self.owner, true) end
self:GetHolder():start_stop_menu(self, true)
if self.owner then self.owner:Show(true) end
end
if this.Check_Game() then --/ если в игре
get_console():execute("main_menu off") --/ закрываем игровое меню
end
end
--/ -----------------------------------------------------------------
--/ Menu
--/ -----------------------------------------------------------------
function UI_SpawnMenu:Get_MenuDlg(iNum)
if not self.spawn_dlg then self.spawn_dlg = {} end
if not self.spawn_dlg[iNum] then
self.spawn_dlg[iNum] = UI_SpawnDlg(iNum)
self.spawn_dlg[iNum].owner = self
end
self:GetHolder():start_stop_menu(self.spawn_dlg[iNum], true)
self:GetHolder():start_stop_menu(self, true)
self:Show(false)
end
function UI_SpawnMenu:OnList()
this.Debug_Spawn()
self:OnQuit()
end
--/ -----------------------------------------------------------------------------------------------
class "UI_MySpawn" (CUIScriptWnd)
--/ -----------------------------------------------------------------------------------------------
function UI_MySpawn:__init(owner) super()
self.owner = owner
self.to_actor = nil
self:InitControls()
self:InitCallBacks()
end

function UI_MySpawn:__finalize() end

function UI_MySpawn:InitControls()
--/ строка заголовка
self.note = CUIStatic()
self.note:SetWndRect(185,360,300,23) --/SHOC
self.note:SetFont(GetFontLetterica16Russian())
--self.note:SetTextColor(255,216,188,140)
self.note:SetTextAlign(0)
self.note:SetText("... или введите свою секцию объекта")
self.note:SetAutoDelete(true)
self.owner:AttachChild(self.note)
--/ строка/окно ввода
self.box = CUIEditBox()
self.box:Init(175,375,325,23) --/SetWndRect
self.box:InitTexture("ui_linetext_e")
self.box:SetAutoDelete(true)
self.owner:AttachChild(self.box)
self:Register(self.box,"box_edt")
--/ ческ-кнопка
self.chk = this.Get_CheckButton(175,400,52,21)
self.chk:SetText("<~ToActor")
self.chk:SetTextColor(255,231,153,022)
self.owner:AttachChild(self.chk)
self:Register(self.chk,"btn_chk")
self.chk:Show(false)
--/ кнопка действия (act)
self.act = this.Get_Button(283,400,117,29)
self.act:SetTextST("ui_mm_apply")
self.act:Show(false)
self.owner:AttachChild(self.act)
self:Register(self.act,"btn_act")
end

function UI_MySpawn:InitCallBacks()
self:AddCallback("box_edt", ui_events.EDIT_TEXT_CHANGED, self.OnButton_change, self)
self:AddCallback("btn_act", ui_events.BUTTON_CLICKED, self.OnButton_spawn, self)
end

function UI_MySpawn:OnButton_change()
local sStr = self.box:GetText() or ""
local iClassId = sStr:len() >= 3 and this.Get_ClassId(sStr)
if iClassId then
self.note:SetTextST(this.Get_Name(sStr) or "")
self.note:SetTextColor(255,128,255,128)
self.act:Show(true)
local sInvName = this.Get_InvName(sStr) or ""
if sInvName ~= "" then
self.chk:Show(true)
if self.to_actor == nil then
self.to_actor = true
self.chk:SetCheck(true)
end
end
elseif self.act:IsShown() then
self.note:SetText("... или введите свою секцию объекта")
self.note:SetTextColor(255,255,255,128)
self.act:Show(false)
self.chk:Show(false)
end
end

function UI_MySpawn:OnButton_spawn()
local sSection = self.box:GetText() or ""
if this.Get_ClassId(sSection) then
local iDist = 8
if self.chk and self.chk:GetCheck() then
iDist = 0 --/ спавн актору
elseif this.Get_InvName(sStr) ~= "" then
iDist = 1.5 --/ предмет: спавн рядом
end
this.Make_Spawn(sSection,iDist)
end
end

--/ -----------------------------------------------------------------------------------------------
class "UI_SpawnDlg" (CUIScriptWnd)
--/ -----------------------------------------------------------------------------------------------
function UI_SpawnDlg:__init(iNum) super()
self.menu = iNum and tSpawnMenu[iNum]
if self.menu then
self:InitControls()
self:InitCallBacks()
end
end

function UI_SpawnDlg:Update()
CUIScriptWnd.Update(self)
if not self.first_upd then
self.first_upd = true
if self.btn_chk then
self.btn_chk:SetCheck(true)
end
end
end

function UI_SpawnDlg:__finalize() end

function UI_SpawnDlg:InitControls()
--self:SetWndRect(Frect():set(0,0,1024,768))
self:Init(25,25,540,460)
self:SetAutoDelete(true)
--/ текстура
local background = CUIStatic()
background:SetWndRect(0,0,540,461)
background:InitTexture("ui_menu_options_dlg")
background:SetStretchTexture(true)
background:SetAutoDelete(true)
self:AttachChild(background)
--/ заголовок
local title = CUIStatic()
title:SetWndRect(45,10,300,33) --/SHOC
title:SetFont(GetFontGraffiti19Russian()) --/GetFontLetterica18Russian()
title:SetTextColor(255,216,188,140)
title:SetTextAlign(0)
title:SetText(self.menu.title or "Error!")
title:SetAutoDelete(true)
self:AttachChild(title)
--/ кнопки
local btn
local tP = {x=45,y=35,w=117,h=29}
local tD = self.menu.data
for i=1,#tD do
local x = tP.x + 119*math.floor((i-1)/10)
local y = tP.y + 30*i - 300*math.floor((i-1)/10)
btn = this.Get_Button(x,y,tP.w,tP.h)
if not (tD.text and tD.text ~= "") then
tD.text = this.Get_Name(tD.sect)
end
btn:SetTextST(tD.text)
self:AttachChild(btn)
self:Register(btn,"btn_"..i)
end
if self.menu.inv then --/ признак 'инвентарности' предмета
--/ ческ-кнопка
self.btn_chk = this.Get_CheckButton(45,405,52,21)
self.btn_chk:SetCheck(true) --/#?# TODO: дефорт не работает - разобраться!
self.btn_chk:SetText("<~OnActor")
self.btn_chk:SetTextColor(255,231,153,022)
self:AttachChild(self.btn_chk)
self:Register(self.btn_chk,"btn_chk") --/#?# а нужно?
end
--/ кнопка назад
btn = this.Get_Button(283,400,117,29)
btn:SetTextST("ui_mm_back")
self:AttachChild(btn)
self:Register(btn,"btn_back")
--/ кнопка выхода
btn = this.Get_Button(402,400,117,29)
btn:SetTextST("ui_inv_exit")
self:AttachChild(btn)
self:Register(btn,"btn_quit")
end

function UI_SpawnDlg:InitCallBacks()
for i=1,#self.menu.data do
self["OnButton_"..i] = function() self:Get_Spawn(i) end
self:AddCallback("btn_"..i, ui_events.BUTTON_CLICKED, self["OnButton_"..i], self)
end
--/ quit&back
self:AddCallback("btn_back", ui_events.BUTTON_CLICKED, self.OnBack, self)
self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnQuit, self)
end

function UI_SpawnDlg:OnKeyboard(dik, keyboard_action)
local bRes = CUIScriptWnd.OnKeyboard(self, dik, keyboard_action)
if bRes == false then
local bind = dik_to_bind(dik)
if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
if dik == DIK_keys.DIK_ESCAPE then
self:OnQuit()
end
end
end
return bRes --/>
end

--/ Back
function UI_SpawnDlg:OnBack()
--/ закрываем окно меню, возврат в предыдущее
self:GetHolder():start_stop_menu(self.owner, true)
self:GetHolder():start_stop_menu(self, true)
self:Show(false)
end

--/ Quit
function UI_SpawnDlg:OnQuit()
--/ закрываем окно меню, возврат в предыдущее (или возврат в игру)
self:GetHolder():start_stop_menu(self.owner, true)
self:GetHolder():start_stop_menu(self, true)
self.owner:Show(false)
if this.Check_Game() then --/ если в игре
get_console():execute("main_menu off") --/ закрываем игровое меню
end
end

function UI_SpawnDlg:Get_Spawn(iNum)
local sSection = self.menu.data[iNum].sect
local iDist = self.menu.data[iNum].dist or 8
if self.btn_chk and self.btn_chk:GetCheck() then
iDist = 0 --/ спавн актору
elseif self.menu.inv or this.Get_InvName(sStr) ~= "" then
iDist = 1.5 --/ предмет: спавн рядом
end
this.Make_Spawn(sSection,iDist)
end

--/ -----------------------------------------------------------------
--/ HELPERs
--/ -----------------------------------------------------------------
function get_ui_menu()
-- printf("get_ui_menu:[%s]", ">") --/#~#
if not spawn_menu then
spawn_menu = UI_SpawnMenu()
end
return spawn_menu --/>
end
--/ ---------------------------------------------
function Get_Button(x,y,w,h)
local btn = CUI3tButton()
btn:Init(x,y,w,h)
btn:InitTexture("ui_button_ordinary")
btn:SetStretchTexture(true)
btn:SetTextAlign(2) --/ Left|Right|Center: 0|1|2
btn:SetAutoDelete(true)
return btn --/>
end

function Get_CheckButton(x,y,w,h)
local btn = CUICheckButton()
btn:Init(x,y,w,h)
btn:InitTexture("ui_checker")
btn:SetTextureOffset(5,0)
btn:SetTextAlign(0)
btn:SetAutoDelete(true)
return btn --/>
end
[/code]
- и все это без xml под ТЧ/ЧН/ЗП (списки в конфигах конечно имеют различия).

На этом предлагаю 'защищать вкусы' закончить. :-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
18-05-2011 11:37 GMT3 час. #1481417   
singapur22, Artos
Спасибо, со списком разобрался.


Появилась другая проблема. В окне есть две кнопки. При нажатии на них ни чего не про


Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
18-05-2011 12:02 GMT3 час. #1481421   
Stalk15
1. Ты определяешь и активируешь окно для списка, выставляя область активности:

  210" stretch="1">

т.е. высота активного окна равна 210

В то же время, кнопки управления, которые приаттачены к этому окну:
  self:Register(xml:Init3tButton("list:btn_select", self), "btn_select")
расположил по координатам:
  230" width="117" height="29">

Т.е. относительно активного окна, в котором кнопка активна (максимум до 210) сама кнопка (ее верхняя кромка) начинается с 230.
Будут ли контролироваться какие-либо действия с кнопкой, если она расположена ВНЕ активного окна?
Ответ очевиден ...
Почему бы кнопку не аттачить к основному окну, имеющемму размер 200,177,400,400?

Привыкай (приучай себя) видеть не кусочками то, что делаешь, а все в целом!


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
18-05-2011 12:42 GMT3 час. #1481434   
Stalk15 А для какой цели ты дважды инициализируешь список,**5001618d69873ce82a42**инициализация
self.list_items:Init(27,20,255,150) --вторая инициализация[/code]
Второе, не зачем задавать размер окна через Frect(), если нет на то причины. Метод SetWndRect() вполне может принимать и прямое указание координат:
self:SetWndRect(200,177,400,400)
И третье, раз работаешь со писком, где нужно выбрать оконечный результат, то добавь ещё колбэк на дабл-клик выбранного элемента:
[code]...
self:Register(self.list_items, "list_select")
...
self:AddCallback("list_select", ui_events.WINDOW_LBUTTON_DB_CLICK, self.btn_select, self)[/code]
В данном случае, функция будет вызываться как при нажатии на кнопку "ОК", так и при дабл-клике элемента списка. (Точнее, при дабл-клике самого листа)
Как уже сообщил Artos, кнопки не работают, потому что находятся за пределами активной зоны окна. Это же очевидно, и бросается в глаза сразу.
Высота активной зоны у тебя указана 210пикселей, но при этом кнопки находятна на высоте 230пиксклей. Научись работать с координатами.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
18-05-2011 13:09 GMT3 час. #1481440   
Artos, singapur22
Спасибо за советы, помогло.

ScrollBar колесиком мыши прокручивается, а, двигая ScrollBar указателем мыши, не прокучивается. Так должно быть или что-то не так?


Новые фишки для сталкера(см. журнал)
АнархОПанк
    
Посты: 998
Откуда:
Возраст:
18-05-2011 15:23 GMT3 час. #1481482   
Есть ли способ для респавна мутантов на новых локациях? Да и вообще. как выглядит этот респавн, т.к на сколько я понял, одной секции "respawn" в all.spawn не достаточно.


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
18-05-2011 17:21 GMT3 час. #1481521   
АнархОПанк На Сталкер-Вики есть статья по респавну. Почитай, там всё подробно описано.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
war1995
    
Посты: 5
Откуда: Уссурийск
Возраст:
19-05-2011 09:07 GMT3 час. #1481699   
Парни подскажите плиз где находится параметр радиации?? я хочу убрать её вообщe.... SOL & DMX MOD


Я НУП))


Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
19-05-2011 11:04 GMT3 час. #1481720   
вопрос всегда был такой в алайф (alife.ltx) Чезахрень? КГБ, наса, USA Research Laboratories, Japan_Lab и подобная фигня к чему это там? Это чё типо прикол такой?

добавлено спустя 1 минуту


# war1995 :
Парни подскажите плиз где находится параметр радиации?? я хочу убрать её вообщe.... SOL & DMX MOD


Я НУП))

Gamedata/creatures/actor.ltx думаю разберешся? Убери воздействие радиации на гг и все нет тебе радиации хотя так не интересно!

отредактировал(а) Strchi: 19-05-2011 11:06 GMT3 час.

999Geka666
    
Посты: 89
Откуда: Ижевск
Возраст: 34
19-05-2011 15:46 GMT3 час. #1481779   
Люди плиз, подскажите, из-за чего может быть вот такое:
, захожу на локу и там такое, с ней модификации не проводил


С понедельника не пью.... со следующего....
Speed Hunter
    
Посты: 223
Откуда: Cтерлитамак
Возраст: 29
19-05-2011 15:53 GMT3 час. #1481781   
999Geka666 это просто текстуры полетели.сохранись,и перезапусти игру


Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
19-05-2011 22:57 GMT3 час. #1481902   
999Geka666 Если через время поставь статику освещение и кулер почисти!

добавлено спустя 23 секунд

Speed Hunter не может так полететь это видюха греется!

отредактировал(а) Strchi: 19-05-2011 22:58 GMT3 час.

killer2203
    
Посты: 54
Откуда:
Возраст: 26
20-05-2011 12:33 GMT3 час. #1481976   
Всем привет! Создал группировку, а катюмчиков для них нет, и возникают два вопроса
1) Может разробы сделали кучу броников и невключили половину в игру?и если это так то как прописать эти броники НПС?
2) Может кто знает статейку по созданию броньки?)




зарание спасибо!


да, да, да!
Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
20-05-2011 12:57 GMT3 час. #1481980   
killer2203 Можно создать самому нечего сложного) Конфиги и иконки только сделать и все))) Ну если визуал хочешь уникальный то модельки или хотябы текстуры!


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
20-05-2011 13:07 GMT3 час. #1481983   
Strchi
killer2203
Сложного (муторного) как раз предостаточно. Для полноценной настройки понадобится проделать:
1. Создать текстуру нового броника, для обвязки моделей сталкеров. (можно разукрасить по своему, копию наиболее подходящей уже существующей текстуры)
2. Создать несколько моделей сталкеров (с разными физиономиями) в новой текстуре броника.
3. Создать текстуру нового броника, для обвязки модели самого броника как физ-объекта.
4. Создать модель броника.
5. Создать иконку броника.
6. Создать иконки сталкеров в новом бронике (наиболее подходящий способ, через скриншоты с последующей их обработкой)
7. Создать конфиг броника.
8. Создать секции сталкеров с новыми визуалами. И использовать их как на спавне сталкеров новой группировки, так и на их респавнере.

И это только для одного типа брони. А ведь их должно быть как минимум три. "Обычная броня", "Броня с высокой защитой от аномалий и радиации (scientific)", "Экзо-броня".
Правда для двух последних понадобится только по одной модели сталкера.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Ded V
    
Посты: 8
Откуда:
Возраст:
21-05-2011 20:45 GMT3 час. #1482388   
Всем привет! Я новичок на форуме! Вопрос:кто играл в New Level Changer?? Подскажите, как пройти на радар? Надо отключить антенны, что сделать для этого? :-(


Новичок на форуме!!!! Обожаю игру Сталкер!!!!
Шалун
    
Посты: 9603
Откуда: Берлин
Возраст: 29
21-05-2011 21:23 GMT3 час. #1482400   
Ded V, тебе в эту тему: New_Level_Сhanger (NLC 6 Начало) (кликай на название)


Орден имени Святого Сталкера

Чувак на болоте
    
Посты: 87
Откуда: Волгодонск
Возраст:
21-05-2011 22:59 GMT3 час. #1482430   
Ребят выручайте срочно - нужен вот такой домик с болот 1935 билда! срочно! в формате милки, да хоть в .object.


Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
22-05-2011 04:59 GMT3 час. #1482442   
Ded V Надо по квестам открыть переходЧувак на болоте
Введи в яндексе stalker_content и будет тебе обжектов билдовских и фикс ТЧ на сотню мегобайт
Кстати такой домик там присутствует в 3 где то разных обжектах (И префах)


Чувак на болоте
    
Посты: 87
Откуда: Волгодонск
Возраст:
22-05-2011 09:53 GMT3 час. #1482456   
Strchi, спасибо!)


Vich2010
    
Посты: 46
Откуда:
Возраст: 47
22-05-2011 15:26 GMT3 час. #1482549   
Всем привет!!

Киньте ссылку на логику вертолётов. Или так просветите про логику вертолёта.особенно про его спавн.Точнее условие спавна.


Большая Земля - это часть Зоны Отчуждения и наоборот.


Форумы Архив » Свалка Модификации ТЧ, вопросы и ответы (старое, по 14.06.11)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»