スクリプト開発
の編集
Top
/ スクリプト開発
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
%doctored_article_title%
Addon/MenuBar
Addon128
Addon128/Aircrafts
Addon128/Aircrafts 2
Addon128/Buildings01
Addon128/Buildings02
Addon128/Buildings03
Addon128/Buildings04
Addon128/Buildings05
Addon128/Citycars 1
Addon128/HalfSlope/MonorailTools 1
Addon128/HalfSlope/Others
Addon128/HalfSlope/RailTools 1
Addon128/HalfSlope/RailTools 2
Addon128/HalfSlope/RoadTools 1
Addon128/Monorail1
Addon128/MonorailTools 1
Addon128/Others
Addon128/RailTools 1
Addon128/RailTools 2
Addon128/RailTools 3
Addon128/RoadTools 1
Addon128/Ships
Addon128/Train 1
Addon128/Train 2
Addon128/Train 3
Addon128/Train 4
Addon128/Train 5
Addon128/Train 6
Addon128/Train 7
Addon128/Train 8
Addon128/Train 9
Addon128/Train10
Addon128/Train11
Addon128/Train12
Addon128/Train13
Addon128/Train14
Addon128/Train15
Addon128/Train16
Addon128/Train17
Addon128/Train18
Addon128/Train19
Addon128/Train20
Addon128/Train21
Addon128/Train22
Addon128/Train23
Addon128/Train24
Addon128/Train25
Addon128/Train26
Addon128/Train27
Addon128/Train28
Addon128/Train29
Addon128/Trucks
Addon128/Trucks2
Addon128Japan
Addon128Japan/MenuBar
Addon128Japan/Others
Addon128Japan/Ships
Addon128Japan/Ships/Cargo/NonInternational
Addon128Japan/Ships/Cargo/OceanGoing
Addon128Japan/Ships/Others
Addon128Japan/Ships/Passenger/Coasting
Addon128Japan/Ships/Passenger/HighspeedCrafts
Addon128Japan/Ships/Passenger/OceanGoing
Addon128Japan/Ships/Passenger/SmoothWater
Addon128Japan/Train 1
Addon128Japan/Train 2
Addon128Japan/Train 3
Addon128Japan/Train 4
Addon128Japan/Train Index
Addon128Japan/TrainIndexNew
Addon128Japan/TransportTools
Addon128Japan/header
Addon128Japan/アドオン投稿報告
Addon128Japan/貨車
Addon128Japan/機関車
Addon128Japan/気動車
Addon128Japan/客車
Addon128Japan/旧型国電
Addon128Japan/近郊形電車
Addon128Japan/新幹線
Addon128Japan/大手私鉄
Addon128Japan/第三セクター他
Addon128Japan/地下鉄
Addon128Japan/地方私鉄
Addon128Japan/通勤形電車
Addon128Japan/特急形電車
Addons
Addons/128
Addons/128/Trains_01
Addons/128/Trains_02
Addons/128/Trains_03
Addons/128/Trains_04
Addons/128/Trains_05
Addons/128/Trains_10
Addons/128/Trains_20
Addons/128/Trains_21
Addons/128/Trains_22
Addons/128/Trains_23
Addons/128/Trains_24
Addons/128/Trains_30
Addons/128/Trains_31
Addons/64
Addons/64/Trains_01
Addons/64/Trains_02
Addons/64/Trains_03
Addons/64/Trains_04
Addons/64/Trains_05
Addons/64/Trains_10
Addons/64/Trains_20
Addons/64/Trains_21
Addons/64/Trains_22
Addons/64/Trains_23
Addons/64/Trains_24
Addons/64/Trains_30
Addons/64/Trains_31
Addons/List
Addons/List2
BracketName
Classic
Classic/FAQ
Classic/Install
Classic/JapaneseTranslation
FAQ
FormatRule
FormattingRules
FrontPage
Help
Infomation
Install
InterWiki
InterWikiName
InterWikiテクニカル
MenuBar
Pakセット
Simutransとは
Simutransの歴史
Site_Map
Tools
Tools/Tools01
WikiEngines
WikiName
WikiWikiWeb
frontpage
pak・アドオンインストール
pak・アドオンインストール/iOS版にアドオンを追加する場合
simutrans extended
simutrans extended/Pakセット
simutrans extended/アドオン
simutrans extended/アドオン開発
simutrans extended/アドオン開発/datファイル記述リファレンス/factory(産業)
simutrans extended/アドオン開発/datファイル記述リファレンス/vehicle(乗り物)
simutrans extended/アドオン開発/datファイル記述リファレンス/way(道)
★Addon 新ー事業社別アドオン逆引き集
このサイトについて
よくある質問
アドオン
アドオン/MenuBar
アドオン/monorail
アドオン/railtool
アドオン/railtool2
アドオン/その他
アドオン/街の車
アドオン/緩急坂/その他
アドオン/緩急坂/モノレール
アドオン/緩急坂/鉄道関連 1
アドオン/緩急坂/鉄道関連_2
アドオン/緩急坂/道路関連 1
アドオン/緩急坂/道路関連 2
アドオン/建物1
アドオン/建物2
アドオン/建物3
アドオン/建物4
アドオン/建物5
アドオン/交通施設 2
アドオン/航路ツール
アドオン/自動車
アドオン/自動車2
アドオン/船
アドオン/船2
アドオン/飛行機
アドオン/問題報告
アドオン/問題報告/過去のコメント
アドオン/問題報告/過去のコメント/1
アドオン/列車1
アドオン/列車10
アドオン/列車11
アドオン/列車12
アドオン/列車13
アドオン/列車14
アドオン/列車15
アドオン/列車16
アドオン/列車17
アドオン/列車18
アドオン/列車19
アドオン/列車2
アドオン/列車20
アドオン/列車21
アドオン/列車22
アドオン/列車3
アドオン/列車4
アドオン/列車5
アドオン/列車6
アドオン/列車7
アドオン/列車8
アドオン/列車9
アドオンインストール
アドオン開発
アドオン開発/Makeobj
アドオン開発/datファイル記述リファレンス
アドオン開発/datファイル記述リファレンス/bridge(橋)
アドオン開発/datファイル記述リファレンス/building(建築物)
アドオン開発/datファイル記述リファレンス/building(建築物)2
アドオン開発/datファイル記述リファレンス/citycar(自動車)
アドオン開発/datファイル記述リファレンス/crossing(交差)
アドオン開発/datファイル記述リファレンス/factory(産業)
アドオン開発/datファイル記述リファレンス/goods(貨物)
アドオン開発/datファイル記述リファレンス/ground_obj
アドオン開発/datファイル記述リファレンス/misc(各種)
アドオン開発/datファイル記述リファレンス/pedestrian(通行人)
アドオン開発/datファイル記述リファレンス/roadsign(道路標識)
アドオン開発/datファイル記述リファレンス/tree(木)
アドオン開発/datファイル記述リファレンス/tunnel(トンネル)
アドオン開発/datファイル記述リファレンス/vehicle(乗り物)
アドオン開発/datファイル記述リファレンス/way(道)
アドオン開発/datファイル記述リファレンス/way-object
アドオン開発/アドオンの作り方
アドオン開発/ツール解説
アドオン開発/フリー素材
アドオン開発/画像
アドオン開発/画像/参考技術
アドオン開発/画像/指定の仕方
インストール
サイトマップ
スクリーンショット
スクリーンショット/128
スクリーンショット/64
スクリプト開発
スクリプト開発/Tips集
スレッドのまとめ
チュートリアル
チュートリアル/pak128で始める旅客輸送
チュートリアル/ゲームのルール
チュートリアル/ゲームの開始と終了
チュートリアル/スケジュールと路線
チュートリアル/スケジュールと路線/時刻表について
チュートリアル/デッドロック対応方法
チュートリアル/トンネル
チュートリアル/駅やバス停等の建設
チュートリアル/貨物輸送入門
チュートリアル/緩急接続の仕方
チュートリアル/緩急接続の仕方2
チュートリアル/既存路線の編成を変更する方法
チュートリアル/橋のかけ方
チュートリアル/空港の建設方法
チュートリアル/公共事業の活用
チュートリアル/市域(city limit)について
チュートリアル/初心者のためのSimutrans経営マニュアル
チュートリアル/信号入門
チュートリアル/信号入門/102.2.2
チュートリアル/信号入門/応用1
チュートリアル/信号入門/複線での列車追い越し方法
チュートリアル/信号入門88
チュートリアル/信号入門89
チュートリアル/信号入門99
チュートリアル/信号配置と配線のテクニック
チュートリアル/折り返し・分岐の諸技
チュートリアル/線路や道路等の建設
チュートリアル/他社との乗換駅・直通運転
チュートリアル/他社との乗換駅を作る方法
チュートリアル/大きな駅の配線について
チュートリアル/電化と非電化
チュートリアル/電力入門(111.1)
チュートリアル/複層高架の建設方法
チュートリアル/便利なショートカットキー
チュートリアル/輸送方法いろいろ
チュートリアル/郵便入門
チュートリアル/旅客輸送指南
ヘルプ
マップ
メモ
メモ/pak64産業施設
メモ/trick
メモ/その他各種Tips
メモ/アドオン(pak64)索引
メモ/ショートカットの作り方
メモ/ネットワークゲーム
メモ/ネットワークゲーム/Nettool
メモ/マップ一覧/Size256 No.000〜099
メモ/マルチプレイ
メモ/貨物輸送に関するあれこれ
メモ/産業施設一覧
メモ/他社間の鉄道の乗り入れの仕方
メモ/段差のある駅を作る方法
メモ/儲ける方法いろいろ
リンク
画面説明
画面説明/ゲームオプション
画面説明/スケジュール・路線
画面説明/スタート
画面説明/スロープツール
画面説明/ツールバーとウィンドウ
画面説明/マップ編集ツール
画面説明/ミニマップ
画面説明/メッセージ表
画面説明/モノレール/リニアツール
画面説明/ロード・セーブ
画面説明/一覧表
画面説明/航空機ツール
画面説明/財務
画面説明/市電/軽便鉄道ツール
画面説明/車庫
画面説明/船舶ツール
画面説明/調査ツール
画面説明/鉄道ツール
画面説明/道路ツール
画面説明/特別建築物
画面説明/路線編集
開発
開発/ビルド方法
開発/派生版
各Pakセットの解説(Extended)
簡易掲示板
簡易掲示板/アドオンの改造・公開の確認用スレッド
簡易掲示板/運営チームへ
簡易掲示板/質問
簡易掲示板/質問/1
企画
資料
資料/128版コストデータファイル
資料/貨物一覧
資料/乗り物一覧
資料/乗り物一覧/トラック
資料/乗り物一覧/バス
資料/乗り物一覧/フェリー
資料/乗り物一覧/モノレール
資料/乗り物一覧/貨車
資料/乗り物一覧/機関車
資料/乗り物一覧/航空機
資料/乗り物一覧/船舶
資料/乗り物一覧/旅客車
資料/乗り物一覧/路面電車
資料/名所旧跡一覧
新しい産業を作ろう!@64
新しい産業を作ろう!@64/コメント
新しい産業を作ろう!@64/コメント/1
整形ルール
設定ファイル
設定ファイル/cityrules.tab
設定ファイル/menuconf.tab
設定ファイル/simuconf.tab
設定ファイル/シナリオ
設定ファイル/高度な設定
鉄道路線、輸送力増強ガイド
日本語(漢字)化プロジェクト
日本語化ファイル
日本語化ファイル/ja.tab編集方法
日本語化ファイル/旧ファイル倉庫
用語集
#contents * はじめに [#i8ee35b9] &imgfolder(16/world_go.png); [[Simutrans-Squirrel-APIリファレンス>http://dwachs.github.io/simutrans-sqapi-doc/]] Simutransでは,Squirrel(すくわーる)というスクリプト言語を用いてAIプレイヤー,シナリオ,ツールを記述することができます. Squirrelの言語仕様については以下が参考になります. &imgfolder(16/world_go.png); [[Squirrel本家>http://www.squirrel-lang.org/]] &imgfolder(16/world_go.png); [[Squirrel 3.0 Reference Manual>http://www.squirrel-lang.org/doc/squirrel3.html]] (Squirrel本家) &imgfolder(16/world_go.png); [[Squirrel 2.1 リファレンスマニュアル>http://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc]] * AIプレイヤー [#s74f7f35] &imgfolder(16/world_go.png); [[AI interface>http://dwachs.github.io/simutrans-sqapi-doc/group__ai__skel.html]] * シナリオ [#s19b9901] [[設定ファイル/シナリオ]]を参照してください. * ツール [#m6886100] **[プレイヤー向け] スクリプトツールの導入のしかた [#l492526b] この節は非開発者向けにスクリプトツールの導入方法を説明するものです. ***準備(初回のみ) [#jb73de96] +実行ファイルがあるディレクトリから見て,script/tool_base.nutがあることを確認する.(古いバージョンからの継ぎ足し環境では存在しないことがあります.) +pak/config/menuconf.tabで,dialog_tool[34]にキーを割り当てる.例えば,「dialog_tool[34]=,O」と追記する.(一部のメニューバーでは既に設定されています.) ***配布されているツールの導入方法 [#hefcfdf2] +配布されているツールをダウンロードし,zipを解凍します. +解凍してできたフォルダまるごと, pak/tools/ に配置します. ツールの配置は,Simutrans本体を再起動しなくても反映されます. ** 呼び出しかた [#q7ec6505] スクリプトツールの動作には,simutrans/script/にtool_base.nutが必要です.[[standard 122.0>https://sourceforge.net/projects/simutrans/files/simutrans/122-0/]]以降に同梱されています.[[ココ>https://raw.githubusercontent.com/aburch/simutrans/master/simutrans/script/tool_base.nut]]から単体でダウンロードすることもできます. スクリプトツールは,以下2通りの呼び方で呼び出せます. - dialog_tool[34](スクリプトツールの読込)を使う ... pakXXX/tool/下にあるスクリプトツールの一覧が表示されます.アイコンやmenuconfの設定がされていないツールも呼び出し可能です. - メニューバーでアイコンを選択する ... 予めdescription.tabでアイコンを設定し,menuconfの設定が必要です. ** 必要なファイル [#n9c8e55c] スクリプトツールには,以下の2つのファイルが必要です. - tool.nut ... Squirrelコード本体 - description.tab ... 設定ファイル(plain text) ツールの名前を「my_tool」とするとき,2つのファイルはともに, pak-something/tool/mytool/ に配置します. toolディレクトリにはpakファイルは配置できません.pakファイルを配置できるのは pak-something/ ディレクトリ直下のみです. ** description.tab [#g7214b1a] description.tabは,ツールのタイトルやタイプなどを定義するtabファイルです. |RIGHT:~title|Name of tool to be shown in tool selection dialog| |RIGHT:~type|one_click or two_click| |RIGHT:~tooltip|ツールバーのアイコンに表示される説明文| |RIGHT:~restart|0のとき,メニューバーから呼び出されたツールの場合はツールを終了しても変数の状態が保持されます.dialog_tool[34]から呼び出された場合はこの値に関わらず毎回変数の状態がリセットされます.| |RIGHT:~menu|アイコンをツールバーに表示させるための,menuconf.tabで定義されたキー| |RIGHT:~icon|Name of cursor object (loaded from some pak-file), used images: 0 = cursor, 1 = icon, 2 = marker image| |RIGHT:~cursor_area|カーソルサイズ(x,y).サイズは(1,1)以上. r9506以降.| |RIGHT:~cursor_offset|カーソル中心のオフセット(x,y).r9506以降.| description.tabの例(=の前後に空白文字がないことに注意) title=my_tool type=one_click tooltip=A scripting tool for testing restart=0 menu=my-tools icon=one_click_test cursor_area=3,4 cursor_offset=1,2 この場合,menuconf.tabで toolbar[X][Y]=scripts(my-tools) (X,Yは適当な数字)のように,menuパラメータの値を指定することでツールバーにスクリプトツールを表示させることができます.スクリプトツールをメニューバーに出すにはiconを正しく指定することが必要です. icon=one_click_test となっているので,pak-something/直下のcursor.one_click_test.pakがアイコン・カーソル画像のpakとして使われます. *** menu項目の命名規則 [#ofd8c8fb] ''&color(#ff0000){以下の命名規則は、nightly版r9534及びOTRPv29_4以降に限り正常に表示されます。122.0及びOTRPv29_3以前では、menu項目に")"が含まれているとメニューバーにアイコンが表示されないため、以下の命名規則では正常に表示されません。};''~ description.tabのmenu項目は,ツールバー定義に基づいて指定してください. 例えば,地上線路を建設するスクリプトであれば,地上線路アドオンの付近にアドオンを表示したいので, menu=ways(2,0) と記述してください. 鉄道用駅舎を建設するスクリプトであれば, menu=buildings(34,2) となるでしょう. スロープツールに関連したスクリプトは, menu=slope を用いてください. ツールバー定義の書式は, [[設定ファイル/menuconf.tab#q56b1334]]にあります. scriptツール対応のmenuconf.tabを作るときは,各ツールバー定義に対応したスクリプトツールの配置を定義してください.例えば,道路アドオンのツールバーでは,下のように,アドオン属性に対応したscript配置を定義します. toolbar[3][0]=general_tool[17],27,q,1 #Remove Way toolbar[3][1]=ways(1,0) toolbar[3][2]=scripts(ways(1,0)) toolbar[3][3]=ways(1,1) toolbar[3][4]=scripts(ways(1,1)) toolbar[3][5]=general_tool[14],,s,1 スロープツールのツールバーでは,下のように記述してスクリプトを呼び出してください. toolbar[1][0]=scripts(slope) ** tool.nut [#mf7c696e] &imgfolder(16/world_go.png); [[Tool interface>http://dwachs.github.io/simutrans-sqapi-doc/group__tool__skel.html]] &imgfolder(16/world_go.png); [[Tool only functions>http://dwachs.github.io/simutrans-sqapi-doc/group__tool__only.html]] 1クリックツールの場合は -bool init (player_x pl) ... ツール起動時に呼ばれる関数 -bool exit (player_x pl) ... ツール終了時に呼ばれる関数 -string work (player_x pl, coord3d pos) ... クリックされたときに呼ばれる関数 2クリックツールの場合は -bool init (player_x pl) -bool exit (player_x pl) -string do_work (player_x pl, coord3d start, coord3d end) -void mark_tiles (player_x pl, coord3d start, coord3d end) -void is_valid_pos (player_x pl, coord3d pos, coord3d start) を実装します. 一部の関数のみ記述した場合でも動作しますが,ユーザーのsimutrans実行ディレクトリ下にscript/tool_base.nutが配置されていることが必要です. **その他Tips [#l8898588] スクリプトツールは,ネットワークゲームにおけるpak一致検査の対象外です.ネットワークゲームでもプレイヤーは自由にスクリプトを追加し,実行することができます. スクリプトツールまでの&color(#ff0000){パスに全角文字が入っていると動かない};可能性があるので注意してください。 その他のコーディング上のノウハウについては[[スクリプト開発/Tips集]]を参照してください. *ツールの試作品を貼るコーナー [#q6664af6] ''&color(#ff0000){スクリプトツールの動作には,simutrans/script/にtool_base.nutが配置されていることが必要です.};''~ tool_base.nutは,standard 122.0以降に同梱されています.[[ココ>https://raw.githubusercontent.com/aburch/simutrans/master/simutrans/script/tool_base.nut]]から単体でダウンロードすることもできます. nighlty r10077で更新されています。継ぎ足し環境の場合、r10077以降の環境で使用する際は更新が必要です。 |[Type]Title/題名|Author/作者|Date/投稿日|h |Thumbnail/画像|Game Versions/対応Ver.|Download/ダウンロード|h |>|>|Comment/コメント|h |~海面浅くするクン|ひめし|2021/10/3 第三版に更新| |&ref(make_sea_shallow_tmb.png,nolink);|122.0〜|&ref(make_sea_shallow.zip);| |>|>|海の深さを浅くして高架などを建てられるようにするスクリプトです.&br;スクリプト対応のmenuconf.tabを導入している場合,スロープツールとしてアイコンが表示されます.| |~ワンクリックでタービン型JCT|ひめし|2020/10/25| |&ref(turbine_jct_tmb.png,nolink);|122.0〜|&ref(turbine_jct.zip);| |>|>|ワンクリックで26x22マスのタービン型JCTを建設するスクリプトです.&br;tool.nutの8行目,9行目で,地上道路と高架道路のアドオン名を指定してから使用してください.| |~ひめしツールキット|ひめし|2021/4/14 v3に更新| |&ref(tmb_hm_toolkit.png,nolink);|122.0〜|[[ダウンロードページ:https://github.com/teamhimeh/hm_toolkit/releases]];| |>|>|線路や駅舎などをワンクリックで建設するツールを簡単に書けるようにしたライブラリです.| |~らくらく景観線路|ひめし|2020/11/17| |&ref(tmb_rakuraku_keikan.png,nolink);|122.0〜|[[ダウンロードページ:https://simutrans.sakura.ne.jp/portal/articles/rakuraku_keikan_senro]]| |>|>|線路のFront / Backを手動で切り替えることなく上の画像のように景観線路を建設できるツールです.| |~ワンクリック国鉄型配線|きたすみなるみん|2020/11/28| |&ref(scr_KSN-script_JNR-style-station_set01.png,nolink);|122.01〜|&ref(KSN-script_JNR-style-station_set01(v10).zip);| |>|>|国鉄型配線をワンクリックで建設するスクリプトです。&br;本スクリプトは ひめしツールキット v1 を使用して作成しております。ひめし様に感謝申し上げます。| |~トンネル入口スロープツール|下市|2020/12/05&br;2021/12/23 更新| |&ref(tunnel_entrance_slope.png,nolink);|122.0〜&br;OTRPv30.1〜|[[tunnel_entrance_slope_v4.1:https://github.com/KU-TANS/tunnel_entrance_slope/releases/download/v4.1/tunnel_entrance_slope_v4.1.zip]]&br;[[tunnel_entrance_slope_v5.0:https://github.com/KU-TANS/tunnel_entrance_slope/releases/download/v5.0/tunnel_entrance_slope_v5.0.zip]]| |>|>|tile_height=8のpakset(pak.nipponなど)で平行な地平からトンネル接続に必要なスロープを作るスクリプトです。&br;v5以降はnightly版かOTRPv30.1以降のみ実行可能です。各自の環境に合わせて選択してください。| |~人口らくらく増やすくん|下市|2020/12/05&br;2021/07/26 v2.1に更新| |&ref(./increase_population.jpg,nolink,450x275);|122.0〜|[[increase_population:https://github.com/KU-TANS/increase_population/releases/download/v2.1/increase_population.zip]]| |>|>|ワンクリックで指定した人口まで増やします。&br;v2.0から人口の指定方法が変更されています。詳しくはreadmeをご確認ください。| |~ワンクリック駅アプローチ配線セット(分岐方向指定タイプ景観線路用)|きたすみなるみん|2021/01/28&br;最終更新 2021/03/06| |&ref(scr_KSN-script_STA-ENT-forETrail_set001.png,nolink);|122.01〜|&ref(KSN-script_STA-ENT-forETrail_set001_v10.zip);| |>|>|駅前後の配線をワンクリックで建設するスクリプトです。景観線路各種にも対応します。&br;本スクリプトは ひめしツールキット v2 を使用して作成しております。ひめし様に感謝申し上げます。| |~駅統計取得ツール|大和階梯|最終更新 2021/05/23| |&ref(station_statistics_thumbnail.png,nolink);|OTRP29.5〜/122.0〜|&ref(駅統計取得ツール.zip,nolink);| |>|>|マップ内の駅の乗降客者数ランキング等の各種統計情報を取得します。テキストファイル出力機能はOTRP29.5〜のみ対応です。詳しくはreadmeをご覧ください。| * AIプレーヤー [#ge2728e6] |[Type]Title/題名|Author/作者|Date/投稿日|h |Thumbnail/画像|Game Versions/対応Ver.|Download/ダウンロード|h |>|>|Comment/コメント|h |~AIプレーヤー α版|koa|2022/05/12| |画像なし|123.0.1~|&ref(sqai_koa.zip);| |>|>|デフォのAIは2都市間の路線しか作らない、公共駅があっても使わないなどの&br;問題があります.そこで、このAIプレーヤーは以下の特徴を持たせました.&br;&br;・複数都市を一度に結ぶ路線を作成&br;・公共駅があれば、積極的に活用&br;・タイル上の隣接駅が公共駅になれば、自バス停も公共化&br;・経営が順調なら町を誘致&br;&br;現時点でバスしか動かすことができません.&br;また、α版ですのでバグも多いです.&br;バグ報告は日本語フォーラムを使用ください. |
#contents * はじめに [#i8ee35b9] &imgfolder(16/world_go.png); [[Simutrans-Squirrel-APIリファレンス>http://dwachs.github.io/simutrans-sqapi-doc/]] Simutransでは,Squirrel(すくわーる)というスクリプト言語を用いてAIプレイヤー,シナリオ,ツールを記述することができます. Squirrelの言語仕様については以下が参考になります. &imgfolder(16/world_go.png); [[Squirrel本家>http://www.squirrel-lang.org/]] &imgfolder(16/world_go.png); [[Squirrel 3.0 Reference Manual>http://www.squirrel-lang.org/doc/squirrel3.html]] (Squirrel本家) &imgfolder(16/world_go.png); [[Squirrel 2.1 リファレンスマニュアル>http://wikiwiki.jp/lua/?Squirrel_Lang%2Ftoc]] * AIプレイヤー [#s74f7f35] &imgfolder(16/world_go.png); [[AI interface>http://dwachs.github.io/simutrans-sqapi-doc/group__ai__skel.html]] * シナリオ [#s19b9901] [[設定ファイル/シナリオ]]を参照してください. * ツール [#m6886100] **[プレイヤー向け] スクリプトツールの導入のしかた [#l492526b] この節は非開発者向けにスクリプトツールの導入方法を説明するものです. ***準備(初回のみ) [#jb73de96] +実行ファイルがあるディレクトリから見て,script/tool_base.nutがあることを確認する.(古いバージョンからの継ぎ足し環境では存在しないことがあります.) +pak/config/menuconf.tabで,dialog_tool[34]にキーを割り当てる.例えば,「dialog_tool[34]=,O」と追記する.(一部のメニューバーでは既に設定されています.) ***配布されているツールの導入方法 [#hefcfdf2] +配布されているツールをダウンロードし,zipを解凍します. +解凍してできたフォルダまるごと, pak/tools/ に配置します. ツールの配置は,Simutrans本体を再起動しなくても反映されます. ** 呼び出しかた [#q7ec6505] スクリプトツールの動作には,simutrans/script/にtool_base.nutが必要です.[[standard 122.0>https://sourceforge.net/projects/simutrans/files/simutrans/122-0/]]以降に同梱されています.[[ココ>https://raw.githubusercontent.com/aburch/simutrans/master/simutrans/script/tool_base.nut]]から単体でダウンロードすることもできます. スクリプトツールは,以下2通りの呼び方で呼び出せます. - dialog_tool[34](スクリプトツールの読込)を使う ... pakXXX/tool/下にあるスクリプトツールの一覧が表示されます.アイコンやmenuconfの設定がされていないツールも呼び出し可能です. - メニューバーでアイコンを選択する ... 予めdescription.tabでアイコンを設定し,menuconfの設定が必要です. ** 必要なファイル [#n9c8e55c] スクリプトツールには,以下の2つのファイルが必要です. - tool.nut ... Squirrelコード本体 - description.tab ... 設定ファイル(plain text) ツールの名前を「my_tool」とするとき,2つのファイルはともに, pak-something/tool/mytool/ に配置します. toolディレクトリにはpakファイルは配置できません.pakファイルを配置できるのは pak-something/ ディレクトリ直下のみです. ** description.tab [#g7214b1a] description.tabは,ツールのタイトルやタイプなどを定義するtabファイルです. |RIGHT:~title|Name of tool to be shown in tool selection dialog| |RIGHT:~type|one_click or two_click| |RIGHT:~tooltip|ツールバーのアイコンに表示される説明文| |RIGHT:~restart|0のとき,メニューバーから呼び出されたツールの場合はツールを終了しても変数の状態が保持されます.dialog_tool[34]から呼び出された場合はこの値に関わらず毎回変数の状態がリセットされます.| |RIGHT:~menu|アイコンをツールバーに表示させるための,menuconf.tabで定義されたキー| |RIGHT:~icon|Name of cursor object (loaded from some pak-file), used images: 0 = cursor, 1 = icon, 2 = marker image| |RIGHT:~cursor_area|カーソルサイズ(x,y).サイズは(1,1)以上. r9506以降.| |RIGHT:~cursor_offset|カーソル中心のオフセット(x,y).r9506以降.| description.tabの例(=の前後に空白文字がないことに注意) title=my_tool type=one_click tooltip=A scripting tool for testing restart=0 menu=my-tools icon=one_click_test cursor_area=3,4 cursor_offset=1,2 この場合,menuconf.tabで toolbar[X][Y]=scripts(my-tools) (X,Yは適当な数字)のように,menuパラメータの値を指定することでツールバーにスクリプトツールを表示させることができます.スクリプトツールをメニューバーに出すにはiconを正しく指定することが必要です. icon=one_click_test となっているので,pak-something/直下のcursor.one_click_test.pakがアイコン・カーソル画像のpakとして使われます. *** menu項目の命名規則 [#ofd8c8fb] ''&color(#ff0000){以下の命名規則は、nightly版r9534及びOTRPv29_4以降に限り正常に表示されます。122.0及びOTRPv29_3以前では、menu項目に")"が含まれているとメニューバーにアイコンが表示されないため、以下の命名規則では正常に表示されません。};''~ description.tabのmenu項目は,ツールバー定義に基づいて指定してください. 例えば,地上線路を建設するスクリプトであれば,地上線路アドオンの付近にアドオンを表示したいので, menu=ways(2,0) と記述してください. 鉄道用駅舎を建設するスクリプトであれば, menu=buildings(34,2) となるでしょう. スロープツールに関連したスクリプトは, menu=slope を用いてください. ツールバー定義の書式は, [[設定ファイル/menuconf.tab#q56b1334]]にあります. scriptツール対応のmenuconf.tabを作るときは,各ツールバー定義に対応したスクリプトツールの配置を定義してください.例えば,道路アドオンのツールバーでは,下のように,アドオン属性に対応したscript配置を定義します. toolbar[3][0]=general_tool[17],27,q,1 #Remove Way toolbar[3][1]=ways(1,0) toolbar[3][2]=scripts(ways(1,0)) toolbar[3][3]=ways(1,1) toolbar[3][4]=scripts(ways(1,1)) toolbar[3][5]=general_tool[14],,s,1 スロープツールのツールバーでは,下のように記述してスクリプトを呼び出してください. toolbar[1][0]=scripts(slope) ** tool.nut [#mf7c696e] &imgfolder(16/world_go.png); [[Tool interface>http://dwachs.github.io/simutrans-sqapi-doc/group__tool__skel.html]] &imgfolder(16/world_go.png); [[Tool only functions>http://dwachs.github.io/simutrans-sqapi-doc/group__tool__only.html]] 1クリックツールの場合は -bool init (player_x pl) ... ツール起動時に呼ばれる関数 -bool exit (player_x pl) ... ツール終了時に呼ばれる関数 -string work (player_x pl, coord3d pos) ... クリックされたときに呼ばれる関数 2クリックツールの場合は -bool init (player_x pl) -bool exit (player_x pl) -string do_work (player_x pl, coord3d start, coord3d end) -void mark_tiles (player_x pl, coord3d start, coord3d end) -void is_valid_pos (player_x pl, coord3d pos, coord3d start) を実装します. 一部の関数のみ記述した場合でも動作しますが,ユーザーのsimutrans実行ディレクトリ下にscript/tool_base.nutが配置されていることが必要です. **その他Tips [#l8898588] スクリプトツールは,ネットワークゲームにおけるpak一致検査の対象外です.ネットワークゲームでもプレイヤーは自由にスクリプトを追加し,実行することができます. スクリプトツールまでの&color(#ff0000){パスに全角文字が入っていると動かない};可能性があるので注意してください。 その他のコーディング上のノウハウについては[[スクリプト開発/Tips集]]を参照してください. *ツールの試作品を貼るコーナー [#q6664af6] ''&color(#ff0000){スクリプトツールの動作には,simutrans/script/にtool_base.nutが配置されていることが必要です.};''~ tool_base.nutは,standard 122.0以降に同梱されています.[[ココ>https://raw.githubusercontent.com/aburch/simutrans/master/simutrans/script/tool_base.nut]]から単体でダウンロードすることもできます. nighlty r10077で更新されています。継ぎ足し環境の場合、r10077以降の環境で使用する際は更新が必要です。 |[Type]Title/題名|Author/作者|Date/投稿日|h |Thumbnail/画像|Game Versions/対応Ver.|Download/ダウンロード|h |>|>|Comment/コメント|h |~海面浅くするクン|ひめし|2021/10/3 第三版に更新| |&ref(make_sea_shallow_tmb.png,nolink);|122.0〜|&ref(make_sea_shallow.zip);| |>|>|海の深さを浅くして高架などを建てられるようにするスクリプトです.&br;スクリプト対応のmenuconf.tabを導入している場合,スロープツールとしてアイコンが表示されます.| |~ワンクリックでタービン型JCT|ひめし|2020/10/25| |&ref(turbine_jct_tmb.png,nolink);|122.0〜|&ref(turbine_jct.zip);| |>|>|ワンクリックで26x22マスのタービン型JCTを建設するスクリプトです.&br;tool.nutの8行目,9行目で,地上道路と高架道路のアドオン名を指定してから使用してください.| |~ひめしツールキット|ひめし|2021/4/14 v3に更新| |&ref(tmb_hm_toolkit.png,nolink);|122.0〜|[[ダウンロードページ:https://github.com/teamhimeh/hm_toolkit/releases]];| |>|>|線路や駅舎などをワンクリックで建設するツールを簡単に書けるようにしたライブラリです.| |~らくらく景観線路|ひめし|2020/11/17| |&ref(tmb_rakuraku_keikan.png,nolink);|122.0〜|[[ダウンロードページ:https://simutrans.sakura.ne.jp/portal/articles/rakuraku_keikan_senro]]| |>|>|線路のFront / Backを手動で切り替えることなく上の画像のように景観線路を建設できるツールです.| |~ワンクリック国鉄型配線|きたすみなるみん|2020/11/28| |&ref(scr_KSN-script_JNR-style-station_set01.png,nolink);|122.01〜|&ref(KSN-script_JNR-style-station_set01(v10).zip);| |>|>|国鉄型配線をワンクリックで建設するスクリプトです。&br;本スクリプトは ひめしツールキット v1 を使用して作成しております。ひめし様に感謝申し上げます。| |~トンネル入口スロープツール|下市|2020/12/05&br;2021/12/23 更新| |&ref(tunnel_entrance_slope.png,nolink);|122.0〜&br;OTRPv30.1〜|[[tunnel_entrance_slope_v4.1:https://github.com/KU-TANS/tunnel_entrance_slope/releases/download/v4.1/tunnel_entrance_slope_v4.1.zip]]&br;[[tunnel_entrance_slope_v5.0:https://github.com/KU-TANS/tunnel_entrance_slope/releases/download/v5.0/tunnel_entrance_slope_v5.0.zip]]| |>|>|tile_height=8のpakset(pak.nipponなど)で平行な地平からトンネル接続に必要なスロープを作るスクリプトです。&br;v5以降はnightly版かOTRPv30.1以降のみ実行可能です。各自の環境に合わせて選択してください。| |~人口らくらく増やすくん|下市|2020/12/05&br;2021/07/26 v2.1に更新| |&ref(./increase_population.jpg,nolink,450x275);|122.0〜|[[increase_population:https://github.com/KU-TANS/increase_population/releases/download/v2.1/increase_population.zip]]| |>|>|ワンクリックで指定した人口まで増やします。&br;v2.0から人口の指定方法が変更されています。詳しくはreadmeをご確認ください。| |~ワンクリック駅アプローチ配線セット(分岐方向指定タイプ景観線路用)|きたすみなるみん|2021/01/28&br;最終更新 2021/03/06| |&ref(scr_KSN-script_STA-ENT-forETrail_set001.png,nolink);|122.01〜|&ref(KSN-script_STA-ENT-forETrail_set001_v10.zip);| |>|>|駅前後の配線をワンクリックで建設するスクリプトです。景観線路各種にも対応します。&br;本スクリプトは ひめしツールキット v2 を使用して作成しております。ひめし様に感謝申し上げます。| |~駅統計取得ツール|大和階梯|最終更新 2021/05/23| |&ref(station_statistics_thumbnail.png,nolink);|OTRP29.5〜/122.0〜|&ref(駅統計取得ツール.zip,nolink);| |>|>|マップ内の駅の乗降客者数ランキング等の各種統計情報を取得します。テキストファイル出力機能はOTRP29.5〜のみ対応です。詳しくはreadmeをご覧ください。| * AIプレーヤー [#ge2728e6] |[Type]Title/題名|Author/作者|Date/投稿日|h |Thumbnail/画像|Game Versions/対応Ver.|Download/ダウンロード|h |>|>|Comment/コメント|h |~AIプレーヤー α版|koa|2022/05/12| |画像なし|123.0.1~|&ref(sqai_koa.zip);| |>|>|デフォのAIは2都市間の路線しか作らない、公共駅があっても使わないなどの&br;問題があります.そこで、このAIプレーヤーは以下の特徴を持たせました.&br;&br;・複数都市を一度に結ぶ路線を作成&br;・公共駅があれば、積極的に活用&br;・タイル上の隣接駅が公共駅になれば、自バス停も公共化&br;・経営が順調なら町を誘致&br;&br;現時点でバスしか動かすことができません.&br;また、α版ですのでバグも多いです.&br;バグ報告は日本語フォーラムを使用ください. |
テキスト整形のルールを表示する(編集中のテキストは失われます)