public override NPCStartParams GetStartParams() { AnimatorStateInfo animState = anim.anim.GetCurrentAnimatorStateInfo(0); float animationTime = animState.normalizedTime % 1; AnimatorClipInfo[] m_CurrentClipInfo = anim.anim.GetCurrentAnimatorClipInfo(0); string animationName = m_CurrentClipInfo[0].clip.name; float animationLength = m_CurrentClipInfo[0].clip.length; float animationTimeSeconds = m_CurrentClipInfo[0].clip.length * animState.normalizedTime; System.DateTime animationStart = System.DateTime.UtcNow.AddSeconds(-animationTimeSeconds); System.DateTime animationEnd = animationStart.AddSeconds(animationLength); NPCStartParams params_ = new NPCStartParams(); params_.animationName = animationName; params_.animationTime = animationTime; params_.animationLength = animationLength; params_.animationStart = animationStart; params_.animationTimeSeconds = animationTimeSeconds; params_.animationEnd = animationEnd; if (animationName.Equals("rig|walk")) { params_.stateName = "walk"; params_.parameterType = AnimationParameterType.BOOL; } if (anim.fireFX.isPlaying) { params_.fxName = "FireFX"; params_.fxTime = anim.fireFX.time; params_.fxStart = abilities[DragonNPCAbility.FIRE].fxs[0].start; params_.fxEnd = abilities[DragonNPCAbility.FIRE].fxs[0].end; } if (anim.stompFX.isPlaying) { params_.fxName = "StompFX"; params_.fxTime = anim.stompFX.time; params_.fxStart = abilities[DragonNPCAbility.STOMP].fxs[0].start; params_.fxEnd = abilities[DragonNPCAbility.STOMP].fxs[0].end; } params_.sendTime = System.DateTime.UtcNow; return(params_); }
public static void SpawnGameObject(int _toClient, SpawnManager.Spawn spawn) { using (Packet _packet = new Packet((int)ServerPackets.spawnGameObject)) { _packet.Write(spawn.id); _packet.Write(Convert.ToInt32(spawn.type)); _packet.Write(spawn.gameObject.transform.position); _packet.Write(spawn.gameObject.transform.rotation); _packet.Write((int)spawn.objectType); if (spawn.objectType == ObjectType.RESOURCE) { Resource resource = spawn.gameObject.GetComponent <Resource>(); _packet.Write(resource.respawning); _packet.Write(resource.gatheredTime); _packet.Write(resource.respawnTime); _packet.Write((int)resource.skill_type); } else if (spawn.objectType == ObjectType.TRADER) { Trader trader = spawn.gameObject.GetComponent <Trader>(); _packet.Write(trader.id); } else if (spawn.objectType == ObjectType.CRAFTING_SPOT) { CraftingSpot craftingSpot = spawn.gameObject.GetComponent <CraftingSpot>(); _packet.Write((int)craftingSpot.skillType); } else if (spawn.objectType == ObjectType.NPC) { NPCStartParams params_ = spawn.gameObject.GetComponent <NPC>().GetStartParams(); _packet.Write(params_); } SendTCPData(_toClient, _packet); } }