Not getting an AVATAR_CREATED response after createMyAvatar

Post here your questions about the OpenSpace 2.x or notify bugs and suggestions.

Moderators: Lapo, Bax

tamirh
Posts: 1
Joined: 28 Dec 2011, 23:04
Location: United States
Contact:

Not getting an AVATAR_CREATED response after createMyAvatar

Postby tamirh » 30 Dec 2011, 21:04

Hi,

I was trying to move from using static rooms to dynamically created ones. The server will create rooms when current ones fill up or none exist. That part seems to be working fine, but adding in avatars once you've joined the room doesn't work anymore.

On the client side, I receive the MAP_LOADED event and then proceed to call IOpenSpaceAPI.createMyAvatar(). After this, nothing happens. The server has no logs saying it received that avatar creation, and the client never gets back an AVATAR_CREATED message.

I assume it has something to do with how I'm creating the room in code vs how it was defined in the XML?

Here is the XML for the room that I was using previously:

Code: Select all

<room>
      <name>LobbyRoom</name>
      <groupId>default</groupId>
      <password></password>
      <maxUsers>20</maxUsers>
      <maxSpectators>0</maxSpectators>
      <isDynamic>false</isDynamic>
      <isGame>false</isGame>
      <isHidden>false</isHidden>
      <autoRemoveMode>DEFAULT</autoRemoveMode>
      <permissions>
        <flags>PASSWORD_STATE_CHANGE,PUBLIC_MESSAGES</flags>
        <maxRoomVariablesAllowed>10</maxRoomVariablesAllowed>
      </permissions>    <events>USER_ENTER_EVENT,USER_EXIT_EVENT,USER_COUNT_CHANGE_EVENT,USER_VARIABLES_UPDATE_EVENT</events>
      <badWordsFilter isActive="false"/>
      <roomVariables>
        <variable>
          <name>_os_mapId</name>
          <value>overworld_v1#m2_Stump</value>
          <type>STRING</type>
          <isPrivate>false</isPrivate>
          <isPersistent>false</isPersistent>
          <isGlobal>false</isGlobal>
          <isHidden>false</isHidden>
        </variable>
      </roomVariables>
      <extension>
        <name></name>
        <type>JAVA</type>
        <file></file>
        <propertiesFile></propertiesFile>
        <reloadMode>AUTO</reloadMode>
      </extension>
    </room>


Here is the code I'm using to create the room now:

Code: Select all

private static Room createLobbyRoom(OpenSpaceExtension extension, String roomName)
   {
       Room newRoom = null;
       File mapFile = loadMapFile(extension.getCurrentFolder(), CGSServerConstants.LOBBY_ROOM_MAP);
       if (mapFile != null)
       {
           CreateRoomSettings settings = new CreateRoomSettings();
          
           List<RoomVariable> roomVariables = new LinkedList<RoomVariable>();
           roomVariables.add(new SFSRoomVariable(
                    CGSServerConstants.MAP_VARIABLE_ID,
                    CGSServerConstants.LOBBY_ROOM_MAP,
                    false, false, false));
           
           Set<SFSRoomSettings> roomSettings = new HashSet<SFSRoomSettings>();
           roomSettings.add(SFSRoomSettings.PASSWORD_STATE_CHANGE);
           roomSettings.add(SFSRoomSettings.PUBLIC_MESSAGES);
           roomSettings.add(SFSRoomSettings.USER_ENTER_EVENT);
           roomSettings.add(SFSRoomSettings.USER_EXIT_EVENT);
           roomSettings.add(SFSRoomSettings.USER_COUNT_CHANGE_EVENT);
           roomSettings.add(SFSRoomSettings.USER_VARIABLES_UPDATE_EVENT);
          
           settings.setDynamic(true);
           settings.setName(roomName);
           settings.setRoomSettings(roomSettings);
           settings.setRoomVariables(roomVariables);
           
           settings.setGroupId(CGSServerConstants.MAP_GROUP_ID);
           settings.setMaxUsers(CGSServerConstants.MAP_MAX_USERS);
           settings.setMaxVariablesAllowed(CGSServerConstants.MAP_MAX_VARIABLES);
          
           settings.setGame(false);
           settings.setHidden(false);
           settings.setMaxSpectators(0);
           settings.setUseWordsFilter(false);
           settings.setAutoRemoveMode(SFSRoomRemoveMode.WHEN_EMPTY);
          
           newRoom = createRoom(extension, settings);
       }
      
       return newRoom;
   }

   private static File loadMapFile(String dir, String filename)
   {
       String fullPath = dir +
                            CGSServerConstants.MAP_DIRECTORY_PREFIX +
                            filename +
                            CGSServerConstants.MAP_EXTENSION_POSTFIX;

       Logger.logInfo("Loading map file: " + fullPath);
      
       File newMap = new File(fullPath);
       try
       {
           if (!newMap.exists() || !newMap.canRead())
           {
               Logger.logError("Error loading map file:" +
                                             newMap.getAbsolutePath() +
                                             " exists?" + newMap.exists() +
                                             " canRead?" + newMap.canRead());
               newMap = null;
           }
       }
       catch(SecurityException e)
       {
           Logger.logError("Exception while loading map");
           Logger.logFullException(new ExceptionMessageComposer(e, true));
       }
      
       return newMap;
   }
   
   private static Room createRoom(OpenSpaceExtension extension, CreateRoomSettings settings)
   {
       Room newRoom = null;
      
       try
       {
           newRoom = extension.getApi().createRoom(
                   extension.getParentZone(),
                   settings,
                   null
            );
       }
       catch (SFSCreateRoomException e)
       {
           Logger.logError("Exception in creating room");
           Logger.logFullException(new ExceptionMessageComposer(e, true));
       }
      
       return newRoom;
   }



