public void SendStartSkill(SkEntity target, int id, float[] para = null) { _skCanLoop.Reset(); if (IsController()) { if (para != null && para.Length > 0) { if (target != null && target.GetId() != 0) { _net.RPCServer(EPacketType.PT_InGame_SKStartSkill, id, target.GetId(), true, para); } else { _net.RPCServer(EPacketType.PT_InGame_SKStartSkill, id, 0, true, para); } } else { if (target != null && target.GetId() != 0) { _net.RPCServer(EPacketType.PT_InGame_SKStartSkill, id, target.GetId(), false); } else { _net.RPCServer(EPacketType.PT_InGame_SKStartSkill, id, 0, false); } } } }
public void Update(SkBeModified beModified) { _pack.ExecBuffs(); int nAttribs = _raws.Count; for (int i = 0; i < nAttribs; i++) { if (_dirties[i]) { buffMul = 1.0f; buffPreAdd = 0.0f; buffPostAdd = 0.0f; _pack.ExecTmpBuffs(i); _sums[i] = buffMul * (_raws[i] + buffPreAdd) + buffPostAdd; SkEntity entity = GetModCaster(i); int casterId = 0; if (entity != null) { casterId = entity.GetId(); } _dirties[i] = false; beModified.indexList.Add(i); beModified.valueList.Add(_sums[i]); beModified.casterIdList.Add(casterId); } } }
private void RawSetterNet(int idx, float v) { NumList r = (NumList)_raws; float oldValue = r.Get(idx); float dValue = v - oldValue; bool bRaw = true; if (FromNet) { r.Set(idx, v); _dirties[idx] = true; } else { bool bSendDValue = false; if (!CheckAttrNet((AttribType)idx, oldValue, v, r, out bSendDValue)) { return; } if (!bSendDValue) { v = CheckAttrMax((AttribType)idx, oldValue, v, (NumList)_sums); } SkEntity entity = GetModCaster(idx); if (_net != null && LockModifyBySingle) { //Debug.Log("attr was locked, please wait for net init data inx = "+idx +" , v = " +v); return; } if (!bSendDValue) { dValue = v; r.Set(idx, v); _dirties[idx] = true; } if (entity != null && _net != null) { if (entity.IsController() && !_net.IsStaticNet()) { _net.RPCServer(EPacketType.PT_InGame_SKSyncAttr, (byte)idx, dValue, entity.GetId(), bRaw, bSendDValue); } } else if (_net != null && _net.hasOwnerAuth) { _net.RPCServer(EPacketType.PT_InGame_SKSyncAttr, (byte)idx, dValue, -1, bRaw, bSendDValue); } else if (idx == 95 && _net is MapObjNetwork) { _net.RPCServer(EPacketType.PT_InGame_SKSyncAttr, (byte)idx, dValue, -1, bRaw, bSendDValue); } } }