用户工具

站点工具


battle_system

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
battle_system [2019/02/16 15:49] shenmobattle_system [2019/04/11 11:49] (当前版本) shenmo
行 1: 行 1:
 ======战斗系统====== ======战斗系统======
 +
 +=====战场技能=====
 +
 +[[generated::skill_config]].type增加 6 战场技能
 +
 +[[generated::stage_config]] 增加 stage_skill  stage_skill_cd 字段  配置是否有战场技能呢
 +
 +如果是公会战 且 战场技能的cd大于1个回合,会显示战场技能UI。
 +
 +=====修正=====
 +
 + --- //[[shenmo@riceman.com.cn|沈默]] 2019/03/26 18:45//
 +
 +[[generated::STAGE_EXTRA]]  关卡特殊修正
 +
 +[[generated::stage_config]] 新增了 extra 字段  控制 初始种子/combo修正/颜色数量等
 +
 +相关指令
 +
 +|PuzzleColor(4) | 设置最大颜色数|(3~5)|
 +|PuzzleSeed(3) | 设置初始种子|0表示按时间随机|
 +|PuzzleCombo(0.8)  |每次消除有额外80%的几率可以产生 combo| 0~1,如果设置为必定combo,最多到20次|
 +
 +颜色和combo修正,stage表格中的配置会覆盖debug的
  
 =====站位===== =====站位=====
行 19: 行 43:
 如果技能有使用条件限制,需要先判断使用条件 如果技能有使用条件限制,需要先判断使用条件
  
-[[generated:skill_config]].condition 字段+[[generated:item_battle_config]].condition 字段 
 + 
 + 
 +===相关战斗道具的数据走向=== 
 + 
 +[[generated:HeroTeamApply]] 设置战斗队伍的道具配置,采用(slot+道具原型)的字典 
 + 
 +设置的时候服务器可以完全不关心道具的存量,直接保存到 [[generated:hero_team_info]].item_list 
 + 
 +客户端也从这里读取到每个队伍最后的道具配置(数量根据 [[generated:item_battle_config]].limit 和 存量 比较最小值) 
 + 
 +开始PVE战斗的时候,把[[generated:hero_team_info]].item_list 送入 [[generated:player_battle_info]].item_list 
 + 
 +同时清空 [[generated:player_battle_info]].item_used 
 + 
 +战斗如果使用道具,需要通知服务器 
 + 
 +[[generated:BattleItemUse]] 战斗道具使用 
 + 
 +返回成功以后才可以使用。 
 + 
 +需要判断 道具已使用上限和道具存量,失败就返回。 使用情况保存在 [[generated:player_battle_info]].item_used 
 + 
 +**其他** 
 + 
 +[[generated:VipFlee]] 的时候,需要归还所有在[[generated:player_battle_info]].item_used的道具 
 + 
 +[[generated:VipUndo]] 的时候,需要归同步道具当前的使用情况(校验难度大) 
 + 
 +=====原地复活===== 
 + 
 +[[generated:player_setting]] 
 + 
 +- battle_restart_cost=75; 重新战斗需要的钻石数量 
 + 
 +- battle_restart_skill=500099; 重新复活战斗的技能 
 + 
 +- battle_restart_times=1; 重新复活战斗的次数 
 + 
 +在 DialogBattleLose界面中,如果钻石和次数都够,可以点击FIGHT进行原地复活 
 + 
 +在战斗逻辑中,其实是使用了了一个slot==9的特殊道具, 这个道具指向500099这个技能 
 + 
 +他不会消耗实际道具,但可以使玩家复活。 
 + 
 +使用之前需要调用[[generated:BattleRestart]] 协议 向服务器确认,服务器会扣除钻石并增加次数。 
 + 
 +回放也可以通过 [[generated:player_battle_info]].relive_count来判断是否合法进行了复活。 
 + 
 + 
 +=====整体变灰笔记 ===== 
 + 
 +单张图片变灰可以直接采用 亮度公式 对贴图的 rgb进行 加权求和 0.299*R + 0.587*G + 0.114*B=y 
 + 
 +在shader forge里面还可以用 RGB->HSV 的方法,把V输出就是亮度 
 + 
 +需要每个材质都替换成灰度材质。 
 + 
 +如果对一整个卡片进行处理,则可以使用SceneColor + ScreenPos 
 + 
 +但是需要注意的是,到了UI的Canvas里面,UV会反,需要 one_minues对v进行操作 
 + 
 +然后多个黑白滤镜一起描绘的时候,遇到了裁减问题,没有完美解决,最后通过把所有的GrayMask层级调高来解决 
 + 
 +整个方法的原理是GrabPass把FrameBuffer保存成一张贴图,然后进行处理 
 + 
 +高斯模糊的方法也可以参考这里 
 + 
 +https://blog.csdn.net/winchyy/article/details/71440896 
 + 
 +遇到上下反转的问题,注意camera MSAA的勾
battle_system.1550303363.txt.gz · 最后更改: 2019/02/16 15:49 由 shenmo