Client Logs (edited to take out unnecessary data)

Code: Select all

Main.mxml.onInitialize()
CGSIsoEngine.addOpenSpaceListeners()
Adding CGSAvatarManager listeners
Adding CGSMapEditingManager listeners
Adding CGSMapInteractionManager listeners
Adding CGSMapLoadingManager listeners

Main received connect success
Main.mxml.pushStateListener(Switching screens: cgs_mxml_state_main_menu )
CGSOverworldMain: Submitting login name!
CGSServerMessageHandler received SFSEvent.LOGIN for zone=DevOverworldTest
CGSServerMessageHandler.onLoginResponse(Overworld Zone)
CGSOverworldMain: login success
Main.mxml.pushStateListener(Switching screens: cgs_mxml_state_overworld )

CGSIsoEngine.onOpenSpaceInitialized(2.0.4 | 1.0.2)
CGSServerMessageHandler.onRoomJoin(LobbyRoom 1)
CGSMapLoadingManager.onOpenSpaceMapLoaded()
CGSMapLoadingManager.onOpenSpaceMapProgress(44)
CGSMapLoadingManager.onOpenSpaceMapProgress(72)
CGSMapLoadingManager.onOpenSpaceMapProgress(100)
CGSMapLoadingManager.onOpenSpaceMapRendered()
CGSIsoEngine.onMapLoaded()
CGSIsoEngine.loadAvatar()
m_openSpace.createMyAvatar()


Server Logs (edited to take out timestamp etc)

Code: Select all

[OpenSpace]    Logging in with: foobar / c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
Extensions:    {devOverworldTest}: Comparing salted passwords for memId: 221 : ibs1la71pk11u741ova1fc8k9r1t40i9j1mhs = ibs1la71pk11u741ova1fc8k9r1t40i9j1mhs
v2.api.SFSApi  Login in, { Zone: DevOverworldTest }, ( User Name: foobar, Id: 13, Priv: 0, Sess: 128.208.7.225:21468 )
[OpenSpace]    Member foobar: 221
[OpenSpace]    Trying get a room: LobbyRoom
[OpenSpace]    RoomList: <empty>
[OpenSpace]    Creating room of type=LobbyRoom name=LobbyRoom 1
[OpenSpace]    Loading map file: extensions/devOverworldTest/data/overworld_v1#m2_Stump.map
v2.api.SFSApi  Room created: [ Room: LobbyRoom 1, Id: 24, Group: default, isGame: false ]
[OpenSpace]    'Send avatar to map' command received on behalf of user foobar [13]
[OpenSpace]    Map load request received from user foobar [13]
[OpenSpace]    Joining user foobar [13] to Room 'LobbyRoom 1' [24]
[OpenSpace]    Room 'LobbyRoom 1' [24] joined; now loading associated map 'overworld_v1#m2_Stump
[OpenSpace]    Loading assets library for map 'overworld_v1#m2_Stump'
[OpenSpace]    Library 'overworld_v1' already available in cache
[OpenSpace]    'extensions/devOverworldTest/data/overworld_v1#m2_Stump.map' map file loaded
[OpenSpace]    Map 'overworld_v1#m2_Stump' sent to user foobar [13]
User avatar
Bax
Site Admin
Posts: 4609
Joined: 29 Mar 2005, 09:50
Location: Italy
Contact:

Postby Bax » 03 Jan 2012, 10:50

Could you enable the SFS client debug too?
I'd like to see the message sent by the client when you call the createMyAvatar method.
Paolo Bax
The SmartFoxServer Team

Return to “OpenSpace v2 discussions and help”

Who is online

Users browsing this forum: No registered users and 13 guests