Re: [請益] 請問各位大大 如果要改寫經驗的獲取方꘠…
看板mud (網路地下城/文字遊戲)作者happyhero (2008 Fighter!)時間15年前 (2010/08/24 21:31)推噓0(0推 0噓 1→)留言1則, 1人參與討論串2/2 (看更多)
※ 引述《ppl (貓一拳)》之銘言:
: 各位大大 大家好 感謝大家百忙中抽看小弟的文章
: 小弟最近在研究msr大大放出的es2
: 已經試圖在裡面嘗試寫出一些作品
: 不過 想要改寫es2的經驗獲取方式
: 我的想法是這樣子 把原有的戰鬥中會增加exp給拿掉 這部份不使用就是了
//請找
//varargs int do_attack(object me, object victim, object weapon, int
//attack_type)裏面的一段
//
// (7) Give experience
//
/*if( !userp(me) || !userp(victim) ) {
if( (ap < dp)
&& (random(my["gin"]*100/my["max_gin"] + my["int"]) > 30) ) {
my["combat_exp"] += 1;
if( my["potential"] - my["learned_points"] < 100 )
my["potential"] += 1;
me->improve_skill(attack_skill, 1);
}
if( random(your["max_kee"] + your["kee"]) < damage ) {
your["combat_exp"] += 1;
if( your["potential"] - your["learned_points"] < 100 )
your["potential"] += 1;
}
}*/
問題是出在這段
把你不想增加的屬性前面 // 就可以了
ex: //your["combat_exp"] += 1;
或是把整個大段用/*...*/ 這樣系統也不會讀取這段
: 把規則更改為玩家每殺死一隻mob 加25exp and pot
: 不過mob的exp不得低於玩家exp三倍 否則殺死他也不會有exp報酬
請找這段
void killer_reward(object killer, object victim)
{
int bls;
string vmark;
// Call the mudlib killer apply.
killer->killed_enemy(victim);
if( userp(victim) ) {
killer->add("PKS", 1);
victim->clear_condition();
// Give the death penalty to the dying user.
victim->set("bellicosity", 0);
//在這裡加入
//if(victim->query("combat_exp")>killer->query("combat_exp")/3)
// { killer->add("combat_exp",25);
// killer->add("potential",25);}
//把原本獲得combat_exp的公式取代掉
//victim->add("combat_exp", -(int)victim->query("combat_exp") / 10);
victim->delete("vendetta");
if( victim->query("thief") )
victim->set("thief", (int)victim->query("thief") / 2);
//把原本獲得potential的判定取代掉
// if( (int)victim->query("potential") > (int)victim->query("learned_points"))
// victim->add("potential",
// ((int)victim->query("learned_points") -
//(int)victim->query("potential"))/2 );
victim->skill_death_penalty();
bls = 10;
CHANNEL_D->do_channel(this_object(), "rumor",
sprintf("%s被%s殺死了。", victim->name(1), killer->name(1)));
} else {
killer->add("MKS", 1);
bls = 1;
}
// NPC got 10 times of bellicosity than user.
killer->add("bellicosity", bls * (userp(killer)? 1: 10));
if( stringp(vmark = victim->query("vendetta_mark")) )
killer->add("vendetta/" + vmark, 1);
}
: 醬子的話我應該在combatd如果改寫?
: 煩請高手大大指教~~~~
以上僅供參考與提示
Semei@brmud.zapto.org:6666
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.101.165
※ 編輯: happyhero 來自: 218.172.101.165 (08/24 21:32)
→
08/27 16:19, , 1F
08/27 16:19, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
mud 近期熱門文章
PTT遊戲區 即時熱門文章