The New Future :: FOnline, Half-life 2 :: Roleplay It!  

Вернуться   The New Future :: FOnline, Half-life 2 :: Roleplay It! > Прочее > FOmod > Разработка, обмен опытом.

Разработка, обмен опытом. Обсуждения хода разработки, обмен опытом.

Ответ
 
Опции темы Опции просмотра
Старый 05.10.2012, 18:04   #1
MightMortal
Junior Member
 
Аватар для MightMortal
 
Регистрация: 05.10.2012
Сообщений: 2
Вес репутации: 0
MightMortal is on a distinguished road
По умолчанию Изменение экрана регистрации и не только.

Всем доброго времени суток.
У меня есть задача, для которой мне нужно изменить экран регистрации, но при этом не затронуть экран персонажа. Проблема в том, что для всех общих элементов этих экранов, а это почти все, координаты хранятся один раз, и используются и там и там.
Подключать/отключать *.ini файлы нельзя, точней можно, но эффекта не будет.
Пока что я знаю только вариант "рисование поверх", который слишком накладен, ведь приходиться полностью перерисовывать один из экранов.
Может есть более безболезненные варианты?
Заранее спасибо за помощь, жду ответа.
MightMortal вне форума   Ответить с цитированием
2 Пользователей сказали спасибо MightMortal За этот пост:
Koba (05.10.2012), propilpidgak (06.10.2012)
Старый 05.10.2012, 21:43   #2
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

Пиши свой UI или жди мифического "выноса интерфейса в скрипты".

А собственно что требуется сделать то? конкретней.
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Старый 08.10.2012, 16:18   #3
MightMortal
Junior Member
 
Аватар для MightMortal
 
Регистрация: 05.10.2012
Сообщений: 2
Вес репутации: 0
MightMortal is on a distinguished road
По умолчанию

Мне нужно разделить регистрацию на 2 этапа. Сначала, когда жмешь "Регистрация" в главном меню, вводишь только имя, пароль, пол, возраст. А остальное уже при первом заходе в игру.
MightMortal вне форума   Ответить с цитированием
Старый 08.10.2012, 16:31   #4
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

в
Код:
parameters.fos
ф-ц
Код:
bool CritterGenerateCheck( int[]& data ) // Export to client_main@player_data_check
отвечает за правильный ввод статов персонажа при регистрации. попробуй изменить эту ф-ц.

далее в игре пиши либо свой доп. интерфейс, либо через диалог\меню делай продолжение регистрации.
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Данный человек сказал спасибо PowerMagic за этот пост:
TZanubis (10.10.2012)
Старый 09.11.2012, 01:01   #5
propilpidgak
Member
 
Регистрация: 28.11.2011
Сообщений: 34
Вес репутации: 73
propilpidgak has a spectacular aura aboutpropilpidgak has a spectacular aura about
По умолчанию

Подскажите (регистрация для 3Д вынесена в скрипт)... как можно ее повторно вызвать непосредственно в игре?
propilpidgak вне форума   Ответить с цитированием
Старый 09.11.2012, 02:21   #6
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от propilpidgak Посмотреть сообщение
Подскажите (регистрация для 3Д вынесена в скрипт)... как можно ее повторно вызвать непосредственно в игре?
Вызывть можно будет только элементы интерфейса 3д. Я, если честно так и не понял как вызывать хардкоднутые экраны на клиенте, например регистрации.

в общем, предлагаю следущие - добавить все эти элементы на свой экран, и вызывать его. как бы убого это не было ^_^

посему придется их дублировать. и так, открываем 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_MAIN_SCREEN_REGISTRATION на 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 )
    {

    }
}
на клиенте вызывать через ::ShowScreen(CLIENT_MY_SCREEN, 0,0,0);


А вообще, если кто знает способ лучше - пишите, буду рад =)
__________________
Jet Rock's

Последний раз редактировалось PowerMagic; 09.11.2012 в 02:35.
PowerMagic вне форума   Ответить с цитированием
Данный человек сказал спасибо PowerMagic за этот пост:
propilpidgak (09.11.2012)
Старый 09.11.2012, 02:54   #7
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

А разве ShowScreen не работает для хардкоднутых экранов?
binyan вне форума   Ответить с цитированием
Старый 09.11.2012, 02:58   #8
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от binyan Посмотреть сообщение
А разве ShowScreen не работает для хардкоднутых экранов?
Конкретно экран реги у меня не полчилось так вызвать.
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Старый 09.11.2012, 03:51   #9
qthree
A Nice King
 
Аватар для qthree
 
Специализация: Скриптер
Регистрация: 07.10.2009
Адрес: мск+3
Сообщений: 524
Вес репутации: 303
qthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от binyan Посмотреть сообщение
А разве ShowScreen не работает для хардкоднутых экранов?
Емнип скриптовая функция просто делает указываемый screen видимым, если он уже создан и инициализирован. Собственно окно регистрации нужно не просто вызывать, как элемент интерфейса, нужно чтобы движек создал болванку чара для регистрации, поместил в указатель на болванку в нужное место в структуре и т.д. Стандартными методами это не сделать.
__________________
 qthree has been possessed!
qthree вне форума   Ответить с цитированием
Данный человек сказал спасибо qthree за этот пост:
propilpidgak (09.11.2012)
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:01.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
Для внутреннего пользования