atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
erayasai @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
erayasai @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
erayasai @ ウィキ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • erayasai @ ウィキ
  • Emueraバリアント用サンプルコード集

Emueraバリアント用サンプルコード集

最終更新:2011年11月01日 07:03

匿名ユーザー

- view
だれでも歓迎! 編集
Emueraバリアント用サンプルコード集

 以下にEmueraバリアント向けのサンプルコードを適当に記述してみる。
eramaker用およびeramaker2用およびなでしこ用には使えないので注意せよ。また、以下のコードをコピペする場合には、表示の都合で横タブは必ずコピペ先で入れ直してほしい。(^をそのまま入力したりしたら誤動作する)


  • ランダムによる分岐と文章表示
    • IF分岐によるもの
    • SELECTCASE分岐によるもの
    • PRINTDATAによるもの
  • CFLAG:5001~5999までをクリアする
    • 数式を列記するもの
    • REPEATループを使うもの
    • FORループを使うもの
    • WHILEループを使うもの
    • DOループを使うもの
    • VARSETを使うもの
    • ARRAYREMOVEを使うもの
  • 登録キャラの中から特定のキャラ番号のキャラをサーチする
    • REPEATループを使うもの
    • GETCHARA命令を使うもの
    • GETCHARA関数を使うもの
    • FINDCHARA命令を使うもの
    • FINDCHARA関数を使うもの
  • 処女のときとそうでないときで表示を変えてみる
    • IF分岐を使うもの
    • SELECTCASE分岐を使うもの
    • 三項式を使うもの

ランダムによる分岐と文章表示

 口上や地の文などによく使われるもので、均等ランダムでいずれかの文章(ブロック)を表示させるというもの。

IF分岐によるもの

 速度的にはおそらく一番遅いもののeramaker時代から使用できることもあり、一番分かりやすいかもしれない。
IF RAND:4 = 0
^  PRINTFORML %CALLNAME:MASTER%、こういうのって楽しいよね!
ELSEIF RAND:3 = 0
^  PRINTFORML %CALLNAME:MASTER%のおかげなんだよね?
^  PRINTL とっても楽しいよっ!
ELSEIF RAND:2 = 0
^  PRINTL なんだか、凄く楽しいんだよ!
ELSE
^  PRINTL うわい! 楽しいなあ!
ENDIF

SELECTCASE分岐によるもの

 単純な数値(や文字列)による分岐ならばSELECTCASEの方がコードはすっきりできる。
SELECTCASE RAND:4
^  CASE 0
^  ^  PRINTFORML %CALLNAME:MASTER%、こういうのって楽しいよね!
^  CASE 1
^  ^  PRINTFORML %CALLNAME:MASTER%のおかげなんだよね?
^  ^  PRINTL とっても楽しいよっ!
^  CASE 2
^  ^  PRINTL なんだか、凄く楽しいんだよ!
^  CASEELSE
^  ^  PRINTL うわい! 楽しいなあ!
ENDSELECT

PRINTDATAによるもの

 単にRANDによる表示だけならこいつが一番高速である。
PRINTDATAL
^  DATAFORM %CALLNAME:MASTER%、こういうのって楽しいよね!
^  DATALIST
^  ^  DATAFORM %CALLNAME:MASTER%のおかげなんだよね?
^  ^  DATA とっても楽しいよっ!
^  ENDLIST
^  DATA なんだか、凄く楽しいんだよ!
^  DATA うわい! 楽しいなあ!
ENDDATA
 なお、どれに分岐したのか?を取得する必要がある場合は、上のコードのPRINTDATALを以下にすればいい。
PRINTDATAL LOCAL
 ここで、LOCALには、DATAブロックのうちどれが表示されたのかが数値として代入される。一番上のブロックから順番に1,2,3,4と。


CFLAG:5001~5999までをクリアする

 複数、それも極めて多くのフラグをクリア(0を代入)するというもの。なお、CFLAGはキャラクター変数なので、TARGETが指定されていることが前提である。そうでないとエラーで落ちる。
 なお、事前にTARGETが指定されているかどうかを調べるのは基本的に、TARGETが負の値(たいていは-1)でないことを見ればいいわけだが、バリアントによっては0もしくはそれ以上の特定の数値においてもそうなることがおかしいと思われるケースもありえるので詳しくは当該バリアントをしっかりと見て、その意図を感じ取ってほしい。自作してるならきっちりと定義しておこう。

