戰鬥中的前衛後衛 - 聖殿英雄傳說 MUD

Belly avatar
By Belly
at 2018-11-26T22:57

Table of Contents

我打算把這個固定化。

首先,假設怪物攻擊玩家時,是讀取以下函數:

tar=mob->query_current_attacker();

而該函數長底下這樣:

varargs object query_current_attacker(int n)
{
mixed ats=query_temp("ats");
.
.

然後假設 ats 的堆疊是正確的,也就是目前有多少生物在攻擊
這隻 mob,都被堆疊在 ats 裡頭。

這時,問題可簡化成需對 ats 做幾次必要的排序處理。

ats=sort_array(ats,(: sort_pri_guild :));

int sort_pri_guild(object a,object b)
{
string pa=(string)a->query("pri_guild");

if(pa=="fighter" || pa=="blader" || pa=="slasher")
return -1;
else if(pa=="mage" || pa=="clerical" || pa=="thief")
return 1;
else
return 0;
}

以下是線上隨便抓 20 個玩家的驗證結果:

ralfa fighter
hulk fighter
blademonk blader
juliannohl slasher
salvis slasher
garnettil slasher
wan blader
fencer blader
keer slasher
ailano slasher
fredman blader
ido fighter
freija fighter
newking slasher <= 到這裡為止都是所謂的前衛
parasite mage <= 從這裡開始都是廣義的後衛
asellus clerical
songb clerical
stephanie clerical
kindle clerical
terryw knight


也就是說,我先看主職業,只要是攻擊該怪物的對象,主職是
戰、刀、劍三種的,就歸類到前鋒,剩下的就歸類到後衛。

接下來:我怎麼隨機從前衛裡頭產生攻擊對象?

i=0;
foreach(ob in ats)
{
pri_guild=ob->query("pri_guild");
if(pri_guild=="fighter" || pri_guild=="blader" ||
pri_guild=="slasher")
{
i++;
continue;
}
// 全體隊員都不是戰、刀、劍主職時
if(i==0) i=sizeof(ats);
return ats[random(i)];
}

以下是驗證:

選中的對象 salvis slasher
選中的對象 keer slasher
選中的對象 garnettil slasher
選中的對象 hulk fighter
選中的對象 ailano slasher
選中的對象 fredman blader
選中的對象 fencer blader
選中的對象 hulk fighter
選中的對象 wan blader
選中的對象 wan blader
.
.


上面的設定有以下的好處:

一、兩人以上組隊,只要有隊員主職是戰、刀、劍時,怪物就會
優先打這些隊員。

二、兩人以上組隊,全體隊員都不是戰、刀、劍主職,或全體隊
  員都是戰、刀、劍主職時,每個隊員都可能被怪物打到。

三、若要更合理一點,應該要把[騎士]也加進前鋒。

四、該設定實裝後,就能接著實裝「斷法」的設計,只要玩家被
呼叫到 receive_damage,就會移除堆疊的 special_attack
資料串,就相當於被斷法(而且CD時間還在)。

五、因此理論上,應該先把法術攻擊全面 special_attack 化。

六、全面 special_attack 化可帶來另一個好處,就是施法時間
可以延長,我打算至少延長 1 秒。

七、該設定實裝後,可拉高怪物的攻擊頻率、以及增加全體攻擊
的類別。

八、後期全面實裝後,就能將特攻、fist 等也 special_attack
化,玩家基本上只要不被怪物打到就不會斷法,而 sanc 會
提供多種不被打到的方法。(比方法師上盾)

九、我會跟著實裝的設定是群式怪物會 n 連擊,n 與怪物隻數
有關。


其中第五項應該要是最優先事項。

總之以上全部實裝後,玩家組隊時至少會想一下要組什麼樣的成
員,而不是無腦組,但也不會花你太多時間去想。


Laechan

--
Tags: 線上

All Comments

Jake avatar
By Jake
at 2018-11-28T12:16
cast all
Xanthe avatar
By Xanthe
at 2018-11-30T14:53
視情況還可加入戰鬥中行動不能(自動變後衛)
Mia avatar
By Mia
at 2018-12-04T01:45
例如魔龍的咆哮廣範圍全體攻擊,被吼到的變行動不能y
假設隊員除了牧師其它都倒了,那牧師就會變成怪物攻
Skylar Davis avatar
By Skylar Davis
at 2018-12-05T09:36
擊的主要目標;全員都倒時,才會隨機找一個打

這版有你改版我不管嗎

Poppy avatar
By Poppy
at 2018-11-26T20:39
如題 今天大家應該都在試牌 感覺直接拿上一版的強牌 應該可以趁機虐 目前在想無限制快攻皇 跟指定元祖龍 各位有其他推薦的嗎 - ...

禮包詩章

Edward Lewis avatar
By Edward Lewis
at 2018-11-26T18:59
這次除了DLC之外 CY端出了630換1200水晶+3包傳說卡包的禮包 (不計入額外優惠公定價台幣630換1200水晶) 針對這設計 想測個版上風向 的確能穩中三傳是不錯啦 但一方面 不想抽到星神的話 可能要再溫存一個月才能抽 (培冬 滅殺之鎧表示:快抽啦X) 抽了也不一定能中即戰力 抽到剛被砍過的卡沒得 ...

OOT指定DLC後土法思路

Sandy avatar
By Sandy
at 2018-11-26T14:59
牌組構想 https://i.imgur.com/bPRLo0q.png 大致上構成是這樣 細部微調等實戰調整 這次加入了以新傳說555奧利哈鋼巨像補強 然而本體是1費的激奏 原則上起手全力抓他 順利的話前3回合就可以有3個土印然後激奏打下去就能擁有節奏優勢 場上需要土印的話T5也可以準時打出 ...

Shadowverse Queen Cup 2018:優勝者

Skylar Davis avatar
By Skylar Davis
at 2018-11-26T12:07
https://goo.gl/RCz1Bw 懶人包 https://i.imgur.com/VKBm6db.png 四強選手 https://i.imgur.com/R0ueyJx.png 最後冠軍 ===== 誓死守護SVヽ( ・∀・)ノ -- 陸皓東:請問你喜歡怎樣的女性呢? 孫 ...

全民打棒球FB 新星LV5城鎮訓練

Linda avatar
By Linda
at 2018-11-26T10:36
小編的改版彩蛋PART 2 看到玩家們的反應這麼熱烈,決定來點創新的 城鎮再升級,新星卡訓練再強化 R卡調度再提升 !!! https://i.imgur.com/5I34uT1.jpg https://i.imgur.com/uUkedQk.jpg https://www.facebook.com ...