ソラマメブログ › なおなおのブログ › セカンドライフ › 自動再配達スクリプト(マーケットプレイス)

2011年12月03日

自動再配達スクリプト(マーケットプレイス)

最近、リンデン公式のマーケットプレイスの配達ミスが多く、お客さんからたびたび届かないと苦情が来るようになりました。マーケットプレイスの仕組みでは、8時間以内に配達できなければ自動で返金されるようになっていますが、売上ステータス上では配送済みとなっているのに、届いていないという苦情も多いです。また、受け取りに失敗したのでもう一度送って欲しいとのIMも届く事があります。

いちいち再配送をするのが大変なので、自動で再配送をするスクリプトを作りました。3分後に商品を再配達します。マーケットプレイスからMagic Boxへの配達命令の送信失敗は防止できませんが、配達を2回行うので、課金されたのに配達されないという事態は減ると思います。

Magic Boxの中に下記のスクリプトを入れてください。マーケットプレイスからMagic Boxに配送命令が届いてから3分後に、自動で再配送を行います。ただし、お客さんには、3分の間隔で同じ商品が2回届く事になりますから、コピー不可の商品には向きません。コピー可とコピー不可で2つのMagic Boxを使い、コピー可の方にだけこのスクリプトを入れる事をおすすめします。対応するMagic BoxはVersion 3.0.11です。旧バージョンでの動作は確認していません。

以下スクリプト。

list TimeList=[];
list DataList=[];

default
{
state_entry()
{
llSetText("コピー可 自動再配達商品", <1,1,1>, 1);
llSetTimerEvent(10.0);
}

link_message(integer sender_number, integer number, string msg, key id)
{
if(llGetSubString(msg, 0, 11)=="deliver item"){
if(msg!=llList2String(DataList, 0)){
TimeList+=[llGetUnixTime()+180];
DataList+=[msg];
}
}
}

timer()
{
integer l=llGetListLength(TimeList);
if(l>0){
if(llList2Integer(TimeList, 0)<=llGetUnixTime()){
string msg=llList2String(DataList, 0);
key AvKey=(key)llGetSubString(msg, 13, 48);
string ItemName=llGetSubString(msg, 50, -1);
integer i=llSubStringIndex(ItemName, " ");
ItemName=llGetSubString(ItemName, i+1, -1);
llGiveInventory(AvKey, ItemName);
if(l==1){
TimeList=[];
DataList=[];
}
else{
TimeList=llList2List(TimeList, 1, -1);
DataList=llList2List(DataList, 1, -1);
}
}
}
}
}



同じカテゴリー(セカンドライフ)の記事画像
USTREAMでライブ中継!
スクリプト診断 llListen編
センサーって本当に重いですか?
日本語でチケットを提出できます
アダルト規制の誤解
フルパーミッションになる件
同じカテゴリー(セカンドライフ)の記事
 USTREAMでライブ中継! (2010-04-18 01:29)
 スクリプト診断 llListen編 (2010-04-15 23:07)
 センサーって本当に重いですか? (2010-01-09 22:07)
 日本語でチケットを提出できます (2009-10-15 00:56)
 アダルト規制の誤解 (2009-09-10 20:15)
 ソラマメから大切なお願いとお知らせです (2009-08-27 21:59)

Posted by Naonao Watanabe at 16:43│Comments(0)セカンドライフ
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。