本文整理汇总了C++中CGString::FormatHex方法的典型用法代码示例。如果您正苦于以下问题:C++ CGString::FormatHex方法的具体用法?C++ CGString::FormatHex怎么用?C++ CGString::FormatHex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGString
的用法示例。
在下文中一共展示了CGString::FormatHex方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: r_WriteVal
//.........这里部分代码省略.........
case CC_ALLMOVE:
sVal.FormatVal( IsPriv( PRIV_ALLMOVE ));
break;
case CC_ALLSHOW:
sVal.FormatVal( IsPriv( PRIV_ALLSHOW ));
break;
case CC_CLIENTIS3D:
sVal.FormatVal( GetNetState()->isClient3D() );
break;
case CC_CLIENTISKR:
sVal.FormatVal( GetNetState()->isClientKR() );
break;
case CC_CLIENTISSA:
sVal.FormatVal( GetNetState()->isClientSA() );
break;
case CC_CLIENTVERSION:
{
TCHAR szVersion[ 128 ];
sVal = m_Crypt.WriteClientVer( szVersion );
}
break;
case CC_DEBUG:
sVal.FormatVal( IsPriv( PRIV_DEBUG ));
break;
case CC_DETAIL:
sVal.FormatVal( IsPriv( PRIV_DETAIL ));
break;
case CC_GM: // toggle your GM status on/off
sVal.FormatVal( IsPriv( PRIV_GM ));
break;
case CC_HEARALL:
sVal.FormatVal( IsPriv( PRIV_HEARALL ));
break;
case CC_LASTEVENT:
sVal.FormatLLVal( m_timeLastEvent.GetTimeRaw() );
break;
case CC_PRIVSHOW:
// Show my priv title.
sVal.FormatVal( ! IsPriv( PRIV_PRIV_NOSHOW ));
break;
case CC_REPORTEDCLIVER:
{
pszKey += strlen(sm_szLoadKeys[index]);
GETNONWHITESPACE( pszKey );
int iCliVer = (GetNetState()->getReportedVersion() & 0xFFFFFF0);
if ( pszKey[0] != '\0' )
iCliVer = GetNetState()->getReportedVersion();
TCHAR szVersion[128];
sVal = CCrypt::WriteClientVerString( iCliVer, szVersion );
}
break;
case CC_SCREENSIZE:
{
if ( pszKey[10] == '.' )
{
pszKey += strlen(sm_szLoadKeys[index]);
SKIP_SEPARATORS(pszKey);
if ( !strnicmp("X", pszKey, 1) )
sVal.Format( "%lu", m_ScreenSize.x );
else if ( !strnicmp("Y", pszKey, 1) )
sVal.Format( "%lu", m_ScreenSize.y );
else
return( false );
}
else
sVal.Format( "%lu,%lu", m_ScreenSize.x, m_ScreenSize.y );
} break;
case CC_TARG:
sVal.FormatHex(m_Targ_UID);
break;
case CC_TARGP:
if ( pszKey[5] == '.' )
{
return m_Targ_p.r_WriteVal( pszKey+6, sVal );
}
sVal = m_Targ_p.WriteUsed();
break;
case CC_TARGPROP:
sVal.FormatHex(m_Prop_UID);
break;
case CC_TARGPRV:
sVal.FormatHex(m_Targ_PrvUID);
break;
case CC_TARGTXT:
sVal = m_Targ_Text;
break;
default:
return( CScriptObj::r_WriteVal( pszKey, sVal, pSrc ));
}
return true;
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_KEYRET(pSrc);
EXC_DEBUG_END;
return false;
}
示例2: r_WriteVal
bool CSector::r_WriteVal( LPCTSTR pszKey, CGString & sVal, CTextConsole * pSrc )
{
ADDTOCALLSTACK("CSector::r_WriteVal");
EXC_TRY("WriteVal");
static const CValStr sm_ComplexityTitles[] =
{
{ "HIGH", INT_MIN }, // speech can be very complex if low char count
{ "MEDIUM", 5 },
{ "LOW", 10 },
{ NULL, INT_MAX }
};
switch ( FindTableHeadSorted( pszKey, sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 ))
{
case SC_CLIENTS:
sVal.FormatVal(m_Chars_Active.HasClients());
return true;
case SC_COLDCHANCE:
sVal.FormatVal( GetColdChance());
return( true );
case SC_COMPLEXITY:
if ( pszKey[10] == '.' )
{
pszKey += 11;
sVal = ( ! strcmpi( pszKey, sm_ComplexityTitles->FindName( GetCharComplexity()))) ? "1" : "0";
return( true );
}
sVal.FormatVal( GetCharComplexity());
return( true );
case SC_FLAGS:
sVal.FormatHex(m_dwFlags);
return( true );
case SC_LIGHT:
sVal.FormatVal(GetLight());
return true;
case SC_LOCALTIME:
sVal = GetLocalGameTime();
return( true );
case SC_LOCALTOD:
sVal.FormatVal( GetLocalTime());
return( true );
case SC_NUMBER:
sVal.FormatVal(m_index);
return( true );
case SC_ISDARK:
sVal.FormatVal( IsDark() );
return( true );
case SC_ISNIGHTTIME:
{
int iMinutes = GetLocalTime();
sVal = ( iMinutes < 7*60 || iMinutes > (9+12)*60 ) ? "1" : "0";
}
return( true );
case SC_RAINCHANCE:
sVal.FormatVal( GetRainChance());
return( true );
case SC_ITEMCOUNT:
sVal.FormatVal(GetItemComplexity());
return true;
case SC_SEASON:
sVal.FormatVal(static_cast<int>(GetSeason()));
return true;
case SC_WEATHER:
sVal.FormatVal(static_cast<int>(GetWeather()));
return true;
}
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_KEYRET(pSrc);
EXC_DEBUG_END;
return false;
}
示例3: r_WriteVal
bool CCharPlayer::r_WriteVal( CChar * pChar, LPCTSTR pszKey, CGString & sVal )
{
ADDTOCALLSTACK("CCharPlayer::r_WriteVal");
EXC_TRY("WriteVal");
if ( !pChar || !GetAccount() )
return false;
if ( !strnicmp(pszKey, "SKILLCLASS.", 11) )
{
return GetSkillClass()->r_WriteVal(pszKey + 11, sVal, pChar);
}
else if ( ( !strnicmp(pszKey, "GUILD", 5) ) || ( !strnicmp(pszKey, "TOWN", 4) ) )
{
bool bIsGuild = !strnicmp(pszKey, "GUILD", 5);
pszKey += bIsGuild ? 5 : 4;
if ( *pszKey == 0 )
{
CItemStone *pMyGuild = pChar->Guild_Find(bIsGuild ? MEMORY_GUILD : MEMORY_TOWN);
if ( pMyGuild ) sVal.FormatHex((DWORD)pMyGuild->GetUID());
else sVal.FormatVal(0);
return true;
}
else if ( *pszKey == '.' )
{
pszKey += 1;
CItemStone *pMyGuild = pChar->Guild_Find(bIsGuild ? MEMORY_GUILD : MEMORY_TOWN);
if ( pMyGuild ) return pMyGuild->r_WriteVal(pszKey, sVal, pChar);
}
return false;
}
switch ( FindTableHeadSorted( pszKey, sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 ))
{
case CPC_ACCOUNT:
sVal = GetAccount()->GetName();
return( true );
case CPC_DEATHS:
sVal.FormatVal( m_wDeaths );
return( true );
case CPC_DSPEECH:
m_Speech.WriteResourceRefList( sVal );
return( true );
case CPC_KILLS:
sVal.FormatVal( m_wMurders );
return( true );
case CPC_KRTOOLBARSTATUS:
sVal.FormatVal( m_bKrToolbarEnabled );
return true;
case CPC_ISDSPEECH:
if ( pszKey[9] != '.' )
return( false );
pszKey += 10;
sVal = m_Speech.ContainsResourceName(RES_SPEECH, pszKey) ? "1" : "0";
return( true );
case CPC_LASTUSED:
sVal.FormatLLVal( - g_World.GetTimeDiff( m_timeLastUsed ) / TICK_PER_SEC );
return( true );
case CPC_PFLAG:
sVal.FormatVal(m_pflag);
return( true );
case CPC_PROFILE:
{
TCHAR szLine[SCRIPT_MAX_LINE_LEN-16];
Str_MakeUnFiltered( szLine, m_sProfile, sizeof(szLine));
sVal = szLine;
}
return( true );
case CPC_REFUSETRADES:
{
CVarDefCont * pVar = pChar->GetDefKey(pszKey, true);
sVal.FormatLLVal(pVar ? pVar->GetValNum() : 0);
}
return( true );
case CPC_SKILLCLASS:
sVal = GetSkillClass()->GetResourceName();
return( true );
case CPC_SKILLLOCK:
{
// "SkillLock[alchemy]"
SKILL_TYPE skill = Skill_GetLockType( pszKey );
if ( skill <= SKILL_NONE )
return( false );
sVal.FormatVal( Skill_GetLock( skill ));
} return( true );
case CPC_SPEEDMODE:
sVal.FormatVal( m_speedMode );
return( true );
case CPC_STATLOCK:
{
// "StatLock[str]"
STAT_TYPE stat = Stat_GetLockType( pszKey );
if (( stat <= STAT_NONE ) || ( stat >= STAT_BASE_QTY ))
return( false );
sVal.FormatVal( Stat_GetLock( stat ));
} return( true );
default:
if ( FindTableSorted( pszKey, CCharNPC::sm_szLoadKeys, COUNTOF( CCharNPC::sm_szLoadKeys )-1 ) >= 0 )
{
sVal = "0";
//.........这里部分代码省略.........
示例4: r_WriteVal
bool CRegionBase::r_WriteVal( LPCTSTR pszKey, CGString & sVal, CTextConsole * pSrc )
{
ADDTOCALLSTACK("CRegionBase::r_WriteVal");
EXC_TRY("WriteVal");
bool fZero = false;
int index = FindTableHeadSorted(pszKey, sm_szLoadKeys, COUNTOF(sm_szLoadKeys) - 1);
if ( index < 0 )
return CScriptObj::r_WriteVal(pszKey, sVal, pSrc);
switch ( index )
{
case RC_ANNOUNCE:
sVal.FormatVal( IsFlag(REGION_FLAG_ANNOUNCE));
break;
case RC_ARENA:
sVal.FormatVal( IsFlag(REGION_FLAG_ARENA));
break;
case RC_BUILDABLE:
sVal.FormatVal( ! IsFlag(REGION_FLAG_NOBUILDING));
break;
case RC_CLIENTS:
{
int i = 0;
size_t iClients = 0;
for ( ; ; i++ )
{
CSector *pSector = GetSector(i);
if ( pSector == NULL ) break;
iClients += pSector->m_Chars_Active.HasClients();
}
sVal.FormatVal(static_cast<long>(iClients));
break;
}
case RC_EVENTS:
m_Events.WriteResourceRefList( sVal );
break;
case RC_ISEVENT:
if ( pszKey[7] != '.' )
return( false );
pszKey += 8;
sVal.FormatVal(m_Events.ContainsResourceName(RES_EVENTS, pszKey));
return( true );
case RC_FLAGS:
sVal.FormatHex( GetRegionFlags() );
break;
case RC_GATE:
sVal.FormatVal( ! IsFlag(REGION_ANTIMAGIC_GATE));
break;
case RC_GROUP:
sVal = m_sGroup;
break;
case RC_GUARDED:
sVal.FormatVal( IsFlag(REGION_FLAG_GUARDED));
break;
case RC_MAGIC:
sVal.FormatVal( ! IsFlag(REGION_ANTIMAGIC_ALL));
break;
case RC_MAP:
sVal.FormatVal( m_pt.m_map );
break;
case RC_MARK:
case RC_RECALLIN:
sVal.FormatVal( ! IsFlag(REGION_ANTIMAGIC_RECALL_IN));
break;
case RC_NAME:
// The previous name was really the DEFNAME ???
sVal = GetName();
break;
case RC_NOBUILD:
sVal.FormatVal( IsFlag(REGION_FLAG_NOBUILDING));
break;
case RC_NODECAY:
sVal.FormatVal( IsFlag(REGION_FLAG_NODECAY));
break;
case RC_NOPVP:
sVal.FormatVal( IsFlag(REGION_FLAG_NO_PVP));
break;
case RC_P:
sVal = m_pt.WriteUsed();
break;
case RC_RECALL:
case RC_RECALLOUT:
sVal.FormatVal( ! IsFlag(REGION_ANTIMAGIC_RECALL_OUT));
break;
case RC_RECT:
{
size_t iQty = m_Rects.GetCount();
pszKey += 4;
if ( *pszKey == '\0' )
{
sVal.FormatVal( static_cast<long>(iQty));
return true;
}
SKIP_SEPARATORS( pszKey );
size_t iRect = Exp_GetVal( pszKey );
if ( iRect <= 0 )
{
sVal = m_rectUnion.Write();
return true;
}
//.........这里部分代码省略.........
示例5: r_WriteVal
//.........这里部分代码省略.........
sVal.Format( "%d", m_defenseBase+m_defenseRange );
}
}
else
{
sVal.Format( "%d,%d", m_defenseBase, m_defenseBase+m_defenseRange );
}
} break;
case OBC_DAM:
{
pszKey += strlen(sm_szLoadKeys[index]); // 9;
if ( *pszKey == '.' )
{
SKIP_SEPARATORS( pszKey );
if ( !strnicmp( pszKey, "LO", 2 ) )
{
sVal.Format( "%d", m_attackBase );
}
else if ( !strnicmp( pszKey, "HI", 2 ) )
{
sVal.Format( "%d", m_attackBase+m_attackRange );
}
}
else
{
sVal.Format( "%d,%d", m_attackBase, m_attackBase+m_attackRange );
}
} break;
case OBC_BASEID:
sVal = g_Cfg.ResourceGetName( GetResourceID());
break;
case OBC_CAN:
sVal.FormatHex( m_Can );
break;
case OBC_HEIGHT:
{
//CBaseBaseDef * pBaseBaseDef = dynamic_cast<CBaseBaseDef*>(this);
//DEBUG_ERR(("OBC_HEIGHT - m_dwDispIndex %d GetHeight() %d pBaseBaseDef->GetHeight() %d pBaseBaseDef 0x%x\n",m_wDispIndex,GetHeight(),pBaseBaseDef->GetHeight(),pBaseBaseDef));
sVal.FormatVal( GetHeight() );
}
break;
case OBC_INSTANCES:
sVal.FormatVal( GetRefInstances());
break;
case OBC_NAME:
sVal = GetName();
break;
case OBC_RANGE:
if ( RangeH() == 0 ) sVal.Format( "%d", RangeL() );
else sVal.Format( "%d,%d", RangeH(), RangeL() );
break;
case OBC_RANGEL: // internally: rangel seems to be Range Highest value
sVal.FormatVal( RangeH() );
break;
case OBC_RANGEH: // but rangeh seems to be the Range Lowest value.
sVal.FormatVal( RangeL() );
break;
case OBC_RESOURCES: // Print the resources
{
pszKey += strlen(sm_szLoadKeys[index]); // 9;
if ( *pszKey == '.' )
{
SKIP_SEPARATORS( pszKey );
示例6: r_WriteVal
bool CScriptObj::r_WriteVal( LPCTSTR pszKey, CGString &sVal, CTextConsole * pSrc )
{
EXC_TRY(("r_WriteVal('%s',,%x)", pszKey, pSrc));
CScriptObj * pRef;
if ( r_GetRef( pszKey, pRef ))
{
if ( pRef == NULL ) // good command but bad link.
{
sVal = "0";
return true;
}
if ( pszKey[0] == '\0' ) // we where just testing the ref.
{
CObjBase * pObj = dynamic_cast <CObjBase *> (pRef);
if ( pObj )
sVal.FormatHex( (DWORD) pObj->GetUID() );
else
sVal.FormatVal( 1 );
return( true );
}
return pRef->r_WriteVal( pszKey, sVal, pSrc );
}
int i = FindTableHeadSorted( pszKey, sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 );
if ( i < 0 )
{
// <dSOMEVAL> same as <eval <SOMEVAL>> to get dec from the val
if (( *pszKey == 'd' ) || ( *pszKey == 'D' ))
{
LPCTSTR arg = pszKey + 1;
if ( r_WriteVal(arg, sVal, pSrc) )
{
if ( !IsStrNumericDec(sVal) ) // dValue dec -> hex fix
{
sVal.FormatVal(ahextoi(sVal));
}
return true;
}
}
// <r>, <r15>, <r3,15> are shortcuts to rand(), rand(15) and rand(3,15)
else if (( *pszKey == 'r' ) || ( *pszKey == 'R' ))
{
char *zTemp = Str_GetTemp();
strcpy(zTemp, pszKey+1);
if (( *zTemp ) && (( *zTemp < '0' ) || ( *zTemp > '9' )) )
goto badcmd;
TCHAR *ppCmd[2];
int qty = Str_ParseCmds(zTemp, ppCmd, COUNTOF(ppCmd));
int min = 0, max = 1000;
if ( qty == 1 ) max = atoi(ppCmd[0]);
else if ( qty == 2 )
{
min = g_Exp.GetVal(ppCmd[0]);
max = g_Exp.GetVal(ppCmd[1]);
}
if ( min > max )
{
int a = min;
min = max;
max = a;
}
if ( min == max )
sVal.FormatVal(min);
else
sVal.FormatVal(min + Calc_GetRandVal(max - min));
return true;
}
badcmd:
return false; // Bad command.
}
pszKey += strlen( sm_szLoadKeys[i] );
SKIP_SEPERATORS(pszKey);
bool fZero = false;
switch ( i )
{
case SSC_LISTCOL:
// Set the alternating color.
sVal = (CWebPageDef::sm_iListIndex&1) ? "bgcolor=\"#E8E8E8\"" : "";
return( true );
case SSC_OBJ:
if ( !g_World.m_uidObj.ObjFind() ) g_World.m_uidObj = 0;
sVal.FormatHex((DWORD)g_World.m_uidObj);
return true;
case SSC_NEW:
if ( !g_World.m_uidNew.ObjFind() ) g_World.m_uidNew = 0;
sVal.FormatHex((DWORD)g_World.m_uidNew);
return true;
case SSC_SRC:
if ( pSrc == NULL )
pRef = NULL;
else
{
pRef = pSrc->GetChar(); // if it can be converted .
//.........这里部分代码省略.........
示例7: r_WriteVal
bool CPartyDef::r_WriteVal( LPCTSTR pszKey, CGString &sVal, CTextConsole *pSrc )
{
ADDTOCALLSTACK("CPartyDef::r_WriteVal");
EXC_TRY("WriteVal");
CScriptObj *pRef;
if ( r_GetRef(pszKey, pRef) )
{
if ( pRef == NULL ) // good command but bad link.
{
sVal = "0";
return true;
}
if ( pszKey[0] == '\0' ) // we where just testing the ref.
{
CObjBase *pObj = dynamic_cast<CObjBase *>(pRef);
if ( pObj )
sVal.FormatHex(static_cast<DWORD>(pObj->GetUID()));
else
sVal.FormatVal(1);
return true;
}
return pRef->r_WriteVal(pszKey, sVal, pSrc);
}
bool fZero = false;
switch ( FindTableHeadSorted(pszKey, sm_szLoadKeys, COUNTOF(sm_szLoadKeys) - 1) )
{
case PDC_ISSAMEPARTYOF:
{
pszKey += 13;
GETNONWHITESPACE(pszKey);
if ( pszKey[0] != '\0' )
{
CGrayUID uidToCheck = static_cast<CGrayUID>(Exp_GetVal(pszKey));
CChar *pCharToCheck = uidToCheck.CharFind();
sVal.FormatVal(pCharToCheck && (pCharToCheck->m_pParty == this));
}
else
return false;
} break;
case PDC_MEMBERS:
sVal.FormatVal(m_Chars.GetCharCount());
break;
case PDC_SPEECHFILTER:
sVal = m_pSpeechFunction.IsEmpty() ? "" : m_pSpeechFunction;
break;
case PDC_TAG0:
fZero = true;
pszKey++;
case PDC_TAG:
{
if ( pszKey[3] != '.' )
return false;
pszKey += 4;
sVal = m_TagDefs.GetKeyStr(pszKey, fZero);
} break;
case PDC_TAGAT:
{
pszKey += 5; // eat the 'TAGAT'
if ( *pszKey == '.' ) // do we have an argument?
{
SKIP_SEPARATORS(pszKey);
size_t iQty = static_cast<size_t>(Exp_GetVal(pszKey));
if ( iQty >= m_TagDefs.GetCount() )
return false; // trying to get non-existant tag
CVarDefCont *pTagAt = m_TagDefs.GetAt(iQty);
if ( !pTagAt )
return false; // trying to get non-existant tag
SKIP_SEPARATORS(pszKey);
if ( !*pszKey )
{
sVal.Format("%s=%s", pTagAt->GetKey(), pTagAt->GetValStr());
return true;
}
else if ( !strnicmp(pszKey, "KEY", 3) )
{
sVal = pTagAt->GetKey();
return true;
}
else if ( !strnicmp(pszKey, "VAL", 3) )
{
sVal = pTagAt->GetValStr();
return true;
}
}
return false;
}
case PDC_TAGCOUNT:
sVal.FormatVal(m_TagDefs.GetCount());
break;
//.........这里部分代码省略.........
示例8: r_WriteVal
//.........这里部分代码省略.........
case CC_CLIENTIS3D:
sVal.FormatVal(m_NetState->isClient3D());
break;
case CC_CLIENTISKR:
sVal.FormatVal(m_NetState->isClientKR());
break;
case CC_CLIENTISSA:
sVal.FormatVal(m_NetState->isClientEnhanced());
break;
case CC_CLIENTVERSION:
{
TCHAR szVersion[128];
sVal = m_Crypt.WriteClientVerString(m_Crypt.GetClientVer(), szVersion);
break;
}
case CC_DEBUG:
sVal.FormatVal(IsPriv(PRIV_DEBUG));
break;
case CC_DETAIL:
sVal.FormatVal(IsPriv(PRIV_DETAIL));
break;
case CC_GM:
sVal.FormatVal(IsPriv(PRIV_GM));
break;
case CC_HEARALL:
sVal.FormatVal(IsPriv(PRIV_HEARALL));
break;
case CC_LASTEVENT:
sVal.FormatLLVal(m_timeLastEvent.GetTimeRaw());
break;
case CC_PRIVSHOW:
sVal.FormatVal(!IsPriv(PRIV_PRIV_NOSHOW));
break;
case CC_REPORTEDCLIVER:
{
pszKey += 14;
GETNONWHITESPACE(pszKey);
DWORD dwCliVer = m_NetState->getReportedVersion();
if ( pszKey[0] == '\0' )
{
// Return full version string (eg: 5.0.2d)
TCHAR szVersion[128];
sVal = CCrypt::WriteClientVerString(dwCliVer, szVersion);
}
else
{
// Return raw version number (eg: 5.0.2d = 5000204)
sVal.FormatUVal(dwCliVer);
}
break;
}
case CC_SCREENSIZE:
{
if ( pszKey[10] == '.' )
{
pszKey += 10;
SKIP_SEPARATORS(pszKey);
if ( !strnicmp("X", pszKey, 1) )
sVal.Format("%hu", m_ScreenSize.x);
else if ( !strnicmp("Y", pszKey, 1) )
sVal.Format("%hu", m_ScreenSize.y);
else
return false;
}
else
sVal.Format("%hu,%hu", m_ScreenSize.x, m_ScreenSize.y);
break;
}
case CC_TARG:
sVal.FormatHex(m_Targ_UID);
break;
case CC_TARGP:
{
if ( pszKey[5] == '.' )
return m_Targ_p.r_WriteVal(pszKey + 6, sVal);
sVal = m_Targ_p.WriteUsed();
break;
}
case CC_TARGPROP:
sVal.FormatHex(m_Prop_UID);
break;
case CC_TARGPRV:
sVal.FormatHex(m_Targ_PrvUID);
break;
case CC_TARGTXT:
sVal = m_Targ_Text;
break;
default:
return CScriptObj::r_WriteVal(pszKey, sVal, pSrc);
}
return true;
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_KEYRET(pSrc);
EXC_DEBUG_END;
return false;
}
示例9: r_WriteVal
bool CBaseBaseDef::r_WriteVal(LPCTSTR pszKey, CGString &sVal, CTextConsole *pSrc)
{
ADDTOCALLSTACK("CBaseBaseDef::r_WriteVal");
EXC_TRY("WriteVal");
bool fZero = false;
switch ( FindTableHeadSorted(pszKey, sm_szLoadKeys, COUNTOF(sm_szLoadKeys) - 1) )
{
// Return as string or hex number (NULL if not set)
case OBC_CATEGORY:
case OBC_DESCRIPTION:
case OBC_SUBSECTION:
sVal = GetDefStr(pszKey, false);
break;
// Return as decimal number (0 if not set)
case OBC_COMBATBONUSPERCENT:
case OBC_COMBATBONUSSTAT:
case OBC_DAMCHAOS:
case OBC_DAMDIRECT:
case OBC_EXPANSION:
case OBC_NAMELOC:
case OBC_REGENFOOD:
case OBC_REGENHITS:
case OBC_REGENMANA:
case OBC_REGENSTAM:
case OBC_REGENVALFOOD:
case OBC_REGENVALHITS:
case OBC_REGENVALMANA:
case OBC_REGENVALSTAM:
sVal.FormatLLVal(GetDefNum(pszKey));
break;
case OBC_ARMOR:
{
pszKey += 5;
if ( *pszKey == '.' )
{
SKIP_SEPARATORS(pszKey);
if ( !strnicmp(pszKey, "LO", 2) )
sVal.Format("%hu", m_defenseBase);
else if ( !strnicmp(pszKey, "HI", 2) )
sVal.Format("%hu", m_defenseBase + m_defenseRange);
}
else
sVal.Format("%hu,%hu", m_defenseBase, m_defenseBase + m_defenseRange);
break;
}
case OBC_BASEID:
sVal = g_Cfg.ResourceGetName(GetResourceID());
break;
case OBC_CAN:
sVal.FormatHex(m_Can);
break;
case OBC_DAM:
{
pszKey += 3;
if ( *pszKey == '.' )
{
SKIP_SEPARATORS(pszKey);
if ( !strnicmp(pszKey, "LO", 2) )
sVal.Format("%hu", m_attackBase);
else if ( !strnicmp(pszKey, "HI", 2) )
sVal.Format("%hu", m_attackBase + m_attackRange);
}
else
sVal.Format("%hu,%hu", m_attackBase, m_attackBase + m_attackRange);
break;
}
case OBC_DAMCOLD:
sVal.FormatVal(m_DamCold);
break;
case OBC_DAMENERGY:
sVal.FormatVal(m_DamEnergy);
break;
case OBC_DAMFIRE:
sVal.FormatVal(m_DamFire);
break;
case OBC_DAMPHYSICAL:
sVal.FormatVal(m_DamPhysical);
break;
case OBC_DAMPOISON:
sVal.FormatVal(m_DamPoison);
break;
case OBC_DEFNAME:
sVal = GetResourceName();
break;
case OBC_ENHANCEPOTIONS:
sVal.FormatVal(m_EnhancePotions);
break;
case OBC_FASTERCASTING:
sVal.FormatVal(m_FasterCasting);
break;
case OBC_FASTERCASTRECOVERY:
sVal.FormatVal(m_FasterCastRecovery);
break;
case OBC_HEIGHT:
sVal.FormatVal(GetHeight());
break;
case OBC_HITLEECHLIFE:
sVal.FormatVal(m_HitLifeLeech);
break;
//.........这里部分代码省略.........
示例10: r_WriteVal
//.........这里部分代码省略.........
return true;
case STC_WEBPAGE: // "WEBPAGE"
sVal = GetWebPageURL();
return true;
case STC_AbbreviationToggle:
{
CStoneMember * pMember = GetMember(pCharSrc);
CVarDefCont * pResult = NULL;
if ( pMember == NULL )
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_NONMEMBER");
}
else
{
pResult = pMember->IsAbbrevOn() ? g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_ABBREVON") :
g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_ABBREVOFF");
}
sVal = pResult ? pResult->GetValStr() : "";
}
return true;
case STC_AlignType:
sVal = GetAlignName();
return true;
case STC_LoyalTo:
{
CStoneMember * pMember = GetMember(pCharSrc);
CVarDefCont * pResult = NULL;
if ( pMember == NULL )
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_NONMEMBER");
}
else
{
CChar * pLoyalTo = pMember->GetLoyalToUID().CharFind();
if ((pLoyalTo == NULL) || (pLoyalTo == pCharSrc ))
{
pResult = g_Exp.m_VarDefs.GetKey("STONECONFIG_VARIOUSNAME_YOURSELF");
}
else
{
sVal = pLoyalTo->GetName();
return true;
}
}
sVal = pResult ? pResult->GetValStr() : "";
}
return( true );
case STC_Master:
{
CChar * pMaster = GetMaster();
sVal = (pMaster) ? pMaster->GetName() : g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_PENDVOTE");
}
return( true );
case STC_MasterGenderTitle:
{
CChar * pMaster = GetMaster();
if ( pMaster == NULL )
sVal = ""; // If no master (vote pending)
else if ( pMaster->Char_GetDef()->IsFemale())
sVal = g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_MASTERGENDERFEMALE");
else
sVal = g_Exp.m_VarDefs.GetKeyStr("STONECONFIG_VARIOUSNAME_MASTERGENDERMALE");
}
return( true );
case STC_MasterTitle:
{
CStoneMember * pMember = GetMasterMember();
sVal = (pMember) ? pMember->GetTitle() : "";
}
return( true );
case STC_MasterUid:
{
CChar * pMaster = GetMaster();
if ( pMaster )
sVal.FormatHex( (DWORD) pMaster->GetUID() );
else
sVal.FormatHex( (DWORD) 0 );
}
return( true );
default:
return( CItem::r_WriteVal( pszKey, sVal, pSrc ));
}
EXC_CATCH;
EXC_DEBUG_START;
EXC_ADD_KEYRET(pSrc);
EXC_DEBUG_END;
return false;
}
示例11: r_WriteVal
bool CPointBase::r_WriteVal( LPCTSTR pszKey, CGString & sVal ) const
{
ADDTOCALLSTACK("CPointBase::r_WriteVal");
if ( !strnicmp( pszKey, "STATICS", 7 ) )
{
pszKey += 7;
const CGrayMapBlock * pBlock = g_World.GetMapBlock( *(this) );
if ( !pBlock ) return false;
if ( *pszKey == '\0' )
{
int iStaticQty = 0;
for ( size_t i = 0; i < pBlock->m_Statics.GetStaticQty(); i++ )
{
const CUOStaticItemRec * pStatic = pBlock->m_Statics.GetStatic( i );
CPointMap ptTest( pStatic->m_x+pBlock->m_x, pStatic->m_y+pBlock->m_y, pStatic->m_z, this->m_map );
if ( this->GetDist( ptTest ) > 0 )
continue;
iStaticQty++;
}
sVal.FormatVal( iStaticQty );
return true;
}
SKIP_SEPARATORS( pszKey );
const CUOStaticItemRec * pStatic = NULL;
int iStatic = 0;
int type = 0;
if ( !strnicmp( pszKey, "FINDID", 6 ) )
{
pszKey += 6;
SKIP_SEPARATORS( pszKey );
iStatic = Exp_GetVal( pszKey );
type = RES_GET_TYPE( iStatic );
if ( type == 0 )
type = RES_ITEMDEF;
SKIP_SEPARATORS( pszKey );
}
else
{
iStatic = Exp_GetVal( pszKey );
type = RES_GET_TYPE( iStatic );
}
if ( type == RES_ITEMDEF )
{
const CItemBase * pItemDef = CItemBase::FindItemBase(static_cast<ITEMID_TYPE>(RES_GET_INDEX(iStatic)));
if ( !pItemDef )
{
sVal.FormatVal( 0 );
return false;
}
for ( size_t i = 0; i < pBlock->m_Statics.GetStaticQty(); pStatic = NULL, i++ )
{
pStatic = pBlock->m_Statics.GetStatic( i );
CPointMap ptTest( pStatic->m_x+pBlock->m_x, pStatic->m_y+pBlock->m_y, pStatic->m_z, this->m_map);
if ( this->GetDist( ptTest ) > 0 )
continue;
if ( pStatic->GetDispID() == pItemDef->GetDispID() )
break;
}
}
else
{
for ( size_t i = 0; i < pBlock->m_Statics.GetStaticQty(); pStatic = NULL, i++ )
{
pStatic = pBlock->m_Statics.GetStatic( i );
CPointMap ptTest( pStatic->m_x+pBlock->m_x, pStatic->m_y+pBlock->m_y, pStatic->m_z, this->m_map);
if ( this->GetDist( ptTest ) > 0 )
continue;
if ( iStatic == 0 )
break;
iStatic--;
}
}
if ( !pStatic )
{
sVal.FormatHex(0);
return true;
}
SKIP_SEPARATORS( pszKey );
if ( !*pszKey )
pszKey = "ID";
ITEMID_TYPE idTile = pStatic->GetDispID();
if ( !strnicmp( pszKey, "COLOR", 5 ) )
{
sVal.FormatHex( pStatic->m_wHue );
return true;
}
else if ( !strnicmp( pszKey, "ID", 2 ) )
{
sVal.FormatHex( idTile );
return true;
//.........这里部分代码省略.........
示例12: r_WriteVal
bool CRandGroupDef::r_WriteVal( LPCTSTR pszKey, CGString &sVal, CTextConsole * pSrc )
{
ADDTOCALLSTACK("CRandGroupDef::r_WriteVal");
EXC_TRY("WriteVal");
switch ( FindTableHeadSorted( pszKey, sm_szLoadKeys, COUNTOF( sm_szLoadKeys )-1 ))
{
case RGC_CATEGORY:
sVal = m_sCategory;
break;
case RGC_SUBSECTION:
sVal = m_sSubsection;
break;
case RGC_DESCRIPTION:
sVal = m_sDescription;
break;
case RGC_ID:
case RGC_CONTAINER:
{
size_t i = GetRandMemberIndex();
if ( i != BadMemberIndex() )
sVal.FormatHex(GetMemberID(i) & 0xFFFFFF);
break;
}
case RGC_CALCMEMBERINDEX:
{
pszKey += 15;
GETNONWHITESPACE( pszKey );
if ( pszKey[0] == '\0' )
{
sVal.FormatVal( GetRandMemberIndex(NULL, false) );
}
else
{
CGrayUID uidTofind = static_cast<DWORD>(Exp_GetVal(pszKey));
CChar * pSend = uidTofind.CharFind();
if ( pSend )
{
sVal.FormatVal( GetRandMemberIndex(pSend, false) );
}
else
{
return false;
}
}
} break;
case RGC_DEFNAME: // "DEFNAME"
sVal = GetResourceName();
break;
case RGC_RESOURCES:
{
pszKey += 9;
if ( *pszKey == '.' )
{
SKIP_SEPARATORS( pszKey );
if ( !strnicmp( pszKey, "COUNT", 5 ))
{
sVal.FormatVal(m_Members.GetCount());
}
else
{
bool fQtyOnly = false;
bool fKeyOnly = false;
int index = Exp_GetVal( pszKey );
SKIP_SEPARATORS( pszKey );
if ( !strnicmp( pszKey, "KEY", 3 ))
fKeyOnly = true;
else if ( !strnicmp( pszKey, "VAL", 3 ))
fQtyOnly = true;
TCHAR *pszTmp = Str_GetTemp();
m_Members.WriteKeys( pszTmp, index, fQtyOnly, fKeyOnly );
if ( fQtyOnly && pszTmp[0] == '\0' )
strcpy( pszTmp, "0" );
sVal = pszTmp;
}
}
else
{
TCHAR *pszTmp = Str_GetTemp();
m_Members.WriteKeys( pszTmp );
sVal = pszTmp;
}
} break;
default:
return( CResourceDef::r_WriteVal( pszKey, sVal, pSrc ));
}
return true;
EXC_CATCH;
//.........这里部分代码省略.........