Re: [建議] 副本相關

看板mud_sanc作者 (小太保)時間10年前 (2014/04/23 11:21), 10年前編輯推噓1(105)
留言6則, 2人參與, 最新討論串14/26 (看更多)
今天修改 create_instance 函數: varargs int create_instance(string ppl_name,mixed usr,string diff) diff 是所謂的「難度」,當 create_instance 帶這個參數時,它會 將這個參數設到每一個 iroom 中,供 init_instance 及其它函數參 考。 這裡就要定義所謂的難度: 一、英文字串 二、預設值為 "normal" 三、比 "normal" 高的是 "hard",我初期會分三階,分別是hard1、 hard2 及 hard3。 四、不會有 "easy"。 我原則上不採取幻想神域的「單人」「n人」模式。幻想會依玩家選 的是哪一個,決定怪物的難度及血量,其結果是人越多有時反而越難 打,然後又有人數上限,導致.. 1.玩家一個人時,選多人副本有時反而自找麻煩 2.玩家兩三個人時,選多人副本有時也很難打 3.就算玩家湊足五人,可輕鬆虐一般等級的五人副本,卻不保證可以  輕鬆虐困難等級的五人副本,「偏偏又沒其它選擇」 4.玩家無法烙更多人打同一副本(暗黑三也有相同問題) 所以副本只會分「難度」,不會分「人數」,人數由玩家自己決定, 當然一般還是有上限(例如 follow 組隊人數上限),但以攻城戰來說 可能就無上限。 然後四個階段的難度的主要差異(怪物的難度是一定有差的): 1.額外掉寶率。 vobjs_d.c 控制的 2.經驗值、熟練度。 /std/pexp.c 控制的 3.最終寶箱可開到的物品數量。 action + 寶箱宣告控制的 4.副本的地圖有可能會長不一樣。 instance_map2data 決定的 所以 instance_map2data 也加上 diff 參數如下 if(function_exists("instance_map2data",this_ob)) instance_map2data=this_ob->instance_map2data(ppl_name,usr,diff); 目前只有 004.c 有用到,已修改。所以請注意 instance_map2data 要接三個參數。 最後就是如何讓難度參數影響生怪以及額外掉寶率,這個只要寫個公 式去跑就可以了,例如: new_level = level + (254 - level) x hard[n] / 100 new_member = member * (100 + hard[n]) / 100 以上的 diff 參數已實裝。 > da bear instance_diff :"hard3" instance_id1 :"laechan" instance_id2 :"004" Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.157.53 ※ 文章網址: http://www.ptt.cc/bbs/mud_sanc/M.1398223280.A.7C3.html ※ 編輯: laechan (210.61.157.53), 04/23/2014 11:45:15 ※ 編輯: laechan (210.61.157.53), 04/23/2014 16:02:57

04/23 16:03, , 1F
突然發現 pexp.c 不用改(因為經驗值會隨等級變動)
04/23 16:03, 1F

04/23 19:35, , 2F
我想人多難打應該是公式很單純的用乘法吧(猜測
04/23 19:35, 2F

04/23 19:46, , 3F
今天有想到,應該至少可分為「單人」及「非單人」
04/23 19:46, 3F

04/23 19:47, , 4F
單人副本「其它人無法事後加入」只要加這個條件即可
04/23 19:47, 4F

04/23 19:47, , 5F
而多人就泛指兩人以上,成員可來來去去
04/23 19:47, 5F

04/23 19:47, , 6F
這個會加進明天的 coding 項目
04/23 19:47, 6F
文章代碼(AID): #1JLp6mV3 (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1JLp6mV3 (mud_sanc)