Skip to content

Instantly share code, notes, and snippets.

@Makopo
Created November 16, 2017 15:25
Show Gist options
  • Save Makopo/23e8b9a872b77f929d70ba70f42b2d0e to your computer and use it in GitHub Desktop.
Save Makopo/23e8b9a872b77f929d70ba70f42b2d0e to your computer and use it in GitHub Desktop.
Qiita Corrade入門その2 完成
string CORRADE = "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
string GROUP = "My Group";
string PASSWORD = "YYYYYYYY";
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
string wasKeyValueEncode(list data) {
integer i = llGetListLength(data);
if (i % 2 != 0 || i == 0) return "";
--i;
do {
data = llListInsertList(
llDeleteSubList(
data,
i-1,
i
),
[ llList2String(data, i-1) + "=" + llList2String(data, i) ],
i-1
);
i -= 2;
} while(i > 0);
return llDumpList2String(data, "&");
}
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
// escapes a string in conformance with RFC1738
string wasURLEscape(string i) {
if(i == "") return "";
string o = llGetSubString(i, 0, 0);
i = llDeleteSubString(i, 0, 0);
if(o == " ") return "+" + wasURLEscape(i);
if(o == "\n") return "%0D%0A" + wasURLEscape(i);
return llEscapeURL(o) + wasURLEscape(i);
}
default
{
touch_start(integer num_detected)
{
llOwnerSay("ボットアバターを座らせます");
llInstantMessage(CORRADE,
wasKeyValueEncode(
[
"command", "relax",
"group", wasURLEscape(GROUP),
"password", wasURLEscape(PASSWORD)
]
)
);
state on_the_ground;
}
}
state on_the_ground
{
touch_start(integer num_detected)
{
llOwnerSay("ボットアバターを立たせます");
llInstantMessage(CORRADE,
wasKeyValueEncode(
[
"command", "stand",
"group", wasURLEscape(GROUP),
"password", wasURLEscape(PASSWORD)
]
)
);
state default;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment