public void Deserialize(byte[] data) { if (null == data) { return; } PETools.Serialize.Import(data, (r) => { int readVersion = r.ReadInt32(); if (readVersion != Version) { return; } int count = r.ReadInt32(); if (count > 0) { hasEffect = true; while (count-- > 0) { SkEntity.MountBuff(m_Entity.skEntity, r.ReadInt32(), null, null); } } }); m_bReqApplyEff = true; }
void OnTriggerEnter(Collider other) { if (0 != (attackLayer.value & (1 << other.gameObject.layer))) { SkEntity hitEntity = other.gameObject.GetComponentInParent <SkEntity>(); if (null == hitEntity || hitEntity == m_SkEntity) { return; } PEDefenceTrigger hitTrigger = other.GetComponent <PEDefenceTrigger>(); if (null != hitTrigger) { if (!m_HitTriggers.Contains(hitTrigger) && !m_EffectedTriggers.Contains(hitTrigger)) { if (CheckHit(hitTrigger)) { m_EffectedTriggers.Add(hitTrigger); } else { m_HitTriggers.Add(hitTrigger); } } } else { OnHitCollider(other); } } }
static void SetHarm(PeEntity entity) //王哥的怪物生成事件触发 { SkEntity skEntity = entity.aliveEntity; if (skEntity == null) { return; } int protoID = entity.entityProto.protoId; int fixSpawnID = 0; foreach (int item in AISpawnPoint.s_spawnPointData.Keys) { if (SceneEntityCreatorArchiver.Instance.GetEntityByFixedSpId(item) == entity) { fixSpawnID = item; break; } } if (entityHarmRecord.Contains(protoID)) { SkEntity.MountBuff(skEntity, 30200102, new List <int>(), new List <float>()); } if (fixSpawnID == 0) { return; } if (entityHarmRecord.Contains(fixMonsBase + fixSpawnID)) { SkEntity.MountBuff(skEntity, 30200102, new List <int>(), new List <float>()); } }
public void DispatchTargetSkill(SkEntity caster) { if (m_PeSkEntity != null) { m_PeSkEntity.DispatchTargetSkill(caster); } }
public void DispatchWeaponAttack(SkEntity caster) { if (m_PeSkEntity != null) { m_PeSkEntity.DispatchWeaponAttack(caster); } }
protected virtual void Hit(PECapsuleHitResult hitResult, SkEntity skEntity = null) { PlayEffectHit(hitResult.hitPos, -hitResult.hitDir); if (!m_Trigger) { Delete(); } if (hitResult.hitTrans != null) { if (null == skEntity) { skEntity = hitResult.hitTrans.GetComponentInParent <SkEntity>(); } if (null == skEntity) { return; } PeEntity entity = skEntity.GetComponent <PeEntity>(); if (null == entity || entity.canInjured) { CastSkill(skEntity, hitResult); } } }
protected virtual void CastSkill(SkEntity skEntity) { if (PETools.PEUtil.IsVoxelOrBlock45(skEntity)) { if (m_SkillTerrainID > 0) { StartSkill(skEntity, m_SkillTerrainID); } } else { if (m_SkillID > 0) { StartSkill(skEntity, m_SkillID); } } if (null != onCastSkill) { onCastSkill(skEntity); } if (null != skEntity && null != onHitSkEntity) { onHitSkEntity(skEntity); } }
public virtual void InitEntity(SkEntity parent = null, bool[] useParentMasks = null) { if (parent != null && useParentMasks != null) { Init(OnNumAttribs, OnPutInPak, parent, useParentMasks); } else if (parent != null || useParentMasks != null) { Debug.LogError("Invalid Arguments to init skill entity"); } else { Init(OnNumAttribs, OnPutInPak, AttribsCnt); } if (null != m_Attrs) { foreach (Attr attr in m_Attrs) { SetAttribute((int)(attr.m_Type), attr.m_Value); } } if (null != m_InitBuffList) { foreach (int buffID in m_InitBuffList) { MountBuff(this, buffID, new System.Collections.Generic.List <int>(), new System.Collections.Generic.List <float>()); } } }
public void DispatchTargetSkill(SkEntity caster) { if (onSkillEvent != null) { onSkillEvent(caster); } }
void OnHpChange(SkEntity caster, float hpChange) { if (null != Entity) { Entity.SendMsg(EMsg.Battle_HPChange, caster, hpChange); } }
void OnTargetSkill(SkEntity caster) { if (null != Entity) { Entity.SendMsg(EMsg.Battle_TargetSkill, caster); } }
void OnHpChange(SkEntity entity, float damage) { //for (int i = 0; i < m_TowerEffect.Count; i++) //{ // m_TowerEffect[i].ActivateEffect(Entity); //} }
public void OnTreeCutDown(SkEntity skEntity, GlobalTreeInfo treeInfo) { if (null != onTreeCutDown) { onTreeCutDown(skEntity, treeInfo); } }
void OnHitEntity(SkEntity entity) { if (null != entity && entity == m_SkEntity) { OnHit(); } }
void OnEntityPickup(SkEntity entity) { CommonCmpt common = entity.GetComponent <CommonCmpt>(); if (common != null) { if (common.entityProto.proto == EEntityProto.RandomNpc || common.entityProto.proto == EEntityProto.Npc) { if (!ServantLeaderCmpt.Instance.ContainsServant(common.GetComponent <NpcCmpt>())) { DestroyEntity(entity); } } else //if (common.entityProto.proto == EEntityProto.Monster) { DestroyEntity(entity); PeEntity Pentity = entity.GetComponent <PeEntity>(); if (Pentity != null) { LootItemDropPeEntity.RemovePeEntity(Pentity); } } } }
public void DispatchWeaponAttack(SkEntity caster) { if (onWeaponAttack != null) { onWeaponAttack(caster); } }
internal virtual void InitNetworkLayer(NetworkInterface network, GameObject obj = null) { if (obj == null) { obj = gameObject; } netlayer = network; if (null == network) { return; } _comMgr[network.Id] = this; if (obj != null) { _skEntity = obj.GetComponent <SkEntity>(); if (_skEntity != null) { _skEntity.SetNet(network); } _skEntityPE = obj.GetComponent <SkAliveEntity>(); } }
void OnDeath(SkEntity sk1, SkEntity sk2) { for (int i = 0; i < triggers.Length; i++) { triggers[i].OnDeath(); } }
protected virtual void Hit(Vector3 pos, Vector3 normal, Transform hitTrans) { PlayEffectHit(pos, normal); if (!m_Trigger) { Delete(); } if (hitTrans != null) { SkEntity skEntity = hitTrans.GetComponentInParent <SkEntity>(); if (null == skEntity) { return; } PeEntity entity = skEntity.GetComponent <PeEntity>(); if (null != skEntity && (null == entity || entity.canInjured)) { PECapsuleHitResult hitResult = new PECapsuleHitResult(); hitResult.selfTrans = transform; hitResult.hitPos = pos; hitResult.hitDir = -normal; hitResult.hitTrans = hitTrans; hitResult.damageScale = 1f; CastSkill(skEntity, hitResult); } } }
void AliveEntityDeathEvent(SkEntity arg1, SkEntity arg2) { FixedSpawnPointInfo info = null; if (SceneEntityCreatorArchiver.Instance._fixedSpawnPointInfos.TryGetValue(_fixedId, out info)) { SceneMan.RemoveSceneObj(info._agent); if (info._needCD > 0.0f) { MissionManager.Instance.PeTimeToDo(delegate(){ if (info._bActive) { SceneMan.RemoveSceneObj(info._agent); SceneMan.AddSceneObj(info._agent); } }, info._needCD, _fixedId); } else { SceneEntityCreatorArchiver.Instance.SetFixedSpawnPointActive(_fixedId, false); } SceneEntityCreatorArchiver.Instance.GetEntityByFixedSpId(_fixedId).aliveEntity.deathEvent -= AliveEntityDeathEvent; } }
void OnDamage(SkEntity entity, float damage) { if (null == Entity.peSkEntity || null == entity) { return; } PeEntity peEntity = entity.GetComponent <PeEntity>(); if (peEntity == Entity) { return; } float tansDis = peEntity.IsBoss ? 128f : 64f; int playerID = (int)Entity.peSkEntity.GetAttribute((int)AttribType.DefaultPlayerID); bool canTrans = false; if (GameConfig.IsMultiClient) { if (ForceSetting.Instance.GetForceType(playerID) == EPlayerType.Human) { canTrans = true; } int tarPlayerId = (int)peEntity.GetAttribute(AttribType.DefaultPlayerID); if (ForceSetting.Instance.GetForceType(tarPlayerId) == EPlayerType.Human) { List <PeEntity> entities = EntityMgr.Instance.GetEntities(peEntity.position, tansDis, tarPlayerId, false, peEntity); for (int i = 0; i < entities.Count; i++) { if (!entities[i].Equals(Entity) && entities[i].target != null) { entities[i].target.TransferHatred(Entity, damage); } } } } else { if (ForceSetting.Instance.GetForceID(playerID) == 1) { canTrans = true; } } if (canTrans) { List <PeEntity> entities = EntityMgr.Instance.GetEntities(Entity.peTrans.position, tansDis, playerID, false, Entity); for (int i = 0; i < entities.Count; i++) { if (!entities[i].Equals(Entity) && entities[i].target != null) { entities[i].target.TransferHatred(peEntity, damage); } } } }
void OnOwnerAttack(SkEntity enemy, float value) { if (enemy is SkAliveEntity && !enemy.Equals(null)) { _ownerAttackEntity = enemy as SkAliveEntity; _ownerAttackView = enemy.GetComponent <ViewCmpt>(); } }
public void DestroyEntity(SkEntity entity, float delayTime = 0.0f, float fadeoutTime = 3.0f) { //Debug.Log("Destroy entity : " + entity.name); if (delayTime >= 0) { StartCoroutine(DestroyEnumerator(entity, delayTime, fadeoutTime)); } }
void OnOwnerHpReduce(SkEntity enemy, float value) { enemy = PETools.PEUtil.GetCaster(enemy); if (enemy is SkAliveEntity && !enemy.Equals(null)) { _attackOwnerEntity = enemy as SkAliveEntity; _attackOwnerView = enemy.GetComponent <ViewCmpt>(); } }
public void SetTarget(SkEntity skEntity) { m_SwordAttack.targetEntity = skEntity; m_TwoHandWeaponAttack.targetEntity = skEntity; m_BowShoot.targetEntity = skEntity; m_ThrowGrenade.targetEntity = skEntity; m_GunFire.targetEntity = skEntity; m_GunMelee.targetEntity = skEntity; }
void OnAttack(SkEntity skEntity, float damage) { PeEntity tarEntity = skEntity.GetComponent <PeEntity>(); if (tarEntity != null && tarEntity != Entity) { NpcHatreTargets.Instance.TryAddInTarget(Entity, tarEntity, damage); } }
// infrom target public void WeaponAtttck(IWeapon weapon, SkEntity caster) { if (m_SkEntity != null) { if (m_PeSkEntity != null) { m_PeSkEntity.DispatchWeaponAttack(m_SkEntity); } } }
void OnEntityDestroy(SkEntity entity) { PeEntity peEntity = entity.GetComponent <PeEntity>(); if (peEntity != null) { LootItemDropPeEntity.RemovePeEntity(peEntity); PeCreature.Instance.Destory(peEntity.Id); } }
protected Transform GetCasterTrans() { SkEntity skEntity = GetSkEntityCaster(); if (null != skEntity) { return(skEntity.transform); } return(null); }
void OnMonsterDeath(SkEntity cur, SkEntity caster) { if (_data.m_mustByPlayer == true && caster is Pathea.Projectile.SkProjectile) { GameObject go = ((Pathea.Projectile.SkProjectile)caster).Caster(); if (go != null) { CommonCmpt cc = go.GetComponent <CommonCmpt>(); if (cc != null && cc.entityProto.proto != EEntityProto.Player) { return; } } } SkAliveEntity skAlive = cur as SkAliveEntity; if (skAlive != null && _data != null) { CommonCmpt cc = skAlive.Entity.commonCmpt; if (cc == null) { return; } int protoId = cc.entityProto.protoId; bool bFin = true; for (int m = 0; m < _data.m_MonsterList.Count; m++) { int idx = _idxTarId * 10 + m; string tmp = PlayerMission.MissionFlagMonster + idx; string value = playerMission.GetQuestVariable(MissionId, tmp); string[] tmplist = value.Split('_'); if (tmplist.Length < 2) { Debug.LogError("[TaskMonsterKill]:Wrong Quest Var:" + value); } int num = tmplist.Length >= 2 ? Convert.ToInt32(tmplist[1]) : 0; if (_data.m_MonsterList[m].npcs.Contains(protoId)) { num += 1; value = tmplist[0] + "_" + num.ToString(); playerMission.ModifyQuestVariable(MissionId, tmp, value); } if (num < _data.m_MonsterList[m].type) { bFin = false; } } if (bFin) { MissionManager.Instance.CompleteTarget(TargetId, MissionId, true); } } }