Project1

标题: 臉圖使用方式 [打印本页]

作者: 燕征    时间: 2016-4-26 03:21
标题: 臉圖使用方式
一般使用臉圖使用方式都是 \f[檔名]

想知道裡面的檔名用這兩種方式替代為何失去作用?

設一個變數,值為檔名:    $game_variables[n] = "檔名"

1.  用   \v[n]                                代入 :   \f[\v[n]]
2.  用   #{$game_variables[n]}    代入 :   \f[#{$game_variables[n]}]
作者: yang1zhi    时间: 2016-4-26 12:24
应该是这个对话脚本没有在得出\v[n]= "檔名"后再算 \f,而是直接\f[\v[n]]
作者: 燕征    时间: 2016-4-27 01:12
不管是 \v[] 還是\n[] 等,都在我外加來的腳本重新定義了
我使用的聽說是一個廣為人知和使用的"文字顯示強化"腳本(by   桜雅 在土, 和希, RaTTiE)

涉及 \f[]  的部分是在 77-99行
腳本第77-99行

那這樣我想這裡因為正規表示法的解析,放在\f[]裡的東西我看不太懂  (.+?)
RUBY 代码复制
  1. /\A\\[Ff]\[(.+?)\]/.match(@now_text)

應該就是(.+?)不知道解讀成什麼了,如果這邊是 \v[n]他不會去使用之後\v[n]的解讀
但上一行我仍不敢確定就是原因了──雖然假如他是,我還是不知道這邊正規表示法該寫什麼
因為之後提到的 $1 看起來簡直是憑空出現的(我全文搜索過,他第一次出現就是在上面單獨抽出來的第4行,整份的第80行)
而它代表的就是檔名,不知道跟上面的正則表達有什麼關係

文字顯示強化腳本,裡面有修改過一些東西

作者: 燕征    时间: 2016-4-27 01:55
針對 \v[n] 的解法已解出
將122行對 \v[] 的轉換 往前放到 76行之後就可以順利辨別
本來我看不懂的正則表示  (.+?)  我推測是裡面不管什麼反正他就照吃,重要的是後面的  .match(@now_text)
122行對\v[]的轉換在78行之後,所以她啥都不知道大概是正常的

但我自己對於(.+?)為何這樣就匹配的上還是感到奇怪拉
假設現在設定長這樣: \f[\v[n]],\v[n] = "test"
(/+?) 我覺得這時應該是 \v[n],而match裡的@now_text已經解析為 test,還是不匹配呀?
  1. if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
复制代码
我看起來他也沒有要他們相等的意思,只是想知道他不是nil就往後執行,但理論上這回傳的不是 true就是false吧?於是一定會進去if裡
然後就碰上了我百思不得其解的 $1部分

雖然其中一個解了並且最主要是我想要的東西可以做出來了,但這個解裡面又有好多問題
以及#{$game_variables[n]} 還是無解
希望可以知道得明白點比較安心




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1