Checkbox Classic

Page 1 of 2 12 LastLast
Results 1 to 25 of 28
  1. #1
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Checkbox Classic

    Ok so I want a classic checkbox the same as the antilead checkbox in ugg.
    http://forum.ragezone.com/f245/classic-mode-848161/

    This link above describes how to implement it in the stage-options. I'd like it in the normal stage as checkbox.
    Can someone help me with this?

    I added this already:
    Code:
    Stable\CSCommon\Source\MMatchStageSetting.cpp(48):	m_StageSetting.Ref().bClassic = MMATCH_DEFAULT_CLASSIC;
    Stable\CSCommon\Include\MMatchStageSetting.h(73):	bool	bClassic;
    Stable\CSCommon\Include\MMatchStageSetting.h(186):	bool	GetClassic()	{ return m_StageSetting.Ref().bClassic; }
    So I only need to know the code of how to Enable/Disable MMATCH_DEFAULT_CLASSIC with a checkbox.

    Thanks

    ~Patrick
    Last edited by Patrick2607; 17-06-13 at 05:01 PM.


  2. #2
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Quote Originally Posted by yerij007 View Post
    is to hard bro
    But i think with C++ is possible.

    Take Care.



    Edit: Anyways, I have that working now. Wasn't that hard actually. But I came across another problem. When the Classic-Mode is selected, I want a specific icon on the RoomListBox (next to the gamemode icon such as deathmatch, ctf, quest). I have this in ZRoomListBox.cpp:

    Code:
    if(ZGetGameClient()->GetMatchStageSetting()->GetStageSetting()->bClassic == true) {
    			#define FN_ROOMLIST_CLASSICICON "icon_classic.png"
    			pBitmap = MBitmapManager::Get(FN_ROOMLIST_CLASSICICON);
    			if( pBitmap != 0)
    				{
     					r.x = width + m_RoomWidth*0.82 + pressed_reposition;
    					r.y = height + m_RoomHeight/4.7 + pressed_reposition;
    					pDC->SetBitmapColor(255,255,255,255);
    					pDC->SetBitmap( pBitmap );
    					pDC->Draw(r.x, height + pressed_reposition, m_RoomHeight, m_RoomHeight);
    				}			
    			}
    I put the classic_icon.png in the default.mrs . But nothing shows up. Any idea?

  3. #3
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Interface/default.mrs/Lobby.xml
    Code:
    <BITMAP type="back">banner_Citadel.tga</BITMAP>
    		<BITMAP type="back">banner_factory.tga</BITMAP>
    		<BITMAP type="back">banner_port.tga</BITMAP>
    		<BITMAP type="back">banner_lost shrine.tga</BITMAP>
    		<BITMAP type="back">banner_Stairway.tga</BITMAP>
    		<BITMAP type="back">banner_snow_town.tga</BITMAP>
    		<BITMAP type="back">banner_Halloween Town.tga</BITMAP>
    		<BITMAP type="back">banner_Lost Shrine.tga</BITMAP>
    		<BITMAP type="back">banner_High_Haven.tga</BITMAP>
    		<BITMAP type="back">banner_relayMap.tga</BITMAP>
    		<BITMAP type="back">banner_WeaponShop.tga</BITMAP>
    		<BITMAP type="back">banner_ChallengeQuest_Guerilla.tga</BITMAP>
    		<BITMAP type="back">banner_ChallengeQuest_Research.tga</BITMAP>
    		<BITMAP type="icon" mode="0">death-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="1">teamdeath-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="2">Gladiator-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="3">teamGladiator-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="4">Assasin-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="5">train_mode.tga</BITMAP>
    		<BITMAP type="icon" mode="6">survival-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="7">quest-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="8">berserk-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="9">unlimitdeath-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="10">duel-mode.tga</BITMAP>
    		<BITMAP type="icon" mode="12">ChallengeQuest_Guerilla-mode.tga</BITMAP>
    <!-- Add your classic icon info here. -->
    		<SIZE type="width">360</SIZE>
    		<SIZE type="height">32</SIZE>
    		<TEXT></TEXT>
    		<TITLEBAR>false</TITLEBAR>
    		<RESIZABLE>false</RESIZABLE>
    		<MOVABLE>false</MOVABLE>
    		<VISIBLE>true</VISIBLE>
    	</ROOMLIST>
    Sorry if it is not an answer you want. (since the filename of image is completely different.)

  4. #4
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Checkbox Classic

    The playicon (when a game is already busy) is not defined there either but also in the source (the same as I added the classic icon).

  5. #5
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    If I could understand...

    Change your code :
    Code:
    if(ZGetGameClient()->GetMatchStageSetting()->GetStageSetting()->bClassic == true)
    to :
    Code:
    if(m_pMapInfo[i].nGame_Type == MMATCH_GAMETYPE_DEATHMATCH_CLASSIC || m_pMapInfo[i].nGame_Type == MMATCH_GAMETYPE_DEATHMATCH_TEAM_CLASSIC)
    Also replace MMATCH_GAMETYPE_DEATHMATCH_CLASSIC and MMATCH_GAMETYPE_DEATHMATCH_TEAM_CLASSIC to match your source.

  6. #6
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Checkbox Classic

    Haha I think you don't understand. I made a bool for bClassic and a checkbox in the stage. When the checkbox is set (bClassic == true), it automaticly set any mode to classic. So Classic Berserker, Classic Quest, Classic Deathmatch. So setting default_deathmatch_classic and such does not work as it can not find the defenitions.
    Last edited by Patrick2607; 19-06-13 at 11:30 PM.

  7. #7
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    I'm really sorry, I was so idiot!
    The following codes are not tested but...

    ./CSCommon/Include/MMatchStageSetting.h - Global Scope :
    Code:
    ...
        STAGE_STATE_COUNT
    };
    
    #define MSTAGENODE_FLAG_FORCEDENTRY_ENABLED        1        // ウュタヤ
    #define MSTAGENODE_FLAG_PRIVATE                    2        // コミケ・
    #define MSTAGENODE_FLAG_LIMITLEVEL                4        // キケコァチヲヌム
    #define MSTAGENODE_FLAG_CLASSIC_MODE            8
    
    ...
    ./CSCommon/Source/MMatchServer_Stage.cpp - MMatchServer::StageList() :
    Code:
    ...
                }
            }
    
    
            if(pStage->GetStageSetting()->GetClassic() == true)
            {
                pNode->nSettingFlag |= MSTAGENODE_FLAG_CLASSIC_MODE;
            }
    
        }
    
        pNew->AddParameter(new MCommandParameterBlob(pStageArray, MGetBlobArraySize(pStageArray)));
    ...
    ./Gunz/ZRoomListBox.h - ZRoomListBox::_RoomInfoArg struct :
    Code:
        void SetScroll(int nPrevStageCount, int nNextStageCount);
    
        struct _RoomInfoArg
        {
            int nIndex;
            int nRoomNumber;
            MUID uidStage;
            char* szRoomName;
            char* szMapName;
            int nMaxPlayers;
            int nCurrPlayers;
            bool bPrivate;
            bool bForcedEntry;
            bool bLimitLevel;
            int nMasterLevel;
            int nLimitLevel;
            MMATCH_GAMETYPE nGameType;
            STAGE_STATE nStageState;
            bool bClassic;
        };
        void SetRoom(const _RoomInfoArg* pRoomInfo);
        void SetEmptyRoom(int nIndex);
    and sMapInfo struct of Global Scope :
    Code:
        bool        bLimitLevel;
        int            nMasterLevel;
        int            nLimitLevel;
        bool        bPrivate;
        GameState    roomState;
        MMATCH_GAMETYPE        nGame_Type;
        bool        bClassic;
        
        sMapInfo()
        {
            uidStage            = MUID(0,0);
            IsEmpty            = true;
    ./Gunz/ZRoomListBox.cpp - ZRoomListBox::SetRoom() :
    Code:
        {
            //m_pMapInfo[nIndex].roomState    = GAME_WAITING;
            m_pMapInfo[nIndex].roomState    = GAME_PLAYING    ; // ウュタヤ ー。エノ
        }
        else
        {
            m_pMapInfo[nIndex].roomState    = GMAE_CLOSED; // ウュタヤ コメー。
        }
    
          m_pMapInfo[nIndex].bClassic = pRoomInfo->bClassic;
    
    }
    ./Gunz/ZGameClient.cpp - ZGameClient::OnStageList() :
    Code:
                roominfo.nCurrPlayers = pNode->nPlayers;
                roominfo.bPrivate = bPrivate;
                roominfo.bForcedEntry = bForcedEntry;
                roominfo.bLimitLevel = bLimitLevel;
                roominfo.nMasterLevel = pNode->nMasterLevel;
                roominfo.nLimitLevel = pNode->nLimitLevel;
                roominfo.nGameType = pNode->nGameType;
                roominfo.nStageState = pNode->nState;
                roominfo.bClassic = ((pNode->nSettingFlag & MSTAGENODE_FLAG_CLASSIC_MODE) != 0) ? true : false ;
                pRoomListBox->SetRoom(&roominfo);
            }
        }
        pRoomListBox->SetScroll(nPrevStageCount, nNextStageCount);
    
        MWidget* pBtn = pResource->FindWidget("StageBeforeBtn");
        if (nPrevStageCount != -1)
    Now you can use :
    Code:
    if(m_pMapInfo[i].bClassic == true)
    to control your icon.

    Build your Gunz and MatchServer.

    If this answer is not suitable again, please kill me.
    Last edited by aV3PQmCJjM9L; 20-06-13 at 12:29 AM. Reason: I was idiot again.

  8. #8
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    aV3PQmCJjM9L, the icon works :D Thank you very much. Only it displays always now. I need it to display only when the checkbox is checked. I tried this:

    Code:
    if(ZGetGameClient()->GetMatchStageSetting()->GetStageSetting()->bClassic == true){
            m_pMapInfo[nIndex].bClassic = true;
        }
        else{
            m_pMapInfo[nIndex].bClassic = false;
        }
    But that doesn't work :(.

    Edit: No need to kill you lol, your comments are very helpful.

  9. #9
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    aV3PQmCJjM9L, the icon works :D Thank you very much. Only it displays always now. I need it to display only when the checkbox is checked. I tried this:

    Code:
    if(ZGetGameClient()->GetMatchStageSetting()->GetStageSetting()->bClassic == true){
            m_pMapInfo[nIndex].bClassic = true;
        }
        else{
            m_pMapInfo[nIndex].bClassic = false;
        }
    But that doesn't work :(.
    I wrote a code with noobish mistaken and didn't notice until post.

    ZRoomListBox::SetRoom() :
    Code:
    m_pMapInfo[nIndex].bClassic = true;
    to
    Code:
    m_pMapInfo[nIndex].bClassic = pRoomInfo->bClassic;
    Now build your Gunz.
    Last edited by aV3PQmCJjM9L; 20-06-13 at 01:05 AM. Reason: Forgot to add location.

  10. #10
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Son of a b****. Hail to the king :) Thank you very much. You have received +rep. Not only because of this, but you help people all the time. :) GJ.

    1 last question if you still feel like it :$. When I check the box I want the room to 'refresh' you know? Now I need to rejoin the channel to see the changes to the listbox (only with classicicon). When I change the map or mode, it changes the listbox immediatly without needing to rejoin the channel. Any idea?

  11. #11
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    If you didn't anything when setting-up to classic mode
    (i.e. After clicked checkbox and like bClassic = pWidget->GetCheck()),
    try adding this code to after something like bClassic = pWidget->GetCheck().
    Code:
    ZStageSetting::PostDataToServer();
    to your Gunz side.

    e.g.
    Code:
    ......->SetClassic(pWidget->GetCheck());
    ZStageSetting::PostDataToServer();

  12. #12
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Ok will try once I'm home. Thanks so far. I'll let you know.

    Edit:
    If I paste the ZStageSetting::PostDataToServer(); in ZStageSetting.cpp it crashes when I check the box and when I put it in ZStageInterface the matchserver says I'm banned cuz of flooding and d/c me.
    Last edited by Patrick2607; 20-06-13 at 04:54 PM.

  13. #13
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    Ok will try once I'm home. Thanks so far. I'll let you know.

    Edit:
    If I paste the ZStageSetting::PostDataToServer(); in ZStageSetting.cpp it crashes when I check the box and when I put it in ZStageInterface the matchserver says I'm banned cuz of flooding and d/c me.
    I'm really not sure why it's crashes by checking the box.
    As a final chance, (I don't know how you added checkbox, but) try to put "ZStageSetting::PostDataToServer()" to ZInterfaceListener.cpp that you implemented.
    like MAIET does.

    If this crashed again, or if you didn't touch ZInterfaceListener.cpp, I give up.

  14. #14
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Well, what I got now is

    ZGameInterface.cpp (780):
    Code:
    SetListenerWidget("Classic", ZGetStageSettingChangedSettingListener());
    ZInterfaceListener.h (130):
    Code:
    DECLARE_LISTENER(ZGetStageSettingChangedSettingListener)
    ZInterfaceListener.cpp (710):
    Code:
    BEGIN_IMPLEMENT_LISTENER(ZGetStageSettingChangedSettingListener, MBTN_CLK_MSG)
    	ZStageSetting::PostDataToServer();
    END_IMPLEMENT_LISTENER()
    I think the part I marked in red is wrong. Because BTN_CLK_MSG is being applied when you press the Ok button or something. A checkbox doesn't have dat (yes, 4 real). So I think that should be changed to something else.

  15. #15
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    If you can use little time to test, replace with this temporary test code :
    Code:
    MListener* ZGetStageSettingChangedSettingListener(void)
    {
        class ListenerClass : public MListener
        {
        public:
            virtual bool OnCommand(MWidget* pWidget, const char* szMessage)
            {
                mlog("::ZGetStageSettingChangedSettingListener() - Received message : %s.\n", szMessage);
                
                if(MWidget::IsMsg(szMessage, MBTN_CLK_MSG)==true)
                {
                    return true;
                }
                return false;
            }
        };
        static ListenerClass    Listener;
        return &Listener;
    }
    to your ZInterfaceListener.cpp (710) part.

    This will shows received message to mlog.txt when you click the box.
    If there's nothing show up, the listener widget is useless (for checkboxes). If there, the logged message is right choice.

    An another choice is to read Mint2 source. but it's too a lot. and more effort is required.
    So this would be shortcut.
    Last edited by aV3PQmCJjM9L; 20-06-13 at 11:34 PM. Reason: Add code location.

  16. #16
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Quote Originally Posted by aV3PQmCJjM9L View Post
    If you can use little time to test, replace with this temporary test code :
    Code:
    MListener* ZGetStageSettingChangedSettingListener(void)
    {
        class ListenerClass : public MListener
        {
        public:
            virtual bool OnCommand(MWidget* pWidget, const char* szMessage)
            {
                mlog("::ZGetStageSettingChangedSettingListener() - Received message : %s.\n", szMessage);
                
                if(MWidget::IsMsg(szMessage, MBTN_CLK_MSG)==true)
                {
                    return true;
                }
                return false;
            }
        };
        static ListenerClass    Listener;
        return &Listener;
    }
    to your ZInterfaceListener.cpp (710) part.

    This will shows received message to mlog.txt when you click the box.
    If there's nothing show up, the listener widget is useless (for checkboxes). If there, the logged message is right choice.

    An another choice is to read Mint2 source. but it's too a lot. and more effort is required.
    So this would be shortcut.
    Thanks for helping, but it does not seem to work. Isn't it an option to let it detect the valuechange?
    There is an option called MLIST_VALUE_CHANGED.

    I checked the Mint2 folders. There isn't a MCheckBox. However, there are files named like MComboBoxList, MScrollber etc.

  17. #17
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    Thanks for helping, but it does not seem to work. Isn't it an option to let it detect the valuechange?
    There is an option called MLIST_VALUE_CHANGED.

    I checked the Mint2 folders. There isn't a MCheckBox. However, there are files named like MComboBoxList, MScrollber etc.
    Now I tested stage's checkbox myself. and it's normally worked with only four parts edit.
    (As you did, Implement listener, declare, set and stage XML.)
    Code:
    ::ZGetStageSettingTestListener() - Received message : in.
    ::ZGetStageSettingTestListener() - Received message : out.
    ::ZGetStageSettingTestListener() - Received message : in.
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    ::ZGetStageSettingTestListener() - Received message : out.
    ::ZGetStageSettingTestListener() - Received message : in.
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    ::ZGetStageSettingTestListener() - Received message : out.
    So nothing was wrong with my/your code. but Perhaps, have you set correct widget name to SetListenerWidget() function?
    from your code, the widget name is currently "Classic". and this name is must came from Interface/default.mrs/Stage.xml.

  18. #18
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Checkbox Classic

    Huh, yes the name is classic in stage and default. Now I wonder where you put the mlistener code?

  19. #19
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    Huh, yes the name is classic in stage and default. Now I wonder where you put the mlistener code?
    Just as you did. Same files, near line and same effect.

    Probably I can't solve your problem. Please forgive me.

  20. #20
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Code:
    StageCreated
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    Fuck yeah. I got that working :).
    Last edited by Patrick2607; 21-06-13 at 01:35 PM.

  21. #21
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    Code:
    StageCreated
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    ::ZGetStageSettingChangedSettingListener() - Received message : up.
    ::ZGetStageSettingChangedSettingListener() - Received message : click.
    ::ZGetStageSettingChangedSettingListener() - Received message : in.
    ::ZGetStageSettingChangedSettingListener() - Received message : out.
    ::ZGetStageSettingChangedSettingListener() - Received message : down.
    Fuck yeah. I got that working :).
    Well done!

  22. #22
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    How did you get the
    Code:
    ZStageSetting::PostDataToServer() success!
    working lol? I don't have that in my mlog :S.

    I got this in ZInterfaceListener.cpp now:

    Code:
    /*BEGIN_IMPLEMENT_LISTENER(ZGetStageSettingChangedSettingListener, MBTN_CLK_MSG)
        ZStageSetting::PostDataToServer();
    END_IMPLEMENT_LISTENER()*/
    
    
    MListener* ZGetStageSettingChangedSettingListener(void)
    {
        class ListenerClass : public MListener
        {
        public:
            virtual bool OnCommand(MWidget* pWidget, const char* szMessage)
            {
                mlog("::ZGetStageSettingChangedSettingListener() - Received message : %s.\n", szMessage);
                
                if(MWidget::IsMsg(szMessage, MBTN_CLK_MSG)==true)
                {
                    return true;
                }
                return false;
            }
        };
        static ListenerClass    Listener;
        return &Listener;
    }
    It's the same as your code, I just copy pasted.

    Edit: What's the code of your MButton?
    Last edited by Patrick2607; 21-06-13 at 02:06 PM.

  23. #23
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    How did you get the
    Code:
    ZStageSetting::PostDataToServer() success!
    working lol? I don't have that in my mlog :S.

    I got this in ZInterfaceListener.cpp now:

    Code:
    /*BEGIN_IMPLEMENT_LISTENER(ZGetStageSettingChangedSettingListener, MBTN_CLK_MSG)
        ZStageSetting::PostDataToServer();
    END_IMPLEMENT_LISTENER()*/
    
    
    MListener* ZGetStageSettingChangedSettingListener(void)
    {
        class ListenerClass : public MListener
        {
        public:
            virtual bool OnCommand(MWidget* pWidget, const char* szMessage)
            {
                mlog("::ZGetStageSettingChangedSettingListener() - Received message : %s.\n", szMessage);
                
                if(MWidget::IsMsg(szMessage, MBTN_CLK_MSG)==true)
                {
                    return true;
                }
                return false;
            }
        };
        static ListenerClass    Listener;
        return &Listener;
    }
    It's the same as your code, I just copy pasted.

    Edit: What's the code of your MButton?
    This one.

    ./Gunz/ZInterfaceListener.cpp
    Code:
    // test : checkbox. ------------------------------
    
    /*
    BEGIN_IMPLEMENT_LISTENER(ZGetStageSettingTestListener, MBTN_CLK_MSG)
    		ZStageSetting::PostDataToServer();
    END_IMPLEMENT_LISTENER()
    */
    MListener* ZGetStageSettingTestListener(void)
    {
        class ListenerClass : public MListener
        {
        public:
            virtual bool OnCommand(MWidget* pWidget, const char* szMessage)
            {
                mlog("::ZGetStageSettingTestListener() - Received message : %s.\n", szMessage);
                
                if(MWidget::IsMsg(szMessage, MBTN_CLK_MSG)==true)
                {
    				ZStageSetting::PostDataToServer();
    				mlog("ZStageSetting::PostDataToServer() success!\n");
                    return true;
                }
                return false;
            }
        };
        static ListenerClass    Listener;
        return &Listener;
    }
    
    // ------------------------------
    ./Gunz/ZInterfaceListener.h
    Code:
    // test : checkbox.
    DECLARE_LISTENER(ZGetStageSettingTestListener);
    ./Gunz/ZGameInterface.cpp
    Code:
    	// test : checkbox.
    	SetListenerWidget("StageCheckBoxTest", ZGetStageSettingTestListener());
    ./Interface/default.mrs/Stage.xml
    Code:
    <!-- test : checkbox. -->
    	<BUTTON item="StageCheckBoxTest" parent="StageGameInfo">
    		<BUTTONLOOK>Custom1ButtonLook</BUTTONLOOK>
    		<PUSHBUTTON/>
    		<BOUNDS>
    			<X>143</X>
    			<Y>118</Y>
    			<W>200</W>
    			<H>24</H>
    		</BOUNDS>
    	</BUTTON>
    <!-- end of test. -->
    It was just a line for check works or not. Don't mind.

  24. #24
    Account Upgraded | Title Enabled! Patrick2607 is offline
    MemberRank
    May 2013 Join Date
    The NetherlandsLocation
    345Posts

    Re: Checkbox Classic

    Code:
    ::ZGetStageSettingTestListener() - Received message : out.
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    Nice. Ok so that works. But it still doesn't automaticly refresh :S. I still have to rejoin the channel or click the page to let the listbox refresh.

    Here's what I mean: When I'm in a stage with Client1 I can see with Client2 what the settings are in the lobby (map, max players, gamemode). When Client1 changes one of these things I can see it immediatly with Client2 when I'm in the lobby, it changes instantly. But, when I enable/disable the Classic checkbox, I have to rejoin the channel or click on page1 (with Client 2) or reselect a map or reselect a mode (with Client1) to make it "refresh" to let Client 2 see if classic is enabled.

  25. #25
    Valued Member aV3PQmCJjM9L is offline
    MemberRank
    Jun 2013 Join Date
    100Posts

    Re: Checkbox Classic

    Quote Originally Posted by Patrick2607 View Post
    Code:
    ::ZGetStageSettingTestListener() - Received message : out.
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    ::ZGetStageSettingTestListener() - Received message : down.
    ::ZGetStageSettingTestListener() - Received message : up.
    ::ZGetStageSettingTestListener() - Received message : click.
    ZStageSetting::PostDataToServer() success!
    Nice. Ok so that works. But it still doesn't automaticly refresh :S. I still have to rejoin the channel or click the page to let the listbox refresh.

    Here's what I mean: When I'm in a stage with Client1 I can see with Client2 what the settings are in the lobby (map, max players, gamemode). When Client1 changes one of these things I can see it immediatly with Client2 when I'm in the lobby, it changes instantly. But, when I enable/disable the Classic checkbox, I have to rejoin the channel or click on page1 (with Client 2) or reselect a map or reselect a mode (with Client1) to make it "refresh" to let Client 2 see if classic is enabled.
    Now I think the following case :
    It should
    Code:
    1. Check/Takeoff classic mode.
    2. Load checkbox's data.
    3. Post settings.
    but also possibility
    Code:
    1. Check/Takeoff classic mode.
    2. Post settings.
    3. Load checkbox's data.
    Can you post a location of "Load checkbox's data" that you added?


    I thought the following case, but all out. :
    Didn't post stage settings after checkbox clicked? - We're correctly added this now, but didn't work.
    Load checkbox part is not implemented? - If so, stage settings are never refresh if you even rejoined.
    Stage settings are not able to send to server? - Same as above reason.
    Server doesn't set classic setting? - Same as above reason.
    Client doesn't process response of stage settings? - Same as above reason.



Page 1 of 2 12 LastLast

Advertisement