Re: [請益] 請問各位大大 如果要改寫經驗的獲取方꘠…

看板mud (網路地下城/文字遊戲)作者 (2008 Fighter!)時間15年前 (2010/08/24 21:31), 編輯推噓0(001)
留言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
原po真好人 (發卡!
08/27 16:19, 1F
文章代碼(AID): #1CSyd9Ym (mud)
文章代碼(AID): #1CSyd9Ym (mud)