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!

[SHARE] SIMPLE KILL FEED STYLING [SOURCE CODE]

Joined
Sep 6, 2023
Messages
13
Reaction score
77
Tonight I'll compile the code.
and distributed again

123456 - [SHARE] SIMPLE KILL FEED STYLING [SOURCE CODE] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Apr 19, 2018
Messages
59
Reaction score
15
No worries. that's why its simple. if you don't mind sharing your perfect model 🤣
so they will have the expiry function.
I did already just follow the logic of other card . it works thanks ejsayaaa for this post..
 

Attachments

You must be registered for see attachments list
Junior Spellweaver
Joined
Sep 18, 2014
Messages
154
Reaction score
11
i couldnt click any of the feed. any idea? tia
 

Attachments

You must be registered for see attachments list
RaGEZONE VIP
[VIP] Member
Joined
Jul 18, 2023
Messages
372
Reaction score
78
\Lib_Client\G-Logic\GLCharactorReq.cpp(2033) : error C3861: 'ReqKillFeedWindowOpen': identifier not found, even with argument-dependent lookup
 
Master Summoner
Joined
Feb 6, 2019
Messages
575
Reaction score
159
\Lib_Client\G-Logic\GLCharactorReq.cpp(2033) : error C3861: 'ReqKillFeedWindowOpen': identifier not found, even with argument-dependent lookup

try this
GLCharacter.h
C++:
HRESULT ReqKillFeedWindowOpen ( WORD wPosX, WORD wPosY );

GLCharactorReq.cpp

C++:
HRESULT GLCharacter::ReqKillFeedWindowOpen( WORD wPosX, WORD wPosY )
{
    SINVENITEM* pInvenItem = m_cInventory.FindPosItem ( wPosX, wPosY );
    if ( !pInvenItem )    return E_FAIL;


    SITEM* pItem = GLItemMan::GetInstance().GetItem ( pInvenItem->sItemCustom.sNativeID );
    if ( !pItem )
    {
        CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMKILL_FEED_SELECT_NOITEM") );
        return E_FAIL;
    }

    if ( pItem->sBasicOp.emItemType != ITEM_KILL_FEED_SELECTOR )
    {
        CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMKILL_FEED_SELECT_NOITEM") );
        return E_FAIL;
    }

    CInnerInterface::GetInstance().ShowGroupFocus( STYLE_KILL_FEED_WINDOW );

    m_wInvenPosX1 = wPosX;
    m_wInvenPosY1 = wPosY;

    return S_OK;
}
 
RaGEZONE VIP
[VIP] Member
Joined
Jul 18, 2023
Messages
372
Reaction score
78
try this

C++:
HRESULT ReqKillFeedWindowOpen ( WORD wPosX, WORD wPosY );



C++:
HRESULT GLCharacter::ReqKillFeedWindowOpen( WORD wPosX, WORD wPosY )
{
    SINVENITEM* pInvenItem = m_cInventory.FindPosItem ( wPosX, wPosY );
    if ( !pInvenItem )    return E_FAIL;


    SITEM* pItem = GLItemMan::GetInstance().GetItem ( pInvenItem->sItemCustom.sNativeID );
    if ( !pItem )
    {
        CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMKILL_FEED_SELECT_NOITEM") );
        return E_FAIL;
    }

    if ( pItem->sBasicOp.emItemType != ITEM_KILL_FEED_SELECTOR )
    {
        CInnerInterface::GetInstance().PrintMsgText ( NS_UITEXTCOLOR::DISABLE, ID2GAMEINTEXT("EMKILL_FEED_SELECT_NOITEM") );
        return E_FAIL;
    }

    CInnerInterface::GetInstance().ShowGroupFocus( STYLE_KILL_FEED_WINDOW );

    m_wInvenPosX1 = wPosX;
    m_wInvenPosY1 = wPosY;

    return S_OK;
}
1704340747598 - [SHARE] SIMPLE KILL FEED STYLING [SOURCE CODE] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Joined
May 2, 2012
Messages
475
Reaction score
244
how about database saving

