精華區beta mud_sanc 關於我們 聯絡資訊
我要改 shut 了, 各位 wiz 有空看一下這篇. 攻擊者->shut("攻擊敘述",傷害,命中,"傷害種類",目標); 這是現行的格式, 將來改成底下格式... varargs void shut(string attack_msg,int damage,int hit, mixed kinds,mixed tars,int times); 這項修改有三個重要目的... 一、讓 shut 被呼叫一次即可同時對複數對象做 times 次攻擊 tars = ({mob1, mob2, ...}) => 用同一種攻擊去打 mob1 mob2 tars = ({mob1, mob1, ...}) => 用同一種攻擊去打 mob1 n 次 這樣可以將寫在某些程式中, 以 for 寫成的迴圈式攻擊, 變成用內迴的型式去執行. 二、將 kinds 變成 mixed 型式 kinds = ({攻擊屬性(冰/火/..), 攻擊種類(物理/魔法/其它)}) 也就是說, 除了既有的攻擊屬性外, 增加它是物理攻擊or   魔法攻擊的判斷. 一的修改,可以將以往寫在某些程式中, 以 for 寫成的迴圈 式攻擊, 變成改用內迴的型式去執行, 它的好處是, 如果程式 寫的好的話, 現行一回合攻擊 hit 數最多 10 次的限制就可 以放寬。 二的修改, 可以區隔物理及魔法攻擊, 它的好處是, 某些閃躲 格擋招架技能我只希望它對物理攻擊產生作用, 對魔法攻擊則 無效果時, 未來就可以做這樣的設定. 這項修改理論上今天可以完成, 完成後現有的程式完全不需變 動, 例如某技能.. me->shut("雪劍神劍",100000,1000,"snow",tar); 這時 kinds = ({"snow","physic"}), times = 1(內定) 例如某怪... frog->shut("天崩地裂",100000,1000,"dam",tar); 或 shut("天崩地裂",100000,1000); 這時 kinds = ({"dam","physic"}), times = 1(內定) 然後就可以修改底下的... for(i=1;i<10;i++) shut("天殘腳",100000,1000); 改成 shut("天殘腳",100000,1000,10); 攻擊法術內的... for(i=1;i<6;i++) me->shut("巨大火球",100000,1000,"fire",tar); 改成... me->shut("巨大火球",100000,1000,({"fire","magic"}),tar,6); 今天最主要的目的則用來測試該新呼叫方式可以無痛實裝。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.252.97