RO的獵人老鷹->寵物系統 - MUD Game

Enid avatar
By Enid
at 2019-07-30T13:25

Table of Contents

實例影片: https://youtu.be/9L5XtcGnGiU

以下code是es2內建的, 只是原始碼我一直沒看到他的應用~
後來就寫個寵物系統給他:(有興趣的稍微看一下,應該就懂了)

mapping *read_table(string file)
{
string *line, *field, *format;
mapping *data;
int i, rn, fn;

line = explode(read_file(file), "\n");
data = ({});

for(i=0; i<sizeof(line); i++) {
if( line[i]=="" || line[i][0]=='#' ) continue;
if( !pointerp(field) ) {
field = explode( line[i], ":" );
continue;
}
if( !pointerp(format) ) {
format = explode( line[i], ":" );
continue;
}
break;
}
for( rn = 0, fn = 0; i<sizeof(line); i++) {
if( line[i]=="" || line[i][0]=='#' ) continue;
if( !fn ) data += ({ allocate_mapping(sizeof(field)) });
sscanf( line[i], format[fn], data[rn][field[fn]] );
fn = (++fn) % sizeof(field);
if( !fn ) ++rn;
}
return data;
}

之後只要在目錄上多寫個檔案link:
//data/pet/招式表
#招式
level:message:damage
%d:%s:%d

5
閃電衝擊
100

10
[勁]閃電衝擊
200

15
[夠勁]閃電衝擊
250

那之後就會有等級,學會招式跟傷害
接下來在pet物件上寫下:

mapping save_add = ([]);
void update_level()
{

object ob,me;
string message;
int i,count,level,damage;
mapping *data = read_table("/data/pet/招式表");
ob = this_object();
me = find_player( dbase["master_id"] );

for( i=0; i<sizeof(data) ; i++) {
if( dbase["level"] == data[i]["level"] ) {
level = data[i]["level"];
message = data[i]["message"];
damage = data[i]["damage"];
message_vision(HIR"\n$N領悟了一招「"+message+"」!\n"NOR,ob);

if( wizardp(me) )
message_vision(HIR"傷害值:"+damage+"等級:"+level+"。\n"NOR,me);
if( !count = sizeof(save_add) ) count = 0;
save_add[count] = data[i];
save();

break;
}
}
}
接下來, 看你是需要餵食跟還是跟玩家經驗直一起成長up_level
然後領悟招式save()下來就可以了...
攻擊招式perform()我是寫在寵物heart_beat()身上:
int perform(object master)
{
int i,num,level,damage;
string *killer= master->query_killer();
object *enemy= master->query_enemy();
num = random(sizeof(save_add));
if( !level = save_add[num]["level"] ) return 0;
//通通打!!
for( i=0; i<sizeof(enemy); i++ ){
if( member_array( enemy[i]->query("id"), killer )!=-1 ){
damage = random(save_add[num]["damage"]/2) + save_add[num]["damage"]/2;
message_vision(HIR"轟~轟~轟~\n$N使出一招"NOR+level+NOR"級奧義"
+HIM"「"NOR+save_add[num]["message"]+HIM"」"
+HIC"讓$n造成("HIR+damage+HIC")的傷害!\n"NOR,this_object(),enemy[i]);
enemy[i]->receive_damage("kee",damage);
}
}
return 1;
}


--
Tags: 線上

All Comments

Eden avatar
By Eden
at 2019-08-01T14:21
推推
Tracy avatar
By Tracy
at 2019-08-03T15:17
推推,大心分享

畢業了AVA

Damian avatar
By Damian
at 2019-07-30T12:07
再見了,AVA 哪天希望可以看到戰谷再代理一次這遊戲 - ...

12點維修記得拆卡

Yuri avatar
By Yuri
at 2019-07-30T10:56
12點要維修了,八成有人忘記拆卡這件事情。 6月27日及7月11日的伺服器維護過後,於限定期間內對 「黑龍騎士‧法露特」 「哀戚的惡鬼」 「絢爛的妖豔吸血鬼」 「清純祈禱者‧耶菈」 卡片所實施之補償措施,將於7月30日伺服器維護時結束。 投資股票也要記得賣出才是真正的賺錢。 -- ◤ ...

地方的...需要..

Joe avatar
By Joe
at 2019-07-30T10:39
大家好 最近版上萬分熱烈 我覺得現在比較缺的是玩家反而不是開發了 所以 地方的小龍女需要你 金庸修真錄 jy.mud.com.tw 6666 -- 還記得遙遠過往被深藏的回憶嗎?   如果您已經忘了被現實和繁忙淹沒的曾經     那麼就讓我們幫助您找回那份屬於青澀年代的純真吧 用文字幻化出華麗與夢 ...

美國加拿大2019世界盃選手出爐

Ida avatar
By Ida
at 2019-07-30T06:01
美國 https://i.imgur.com/KpczV7n.jpg 坦 Muma super FCTFCTN SPACE 輸出 Danteh Corey_OW sinatraa ksf Hydration 補 sleepy moth_ow Rawkus 加拿大 https://i.imgur.com/ ...

平行世界?

Zora avatar
By Zora
at 2019-07-30T01:51
有人遇過平行世界嗎? 剛剛有一場一進去就只有我一個人(攻擊方 垃圾鎮) 後來過了十秒補了個隊友 然後沒有對手 原本以為是過氣了系統排不到人給我 可是忽然間全頻有人打字說and#34;4V6好難and#34; 一看不是我們場上的人(場上也只有兩個人) 看來同一場被分到兩個平行世界了 於是我就把車直 ...