数式を列記するもの

 eramakerでも使えるシベリア風人海戦術コードである。
CFLAG:5001 = 0
CFLAG:5002 = 0
(中略)
CFLAG:5998 = 0
CFLAG:5999 = 0

REPEATループを使うもの

 eramaker時代から利用可能なものである。
REPEAT 999
^  CFLAG:(5001+COUNT) = 0
REND

FORループを使うもの

 REPEATを使うよりちょっぴり楽である。
FOR COUNT, 5001, 6000
^  CFLAG:COUNT = 0
NEXT

WHILEループを使うもの

 単なるへそ曲がりである。
LOCAL = 999
WHILE LOCAL
^  LOCAL--
^  CFLAG:(5001+LOCAL) = 0
WEND
 なお、LOCAL--とは、デクリメントと呼ばれるものであるが、ここではLOCAL:0変数を-1する処理を行っていると考えてOKである。

DOループを使うもの

 やはり単なるへそ曲がりである。
LOCAL = 999
DO
^  LOCAL--
^  CFLAG:(5001+LOCAL) = 0
LOOP LOCAL

VARSETを使うもの

 ループを回すよりは高速である。VARSETの第2引数が代入すべき値(今回は0である)、第3引数が目的変数のうちVARSETで操作すべき最初の配列要素の数であるし、第4引数が目的変数のうちVARSETで操作すべき最後の配列要素の数に1を加えたものである。すなわち、以下のコードに関してCFLAG:TARGET:6000に0が代入されることはない。
VARSET CFLAG:TARGET:0, 0, 5001, 6000

ARRAYREMOVEを使うもの

 配列そのものをごっそり抹殺する。
ARRAYREMOVE CFLAG, 5001, 999


登録キャラの中から特定のキャラ番号のキャラをサーチする

 ここではキャラ番号3のキャラを探してみる。そーなのかー。なお、キャラ番号3のキャラの位置(登録キャラ番号)を一文字変数A:0に代入しているが、存在しない場合のA:0には-1が代入されているはずである。

REPEATループを使うもの

 eramaker時代からの伝統的手法であるが、手堅い。
A = -1
REPEAT CHARANUM
^  SIF NO:COUNT == 3
^  ^  A = COUNT
REND

GETCHARA命令を使うもの

 GETCHARAを使うとシンプルな表記になる。
GETCHARA 3, 1
A = RESULT:0
 なお、GETCHARAの第2引数は省略可能であるが上の場合の「1」は、非SPとSPキャラの両方をサーチするということである。ちなみに両方存在する場合には非SPキャラの場所を返す。

GETCHARA関数を使うもの

 GETCHARA関数ならばもっとシンプルになるし、RESULT:0を汚さない。
A = GETCHARA(3)

FINDCHARA命令を使うもの

 FINDCHARAだって、NOをサーチできる!
FINDCHARA NO, 3, 0
A = RESULT:0
 なお、FINDCHARAの第3引数はサーチ開始位置を表す。上の場合の「0」は、登録キャラリストのNo.0すなわち先頭(通常はMASTER)からサーチするということである。

FINDCHARA関数を使うもの

 FINDCHARAにも関数形が存在する。
A = FINDCHARA(NO, 3, 0)


処女のときとそうでないときで表示を変えてみる

 なお、以下のを使う場合には必然的に、TARGETが指定されていることが前提である。そうでないとエラーで落ちる。また、TALENT:処女の中身が0ならば非処女、0以外なら処女とし、再生処女とかは考慮しない場合である。
 注意:「TALENT:処女」という表記はEmuera専用である。eramakerお姉さまはそんなわがままは許さないので注意せよ。

IF分岐を使うもの

 eramaker時代からの伝統的な手法だが分かりやすい。
IF TALENT:処女
^  PRINTL 初めてだから…
ELSE
^  PRINTL 初めてでなくても…
ENDIF

SELECTCASE分岐を使うもの

 へそ曲がり?
SELECTCASE TALENT:処女
^  CASE 0
^  ^  PRINTL 初めてでなくても…
^  CASEELSE
^  ^  PRINTL 初めてだから…
ENDSELECT

三項式を使うもの

 みんな大好き三項式です。
PRINTFORML 初めて\@TALENT:処女 ? だから # でなくても\@…
 上のコードにおいて、\というのは実際には円マークを打ち込むことになるだろう。ともかく、三項式はうまく使えばここまでコードを圧縮できるわけであるがあんまり使いすぎると却ってわかりづらくなるかもしれない。コーディングにおいて最重要なのは読みやすいコードを記述することであるが、実際にコーディングしている作者にとって分かりづらいコーディングを自ら行うことは愚の骨頂なのかもしれない。






