20190722修改事項 - 聖殿英雄傳說 MUD

Table of Contents

趁現在有一點空。


一、/d/spell/spell_d.c 修改

新增一個 mapping user_spells 資料及 user_spells 函數。

user_spells 函數的寫法很簡單

int user_spells(object ppl,object tar)
{
string names;

if(!ppl || !tar) return 1;

// 用玩家id當key
names=ppl->query("name");

// 初始化
if(!user_spells) user_spells=([]);
// 所接的目標是攻擊對象物件
// 接物件的好處是用 file_name 就能判斷攻擊的是不是同一隻
// 以及當怪物死掉時物件自然變 0
else if(!user_spells[names]) user_spells[names]=tar;
else if(file_name(tar)==file_name(user_spells[names]))
return 1;
return 0;
}


二、/d/spell/fire.c、ice.c、mixed.c 修改

上面一、的修改後的前期測試用。

比方以 fire spell 來說,當你對某隻怪物「第一次」施展
火系法術時,會看到底下的東西

你詠唱著召喚精靈的咒語...

燃燒的精靈 吞噬所有東西的精靈 伊芙利特啊!
回應我的召喚 在火燄之中展現您的無窮之力!

你以制約的力量,在熊熊的烈燄中召喚出了炎之王伊芙利特...
你道:兇猛的火燄之王啊!以地獄之火燒盡眼前的一切事物吧!
你開始唸起古老的咒文: ~ 20 ~ ~ ~ 火系法術

但是當你「又對這隻怪」施展火系法術時,就只會看到底下
的東西

你開始唸起古老的咒文: ~ 20 ~ ~ ~ 火系法術

這樣理論上我們的訊息就可以寫得很華麗,因為只有對某一隻
怪物第一次施展這樣的 spell 攻擊時,會看到華麗的敘述,施
展第二次以上時就不會再出現,直到你攻擊新的怪物為止。

所以如果你是房間內多隻怪,你每次 spell 目標都接不同隻,
那你每一次就會看到完整訊息----等於未改之前的樣子。

以上的修改將觀察一段時間(玩家有問題請回報),若沒啥問題就
會擴展到所有的 spell 及所有的特攻。


三、

--

All Comments

Leila avatarLeila2019-07-25
啊,忘記更新,已update,順便觀察debug.log是否增加