スクリプト/皆で共有するユーザー定義関数

最終投稿者:    mini 光楼(114) 更新:2016/05/15 15:45:43
このWikiは、皆さんがよく使う利便性のある関数を、折角なので共有しましょう、
というWikiです。

Error一覧と同様、間違いや気になる点があるかもしれません。
しかし、やはり無ければ足すし間違いは直す。場合によっては議論もする。それでいいと思います。

ページの編集はちょっと躊躇しがち・・・という方は、
コメント欄に載せておきましょう。



目次




関数とは?


ここを見るとよく分かります。



使える関数の紹介


~~関連で探す




                                           (gee関数、gte関数、levelUpCheck関数使用)
                                     (SNB関数)



                                          (AddArrayDown関数)



                                                (loadArrayGameData関数)
                                                (clearGameData関数)




一つのまとまりから探す







変数の設定、取得(省略Ver.)

sv関数 gv関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームYes


記入を簡潔にするための関数。
処理速度は低下するので使いどころを考えたほうがいいかも?

#設定
def sv(a, b)
  setVariable(a, b)
end

#取得
def gv(a)
  return getVariable(a)
end

利用方法

sv(変数名,代入する値)#設定
gv(変数名)#取得
#機能はsetVariable()やgetVariable()と全く同じです。

                                                  関数提供:takumi2310さん

フォント初期化

font_default関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームYes


フォントを初期状態に戻す関数。
いろいろ変更してややこしくなってもこれでスッキリ。

#RPG用
def font_default()
  setTextFontSize(18)
  setTextFontColor(255, 255, 255)
  setTextFontBold(false)
  setTextFontItalic(false)
  setSelectFontSize(18)
  setSelectFontColor(255, 255, 255)
  setSelectFontBold(false)
  setSelectFontItalic(false)
  setSelectFontHeight(22)
  setTextViewMode(1)
end

#ノベル用
def font_default()
  setTextFontSize(28)
  setTextFontColor(255, 255, 255)
  setTextFontBold(false)
  setTextFontItalic(false)
  setSelectFontSize(28)
  setSelectFontColor(255, 255, 255)
  setSelectFontBold(false)
  setSelectFontItalic(false)
  setSelectFontHeight(32)
  setTextViewMode(1)
end


利用方法

font_default() #引数なしで単独で起動。

                                                  関数提供:takumi2310さん


時間待ち(スキップ不可)

taimu_mati関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームYes


スペースキーによるスキップをされない時間待ち関数。
コレを使えば、saveGameData関数などにある1秒の制限を守れます。
※この関数を使うとsetBaseTime()も実行されるので注意。

#時間待ち(スキップ不可)
def taimu_mati(taimu)
  setBaseTime()
  while getTime() <= taimu
    waitTime(1)
  end
end

利用方法

taimu_mati(1000)#ミリ秒で指定してください。1000ミリ秒=1秒です。

                                                  関数提供:きゅうりさん


クリック待ち

click_wait関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームYes


クリック待ちも、これで1行に。RPGでもノベルでも使える関数!
説明がないと、フリーズと思われてしまうかもしれないので注意。

def click_wait()
  startInput()
  loop = true
  while loop
    while hasInput()
      takeInput()
      if isMouseDown()
         loop = false
      end
    end
    waitTime(30)
  end
  endInput()
end

利用方法

click_wait()#引数なしで単独で起動。

                                                  関数提供:きゅうりさん

配列全検索

indexOfArray_x関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームYes


aoihikawaさん作のスクリプト/汎用関数/配列を検索する関数をアレンジして、
配列にあるだけ全て探し、見つけた配列番号を全て返す関数にしてみました。

#配列全検索
def indexOfArray_x(ar, n)
  l = getArrayLength(ar) ; r = createArray()
  r[0] = -1 ; i = 0 ; m = 0
  while i < l
    if ar[i] == n
      r[m] = i ; m = m + 1
    end
    i = i + 1
  end
  return r
end

利用方法

aList = createArray()
aList[0] = "りんご"
aList[1] = "みかん"
aList[2] = "ばなな"
aList[3] = "みかん"

#データがある場合、見つけた全ての配列番号を返す
a = indexOfArray_x(aList, "みかん") # 1,3

