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!

[anti-revert] [prot neck advance] [extra income] haha

Junior Spellweaver
Joined
Mar 27, 2018
Messages
110
Reaction score
14


KEYWORD to SEARCH ITEM_ANTI_REVERT, EMANTIREVERT

Desc : Prevent Item From reverting to 0 & termination.

Idea not mine..
code added by review000

Credit to the person who owned this idea thanks :)

No Hate
 
Initiate Mage
Joined
Jan 10, 2021
Messages
25
Reaction score
28


KEYWORD to SEARCH ITEM_ANTI_REVERT, EMANTIREVERT

Desc : Prevent Item From reverting to 0 & termination.

Idea not mine..
code added by review000

Credit to the person who owned this idea thanks :)

No Hate

this is so wrong and btw you can enable/disable that feature from defaulcharclass :junglejane:
 
Computers are fast; programmers keep it slow.
[VIP] Member
Joined
Feb 15, 2016
Messages
495
Reaction score
348
Nice idea. But upon reviewing the code, seems like it is missing some important line of code that needs to be added.

Hint: emANTIREVERT == EMANTIREVERT_USE at GLCharInvenMsg.cpp
(this is not the missing code, but rather connected to this) Correct me if I am wrong.

#2: DOGRINDING (does not support 6 args; so add 1 which you probably know by now)
#3: BOOL bSucceeded = DOGRINDING (connected above)

Either way, thanks for the share.
 
Last edited:
Joined
Oct 2, 2010
Messages
1,770
Reaction score
228
Here is some minor share, you can create fine burr, luxury protection or any item refine without revert (rollback)

GLogicEx.h
BOOL DOGRINDING(SITEMCUSTOM &sCusItem,
const SITEM *pHold,
bool &bRESET,
bool &bTERMINATE,
bool &bNOFAIL, //add nofailups
bool &bNOREVERT, //add norevert
EMANTIDISAPPEAR &emANTIDISAPPEAR );

GLogixExPC.cpp

BOOL GLCHARLOGIC::DOGRINDING(SITEMCUSTOM &sCusItem,
const SITEM *pHold,
bool &_bRESET,
bool &_bTERMINATE,
bool &_bNOFAIL, //add nofailups
bool &_bNOREVERT, //add norevert
EMANTIDISAPPEAR &emANTIDISAPPEAR )
{
bool bSUCCEED(false);
_bRESET = false;
_bTERMINATE = false;

const EMGRINDING_TYPE emGRINDING = pHold->sGrindingOp.emTYPE;

BYTE cGRADE = sCusItem.GETGRADE(emGRINDING);

if (emGRINDING == EMGRINDING_DAMAGE || emGRINDING == EMGRINDING_DEFENSE)
{
if (cGRADE >= GLCONST_CHAR::wGRADE_MAX) return FALSE;
}
else
{
if (cGRADE >= GLCONST_CHAR::wGRADE_MAX_REGI) return FALSE;
}
if ( cGRADE >= GRADE_NORMAL && !_bNOFAIL ) //add nofailups
{
float fRATE = GLCONST_CHAR::fGRADE_RATE[cGRADE];
BOOL bOK = RANDOM_GEN(fRATE);
if (!bOK)
{
//add norevert
if (!_bNOREVERT)
{
float fRESET = GLCONST_CHAR::fGRADE_RESET_RATE[cGRADE];
bOK = RANDOM_GEN(fRESET);
if (bOK)
{
_bRESET = true;
sCusItem.ResetGrind(emGRINDING);
bool bTER = GLCONST_CHAR::bENCHANT_TERMINATE_ITEM && (emGRINDING == EMGRINDING_DAMAGE || emGRINDING == EMGRINDING_DEFENSE);
if (bTER)
{
float fTERMINATE = GLCONST_CHAR::fGRADE_TERMINATE_RATE[cGRADE];
bOK = RANDOM_GEN(fTERMINATE);
if (bOK)
{
if (emANTIDISAPPEAR == EMANTIDISAPPEAR_ON)
{
emANTIDISAPPEAR = EMANTIDISAPPEAR_USE;
}
else
{
_bTERMINATE = true;
}
}
}
}
}
return FALSE;
}
}
switch (pHold->sGrindingOp.emTYPE)
{
case EMGRINDING_DAMAGE: sCusItem.cDAMAGE++; break;
case EMGRINDING_DEFENSE: sCusItem.cDEFENSE++; break;
case EMGRINDING_RESIST_FIRE: sCusItem.cRESIST_FIRE++; break;
case EMGRINDING_RESIST_ICE: sCusItem.cRESIST_ICE++; break;
case EMGRINDING_RESIST_ELEC: sCusItem.cRESIST_ELEC++; break;
case EMGRINDING_RESIST_POISON: sCusItem.cRESIST_POISON++; break;
case EMGRINDING_RESIST_SPIRIT: sCusItem.cRESIST_SPIRIT++; break;
};

return TRUE;
}

GLCharInvenMsg.cpp

HRESULT GLChar::MsgReqInvenGrinding ( NET_MSG_GENERIC* nmg )

bool bNoRevert = pHold->sBasicOp.IsNoRevert(); //add norevert

BOOL bSucceeded = DOGRINDING ( pInvenItem->sItemCustom, pHold, bRESET, bTERMINATE, bNoFail, bNoRevert, emANTIDISAPPEAR ); //add norevert

GLItem.h
bool IsCoolTime() { return ( dwCoolTime != 0 ); }
bool IsNoRevert() { return(dwFlags&ITEM_NO_REVERT) != NULL; } //add norevert

GLItemDef.h
ITEM_NO_REVERT = 0x8000, //add norevert

ItemSuit.cpp
SetWin_Check(this, IDC_CHECK_NOREVERT, m_pDummyItem->sBasicOp.dwFlags&ITEM_NO_REVERT); //add norevert

SetCheck_Flags(GetWin_Check(this, IDC_CHECK_NOREVERT), m_pDummyItem->sBasicOp.dwFlags, ITEM_NO_REVERT);//add norevert
 
Back
Top