HeroEngine Forums
Welcome, Guest. Please login or Register for HeroCloud Account.

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - HE-ALEX

Pages: [1]
1
Scripting & Programming / Re: Chat Panel Integration not working
« on: May 23, 13, 01:22:13 PM »
The sample client code for Subscribing, Unsubscribing and Sending a Message have been fixed to use the client-side classes.

Messages sent with the Chat System are not displayed in the Chat Panel. Developers must implement Chat in a way that best suits their design.

2
Scripting & Programming / Re: Chat Panel Integration not working
« on: May 22, 13, 01:30:53 PM »
The Chat System wiki page has been corrected. There needs to be a space between "/hechat" and "area" or "world" etc.

ex: "/hechat area Hello World!" will send a message to the area channel.

3
GUI Creation / Re: Using _GUIIcon for dragable icons
« on: Dec 09, 11, 04:29:50 PM »
If a GUIMovePanel is moving a GUI Layer the owner field of the Move Panel may be set incorrectly. If you want a Move Panel to move only itself and it's children the owner field should be "0". If the owner field is set to "1" it will move it's parent control and all children.

For more information on how the owner field effects Move Panels see the following wiki page: http://wiki.heroengine.com/wiki/GUI_Controls#GUIMovePanel

4
Scripting & Programming / Re: Character Data
« on: Nov 15, 11, 05:17:23 PM »
When the "Create New" button is clicked on the Character Selection screen a message is sent to the server to create a new character. If the character is allowed to create a character then _CSSCreateCharacter() is called on the $CHARACTERSELECTIONSYSTEM system node. Here is where the new Player Character node is created and associated to the Player Account. When the Player Character node is turned into a root node it is immediatly unloaded. Next the Player Character root node is requested to load. Loading a Root Node is an asynchronous proccess and takes a variable amount of time. After the Player Character node has been loaded the character is sent to the Character Creation Area. When the "Finish" button in the Character Creation screen is pressed the client requests their Player Character's name is changed to what is in the input box. If it succeeds then the client requests travel to the starting area.

Scripts related to this proccess are:
  • _AccountClassMethods
  • _CharacterSelectionClassMethods
  • _PlayerConnectionClassMethods
  • _PlayerAccountClassMethods
  • _GUICSSCharacterSelectionClassMethods
  • E_characterCreatingWindowClassMethods

If you wanted to add additional data to a Player Character node after it's been created, you could override HE_CSSCharacterSelected() on $CHARACTERSELECTIONSYSTEM system node on the server. This will be called from _CSSCharacterSelected() after the Player Character root node has been loaded. Note you will need to check if the data has already been added because _CSSCharacterSelected() will be called every time the character is selected from the Character Selection Screen. You could also implement HE_CSSCreateCharacter() on $CHARACTERSELECTIONSYSTEM system node on the server which would override the behavior of _CSSCreateCharacter() and add any Game Specific data to the Player Character.

If you wanted to change what GUI is used for the character selection screen override HE_CSSInvokeGUI() on $CHARACTERSELECTIONSYSTEM system node on the client. This will be called when the client is activated in the Character Selection area.

The character creation GUI is overridden by HE_CCSInvokeGUI on $CHARACTERCREATIONSYSTEM system node on the client.

Relevant Wiki Articles:
http://wiki.heroengine.com/wiki/$ACCOUNT
http://wiki.heroengine.com/wiki/$CHARACTERSELECTIONSYSTEM
http://wiki.heroengine.com/wiki/$CHARACTERCREATIONSYSTEM
http://wiki.heroengine.com/wiki/Account_Character_Tree
http://wiki.heroengine.com/wiki/Connection_Logic

5
Scripting & Programming / Re: Basic Character System
« on: Nov 15, 11, 03:09:39 PM »
This is one possible implementation of attributes in a Character System.

Wiki References
http://wiki.heroengine.com/wiki/Replication
http://wiki.heroengine.com/wiki/Spatial_Awareness_System
http://wiki.heroengine.com/wiki/Adapting_Clean_Engine

Design
Player Account and Player Character fields are replicated to the owning client as well as any client introduced via Spacial Awareness, depending on the field's replication settings. If the field is an ID or a NodeRef then it must be explicitly told to replicate in the Player Account's replication group. The replication of a Character Appearance nodes is an example of this.

To implement public character data there would be a field on the Game Specific Player Character class that contains information that will be known to everyone. If this field is a basic value type (integer, float etc.) then it will work if the replication parameters of the field are set correctly. If the public field is an ID or NodeRef then it will have to be explicitly added to the Player Account's replication group. That way when the Player Character is replicated in the Player Account replication group, all client destinations will have access to the public data including the owning Character.

To implement private character data there needs to be a field just like public data except it must be an ID or Noderef. Instead of adding this node to the Player Account's default Replication Group, a new Private Replication Group must be created for the Player Account.

Implementation
Add a Game Specific class to the Character Selection System Node (Character Selection System Node). To override which prototype is used to create Player Characters, implement HE_CSSUseCharacterPrototype() in the Game Specific Character Selection class methods script.

Add a Game Specific class to the Account System Node (Account System Node). To override which prototype is used to create Player Accounts implement HE_UsePrototypeForAccountRootNode() in the Game Specific Account System Node class methods script.

In the Game Specific Player Account class methods script create a new method that is something like "GetPrivateReplicationGroup()". It will be almost exaclty like _GetReplicationGroup() in _playerAccountClassMethods except this new private replication group will have no interaction with Spacial Awareness and only the private "attributes" nodes stored in fields on the Character will be replicated. Nodes are added to a replication group by using the method _ReplicateNode().

Override HE_PostClientReady() in the Game Specific Account System Node class method script. Getting the private replication group from the Game Specific Player Account will add the private character data to be replicated in the new private replication group.

Pages: [1]