Пользователей: 1
Гостей: 923
Всего: 924

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

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









Автор Сообщение
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-06-2011 13:07 GMT3 час. #1485851   
singapur22
Поспешное суждение о грави-пушке.
Хотя она сделана на базе оружейного класса, но это совершенно иной предмет, которому аналогов нет.
По сути от оружейного класса требуется возможность обрабатывать кнопки мыши (огонь и прицеливание). В гави-пушке по этим кнопкам происходит захват-удержание и бросок. Ну и по 'кол-ву оставшихся патронов' отслеживается собственно факт броска (выстрел).
Суть ее: любой объект с физ.оболочкой может быть захвачен, т.е. у объекта отключается сила тяжести (объект подвешивается) и этот объект помещается в условный фокус пушки (притягивается/отдаляется). После захвата объект может перемещаться в любом направлении отслеживая фокус пушки. Ну и соответственно бросок/толчок ... Далее фантазии на тему 'после броска ...'
В итоге получился некий манипулятор физ.объектами с отключением их массы ('грави').

Как я понял, SkyLoader'у захотелось чтобы захваченный объект 'смотрел все время на актора' (на грави-пушку). В нынешнем виде объект не меняет своего положения относительно координат x и z (не вращается) при перемещениях его пушкой.

отредактировал(а) Artos: 01-06-2011 13:23 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
01-06-2011 14:24 GMT3 час. #1485880   
Artos тут такой случай что мне надо "разжевать и в рот положить":-)

Ткни пожалуйста носом куда "привязывать" свою функцию в приведенном тобою примере.

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

это где "массив телепортов"?

отредактировал(а) Struck: 01-06-2011 14:27 GMT3 час.

Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
01-06-2011 15:01 GMT3 час. #1485906   
Artos Спасибо за описание. А то все по неё говорят, а мне и посмотреть, что за ... некогда. :-)

Как я понял, SkyLoader'у захотелось чтобы захваченный объект 'смотрел все время на актора' (на грави-пушку). В нынешнем виде объект не меняет своего положения относительно координат x и z (не вращается) при перемещениях его пушкой.

Нет. Ему нужно нечто иное. С грави-пушкой даже близко не связанным проектом. Отвечу цитатой в личку.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-06-2011 15:10 GMT3 час. #1485913   
Struck
Исходя из твоих слов: "... мы создаем какие то данные, либо получаем их, и заполняем этими данными окно." - получили неким образом массив локаций, для телепортации на них актора (список упростил):
  local tTeleports = {
    [ 1] = l01_escape,
    [ 2] = l02_garbage,
...
    [17] = l12u_control_monolith,
    [18] = l12_stancia_2
  }
Массив привожу в упрощенном виде, в оригинале в нем и позиция для спавна и направление ...
В данном контексте для создания листинга это не важно.

Основной код создания листинга по элементам имеющегося уже массива это:
  --/ Создаем окно для всего списка локаций
  local list = CUIListWnd() --/ создаем объект окна класса 'листинга'
  list:SetAutoDelete(true)
  list:Init(10,25,135,300) --/ инициируем его в заданых координатах (x,y,width,height)
  list:SetItemHeight(16) --/ высота каждой строки листинга
  list:SetFont( GetFontLetterica16Russian() ) --/ тип шрифта строк листинга
  list:SetTextColor(255,216,188,140) --/ цвет текста строк
  list:EnableScrollBar(true) --/ разрешаем скролл-бар при превышении заполнения окна
  list:ShowSelectedItem(false) --/ пока не показываем выделение
  --/ итерируем по массиву локаций:{[ i]=level_name}
  for _,v in ipairs(tTeleports) do
    local item = CUIListItemEx() --/ строка i-ой локации
    item:SetWndRect(0,0,130,18) --/ x,y,width,height
    item:InitTexture("ui\\ui_scb_scroll_box") --/ текстура подложки
    item:SetStretchTexture(true)
    item:SetHighlightColor(GetARGB(255,255,150,0)) --/ цвет текста при наведении
    item:SetSelectionColor(GetARGB(255,200,200,250)) --/ цвет текста выбраной локации
    item.map = v --/ запоминаем имя локации дл**5002618d69873ce82a42**
else
self.act0:Show(false) --/ скрываем кнопку действия
end
end

