小型戰爭腳本 - 聖殿英雄傳說 MUD

Necoo avatar
By Necoo
at 2019-02-14T09:07

Table of Contents

#include <war.h>
inherit WAR_D;

int war_start()
{
/* 以下的東西寫在 WAR_D 裡頭內建的 war_starting 函數內
object times_check;
string files=base_name(this_object());

if(catch(times_check=find_object_or_load("/open/cmds/times_check")))
{
write(HIR"/open/cmds/times_check.c 載入失敗.\n"NOR");
return 1;
}

// 如果有戰爭在執行中
if(times_check->check_files(files)>0)
{
write(HIR"目前該戰爭(或某某戰爭)正在執行中.\n"NOR);
return 1;
}

times_check->set_times_check(files,files,唔..秒數怎麼判斷);
return 0;

*/

// 以下這個是固定的, 戰爭不能重覆啟動
if(war_starting()>0) return 1;

// 第 1 階段, 30秒
war_step(1,30);

// 第 1 階段置中廣播, 陣列代表每隔1~2秒 shout 一次
// 也可以 c_shout(HIR"豬頭人大軍進攻了白瓦鎮!!"NOR);
// 代表只廣播一行, 屆時用 stringp 判斷即可
// 陣列內若有 "" 代表延遲 1~2 秒, 會有額外判斷
c_shout(1,({HIR"豬頭人大軍進攻了白瓦鎮!!"NOR}));

// 第 1 階段生成怪物
// 什麼怪物, 數量, 位置
war_mob(1,({"pig1",3,"room1",
"pig2",1,"room1",}));

// 第 2 階段, 每隔 30 秒判斷一次
// 在 war.h 內會 #define WAR_LOOP 1
// war_step 會用 varargs 宣告
war_step(2,30);

// 第 2 階段置中廣播
c_shout(2,HIR"豬頭人持續進攻著白瓦鎮!!"NOR);

// 有設置 war_check(2 的話就會做 loop, 直到 war_check_2 的
// 回傳值為 1
// loop 的判斷一律為自訂,即腳本內需有 war_check_2 函數
war_check(2,"war_check_2");

// <1 秒代表第 3 階段為結束階段
war_step(3,0);

// 以下還沒想到怎麼呈現比較好

// 可能會有一個 war_call(階段數字,什麼函數);
// 然後腳本內自訂該函數, 例如為某房間加出口
// 或者將某房間的玩家轉移到其它地點
// 或者清空某些房間的某些怪物等等

// 當戰爭啟動時, 該腳本

}


當上面的函數是那樣寫時,WAR_D 裡面要有相對應的函數,且每個
函數對於呼叫 times_check 時給定的參數也需不同。

再於 WAR_D 裡面內建 times_check 函數,用來接收 times_check
的呼叫及傳值,依據所傳值的不同來做不同的動作即可。

這樣 WAR_D 應該 1000 行內可以解決。

然後再來考慮 war_end 要怎麼寫,我應該會給一個基本範本,再允
許 wiz 可自訂。

然後再寫一個 _war.c 來管理。

Laechan

--
Tags: 線上

All Comments

無課/微課的抽牌以及牌組構成微心得

Caroline avatar
By Caroline
at 2019-02-14T03:40
看了key0077大的「指定葬送死打不贏 哪邊出問題了」討論串, 原本想直接回文,但想想也許有人跟小弟剛入坑時一樣, 抱持著想要無課玩遍所有職業的想法, 因此野人獻曝一下,希望可以給有需要的板友一些幫助。 如果內容有誤,請大家鞭小力點,或是如果有其他想法,也歡迎補充。 (文章可能有點長,End有懶 ...

關於絲線的卡片能力敘述,看不懂~

Sandy avatar
By Sandy
at 2019-02-14T01:31
因為沒有抽到HAPPY END過,平常對戰也很少碰到,剛看了一下絲線的敘述 他的意思寫的我看不懂 這場對戰中已使用絲線4張以上(不包括這張卡片),所以是要用5張絲線以後? 則會給予and#34;該and#34;從者一回合打兩次,所以這是我要在一個從者用5張以上絲線才能打兩次? 還是說在這場對戰中用5張 ...

情人節加碼送 2/14~2/18

Tristan Cohan avatar
By Tristan Cohan
at 2019-02-14T00:18
情人節加碼送 2/14~2/18 活動時間:2019/2/14(四) 00:00 ~ 2019/2/18(一) 23:59 活動對象:全體玩家 活動辦法:回饋消費的球迷玩家,活動時間內於遊戲中消費滿指定金額可獲得對應獎勵( 每個帳號只能獲得一次獎勵) 配發時間:2/15(五)18:00開始隔日配發 ...

情人節比賽活動送

Edward Lewis avatar
By Edward Lewis
at 2019-02-14T00:16
情人節比賽活動送 活動時間:2019/2/11(一) 00:00 ~ 2019/2/17(日) 23:59 活動對象:完成15場9局15分鐘比賽的玩家 活動期間達成10場9局15分鐘的比賽,可獲得: 城鎮再訓練卷*2+紅卡招攬卷*2 配發時間:2/18(一) 18:00陸續開始配發 注意事項 ...

這屆STO有可愛的妹子

Candice avatar
By Candice
at 2019-02-13T23:05
內有一隻可愛的阿法 大家可以多多觀賞(?) 另外阿法有實況 https://i.imgur.com/ngQwgnV.png https://www.twitch.tv/ntualpha 比賽的官方直播台(今天的打完了) https://www.twitch.tv/shadowverseoffic ...