Warning: session_write_close(): write failed: No space left on device (28) in /up_wiki/doku.php on line 123
Warning: session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in /up_wiki/doku.php on line 123
======战斗系统======
=====战场技能=====
[[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的
=====站位=====
[[generated:defender_formation_config]] 站位配置
=====道具=====
[[generated:item_battle_config]] 战斗道具 属于[[generated:item_config]]子表
战斗道具系统主要沿用技能系统的框架,
由战斗道具表去引用[[generated:skill_config]]表
然后进行战斗技能的一系列使用逻辑。
** 道具使用条件 **
如果技能有使用条件限制,需要先判断使用条件
[[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的勾