|
|
| (165 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| i am alive !
| | [[File:ansi_bear.png|thumb|LindenBear ANSI]] |
| ...and have for you : | | == About me == |
| | * Name : same as above |
| | * Race : sometimes a kind of TeddyBear, sometimes just a cat or any other possible Avatar... |
| | * Age : {{Age|24|05|2007}} days |
| | * Town : [[User:ANSI_Soderstrom/Where_ANSI_lives|Linden]] (Hannover/Germany) |
| | * Fun : [[User:ANSI_Soderstrom/Humour|Different]] |
|
| |
|
| A [[#Simple Copy Protection]] for your Scripts.
| | ;My attitude : |
| | :*[[User:ANSI_Soderstrom/my_attidude_towards_life|towards life]] |
| | :*[[User:ANSI_Soderstrom/my_attitude_towards_VR|towards Virtual Reality]] |
|
| |
|
| A [[#Simple LSL Array]] for your Scripts.
| | == Expierence == |
| | ;With Electronics |
| | :BashScript / Perl / LSL |
| | :PHP / HTML / CSS / JavaScript |
| | :MySQL / MS-SQL |
| | :VisualBasic / ANSI-C / C# |
|
| |
|
| | ;With Organics |
| | :German |
| | :English |
|
| |
|
| | == My Locations == |
| | * SL-URL : {{SLurl|region=Minna|x=128|y=128|z=32|title=The Place beside Natoma}} |
| | * Website : https://secondlife.gehostet.de/lang/en/secondlife-monitoring/ |
|
| |
|
| | == Against Boredom == |
| | * [[User:ANSI_Soderstrom/Decorate_a_busy_Linden|Decorate a busy Linden]] |
|
| |
|
| | == I help others == |
| | <!-- ejected by myself because i cant understand people with tooo much serious allocations as in RL |
| | * Apprentice of [[White_Tiger_Mentors|White Tiger Mentors]] (Member since {{Age|06|04|2010}} days) |
| | --> |
| | * {{Jira Reporter}} |
|
| |
|
| | == ANSI's Scripting Classes == |
| | * [[User:ANSI_Soderstrom/LSL Beginners Class|LSL for beginners]] |
| | * [[User:ANSI_Soderstrom/LSL Advanced Class|LSL for advanced persons]] |
|
| |
|
| | == Leave a comment == |
| | * [[User_talk:ANSI_Soderstrom|My user Talk ABOUT ME]] |
|
| |
|
|
| |
|
| | * [[User:ANSI_Soderstrom/Archive|Archive]] |
|
| |
|
| | | {{skills||Architect=*|Builder=*|Scripter=*|}} |
| | | <!-- |
| | | {{visl|LSL=*|}} |
| | | --> |
| | | [[Category:Linden Bear Collectors|{{PAGENAME}}]] |
| | | [[Category:German speaking Linguists|{{PAGENAME}}]] |
| | | {{ISO_639-3/cat-speaking/Volunteers|eng}} |
| | | {{ISO_639-3/cat-speaking/Volunteers|deu}} |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| {{Anchor|Simple Copy Protection}}Simple LSL Copy Protection for your Scripts (best give away as no mod) : | |
| | |
| <lsl> | |
| // Simple Copy Protection for your Items
| |
| // (C) 10/2009 ANSI Soderstrom
| |
| | |
| default {
| |
| state_entry() {
| |
| if(llGetCreator() != "9adba1b4-a733-4a44-8275-f4a666784d8c") { // ANSI Soderstrom
| |
| llOwnerSay("Script: " + llGetScriptName() + ":");
| |
| llOwnerSay("Sorry, my Scripts are only running in MY Items");
| |
| llOwnerSay("Greetings, ANSI Soderstrom");
| |
| // llDie();
| |
| } else {
| |
| state online;
| |
| }
| |
| }
| |
| | |
| on_rez(integer i) {
| |
| llResetScript();
| |
| }
| |
| }
| |
| | |
| state online {
| |
| state_entry() {
| |
| // your Code
| |
| }
| |
|
| |
| on_rez(integer i) {
| |
| llResetScript();
| |
| }
| |
| }
| |
| </lsl>
| |
| | |
| | |
| | |
| | |
| {{Anchor|Simple LSL Array}} Simple LSL Array for your Scripts :
| |
| | |
| <lsl>
| |
| // Simple LSL Array for your Scripts (useful but slow)
| |
| // (C) 02/2010 ANSI Soderstrom
| |
| | |
| list SOMELIST;
| |
| | |
| string GET(list ARRAY,list KEY) {
| |
| if(!llGetListLength(KEY)>1) {
| |
| // dont allow lists in lists
| |
| return "-1";
| |
| }
| |
| integer position;
| |
| do {
| |
| position = llListFindList(ARRAY, KEY);
| |
| if(position%2 && ~position && position) {
| |
| ARRAY = llDeleteSubList(ARRAY,0,position);
| |
| }
| |
| } while (~position && position%2);
| |
| if(~position) {
| |
| return llList2String(ARRAY,position+1);
| |
| } else {
| |
| return "0";
| |
| }
| |
| }
| |
| | |
| list PUT(list ARRAY,list KEY, list VALUE) {
| |
| if(llGetListLength(KEY)>1 || llGetListLength(VALUE)>1) {
| |
| // dont allow lists in lists
| |
| return [-1];
| |
| }
| |
| integer position = llListFindList(ARRAY, KEY);
| |
| list helparray = [];
| |
| do {
| |
| if(!~position) {
| |
| ARRAY += KEY;
| |
| ARRAY += VALUE;
| |
| return helparray + ARRAY;
| |
| }
| |
| if(position%2 && ~position && position) {
| |
| helparray += llList2List(ARRAY,0,position);
| |
| ARRAY = llDeleteSubList(ARRAY,0,position);
| |
| }
| |
| position = llListFindList(ARRAY, KEY);
| |
| } while (position%2);
| |
| ARRAY = llListReplaceList(ARRAY, VALUE, position + 1, position + 1);
| |
| return helparray + ARRAY;
| |
| }
| |
| | |
| default {
| |
| state_entry() {
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| SOMELIST = PUT(SOMELIST,["KEY"],["VALUE"]);
| |
| SOMELIST = PUT(SOMELIST,[AGENT],[<1,1,1>]);
| |
| SOMELIST = PUT(SOMELIST,["TEST"],["VALUE"]);
| |
| SOMELIST = PUT(SOMELIST,["VALUE"],["TEST"]);
| |
|
| |
| llSay(0,GET(SOMELIST,["KEY"])); // Output : VALUE
| |
| llSay(0,GET(SOMELIST,[AGENT])); // Output : <1.000000, 1.000000, 1.000000>
| |
| llSay(0,GET(SOMELIST,["TEST"])); // Output : VALUE
| |
| llSay(0,GET(SOMELIST,["VALUE"])); // Output : TEST
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| SOMELIST = PUT(SOMELIST,["KEY"],["9adba1b4-a733-4a44-8275-f4a666784d8c"]);
| |
| SOMELIST = PUT(SOMELIST,[AGENT],["unknown"]);
| |
| SOMELIST = PUT(SOMELIST,["TEST"],["TEST"]);
| |
| SOMELIST = PUT(SOMELIST,["VALUE"],["VALUE"]);
| |
|
| |
| llSay(0,GET(SOMELIST,["KEY"])); // Output : 9adba1b4-a733-4a44-8275-f4a666784d8c
| |
| llSay(0,GET(SOMELIST,[AGENT])); // Output : unknown
| |
| llSay(0,GET(SOMELIST,["TEST"])); // Output : TEST
| |
| llSay(0,GET(SOMELIST,["VALUE"])); // Output : VALUE
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // AGENT is a static integer with the value 1
| |
| SOMELIST = PUT(SOMELIST,[1],["AGENT"]);
| |
|
| |
| llSay(0,GET(SOMELIST,[AGENT])); // Output : AGENT
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // "AGENT" and AGENT are different
| |
| if(!(integer)GET(SOMELIST,["AGENT"])) {
| |
| llSay(0,"Not in List");
| |
| } else {
| |
| llSay(0,"Found");
| |
| }
| |
| // Output : Not in List
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // case sensitive KEY´s
| |
| SOMELIST = PUT(SOMELIST,["AGENT"],[NULL_KEY]);
| |
| SOMELIST = PUT(SOMELIST,[AGENT],[ZERO_ROTATION]);
| |
|
| |
| llSay(0,GET(SOMELIST,["agent"])); // Output : 0
| |
| llSay(0,GET(SOMELIST,["AGENT"])); // Output : 00000000-0000-0000-0000-000000000000
| |
| llSay(0,GET(SOMELIST,[AGENT])); // Output : <0.000000, 0.000000, 0.000000, 1.000000>
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // Let us play...
| |
| SOMELIST = PUT(SOMELIST,[AGENT],[llKey2Name(GET(SOMELIST,["KEY"]))]);
| |
|
| |
| llSay(0,GET(SOMELIST,["KEY"])); // Output : 9adba1b4-a733-4a44-8275-f4a666784d8c
| |
| llSay(0,GET(SOMELIST,[AGENT])); // Output : ANSI Soderstrom
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| llSay(0,GET(SOMELIST,["NotInList"]));
| |
| // Output : 0
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // Not in List is not in list
| |
| if(!(integer)GET(SOMELIST,["Not In List"])) {
| |
| llSay(0,"Not in List");
| |
| } else {
| |
| llSay(0,"Found");
| |
| }
| |
| // Output : Not in List
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // ANSI Soderstrom is not a KEY, only a VALUE
| |
| if(!(integer)GET(SOMELIST,["ANSI Soderstrom"])) {
| |
| llSay(0,"Not in List");
| |
| } else {
| |
| llSay(0,"Found");
| |
| }
| |
| // Output : Not in List
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| // KEY is a KEY and have a VALUE
| |
| if(!(integer)GET(SOMELIST,["KEY"])) {
| |
| llSay(0,"Not in List");
| |
| } else {
| |
| llSay(0,"Found");
| |
| }
| |
| // Output : Found
| |
|
| |
| // --------------------------------------------------------------------------------
| |
|
| |
| llSay(0,llList2CSV(SOMELIST));
| |
| /*
| |
| Output : KEY, 9adba1b4-a733-4a44-8275-f4a666784d8c,
| |
| 1, ANSI Soderstrom,
| |
| TEST, TEST,
| |
| VALUE, VALUE,
| |
| AGENT, 00000000-0000-0000-0000-000000000000
| |
| */
| |
| | |
| // --------------------------------------------------------------------------------
| |
| | |
| Or manage your Settings...
| |
| | |
| list SETTINGS;
| |
| | |
| SETTINGS = PUT(SETTINGS,["owner"],[llGetOwner()]);
| |
| SETTINGS = PUT(SETTINGS,["POS"],[llGetPos()]);
| |
|
| |
| list API;
| |
| | |
| API = PUT(API,["I_HAVE_THE_SETTINGS"],[-34234242]);
| |
| | |
| llMessageLinked(LINK_SET,(integer)GET(API,["I_HAVE_THE_SETTINGS"]),llList2CSV(SETTINGS),llGetOwner());
| |
| | |
| // --------------------------------------------------------------------------------
| |
| | |
| list SETTINGS;
| |
| list API;
| |
| | |
| API = PUT(API,["I_HAVE_THE_SETTINGS"],[-34234242]);
| |
| | |
| link_message(integer sender_num, integer num, string str, key id) {
| |
| // receive a valid message for this state AND a further Copy Protection
| |
| if(id==llGetCreator() && num==(integer)GET(API,["I_HAVE_THE_SETTINGS"]) {
| |
| SETTINGS = llCSV2List(str);
| |
| } // if
| |
| } // link_message
| |
| }
| |
| }
| |
| | |
| </lsl>
| |