i cannot teach you how to add new column for data saving on your database

s_COdbcGameChaGet.cpp
on fetch find this 👇
int COdbcManager::GetCharacterInfo(int nUserNumber,
int nChaNum,
SCHARDATA2* pChaData2)
{
if (nUserNumber <= 0 || nChaNum <= 0)
{
return DB_ERROR;
}

int nRowCount = 0;
SQLRETURN sReturn = 0;
ODBC_STMT* pConn = m_pGameDB->GetConnection();
if (!pConn) return DB_ERROR;

TCHAR szTemp[1024] = {0};
_snprintf( szTemp, 1024, "SELECT UserNum,SGNum,ChaName,ChaTribe,ChaClass,"
"ChaBright,ChaLevel,ChaDex,ChaIntel,ChaPower,"
"ChaStrong,ChaSpirit,ChaStrength,ChaStRemain,ChaAttackP,"
"ChaDefenseP,ChaFightA,ChaShootA,ChaSkillPoint,ChaHP,"
"ChaMP,ChaSP,ChaPK,ChaStartMap,ChaStartGate,"
"ChaPosX,ChaPosY,ChaPosZ,ChaMoney,ChaExp,"
"ChaSaveMap,ChaSavePosX,ChaSavePosY,ChaSavePosZ,ChaSchool,"
"ChaHair,ChaFace,ChaLiving,ChaInvenLine,"
"ChaReturnMap,ChaReturnPosX,ChaReturnPosY,ChaReturnPosZ,GuNum,"
"ChaGuName,ChaSex,ChaHairColor, ChaReExp, ChaSpMID, ChaSpSID, "
"ChaScaleRange,ChaCP,ChaContributionPoint, "
"ChaActivityPoint, ChaBadge, ChaPKScore, ChaPKDeath, "
"ChaInventoryLockStatus, ChaLockerLockStatus, ChaEquipmentLockStatus, "
"ChaCWKill, ChaCWDeath, ChaEquipmentLockEnable,
ChaKillFeedID "
"FROM ChaInfo WHERE ChaNum=%d AND UserNum=%d", nChaNum, nUserNumber );

//add this
// kill feed
SQLINTEGER nChaKillFeedID, cbChaKillFeedID = SQL_NTS;

while (true) // <-------------- find this
{

ON SAVING s_COdbcGameChaSave.cpp
find this 👇
int COdbcManager::SaveCharacter(LPVOID _pbuffer)
{
if (_pbuffer == NULL) return DB_ERROR;

SCHARDATA2* pCharData2 = reinterpret_cast<SCHARDATA2*> ( _pbuffer );

DWORD dwChaNum = pCharData2->m_dwCharID;

// 해킹한 캐릭터의 경우 레벨이 0 으로 세팅될 가능성이 많다.
if (dwChaNum == 0 || pCharData2->m_wLevel == 0)
{
return DB_ERROR;
}

char szNick[CHAR_SZNAME] = {0}; // Club nick name
DWORD dwUserNum = pCharData2->GetUserID();
DWORD dwSvrNum = pCharData2->m_dwServerID;
DWORD dwChaID = pCharData2->m_dwCharID;


StringCchCopy(szNick, CHAR_SZNAME, pCharData2->m_szNick);

// 베트남 탐직방지 시스템의 추가로 캐릭터 저장하는 부분의 수정

TCHAR szTemp[2048] = {0};
_snprintf( szTemp, 2048, "UPDATE ChaInfo SET ChaBright=%d, ChaLevel=%u, ChaMoney=%I64d, "
"ChaDex=%u, ChaIntel=%u, ChaSchool=%u, ChaHair=%u, ChaFace=%u, "
"ChaLiving=%d, ChaStrong=%u, ChaPower=%u, ChaSpirit=%u, ChaStrength=%u, "
"ChaStRemain=%u, ChaAttackP=%u, ChaDefenseP=%u, ChaFightA=%u, ChaShootA=%u, "
"ChaExp=%I64d, ChaSkillPoint=%u, ChaHP=%u, ChaMP=%u, ChaSP=%u, ChaPK=%u, "
"ChaStartMap=%u, ChaStartGate=%u, ChaPosX=%f, ChaPosY=%f, ChaPosZ=%f, "
"ChaSaveMap=%d, ChaSavePosX=%f, ChaSavePosY=%f, ChaSavePosZ=%f, ChaReturnMap=%d, "
"ChaReturnPosX=%f, ChaReturnPosY=%f, ChaReturnPosZ=%f, ChaGuName='%s', ChaReExp=%I64d, "
"ChaScaleRange=%f, ChaCP=%u, ChaContributionPoint=%I64d, "
"ChaActivityPoint=%u, ChaBadge='%s', ChaPKScore=%u, ChaPKDeath=%u, "
"ChaEquipmentLockEnable=%u, ChaInventoryLockStatus=%u, ChaLockerLockStatus=%u, ChaEquipmentLockStatus=%u, "
"ChaCWKill=%u, ChaCWDeath=%u,
ChaKillFeedID=%d " // kill feed
"WHERE ChaNum=%u",
pCharData2->m_nBright,
pCharData2->m_wLevel,
pCharData2->m_lnMoney,
pCharData2->m_sStats.wDex,
pCharData2->m_sStats.wInt,
pCharData2->m_wSchool,
pCharData2->m_wHair,
pCharData2->m_wFace,
pCharData2->m_nLiving,
pCharData2->m_sStats.wStr,
pCharData2->m_sStats.wPow,
pCharData2->m_sStats.wSpi,
pCharData2->m_sStats.wSta,
pCharData2->m_wStatsPoint,
pCharData2->m_wAP,
pCharData2->m_wDP,
pCharData2->m_wPA,
pCharData2->m_wSA,
pCharData2->m_sExperience.lnNow,
pCharData2->m_dwSkillPoint,
pCharData2->m_sHP.dwData,
pCharData2->m_sMP.dwData,
pCharData2->m_sSP.dwData,
pCharData2->m_wPK,
pCharData2->m_sStartMapID.dwID,
pCharData2->m_dwStartGate,
pCharData2->m_vStartPos.x,
pCharData2->m_vStartPos.y,
pCharData2->m_vStartPos.z,
(int) pCharData2->m_sSaveMapID.dwID,
pCharData2->m_vSavePos.x,
pCharData2->m_vSavePos.y,
pCharData2->m_vSavePos.z,
(int) pCharData2->m_sLastCallMapID.dwID,
pCharData2->m_vLastCallPos.x,
pCharData2->m_vLastCallPos.y,
pCharData2->m_vLastCallPos.z,
szNick,
pCharData2->m_lnReExp,
pCharData2->m_fScaleRange,
pCharData2->m_sCombatPoint.wNow, /*combatpoint logic, Juver, 2017/05/27 */

/*contribution point, Juver, 2017/08/23 */
pCharData2->m_llContributionPoint,

/*activity point, Juver, 2017/08/23 */
pCharData2->m_dwActivityPoint,

/*activity system, Juver, 2017/11/04 */
pCharData2->m_szBadge,

/*pk info, Juver, 2017/11/17 */
pCharData2->m_dwPKScore,
pCharData2->m_dwPKDeath,

/*equipment lock, Juver, 2018/01/13 */
pCharData2->m_bLockEnable,
pCharData2->m_bInventoryLockStatus,
pCharData2->m_bLockerLockStatus,
pCharData2->m_bEquipmentLockStatus,

pCharData2->m_dwCWKill,
pCharData2->m_dwCWDeath,
pCharData2->m_nKILLFEEDSELECTOR, // kill feed

pCharData2->m_dwCharID );
 
Master Summoner
Joined
Feb 6, 2019
Messages
575
Reaction score
159
1704427843972 - [SHARE] SIMPLE KILL FEED STYLING [SOURCE CODE] - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Back
Top