aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
diff options
context:
space:
mode:
authorSean Dague2008-04-24 12:27:24 +0000
committerSean Dague2008-04-24 12:27:24 +0000
commit2a2ef42e64e202c81762adf0cc0e4cb1393f71ef (patch)
tree20768ffd9610712a51a4cc7f9f0ffbe667fbe2e2 /OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
parent* Adds much better support for attachments that you right click on in world. (diff)
downloadopensim-SC_OLD-2a2ef42e64e202c81762adf0cc0e4cb1393f71ef.zip
opensim-SC_OLD-2a2ef42e64e202c81762adf0cc0e4cb1393f71ef.tar.gz
opensim-SC_OLD-2a2ef42e64e202c81762adf0cc0e4cb1393f71ef.tar.bz2
opensim-SC_OLD-2a2ef42e64e202c81762adf0cc0e4cb1393f71ef.tar.xz
replace hard tabs with 4 spaces to be consistant in the source.
Please adjust your editors to not use hard tabs.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs384
1 files changed, 192 insertions, 192 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 3778c09..3273023 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.Common
70 70
71 private DateTime m_timer = DateTime.Now; 71 private DateTime m_timer = DateTime.Now;
72 private string m_state = "default"; 72 private string m_state = "default";
73 private bool m_waitingForScriptAnswer=false; 73 private bool m_waitingForScriptAnswer=false;
74 74
75 75
76 public string State 76 public string State
@@ -121,50 +121,50 @@ namespace OpenSim.Region.ScriptEngine.Common
121 return World.GetCommander(name); 121 return World.GetCommander(name);
122 } 122 }
123 123
124 private LLUUID InventorySelf() 124 private LLUUID InventorySelf()
125 { 125 {
126 LLUUID invItemID=new LLUUID(); 126 LLUUID invItemID=new LLUUID();
127 127
128 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) 128 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory)
129 { 129 {
130 if(inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) 130 if(inv.Value.Type == 10 && inv.Value.ItemID == m_itemID)
131 { 131 {
132 invItemID=inv.Key; 132 invItemID=inv.Key;
133 break; 133 break;
134 } 134 }
135 } 135 }
136 136
137 return invItemID; 137 return invItemID;
138 } 138 }
139 139
140 private LLUUID InventoryKey(string name, int type) 140 private LLUUID InventoryKey(string name, int type)
141 { 141 {
142 m_host.AddScriptLPS(1); 142 m_host.AddScriptLPS(1);
143 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) 143 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory)
144 { 144 {
145 if(inv.Value.Name == name) 145 if(inv.Value.Name == name)
146 { 146 {
147 if(inv.Value.Type != type) 147 if(inv.Value.Type != type)
148 return LLUUID.Zero; 148 return LLUUID.Zero;
149 149
150 return inv.Value.AssetID.ToString(); 150 return inv.Value.AssetID.ToString();
151 } 151 }
152 } 152 }
153 return LLUUID.Zero; 153 return LLUUID.Zero;
154 } 154 }
155 155
156 private LLUUID InventoryKey(string name) 156 private LLUUID InventoryKey(string name)
157 { 157 {
158 m_host.AddScriptLPS(1); 158 m_host.AddScriptLPS(1);
159 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) 159 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory)
160 { 160 {
161 if(inv.Value.Name == name) 161 if(inv.Value.Name == name)
162 { 162 {
163 return inv.Value.AssetID.ToString(); 163 return inv.Value.AssetID.ToString();
164 } 164 }
165 } 165 }
166 return LLUUID.Zero; 166 return LLUUID.Zero;
167 } 167 }
168 168
169 //These are the implementations of the various ll-functions used by the LSL scripts. 169 //These are the implementations of the various ll-functions used by the LSL scripts.
170 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 170 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07
@@ -947,15 +947,15 @@ namespace OpenSim.Region.ScriptEngine.Common
947 { 947 {
948 m_host.AddScriptLPS(1); 948 m_host.AddScriptLPS(1);
949 949
950 LLUUID textureID=new LLUUID(); 950 LLUUID textureID=new LLUUID();
951 951
952 if(!LLUUID.TryParse(texture, out textureID)) 952 if(!LLUUID.TryParse(texture, out textureID))
953 { 953 {
954 textureID=InventoryKey(texture, (int)AssetType.Texture); 954 textureID=InventoryKey(texture, (int)AssetType.Texture);
955 } 955 }
956 956
957 if(textureID == LLUUID.Zero) 957 if(textureID == LLUUID.Zero)
958 return; 958 return;
959 959
960 LLObject.TextureEntry tex = m_host.Shape.Textures; 960 LLObject.TextureEntry tex = m_host.Shape.Textures;
961 961
@@ -1610,41 +1610,41 @@ namespace OpenSim.Region.ScriptEngine.Common
1610 1610
1611 public int llGiveMoney(string destination, int amount) 1611 public int llGiveMoney(string destination, int amount)
1612 { 1612 {
1613 LLUUID invItemID=InventorySelf(); 1613 LLUUID invItemID=InventorySelf();
1614 if(invItemID == LLUUID.Zero) 1614 if(invItemID == LLUUID.Zero)
1615 return 0; 1615 return 0;
1616 1616
1617 m_host.AddScriptLPS(1); 1617 m_host.AddScriptLPS(1);
1618 1618
1619 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) 1619 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero)
1620 return 0; 1620 return 0;
1621 1621
1622 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_DEBIT) == 0) 1622 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_DEBIT) == 0)
1623 { 1623 {
1624 LSLError("No permissions to give money"); 1624 LSLError("No permissions to give money");
1625 return 0; 1625 return 0;
1626 } 1626 }
1627 1627
1628 LLUUID toID=new LLUUID(); 1628 LLUUID toID=new LLUUID();
1629 1629
1630 if(!LLUUID.TryParse(destination, out toID)) 1630 if(!LLUUID.TryParse(destination, out toID))
1631 { 1631 {
1632 LSLError("Bad key in llGiveMoney"); 1632 LSLError("Bad key in llGiveMoney");
1633 return 0; 1633 return 0;
1634 } 1634 }
1635 1635
1636 IMoneyModule money=World.RequestModuleInterface<IMoneyModule>(); 1636 IMoneyModule money=World.RequestModuleInterface<IMoneyModule>();
1637 1637
1638 if(money == null) 1638 if(money == null)
1639 { 1639 {
1640 NotImplemented("llGiveMoney"); 1640 NotImplemented("llGiveMoney");
1641 return 0; 1641 return 0;
1642 } 1642 }
1643 1643
1644 bool result=money.ObjectGiveMoney(m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount); 1644 bool result=money.ObjectGiveMoney(m_host.ParentGroup.RootPart.UUID, m_host.ParentGroup.RootPart.OwnerID, toID, amount);
1645 1645
1646 if(result) 1646 if(result)
1647 return 1; 1647 return 1;
1648 1648
1649 return 0; 1649 return 0;
1650 } 1650 }
@@ -1883,57 +1883,57 @@ namespace OpenSim.Region.ScriptEngine.Common
1883 { 1883 {
1884 m_host.AddScriptLPS(1); 1884 m_host.AddScriptLPS(1);
1885 1885
1886 LLUUID invItemID=InventorySelf(); 1886 LLUUID invItemID=InventorySelf();
1887 if(invItemID == LLUUID.Zero) 1887 if(invItemID == LLUUID.Zero)
1888 return; 1888 return;
1889 1889
1890 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) 1890 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero)
1891 return; 1891 return;
1892 1892
1893 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) 1893 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0)
1894 { 1894 {
1895 // Do NOT try to parse LLUUID, animations cannot be triggered by ID 1895 // Do NOT try to parse LLUUID, animations cannot be triggered by ID
1896 LLUUID animID=InventoryKey(anim, (int)AssetType.Animation); 1896 LLUUID animID=InventoryKey(anim, (int)AssetType.Animation);
1897 if(animID == LLUUID.Zero) 1897 if(animID == LLUUID.Zero)
1898 return; 1898 return;
1899 1899
1900 if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) 1900 if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter))
1901 { 1901 {
1902 ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; 1902 ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter];
1903 presence.AddAnimation(animID); 1903 presence.AddAnimation(animID);
1904 } 1904 }
1905 } 1905 }
1906 } 1906 }
1907 1907
1908 public void llStopAnimation(string anim) 1908 public void llStopAnimation(string anim)
1909 { 1909 {
1910 m_host.AddScriptLPS(1); 1910 m_host.AddScriptLPS(1);
1911 1911
1912 LLUUID invItemID=InventorySelf(); 1912 LLUUID invItemID=InventorySelf();
1913 if(invItemID == LLUUID.Zero) 1913 if(invItemID == LLUUID.Zero)
1914 return; 1914 return;
1915 1915
1916 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) 1916 if(m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero)
1917 return; 1917 return;
1918 1918
1919 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0) 1919 if((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION) != 0)
1920 { 1920 {
1921 LLUUID animID = new LLUUID(); 1921 LLUUID animID = new LLUUID();
1922 1922
1923 if(!LLUUID.TryParse(anim, out animID)) 1923 if(!LLUUID.TryParse(anim, out animID))
1924 { 1924 {
1925 animID=InventoryKey(anim); 1925 animID=InventoryKey(anim);
1926 } 1926 }
1927 1927
1928 if(animID == LLUUID.Zero) 1928 if(animID == LLUUID.Zero)
1929 return; 1929 return;
1930 1930
1931 if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter)) 1931 if (World.m_innerScene.ScenePresences.ContainsKey(m_host.TaskInventory[invItemID].PermsGranter))
1932 { 1932 {
1933 ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter]; 1933 ScenePresence presence = World.m_innerScene.ScenePresences[m_host.TaskInventory[invItemID].PermsGranter];
1934 presence.RemoveAnimation(animID); 1934 presence.RemoveAnimation(animID);
1935 } 1935 }
1936 } 1936 }
1937 } 1937 }
1938 1938
1939 public void llPointAt() 1939 public void llPointAt()
@@ -1972,108 +1972,108 @@ namespace OpenSim.Region.ScriptEngine.Common
1972 1972
1973 public void llRequestPermissions(string agent, int perm) 1973 public void llRequestPermissions(string agent, int perm)
1974 { 1974 {
1975 LLUUID agentID=new LLUUID(); 1975 LLUUID agentID=new LLUUID();
1976 1976
1977 if(!LLUUID.TryParse(agent, out agentID)) 1977 if(!LLUUID.TryParse(agent, out agentID))
1978 return; 1978 return;
1979 1979
1980 LLUUID invItemID=InventorySelf(); 1980 LLUUID invItemID=InventorySelf();
1981 1981
1982 if(invItemID == LLUUID.Zero) 1982 if(invItemID == LLUUID.Zero)
1983 return; // Not in a prim? How?? 1983 return; // Not in a prim? How??
1984 1984
1985 if(agentID == LLUUID.Zero || perm == 0) // Releasing permissions 1985 if(agentID == LLUUID.Zero || perm == 0) // Releasing permissions
1986 { 1986 {
1987 m_host.TaskInventory[invItemID].PermsGranter=LLUUID.Zero; 1987 m_host.TaskInventory[invItemID].PermsGranter=LLUUID.Zero;
1988 m_host.TaskInventory[invItemID].PermsMask=0; 1988 m_host.TaskInventory[invItemID].PermsMask=0;
1989 1989
1990 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 1990 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
1991 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); 1991 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0});
1992 1992
1993 return; 1993 return;
1994 } 1994 }
1995 1995
1996 m_host.AddScriptLPS(1); 1996 m_host.AddScriptLPS(1);
1997 1997
1998 bool attachment=false; // Attachments not implemented yet. TODO: reflect real attachemnt state 1998 bool attachment=false; // Attachments not implemented yet. TODO: reflect real attachemnt state
1999 1999
2000 if(attachment && agent == m_host.OwnerID) 2000 if(attachment && agent == m_host.OwnerID)
2001 { 2001 {
2002 // When attached, certain permissions are implicit if requested from owner 2002 // When attached, certain permissions are implicit if requested from owner
2003 int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TAKE_CONTROLS | 2003 int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TAKE_CONTROLS |
2004 BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | 2004 BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION |
2005 BuiltIn_Commands_BaseClass.PERMISSION_ATTACH; 2005 BuiltIn_Commands_BaseClass.PERMISSION_ATTACH;
2006 2006
2007 if((perm & (~implicitPerms)) == 0) // Requested only implicit perms 2007 if((perm & (~implicitPerms)) == 0) // Requested only implicit perms
2008 { 2008 {
2009 m_host.TaskInventory[invItemID].PermsGranter=agentID; 2009 m_host.TaskInventory[invItemID].PermsGranter=agentID;
2010 m_host.TaskInventory[invItemID].PermsMask=perm; 2010 m_host.TaskInventory[invItemID].PermsMask=perm;
2011 2011
2012 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2012 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2013 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); 2013 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm});
2014 2014
2015 return; 2015 return;
2016 } 2016 }
2017 } 2017 }
2018 else if(m_host.m_sitTargetAvatar == agentID) // Sitting avatar 2018 else if(m_host.m_sitTargetAvatar == agentID) // Sitting avatar
2019 { 2019 {
2020 // When agent is sitting, certain permissions are implicit if requested from sitting agent 2020 // When agent is sitting, certain permissions are implicit if requested from sitting agent
2021 int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION | 2021 int implicitPerms = BuiltIn_Commands_BaseClass.PERMISSION_TRIGGER_ANIMATION |
2022 BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA; 2022 BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA;
2023 2023
2024 if((perm & (~implicitPerms)) == 0) // Requested only implicit perms 2024 if((perm & (~implicitPerms)) == 0) // Requested only implicit perms
2025 { 2025 {
2026 m_host.TaskInventory[invItemID].PermsGranter=agentID; 2026 m_host.TaskInventory[invItemID].PermsGranter=agentID;
2027 m_host.TaskInventory[invItemID].PermsMask=perm; 2027 m_host.TaskInventory[invItemID].PermsMask=perm;
2028 2028
2029 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2029 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2030 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm}); 2030 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)perm});
2031 2031
2032 return; 2032 return;
2033 } 2033 }
2034 } 2034 }
2035 2035
2036 if (World.m_innerScene.ScenePresences.ContainsKey(agentID)) 2036 if (World.m_innerScene.ScenePresences.ContainsKey(agentID))
2037 { 2037 {
2038 string ownerName=resolveName(m_host.ParentGroup.RootPart.OwnerID); 2038 string ownerName=resolveName(m_host.ParentGroup.RootPart.OwnerID);
2039 if(ownerName == String.Empty) 2039 if(ownerName == String.Empty)
2040 ownerName="(hippos)"; 2040 ownerName="(hippos)";
2041 2041
2042 ScenePresence presence = World.m_innerScene.ScenePresences[agentID]; 2042 ScenePresence presence = World.m_innerScene.ScenePresences[agentID];
2043 if(!m_waitingForScriptAnswer) 2043 if(!m_waitingForScriptAnswer)
2044 { 2044 {
2045 m_host.TaskInventory[invItemID].PermsGranter=agentID; 2045 m_host.TaskInventory[invItemID].PermsGranter=agentID;
2046 m_host.TaskInventory[invItemID].PermsMask=0; 2046 m_host.TaskInventory[invItemID].PermsMask=0;
2047 presence.ControllingClient.OnScriptAnswer+=handleScriptAnswer; 2047 presence.ControllingClient.OnScriptAnswer+=handleScriptAnswer;
2048 m_waitingForScriptAnswer=true; 2048 m_waitingForScriptAnswer=true;
2049 } 2049 }
2050 2050
2051 presence.ControllingClient.SendScriptQuestion(m_host.UUID, m_host.ParentGroup.RootPart.Name, ownerName, invItemID, perm); 2051 presence.ControllingClient.SendScriptQuestion(m_host.UUID, m_host.ParentGroup.RootPart.Name, ownerName, invItemID, perm);
2052 return; 2052 return;
2053 } 2053 }
2054 2054
2055 // Requested agent is not in range, refuse perms 2055 // Requested agent is not in range, refuse perms
2056 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2056 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2057 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0}); 2057 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)0});
2058 } 2058 }
2059 2059
2060 void handleScriptAnswer(IClientAPI client, LLUUID taskID, LLUUID itemID, int answer) 2060 void handleScriptAnswer(IClientAPI client, LLUUID taskID, LLUUID itemID, int answer)
2061 { 2061 {
2062 if(taskID != m_host.UUID) 2062 if(taskID != m_host.UUID)
2063 return; 2063 return;
2064 2064
2065 LLUUID invItemID=InventorySelf(); 2065 LLUUID invItemID=InventorySelf();
2066 2066
2067 if(invItemID == LLUUID.Zero) 2067 if(invItemID == LLUUID.Zero)
2068 return; 2068 return;
2069 2069
2070 client.OnScriptAnswer-=handleScriptAnswer; 2070 client.OnScriptAnswer-=handleScriptAnswer;
2071 m_waitingForScriptAnswer=false; 2071 m_waitingForScriptAnswer=false;
2072 2072
2073 m_host.TaskInventory[invItemID].PermsMask=answer; 2073 m_host.TaskInventory[invItemID].PermsMask=answer;
2074 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2074 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2075 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)answer}); 2075 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {(int)answer});
2076 } 2076 }
2077 2077
2078 public string llGetPermissionsKey() 2078 public string llGetPermissionsKey()
2079 { 2079 {
@@ -2083,7 +2083,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2083 { 2083 {
2084 if(item.Type == 10 && item.ItemID == m_itemID) 2084 if(item.Type == 10 && item.ItemID == m_itemID)
2085 { 2085 {
2086 return item.PermsGranter.ToString(); 2086 return item.PermsGranter.ToString();
2087 } 2087 }
2088 } 2088 }
2089 2089
@@ -2098,7 +2098,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2098 { 2098 {
2099 if(item.Type == 10 && item.ItemID == m_itemID) 2099 if(item.Type == 10 && item.ItemID == m_itemID)
2100 { 2100 {
2101 return item.PermsMask; 2101 return item.PermsMask;
2102 } 2102 }
2103 } 2103 }
2104 2104
@@ -3997,24 +3997,24 @@ namespace OpenSim.Region.ScriptEngine.Common
3997 LSLError("First parameter to llDialog needs to be a key"); 3997 LSLError("First parameter to llDialog needs to be a key");
3998 return; 3998 return;
3999 } 3999 }
4000 if(buttons.Length > 12) 4000 if(buttons.Length > 12)
4001 { 4001 {
4002 LSLError("No more than 12 buttons can be shown"); 4002 LSLError("No more than 12 buttons can be shown");
4003 return; 4003 return;
4004 } 4004 }
4005 string[] buts = new string[buttons.Length]; 4005 string[] buts = new string[buttons.Length];
4006 for(int i = 0; i < buttons.Length; i++) 4006 for(int i = 0; i < buttons.Length; i++)
4007 { 4007 {
4008 if(buttons.Data[i].ToString() == String.Empty) 4008 if(buttons.Data[i].ToString() == String.Empty)
4009 { 4009 {
4010 LSLError("button label cannot be blank"); 4010 LSLError("button label cannot be blank");
4011 return; 4011 return;
4012 } 4012 }
4013 if(buttons.Data[i].ToString().Length > 24) 4013 if(buttons.Data[i].ToString().Length > 24)
4014 { 4014 {
4015 LSLError("button label cannot be longer than 24 characters"); 4015 LSLError("button label cannot be longer than 24 characters");
4016 return; 4016 return;
4017 } 4017 }
4018 buts[i] = buttons.Data[i].ToString(); 4018 buts[i] = buttons.Data[i].ToString();
4019 } 4019 }
4020 World.SendDialogToUser(av, m_host.Name, m_host.UUID, m_host.OwnerID, message, new LLUUID("00000000-0000-2222-3333-100000001000"), chat_channel, buts); 4020 World.SendDialogToUser(av, m_host.Name, m_host.UUID, m_host.OwnerID, message, new LLUUID("00000000-0000-2222-3333-100000001000"), chat_channel, buts);
@@ -5137,16 +5137,16 @@ namespace OpenSim.Region.ScriptEngine.Common
5137 { 5137 {
5138 m_host.AddScriptLPS(1); 5138 m_host.AddScriptLPS(1);
5139 5139
5140 if(quick_pay_buttons.Data.Length != 4) 5140 if(quick_pay_buttons.Data.Length != 4)
5141 { 5141 {
5142 LSLError("List must have 4 elements"); 5142 LSLError("List must have 4 elements");
5143 return; 5143 return;
5144 } 5144 }
5145 m_host.ParentGroup.RootPart.PayPrice[0]=price; 5145 m_host.ParentGroup.RootPart.PayPrice[0]=price;
5146 m_host.ParentGroup.RootPart.PayPrice[1]=(int)quick_pay_buttons.Data[0]; 5146 m_host.ParentGroup.RootPart.PayPrice[1]=(int)quick_pay_buttons.Data[0];
5147 m_host.ParentGroup.RootPart.PayPrice[2]=(int)quick_pay_buttons.Data[1]; 5147 m_host.ParentGroup.RootPart.PayPrice[2]=(int)quick_pay_buttons.Data[1];
5148 m_host.ParentGroup.RootPart.PayPrice[3]=(int)quick_pay_buttons.Data[2]; 5148 m_host.ParentGroup.RootPart.PayPrice[3]=(int)quick_pay_buttons.Data[2];
5149 m_host.ParentGroup.RootPart.PayPrice[4]=(int)quick_pay_buttons.Data[3]; 5149 m_host.ParentGroup.RootPart.PayPrice[4]=(int)quick_pay_buttons.Data[3];
5150 } 5150 }
5151 5151
5152 public LSL_Types.Vector3 llGetCameraPos() 5152 public LSL_Types.Vector3 llGetCameraPos()