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.

Topics - Azzerhoden

Pages: [1]
1
Apologies if this is listed somewhere easily found, but I am struggling to find the right search terms.

In essence, I am building some scripts to test my entered functionality using the command line.  One of the commands is to add a value into a Lookup List using an enumeration as the key.  Before I try to add it, I want to test whether I have defined the enumeration, giving my lack of proficiency at typing.

After I have verified that the entered text matches a defined enumeration value, that I'll use the "has" operator to test whether it has already been entered, but I am stumped as to how to test for a correctly entered enumeration key.

Down the road I planned on transitioning these enumerations into constants, so if this is not possible I'll go ahead and make the transition now.  Actually, not sure how I would test for whether a constant was defined either though.   ;D


Thanks in advanced!

2
Is there a limit in the number of values I can add to an enumeration?  I am considering several different design ideas, and one of them would require that I create an enumeration type with potentially several thousand values.

3
After playing around with HeroBlade and classes, I am now receiving the following errors when ever starting up the editor.

Code: [Select]
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429787967
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429787985
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429792349
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429792125
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429820049
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429839663
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429791464
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429838712
[ServerScreamer] Exception serializing data for replication (if definitions have changed, restarting replication will fix): field ID: 9223372056172209106 not present in HeroClass::getField on node 4611686018429809025

I believe this has come about because I was cleaning out changes I had made regarding character creation.  However, it may also be tied to the lookup lists I have added (and modified).  Is there a command I can run to identify the name of the node based on the ID#, or if not, the field name based on the ID#?

I don't see any impact of these errors, but since I am hardly an expert yet, I don't want these errors to cause an issue down the road when I attempt to further my experience in some new area.

4
I just started looking at replication and I have, what I hope, is a quick replication question.  However, I get the distinct feeling I am playing with matches, and there are repercussions that I am ignorant of.   :)

I've created a class for our games creature attributes KoM_Attributes, added it as part of the E_CommonCharacter class, copied it over to the client, and currently I set values on the creation of a new character.

Now I want to get those values to the client, and I believe replication is the best way of doing this.  From the comments in _PlayerAccountClassMethods I could use the _replicationGroupRef field in E_PlayerAccount, possible by creating an instance (char) of E_playerCharacter and accessing it via char._playerCharacter._replicationGroupRef in the E_PlayerCharacter server script so my attributes are replicated to the client when logging in.

Rather than that route, would it be easier to add _replicationGroupRef to my KoM_Attributes or E_PlayerCharacter class?

I hope this makes sense.  I've read through several of the threads around replication and it seems to be a confusing topic until folks have played around with their own implementations.

5
After successfully setting implementing a new class for E_CHARACTERCREATIONSYSTEM as well as a specifying a new starting area, I find any new character I create appears below my terrain.  I thought this would be an easy fix since I would just have to set the characters new position.

This does not appear to be the case.  I see that character_position and character_rotation is a field in _characterAppearance, and there is a method called GetPosition().

Is it as easy as adding a SetPosition method in my replacement class as long as I type cast a position value (lets say -1,1,1) as a vector3 data type?  Is there anything else I need to be aware of?

6
I have been playing around with the functionality of the the E_ classes and am in the process of implementing them following the wiki steps.  A couple of questions.

1)  For the $CHARACTERCREATIONSYSTEMwiki page, what should the archtype be?  I am assuming character, but want to be sure.

2) I already played around a bit with the [urlhttp://hewiki.heroengine.com/wiki/$NPC]$NPC[/url] wiki page, but I ran into a couple of issues.  Is it possible to remove a class from a prototype?  Rerunning the command updates the prototype, and perhaps the behavior I am seeing is elsewhere, but I'd like to be able to remove and changes I have implemented.

3) Is it possible to see what archtypes were used for existing classes in the DOM editor?


EDIT - Scratch two off the list.  Don't know how I overlooked that in the DOM GUI.   :o

