CShopEx::Buy rejected price 0 as a hack; allow it like CShop::Buy already does. Rebuilt and deployed game on 203; buying the box for 0 verified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
3.4 KiB
Markdown
57 lines
3.4 KiB
Markdown
# 小狩猎套装礼包(203 服务端)
|
||
|
||
物品 50307(40250 里没被用到的 `任务执行书(初级)`,类型 ITEM_QUEST,使用即触发 `when 50307.use`)改名为
|
||
**小狩猎套装礼包**,在百店老板娘「道具」页免费领取(售价 0)(`../npc-shops/item-mall/items.tsv`)。
|
||
打开后按职业给一套 1 级可穿的 +9 装备,每件 5 条满值属性(第 6、7 条为空):
|
||
|
||
| 部位 | 武士 | 刺客 | 修罗 | 法师 |
|
||
|---|---|---|---|---|
|
||
| 武器(选择) | 19 武士刀 / 3009 混铁斩 | 1009 白铁双刀 / 2009 藤竹弓(附 8000 木箭 ×200)/ 19 武士刀 | 19 武士刀 | 7009 纸折扇 |
|
||
| 盔甲 | 11209 | 11409 | 11609 | 11809 |
|
||
| 头盔 | 12209 | 12349 | 12489 | 12629 |
|
||
|
||
盾牌 13009、手镯 14009、鞋子 15009、项链 16009、耳环 17009 各职业相同。法师的铃 5009 要 10 级,不给。
|
||
|
||
| 部位 | 属性 |
|
||
|---|---|
|
||
| 武器 | 暴击 10%、贯穿 10%、主属性 +12(武士力量、刺客敏捷、修罗/法师智力)、对恶魔 20%、对不死 20% |
|
||
| 盔甲 | 生命 +2000、吸血 10%、攻击力 +50、近身反弹 10%、施法速度 20% |
|
||
| 头盔 | 攻速 8%、对动物/兽人/秘教/不死 各 20% |
|
||
| 盾牌 | 经验 20%、金钱 20%、免疫晕眩、免疫减速、对恶魔 20% |
|
||
| 手镯 | 掉宝 20%、生命 +2000、贯穿 10%、吸血 10%、对动物 20% |
|
||
| 鞋子 | 移速 20%、攻速 8%、暴击 10%、经验 20%、金钱 20% |
|
||
| 项链 | 生命 +2000、暴击 10%、贯穿 10%、经验 20%、金钱 20% |
|
||
| 耳环 | 移速 20%、掉宝 20%、对兽人/秘教/不死 各 20% |
|
||
|
||
属性都是 `item_attr` 表里该部位允许的类型、5 级的值。背包空格(`CountEmptyInventory`,按格数算)少于 15
|
||
时不打开;确认前可以取消,礼包不消耗。
|
||
|
||
## 文件
|
||
|
||
- `server.patch`:40250 的任务函数不能写物品属性,补丁在 `questlua_item.cpp` 加
|
||
`item.set_attribute(index, apply, value)`(`CItem::SetForceAttribute`,写库并记 ItemLog;apply 0 清空);
|
||
另外 `shopEx.cpp` 的 `CShopEx::Buy` 把价格 ≤0 当作弊拒绝,改成 `< 0`(同 `shop.cpp` 里已有的 Fix),
|
||
多页商店里售价 0 的物品才能买。
|
||
- `hunt_set.quest`:礼包任务(UTF-8,install.sh 转 GBK)。
|
||
- `install.sh`:装任务、往 `quest_functions` 补 `item.set_attribute`、`pc.get_empty_inventory_count`、
|
||
`pc.count_item`,服务端改名 50307(`item_names.txt` + `item_proto.locale_name`),重新编译任务。
|
||
|
||
客户端:名称 `data/zh_40250/item_names_zh_overlay.txt`,图标(用 50035 的礼盒图标)和说明
|
||
`item_list_zh_overlay.txt`、`itemdesc_zh_overlay.txt`,由 `scripts/build_zh_locale.py` 打进 locale_zh。
|
||
|
||
## 构建与部署
|
||
|
||
```sh
|
||
cd /usr/metin2/src && patch -p1 < server.patch
|
||
cd server/game/src && gmake -j2 GAMEDIR=/root/hunt-out/new # 不覆盖线上 share/bin/game
|
||
cd /usr/metin2/server && sh close.sh
|
||
cp share/bin/game <备份>; cp /root/hunt-out/new/game share/bin/game
|
||
sh install.sh # 本目录
|
||
sh ../npc-shops/install.sh ../npc-shops/item-mall
|
||
echo 1 | sh start.sh
|
||
```
|
||
|
||
2026-09-30 已在 203 部署。备份在 `/root/backup-hunt-set/`:`questlua_item.cpp.orig`、`bin-<时间>/game`
|
||
(旧二进制)、`<时间>/`(locale_list、quest_functions、item_names.txt)。用 GM 角色(武士)实测:礼包打开后
|
||
8 件装备属性与上表一致,重新登录后仍在,礼包已扣除;从百店老板娘处以 0 两买到礼包,金钱不变。
|