本文整理汇总了C++中CScriptArgReader::SetCustomError方法的典型用法代码示例。如果您正苦于以下问题:C++ CScriptArgReader::SetCustomError方法的具体用法?C++ CScriptArgReader::SetCustomError怎么用?C++ CScriptArgReader::SetCustomError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CScriptArgReader
的用法示例。
在下文中一共展示了CScriptArgReader::SetCustomError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EngineLoadTXD
int CLuaEngineDefs::EngineLoadTXD ( lua_State* luaVM )
{
SString strFile = "";
bool bFilteringEnabled = true;
CScriptArgReader argStream ( luaVM );
// Grab the TXD filename or data
argStream.ReadString ( strFile );
if ( argStream.NextIsBool() ) // Some scripts have a number here (in error)
argStream.ReadBool ( bFilteringEnabled, true );
if ( !argStream.HasErrors ( ) )
{
// Grab our virtual machine and grab our resource from that.
CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
if ( pLuaMain )
{
// Grab this resource
CResource* pResource = pLuaMain->GetResource ();
if ( pResource )
{
bool bIsRawData = CClientTXD::IsTXDData( strFile );
SString strPath;
// Is this a legal filepath?
if ( bIsRawData || CResourceManager::ParseResourcePathInput( strFile, pResource, &strPath ) )
{
// Grab the resource root entity
CClientEntity* pRoot = pResource->GetResourceTXDRoot ();
// Create a TXD element
CClientTXD* pTXD = new CClientTXD ( m_pManager, INVALID_ELEMENT_ID );
// Try to load the TXD file
if ( pTXD->LoadTXD ( bIsRawData ? strFile : strPath, bFilteringEnabled, bIsRawData ) )
{
// Success loading the file. Set parent to TXD root
pTXD->SetParent ( pRoot );
// Return the TXD
lua_pushelement ( luaVM, pTXD );
return 1;
}
else
{
// Delete it again
delete pTXD;
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Error loading TXD" );
}
}
else
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Bad file path" );
}
}
}
if ( argStream.HasErrors() )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed
lua_pushboolean ( luaVM, false );
return 1;
}
示例2: EngineReplaceModel
int CLuaEngineDefs::EngineReplaceModel ( lua_State* luaVM )
{
CClientDFF* pDFF;
SString strModelName;
bool bAlphaTransparency;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pDFF );
argStream.ReadString ( strModelName );
argStream.ReadBool ( bAlphaTransparency, false );
if ( !argStream.HasErrors () )
{
ushort usModelID = CModelNames::ResolveModelID ( strModelName );
if ( usModelID != INVALID_MODEL_ID )
{
if ( pDFF->ReplaceModel ( usModelID, bAlphaTransparency ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
else
argStream.SetCustomError( SString( "Model ID %d replace failed", usModelID ) );
}
else
argStream.SetCustomError( "Expected valid model ID or name at argument 2" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例3: EngineLoadDFF
int CLuaEngineDefs::EngineLoadDFF ( lua_State* luaVM )
{
SString strFile = "";
CScriptArgReader argStream ( luaVM );
// Grab the DFF filename or data (model ID ignored after 1.3.1)
argStream.ReadString ( strFile );
if ( !argStream.HasErrors ( ) )
{
// Grab our virtual machine and grab our resource from that.
CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
if ( pLuaMain )
{
// Get this resource
CResource* pResource = pLuaMain->GetResource ();
if ( pResource )
{
bool bIsRawData = CClientDFF::IsDFFData( strFile );
SString strPath;
// Is this a legal filepath?
if ( bIsRawData || CResourceManager::ParseResourcePathInput( strFile, pResource, &strPath ) )
{
// Grab the resource root entity
CClientEntity* pRoot = pResource->GetResourceDFFRoot ();
// Create a DFF element
CClientDFF* pDFF = new CClientDFF ( m_pManager, INVALID_ELEMENT_ID );
// Try to load the DFF file
if ( pDFF->LoadDFF ( bIsRawData ? strFile : strPath, bIsRawData ) )
{
// Success loading the file. Set parent to DFF root
pDFF->SetParent ( pRoot );
// Return the DFF
lua_pushelement ( luaVM, pDFF );
return 1;
}
else
{
// Delete it again
delete pDFF;
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Error loading DFF" );
}
}
else
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Bad file path" );
}
}
}
if ( argStream.HasErrors ( ) )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed
lua_pushboolean ( luaVM, false );
return 1;
}
示例4: EngineLoadCOL
int CLuaEngineDefs::EngineLoadCOL ( lua_State* luaVM )
{
SString strFile = "";
CScriptArgReader argStream ( luaVM );
// Grab the COL filename or data
argStream.ReadString ( strFile );
if ( !argStream.HasErrors ( ) )
{
// Grab the lua main and the resource belonging to this script
CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
if ( pLuaMain )
{
// Get the resource we belong to
CResource* pResource = pLuaMain->GetResource ();
if ( pResource )
{
bool bIsRawData = CClientColModel::IsCOLData( strFile );
SString strPath;
// Is this a legal filepath?
if ( bIsRawData || CResourceManager::ParseResourcePathInput( strFile, pResource, &strPath ) )
{
// Grab the resource root entity
CClientEntity* pRoot = pResource->GetResourceCOLModelRoot ();
// Create the col model
CClientColModel* pCol = new CClientColModel ( m_pManager, INVALID_ELEMENT_ID );
// Attempt loading the file
if ( pCol->LoadCol ( bIsRawData ? strFile : strPath, bIsRawData ) )
{
// Success. Make it a child of the resource collision root
pCol->SetParent ( pRoot );
// Return the created col model
lua_pushelement ( luaVM, pCol );
return 1;
}
else
{
// Delete it again. We failed
delete pCol;
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Error loading COL" );
}
}
else
argStream.SetCustomError( bIsRawData ? "raw data" : strFile, "Bad file path" );
}
}
}
if ( argStream.HasErrors ( ) )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed for some reason
lua_pushboolean ( luaVM, false );
return 1;
}
示例5: SetPedOccupiedVehicle
int CLuaOOPDefs::SetPedOccupiedVehicle ( lua_State* luaVM )
{
// ped.vehicle = element vehicle
// ped.vehicle = nil
CClientPed* pPed;
CClientVehicle* pVehicle;
uint uiSeat = 0;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pPed );
argStream.ReadUserData ( pVehicle, NULL );
if ( pVehicle != NULL )
{
MinClientReqCheck ( argStream, MIN_CLIENT_REQ_WARPPEDINTOVEHICLE_CLIENTSIDE, "function is being called client side" );
if ( !argStream.HasErrors () )
{
if ( !pPed->IsLocalEntity () || !pVehicle->IsLocalEntity () )
argStream.SetCustomError ( "This client side function will only work with client created peds and vehicles" );
}
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::WarpPedIntoVehicle ( pPed, pVehicle, uiSeat ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
}
else
{
if ( !argStream.HasErrors () )
{
if ( !pPed->IsLocalEntity () )
argStream.SetCustomError ( "This client side function will only work with client created peds" );
}
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::RemovePedFromVehicle ( pPed ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
}
lua_pushboolean ( luaVM, false );
return 1;
}
示例6: DbPrepareString
int CLuaDatabaseDefs::DbPrepareString ( lua_State* luaVM )
{
// string dbPrepareString ( element connection, string query, ... )
CDatabaseConnectionElement* pElement; SString strQuery; CLuaArguments Args;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pElement );
argStream.ReadString ( strQuery );
argStream.ReadLuaArguments ( Args );
if ( !argStream.HasErrors () )
{
SString strResult = g_pGame->GetDatabaseManager ()->PrepareString ( pElement->GetConnectionHandle (), strQuery, &Args );
SString strError = g_pGame->GetDatabaseManager ()->GetLastErrorMessage ();
if ( !strResult.empty () || strError.empty () )
{
lua_pushstring ( luaVM, strResult );
return 1;
}
if ( !g_pGame->GetDatabaseManager ()->IsLastErrorSuppressed () )
argStream.SetCustomError ( strError );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例7: RemoveAccount
int CLuaFunctionDefs::RemoveAccount ( lua_State* luaVM )
{
// bool removeAccount ( account theAccount )
CAccount* pAccount;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pAccount );
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::RemoveAccount ( pAccount ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
CClient* pClient = pAccount->GetClient ();
if ( pClient )
argStream.SetCustomError ( "Unable to remove account as unable to log out client. (Maybe onPlayerLogout is cancelled)" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例8: EngineGetVisibleTextureNames
int CLuaEngineDefs::EngineGetVisibleTextureNames ( lua_State* luaVM )
{
// table engineGetVisibleTextureNames ( string wildcardMatch = "*" [, string modelName )
SString strTextureNameMatch; SString strModelName;
CScriptArgReader argStream ( luaVM );
argStream.ReadString ( strTextureNameMatch, "*" );
argStream.ReadString ( strModelName, "" );
if ( !argStream.HasErrors () )
{
ushort usModelID = CModelNames::ResolveModelID ( strModelName );
if ( usModelID != INVALID_MODEL_ID || strModelName == "" )
{
std::vector < SString > nameList;
g_pCore->GetGraphics ()->GetRenderItemManager ()->GetVisibleTextureNames ( nameList, strTextureNameMatch, usModelID );
lua_newtable ( luaVM );
for ( uint i = 0 ; i < nameList.size () ; i++ )
{
lua_pushnumber ( luaVM, i + 1 );
lua_pushstring ( luaVM, nameList [ i ] );
lua_settable ( luaVM, -3 );
}
return 1;
}
argStream.SetCustomError( "Expected valid model ID or name at argument 1" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed
lua_pushboolean ( luaVM, false );
return 1;
}
示例9: EngineGetModelIDFromName
int CLuaEngineDefs::EngineGetModelIDFromName ( lua_State* luaVM )
{
// int engineGetModelIDFromName ( string modelName )
SString strModelName;
CScriptArgReader argStream ( luaVM );
argStream.ReadString ( strModelName );
if ( !argStream.HasErrors () )
{
int iModelID = CModelNames::GetModelID ( strModelName );
if ( iModelID != INVALID_MODEL_ID )
{
lua_pushnumber ( luaVM, iModelID );
return 1;
}
argStream.SetCustomError( "Expected valid model name at argument 1" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed
lua_pushboolean ( luaVM, false );
return 1;
}
示例10: EngineGetModelNameFromID
int CLuaEngineDefs::EngineGetModelNameFromID ( lua_State* luaVM )
{
// string engineGetModelNameFromID ( int modelID )
int iModelID;
CScriptArgReader argStream ( luaVM );
argStream.ReadNumber ( iModelID );
if ( !argStream.HasErrors () )
{
SString strModelName = CModelNames::GetModelName ( iModelID );
if ( !strModelName.empty () )
{
lua_pushstring ( luaVM, strModelName );
return 1;
}
argStream.SetCustomError( "Expected valid model ID at argument 1" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
// We failed
lua_pushboolean ( luaVM, false );
return 1;
}
示例11: fileGetSize
int CLuaFileDefs::fileGetSize ( lua_State* luaVM )
{
// int fileGetSize ( file theFile )
CScriptFile* pFile;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pFile );
if ( !argStream.HasErrors () )
{
long lSize = pFile->GetSize ();
if ( lSize != -1 )
{
// Return its size
lua_pushnumber ( luaVM, lSize );
return 1;
}
else
argStream.SetCustomError ( "Bad file handle" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
// Error
lua_pushnil ( luaVM );
return 1;
}
示例12: ExecuteBrowserJavascript
int CLuaFunctionDefs::ExecuteBrowserJavascript ( lua_State* luaVM )
{
// bool executeBrowserJavascript ( browser webBrowser, string jsCode )
CClientWebBrowser* pWebBrowser; SString strJavascriptCode;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pWebBrowser );
argStream.ReadString ( strJavascriptCode );
if ( !argStream.HasErrors () )
{
if ( pWebBrowser->ExecuteJavascript ( strJavascriptCode ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
else
argStream.SetCustomError ( "This function does not work with remote browsers" );
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例13: SetWeaponTarget
int CLuaFunctionDefs::SetWeaponTarget ( lua_State* luaVM )
{
CClientWeapon * pWeapon;
CClientEntity * pTarget;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pWeapon );
if ( argStream.NextIsUserData() )
{
int targetBone;
argStream.ReadUserData ( pTarget );
argStream.ReadNumber ( targetBone, 255 );
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::SetWeaponTarget ( pWeapon, pTarget, targetBone ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
}
else if ( argStream.NextIsNumber() )
{
CVector vecTarget;
argStream.ReadNumber( vecTarget.fX );
argStream.ReadNumber( vecTarget.fY );
argStream.ReadNumber( vecTarget.fZ );
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::SetWeaponTarget ( pWeapon, vecTarget ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
}
else if ( argStream.NextIsNil() )
{
if ( !argStream.HasErrors () )
{
if ( CStaticFunctionDefinitions::ClearWeaponTarget ( pWeapon ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
}
else
argStream.SetCustomError( "Expected element, number or nil at argument 2" );
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
lua_pushboolean ( luaVM, false );
return 1;
}
示例14: XMLCreateFile
int CLuaFunctionDefs::XMLCreateFile ( lua_State* luaVM )
{
// xmlnode xmlCreateFile ( string filePath, string rootNodeName )
SString filePath; SString rootNodeName;
CScriptArgReader argStream ( luaVM );
argStream.ReadString ( filePath );
argStream.ReadString ( rootNodeName );
// Safety check: Don't allow the rootNodeName "private" incase user forget to declare a node name
if ( rootNodeName == EnumToString ( ACCESS_PRIVATE ) )
{
argStream.SetCustomError( "Expected string at argument 2, got access-type" );
}
if ( !argStream.HasErrors () )
{
CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine(luaVM);
if ( pLuaMain )
{
CResource* pResource = pLuaMain->GetResource();
SString strFile;
if ( CResourceManager::ParseResourcePathInput( filePath, pResource, strFile ) )
{
// Make sure the directory exists
MakeSureDirExists ( strFile.c_str () );
// Create the XML
CXMLFile * xmlFile = pLuaMain->CreateXML ( strFile.c_str () );
if ( xmlFile )
{
// Create its root node
CXMLNode* pRootNode = xmlFile->CreateRootNode ( rootNodeName );
if ( pRootNode )
{
lua_pushxmlnode ( luaVM, pRootNode );
return 1;
}
// Delete the XML again
pLuaMain->DestroyXML ( xmlFile );
}
}
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
lua_pushboolean ( luaVM, false );
return 1;
}
示例15: fileDelete
int CLuaFileDefs::fileDelete ( lua_State* luaVM )
{
// bool fileDelete ( string filePath )
SString strInputPath;
CScriptArgReader argStream ( luaVM );
argStream.ReadString ( strInputPath );
// This is only really necessary server side
if ( argStream.NextIsUserData () )
m_pScriptDebugging->LogCustom ( luaVM, "fileDelete may be using an outdated syntax. Please check and update." );
if ( !argStream.HasErrors () )
{
// Grab our lua VM
CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
if ( pLuaMain )
{
SString strAbsPath;
CResource* pThisResource = pLuaMain->GetResource ();
CResource* pResource = pThisResource;
if ( CResourceManager::ParseResourcePathInput ( strInputPath, pResource, &strAbsPath ) )
{
CheckCanModifyOtherResource( argStream, pThisResource, pResource );
CheckCanAccessOtherResourceFile( argStream, pThisResource, pResource, strAbsPath );
if ( !argStream.HasErrors() )
{
#ifdef MTA_CLIENT
// Inform file verifier
g_pClientGame->GetResourceManager ()->OnFileModifedByScript ( strAbsPath, "fileDelete" );
#endif
if ( FileDelete ( strAbsPath ) )
{
// If file removed successfully, return true
lua_pushboolean ( luaVM, true );
return 1;
}
// Output error "Operation failed @ 'fileDelete' [strInputPath]"
argStream.SetCustomError ( strInputPath, "Operation failed" );
}
}
}
}
if ( argStream.HasErrors () )
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}