hch
2019-04-27 fdaa1368178da9b8b3f667c2a8294b9cf7ba8bc0
6603 【后端】【2.0】增加新版的sp和被动技能  --  印记通知修改
13个文件已修改
1个文件已添加
93 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerYinji.py 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_900.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4086.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4087.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4088.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4089.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4090.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4092.py 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -856,7 +856,8 @@
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值 
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比 
CDBPlayerRefresh_YinjiTime,   # 每X秒减少印记时间,毫秒
) = range(146, 214)
CDBPlayerRefresh_YinjiCnt,   # 当前印记数 215
) = range(146, 215)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1642,6 +1642,8 @@
    
    # 根据伤血类型触发技能,群攻只触发一次,放在伤血列表被清之前
    OnHurtTypeTriggerSkill(attacker, defender, curSkill, tick)
    #释放技能即可处理的 不区分攻击和非攻击
    PassiveBuffEffMng.OnPassiveSkillTrigger(attacker, defender, curSkill, ChConfig.TriggerType_SkillSuccess, tick)
    
    # 普通或者可以主动释放的攻击性技能
    if not curSkill or (curSkill.GetSkillType() == ChConfig.Def_SkillType_Atk and\
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3019,6 +3019,7 @@
#---SetDict 玩家字典KEY,不存于数据库---
# key的长度不能超过29个字节
Def_PlayerKey_YinjiCnt = "YinjiCnt"   # 当前印记数
Def_PlayerKey_LostYinjiTime = "LostYinjiTime"   # 每X秒自动消失一个印记
Def_PlayerKey_1314HurtCount = "1314cnt"   # 类剑刃风暴技能的1314效果,伤害次数处理
Def_PlayerKey_FirstDefender = "FDID"   # 第一个防守者,只用于比较
@@ -4448,7 +4449,8 @@
TriggerType_AddThumpHitRate, # 提高重击概率 73
TriggerType_ThumpHit, # 重击时 触发技能74
TriggerType_AddThumpHitPer, # 重击时 增加重击百分比 75
) = range(1, 76)
TriggerType_SkillSuccess, # 任何技能释放成功都可触发 76
) = range(1, 77)
#不可以佩戴翅膀的地图
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -6674,6 +6674,12 @@
    curPlayer.SetDict(ChConfig.Def_PlayerKey_LostYinjiTime, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_YinjiTime, value, False)
# 当前印记数
def GetYinjiCnt(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_YinjiCnt)
def SetYinjiCnt(curPlayer, value):
    curPlayer.SetDict(ChConfig.Def_PlayerKey_YinjiCnt, value)
    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_YinjiCnt, value, False)
## 计算功能背包物品属性 
#  @param curPlayer 当前玩家
#  @param packType 背包类型
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerYinji.py
@@ -18,14 +18,16 @@
import GameWorld
import ChPyNetSendPack
import NetPackCommon
import ChConfig
import ShareDefine
Def_LastYinji_Tick = "lastyjtick"   # 上一次印记消失时间
#CDBPlayerRefresh_XP
def AddYinji(curPlayer, cnt):
    beforeCnt = GetYinjiCnt(curPlayer)
    beforeCnt = PlayerControl.GetYinjiCnt(curPlayer)
    #上限    X个
    curPlayer.SetXP(min(beforeCnt + cnt, IpyGameDataPY.GetFuncCfg('Yinji', 2)))
    PlayerControl.SetYinjiCnt(curPlayer, min(beforeCnt + cnt, IpyGameDataPY.GetFuncCfg('Yinji', 2)))
    
    if beforeCnt == 0:
        # 第一次加印记需重计时
@@ -34,16 +36,14 @@
    return
def SubYinji(curPlayer, cnt):
    curPlayer.SetXP(max(curPlayer.GetXP() - cnt, 0))
    PlayerControl.SetYinjiCnt(curPlayer, max(curPlayer.GetXP() - cnt, 0))
    return
def GetYinjiCnt(curPlayer):
    return curPlayer.GetXP()
# 每X秒自动减少1个印记
def ProcessPlayerYinji(curPlayer, tick):
    if GetYinjiCnt(curPlayer) == 0:
    if PlayerControl.GetYinjiCnt(curPlayer) == 0:
        return
    
    if tick - curPlayer.GetDictByKey(Def_LastYinji_Tick) < PlayerControl.GetLostYinjiTime(curPlayer):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -856,7 +856,8 @@
