![]() |
|
Разработка, обмен опытом. Обсуждения хода разработки, обмен опытом. |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Junior Member
Регистрация: 05.10.2012
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Всем доброго времени суток.
У меня есть задача, для которой мне нужно изменить экран регистрации, но при этом не затронуть экран персонажа. Проблема в том, что для всех общих элементов этих экранов, а это почти все, координаты хранятся один раз, и используются и там и там. Подключать/отключать *.ini файлы нельзя, точней можно, но эффекта не будет. Пока что я знаю только вариант "рисование поверх", который слишком накладен, ведь приходиться полностью перерисовывать один из экранов. Может есть более безболезненные варианты? Заранее спасибо за помощь, жду ответа. |
![]() |
![]() |
2 Пользователей сказали спасибо MightMortal За этот пост: |
Koba (05.10.2012), propilpidgak (06.10.2012)
|
![]() |
#2 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 616 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Пиши свой UI или жди мифического "выноса интерфейса в скрипты".
А собственно что требуется сделать то? конкретней.
__________________
Jet Rock's |
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 05.10.2012
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Мне нужно разделить регистрацию на 2 этапа. Сначала, когда жмешь "Регистрация" в главном меню, вводишь только имя, пароль, пол, возраст. А остальное уже при первом заходе в игру.
|
![]() |
![]() |
![]() |
#4 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 616 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
в
Код:
parameters.fos Код:
bool CritterGenerateCheck( int[]& data ) // Export to client_main@player_data_check далее в игре пиши либо свой доп. интерфейс, либо через диалог\меню делай продолжение регистрации.
__________________
Jet Rock's |
![]() |
![]() |
Данный человек сказал спасибо PowerMagic за этот пост: |
TZanubis (10.10.2012)
|
![]() |
#5 |
Member
Регистрация: 28.11.2011
Сообщений: 34
Вес репутации: 119 ![]() ![]() |
![]()
Подскажите (регистрация для 3Д вынесена в скрипт)... как можно ее повторно вызвать непосредственно в игре?
|
![]() |
![]() |
![]() |
#6 | |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 616 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
в общем, предлагаю следущие - добавить все эти элементы на свой экран, и вызывать его. как бы убого это не было ^_^ посему придется их дублировать. и так, открываем client_3d_cha_reg.fos, в куске : Код:
for( uint c = 0; c < CUST_COUNT; c++ ) { ![]() Код:
for(uint8 ii = 0; ii < 2; ++ii){ int screen = (ii < 1 ? CLIENT_MAIN_SCREEN_REGISTRATION : CLIENT_MY_SCREEN); ползем в _client_defines.fos в разделе с экранами обьявляем нашу константу CLIENT_MY_SCREEN теперь надо создать свой экран, возвращаемся в client_3d_cha_reg.fos после Код:
RegTabCount = regCustTabCount; Код:
CRegisterScreen3D RegScreen3D; GUI_CreateScreen( CLIENT_MY_SCREEN, "my_pic.png" ) .CallbackShow( RegScreen3D ) .CallbackHide( RegScreen3D ) .CanMove( true ) .Modal( false ) .Multiinstance( true ); Код:
class CRegisterScreen3D : IGUIScreenCallbackShow, IGUIScreenCallbackHide { IGUIScreenOpt@ ScreenOpt; CRegisterScreen3D(){ } void OnShow( int p0, int p1, int p2 ) { @ScreenOpt = GUI_GetScreenOptions(); } void OnHide( int p0, int p1, int p2 ) { } } А вообще, если кто знает способ лучше - пишите, буду рад =)
__________________
Jet Rock's Последний раз редактировалось PowerMagic; 09.11.2012 в 02:35. |
|
![]() |
![]() |
Данный человек сказал спасибо PowerMagic за этот пост: |
propilpidgak (09.11.2012)
|
![]() |
#7 |
Senior Member
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 217 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А разве ShowScreen не работает для хардкоднутых экранов?
|
![]() |
![]() |
![]() |
#8 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 616 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Конкретно экран реги у меня не полчилось так вызвать.
__________________
Jet Rock's |
![]() |
![]() |
![]() |
#9 |
A Nice King
Специализация: Скриптер
Регистрация: 07.10.2009
Адрес: мск+3
Сообщений: 525
Вес репутации: 350 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Емнип скриптовая функция просто делает указываемый screen видимым, если он уже создан и инициализирован. Собственно окно регистрации нужно не просто вызывать, как элемент интерфейса, нужно чтобы движек создал болванку чара для регистрации, поместил в указатель на болванку в нужное место в структуре и т.д. Стандартными методами это не сделать.
__________________
qthree has been possessed!
|
![]() |
![]() |
Данный человек сказал спасибо qthree за этот пост: |
propilpidgak (09.11.2012)
|