else pGetInt( "dex", effDex() ) else if( !strcmp( name, "int" ) )
else pGetInt( "dexterity", effDex() ) else if( !strcmp( name, "intelligence" ) )
PyObject *wpChar_getAttr( wpChar *self, char *name ){	pGetStr( "name", name )	else pGetStr( "orgname", orgname().latin1() )	else pGetStr( "title", title().latin1() )	else pGetInt( "id", id() )	else pGetInt( "xid", xid() )    	else pGetInt( "dir", dir() )	// Flags	else pGetInt( "allmove", canMoveAll() ? 1 : 0 )	else pGetInt( "frozen", isFrozen() ? 1 : 0 )	else pGetInt( "iconmultis", viewHouseIcons() ? 1 : 0 )	else pGetInt( "permhidden", isHiddenPermanently() ? 1 : 0 )	else pGetInt( "hidden", hidden() )	else pGetInt( "nomana", priv2() & 0x10 ? 1 : 0 )	else pGetInt( "dispellable", priv2() & 0x20 ? 1 : 0 )	else pGetInt( "permmagicreflect", priv2() & 0x40 ? 1 : 0 )	else pGetInt( "noreags", priv2() & 0x80 ? 1 : 0 )	else if( !strcmp( name, "fonttype" ) ) 		return PyInt_FromLong( self->pChar->fonttype() );	else if( !strcmp( name, "saycolor" ) ) 		return PyInt_FromLong( self->pChar->saycolor() );	else if( !strcmp( name, "emotecolor" ) ) 		return PyInt_FromLong( self->pChar->emotecolor() );	else if( !strcmp( name, "str" ) ) 		return PyInt_FromLong( self->pChar->st() );	else pGetInt( "dex", effDex() )	else if( !strcmp( name, "int" ) )		return PyInt_FromLong( self->pChar->in() );	else if ( !strcmp( name, "str2" ) )		return PyInt_FromLong( self->pChar->st2() );	else pGetInt( "dex2", decDex() )	else if( !strcmp( name, "int2" ) )		return PyInt_FromLong( self->pChar->in2() );	else if ( !strcmp( name, "health" ) )		return PyInt_FromLong( self->pChar->hp() );	else if ( !strcmp( name, "stamina" ) )		return PyInt_FromLong( self->pChar->stm() );	else if ( !strcmp( name, "mana" ) )		return PyInt_FromLong( self->pChar->mn() );	else if ( !strcmp( name, "hidamage" ) )		return PyInt_FromLong(self->pChar->hidamage() );	else if ( !strcmp( name, "lodamage" ) )		return PyInt_FromLong( self->pChar->lodamage() );	else if ( !strcmp( name, "npc" ) )		return PyInt_FromLong( self->pChar->npc() );	else if ( !strcmp( name, "shop" ) )		return PyInt_FromLong( self->pChar->shop() );	else if ( !strcmp( name, "cell" ) )		return PyInt_FromLong( self->pChar->cell() );	else if( !strcmp( name, "owner" ) )		return PyGetCharObject( self->pChar->owner() );	else if( !strcmp( name, "karma" ) )		return PyInt_FromLong( self->pChar->karma() );	else if( !strcmp( name, "fame" ) )		return PyInt_FromLong( self->pChar->fame() );	else if( !strcmp( name, "kills" ) )		return PyInt_FromLong( self->pChar->kills() );	else if( !strcmp( name, "deaths" ) )		return PyInt_FromLong( self->pChar->deaths() );	else if( !strcmp( name, "dead" ) )		return PyInt_FromLong( self->pChar->dead() );	else if( !strcmp( name, "backpack" ) )		return PyGetItemObject( self->pChar->getBackpack() );	else if( !strcmp( name, "def" ) )		return PyInt_FromLong( self->pChar->def() );	else if( !strcmp( name, "war" ) )		return PyInt_FromLong( self->pChar->war() );		// Target	else if( !strcmp( "target", name ) )		return PyGetCharObject( FindCharBySerial( self->pChar->targ() ) );	else if( !strcmp( "npcwander", name ) )		return PyInt_FromLong( self->pChar->npcWander() );	else if( !strcmp( "oldnpcwander", name ) )		return PyInt_FromLong( self->pChar->oldnpcWander() );		// Region object	else if( !strcmp( "region", name ) )		return PyGetRegionObject( self->pChar->region() );	else if( !strcmp( "skilldelay", name ) )		return PyInt_FromLong( self->pChar->skilldelay() );	else if( !strcmp( "objectdelay", name ) )		return PyInt_FromLong( self->pChar->objectdelay() );	else if( !strcmp( "taming", name ) )		return PyInt_FromLong( self->pChar->taming() );	else if( !strcmp( "summontimer", name ) )		return PyInt_FromLong( self->pChar->summontimer() );	else if( !strcmp( "visrange", name ) )		return PyInt_FromLong( self->pChar->VisRange() );		else if( !strcmp( "trackingtarget", name ) )	{		if( isItemSerial( self->pChar->trackingTarget() ) )			return PyGetItemObject( FindItemBySerial( self->pChar->trackingTarget() ) );		else if( isCharSerial( self->pChar->trackingTarget() ) )			return PyGetCharObject( FindCharBySerial( self->pChar->trackingTarget() ) );	}	// Account object	else if( !strcmp( "account", name ) )	{		return Py_None;	}	else pGetInt( "incognito", incognito() )	else pGetInt( "polymorph", polymorph() )	else pGetInt( "haircolor", haircolor() )	else pGetInt( "hairstyle", hairstyle() )	else pGetInt( "beardcolor", beardcolor() )	else pGetInt( "beardstyle", beardstyle() )	else if( !strcmp( "socket", name ) )		return PyGetSocketObject( self->pChar->socket() );	else if( !strcmp( "pos", name ) )		return PyGetCoordObject( self->pChar->pos );	else if( !strcmp( "baseskill", name ) )	{		wpSkills *skills = PyObject_New( wpSkills, &wpSkillsType );		skills->base = true;		skills->pChar = self->pChar;		return (PyObject*)( skills );	}	else if( !strcmp( "skill", name ) )	{		wpSkills *skills = PyObject_New( wpSkills, &wpSkillsType );		skills->base = false;		skills->pChar = self->pChar;		return (PyObject*)( skills );	}	else pGetInt( "direction", beardstyle() )	else pGetInt( "serial", serial )	else pGetStr( "profile", profile() )	else if( !strcmp( name, "followers" ) )	{		cChar::Followers followers = self->pChar->followers();		PyObject *rVal = PyTuple_New( followers.size() );		for( INT32 i = 0; i < followers.size(); ++i )			PyTuple_SetItem( rVal, i, PyGetCharObject( followers[i] ) );		return rVal;	}	else if( !strcmp( name, "guildstone" ) )		return PyGetItemObject( FindItemBySerial( self->pChar->guildstone() ) );	// If no property is found search for a method	return Py_FindMethod( wpCharMethods, (PyObject*)self, name );}