YEP的JP系統是一個很強的插件,可以設定消耗JP和道具學習新技能
做出大部分RPG遊戲裡的技能學習系統
不過JP系統有一些限制
![]()
JP是綁在角色的職業上的,不是在角色上,這應該是方便做DQ類轉職系統的設定
大神在插件前言有寫,但是我目小了...orz
----------------------------------
RMMV YEP-JP系統在轉職後保留點數
參考教學&使用工具
----------------------------------
一開始遊戲設計是主角隨著劇情發展, 某類型裝備能夠裝備的數量會逐漸增加
這個設計可以用YEP的裝備插件達成
YEP_Equip_Core
裝備插件可以在職業中設定裝備欄位類型,並允許相同類型裝備兩個以上
裝上套件後在資料庫的職業欄位設定即可
⑨是對應資料庫->類型->裝備類型 中的欄位
左邊職業Equip Slot只有一個⑨,所以上面裝備欄為只有一個"刻印"欄位
右邊職業Equip Slot共有四個⑨,所以上面裝備欄為就有四個"刻印"欄位
(琪魯諾:あたい)
但是裝備插件無法用插件指令在遊戲中更改資料庫把<Equip Slot:...,9>
改為<Equip Slot: ......9,9,9,9>
所以要用同名職業偷天換日法將主角轉職
除了Equip Slot不同以外,其他部分皆相同,職業名稱也一樣
主角到了在劇情中裝備欄位增加時,使用轉職方式達成
測試一切順利,直到之前幫RM版友解決JP技能學習系統時
才發現漏測了一個項目...
...JP是綁職業的, 轉職後JP不會跟上 orz
YEP_JobPoints提供的插件指令只有三個
gainJp 角色id jp數值 (職業id): 角色獲得定值的JP (灌到角色當前的職業, 或指定的職業)
loseJp 角色id jp數值 (職業id): 角色失去定值的JP (當然也是針對職業)
setJp 角色id jp數值 (職業id): 將角色的JP直接帶入定值
理想上的做法是先用一個變數儲存角色目前的JP,接著使用指令轉職
再利用setJp指令把變數儲存的值灌回去
......不過插件沒有提供這項方法,必須要手改了
首先開啟YEP_JobPoints.js
搜尋"gainJp" "loseJp" "setJp", 插件指令用的是這三個關鍵字
所以反向用這三個關鍵字搜尋,可以很快找到插件指令設定的位置
插件指令建立是在Game_Interpreter下面
仿造"gainJp" "loseJp" "setJp"的格式, 再建立兩個新的插件指令
"classJp_save"和"classJp_gain"
classJp_save是作為轉職前下的指令,目的是將角色目前的JP儲存進一個變數
classJp_gain是轉職後下的指令,目的是將儲存的變數代回轉職後的職業
再往下幾行可以看到插件輸入"gainJp" "loseJp" "setJp"指令時
各自會做什麼動作
依樣畫葫蘆,"classJp_save"和"classJp_gain"也用相同格式建立動作
"classJp_gain"比較簡單,在這個地方就能完成
"classJp_gain"本質和"setJp"相同, 只是多一個把儲存JP的變數抓回來而已
儲存JP的變數名稱命名叫classJp_reg
所以"classJp_gain"先照抄"setJp",可以看出"setJp"的動作是將jpValue的值指定為角色
目前職業的JP,通常是由插件指令setJp 角色id jp數值 決定jpValue的值
改造時只要加一行 jpValue = classJp_reg;
由儲存jp的變數classJp_reg取代插件指令的傳入值就收工了, 後面的動作直接套setJp的
"classJp_save"把角色目前的JP存入變數classJp_reg的部分就要自己寫動作了
學習"gainJp" "loseJp" "setJp"建立動作"actor.classJp_save"
然後搜尋字串"actor.gainJp" "actor.loseJp"...看看動作要怎麼設定
從loseJp中比較容易看出端倪
value是插件指令中傳入, 失去的JP數量
所以this.jp(classId)就是插件指令中,指定角色當前的JP值
知道變數名稱後,就能建立"classJp_save"的動作了
先宣告儲存JP用的變數:classJp_reg
學習"gainJp" "loseJp" "setJp"動作模式建立
Game_Actor.prototype.classJp_save
然後一行指令就能完成:
classJp_reg=this.jp(classId);
這樣執行插件指令classJp_save時,就能將指定角色的JP值代給變數classJp_reg
然後使用插件指令classJp_gain時,將classJp_reg儲存的變數拿回
轉職事件的寫法:
1. classJp_save 角色id 隨便一個數值
2. 角色轉職
3. classJp_gain 角色id 隨便一個數值
以上,成功在轉職時把JP從之前的職業,轉到新的職業~