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

はじめてのAurigaスクリプト 基本編(5)

2010.11.20 *Sat*

//------------------------------
// 変数をつかってみる
//------------------------------

prontera.gat,85,150,4 script へんすう 105,{

set '@atai1, 1;
set '@atai2$, "あ";

mes "どっちがいいですか?";
next;

if( select("こっち:あっち") == 1){

mes "そっちは";
mes '@atai1;
mes "です。";

} else {

mes "そっちは";
mes '@atai2$;
mes "です。";
}

close;
}

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

set <変数名> , <代入する値>
変数に値を代入します。

■変数とは、

1つだけ数値文字列を入れることが出来る
便利な 記憶領域です。

たとえば、変数 '@ABC に 123 という数値を入れるときは、

 set '@ABC, 123;

という風に書きます。

でもこれは数値型の変数ですので、文字列は入れることは出来ません。

文字列型は、こう書きます。
たとえば、変数 '@XYZ$ に "あいう" という文字列を入れるときは、

 set '@XYZ$, "あいう";

と書きます。
変数の末尾(suffix)に $ が付いていますね。これが文字列型の変数です。


■変数の振る舞い

変数は、数字や文字列を、直接書いたときと同じように振舞います。

例えば、以下のスクリプトは同じ実行結果になります。

<例1>
prontera.gat,85,150,4 script てすと 105,{
mes "こんにちは!"; //直接 文字列を指定。
close;
}

<例2>
prontera.gat,85,150,4 script てすと 105,{
set '@message$, "こんにちは!"; //一旦変数に入れて・・・
mes '@message$; // 間接的に指定。
close;
}

プリペイドカードやクレジットカードが、
お金と同じように買い物できるのと同じイメージで
変数は、数値や文字列と同じ扱いになります。


■変数の型による、役割の違い

変数は、何も入れていない場合、
数値型は 0、文字列型は ""(空) になっています。

数値型には "ABC"などの文字列は入れることは出来ませんが
文字列型には "12345" などの数字文字列は入れることができます。

では変数になぜ、数値型と文字列型に分けられているかというと

・数値型変数は、数値や変数同士で計算ができる。
・文字型変数は、文字列の繋ぎ合わせなどの編集ができる。

というふうに、それぞれ、使用目的が違うからです。

<数値型の例>

 set '@X , 100; // '@X に 100 を代入。
 set '@Y , 6; // '@Y に 2 を代入。
 set '@X , '@X / 2; // '@X に '@X を 2 で割った結果を代入する。
 set '@X , '@X * '@Y; // '@X に '@X と '@Y をかけた結果を代入する。

このスクリプトの実行結果、

'@X の内容は (100 ÷ 2) × 6 で、300になります。

もちろん、こう書いても大丈夫です。

 set '@X, ('@X / 2) * '@Y;

'@X に( '@X ÷ 2 ) × '@Y の結果を代入する。という意味です。


<文字列型の例>

 set '@AAA$, "あなた";
 set '@BBB$, "ヤス";
 set '@CCC$, "です。";

 set '@AAA$, '@AAA$ + '@CCC$;
 set '@AAA$, "犯人は" + '@AAA$;

 set '@DDD$, "犯人は" + '@BBB$ + '@CCC$;

このスクリプトの結果、
'@AAA$ の内容は "犯人はあなたです。";
'@DDD$ の内容は "犯人はヤスです。";
となります。

文字列の場合、基本的には、書き換えか、結合しかできません。

しかし、文字列には数値を結合することができますので、

 set '@ANS, (10 / 2) * 3 + 12;
 set '@STR$, "答えは" + '@ANS + "です。";

という書き方もできます。

実行後の'@STR$の内容は、"答えは27です。" となります。

ただし、以下のように、文字列と数値を混在させた書き方をすると
エラーになるので注意してください。

     set '@STR$, "答えは" + (10 / 2) * 3 + 12 + "です。";

数値の計算と文字列との結合を同時に行いたい場合は、
以下のように、数値を()で括ります。

     set '@STR$, "答えは" + ((10 / 2) * 3 + 12) + "です。";


■変数の種類

変数には7つの種類があります。

・一時変数
・NPC依存変数
・キャラ一時変数
・サーバ永続変数
・キャラクタ永続変数
・アカウント永続変数
・アカウント永続変数(全ワールド)

それぞれ、種類ごとに
内容の保存期間アクセス範囲がちがいます。

ここでは長くなるので「変数の種類 詳細」で詳しい説明を書きました。



変数は、説明がむずかしい・・・。
軽く追記するつもりが、こんなに長文に。。

変数を理解することが一番の壁なので
読むほうも大変かもしれませんが、じっくり勉強して上手に使って下さい。

*/

関連記事

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。