?? 怪物掉物品規則設計.txt
字號:
//
// 怪物掉寶規則設計
// 冷紫龍
// 2004-02-18
////////////////////////////////////////////////////////////////////
一、相關數據庫表
1、cq_monstertype表部分字段說明:
=======================
drop_money_min //所掉金錢的下限
drop_money_max //所掉金錢的上限
drop_money_chance //掉錢的概率
drop_item_chance //掉物品的概率 掉1個物品
explode_item_chance1 //小爆的概率 掉2 - 5個物品
explode_item_chance2 //中爆的概率 掉6 - 9個物品
explode_item_chance3 //大爆的概率 掉10 - ?個物品
drop_item_rule //掉物品的規則組id
2、掉物品規則表
===============
CREATE TABLE cq_dropitemrule(
id int unsigned NOT NULL,
RuleId int unsigned NOT NULL default '0',
Chance int unsigned NOT NULL default '0',
Item0 int unsigned NOT NULL default '0',
Item1 int unsigned NOT NULL default '0',
Item2 int unsigned NOT NULL default '0',
Item3 int unsigned NOT NULL default '0',
Item4 int unsigned NOT NULL default '0',
Item5 int unsigned NOT NULL default '0',
Item6 int unsigned NOT NULL default '0',
Item7 int unsigned NOT NULL default '0',
Item8 int unsigned NOT NULL default '0',
Item9 int unsigned NOT NULL default '0',
Item10 int unsigned NOT NULL default '0',
Item11 int unsigned NOT NULL default '0',
Item12 int unsigned NOT NULL default '0',
Item13 int unsigned NOT NULL default '0',
Item14 int unsigned NOT NULL default '0',
PRIMARY KEY (id, RuleId)
) TYPE=MyISAM;
簡要說明:
=======================================
id 規則組id
RuleId 規則id
Chance 掉寶概率
Item0 ~ Item14 可能掉的物品typeid
★★id和RuleId兩個字段共同組成主鍵
該表中記錄了若干組掉物品的規則,
cq_monstertype表中每個記錄可以對應最多一個規則,每組規則由若干條規則(記錄)組成
每條記錄包括這條規則掉寶的概率以及最多15個ItemType(若同一種掉寶幾率對應的不止15種物品,
可以分多條記錄保存,只要Chance相同即可,處理的時候統一處理)。
★★可以有一個默認的規則組:規則組id=0,不掉任何物品
一個規則組包含多條規則的目的:可以實現不同的寶掉的概率不同。
一個掉寶規則組中包含多條規則(所有Chance相同的規則在讀入內存以后會被合并成一條,這樣合并
以后就可以有超過15種物品同一種掉寶規則)
二、算法設計
掉物品概率計算:
1、根據monstertype表的drop_item_chance、explode_item_chance1、explode_item_chance2、explode_item_chance3
字段值計算是否掉物品、掉幾個物品,如果計算結果不掉,或者drop_item_rule不存在,則退出;
2、根據dropitemrule表的Chance字段,按照概率從低到高計算是否掉物品,如果計算出來掉落某條規則的物品,
則從該規則的物品列表中隨機選擇一個,重復以上步驟直到找到足夠數量的物品(爆的時候物品數大于1)。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -