--.--.-- *--*
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

はじめてのAurigaスクリプト 応用編(2)

2010.11.20 *Sat*

//------------------------------
// 配列変数は便利だよ その2
//------------------------------

prontera.gat,85,150,4 script 配列変数をつかう2 105,{


mes "なにが好きですか?";
next;

set '@num, select("くだもの:やさい");

switch ( '@num ) {

case 1:
setarray '@itemid, 512, 578, 513, 514;
break;

case 2:
setarray '@itemid, 514, 515, 525;
break;

}

mes "ハイ";
mes "どうぞー。";

set '@count, getarraysize('@itemid);

for( set '@i,0; '@i<'@count; set '@i,'@i+1 ) {

getitem '@itemid[ '@i ], 1;
}

close;
}


/*-------------------------------
解説:

2種類のカテゴリの複数のアイテムを
分岐させた処理で、それぞれセットして
そしてその複数のアイテムをユーザーに渡します。

果物は リンゴ イチゴ ブドウ バナナ
setarray '@itemid, 512, 578, 513, 514;

野菜は いも ニンジン かぼちゃ
setarray '@itemid, 514, 515, 525;

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

果物と野菜の配列は、内容の数が違うので個数を調べます。

getarraysize(<配列変数>)
配列の要素の数を返す関数。

set '@count, getarraysize('@itemid);

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

次に for構文 を使って 配列の個数の回数 繰り返します。

for ( <変数の初期化> ; <式> ; <変数の加算減算> ) {
<処理>
}
for構文 <式>が「真」ならば処理を繰り返す。

ちなみに、Aurigaスクリプトでは、変数への代入が i = 1 などと書けないので
for構文をスペースを挟まないで書くと、すごく見難くなります。
なので見やすく書いたらこうなります。

for( set '@i,0 ; // 初期化:変数 '@i を 0 にする。
'@i<'@count ; // 変数 '@i が '@count 以下である場合、繰り返す
set '@i,'@i+1 ) // 1回の処理が終わったら、変数 '@i に 1 を加算
{
getitem '@itemid[ '@i ], 1;
}

ちなみに、for構文の 各引数<変数の初期化>などは書かなくてもまったく構いません。

同じ処理をこう書くこともできます。これは JavaScriptやC言語でも同じです。

set '@i,0;
for(;;){ //永久に処理を繰り返す

if ( '@i >= '@count ) break; //回数を超えたので for構文から抜ける

getitem '@itemid[ '@i ], 1;

set '@i, '@i + 1;
}


同じ書き方をするのであれば、

while構文のほうがいいかもしれません。

set '@i,0;
while( '@i < '@count ){ // 変数 '@i が '@count未満なら処理を繰り返す。

getitem '@itemid[ '@i ], 1;

set '@i, '@i + 1;
}

繰り返しの構文は

for構文
while構文
do while構文

の3つです。

どう書くかは、好みの問題ですので、ネットで調べて好きなのを使いましょう。

*/
関連記事

COMMENT

Comment Form


秘密にする
 


TRACKBACK

TrackBack List



プロフィール

Author:みのり

すごく面倒臭がりで大雑把です。
なので、すぐ楽をしようとして
ツールを作り始めます。
ツールを作る時間と手作業で費やす時間
はたしてどちらが短いのか……


-構築環境-

Auriga0945 MySQL 5.5
with 2011-12-20bRagexeRE

3CeAM rev525
with 2010-07-30aRagexeRE



カテゴリ

未分類 (9)
RagexeRE (9)
eAthena (1)
Auriga (5)
ツール:eAthena用 (4)
ツール:Auriga用 (6)
ツール:その他 (14)
はじめてのAurigaスクリプト (8)
はじめてのAurigaスクリプト基本編 (21)
はじめてのAurigaスクリプト応用編 (7)
Aurigaスクリプト (3)
本鯖 (7)
Aurigaスクリプト:冒険者アカデミー (6)
ドラクエ10 (2)
新生FF14 (3)
EVE Online (2)



最新記事



最新コメント



月別アーカイブ



検索フォーム



リンク

このブログをリンクに追加する



ブロとも申請フォーム

この人とブロともになる



QRコード

QR



12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Copyright © Rocco di Forte All Rights Reserved.
テンプレート配布者: サリイ  ・・・  素材: HELIUM  ・・・ 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。