• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

[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
 
Newbie Spellweaver
Joined
Jan 10, 2021
Messages
25
Reaction score
29


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
511
Reaction score
351
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,771
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