7
These may be newbish questions, but I am trying to understand something in the E_CommonCharacter script.

In the InitCommonCharacter() method, I made the following changes
Code: [Select]
method InitCommonCharacter()
  // initialize abilities
  clear me.E_abilities destroy 
  foreach abilityGrant in me.GetAbilityGrants()   
    ability as NodeRef of Class E_Ability = MiscUtils:CreateNode( "E_Ability", IsPersistentNode( me ) )
    ability.E_script = abilityGrant
    me.AddAbility( ability )
  .
 
  // initialize stats
  // #Azzerhoden - modified next 2 lines
  // me.E_hitPoints = 100
  me.E_hitPoints = 200
  me.E_isDead = false
 
  // start regen tick
  if( me.E_regenTimer.timerState == ON )
    me.E_regenTimer.stop()
  .
  me.E_regenTimer.fireRate = 00:00:01
  me.E_regenTimer.start()
.

I then ran the chat command: /henpc create monkeytok
Testing how much damage was inflicted I found that the monkeytok only had 100 life.  However, reverting back to the original code and making the following change:
Code: [Select]
method ApplyLife() as Boolean
  if not me.E_isDead
    return false
  .
  me.E_isDead = false
  // #Azzerhoden modified next 2 lines
  // me.E_hitPoints = 100
  me.E_hitPoints = 200
  me._TeleportCharacter( me.GetRezzPosition(), me.GetRezzRotation() )
  where me is kindof E_playerCharacter
    target as Class _Target
    target._tgtID = me.GetMyAccount()
    clients as List of ID
    MiscUtils:QueryRemoteInterestSet(me.GetInterestSetSubjectNode(), clients)
    foreach c in clients
      $FXSYSTEM.SendFxToClient(c, 10, target, target)
    .
  .
  return true
.

Worked correctly by respawning the dead monkeytok with 200 life.  Something must be applied after my original code change to set the life back to 100, but what could be doing this?

8
I've been playing more with seamless areas, as well as stacking them to build underground tunnels and areas.  One of the issues I seem to be struggling with now is that when I add a link to different areas, and then try to sew them together, everything at that point (regardless of which levels) joins, destroying the underground levels.

I believe with some careful planning I can bring in the different areas, but is there a way to merge only specific layers?

9
Game Dev and Gaming / Object Relational Design Tools
« on: Dec 10, 11, 04:53:51 PM »
Question for the general community.  What (if any) object relational tools do you use?  Not to place an age on myself, but I instinctively start reaching for 3x5 index cards, and I'd rather use something, you know, a little more modern.   ;)

All I really want to do is create a polygon on a screen, assign it some attributes, and be able to create some type of relationship between it and other polygons.  Just to help organize my thinking.  Most of what I have seen available from the web adds more complexity than what I really want since any objects I create will be in Hero Engine.

10
Scripting & Programming / Client Side Security Strategies
« on: Sep 16, 11, 01:44:07 PM »
While my team waits for the implementation of our server, we have all been busy reviewing the wiki for our particular areas, with mine being scripting.  Reviewing Client Side and Server Side scripting articles, I have a question on the security of the client side scripting.  There have been numerous games that have suffered because of client side hacking, either through hex editors or programs supplied by web sites that make money off of supplying hacks to players.  I am assuming that HeroEngine (and HeroBlade) has mechanisms in place to combat this (and I am not asking for any details).  I've also reviewed several articles in the wiki (limiting ability for remote calls, syncing time).

What I am asking is more design based, lets say, a character life points.  Should the addition/subtraction take place on the client side, or the server side?  Conceptually I think of character info being on the client, and game world scripting on the server.  Yet if character info is on the client, it has the potential for being hacked.  As part of the design, should I focus on the creation of log files for auditing, or on client side verification (which would still be vulnerable).   I want to make sure that I build what is necessary from the start. 

Pages: [1]