论坛调整完毕,全面开放注册,无需认证。

物品交換系統編寫

回复
头像
天堂之手
Mr.GL
Mr.GL
帖子: 263
注册时间: 2018-02-24 21:37

物品交換系統編寫

帖子 天堂之手 » 2018-03-24 19:52

首先, 組成老版本Multisell系統:
有兩種 Multisell 組成定 : 完整型(普通型), 和 個人物品專用型.
完整型的 Multisell 直接顯示 設定物品交換菜單 (全部顯示 xml 的設定交換).
但是個人物品專用型Multisell 僅僅顯示 個人物品欄中 對應 xml 設定的項目,其餘的不會顯示.
完整型Multisell舉個例子 雙刀的合成,.
個人物品專用型Multisell舉個例子 解封印B級的裝備.
如果你沒有在xml中特別定義 是屬於完整型或者是個人物品專用型. 那麼,
你需要使用特殊的路徑指令引導.
代碼:
<a action="bypass -h npc_%objectId%_multisell 1234">
上面這個是完整型的Multisell.
下面這個則是個人物品專用型Multisell
代碼:
<a action="bypass -h npc_%objectId%_exc_multisell 1234">


上面的部分在新版本中並沒有發生改變.
下面將詳細說明新增加的增強型Multisell交換系統 :
1) 以前, 一個完整的交易需要逐個設定所有的交換物品. 現在則可以不需要.

2) 支持稅率系統: 默認設定並不支持, 就是說, 如果你不輸入特別的設定語法, 並不支持稅率系統. 想要Multisell系統支持稅率, 你必須添加 applyTaxes="true" 作為 <list> 的標籤屬性 寫入xml 中.
例如: <list applyTaxes="true"><entry....../></list>
當開始稅率支持之後, 所有的金錢交易將加上稅率. 金錢以外的話, 5/6 古代金幣會當作金幣加入到稅率系統中. 這就意味著, 如果Multisell系統含有古代金幣的交易則需要繳稅, 他會提取 5/6 的古代金幣用, 再乘以所設定稅率作為上繳的部分.
例如: 黎明的祭祀設定 3200 古代金幣 交換 藥水. 如果支持稅率系統而且城堡稅率設定為10% 的話, 你就必須用 3200 古代金幣和300 金幣用於交換藥水.
3200*5/6 = 3000. 10% 乘以 3000 就是 300.
除了金幣和古代金幣, 其餘的物品都不會參與稅率計算.

3) 增強型交換模式: 默認是關閉的. 所以, 就算 multisell xml 中定義 增強型交換模式開啟,所設定的"true" 在完整型Multisell交易中也會被忽略. 所以, 為了開啟增強型交換模式必須保持兩個設定位置是 true 然後 用個人物品專用型模式來展開Multisell交換界面.
當增強型交換模式是 false 同時是以 個人物品專用型模式展開,那麼只會顯示 1 個你未裝備而且在個人物品欄的對應裝備, 但是必須對應的是可以被裝備的物品. 比如你同時擁有 "水晶杖+2" 和 "水晶杖+1" 你只會看到一個 "水晶杖" 而且增強型交換模式會忽略它的強化. 如果你想要完成交易, 換得的物品強化數值只會變成+0 . 無論如何, 代碼命令只會拿走強化數值較低的裝備. 在先前的例子中, 你會自動給出 +1d的裝備作為交易, 而不是+2 的那個.
當增強行交換模式 true 同時是以 個人物品專用型模式展開, 敬愛那個會獨立的顯示每一個適合交易並且未裝備上的裝備.換句話來說, 如果你擁有 +1 和 +2 兩個相同的武器, 它將會顯示兩個相同的項目, 第一個是對應 +1 的, 另一個 是對應 +2 的. 如果你有 5 相同的 +2 裝備, 你只會看到一個 +2 的裝備. 當你進行交換, 你所獲得的物品將保持原有的強化數值!

提示:
總的來說, 增強型交換系統 最多支持 1 未裝備的物品 交換 1 個物品. 如果不是這種一對一情況, 依然會順利完成交換, 但是會"隨機的選取" 用於交換物品的強化數值的.(算是賭人品?)


還有另一種的
不像上面一樣的複雜             需要的數量
<item id="1"> ↓
<ingredient id="交換物品所需道具的ID" count="1"/>
<production id="交換到的物品ID" count="1"/>
</item>                 ↑
                    數量
                     需要的數量
<item id="2"> ↓
<ingredient id="交換物品所需道具的ID" count="1"/>
 <ingredient id="交換物品所需道具的ID" count="1"/> ←需要到具有兩種以上就這樣寫
<production id="交換到的物品ID" count="1"/>
</item>                 ↑
                    數量
範例↓
<item id="1">
<ingredient id="1" count="1"/>
<ingredient id="2" count="1"/>
<ingredient id="3" count="1"/>
<ingredient id="4" count="1"/>
<production id="5" count="1"/>
</item>
<item id="2">
<ingredient id="1" count="100"/>
<production id="57" count="1"/>
</item>


說明:
<item id="1">
<ingredient id="1" count="1"/>→
<ingredient id="2" count="1"/>→
<ingredient id="3" count="1"/>→ 需要ID1跟2跟3跟4的道具各一個
<ingredient id="4" count="1"/>→
<production id="5" count="1"/>
</item>
<item id="2">
<ingredient id="1" count="100"/> ←需要道具數100
<production id="57" count="1"/>
</item>
終於打完了-
图片

回复