Raised This Month: $51 Target: $400
 12% 

SourceMM Bug ?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
c0ldfyr3
AlliedModders Donor
Join Date: Aug 2005
Location: Ireland
Old 02-13-2006 , 23:23   SourceMM Bug ?
Reply With Quote #1

I have two plugins using TraceAttack hooks, one SUPERCEDES the other just IGNORES.
This is a snippet of the stack, it goes on and on.
Code:
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
---Type <return> to continue, or q <return> to quit---
#1652 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1653 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1654 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1655 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1656 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1657 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1658 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1659 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
---Type <return> to continue, or q <return> to quit---
    at meta_hooks.h:56
#1660 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1661 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1662 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1663 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1664 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1665 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1666 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1667 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
---Type <return> to continue, or q <return> to quit---
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1668 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1669 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1670 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1671 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1672 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56

#1673 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1674 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
---Type <return> to continue, or q <return> to quit---
#1675 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1676 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (

    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1677 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1678 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1679 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1680 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1681 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (

    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1682 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
---Type <return> to continue, or q <return> to quit---
    at meta_hooks.h:56
#1683 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1684 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1685 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56

#1686 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1687 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1688 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1689 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1690 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
---Type <return> to continue, or q <return> to quit---
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1691 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1692 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1693 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1694 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56

#1695 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1696 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1697 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
---Type <return> to continue, or q <return> to quit---
#1698 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1699 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1700 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1701 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1702 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1703 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1704 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1705 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
---Type <return> to continue, or q <return> to quit---
    at meta_hooks.h:56
#1706 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1707 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1708 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1709 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1710 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1711 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1712 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1713 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
---Type <return> to continue, or q <return> to quit---
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1714 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1715 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1716 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1717 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1718 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1719 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
#1720 0x00c6cc84 in __SourceHook_MFHCls_TraceAttack_hook::Func (
    this=0xa5b28c0, p1=@0xfeef9a40, p2=@0xfeef9c10, p3=0xfeef9b60)
    at meta_hooks.h:56
---Type <return> to continue, or q <return> to quit---
__________________
c0ldfyr3 is offline
Send a message via MSN to c0ldfyr3 Send a message via Yahoo to c0ldfyr3
BAILOPAN
Join Date: Jan 2004
Old 02-14-2006 , 13:47  
Reply With Quote #2

nice infinite recursion. show the contents of the hooks, and let me know which version of MM this is.
__________________
egg
BAILOPAN is offline
c0ldfyr3
AlliedModders Donor
Join Date: Aug 2005
Location: Ireland
Old 02-15-2006 , 08:27  
Reply With Quote #3

