Originally Posted by Hekmatyar
just done for people that wanted it done like this. no real good functionality to be honest.
enable it in neuz.ini. its blackbar with font scroll across screen. kinda lame.
Functextcmd.cpp
Code:
#ifdef __GsysAnnounce
BOOL TextCmd__Gsys(CScanner &s)
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)s.dwValue;
if (IsInvalidObj(pUser))
return false;
s.GetLastFull();
if (strlen(s.token) >= 512)
return false;
std::string str = s.token;
std::size_t strBegin = str.find_first_not_of(" \t");
if (strBegin == std::string::npos)
return false;
str = str.substr(strBegin, str.find_last_not_of(" \t") - strBegin + 1);
g_DPCoreClient.SendGSystem(str);
#endif
return true;
}
#endif
BEGINE_TEXTCMDFUNC_MAP
#ifdef __GsysAnnounce
ON_TEXTCMDFUNC(TextCmd__Gsys, "gsys", "globalsys", "messagesystem", "whyisthere4options", TCM_BOTH, AUTH_GAMEMASTER, "")
#endif
ar
ar.cpp
Code:
#ifdef __GsysAnnounce
void CAr::WriteStringStd(const std::string& str)
{
int nLen = str.length();
*this << nLen;
Write(&str[0], sizeof(char) * nLen);
}
void CAr::ReadStringStd(std::string& str)
{
int nLen;
*this >> nLen;
str.resize(nLen);
Read(&str[0], sizeof(char) * nLen);
}
#endif
ar.h
Code:
#ifdef __GsysAnnounce
void CAr::WriteStringStd(const std::string& str);
void ReadStringStd(std::string &str);
#endif
msghdr.h
Code:
#ifdef __GsysAnnounce
#define PACKETTYPE_GSYS static_cast<unsigned long>(0xEEAAAAAA)
#endif
DpCacheSrvr
.cpp
Code:
void CDPCacheSrvr::SendSystem( const CHAR* lpString )
{
BEFORESENDSOLE( ar, PACKETTYPE_SYSTEM, DPID_ALLPLAYERS );
ar.WriteString( lpString );
SEND( ar, this, DPID_ALLPLAYERS );
}
#ifdef __GsysAnnounce
void CDPCacheSrvr::SendGSystem(const std::string& str)
{
BEFORESENDSOLE(ar, PACKETTYPE_GSYS, DPID_ALLPLAYERS);
ar.WriteStringStd(str);
SEND(ar, this, DPID_ALLPLAYERS);
}
#endif
.h
Code:
void SendSystem( const CHAR* lpString );
#ifdef __GsysAnnounce
void SendGSystem(const std::string& str);
#endif
dpCoreSrvr
.cpp
Code:
ON_MSG(PACKETTYPE_SYSTEM, &CDPCoreSrvr::OnSystem);
#ifdef __GsysAnnounce
ON_MSG(PACKETTYPE_GSYS, &CDPCoreSrvr::OnGSystem);
#endif
and
Code:
void CDPCoreSrvr::OnSystem( CAr & ar, DPID, DPID, DPID, u_long uBufSize )
{
CHAR lpString[512];
ar.ReadString( lpString, 512 );
g_DPCacheSrvr.SendSystem( lpString );
}
#ifdef __GsysAnnounce
void CDPCoreSrvr::OnGSystem(CAr & ar, DPID, DPID, DPID, u_long uBufSize)
{
std::string str;
ar.ReadStringStd(str);
g_DPCacheSrvr.SendGSystem(str);
}
#endif
.h
Code:
#ifdef __GsysAnnounce
void OnGSystem(CAr & ar, DPID, DPID, DPID, u_long);
#endif
hwOption
Code:
#if __VER >= 11 // __ADD_ZOOMOPT
m_bZoomLimit = TRUE;
#endif
#ifdef __GsysAnnounce
gsysOn = true;
#endif
Code:
#if __VER >= 12 // __UPDATE_OPT
else if(scan.Token == _T( "VIEWMASK" ))
{
m_bViewMask = scan.GetNumber();
}
#endif
#ifdef __GsysAnnounce
else if (scan.Token == _T("gSys"))
gsysOn = static_cast<bool>(scan.GetNumber());
#endif
Code:
#if __VER >= 12 // __UPDATE_OPT
_ftprintf(fp, _T( "VIEWMASK %d\n" ), m_bViewMask );
#endif
#ifdef __GsysAnnounce
_ftprintf(fp, _T("gSys %d\n"), static_cast<int>(gsysOn));
#endif#if __VER >= 12 // __UPDATE_OPT
_ftprintf(fp, _T( "VIEWMASK %d\n" ), m_bViewMask );
#endif
#ifdef __GsysAnnounce
_ftprintf(fp, _T("gSys %d\n"), static_cast<int>(gsysOn));
#endif
.h
Code:
#ifdef __GsysAnnounce
bool gsysOn;
#endif
COption();
project.h(neuz / worldserver)
Code:
#ifdef __GsysAnnounce
std::string gsysAnnounce;
#endif
};
wndWorld
.cpp
Code:
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
m_vDestinationArrow = D3DXVECTOR3( -1.0F, 0.0F, -1.0F );
#endif // __IMPROVE_QUEST_INTERFACE
#ifdef __GsysAnnounce
gsysScroll = g_Option.m_nResWidth;
#endif
Code:
#ifdef __GsysAnnounce
if (!pr*****ysAnnounce.empty())
{
if (g_Option.gsysOn)
{
CRect rect(0, 0, g_Option.m_nResWidth, 22);
p2DRender->RenderFillRect(rect, 0xAA2F2F2F);
p2DRender->TextOut(gsysScroll, 3, pr*****ysAnnounce.c_str(), 0xDFfEfEfE);
}
gsysScroll -= 2;
if (gsysScroll <= 0)
{
if (gsysScroll + p2DRender->m_pFont->GetTextExtent(pr*****ysAnnounce.c_str()).cx <= g_Option.m_nResWidth / 16)
gsysScroll = g_Option.m_nResWidth;
}
}
#endif
CObj *pFocus = pWorld->GetObjFocus();
int nGaugeValue;
int nPower = GetGaugePower( &nGaugeValue );
BOOL bRenderGauge = FALSE;
DWORD dwShootItemKind = 0;
.h
Code:
#ifdef __GsysAnnounce
int gsysScroll;
#endif
};
dpClient
.cpp
Code:
ON_MSG( PACKETTYPE_SYSTEM, &CDPClient::OnSystem );
#ifdef __GsysAnnounce
ON_MSG(PACKETTYPE_GSYS, &CDPClient::OnGSystem);
#endif
Code:
#ifdef __GsysAnnounce
void CDPClient::OnGSystem(CAr & ar)
{
std::string str;
ar.ReadStringStd(str);
pr*****ysAnnounce = str;
if (!g_Option.gsysOn)
{
g_WndMng.PutString(str.c_str(), NULL, prj.GetTextColor(TID_ADMIN_ANNOUNCE), CHATSTY_SYSTEM);
CWndWorld* pWndWorld = (CWndWorld*)g_WndMng.GetWndBase(APP_WORLD);
if (pWndWorld)
g_Caption1.AddCaption(str.c_str(), pWndWorld->m_pFontAPITitle, FALSE, D3DCOLOR_ARGB(255, 255, 255, 153));
}
}
#endif
.h
Code:
void OnSystem( CAr & ar );
#ifdef __GsysAnnounce
void OnGSystem(CAr & ar);
#endif
dpCoreClient
Code:
void CDPCoreClient::SendSystem( const CHAR* lpString )
{
BEFORESENDDUAL( ar, PACKETTYPE_SYSTEM, DPID_UNKNOWN, DPID_UNKNOWN );
ar.WriteString( lpString );
SEND( ar, this, DPID_SERVERPLAYER );
}
#ifdef __GsysAnnounce
void CDPCoreClient::SendGSystem(const std::string& str)
{
BEFORESENDDUAL(ar, PACKETTYPE_GSYS, DPID_UNKNOWN, DPID_UNKNOWN);
ar.WriteStringStd(str);
SEND(ar, this, DPID_SERVERPLAYER);
}
#endif
.h
Code:
void SendSystem( const CHAR* lpString );
#ifdef __GsysAnnounce
void SendGSystem(const std::string& str);
#endif
|