Difference between revisions of "LlEval"

From Second Life Wiki
Jump to navigation Jump to search
Line 1: Line 1:
== It would be great to execute outsourced Code where stored in a string. ==
== It would be great to execute outsourced Code where stored in a string. ==


integer llEval(string code); - Should return TRUE or FALSE
integer llEval(string code); - Should return NULL, TRUE or FALSE


llEval() returns NULL  unless return is called in the evaluated code, in which case the value passed to return is returned. If there is a parse error in the evaluated code, llEval()  returns FALSE and execution of the following code continues normally.
llEval() returns NULL  unless return is called in the evaluated code, in which case the value passed to return is returned. If there is a parse error in the evaluated code, llEval()  returns FALSE and execution of the following code continues normally.

Revision as of 09:45, 23 March 2010

It would be great to execute outsourced Code where stored in a string.

integer llEval(string code); - Should return NULL, TRUE or FALSE

llEval() returns NULL unless return is called in the evaluated code, in which case the value passed to return is returned. If there is a parse error in the evaluated code, llEval() returns FALSE and execution of the following code continues normally.

OutSourced Code (Notecard, external Homepage, ...) <php> <?php $test = $_GET['vari']; echo "llSetText(\"Hello $vari\",<1,1,1>,1); llOwnerSay(\"Thanks for your attention\");"; ?> </php>

...and the inworld code :

<lsl> key http_request_id; integer EVALCODE;

default {

   state_entry()
   {
       http_request_id = llHTTPRequest("http://my.testdomain.lan?vari=ANSI%20Soderstrom", [], "");
   }

   http_response(key request_id, integer status, list metadata, string body)
   {
       if (request_id == http_request_id && status == 200)
       {
           if(!~llEval(body)) {
              llOwnerSay("A Error occured");
           }
           return;
       } 
       llOwnerSay("Something goes wrong...");
   }

} </lsl>