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

変数の種類 詳細

2011.05.18 *Wed*
変数の種類について

基本編(5)で軽く触れた変数の種類の詳細です。

・一時変数

  例: '@aaa '@bbb$

  その処理中のみ使われる変数。処理が終わると内容は消えます。
  末尾(suffix)に $ を付けると、文字列型になります。

  スクリプトでもっともお世話になる変数です。
  処理というのは、NPCならそのNPCの中のみ。

  例えば、プレイヤーがNPCに話しかけた時、
  スクリプト内部で変数を使われたとします。
  変数に値が記憶されていても、CLOSEボタンを押すと
  NPCの処理は終わりますので、変数の内容も初期化されます。

  他にも、ユーザー関数、itemスクリプトなども
  その処理が完了すると、内容は消えます。

  ちなみに、eAthenaでは、「'」ではなく、「.」になり

  .@AAA .@BBB$ という風に書きます。

・NPC依存変数

  例: 'aaa 'bbb$

  NPCに保持させる変数。サーバー再起動で消えます。
  末尾(suffix)に $ を付けると、文字列型になります。

  NPCの処理が終わっても、内容は保持されるので
  複数のプレイヤーが同じ変数の内容を参照したりできます。

  eAthenaでは、「'」ではなく、「.」になり

  .AAA .BBB$ という風に書きます。

  他のNPCから値を読みたい時は、getvariableofnpc関数を使います。
  応用編(3)で関数の使い方を触れていますので
  興味のある方は読んでみてください。

・キャラ一時変数

  例: @aaa @bbb$

  キャラクターが保持する変数。処理が完了しても持続されますが、
  リログやマップサーバ間移動(※)で内容が消えます。
  末尾(suffix)に $ を付けると、文字列型になります。

  つまり、リログしなければ内容はずっと保存されます。
  今一使いどころがわかりませんね。。

  一時変数と似ているので間違えて使わないように注意。
  一時変数のつもりで使うと、前回代入した値が残っていて
  思わぬバグが発生、という経験があります。使い方には注意。

  ※char鯖に、複数のmap鯖を接続させている場合、
   つまり本鯖のように複数のマップをグループ分けして
   複数のmap鯖で管理させている場合に、
   map1鯖の管理マップから、map2鯖の管理マップへと
   プレイヤーが移動する時のこと。

・サーバ永続変数

  例: $aaa $bbb$

  サーバーが保持する変数。再起動でも消えません。
  末尾(suffix)に $ を付けると、文字列型になります。

  TXTモードならば mapreg.txt というファイルに保存され、
  SQLモードならば mapreg というテーブルに保存されます。
  0 や "" を代入しない限り、永続的に保存されます。

  サーバー全体で、変数を共有できます。
  複数のNPCで値を共有したい時に使います。

  本鯖の神器クエストのようなクエストや
  オリジナルのGvGなどのフラグ管理に使えそうです。

・キャラクタ永続変数

  例: aaa

  キャラクター単位で保持する変数。リログや再起動で消えません。
  この変数は文字列型には出来ません。

  TXTモードの場合は auriga.txt というファイルに保存され、
  SQLモードの場合は globalreg というテーブルに保存されます。
  キャラデリ や 0を代入しない限り、永続的に保存されます。

  クエストのフラグの保存によく使用されます。

・アカウント永続変数

  例: #aaa

  アカウントが保持する変数。リログや再起動で消えません。
  この変数は文字列型には出来ません。

  TXTモードの場合は accreg.txt というファイルに保存され、
  SQLモードの場合は accountreg というテーブルに保存されます。
  アカウント削除 や 0を代入しない限り、永続的に保存されます。

  倉庫のように、アカウント毎に共有させたい値を管理する時に
  使用します。

・アカウント永続変数(全ワールド)

  例: ##aaa

  アカウントが保持する変数。リログや再起動で消えません。
  この変数は文字列型には出来ません。

  TXTモードの場合は accreg.txt というファイルに保存され、
  SQLモードの場合は worldreg というテーブルに保存されます。
  アカウント削除 や 0を代入しない限り、永続的に保存されます。

  本鯖のように、chaos、Balder、Freyaなど複数のワールドを持つ
  ワールドグループ間で共有できる変数。
  つまり、1つのlogin鯖に複数のchar鯖を起動して接続させている場合に
  同じアカウントに変数の内容を共有することができます。

  本鯖のラグくじのチケットIDのように、登録アカウント毎に
  値を共有したい場合に使います。
  ただしワールドグループを超えて共有することは出来ませんので
  微妙に仕様が異なります。
関連記事

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