Difference between revisions of "LlOverMyLand/ja"
Jump to navigation
Jump to search
Omei Qunhua (talk | contribs) (Remove reference to blanked page) |
|||
Line 11: | Line 11: | ||
|constants | |constants | ||
|examples= | |examples= | ||
< | <source lang="lsl2"> | ||
//--// private land message //--// | //--// private land message //--// | ||
Line 39: | Line 39: | ||
} | } | ||
} | } | ||
</ | </source> | ||
次の例は前の例の変化形です。日次でビジターログを電子メールで送信します。これは毎日あなたの土地がどのぐらいのトラフィックを稼いでいるか、だれが頻繁に訪問しているかを調べるのに便利です。 {{LSLG/ja|llOverMyLand}} 関数を使って、スクリプトが他の土地にいる人をカウントするのを防いでいます。 | 次の例は前の例の変化形です。日次でビジターログを電子メールで送信します。これは毎日あなたの土地がどのぐらいのトラフィックを稼いでいるか、だれが頻繁に訪問しているかを調べるのに便利です。 {{LSLG/ja|llOverMyLand}} 関数を使って、スクリプトが他の土地にいる人をカウントするのを防いでいます。 | ||
< | <source lang="lsl2"> | ||
// このスクリプトは新規訪問者とリピーターの日計を電子メールであなたに送信します。 | // このスクリプトは新規訪問者とリピーターの日計を電子メールであなたに送信します。 | ||
// 訪問者は電子メールの更新サイクルごとに 1 回カウントされます。 | // 訪問者は電子メールの更新サイクルごとに 1 回カウントされます。 | ||
Line 131: | Line 131: | ||
} | } | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
|also_functions | |also_functions |
Latest revision as of 14:42, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llOverMyLand( key id );サンプル
//--// private land message //--//
//-- 無視するアバターのリスト。全て小文字で。
list gLstIgnore = ["void singer"];
key gKeyAv;
default{
state_entry(){
llOwnerSay( "I'll pester anyone on your land I can find,"
+ " unless they're in your ignore list." );
llSensorRepeat( "", "", AGENT, 96, PI, 30 );
}
sensor( integer vIntFound ){
do{
gKeyAv = llDetectedKey( --vIntFound );
//-- 対象者が当該の土地の上にいるか調べる。
if (llOverMyLand( gKeyAv )){ //-- @@
//-- 無視リストに入っていないか調べる。
if (!~llListFindList( gLstIgnore, (list)llToLower( llDetectedName( vIntFound ) ) )){
//-- 無視リストに入っていないアバターには警告する。
llInstantMessage( gKeyAv, "You are on private land, please leave this parcel" );
}
}
}while (vIntFound);
}
}
次の例は前の例の変化形です。日次でビジターログを電子メールで送信します。これは毎日あなたの土地がどのぐらいのトラフィックを稼いでいるか、だれが頻繁に訪問しているかを調べるのに便利です。 llOverMyLand 関数を使って、スクリプトが他の土地にいる人をカウントするのを防いでいます。
// このスクリプトは新規訪問者とリピーターの日計を電子メールであなたに送信します。
// 訪問者は電子メールの更新サイクルごとに 1 回カウントされます。
// -----------------------------------
// 設定: ここをカスタマイズしてね
// ここをあなたの電子メールアドレスにします。
string MyEmail = "you@example.com";
// 0 ~ 96 メートル。それ以上を指定すると通知が届きません。
float SensorRange = 96.0;
// 電子メールの送信頻度を指定します。
integer UpdateFrequency = 86400; // 1 日の秒数
// -----------------------------------
// 内部変数 -- 変えないで
list todayVisitors = [];
list allVisitors = [];
list repeatVisitors = [];
list firstTimers = [];
integer newVisitors = 0;
integer returnVisitors = 0;
string ParcelName;
default
{
state_entry()
{
list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);
ParcelName = llList2String(parcelDetails, 0);
llSensorRepeat( "", "", AGENT, SensorRange, PI, 20);
llSetTimerEvent(UpdateFrequency); // 定期報告を電子メールで送信します
llOwnerSay("Visitor Log Started.");
}
sensor(integer avsFound)
{
key avKey;
integer avNum;
for(avNum=0; avNum<avsFound; avNum++)
{
avKey = llDetectedKey(avNum);
if (llOverMyLand(avKey))
{
string whom = llDetectedName(avNum);
if (!~llListFindList(todayVisitors, [whom]))
{
// この人は今日まだ現れていません
todayVisitors += [whom];
if (~llListFindList(allVisitors, [whom]))
{
// リピーターです
returnVisitors++;
repeatVisitors += [whom];
}
else
{
// おはつです
newVisitors++;
allVisitors = [whom] + allVisitors;
firstTimers += [whom];
}
}
}
}
}
timer()
{
list parcelDetails = llGetParcelDetails(llGetPos(), [PARCEL_DETAILS_NAME]);
ParcelName = llList2String(parcelDetails, 0);
string subj = "Visitor Log for " + ParcelName;
string body = "Number of Visitors Total: " + (string)(newVisitors + returnVisitors)
+ "\nReturning Visitors: " + (string)returnVisitors
+ "\nNew Visitors: " + (string)newVisitors
+ "\n\nList of New Visitors:\n\t" + llDumpList2String(firstTimers, "\n\t")
+ "\n\nList of Returning Visitors:\n\t" + llDumpList2String(repeatVisitors, "\n\t");
newVisitors = 0;
returnVisitors = 0;
todayVisitors = [];
repeatVisitors = [];
firstTimers = [];
if (llGetListLength(allVisitors)>500)
{
allVisitors = llList2List(allVisitors, 0, 499);
}
llEmail(MyEmail, subj, body);
}
}
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。