function UI_TabController:OnBtnAction0()
if this.Check_StartGame() then --/ телепортируем только в запущенной игре
local iSelect = self.map_list:GetSelectedItem() --/ индекс выбранной строки
if iSelect >= 0 then
local item = self.map_list:GetItem(iSelect) --/ объект выбранной строки
if item then
local sLevelName = item.map --/ имя локации
for _,v in ipairs(tTeleports) do
if v.map == sLevelName then --/ на текущей локации?
if sLevelName == level.name() then --/ меняем позицию на заданную
db.actor:set_actor_position(v.pos)
db.actor:set_actor_direction(v.dir)
else
this.Get_Teleport(sLevelName, v.pos) --/ вызываем алгоритм телепортации
end
self:Quit() --/ выход
end
end
else
self.act0:Show(false) --/ скрываем кнопку действия
end
end
end
end
[/code]

отредактировал(а) Artos: 01-06-2011 16:11 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
01-06-2011 15:23 GMT3 час. #1485921   
Artos Осмелюсь добавить, что в паре с кнопкой выбора "ОК" желательно использовать и событие двойного клика по элементу списка (пользоваться будет значительно удобней). ui_events.WINDOW_LBUTTON_DB_CLICK устанавливаемый на список.
А если ещё и добавить клик кнопки "ОК" при нажатии "Enter", будет вообще полный набор событий.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-06-2011 15:25 GMT3 час. #1485923   
singapur22
О грави-пушке:
Было видео на АМК-сайте, но ... почистили. По мотивам и erlik сделал вариант и у меня в сборке есть (для развлечения) эта поделка. Можно спорить о ее востребованности в игре, но ... это скорее очень неплохое (ИМХО) пособие для модмейкеров - как обращаться с разнообразием векторных методов и применения импульсов.

О листинге:
Я сделал иначе с выбором из листинга:
1. Нужный пункт выбирается обычным кликом по выбранной строке и ... появляется кнопка действия.
2. Отработка производится уже нажатием кнопки действия (аналог 'OK').
Т.о. и исключаются случайные нажатия (по сути аналог дабл-клика, только разнесенного) и дается время на 'подумать'.
Такое разнесение является заодно и проверкой - актуален ли данный пункт или он 'бутафорский' (т.е. задел на будущие некие условия, которые могут блокировать некие локации).

P.S. Вторая картинка с активированной кнопкой для выполнения выбранной телепортации:

отредактировал(а) Artos: 01-06-2011 16:29 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
01-06-2011 17:26 GMT3 час. #1485966   
Artos, singapur22

А как в окошке переносить текст со строки на строку?(окно у меня сделано без исп. .xml файла)

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

И еще, есть текстура с названием "ui_pda_frame_br/bl/l и т.п.", вот как из этих кусочков собрать цельную рамку?

отредактировал(а) Struck: 01-06-2011 17:40 GMT3 час.

Снова в строю.

l
Artos
    
Посты: 4176
Откуда:
Возраст: 65
01-06-2011 17:50 GMT3 час. #1485969   
Struck
А вот с 'переносом' длинных текстов огорчу. Данная функциональность доступна только для объектов класса CScriptXmlInit(), т.е. созданых с использованием этого класса и применением соотв.тэгов именно при применении xml-файла.
Так что или использовать xml'ки или 'резать' текст самому и склеивать из неск.окон.
Или же ... а) (самое разумное) применять такие строки, чтобы влезали в окно листинга, б) усекать длинные строки, вылезающие за окно.

По сбору кусочков - я пас, этот вопрос не интересен. Для сбора кусочков в единое можно банальные 'статики' (CUIStatic()) использовать иль тот же шаблон из xml'ки.
Рядом есть 'ui_pda_frame_sub.ini', который похоже имеено аналогичные кусочки собирает - но это уже тебе самому поисследовать, иль кто иной ответит. :-)

отредактировал(а) Artos: 01-06-2011 18:00 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Struck
    
Посты: 1946
Откуда:
Возраст:
01-06-2011 18:49 GMT3 час. #1485986   
Artos то есть варианта два, либо создавать для каждого объемного текста своего окно, либо писать и "склеивать" кучу статиков?


А про сбор кусочков предполагаю что есть вариант по оптимальней, подожду может и вправду у кого желание появится пояснить.


Снова в строю.

