創作內容

1 GP

RMMV日誌(2)_YEP-JP系統轉職後保留

作者:卡歐斯│2020-10-02 18:34:35│巴幣:1,000│人氣:179
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從之前的職業,轉到新的職業~
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4935792
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言

oVo巴爾坦星人
好像是不錯的東西 XD

01-27 12:09

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★chaosangel 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:RMMV日誌(1)_字體...

追蹤私訊切換新版閱覽

作品資料夾

a86189642祝福
看到的人會變得幸福哦!看更多我要大聲說昨天08:54


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】