交流论坛首页 » 阅读帖子

求助:关于角色仓库(`character_warehouse`)在合服时主键冲突解决 - 最新分享

分享一段我们团队在用的爆率批量修改脚本。在Navicat中运行,主要是优化掉落分布。此脚本支持限制最大倍率,防止爆率溢出导致崩服。请根据你们数据库的表结构确认列名,运行前请务必进行整库备份:

```sql
-- 提升普通BOSS爆率1.5倍
UPDATE droplist d
JOIN npc n ON d.mobId = n.npcid
SET d.chance = d.chance * 1.5
WHERE n.type = 'Boss' AND d.chance < 1000;

-- 限制最高掉率不超50%
UPDATE droplist SET chance = 50000 WHERE chance > 50000;
```

对于3.80版本的封包拦截和解密,首包的Key协商是关键。游戏客户端在建立TCP连接后会发送一串8字节的握手数据包,服务端使用预设的XOR秘钥进行解密,随后生成一个动态的SessionKey。在服务端内部的 `LineageEncryption` 类中,其核心逻辑如下:

```java
public class LineageEncryption {
public static byte[] xorDecrypt(byte[] raw, int key) {
byte[] decrypted = new byte[raw.length];
for (int i = 0; i < raw.length; i++) {
decrypted[i] = (byte) (raw[i] ^ (key & 0xFF));
}
return decrypted;
}
}
```
建议有C++开发经验的群友在写登录器时,注意对首包的协商封包大小和包头标记做严格校验,过滤掉网络上的大部分握手攻击包。
💬 全部互动回帖 (5)
沙发 🛋️
请问 TCP 网络延迟调优的参数,对 Windows 系统的云服务器也适用吗?
板凳 🪑
极道落雷伤害减免如果直接在攻击判定中写死,会不会导致装备加成魔法伤害失效?
地板 🧱
G1GC 的启动参数调优,在 16G 内存的服务器上有什么建议 of 比例吗?
第 4 楼
收藏了,期待楼主更新后续的客户端 `string-c.tb` 中文化中文字符集解码文章!
第 5 楼
学到了,之前合服时主键冲突一直手工清理,用楼主的 SQL 几秒钟搞定!
🔒 社区需要注册用户才能发表回复或发帖
立即登录 免费注册