Ok, heres the code from both plugins.
They run fine indepentantly.
Code:
void Core::TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr )
{
	CBaseEntity *pPlayer = META_IFACEPTR( CBaseEntity );
	if ( pPlayer && pPlayer->edict() && !pPlayer->edict()->IsFree() )
	{
		int iPlayer = m_Engine->IndexOfEdict( pPlayer->edict() );
		CBaseEntity *pBase =  NULL;

		if ( info.m_hInflictor.GetEntryIndex() > 0 ) 
		{
			edict_t *edict = m_Engine->PEntityOfEntIndex(info.m_hInflictor.GetEntryIndex() );
			if ( edict ) 
			{
				pBase = edict->GetUnknown()->GetBaseEntity();
			}
		}

		if ( pBase && pBase->GetClassName() )
		{
			if ( FStrEq( pBase->GetClassName(), "CPlantedC4" ) )
			{
				g_Players[iPlayer].bC4Frag = true;
			}
			//:CPlantedC4:planted_c4:
		}
		if ( iPlayer >= 0 && iPlayer <= MAX_PLAYERS && ptr && m_Engine->GetPlayerUserId( pPlayer->edict() ) != -1 )
		{
			g_Players[iPlayer].fForce = 400;
			g_Players[iPlayer].vDirection = vecDir;
			g_Players[iPlayer].vLastHit = ptr->endpos;
		}
	}
	RETURN_META( MRES_IGNORED );
}
Code:
void ZombiePlugin::TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr )
{
	if ( !zombie_mode.GetBool() )
	{
		return;
	}
	CBaseEntity *pPlayer = META_IFACEPTR( CBaseEntity );
	if ( pPlayer && pPlayer->edict() && !pPlayer->edict()->IsFree() )
	{
		int iAttacker = -1;
		int iPlayer = m_Engine->IndexOfEdict( pPlayer->edict() );
		CBaseEntity *pBase =  NULL;

		if ( info.m_hAttacker.GetEntryIndex() > 0 ) 
		{
			edict_t *edict = m_Engine->PEntityOfEntIndex( info.m_hAttacker.GetEntryIndex() );
			if ( edict ) 
			{
				pBase = edict->GetUnknown()->GetBaseEntity();
				if ( pBase && pBase->edict() )
				{
					iAttacker = m_Engine->IndexOfEdict( pBase->edict() );
				}
			}
		}
		if ( pBase && pBase->edict() && m_Engine->GetPlayerUserId( pPlayer->edict() ) != -1 && m_Engine->GetPlayerUserId( pBase->edict() ) != -1 )
		{
			bool bAttacker = g_Players[iAttacker].isZombie;
			bool bVictim = g_Players[iPlayer].isZombie;
			if ( ( bAttacker && bVictim ) || ( !bAttacker && !bVictim ) )
			{
				RETURN_META( MRES_SUPERCEDE );
			}
		}
	}
	RETURN_META( MRES_IGNORED );
}
__________________
c0ldfyr3 is offline
Send a message via MSN to c0ldfyr3 Send a message via Yahoo to c0ldfyr3
BAILOPAN
Join Date: Jan 2004
Old 02-15-2006 , 13:10  
Reply With Quote #4

is it from that return; in the second plugin not setting a RETURN_META result?

edit: I cannot reproduce this and you don't say which version
__________________
egg
BAILOPAN is offline
c0ldfyr3
AlliedModders Donor
Join Date: Aug 2005
Location: Ireland
Old 02-15-2006 , 13:52  
Reply With Quote #5

No their both void, and its the CVS version you sent me, the .so.
__________________
c0ldfyr3 is offline
Send a message via MSN to c0ldfyr3 Send a message via Yahoo to c0ldfyr3
BAILOPAN
Join Date: Jan 2004
Old 02-15-2006 , 14:12  
Reply With Quote #6

that wasn't what I meant - you return without a RETURN_META, even though it shouldn't matter.

I'm not sure what CVS version I gave you but I'm gonna release today regardless, if this bug is more than a user error we can do a 1.2.2 release.
__________________
egg
BAILOPAN is offline
PM
hello, i am pm
Join Date: Jan 2004
Location: Canalization
Old 02-15-2006 , 15:39  
Reply With Quote #7

Hello,

linux or windows?

What could have happened

1) Some freaking recall (newparams) stuff went wrong; unlikely because
2) Corrupted stack pointer; unlikely; would be weird
3) SourceHook's "orginal virtual function pointer" gets set to the new function... This could happen ifffff if two plugins hook it and on the second try it somehow gets patched again even though it was already patches so sourcehook thinks its own hookfunc pointer is the original pointer... hmm, why would this happen? No idea, I'll look to it when I have some time again
__________________
hello, i am pm
PM is offline
c0ldfyr3
AlliedModders Donor
Join Date: Aug 2005
Location: Ireland
Old 02-16-2006 , 08:27  
Reply With Quote #8

Linux

The problem hasnt happened since, but I have only been testing with bots and that error occured on a live server.

I've tended to always run srcds inside gdb anymore just incase something miraculous happens just like this.

Looks like it was a good idea

Oh, also, that line in the post wasnt the last call in the stack, there were about 500 lines which were identical to each other but different to the one above, before it got to those ones.
But because im a putty nub and couldnt scroll up, i could only post those ones.
But they were also SH lines, deeper into the tree possibly.
__________________
c0ldfyr3 is offline
Send a message via MSN to c0ldfyr3 Send a message via Yahoo to c0ldfyr3
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:36.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode