中文偽春菜後援會論壇  

打印

[求助] 設計人格時的問題...

設計人格時的問題...

Q1:請教一下
如果想要讓人格記住使用者輸入的名字
該怎麼做呢?
在茶兔中的aya_bootend.dlc中
有一段\![open,inputbox,TeachUsernameFirst,-1]
聆將其複製到我要輸入使用者ID的對話時
人格還是一樣記不住名字
該怎麼解決呢?
-------------------------------------------------------------
感謝kit0072為聆解決Q1(撒花)
-------------------------------------------------------------
Q2:當聆功能選單越做越多時
(比如瀏覽器 日曆等)
若是我希望把一些相近用途的功能
集中在一起
(比如便利功能:RSS盒子 日曆 清理系統)
語法該如何寫呢?
不這麼做的話
到時候對話框會滿滿都是選項了(倒)
-------------------------------------------------------------
感謝茶兔&茶鹿人格的借鏡^^
-------------------------------------------------------------
Q3:請教一下
系統資訊這項功能
(IP 處理器 作業系統 CPU 人格啟動經過時間 )
以及
重新啟動電腦 關機 定時關機
這些語法該如何設計呢?
如果問題解決了
相信這個人格會更完美的^^
-------------------------------------------------------------
感謝佐倉冬鈴和ymc為聆解決^^
-------------------------------------------------------------
Q4:當新增人格時所輸入的user名稱時
該如何等待user輸入完畢後才顯示下一段對話?
並且進行復述確定user是否輸入正確?

例如
請問你的名字是什麼呢?
(彈出inputbox並且輸入"書宇君")
是書宇君嗎?
確定       重新輸入
好的 那麼以後就請書宇君多多指教囉^^


若要將以上效果以語法表示
該怎麼設計呢/w\?


-------------------------------------------------------------
Q5:如何在自己設計的人格
在別人使用安裝的時候順帶設定為想要的對話框呢0.0?
比如我設計了一個天空藍對話框
不希望安裝人格後再灌專屬對話框
該怎麼設定呢/w\...
-------------------------------------------------------------
感謝佐倉冬鈴和ymc為聆解決^^
-------------------------------------------------------------
Q6:不算問題的問題...
聆從其他人格擷取出SAORI資料夾中
裡面有相當多的dll和exe檔
不過聆不知道這些dll的功能不敢隨便呼叫
想請問有沒有中文的SAORI插件介紹
比如說介紹功能之類的...呣


-------------------------------------------------------------
Q7:想請教一下
當製作好人格準備發佈的時候
是以zip發布比較好還是以nar形式呢?
剛剛發現野菜園人格
會自動安裝並指定對話框
這功能我想了很久還是沒有弄出來...
-------------------------------------------------------------
感謝佐倉冬鈴和ymc為聆解決^^
-------------------------------------------------------------
Q8:
那個...聆想要設計一個簡單的骰子遊戲
放在menu.dlc中
我是以"roll"宣告變數
在word.dlc增加rl0 rl1變數為

rl0
{
        "1"
        "2"
        "3"
        "4"
        "5"
        "6"
}

rl1
{
        "1"
        "2"
        "3"
        "4"
        "5"
        "6"
}


於menu.dlc中加入

when "roll"
{
        "\0\s[5]您所擲出的點數為%rl0點。\w9\w9\1喵可所擲出的點數為%rl1點。\e"       
        }

這樣人格的確是會隨機唱出骰子號碼
不過 我希望能夠讓人格在唱完號碼後
能夠引發比較兩個變數rl0 rl1大小的事件
比如說
rl0 比rl1大
\0耶 我贏囉
rl0比rl1小
\0嗚 我輸了
else
\0 呵呵 是平手呢


這樣該如何寫語法呢?

=============================
佐倉冬玲提到的辦法
是將word.dlc的骰子宣告為

rl0
{
        RAND(6) +1
}

rl1
{
        RAND(6) +1
}

接著在menu.dlc

when "roll"
{
        "\0\s[5]您所擲出的點數為%rl0點。\w9\w9\1喵

可所擲出的點數為%rl1點。\w5"
         --
         if %rl0 > %rl1   
         {
                    "\0\s[5]贏了!!\1輸了\e"
         }
         elseif %rl0 < %rl1   
         {
                    "\0\s[5]輸了\1贏了!!\e"
         }
         elseif %rl0 == %rl1   
         {
                    "\0\s[5]平手\1平手\e"
         }


可是
這樣會發生
3>5
5<2
的詭異情形
不知道在判定變數rl0 rl1時
他是從word.dlc重新讀取數值
還是從剛剛已經亂數跑出來的值進行判定呢?
-------------------------------------------------------------
感謝kit0072與佐倉冬玲老師
-------------------------------------------------------------
Q9:
關於拖曳圖片檔案至人格
引發是否將圖片設為桌面的事件
聆一直無法正常執行
到最後直接將茶兔&茶鹿相關語法完整複製
還是會出錯...
想請教一下
完整流程以及語法範例

另外
關於pyg大大製作的許多小遊戲
在其他人格可以執行
不過在聆自製的人格卻都失敗
步驟完全一樣呢
將dic放入master下
yaya.txt加入dic, aya_xxxx.dic
menu.dic加入該事件選單
依然無解...
到底是哪邊出問題呢?

-------------------------------------------------------------
感謝forjanezz解決
-------------------------------------------------------------
Q10:想要製作線上更新人格功能
wiki有提到使用
\![updatebymyself]
不過
該怎麼指定路徑讓人格更新呢?
比如說
A與B都使用某人格
A使用的是1.6版
B使用的是1.3版
其人格作者更新到2.0版
該如何設計語法
讓A與B在執行更新後
無論是對話 功能 對話框都成為2.0版本?
-------------------------------------------------------------



其他問題同樣會放在這篇
麻煩大家了u.u

[ 本帖最後由 楓雨聆 於 2009-9-12 19:01 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

\![open,inputbox,TeachUsernameFirst,-1]
我不是很懂open,inputbox,
,我試過直接放變數,都不會變我輸入的

看上去,好像是輸入姓氏 =-=?

我用的範本 AYA
username 是放名字

我會這樣

"你叫什麼名字?"
\![open,inputbox,OnName]

OnName
{
      username = reference0
}

========
wiki
\0\s[0]\![open,inputbox,OnTestEvent]\e
開啟一個空的輸入框,輸入完成後直接發生OnTestEvent事件,且reference0為輸入的字串。

TOP

請問...
我試過還是不行耶
有規定指令要放哪個dlc嗎?


OnName
{
      username = reference0
}

這指令要放在哪呢?
辛苦了...

------------------------------------------------------------
哎呀!成功了^^
非常感謝妳的協助(鞠躬)
現在又有其他問題了(愣)
請看最上面的文章^^

[ 本帖最後由 楓雨聆 於 2009-9-8 01:50 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

To Q3
以下是以橘花的為範例

$Select.System
{
\0\s[0]\b[2]像這個樣子。\n\n\_q
{$year}年 {$month}月 {$day}日 ({$DayofWeek_w})\n
{$hour}點{$minute}分\n
\n[half]
CPU      :{$cpu_name={$saori("saori_cpuid.dll","cpu.name")}}{$cpu_name}\n
OS       :{$os_name={$saori("saori_cpuid.dll","os.name")}}{$os.name}\n
\n[half]
記憶體使用率   :{$mem_os={$saori("saori_cpuid.dll","mem.os")}}{$mem_os} %\n
物理記憶體 全體 :{$mem_phyt={$saori("saori_cpuid.dll","mem.phyt")}}{$mem_phyt} MB\n
物理記憶體 空閒 :{$mem_phya={$saori("saori_cpuid.dll","mem.phya")}}{$mem_phya} MB\n
\n[half]
OS起動時間   :{$elapsedhouros}小時 {$elapsedminuteos}分\n
\n[half]
平台       :{$Platform}\n
\n[half]
連續起動時間   :{$elapsedhour}小時 {$elapsedminute}分\n
總計起動時間   :{$elapsedhourtotal}小時 {$elapsedminutetotal}分
\_q\x\b[-1]\e
}

$DayofWeek_w
{
{$_dayofweek_w="日"}
{$if ({$dayofweek}=="1") { {$_dayofweek_w="一"} }}
{$if ({$dayofweek}=="2") { {$_dayofweek_w="二"} }}
{$if ({$dayofweek}=="3") { {$_dayofweek_w="三"} }}
{$if ({$dayofweek}=="4") { {$_dayofweek_w="四"} }}
{$if ({$dayofweek}=="5") { {$_dayofweek_w="五"} }}
{$if ({$dayofweek}=="6") { {$_dayofweek_w="六"} }}
{$_dayofweek_w}
}

$Platform
{
{$platform={$saori("saori_cpuid.dll","platform")}}
{$_platform="???"}
{$if ({$platform}=="materia.exe") { {$_platform="Materia"} }}
{$if ({$platform}=="crowsub.exe") { {$_platform="CROW"} }}
{$if ({$platform}=="ssp.exe") { {$_platform="SSP"} }}
{$_platform}
}

目前看過會給系統資訊的橘花而已 (或許是在下見識淺薄)
不過這與法似乎是 saori
而聆大的是 yaya
所以這個只能僅供參考
能不能運行我不能保證就是了.....

TOP

Select.System
{
"\0\s[0]\b[2]像這個樣子。\n\n\_q/
%(year)年 %(month)月 %(day)日 (%(DayofWeek_w))\n/
%(hour)點  %(minute)分\n/
\n[half]/
CPU      :%(SAORI('saori\saori_cpuid.dll','cpu.name'))\n/
OS       :%(SAORI('saori\saori_cpuid.dll','os.name'))\n/
\n[half]/
記憶體使用率   :%(memoryload) %\n/
物理記憶體 全體 :%(memorytotalphys/1048576) MB\n/
物理記憶體 空閒 :%(memoryavailphys/1048576) MB\n/
\n[half]/
OS起動時間   :%(systemuphour)小時 %(systemupminute)分\n/
\n[half]/
平台       :%(Platform)\n/
\n[half]/
連續起動時間   :%(ghostuptime/3600)小時 %(ghostuptime/60%60)分\n/
\_q\x\b[-1]\e"
}

DayofWeek_w
{
        ("日","一","二","三","四","五","六")[weekday];
}

Platform
{
        case basewarename {
                when "embryo" {
                        "Materia"
                }
                when "crow" {
                        "CROW"
                }
                when "SSP" {
                        "SSP"
                }
                others {
                        "???"
                }
        }
}

aya版本的系統資訊來了
上面的應該是橘花一美坂的系統資訊吧?
什麼?你說橘花是什麼屬性?
當然是妹啊!!!(死

TOP

多謝佐倉和ymc
不過
使用ymc語法的時候
會和便利功能衝突
系統資訊也無法正常顯示
可以的話
能幫聆直接debug嗎?
另外還有便利功能也需要協助
真的麻煩妳了(鞠躬)

連結網頁在此
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

原來...
人格裡沒有相關的saori啊...
正確的說法是連saori都沒有啊...
什麼?你說橘花是什麼屬性?
當然是妹啊!!!(死

TOP

那麼...saori要怎麼製作呢?
wiki的資料
對於新人來說有點困難
問題這麼多真不好意思...

另外關於初始化安裝時的使用者名稱記憶功能
能不能讓user輸入字串後
才顯示下一段對話?
詳細說明放在最上面的Q4...

[ 本帖最後由 楓雨聆 於 2009-9-8 17:36 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

saori的話
我記得後援會wiki裡有相關的連結可以下載
或者就是去找其他的人格裡的使用
據我所知的aya橘花與貓魚大的察兔茶鹿裡也有
至於使用方法嘛.....
我只會從現有的東西裡去理解要怎麼用
所以就別問我這個剛上大學連VB都不會寫的混混資訊科學生了吧~
可以試著去找貓魚さん或時原砂さん請教會比較好
或者是在生命的殿堂裡找到相關的文章
什麼?你說橘花是什麼屬性?
當然是妹啊!!!(死

TOP

根據測試
問題在於資訊無法完整顯示
會隨機出現三種狀況


除了 %(DayofWeek_w) 跟 %(Platform) 所跑出的東西無法顯示外
其餘皆正常



只顯示 %(Platform)
以SSP為例




只顯示 %(DayofWeek_w)
以今天禮拜二為例





表面上看來似乎是
DayofWeek_w
{
        ("日","一","二","三","四","五","六")[weekday];
}

Platform
{
        case basewarename {
                when "embryo" {
                        "Materia"
                }
                when "crow" {
                        "CROW"
                }
                when "SSP" {
                        "SSP"
                }
                others {
                        "???"
                }
        }

這段語法與上面的互相衝突

以上純粹只是實驗結果及個人見解
希望能夠讓大家先簡單的了解情況
至於解決方法...
因在下能力不足,還沒想到
還有勞大家幫忙

TOP

我的測試是二與三兩種
前面一的部分我使用過他的人做過測試
卻不能夠顯示CPU與OS這兩個部份
而這兩個部份有SAORI
猜測是該人格沒有SAORI所造成的
當然...
是猜測啦...
什麼?你說橘花是什麼屬性?
當然是妹啊!!!(死

TOP

喔對,我忘了說我有把橘花那邊的saori丟過去
而且看到這串'saori\saori_cpuid.dll' 應該可以確定是缺那個saori沒錯

還有
select system 我有改成 when "System"

外加
連續起動時間一直都顯示0


唉...糊塗了,忘了的事還真多啊

[ 本帖最後由 佐倉冬鈴 於 2009-9-8 22:24 編輯 ]

TOP

刪除這段語法
DayofWeek_w
{
        ("日","一","二","三","四","五","六")[weekday];
}

Platform
{
        case basewarename {
                when "embryo" {
                        "Materia"
                }
                when "crow" {
                        "CROW"
                }
                when "SSP" {
                        "SSP"
                }
                others {
                        "???"
                }
        }


的確就能正常執行了
感覺好像是會進入隨機迴圈?

---------------------------------------------------

>w<
發現能夠成功執行的方法了
只要將

DayofWeek_w
{
        ("日","一","二","三","四","五","六")[weekday];
}


完全獨立在OnChoiceSelect事件之外就可以正常顯示了
不會再出現佐倉拍照的隨機3種樣子
(感謝佐倉熱心貼圖 ymc的熱心測試^^)

以下是聆正常顯示的照片





另外平台的顯示
聆以
%(basewarename)\n/
就能夠正常顯示囉


嗚嗚...為什麼只是把星期3改成星期三就讓我那麼感動呢
大概是花了十幾個小時的原因吧(倒)
從這裡看的出來
好的人格真的很需要作者的耐心與愛心

人格的製作到後面會越來越慢
學習越多後你會發現不會的更多


果然最上面又有新的問題了...

[ 本帖最後由 楓雨聆 於 2009-9-9 00:50 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

Q4、Q5、Q7的話
利用野菜園借鏡應該可以
像是下面
稱呼參照野菜園的extension內

對話框位置調整();
_txt += "\![change,balloon,清白]";

是放在bootend內的
利用這個當作參考試試看

人格發佈方面
nar應該是最好的選擇
對於會使用的人就算格式是什麼都沒關係
但對於新手而言的話
他們可能只會一昧的拖曳下載下來的人格檔給SSP
若是發現不能下載的話又會出現兩種人
一種是自己爬文找解決辦法的
一種是直接發文求救的
所以還是製程nar會比較方便
什麼?你說橘花是什麼屬性?
當然是妹啊!!!(死

TOP

嗯嗯
按照ymc的方法
的確能夠以nar形式發佈
並且在安裝人格時同時安裝並選擇對話框
不過
聆是直接採用野菜園的語法
雖然成功了
但是卻不明白原理


在install.txt中
改為

charset,UTF-8
type,ghost
name,小雨聆
directory,seraphim

balloon.directory,ClearWhite
balloon.source.directory,balloon

就能夠自動安裝對話框的樣子
但是

balloon.directory,ClearWhite
balloon.source.directory,balloon


是什麼意思呢0.0?


話說現在Q4仍然無解...

[ 本帖最後由 楓雨聆 於 2009-9-9 19:53 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

再度增加一個類似邏輯語法的問題
想要讓兩變數比較大小
再各別引發相應事件
不知道該怎麼做
看來這就是沒有程式語言基礎的後果啊...
請看最上面的Q8(辛苦了)
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

嘗試自製簡單骰子小遊戲
的確是可以執行
不過
邏輯似乎會出現嚴重問題
比如
5<3
4<1
我想既然不會是ssp出問題的話
那就是對於變數的讀取
似乎重複執行亂數
這部份也需要各位幫忙debug(鞠躬)
如第一篇的Q8
有詳細說明...
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

10
l0
11
l1     最好不要再用=0=

if  %()
正常應該沒有  %(),放變數就對




{

ra =  RAND(6) +1
rb =  RAND(6) +1
--

" %(ra) , %(rb)\n"
--

              if ra > rb   
         {
                    "\0\s[5]%(ra) > %(rb)\e"
         }
         elseif ra < rb   
         {
                    "\0\s[5]%(ra) < %(rb)\e"
         }
         elseif ra == rb   
         {
                    "\0\s[5]%(ra) = %(rb)\e"
         }

}

[ 本帖最後由 kit0072 於 2009-9-10 23:56 編輯 ]

TOP

聆將語法按照kit0072的建議
改成

when "roll"
{

ra =  RAND(6) +1
rb =  RAND(6) +1



        "\0\s[5]您所擲出的點數為%(ra)點。\w9\w9\1

喵可所擲出的點數為%(rb)點。\w5\n"


--



              if ra > rb   
         {
                    "\0\s[5]贏了!!\w9\1輸

了...\e"
         }
         elseif ra < rb   
         {
                    "\0\s[3]輸了...\w9\1贏了!!

\e"
         }
         elseif ra == rb   
         {
                    "\0\s[0]\_s平手。\_s\e"
         }

}




真的可以正常執行了^^(感謝kit0072)

另外聆想要知道
原本的語法錯誤的地方在哪裡呢?
測試了一下
發現若將語法位置稍作更改
會出現聆原本所說的可怕邏輯問題


when "roll"
{




        "\0\s[5]您所擲出的點數為%(ra)點。\w9\w9\1

喵可所擲出的點數為%(rb)點。\w5\n"


--

ra =  RAND(6) +1
rb =  RAND(6) +1


              if ra > rb   
         {
                    "\0\s[5]贏了!!\w9\1輸

了...\e"
         }
         elseif ra < rb   
         {
                    "\0\s[3]輸了...\w9\1贏了!!

\e"
         }
         elseif ra == rb   
         {
                    "\0\s[0]\_s平手。\_s\e"
         }

}




藍色部分的文字位置
對於語法最後得到的結果會有很大的差異
聆沒有程式語言的基礎
所以很納悶
語法位置怎麼會造成不同的結果?

最後還是感謝協助聆完成第一個自製小遊戲的佐倉冬玲以及kit0072(90度鞠躬)

另外
想請問--這有作用嗎?
似乎刪除也會出錯的樣子...


[ 本帖最後由 楓雨聆 於 2009-9-11 00:30 編輯 ]
葉經過的滋潤後 在樹蔭下聽心靈的歌聲

TOP

“--”意思是把上下2個輸出候選語句連接起來傳遞給ssp執行,如果刪掉“--”,則上下2句話就是平行關系,函式會隨機選擇其中的一句作為輸出,有50%可能顯示上面的話,也有50%可能顯示下面的。
比如函式
foo {
“你好”
”初次見面,請多關照“
}
有50趴的機會輸出“你好”,50趴的機會輸出“初次見面,請多關照”

而函式
foo {
“你好”
--
”初次見面,請多關照“
}
只會輸出“你好初次見面,請多關照”

函式除了在輸出的時候會隨機選擇“”包住的輸出候選語句,其他時候都是按從上往下的順序執行的,所以位置很重要

[ 本帖最後由 forjanezz 於 2009-9-11 14:08 編輯 ]

TOP



當前時區 GMT+8, 現在時間是 2023-6-10 12:13

Processed in 0.025332 second(s), 10 queries, Gzip enabled.

清除 Cookies - 聯繫我們 - 中文偽春菜後援會 - Archiver - WAP - TOP - 界面風格