#データがない場合、(-1)を返す
b = indexOfArray_x(aList, "ぶどう") # -1

#第一引数には検索する配列、第二引数には検索する文字数、返り値は上記参照

                                            関数提供:きゅうりさん アレンジ元:aoihikawaさん


人が居ない場合の宿屋関数

bedinn関数


ゲームタイプ利用
2DアクションRPGYes
2DRPGYes
ノベルゲームNo


無人島に置いていったベッドとメモ的な所に使えそう?
使えなさそうで使えそうな関数。

def bedinn(g)
  f = false
  y = "ベッドがある。メモもあるぞ。なになに・・・\n%Wait%「"+toString(g)+getDenomination()+"を机に置いててね。」だって。%Wait%寝ようかな?"
  case speakWithSelect(2,"はい","いいえ",y)
    when 0
      if getMoney() >= toString(g)
        subMoney(g)
        speak("机に代金を置いて・・・おやすみ。")
        f = true
        fadeOut(1, 1, 1)#寝るエフェ(255や0にするとバグる?)
        waitTime(1500)#1.5秒待ち
        addPlayerHP(getPlayerMaxHP())
        addPlayerMP(getPlayerMaxMP())
        fadeIn()
        speak("ふぁーーあ。疲れが取れて今日も頑張れるぞ!")
      else#お金が足りないときは・・・・
        speak("あれ?足りないな・・・")
      end
    when 1
      speak("やっぱりいいや。")
  end
  return f
end

利用方法

bedinn(宿泊にかかる金額)

                                                  関数提供:✰❁ゆっくりんご❁✰さん


記事を書く際のテンプレート



 <テンプレート>
!{簡単に言うと}
!{関数名}

|||
|ゲームタイプ|利用|
|2DアクションRPG|[font #色指定_bold YesかNo]|
|2DRPG|[font #色指定_bold YesかNo]|
|ノベルゲーム|[font #色指定_bold YesかNo]|
|||

{関数の説明}

[code
def
  (関数内容)
end
]
!!利用方法
[code
関数名()
]
                                                  [font small 関数提供:(名前)さん]


実用する際にテンプレートの変更すべきところ

変更すべきところ詳細
{簡単に言うと}その関数が果たすことを「〇〇関数」と書きます。
{関数名}そのまま関数名を入れてください。
色指定YesかNoでYesなら000000、NoならFF0000を入れてください。
YesかNoそれぞれのゲームタイプで使用可能かを書いてください。
{関数の説明}そのまんま、関数の説明を書いてください。
[code ... ]関数の中で配列を使用する場合は[を{{{に、]を}}}に変えてください。
def (関数内容) end関数の指定部分だけのスクリプトを書いてください。※コピペオススメ
関数名()関数の使用例を書いてください。
(名前)関数提供者の名前を書いてください。

このページに情報を書き足してくれる方は、上の「編集」ボタンから編集してください。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

      mini ✰❁ゆっくりんご❁✰(投稿日:2015/08/30 10:18, 履歴)
これで久しぶりの更新かな?
Material 154390 2 mini  創 (投稿日:2014/04/13 18:29, 履歴)
あれ?いつの間に私の自作関数が・・・
      mini きゅうり(投稿日:2013/01/01 21:51, 履歴)
早速ジャンプ機能を、目次やこのWikiに書かれている関数の紹介に使ってみました。
Material 6858 mini akasata(投稿日:2012/11/20 13:16, 履歴)
このページへのリンクをノウハウページに掲載しました。
少しずつ整備が進むといいですね。また、少し内容を
整備してみました。

ノウハウ共有ページ
http://howto.rmake.jp/
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/24 19:48, 履歴)
関数名の省略は
どの関数でも加工できるうえ

逆に意味が分かりにくくなる
可能性もあるため

ユーザー定義関数一覧への
記載の必要はないかも。
128 mini fragile(投稿日:2012/07/21 00:28, 履歴)
あ~。
スクリプト書き直さないとな…
128 mini fragile(投稿日:2012/07/21 16:36, 履歴)
あっ!
返信する方間違えた!
128 mini fragile(投稿日:2012/07/21 00:08, 履歴)
そういえばwaitTime(x)って
スペースキーでスキップできたっけ?
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/07/21 00:17, 履歴)
はい、できますよ^^