@

Das hier ist schon immer drin. Und ich meine das es auch funktioniert. Habs aber nicht getestet.
PHP Code:
BOOL TextCmd_CreateChar( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
D3DXVECTOR3 vPos = pUser->GetPos();
CWorld* pWorld = pUser->GetWorld();
MoverProp* pMoverProp = NULL;
scanner.GetToken();
if( scanner.tokenType == NUMBER )
{
DWORD dwID = _ttoi( scanner.Token );
pMoverProp = prj.GetMoverPropEx( dwID );
}
else
pMoverProp = prj.GetMoverProp( scanner.Token );
scanner.GetToken();
CString strName = scanner.Token;
if( pMoverProp && pMoverProp->dwID != 0 )
{
DWORD dwNum = scanner.GetNumber();
if( dwNum > 100 ) dwNum = 100;
if( dwNum == 0 ) dwNum = 1;
BOOL bActiveAttack = scanner.GetNumber();
for( DWORD dw = 0; dw < dwNum; dw++ )
{
CMover* pMover = (CMover*)CreateObj( D3DDEVICE, OT_MOVER, pMoverProp->dwID );
if( NULL == pMover ) return FALSE; // ASSERT( pObj );
strcpy( pMover->m_szCharacterKey, strName );
pMover->InitNPCProperty();
pMover->InitCharacter( pMover->GetCharacter() );
pMover->SetPos( vPos );
pMover->InitMotion( MTI_STAND );
pMover->UpdateLocalMatrix();
if( bActiveAttack )
pMover->m_bActiveAttack = bActiveAttack;
pWorld->ADDOBJ( pMover, TRUE, pUser->GetLayer() );
}
}
#endif // __WORLDSERVER
return TRUE;
}