2009年01月12日
LSL、VBA、C、Parlの対比表
かーごです。
備忘録にちょこちょこ書いていこうと思います。
(随時更新)
ああ、すでに挫折w
備忘録にちょこちょこ書いていこうと思います。
(随時更新)
LSL | VBA(Excel) | C | Peal | |
---|---|---|---|---|
コメント | // comment | ' comment | /* comment */ | # comment |
変数の定義 | integer i;string str;list lst;vector v;rotation r; | Dim i As Integer | int i;char c; | $a |
文字列の結合 | str1 + str2 | str1 & str2 | #include <string.h>char a[5]="abc", b[5]="def";int n;strcat(a, b); //a=a+bstrncat(a, b, n); //a=a+b(n文字) | $a . $b |
ユーザー関数 | integer user(string s, integer i) {    return i; } | Function user(s As String, i As Long) As integer    user = i End Function | int user(){    return i;} | sub User{    my($a) = @_[0];    my($b) = @_[1];    return; } |
条件分岐(if) | if (条件式) {    処理1} else {    処理2}if (条件式1) {    処理1} else if (条件式2) {    処理2} else {    処理3 } | If 条件式 Then    処理End IfIf 条件式 Then    処理1Else    処理2End IfIf 条件式1 Then    処理1ElseIf 条件式2 Then    処理2Else    処理3 End If | if (条件式) {    処理1} else {    処理2}if (条件式1) {    処理1} else if (条件式2) {    処理2} else {    処理3 } | if (条件式) {    処理1} else {    処理2}if (条件式1) {    処理1} elsif (条件式2) {    処理2} else {    処理3 } |
前判断ループ | while (条件) { 処理 }while (条件) 文; while (条件) ; | Do While 条件    処理    (Exit Do)LoopDo Until 条件    処理    (Exit Do) Loop | while (条件) { 処理 }while(条件)文;while(条件) ; | while (条件){    処理} |
比較 | > < >= <= == != | > < >= <= = <> | > < >= <=== !=文字列の比較#include <string.h>int strcmp(char *str1, char *str2);文字列str1とstr2を比較する。一致すれば0、一致しなければ0以外を返す。 | 算術比較演算子> < >= <=== !=文字列比較演算子 eq ne gt lt ge le |
論理演算子 | ! aa && b a || b | Not AA And BA Or BA Xor BA Eqv B A Imp B | ! aa && b a || b | not $a$a and $b$a or $b! $a$a && $b$a || $b and/or/not の方が優先順位が低い |
ああ、すでに挫折w
2008年10月05日
装着で踊りだすスクリプト
ども、かーごです。
装着すると踊りだすスクリプトについてメモ
(1)踊る
アバターにアニメーションをさせるスクリプトは アイピロさんのTips などにも載っています。
本来、アニメをさせるにはパーミッションの取得とかややこしいのですが・・・
とりあえず、ここではそれは「呪文」として・・・^^;
オブジェクトに座るとアニメをさせるスクリプト。
緑の文字の所が呪文です。
詳しくはwikiなどを・・・・
"アニメーション名"のところにオブジェクトのコンテンツに入れたアニメの名前を入れます。
(2)装着すると
さて、「装着すると」の部分ですが。
LSLでアイテムが装着されたことを知るには Attachイベント を使います。
オブジェクトが装着もしくは取り外しされると、attach(){} の { } の中が実行されます。
それでは先ほどのスクリプトの change()~のところを書き換えてやりましょう。
attach イベントは装着しても取り外しても発生しますから、key id が NULL_KEYかどうかでどちらかを判断します。
装着されていれば id には有効なキーが装着されていなければ NULL_KEYが代入されていますので、NULL_KEY 以外なら装着、NULL_KEYなら取り外しということになります。
装着ならアニメスタートの呪文を、取り外しならアニメをストップさせます。
と、つらつらと書いてみました。
こんなの、参考になるかな~^^;
装着すると踊りだすスクリプトについてメモ
(1)踊る
アバターにアニメーションをさせるスクリプトは アイピロさんのTips などにも載っています。
本来、アニメをさせるにはパーミッションの取得とかややこしいのですが・・・
とりあえず、ここではそれは「呪文」として・・・^^;
オブジェクトに座るとアニメをさせるスクリプト。
default{  state_entry(){      llSitTarget(<0.0,0.0,0.1>,ZERO_ROTATION); // llAvatarOnSitTarget()でkeyを調べるのに必要な呪文  }  changed(integer change){    key key_av = llAvatarOnSitTarget(); //座ったアバターのキーをkey_avに入れる    if( key_av != NULL_KEY ){      if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)                & llGetPermissionsKey() == key_av) { // すでにアニメーションのパーミッションがあれば        llStopAnimation("sit"); // 通常の座るアニメをストップして        llStartAnimation("アニメーション名"); // 指定のアニメをスタート      }else{ // パーミッションがない時        llRequestPermissions(key_av, PERMISSION_TRIGGER_ANIMATION); // パーミッションをリクエスト      }     }  }  run_time_permissions(integer perm){    if(perm & PERMISSION_TRIGGER_ANIMATION){      llStopAnimation("sit");      llStartAnimation("アニメーション名");    }  }} |
緑の文字の所が呪文です。
詳しくはwikiなどを・・・・
"アニメーション名"のところにオブジェクトのコンテンツに入れたアニメの名前を入れます。
(2)装着すると
さて、「装着すると」の部分ですが。
LSLでアイテムが装着されたことを知るには Attachイベント を使います。
オブジェクトが装着もしくは取り外しされると、
それでは先ほどのスクリプトの change()~のところを書き換えてやりましょう。
default{  attach( key id ) // attachイベント  {    key key_av = id; //装着したアバターのキーをkey_avに入れる    if( key_av != NULL_KEY ){ // アバターのキーがNULLでない = 装着した時      if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)                & llGetPermissionsKey() == key_av) { // すでにアニメーションのパーミッションがあれば         llStartAnimation("アニメーション名"); // 指定のアニメをスタート      }else{ // パーミッションがない時        llRequestPermissions(key_av, PERMISSION_TRIGGER_ANIMATION); // パーミッションをリクエスト      }     } else { // 装着したアバターがNULL = オブジェクトが取り外された時      llStopAnimation("アニメーション名"); // アニメをストップする    }  }  run_time_permissions(integer perm){    if(perm & PERMISSION_TRIGGER_ANIMATION){      llStopAnimation("sit");      llStartAnimation("アニメーション名");    }  }} |
attach イベントは装着しても取り外しても発生しますから、key id が NULL_KEYかどうかでどちらかを判断します。
装着されていれば id には有効なキーが装着されていなければ NULL_KEYが代入されていますので、NULL_KEY 以外なら装着、NULL_KEYなら取り外しということになります。
装着ならアニメスタートの呪文を、取り外しならアニメをストップさせます。
と、つらつらと書いてみました。
こんなの、参考になるかな~^^;