見出し画像

新しくなったビル経営ゲームv7のmod製作支援ツールnew SBAPIの使い方

初めに
SBAPIとは何か?まさあぶ氏のビル経営ゲームの拡張性を上げるツールである。

導入方法
https://scratch.mit.edu/projects/933515639/の中の
new SBAPIと書かれたスプライトとnew SBAPI client sideと書かれたスプライトがある。
今回はMOD製作者様向けの記事なのでnew SBAPI client side側を紹介する。
new SBAPI client sideと書かれたスプライトの中身をすべてMODに使うスプライトに入れてくれ

SBAPIrequestという関数がclient側に存在しているが、その使い方はこんな感じだ。

clientの方のrequest定義の最初の引数がmethod。
返り値はリスト:modAPIに帰ってきます。

メソッドの紹介

data ビル経に初期搭載されてるcache機能と独立したcache機能が使えます。
get プロパティを取得します。
post 設定の変更等を行います。

getメソッドに存在する命令

xp xpを取得
level levelを取得
electric 電気を取得
water 水を取得
money お金を取得
happiness 幸福度を取得
diamond ダイヤモンドを取得
day 日付を取得
time 時間を取得

tablet タブレットの場所の取得
tablet (引数1:tab) タブレットのタブを取得
tablet (引数1:page) タブレットのページを取得

menu ゲームで現在何を開いているかの取得
mode 建築モードか猫モードか取得
X coordinate カメラのX座標を取得
Y coordinate カメラのY座標を取得
coordinate カメラの座標を取得

room-id room:data内の部屋場所を取得
room-id (引数1:X座標,引数2:Y座標) room:data内の部屋場所を取得

postメソッドに存在する命令

EarlyMod sbapiが搭載している標準modの有効無効切り替え
EarlyMod (引数1:mod名,引数2:true) 引数1を有効化
EarlyMod (引数1:mod名,引数2:false) 引数1を無効化

money お金を引数1の値にする
diamond ダイヤモンドを引数1の値にする
happiness 幸福度を引数1の値にする
xp xpを引数1の値にする
level レベルを引数1の値にする

Location マップを引数1の値にする
Location (引数1:plain) マップを平原にする
Location (引数1:snowy mountains) マップを雪山にする
Location (引数1:desert) マップを砂漠にする

make cat 客を増やす
del cat 全ての客を消す

toast 引数1の値の通知を引数2の値の音で出す
toast (引数1:3) (引数2:1)

open ゲーム内の場所を移動
open (引数1:tablet) タブレットに移動
open (引数1:pause) 設定とかのやつに移動
open (引数1:ADS) 広告を表示
open (引数1:数値) idで移動

move タブレット内の特定の場所に移動する(引数1でページ、引数2でタブ)

mode 建築モードと猫モードを切り替える
mode (引数1:cat) 猫モードにする
mode (引数1:build) 建築モードにする
 
electric 電気を固定する
electric 電気の供給量を引数1の値に固定する
electric  (引数1;amount_used) 電気の使用量を引数2の値に固定する

water 水を固定する
water 水の供給量を引数1の値に固定する
water  (引数1;amount_used) 水の使用量を引数2の値に固定する

X coordinate カメラのX座標を引数1の値にする
Y coordinate カメラのY座標を引数1の値にする
coordinate カメラのX座標を引数1の値にし、Y座標を引数2の値にする

scroll スクロールする
scroll (引数1:chat) チャット欄のスクロールバーの値を引数2の値にする
scroll (引数1:buildlist) 建築リストのスクロールバーの値を引数2の値にする

buildlist 建築リストを並べ替える
buildlist (引数1:seting) 建築リストを引数2の値にする

mouse マウスが押されてるかの判定を変える
mouse (引数1:down) マウスを押している判定にする
mouse (引数1:up) マウスを放している判定にする

profit_ratio 収益率を引数1の値にする

weather 天候を引数1の値にする
weather (引数1:sunny) 天候を晴れにする
weather (引数1:rain) 天候を雨にする
weather (引数1:heavy rain) 天候を大雨にする
weather (引数1:数値)

build 部屋を置き換える
build (引数1:room-id,引数2:部屋のid) room-idの位置の部屋を引数2に置き換える

実行に時間がかかる命令
dialog ダイアログを出す(引数1:custom id,引数2:button type)
day 日付の変更をする
day (引数1:add) 引数2の値分日付を増やしていく
day (引数1:delete) 引数2の値分日付を戻していく
day (引数1:set) 引数2の値に日付を変える

dataメソッドに存在する命令

get (引数1:key) cacheされた値を取得します。
 
cache (引数1:key,引数2:値) keyを指定してcacheします。
 
delete (引数1:key) 指定したkeyのcacheを削除します。

toastの名前、id、中身の対応表

toastname toastid toast
basement_block  1 この建築物は地下に作れません!
basement_block2 2 この建築物は地上に作れません!
buildlist: gold 3 所持金が足りません!
buildlist: same 4 同じ部屋は作れません!
save            5 セーブ中
save_e          6 セーブ完了
server: saving  7 サーバーに保存中
new_day         8 日付が変わりました
maintenance     9 維持費が引かれました
shop_gold_ad    10 広告で3000Gを獲得しました!
thief: spawn    11 泥棒がいる!今すぐ捕まえよう!
thief: success  12 泥棒を捕まえた!
thief: failure  13 泥棒にゴールドを盗まれた!
server: nodata  14 データを取得できませんでした。
search: name-e  15 ユーザー名が無効です!
load error      16 データが破損しています!
chat            17 新しいチャットがあります!
many requests   18 リクエストが多すぎます!
update          19 この機能はまだ未実装です!
server_error    20 通信中にエラーが発生しました!
creative        21 クリエイティブでは使えません!
cooldown        22 クールダウン中です。

標準mod一覧

keepcost 維持費を無効にする。

SBAPIを拡張する、関数機能について
SBAPIには、SBAPI自身を拡張できる機能が存在します。
↓の画像の関数名と書かれたところに処理を加えて見てください。

このようにしてみます。

すると、適当なメソッドで(function以外の)関数名と言う命令を出したら、[(あなたの名前は何ですか?)と聞いて待つ]が実行されました。このような感じで様々な機能を拡張出来るのが関数機能です!

SBAPIplusについて
↓を見てください。
https://note.com/metaroro/n/n012d5ff9dd35


SBAPIが使用されているMODの紹介

SBAPIのpostに依存した、コマンド強化modです。 by dmmo-com-jp

SBAPIを搭載しているremixを紹介

隕石!! by banana_877_


この記事が気に入ったらサポートをしてみませんか?