コード例 #1
0
ファイル: CLuaTeamDefs.cpp プロジェクト: Jusonex/mtasa-blue
int CLuaTeamDefs::GetTeamColor ( lua_State* luaVM )
{
    CClientTeam* pTeam = NULL;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTeam );

    if ( !argStream.HasErrors () )
    {
        unsigned char ucRed, ucGreen, ucBlue;
        pTeam->GetColor ( ucRed, ucGreen, ucBlue );

        lua_pushnumber ( luaVM, ucRed );
        lua_pushnumber ( luaVM, ucGreen );
        lua_pushnumber ( luaVM, ucBlue );
        return 3;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #2
0
int CLuaFunctionDefs::GetKeyBoundToCommand ( lua_State* luaVM )
{
    SString strCommand = "";
    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strCommand );

    if ( !argStream.HasErrors ( ) )
    {
        CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
        if ( pLuaMain )
        {
            // get the key
            list < CKeyBind* > ::const_iterator iter = g_pCore->GetKeyBinds ()->IterBegin ();
            for ( ; iter != g_pCore->GetKeyBinds ()->IterEnd (); iter++ )
            {
                CKeyBind* pKeyBind = *iter;
                if ( !pKeyBind->IsBeingDeleted () && pKeyBind->bActive )
                {
                    if ( pKeyBind->GetType () == KEY_BIND_COMMAND )
                    {
                        CCommandBind* pBind = static_cast < CCommandBind* > ( pKeyBind );
                        if ( strcmp ( strCommand, pBind->szCommand ) == 0 )
                        {
                            lua_pushstring ( luaVM, pBind->boundKey->szKey );
                            return 1;
                        }
                    }
                }
            }
            lua_pushboolean ( luaVM, false );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #3
0
int CLuaMatrixDefs::TransformPosition ( lua_State* luaVM )
{
    CLuaMatrix* pMatrix1 = NULL;
    CVector vector;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pMatrix1 );
    argStream.ReadVector3D ( vector );

    if ( !argStream.HasErrors () )
    {
        lua_pushvector( luaVM, pMatrix1->TransformVector ( vector ) );
        return 1;
    }
    else
    {
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
    }

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #4
0
ファイル: CLuaFileDefs.cpp プロジェクト: F420/mtasa-blue
int CLuaFileDefs::fileGetPath ( lua_State* luaVM )
{
    //  string fileGetPath ( file theFile )
    CScriptFile* pFile;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pFile );

    if ( !argStream.HasErrors () )
    {
        // Grab our lua VM
        CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
        if ( pLuaMain )
        {
            // We have a resource argument?
            CResource* pThisResource = pLuaMain->GetResource ();
            CResource* pFileResource = pFile->GetResource ();

            SString strFilePath = pFile->GetFilePath ();

            // If the calling resource is not the resource the file resides in 
            // we need to prepend :resourceName to the path
            if ( pThisResource != pFileResource )
            {
                SString strResourceName = pFileResource->GetName ();
                strFilePath = ":" + strResourceName + "/" + strFilePath;
            }

            lua_pushlstring ( luaVM, strFilePath.c_str (), strFilePath.length () );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    // Failed
    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #5
0
int CLuaFunctionDefs::SetCursorAlpha ( lua_State* luaVM )
{
//  bool setCursorAlpha ( float alpha )
    float fAlpha;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadNumber ( fAlpha );

    if ( !argStream.HasErrors () )
    {
        if ( CStaticFunctionDefinitions::SetCursorAlpha ( fAlpha / 255.f ) )
        {
            lua_pushboolean ( luaVM, true );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #6
0
ファイル: CLuaBanDefs.cpp プロジェクト: Jusonex/mtasa-blue
int CLuaBanDefs::GetBanAdmin ( lua_State* luaVM )
{
    CBan* pBan;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pBan );

    if ( !argStream.HasErrors () )
    {
        SString strAdmin;
        if ( CStaticFunctionDefinitions::GetBanAdmin ( pBan, strAdmin ) )
        {
            lua_pushstring ( luaVM, strAdmin );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #7
0
ファイル: CLuaVector3Defs.cpp プロジェクト: AdiBoy/mtasa-blue
int CLuaVector3Defs::Destroy ( lua_State* luaVM )
{
    CLuaVector3D* pVector = NULL;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pVector );

    if ( !argStream.HasErrors () )
    {
        delete pVector;

        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
    {
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
    }

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #8
0
int CLuaTextDefs::textItemSetScale ( lua_State* luaVM )
{
    CTextItem * pTextItem;
    float fScale;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTextItem );
    argStream.ReadNumber ( fScale );

    if ( !argStream.HasErrors ( ) )
    {
        pTextItem->SetScale ( fScale ); 

        lua_pushboolean ( luaVM, true);
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #9
0
int CLuaFunctionDefs::SetWeaponState ( lua_State* luaVM )
{
    CClientWeapon * pWeapon;
    eWeaponState weaponState;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pWeapon );
    argStream.ReadEnumString ( weaponState );

    if ( !argStream.HasErrors () )
    {
        if ( CStaticFunctionDefinitions::SetWeaponState ( pWeapon, weaponState ) )
        {
            lua_pushboolean ( luaVM, true );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #10
0
int CLuaTextDefs::textDisplayRemoveObserver ( lua_State* luaVM )
{
    CTextDisplay * pTextDisplay;
    CPlayer * pPlayer;  

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTextDisplay );
    argStream.ReadUserData ( pPlayer );

    if ( !argStream.HasErrors ( ) )
    {
        pTextDisplay->RemoveObserver ( pPlayer );

        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #11
0
int CLuaTextDefs::textItemSetText ( lua_State* luaVM )
{
    CTextItem * pTextItem;
    SString strText;  

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTextItem );
    argStream.ReadString ( strText );

    if ( !argStream.HasErrors ( ) )
    {
        pTextItem->SetText( strText );

        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #12
0
int CLuaTextDefs::textDisplayAddText ( lua_State* luaVM )
{
    CTextDisplay * pTextDisplay;
    CTextItem * pTextItem;  

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTextDisplay );
    argStream.ReadUserData ( pTextItem );

    if ( !argStream.HasErrors ( ) )
    {
        pTextDisplay->Add ( pTextItem );

        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #13
0
int CLuaFunctionDefs::IsAmbientSoundEnabled ( lua_State* luaVM )
{
    eAmbientSoundType eType;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadEnumString ( eType );

    if ( !argStream.HasErrors () )
    {
        bool bResultEnabled;
        if ( CStaticFunctionDefinitions::IsAmbientSoundEnabled ( eType, bResultEnabled ) )
        {
            lua_pushboolean ( luaVM, bResultEnabled );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #14
0
int CLuaFunctionDefs::SetAmbientSoundEnabled ( lua_State* luaVM )
{
    eAmbientSoundType eType; bool bEnabled;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadEnumString ( eType, AMBIENT_SOUND_GENERAL );
    argStream.ReadBool ( bEnabled );

    if ( !argStream.HasErrors () )
    {
        if ( CStaticFunctionDefinitions::SetAmbientSoundEnabled ( eType, bEnabled ) )
        {
            lua_pushboolean ( luaVM, true );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #15
0
ファイル: CLuaFileDefs.cpp プロジェクト: Citizen01/mtasa-blue
int CLuaFileDefs::fileClose ( lua_State* luaVM )
{
    // string fileClose ( file )
    CScriptFile* pFile;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pFile );

    if ( !argStream.HasErrors ( ) )
    {
        // Close the file and delete it
        pFile->Unload ();
        m_pElementDeleter->Delete ( pFile );

        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushnil ( luaVM );
    return 1;
}
コード例 #16
0
int CLuaFunctionDefs::GetWeaponNameFromID ( lua_State* luaVM )
{
    unsigned char ucID = 0;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadNumber( ucID );

    if ( !argStream.HasErrors ( ) )
    {

        SString strBuffer;
        if ( CStaticFunctionDefinitions::GetWeaponNameFromID ( ucID, strBuffer ) )
        {
            lua_pushstring ( luaVM, strBuffer );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #17
0
ファイル: CLuaBanDefs.cpp プロジェクト: Jusonex/mtasa-blue
int CLuaBanDefs::GetUnbanTime ( lua_State* luaVM )
{
    CBan* pBan;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pBan );

    if ( !argStream.HasErrors () )
    {
        time_t tTime;
        if ( CStaticFunctionDefinitions::GetUnbanTime ( pBan, tTime ) )
        {
            lua_pushnumber ( luaVM, (double) tTime );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #18
0
int CLuaFunctionDefs::SetWeaponClipAmmo ( lua_State* luaVM )
{
    CClientWeapon * pWeapon = NULL;
    int iAmmo = 0;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pWeapon );
    argStream.ReadNumber ( iAmmo );

    if ( !argStream.HasErrors() )
    {
        if ( CStaticFunctionDefinitions::SetWeaponClipAmmo( pWeapon, iAmmo ) )
        {
            lua_pushboolean ( luaVM, true );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #19
0
ファイル: CLuaVector3Defs.cpp プロジェクト: AdiBoy/mtasa-blue
int CLuaVector3Defs::Eq ( lua_State* luaVM )
{
    CLuaVector3D* pVector1 = NULL;
    CLuaVector3D* pVector2 = NULL;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pVector1 );
    argStream.ReadUserData ( pVector2 );

    if ( !argStream.HasErrors () )
    {
        lua_pushboolean ( luaVM, pVector1 == pVector2 );
        return 1;
    }
    else
    {
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
    }

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #20
0
int CLuaFunctionDefs::CreateWeapon ( lua_State* luaVM )
{
    CVector vecPos;
    eWeaponType weaponType;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadEnumStringOrNumber ( weaponType );
    argStream.ReadNumber ( vecPos.fX );
    argStream.ReadNumber ( vecPos.fY );
    argStream.ReadNumber ( vecPos.fZ );

    if ( !argStream.HasErrors () )
    {
        CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
        if ( pLuaMain )
        {
            CResource* pResource = pLuaMain->GetResource ();
            if ( pResource )
            {
                CClientWeapon * pWeapon = CStaticFunctionDefinitions::CreateWeapon ( *pResource, weaponType, vecPos );
                if ( pWeapon )
                {
                    CElementGroup * pGroup = pResource->GetElementGroup();
                    if ( pGroup )
                    {
                        pGroup->Add ( ( CClientEntity* ) pWeapon );
                    }

                    lua_pushelement ( luaVM, pWeapon );
                    return 1;
                }
            }
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #21
0
int CLuaResourceDefs::GetResourceRootElement ( lua_State* luaVM )
{
    // Verify arguments
    CResource* pResource = NULL;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pResource, NULL );

    // No resource given, get this resource's root
    if ( !argStream.HasErrors () )
    {
        if ( !pResource )
        {
            // Find our vm and get the root
            CLuaMain* pLuaMain = m_pLuaManager->GetVirtualMachine ( luaVM );
            if ( pLuaMain )
            {
                pResource = pLuaMain->GetResource ();
            }
        }

        // Did we find a resource?
        if ( pResource )
        {
            // Grab the root element of it and return it if it existed
            CClientEntity* pEntity = pResource->GetResourceEntity ();
            if ( pEntity )
            {
                lua_pushelement ( luaVM, pEntity );
                return 1;
            }
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    // Failed
    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #22
0
int CLuaDatabaseDefs::ExecuteSQLCreateTable ( lua_State* luaVM )
{
    SString strTable;
    SString strDefinition;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strTable );
    argStream.ReadString ( strDefinition );

    if ( !argStream.HasErrors () )
    {
        CPerfStatSqliteTiming::GetSingleton ()->SetCurrentResource ( luaVM );
        CStaticFunctionDefinitions::ExecuteSQLCreateTable ( strTable, strDefinition );
        lua_pushboolean ( luaVM, true );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #23
0
int CLuaCryptDefs::Md5 ( lua_State* luaVM )
{
    SString strMd5 = "";
    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strMd5 );

    if ( !argStream.HasErrors () )
    {
        MD5 md5bytes;
        char szResult[33];
        CMD5Hasher hasher;
        hasher.Calculate ( strMd5, strMd5.length (), md5bytes );
        hasher.ConvertToHex ( md5bytes, szResult );
        lua_pushstring ( luaVM, szResult );
        return 1;
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #24
0
int CLuaFunctionDefs::GetTeamFriendlyFire ( lua_State* luaVM )
{
    CTeam *pTeam;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTeam );

    if ( !argStream.HasErrors () )
    {
        bool bFriendlyFire;
        if ( CStaticFunctionDefinitions::GetTeamFriendlyFire ( pTeam, bFriendlyFire ) )
        {
            lua_pushboolean ( luaVM, bFriendlyFire );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #25
0
int CLuaFunctionDefs::GetAnalogControlState ( lua_State * luaVM )
{
    SString strControlState = "";
    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strControlState );

    if ( !argStream.HasErrors ( ) )
    {
        float fState;
        if ( CStaticFunctionDefinitions::GetAnalogControlState ( strControlState , fState ) )
        {
            lua_pushnumber ( luaVM, fState );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );


    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #26
0
int CLuaFunctionDefs::CountPlayersInTeam ( lua_State* luaVM )
{
    CTeam *pTeam;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pTeam );

    if ( !argStream.HasErrors () )
    {
        unsigned int uiCount;
        if ( CStaticFunctionDefinitions::CountPlayersInTeam ( pTeam, uiCount ) )
        {
            lua_pushnumber ( luaVM, uiCount );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #27
0
int CLuaFunctionDefs::ToggleControl ( lua_State * luaVM )
{
    SString strControl = "";
    bool bState = false;
    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strControl );
    argStream.ReadBool ( bState );

    if ( !argStream.HasErrors ( ) )
    {
        if ( CStaticFunctionDefinitions::ToggleControl ( strControl, bState ) )
        {
            lua_pushboolean ( luaVM, true );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #28
0
int CLuaFunctionDefs::GetTeamFromName ( lua_State* luaVM )
{
    SString strName;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadString ( strName );

    if ( !argStream.HasErrors () )
    {
        CTeam* pTeam = CStaticFunctionDefinitions::GetTeamFromName ( strName );
        if ( pTeam )
        {
            lua_pushelement ( luaVM, pTeam );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}
コード例 #29
0
int CLuaMatrixDefs::Div ( lua_State* luaVM )
{
    CLuaMatrix* pMatrix1 = NULL;
    CLuaMatrix* pMatrix2 = NULL;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pMatrix1 );
    argStream.ReadUserData ( pMatrix2 );

    if ( !argStream.HasErrors () )
    {
        lua_pushmatrix ( luaVM, *pMatrix1 / *pMatrix2 );
        return 1;
    }
    else
    {
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
    }

    lua_pushboolean( luaVM, false );
    return 1;
}
コード例 #30
0
ファイル: CLuaPedDefs.cpp プロジェクト: GDog1985/mtasa-blue
int CLuaPedDefs::GetPedMoveAnim ( lua_State* luaVM )
{
    CPed* pPed;

    CScriptArgReader argStream ( luaVM );
    argStream.ReadUserData ( pPed );

    if ( !argStream.HasErrors () )
    {
        unsigned int uiMoveAnim;
        if ( CStaticFunctionDefinitions::GetPedMoveAnim ( pPed, uiMoveAnim ) )
        {
            lua_pushnumber ( luaVM, uiMoveAnim );
            return 1;
        }
    }
    else
        m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );

    lua_pushboolean ( luaVM, false );
    return 1;
}