예제 #1
0
    public void OnReceiveQuickAttackPacket(int node, PacketId id, byte[] data)
    {
        if (m_isHost)
        {
            // 호스트의 몬스터는 실행 완료.
            return;
        }

        // 패킷에서 파라미터를 추출해서 ↓의 코드 스니펫을 호출한다.
        GameObject go = GameObject.FindGameObjectWithTag("Boss");

        if (go != null)
        {
            chrControllerEnemyBoss bossController = go.GetComponent <chrControllerEnemyBoss>();
            if (bossController != null)
            {
                BossQuickPacket packet = new BossQuickPacket(data);
                BossQuickAttack attack = packet.GetPacket();

                string targetName  = attack.target;
                float  attackPower = attack.power;

                Debug.Log("Receive boss range attack[Ramge:" + targetName + " Power:" + attackPower + "]");
                dbwin.console().print("Receive boss range attack[Ramge:" + targetName + " Power:" + attackPower + "]");

                bossController.cmdBossQuickAttack(targetName, attackPower);
            }
        }
    }
예제 #2
0
파일: Packet.cs 프로젝트: wyuurla/006772
        //
        public bool Serialize(BossQuickAttack packet)
        {
            bool ret = true;

            ret &= Serialize(packet.target, BossQuickAttack.characterNameLength);
            ret &= Serialize(packet.power);

            return(ret);
        }
예제 #3
0
파일: Packet.cs 프로젝트: wyuurla/006772
        //
        public bool Deserialize(ref BossQuickAttack element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되지 않았다.
                return(false);
            }

            bool ret = true;

            ret &= Deserialize(ref element.target, BossQuickAttack.characterNameLength);
            ret &= Deserialize(ref element.power);

            return(ret);
        }
예제 #4
0
    // 보스의 퀵 공격(근접).
    public void             RequestBossQuickAttack(string targetName, float attackPower)
    {
        do
        {
            GameObject go = GameObject.FindGameObjectWithTag("Boss");

            if (go == null)
            {
                break;
            }

            chrControllerEnemyBoss bossController = go.GetComponent <chrControllerEnemyBoss>();

            if (bossController == null)
            {
                break;
            }

            bossController.cmdBossQuickAttack(targetName, attackPower);

            // 게스트 측의 보스를 움직인다. 통신 대응(패킷을 만들어 던진다).
            BossQuickAttack attack = new BossQuickAttack();

            attack.target = targetName;
            attack.power  = attackPower;

            BossQuickPacket packet = new BossQuickPacket(attack);

            if (m_network != null)
            {
                int serverNode = m_network.GetServerNode();
                m_network.SendReliable <BossQuickAttack>(serverNode, packet);
                Debug.Log("Send boss quick attack[Target" + targetName + " Power:" + attackPower + "]");
            }
        } while(false);
    }
예제 #5
0
파일: EnemyRoot.cs 프로젝트: fotoco/006772
	// 보스의 퀵 공격(근접).
	public void		RequestBossQuickAttack(string targetName, float attackPower)
	{
		do {

			GameObject go = GameObject.FindGameObjectWithTag("Boss");

			if(go == null) {

				break;
			}

			chrControllerEnemyBoss bossController = go.GetComponent<chrControllerEnemyBoss>();

			if(bossController == null) {

				break;
			}

			bossController.cmdBossQuickAttack(targetName, attackPower);
	
			// 게스트 측의 보스를 움직인다. 통신 대응(패킷을 만들어 던진다).
			BossQuickAttack attack = new BossQuickAttack();

			attack.target = targetName;
			attack.power = attackPower;

			BossQuickPacket packet = new BossQuickPacket(attack);

			if (m_network != null)
			{
				int serverNode = m_network.GetServerNode();
				m_network.SendReliable<BossQuickAttack>(serverNode, packet);
				Debug.Log("Send boss quick attack[Target" + targetName + " Power:" + attackPower + "]");
			}

		} while(false);
	}