コード例 #1
0
ファイル: DragonNPC.cs プロジェクト: trapstar321/ship_server
    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_);
    }
コード例 #2
0
ファイル: ServerSend.cs プロジェクト: trapstar321/ship_server
    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);
        }
    }