Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Help changing room tag to game room option

Newbie Spellweaver
Joined
Mar 6, 2017
Messages
75
Reaction score
4
Last edited:
Experienced Elementalist
Joined
Apr 11, 2010
Messages
296
Reaction score
18
I want to change [ia] tag to checkbox in game room options

in MMatchStageSetting.h

Code:
    bool                        IsInfiniteAmmo()            { return m_StageSetting.Ref().bInfiniteAmmo; }
bool SetInfiniteAmmo(bool bValue)             { MEMBER_SET_CHECKCRC(m_StageSetting, bInfiniteAmmo, bValue); }

in ZItem.cpp

Code:
bool ZItem::Reload()
{
    if (m_pDesc == NULL)
    {
        //_ASSERT(0);
        return false;
    }
    //_ASSERT(GetItemType() == MMIT_RANGE);
    

     int nAddedBullet = m_pDesc->m_nMagazine.Ref() - m_nBulletCurrMagazine.Ref();
    if (nAddedBullet > m_nBulletSpare.Ref()) nAddedBullet = m_nBulletSpare.Ref();
    if (nAddedBullet <= 0) return false;

    m_nBulletCurrMagazine.Set_CheckCrc(m_nBulletCurrMagazine.Ref() + nAddedBullet);
    //if(!strstr(strlwr((char*)ZGetGameClient()->GetStageName()), "[ia]"))
    
    MComboBox* pInfiniteAmmo = (MComboBox*)ZGetGameInterface()->GetIDLResource()->FindWidget("InfiniteAmmo");
    if (pInfiniteAmmo)
    {
        m_nBulletSpare.Set_CheckCrc(m_nBulletSpare.Ref() - nAddedBullet);
    }

    return true;
}

Doesn't work

u have to edit few more places look national gunz source u will have an idea

Thank You :):
 
Upvote 0
Newbie Spellweaver
Joined
Mar 6, 2017
Messages
75
Reaction score
4
I'm not seeing it in National source or client. It has [ia] room tag, but so does my source already. Know of any other sources that have infinite ammo as a checkbox in stage settings?
 
Upvote 0
Newbie Spellweaver
Joined
Mar 6, 2017
Messages
75
Reaction score
4
I think I'm really close. The value can change client side but I can't figure out how to send it to the server and update on everyone's client. Please point me in the right direction.


CSCommon.sln


MMatchStage.h


int GetInfiniteAmmo() {return m_StageSetting.GetInfiniteAmmo(); }


void
SetInfiniteAmmo(int nInfiniteAmmo) {m_StageSetting.SetInfiniteAmmo(nInfiniteAmmo); }


MMatchStageSetting.h


int nInfiniteAmmo;

#define
MMATCH_DEFAULT_STAGESETTING_INFINITEAMMO 0

int GetInfiniteAmmo() {return m_StageSetting.Ref().nInfiniteAmmo; } ammo

void
SetInfiniteAmmo(int nValue) { MEMBER_SET_CHECKCRC(m_StageSetting,
nInfiniteAmmo, nValue); } infinite ammo




MMatchStageSetting.cpp


m_StageSetting.Ref().nInfiniteAmmo = MMATCH_DEFAULT_STAGESETTING_INFINITEAMMO;




GunZ.sln


ZMatch.h



inline int GetInfiniteAmmo();



inline int ZMatch::GetInfiniteAmmo()
{

return m_pStageSetting->GetStageSetting()->nInfiniteAmmo;

}




ZGameinterface.cpp



SetListenerWidget("StageInfinite",
ZGetStageSettingChangedComboboxListener());

EnableWidget("StageInfinite", bEnable);

EnableWidget("StageInfinite", true);

EnableWidget("StageInfinite", false);


ZInterfaceListener.cpp


setting.nInfiniteAmmo = 0;



ZStageInterface.cpp

ZApplication::GetGameInterface()->EnableWidget("StageInfinite", true);
ZApplication::GetGameInterface()->EnableWidget("StageInfinite", false);
ZApplication::GetGameInterface()->EnableWidget("StageInfinite", false);
ZApplication::GetGameInterface()->EnableWidget("StageInfinite", !bReady);
ZApplication::GetGameInterface()->EnableWidget("StageInfinite", false);




ZStageSetting.cpp


#define
STAGESETTING_INFINITE_AMMO_MAX 4

#define
STAGESETTING_INFINITE_AMMO_DEFAULT 0

static struct
_STAGESETTING_INFINITE_AMMO

{

int Value;

char szText[32];

}
StageSetting_InfiniteAmmo[STAGESETTING_INFINITE_AMMO_MAX] =

{ { 0, "Infinite None" },{ 1, "Infinite Ammo" },{ 2, "Infinite Items" },{ 3, "Infinite Both" } };




// This changes the value client side

pCB = (MComboBox*)ZGetGameInterface()->GetIDLResource()->FindWidget("StageInfinite");
if (pCB)
pOutNode->nInfiniteAmmo = pCB->GetSelIndex();



BUILD_STAGESETTING_LISTITEM("StageInfinite", pOutNode->nInfiniteAmmo, pGameTypeCfg->m_InfiniteAmmo); ammo


BUILD_STAGESETTING_ITEM("StageInfinite", pOutNode->nInfiniteAmmo,

StageSetting_InfiniteAmmo, STAGESETTING_INFINITE_AMMO_MAX);



strcpy(StageSetting_InfiniteAmmo[0].szText, "Infinite None");
strcpy(StageSetting_InfiniteAmmo[1].szText, "Infinite Ammo");
strcpy(StageSetting_InfiniteAmmo[2].szText, "Infinite Items");
strcpy(StageSetting_InfiniteAmmo[3].szText, "Infinite Both");
INITSTAGESETTING_ITEM("StageInfinite", pStageSetting->nInfiniteAmmo,
STAGESETTING_INFINITE_AMMO_MAX, StageSetting_InfiniteAmmo, STAGESETTING_INFINITE_AMMO_DEFAULT);




ZGameClient.h


int m_nInfiniteAmmo;



ZGameTypeList.h


MGAMETYPECFGDATA m_InfiniteAmmo;


MGAMETYPECFGDATA
GetInfiniteAmmoList() { return m_InfiniteAmmo; }




Things I’ve tried:



MMatchServer_Stage.cpp





//if (pNode->nInfiniteAmmo) {

// //mlog(pNode->nInfiniteAmmo);

// pSetting->SetInfiniteAmmo(1);

//}


//pSetting->SetInfiniteAmmo(1);





//if (pNode->nInfiniteAmmo == 1) {

// //mlog(pNode->nInfiniteAmmo);

// pSetting->SetInfiniteAmmo(1);

//}

//else if(pNode->nInfiniteAmmo == 2) {

// pSetting->SetInfiniteAmmo(2);

//}

//else if (pNode->nInfiniteAmmo == 3) {

// pSetting->SetInfiniteAmmo(3);

//}

//else
{

// pSetting->SetInfiniteAmmo(0);

//}





//pNode->nInfiniteAmmo = 1;


//pSetting->SetInfiniteAmmo(pNode->nInfiniteAmmo);




//pNode->nInfiniteAmmo = pSetting->GetInfiniteAmmo();

/*MSTAGE_SETTING_NODE StageSetting;

StageSetting.nInfiniteAmmo
= 1;*/
 
Upvote 0
Back
Top