タグ:

+ タグ編集
  • タグ:
タグの更新に失敗しました
エラーが発生しました。ページを更新してください。
ページを更新
「Emueraバリアント用サンプルコード集」をウィキ内検索
LINE
シェア
Tweet
erayasai @ ウィキ
記事メニュー

メニュー

pass:eratohoIRC
  • トップページ
  • Q&A
  • Q&Q
  • eratoho雑談掲示板 ひっそりと
  • eratoho速報 一時休止中

■ まとめ
├ erayasai推測ページ
├ IRCが元ネタのキャラ
├ IRC外からの輸入キャラ
├ キャラ解説
├ 開発者辞典1
├ 開発者辞典2
├ IRCまとめ
├ IRC用語集
├ 殿堂入り
├ 後生に残すべき名言たち
├ IRCネタSSまとめ
├ erayasai変数一覧
└ 短縮URLについて

■ あそび
├ eraSWR
├ お人形遊び
├ 世紀末野菜麻雀
├ 野菜クロニクル
├ 大いなる混沌の間
├ 戦乙女野菜
├ DJ YASAI
├ 決闘の野菜室
├ 汝は野菜狼なりや?
├ 世界樹産の新鮮な野菜
├ 聖野菜伝説
├ 一人称視点野菜STG
├ 王冠乃野菜
├ お手軽野菜育成あそび
└ 野菜サンド場

■ べんきょう
├ YMキャラ追加について
├ キャラ攻略
├ J用TFLAG一覧メモ
├ J用CFLAG一覧メモ
├ J用FLAG一覧メモ
├ RR用TFLAG一覧メモ
├ ERB開発Tips
├ 衣装について
├ おっぱいについて
└ じゆうけんきゅう

■ 口上
├ eratoho開発・口上相談ch
├ 秘密の企画ページ
├ 秘密の口上テスト
└ 秘密の口上作成力講習会

リンク

  • eratohoまとめ
  • eraシリーズまとめ
  • eraSQWiki
  • eraMegatenWiki
  • erapokeまとめWiki
  • eraheta @ ウィキ
  • eratennis @ ウィキ
  • 野菜Wiki@ECO
era姫騎士は、
プロジェクトを終了しました。

編集履歴

取得中です。



ここを編集
記事メニュー2
人気記事ランキング
  1. IRCまとめ
  2. CSVにおける諸注意
  3. 短縮URLについて
  4. Shu真剣勝負
もっと見る
最近更新されたページ
  • 207日前

    IRCまとめ
  • 819日前

    !erasteamのはなし
  • 1329日前

    後生に残すべき名言たち
  • 1379日前

    メニュー
  • 2496日前

    lunatic
  • 2577日前

    ひみちゅのページ
  • 3054日前

    野菜サンド場
  • 3054日前

    トップページ
  • 3110日前

    開発者辞典
  • 3402日前

    育てられている野菜たちの一覧ページ
もっと見る
人気記事ランキング
  1. IRCまとめ
  2. CSVにおける諸注意
  3. 短縮URLについて
  4. Shu真剣勝負
もっと見る
最近更新されたページ
  • 207日前

    IRCまとめ
  • 819日前

    !erasteamのはなし
  • 1329日前

    後生に残すべき名言たち
  • 1379日前

    メニュー
  • 2496日前

    lunatic
  • 2577日前

    ひみちゅのページ
  • 3054日前

    野菜サンド場
  • 3054日前

    トップページ
  • 3110日前

    開発者辞典
  • 3402日前

    育てられている野菜たちの一覧ページ
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. まどドラ攻略wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ヒカマーWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. AviUtl2のWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  5. 初音ミク Wiki
  6. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 検索してはいけない言葉 @ ウィキ
  8. 発車メロディーwiki
  9. Abiotic Factor 日本語攻略Wiki
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  3. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  4. 無幻銃士ダルタン - モンスター烈伝オレカバトル2@wiki
  5. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  6. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 邪神アラキシュ - モンスター烈伝オレカバトル2@wiki
  8. 女神アルテミス - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  9. オオヘビヌシノミコト - アニヲタWiki(仮)
  10. 機将アクセラ - モンスター烈伝オレカバトル2@wiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.