l
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-06-2011 05:15 GMT3 час. #1486135   
Struck На счёт мультиплексирования. К твоему глубочайшему сожалению, это возможно только через установку соответствующего аргумента в теге xml файла.
аргумент: complex_mode="1"
И на счёт сбора рамки. Ты ММ юзал? Там все фоновые рамки на их основе и собраны.
Классы CUIFrameWindow() и CUIFrameLineWnd() отвечают за комплексное изображение. Где первый класс отвечает за комплексирование в двух направлениях (по горизонтали и по вертикали), а второй только по горизонтали. Плюс данных классов том, что они не растягивают изображение до размеров виджета, а производят составление общей картинки из набора указанных элементов изображения. Соответственно, размеры можно задавать любые, и общая картинка при этом искажаться не будет.
Короче юзай ММ, там всё сам разберёшь.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
MRN$
    
Посты: 114
Откуда:
Возраст: 16
02-06-2011 16:28 GMT3 час. #1486367   
Нужен совет.

Ситуация.
- Есть предметы.
- Есть скрипты соответствующие предметам.
- При активации слота получаем секцию предмета.

Требуется.
Поискать, и если есть - вызвать, скрипт с именем соответствующим секции предмета. Имя скрипта заранее не известно.

Решение.
Lua_dostring?
Или...

отредактировал(а) MRN$: 02-06-2011 16:47 GMT3 час.

всё легко
Shape
    
Посты: 34
Откуда: Запорожье
Возраст: 49
02-06-2011 17:09 GMT3 час. #1486378   
MRN$ попробуй так:
loadstring(filename.."."..funcname.."()")()


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-06-2011 17:16 GMT3 час. #1486384   
MRN$ Функции находятся в заранее определённом файле? Или местоположен**5001618d69873ce82a42**любая приставка, или без неё"]
if func and type(func) == "function" then
func()
end[/code]
Если же файл заранее не известен, то при этом нужно будет итерировать элементы окружения _G и если элемент является таблицей, то производить выше приведённую операцию,
где fileName будет являться элементом окружения. В данном случае уникальная приставка в именх функций будет обязательна, дабы не произошло никаких конфликтов.

отредактировал(а) singapur22: 02-06-2011 17:39 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
MRN$
    
Посты: 114
Откуда:
Возраст: 16
02-06-2011 18:10 GMT3 час. #1486405   
Shape :friends
Благодарствую - пашет...
singapur22 :friends
Файлы как обычно в папке скриптс, а функции в них...
твой вариант щас то-же попробую...


Имена функций - известны, неизвестны имена файлов.
loadstring(filename.."."..funcname.."()")() - вылетает если не находит файл скрипта...
Нужна проверка файла скрипта на существование, тогда можно запустить "loadstring".

Как безвылетно проверить файл скрипта на существование?
"итерировать элементы окружения _G"?


всё легко
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-06-2011 18:30 GMT3 час. #1486410   
MRN$

"итерировать элементы окружения _G"?
По сути, можно через итерацию окружения. Но в данном случае, нужно быть уверенным в том, что он туда загружен, что происходит не со всеми файлами. По крайней мере, не сразу. Многие находят выход из данного положения, загружая нужные файлы в окружение принудительно, при старте игры.
Можно через класс FS, но тут я не уверен в том, что данное действие не приведёт к потере новых файлов из виду. Данный класс вообще криво работает, причём на разных ОС могут быть свои глюки. Самый верный вариант, это вывести все требуемые функции в определённый файл, к которому и обращаться при данном действии.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
MRN$
    
Посты: 114
Откуда:
Возраст: 16
02-06-2011 18:43 GMT3 час. #1486414   
singapur22
Понятно.
Строгая дисциплина, как всегда, будет дешевле...

отредактировал(а) MRN$: 02-06-2011 19:10 GMT3 час.

всё легко
Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
02-06-2011 21:46 GMT3 час. #1486507   
Здравствуйте. Подскажите как сделать большой EditBox? Чтобы можно было писать несколько строк в боксе. Пытался тупо сделать бокс большим размером, но вписать получается только одну строку


Знание assembler, C/C++, Pascal, Lua.
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-06-2011 22:36 GMT3 час. #1486533   
Ma$ter класс CUIEditBoxEx(). За текстуру указывать набор типа frame (комплексное изображение из 9 текстур). Данный класс эдит-бокса работает по схеме мультиплексирования. Но есть одна заморочка. курсор эдита функцианирует так, будто это однострочный эдит-бокс. В итоге уходит непонятно куда, хотя текст вводится нормально (многострочно). Я ещё не полностью разобрался с данным классом. Так что ковыряй дальше сам.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
02-06-2011 23:28 GMT3 час. #1486549   
А вот интересно, можно ли как нибудь сделать, чтобы по нажатию на ВВОД текст переходил на новую строку? Как в блокноте например. А то невозможно перейти на новую строку не закончив старую


