狼之樂園
Wolves' Paradise
或者可以試試,HP不要隨能力提升, (self.maxhp *= 1.1 ** mul 這句刪去) 然後為敵人設定一些威力特高、MP消耗也特高的技能。 例如某敵人擁有一個消耗100MP的強大技能,初始MP卻只有50。 那麼這個敵人必須至少有8級才能使用它。 另外也可以設定固定能力值的敵人啦,只要不要在名字後面加逗號就可以。
[quote="好喝的茶"]終於有時間把它寫好了。 [code:1] #set multiplier mul = self.lv != -1 ? [$game_party.avg_lv, self.lv].max : 1 #multiply status self.maxhp *= mul self.maxmp *= mul self.atk *= mul self.def *= mul self.spi *= mul self.agi *= mul [/code:1] 把這部份更改成︰ [code:1] #if not fixed status if self.lv != -1 #set multiplier mul = [$game_party.avg_lv, self.lv].max #set amplitude amp = $data_enemies[@enemy_id].name.split(/,/)[2].to_i #multiply hp and mp self.maxhp *= [color=darkred]1.1[/color] ** mul self.maxmp *= [color=darkred]1.1[/color] ** mul #multiply other parameters self.atk += mul * amp self.def += mul * amp self.spi += mul * amp self.agi += mul * amp end [/code:1] 1.1這個數字可以隨意改。 前後好像改了十行不夠。[/quote] 一會整理一下測試,因為可能會需要很多時間來看怎麼樣調整怪物和玩家角色的平衡 所以總結結果或者測試途中的我下次發新帖討論 多謝提供技術支持
終於有時間把它寫好了。 [code:1] #set multiplier mul = self.lv != -1 ? [$game_party.avg_lv, self.lv].max : 1 #multiply status self.maxhp *= mul self.maxmp *= mul self.atk *= mul self.def *= mul self.spi *= mul self.agi *= mul [/code:1] 把這部份更改成︰ [code:1] #if not fixed status if self.lv != -1 #set multiplier mul = [$game_party.avg_lv, self.lv].max #set amplitude amp = $data_enemies[@enemy_id].name.split(/,/)[2].to_i #multiply hp and mp self.maxhp *= 1.1 ** mul self.maxmp *= 1.1 ** mul #multiply other parameters self.atk += mul * amp self.def += mul * amp self.spi += mul * amp self.agi += mul * amp end [/code:1] 1.1這個數字可以隨意改。 前後好像改了十行不夠。
好像這個構思不錯 如果每個敵人的成長值都能變成單獨設定的話 那麼肯定比之前那樣全部都統一乘倍的好吧 而且這樣可以單獨設定成長值的話,感覺分怪物區域的時候其實也很方便 史萊姆的成長度如果是7的話,那麼像狼人這樣的還可以設定的再高一點(當然不可能,史萊姆加7就已經很強悍了,應該...) 不過HP方面其實我覺得用乘的比較好 其他的攻擊力之類的數值就用加的吧 好好把不同怪物分類,然後用這個系統的話 弱的怪物不會因為玩家等級高而不堪一擊,而強的怪物在短時間內依舊很難纏 (固定值加到一定程度后,就完全比不過玩家了)
昨天構思到敵人升級時,各能力增加固定數值, 而這個固定數值可以依照敵人改變。 大概就是「史萊姆,5,7」這種,最低等級是5, 每升一級,各能力增加7點。 (HP和MP則是增加70點之類) 應該也只是改幾行程式碼。 不知道黑獅覺得能力乘上去,還是加上去比較適合。
[quote="好喝的茶"]+= -= *= /=是簡寫,a += 1即是a = a + 1,其他類推。[/quote] 以上部份在我頭腦內被轉化成了亂碼。沒有適應和有相對的知識的話我還是無法理解。 不過謝了。 我晚點做一個測試版的小遊戲用來試試看。 不過我不確定模擬戰鬥會不會有效果...雖然其實這樣很方便。 嘛,把需要的升級和武器更換事件加進去就差不多了吧。 如果有問題我會發新帖。
這想改就可以了。 [code:1] #set multiplier mul = self.lv != -1 ? [$game_party.avg_lv, self.lv].max : 0 #multiply status self.maxhp *= 1.2 ** mul self.maxmp *= 1.2 ** mul self.atk *= 1.2 ** mul self.def *= 1.05 ** mul self.spi *= 1.2 ** mul self.agi *= 1.2 ** mul [/code:1] 由self.maxhp到self.agi這六行都是更改數值。可以隨你喜好改。 + - * / 對應加減乘除, **是次方,例如2**3就是2的3次方。 += -= *= /=是簡寫,a += 1即是a = a + 1,其他類推。
[color=red]我是想指定全能力x1.2倍 但是防禦力增加為x1.05倍[/color] 雖然覺得數值有點奇怪(數值更改:8/12/2009)
對啊,程式碼部份不難,難的是要研究內建寫法,找正確的地方修改。 更改能力的程式碼就這幾行,更動一下就可以了︰ [code:1] #multiply status self.maxhp += mul * 2 self.maxmp += mul * 3 self.atk += mul * 4 self.def += mul * 5 self.spi += mul * 6 self.agi += mul * 7 [/code:1] 這樣就會增加固定的數值。每行最後的數字可以隨意改。 如果想要每種敵人增加的固定數值都不同,就複雜一點點。看黑獅需不需要。 另外也可以改成,敵人每升一級,能力乘以1.1倍,這樣能力提升會比較合理。 [code:1] #set multiplier mul = self.lv != -1 ? [$game_party.avg_lv, self.lv].max : 0 #multiply status self.maxhp *= 1.02 ** mul self.maxmp *= 1.02 ** mul self.atk *= 1.02 ** mul self.def *= 1.02 ** mul self.spi *= 1.02 ** mul self.agi *= 1.02 ** mul [/code:1] 我使用這種寫法就是避免更動內建的腳本,所以貼在這裏即可,不需要再貼其他地方。
看著看著覺得其實部份很明顯? 所以我應該知道改哪裡,不過還是直接問一下好了 以免出錯了不知道該怎麼說 這個系統如果運用,我希望讓敵人的防禦力並不是跟著等級乘上去 而是只增加固定的數值 因為現實中一個人再強,也不可能到皮厚過頭,結果野獸的牙齒咬不進去的程度。 所以敵人的攻擊力上漲可以保持對方對我方的打擊度不變 而自己的強度所帶動的攻擊力卻能輕易的給應該比自己弱小的敵人帶來大打擊 我是想這樣做 所以,如果是只讓防禦力增加固定數值上去的話,上面的要怎麼改? 外加,這個Script也需要寫在Game_party里?所以是Game_Party和Game_Enemy,綜共寫兩次?
我昨天試著寫一下,今早寫好了。 RMVX跟RMXP的寫法很不同啊…… [code:1] class Game_Enemy < Game_Battler def initialize(index, enemy_id) super() @index = index @enemy_id = enemy_id enemy = $data_enemies[@enemy_id] #split name @original_name = enemy.name.split(/,/)[0] @letter = '' @plural = false @screen_x = 0 @screen_y = 0 @battler_name = enemy.battler_name @battler_hue = enemy.battler_hue #set multiplier mul = self.lv != -1 ? [$game_party.avg_lv, self.lv].max : 1 #multiply status self.maxhp *= mul self.maxmp *= mul self.atk *= mul self.def *= mul self.spi *= mul self.agi *= mul @hp = maxhp @mp = maxmp end #level def lv tmp = $data_enemies[@enemy_id].name.split(/,/)[1] tmp != nil ? tmp.to_i : -1 end end class Game_Party < Game_Unit #average level def avg_lv sum = 0 for i in @actors actor = $game_actors[i] sum += actor.level end return sum / @actors.size end end[/code:1] 按F11叫出腳本編輯器,把上面的程式碼插入Materials那邊,再儲存就可以了。 用法在我上面的回覆有寫。
不過對我來說好像很複雜的樣子 對程序碼一概不精通?
一般而言,角色升級,除了提升能力,還可以學到新技能。 而且劇情越往後,買到的裝備也會越強。 所以我覺得高等玩家對上高等敵人,還是玩家優勝。 我是用RMXP寫的,方法和語法可能跟RMVX有點不同。 我有定義敵最低等級,就是在資料庫裏,在敵人的名字後加「,」,再加上數字。 例如名字是「史萊姆,5」,就是指史萊姆的最低等級是5 如果不寫,即是指敵人能力值固定,不受角色等級影響。 在Game_Party定義平均等級, 然後再在Game_Enemy定義等級,把敵人名字後面的數字拆出來。 最後就是在平均等級和最低等級裏,取一個較高的數字, 把敵人的能力全部乘上去就是了。 聽起來很複雜,其實才二、三十行程式碼,很簡單的東西。
主要是我怕太平均了也不好,因為好像比較難讓玩家感覺到角色的成長 其實有時候有些RPG遊戲前後在同一個地方打怪的輕鬆度大有不同 所以會有些讓玩家感慨自己玩了很久,可能越來越接近結局的那種感覺 不過話說,你是怎麼寫的?
為了小洛做的遊戲,我曾經寫過黑獅所說的系統。 敵人的能力會隨著角色群的平均等級倍化。 例如玩家平均等級為1,敵人力量是4點。 當平均等級為2時,敵人力量就會變8點。 而且我可以使敵人擁有所謂「最低等級」, 使得敵人最差也不會弱過某個下限。 這可避免玩家故意只練一個角色,然後利用低等級角色拖低平均等級。 雖然我是用RMXP寫的,不過RMVX版本也應該寫得出來。 如果黑獅確定要做,我可以試著寫。
用名字弄密碼不行 而且我讓它打開名字窗口的時候可是都有顯示的,沒辦法當密碼用。 更何況有了字母,密碼設定更加麻煩。
還可以用輸入角色名稱的指令。 之後在條件分歧用角色名字判斷即可。 這樣可以包括英文字母作密碼。
哦, 白目這些東西那兒都有, 只是多與少罷了 ~.~
喔喔~應該寫那個會很難吧 可能資工或資管畢業的高手吧 今年如果可以~下一年也正想朝遊戲界發展看看~ 寫程式搞IDEA
製作程序的人就叫做程序師。
百度狼吧百度动物漫画吧