/source/circular-patrol-movement/circular-patrol-movement.lsl |
@@ -1,5 +1,5 @@ |
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) Wizardry and Steamworks 2014 - License: CC BY 2.0 // |
// Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
// |
// This is an automatic teleporter, and patrol script for the Corrade |
@@ -7,13 +7,13 @@ |
// by following the URL: http://was.fm/secondlife/scripted_agents/corrade |
// |
// The purpose of this script is to demonstrate patroling with Corrade and |
// you are free to use, change, and commercialize it under the CC BY 2.0 |
// license which can be found at: https://creativecommons.org/licenses/by/2.0 |
// you are free to use, change, and commercialize it under the GNU/GPLv3 |
// license which can be found at: http://www.gnu.org/licenses/gpl.html |
// |
/////////////////////////////////////////////////////////////////////////// |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2014 Wizardry and Steamworks - License: CC BY 2.0 // |
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
string wasKeyValueGet(string k, string data) { |
if(llStringLength(data) == 0) return ""; |
@@ -25,7 +25,7 @@ |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2013 Wizardry and Steamworks - License: CC BY 2.0 // |
// Copyright (C) 2013 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
string wasKeyValueEncode(list data) { |
list k = llList2ListStrided(data, 0, -1, 2); |
@@ -40,7 +40,7 @@ |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2011 Wizardry and Steamworks - License: CC BY 2.0 // |
// Copyright (C) 2011 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
// http://was.fm/secondlife/wanderer |
vector wasCirclePoint(float radius) { |
@@ -52,7 +52,7 @@ |
} |
|
/////////////////////////////////////////////////////////////////////////// |
// Copyright (C) 2015 Wizardry and Steamworks - License: CC BY 2.0 // |
// Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 // |
/////////////////////////////////////////////////////////////////////////// |
// escapes a string in conformance with RFC1738 |
string wasURLEscape(string i) { |
@@ -323,33 +323,12 @@ |
return; |
} |
// DEBUG |
//llOwnerSay("Sending stop..."); |
llInstantMessage(CORRADE, |
wasKeyValueEncode( |
[ |
"command", "autopilot", |
"group", wasURLEscape(GROUP), |
"password", wasURLEscape(PASSWORD), |
"action", "stop", |
"callback", wasURLEscape(callback) |
] |
) |
); |
} |
http_request(key id, string method, string body) { |
llHTTPResponse(id, 200, "OK"); |
if(wasKeyValueGet("command", body) != "autopilot" || |
wasKeyValueGet("success", body) != "True") { |
// DEBUG |
llOwnerSay("Could not get Corrade to stop, restarting script..."); |
llResetScript(); |
} |
// DEBUG |
//llOwnerSay("Sending next move..."); |
float timeout = 1 + llFrand(WAIT); |
llInstantMessage(CORRADE, |
wasKeyValueEncode( |
[ |
"command", "autopilot", |
"command", "walkto", |
"group", wasURLEscape(GROUP), |
"password", wasURLEscape(PASSWORD), |
"position", wasURLEscape( |
@@ -357,11 +336,12 @@ |
llGetPos() + wasCirclePoint(RADIUS) |
) |
), |
"action", "start" |
"vicinity", "1", |
"timeout", timeout |
] |
) |
); |
llSetTimerEvent(1 + llFrand(WAIT)); |
llSetTimerEvent(timeout); |
} |
on_rez(integer num) { |
llResetScript(); |