Знание assembler, C/C++, Pascal, Lua.
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
02-06-2011 23:56 GMT3 час. #1486561   
Ma$ter Нет. Видимо класс не доделан, изза потери в нём необходимости.
Раз уж на то пошло, и тебе необходим мультиплекстный редактор текстов. То создай его сам, на основе CUIStatic(). Работа не простая. Но если получится, многие тебе будут только благодарны!


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
03-06-2011 10:30 GMT3 час. #1486640   
Вопрос есть. Нужно заспавнить объект таким, чтобы он был статичным, его невозможно было бы сдвинуть. В роли объекта ну например стул.

как это сделать?


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-06-2011 10:55 GMT3 час. #1486654   
Mehanik Yar Если спавн производится через all.spawn, то зафиксировать можно прописав в конце секции:
fixed_bones = список костей, через запятую
Объект при этом должен быть физическим.
Если же спавн производится через скрипт. То для этого имеются соответствующие методы. О данных методах можешь распросить Erlik'a. (найдёшь его на предыдущей странице)


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
03-06-2011 11:16 GMT3 час. #1486669   
Добавил модельку ноя в игру (скачал с инета). Вроде сделал все правильно: ogf в meshes там в папке actors создал новую папку "noy" туда и сунул ogf, в textures снова создал папку noy туда сунул все фаилы dds. В character_desc_escape.xml Волку прописал эту модельку получилось
actors\noy\noy больше нечего неделал. Начинаю новую игру и получил вот такой лаг:::

Expression : fatal error
Function : CRender::texture_load
File : E:\stalker\patch_1_0004\xr_3da\xrRender\Texture.cpp
Line : 295
Description :
Arguments : Can't find texture 'act\act_faces_4_04'


Помогите плиз!

Извеняюсь что нескрыл все под спойлер....


1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-06-2011 11:20 GMT3 час. #1486671   
serega_zombi_stalker
Твои действия:

в textures снова создал папку noy туда сунул все фаилы dds.

Требования:

Arguments : Can't find texture 'act\act_faces_4_04'

Тебе о чём это говорит?
Напиши свои соображения.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
03-06-2011 11:37 GMT3 час. #1486685   
Первое что приходит это либо текстуры надо кидать в другую папку либо в профиле волка есть еще одна строка с сылкой на текстуры.

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

угадал? и что делать?

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

подожди! act_faces_4_04 такого фаила нет я по каталогу с игрой поиском прошолся!

отредактировал(а) serega_zombi_stalker: 03-06-2011 11:51 GMT3 час.

1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-06-2011 12:05 GMT3 час. #1486696   
serega_zombi_stalker Аргументы лога говорят о том, что:
1. текстуры к модели должны лежать в папке gamedata\\textures\\act\\, а не как ты положил, непонятно откуда взявшуюся папку noy.
2. одна из требуемых текстур должна обзываться "act_faces_4_04.dds"
Дальше, если будут дополнительные требования, следовать по выводимым аргументам.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
serega_zombi_stalker
    
Посты: 49
Откуда: Омутсити
Возраст: 26
03-06-2011 12:49 GMT3 час. #1486711   
singapur22 спасибо все получилось!

кстати кто нибудь знает какой гулаг у шустрого разведчиков и толика????

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

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

уже ненадо))) я сам уж нашел

отредактировал(а) serega_zombi_stalker: 03-06-2011 13:27 GMT3 час.

1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
KazzeR
    
Посты: 1
Откуда: Минск
Возраст:
03-06-2011 14:01 GMT3 час. #1486728   
Please, help me, peopls! После установки мода АМК 1.4.1 на лицуху 1.006 выдает лаг на рабочий стол с такой вот ерундовиной (сообщение XRay Engine "XR_3DA.exe caused BREAKPOINT in module "D:\Program Files\GSC World Publishing\S.T.A.L.K.E.R\bin\xrCore.dll" at 001B:006BCC85, xrDebug::backend()+165 byte(s)")


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
03-06-2011 14:10 GMT3 час. #1486731   
KazzeR На сколько я знаю, мод AMK 1.4.1 предназначен для версии 1.0004


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Strchi
    
Посты: 2581
Откуда: Уфа-Челябинск-Фритаун
Возраст:
03-06-2011 15:43 GMT3 час. #1486771   
singapur22 есть под 6 патч фикс
KazzeR на амк тим смотри фикс под 6 патч
=)




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


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

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