// 대미지양 통지 정보 수신 함수. public void OnReceiveDamageNotifyPacket(int node, PacketId id, byte[] data) { DamageNotifyPacket packet = new DamageNotifyPacket(data); DamageData damage = packet.GetPacket(); #if false string avator_name = ""; AccountData account_data = AccountManager.get().getAccountData(damage.attacker); avator_name = account_data.avator_id; string log = "ReceiveDamageNotifyPacket:" + damage.target + "(" + damage.attacker + ") Damage:" + damage.damage; Debug.Log(log); #endif chrBehaviorEnemy behavior = findCharacter <chrBehaviorEnemy>(damage.target); if (behavior == null) { return; } //log = "Cause damage:" + avator_name + " -> " + damage.target + " Damage:" + damage.damage; //Debug.Log(log); // 캐릭터의 대미지를 반영. behavior.control.causeDamage(damage.damage, damage.attacker, false); }
public void NotifyDamage(string charId, int attacker, float damage) { if (m_network != null) { DamageData data = new DamageData(); data.target = charId; data.attacker = attacker; data.damage = damage; DamageNotifyPacket packet = new DamageNotifyPacket(data); m_network.SendReliableToAll <DamageData>(packet); } }
// 대미지양 통지 정보 수신 함수. public void OnReceiveDamageDataPacket(int node, PacketId id, byte[] data) { DamageDataPacket packet = new DamageDataPacket(data); DamageData damage = packet.GetPacket(); //string log = "ReceiveDamageDataPacket:" + damage.target + "(" + damage.attacker + ") Damage:" + damage.damage; //Debug.Log(log); if (m_network == null || GameRoot.get().isHost() == false) { // 호스트에 가는 통지 패킷이기에 다른 단말은 무시한다. return; } DamageNotifyPacket sendPacket = new DamageNotifyPacket(damage); m_network.SendReliableToAll <DamageData>(sendPacket); }