作者Jate (桔子)
看板mud_mars
標題[討論] mpadd
時間Fri Dec 14 14:52:49 2012
在這邊是想要聊一下有關mobprog的東西
在現在的mmorpg中, 常常看到"聲望"這種東西的設定 (好吧, 我就是指wow)
而在mud中其實也可以引入類似的作法, 讓遊戲內容更多元(拖戲)
不過實際上在mars寫area時, 就會發現能用的工具其實沒有很多
光是要寫一個程式語言中最簡單的
a += 1
就要寫成
if a = 0
mset a 1
elseif a = 1
mset a 2
end
類似這種形式, 過去很多quest都是用這種做法來寫
於是我在想, 如果能夠在主程式中增加一個mobprog
能夠做到簡單的+=, -=效果的話, 不管是寫quest, 聲望等等, 都能夠多很多變化
而這種prog, 其實寫起來不難
只要參照mset在quest的寫法即可, 舉例為:
void do_mpadd( CHAR_DATA *ch, char *argument )
{
char arg1 [MAX_INPUT_LENGTH];
char arg2 [MAX_INPUT_LENGTH];
char arg3 [MAX_INPUT_LENGTH];
CHAR_DATA *victim;
smash_tilde( argument );
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
strcpy( arg3, argument );
if ( !str_cmp( arg2, "map" ) )
{
victim->honor += 1;
return;
} do_mset( ch, "" );
return;
}
(欸, 其實我不會寫 lol, 只是要舉出victim->honor += 1;這行)
這樣如果要寫個啥聲望100時, 給東西等等的就很方便
不過說歸說, 實際上像mset在處理quest_value時看起來滿笨的
居然是用窮舉法阿...
--
◣ ◢
舊的想法 = 被鞭 老人發文 = 居歪 + M
◢ ▆▄˙ ˙ ╱
※ ██ ◤◤◣
新的想法 = 否決 新手發文 = 水桶 + D
▋◥◥◥ ◥
█˙ ˙▍ ※
▏◣ ~ ◢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.10.178
推 eplis:你的 do_mset 跑到套套外面惹 12/14 17:47
→ eplis:我應該會去完成這個吧 不提醒我都忘了 12/14 17:47
→ Jate:我不會寫C 只能大概示意阿XDD 12/14 17:52
→ stabber111:這系統是古董XD 12/15 13:30
→ stabber111:這樣寫prog可以少很多行 12/15 13:32