Difference between revisions of "LlEval"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
== It would be great to execute outsourced Code where stored in a string. ==
{{LSL_Function
 
|func=llEval
integer llEval(string code); - Should return TRUE or FALSE
|func_id
 
|func_sleep=0.0
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.
|func_energy=0.0
 
|func_desc=
OutSourced Code (Notecard, external Homepage, ...)
|func_footnote
<php>
|return_type=integer
<?php
|return_text=to see the success of eval´d code.<br> -1 = Parse error in Eval´d code <br>0  = Success, but without return in Eval´d  code
$test = $_GET['vari'];
|p1_type=string|p1_name=code|p1_desc=a string with different LSL-functions|p1_hover
echo "llSetText(\"Hello $vari\",<1,1,1>,1); llOwnerSay(\"Thanks for your attention\");";
|constants=
?>
|spec
</php>
|caveats
 
|examples=
...and the inworld code :
 
<lsl>
<lsl>
key http_request_id;
integer EVALCODE;
default
default
{
{
     state_entry()
     state_entry()
     {
     {
         http_request_id = llHTTPRequest("http://my.testdomain.lan?vari=ANSI%20Soderstrom", [], "");
         string code = "llOwnerSay(\"Hello World\");";
    }
         if( llEval(code) != -1 )
    http_response(key request_id, integer status, list metadata, string body)
    {
         if (request_id == http_request_id && status == 200)
         {
         {
             if(!~llEval(body)) {
             llOwnerSay("...it works !!! Try now more complex :");
              llOwnerSay("A Error occured");
            llOwnerSay((string)llEval("llOwnerSay(\" must be 23\"); return 23;"));
            }
            return;
         }  
         }  
         llOwnerSay("Something goes wrong...");
         else
        {
            llOwnerSay("Parse Error in Eval´d code");
        }
     }
     }
    // Output :
    // Hello World
    // ...it works !!! Try now more complex :
    // 23 must be 23
}
}
</lsl>
</lsl>
|helpers
|also_header
|also_functions
|also_tests
|also_events
|also_articles
|also_footer
|notes=With this function its now possible to write code more dynamic. You can read your functions from a Notecard, external WEB-page and much more...<br>Vote for this function at :{{Jira|SVC-1671}}
|mode=request
|deprecated
|location
|cat1
|cat2
|cat3
|cat4
|cat5
|cat6
}}

Latest revision as of 01:19, 5 May 2010

Emblem-important-yellow.png LSL Feature Request
The described function does not exist. This article is a feature request.

Summary

Function: integer llEval( string code );

Returns an integer to see the success of eval´d code.
-1 = Parse error in Eval´d code
0 = Success, but without return in Eval´d code

• string code a string with different LSL-functions

Examples

<lsl> default {

   state_entry()
   {
       string code = "llOwnerSay(\"Hello World\");";
       if( llEval(code) != -1 )
       {
           llOwnerSay("...it works !!! Try now more complex :");
           llOwnerSay((string)llEval("llOwnerSay(\" must be 23\"); return 23;"));
       } 
       else
       {
           llOwnerSay("Parse Error in Eval´d code");
       }
   }
   // Output :
   // Hello World
   // ...it works !!! Try now more complex :
   // 23 must be 23

}

</lsl>

Notes

With this function its now possible to write code more dynamic. You can read your functions from a Notecard, external WEB-page and much more...
Vote for this function at :SVC-1671

Deep Notes

Signature

//function integer llEval( string code );