CDBPlayerRefresh_LuckyHitReduce,        # 会心伤害减免固定值 
CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比 
CDBPlayerRefresh_YinjiTime,   # 每X秒减少印记时间,毫秒
) = range(146, 214)
CDBPlayerRefresh_YinjiCnt,   # 当前印记数 215
) = range(146, 215)
TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameBuffs/Buff_900.py
@@ -13,7 +13,7 @@
#
#---------------------------------------------------------------------
#导入
import PlayerYinji
import PlayerControl
import ChConfig
#---------------------------------------------------------------------
@@ -44,7 +44,7 @@
# @return 总值
def CalcBuffValue(attacker, defender, curSkill, changeBuffValueDict):
    
    return [PlayerYinji.GetYinjiCnt(defender)]
    return [PlayerControl.GetYinjiCnt(defender)]
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4086.py
@@ -15,7 +15,7 @@
import ChConfig
import AttackCommon
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
@@ -25,8 +25,8 @@
            return False
    
    
    return True if PlayerYinji.GetYinjiCnt(attacker) else False
    return True if PlayerControl.GetYinjiCnt(attacker) else False
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0)*min(PlayerYinji.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
    return float(effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4087.py
@@ -13,12 +13,12 @@
#
#---------------------------------------------------------------------
import ChConfig
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    
    return True if PlayerYinji.GetYinjiCnt(attacker) >= effect.GetEffectValue(1) else False
    return True if PlayerControl.GetYinjiCnt(attacker) >= effect.GetEffectValue(1) else False
    
def GetValue(attacker, defender, effect):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4088.py
@@ -13,14 +13,15 @@
#
#---------------------------------------------------------------------
import ChConfig
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    if PlayerYinji.GetYinjiCnt(attacker) < effect.GetEffectValue(1):
    if PlayerControl.GetYinjiCnt(attacker) < effect.GetEffectValue(1):
        return False
    
    PlayerYinji.SubYinji(attacker, effect.GetEffectValue(1))
    # 4092 处理消耗
    #PlayerYinji.SubYinji(attacker, effect.GetEffectValue(1))
    return True
    
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4089.py
@@ -13,16 +13,17 @@
#
#---------------------------------------------------------------------
import ChConfig
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    if not PlayerYinji.GetYinjiCnt(attacker):
    if not PlayerControl.GetYinjiCnt(attacker):
        return False
    
    PlayerYinji.SubYinji(attacker, min(PlayerYinji.GetYinjiCnt(attacker), effect.GetEffectValue(1)))
    # 4092 处理消耗
    #PlayerYinji.SubYinji(attacker, min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1)))
    return True
    
def GetValue(attacker, defender, effect):
    return float(effect.GetEffectValue(0)*min(PlayerYinji.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
    return float(effect.GetEffectValue(0)*min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(1)))/ChConfig.Def_MaxRateValue
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4090.py
@@ -12,11 +12,11 @@
# @note: 
#
#---------------------------------------------------------------------
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    cnt = PlayerYinji.GetYinjiCnt(attacker)
    cnt = PlayerControl.GetYinjiCnt(attacker)
    if cnt == 0:
        return False
        
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4092.py
New file
@@ -0,0 +1,26 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 使用技能后减少印记数量  消耗模式0:固定个数,1.大于1小于限制个数可释放
#
# @author: Alee
# @date 2019-4-26 下午05:52:27
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import PlayerYinji
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    delType = effect.GetEffectValue(1)
    if delType == 0:
        PlayerYinji.SubYinji(attacker, effect.GetEffectValue(0))
    elif delType == 1:
        PlayerYinji.SubYinji(attacker, min(PlayerControl.GetYinjiCnt(attacker), effect.GetEffectValue(0)))
    return False
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -366,13 +366,14 @@
             4082:ChConfig.TriggerType_ThumpHit, # 对第一目标重击触发技能
             4083:ChConfig.TriggerType_AddThumpHitPer, # 增加重击伤害百分比
             4084:ChConfig.TriggerType_ThumpHit, # 对第一目标重击触发技能
             4085:ChConfig.TriggerType_AttackOver,
             4085:ChConfig.TriggerType_SkillSuccess,  # 任何技能释放成功都可触发 76    加印记
             4086:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4087:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4088:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4089:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4090:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
             4091:ChConfig.TriggerType_SkillOverNoAttack,   # 技能释放后 与TriggerType_AttackOver相反19,
             4092:ChConfig.TriggerType_SkillSuccess,  # 任何技能释放成功都可触发 76  减印记
             }
    return tdict.get(effectID, -1) 
    #===========================================================================