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

Author Topic: Parents replicate for kids?  (Read 853 times)

Thazager

  • General Accounts
  • *
  • Posts: 1155
  • Never stop learning
    • View Profile
    • Heroes and Villains MMORPG
Parents replicate for kids?
« on: Jan 30, 20, 03:44:58 PM »

E_commonCharacter is a parent for both E_playerCharacter and E_nonPlayerCharacter

When I add a field to E_playerCharacter class and set it to replicate, it will replicate from server to client side, and it shows in the _OnReplicationFieldUpdated() function.

When I add a field to E_nonPlayerCharacter class it works the same way.

When I add the field to E_commonCharacter (the parent of both) and set it to replicate,  it does not replicate to the child class.

example:
class Buffs has fields in it: displayname, speckey, statsEffected, buffername

BuffSaveList as list of class Buffs, has replication set to client side

This field is added to E_commonCharacter and set to replicate and the BuffSaveList should replicate to clientside
I can see the bufflist on the server side with the buff added, but the buff wont show in the bufflist on the client side.

I have added replicate with the class Buffs to client side also, and the fields in the buffs class.

Still not replicating :(
Ideas??
Logged

Thazager

  • General Accounts
  • *
  • Posts: 1155
  • Never stop learning
    • View Profile
    • Heroes and Villains MMORPG
Re: Parents replicate for kids?
« Reply #1 on: Jan 30, 20, 03:56:00 PM »

hmm client crash (might be internet here) then restart and parts now seem working, buff show on buffbar, but not in list

Code: [Select]

// fields getting updated
shared function _OnReplicationFieldUpdated(updateNode as NodeRef, updateField as String)
  println("Field updated:"+updateNode+ " name:"+updateField)
  when toLower(updateField)
    is "eo_buffsavelist"
      $LightweightEvents.raiseLightweightEvent(updateNode, "buffsUpdated", 0)
    .
  .
.


// check for values changing
method lightweightEventRaised(subject as ID, eventType as String, data as NodeRef)
  char as NodeRef of Class E_CommonCharacter = subject
  println("lightweightEventRaised  subject:"+subject+ " eventType:"+eventType)

  if char != None
    when eventType
      is "buffsUpdated"
        me.SettTargetBuffs(char, char.EO_BuffSaveList)
      .
    .
  .
.

// show buffs of npcs in target buff area
method SettTargetBuffs(target as NodeRef of Class E_CommonCharacter, buffs as List of Class EO_Buff)
  var info = E_playerAccountClassMethods:getSkillSpecInfo()

  var buff = getTargBuffs()
  buff.EO_BuffSaveList = buffs     // save info on GUI
  key as ID

  // check all of player buffs
  loop i from 1 to 12
    if buffs[i].displayName <> "none"
      key = buffs[i].SpecKey
      if key <> 0
        println("buff "+i+"  name "+buffs[i].displayName+"   key "+key)

        var skill = getTargBuffSlot(i)                   // get current slot
        skill.setSkillTexture(info[key].EO_skillIconID)  // set texture
        skill.SpecKey = info[key].SpecKey                // save key for tooltip
      .
    .
  .
.

//=================================================================================================
// target buffs
function getTargBuffs() as NodeRef of Class TMP_Buffs
  return FindGuiControlByName(None, "game.Targbuffbar")
.

// pointer to the skill in slot
function getTargBuffSlot(slot as Integer) as NodeRef of Class EO_SkillIcon
  return FindGuiControlByName(None, "game.Targbuffbar.slot"+slot+".skillPic")
.

« Last Edit: Jan 30, 20, 05:23:18 PM by Thazager »
Logged

Thazager

  • General Accounts
  • *
  • Posts: 1155
  • Never stop learning
    • View Profile
    • Heroes and Villains MMORPG
Re: Parents replicate for kids?
« Reply #2 on: Jan 31, 20, 10:53:39 AM »

In the wiki i found this -> "When a class inherits from another class, it also inherits the replication parameters of its parent class. "
which is good knowing it should work. I am just missing something.

though i do not see the replication triggering the Println() functions to show the info.

isolate and force value for a check.
Logged