Change font size
It is currently Sun Jul 22, 2018 2:49 pm

Forum rules


{L_IMAGE}



Post a new topicPost a reply Page 1 of 4   [ 32 posts ]
Go to page 1, 2, 3, 4  Next
Author Message
 Post subject: [HyperGrid] TelePortal System, Complete (UPDATED MAY.24.10)
PostPosted: Mon May 11, 2009 12:35 pm 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
NOTE: This System is DEPRECATED and I am no longer supporting this Code.
I have designed a new system and am awaiting on the completion of HG-2 prior to my releasing it. I will occassionally update this notecard for those who are still using this system but it will be irregular.

NOTE on POST 3 of this Thread is Operational Scripts and instructions to make your own HyperGrid Portal.
Patches, Updates & HyperGrid List, are being posted (replacing the scripts etc) on that posting.
Keep a close eye on it as this is evolving!

NOTE NEW INFO HERE (AUGUST-1-2009) :
HGLocations Notecard Now Relocated to THIS First Posting for easier Access
Updated List MAY-24-2010


REGISTER your Hypergrid Region/Standalone/Grid there at http://www.gridhop.net/cgi/newdest
Thanks to Tx Oh @ OSGrid for GridHop.

You can NOW UPDATE the HGLocations Notecard from http://www.gridhop.net/cgi/gridhopexport?format=notecard
BUT That is a different format now, the new format is as shown below. Edit to remove the extra fields to use with THIS Script Set.HgSite=GridName|TargetName|ImgID|TargetAddress:port|<TargetLandingVector>|<TargetLookAtVector>|TAG1|TAG2|TAG3


ATTENTION : The Notecard format has changed on the GridHop Website because I have redesigned the system completely!
This will be released soon as it is in testing presently.

[HGLocations Notecard]
UPDATED MAY-24-2010


{L_CODE}:
# <---  this is a comment 
# UPDATED: 2010-05-24 @ 12:36:47 UTC
# This list generated from:
#    http://www.gridhop.net/cgi/gridhopexport?format=notecard
#    Total Records Provided: 144
#   NOTE - That Data is NOT in this Format
#   HgSite=GridName|TargetName|ImgID|TargetAddress:port|<TargetLandingVector>|<TargetLookAtVector>|TAG1|TAG2|TAG3
#
# Other List Available at
#    http://opensimulator.org/wiki/Public_Hypergrid_Nodes
# !! SORTED ALPHABETICALLY on RegionName
#
# ------ HyperGrid Notecard FORMAT (VERSION-1)
# HgSite=TargetName|TargetAddress:port|<TargetLandingVector>|<TargetLookAtVector>
#   NOTE  TargetName MAX SIZE = 24 (will cause menu to fail). Shorter is Better
#
# GRIDHOP DATA - CORRECTED TO VERSION 1
#
HgSite=Nile|grid.andsky.ca:9203|<127,127,24>
HgSite=Architecture|66.240.233.68:9000|<110,147,23>
HgSite=accueil|88.164.70.62:9903|<127,127,70>
HgSite=Austria 1|62.40.147.45:9100|<127,127,70>
HgSite=HyperGrid 1|71.6.200.52:9700|<128,128,23>
HgSite=Birnenland|birnenland.de:9040|<128,128,0>
HgSite=Breathe|87.118.120.180:9000|<128,128,21>
HgSite=Agra|craft.seenet.it:9000|<88,118,29>
HgSite=Hydra|craft.seenet.it:9000|<128,128,21>
HgSite=Actarus|94.23.46.112:9200|<215,135,26>
HgSite=Architettura|91.121.202.10:9000|<127,127,70>
HgSite=Bora Bora|94.23.61.191:9000|<128,127,22>
HgSite=Born To Learn|94.23.193.186:15000|<127,127,70>
HgSite=Cost Island|94.23.61.191:9000|<131,127,21>
HgSite=Cyberlandia|grid.cyberlandia.net:9000|<128,128,30>
HgSite=Grid Home|91.121.198.39:9000|<1000,1000,1000>
HgSite=Ling(est)|94.23.196.65:9000|<164,114,22>
HgSite=Maiao Iti|94.23.61.191:9000|<119,90,21>
HgSite=Maupiti|94.23.61.191:9000|<163,136,21>
HgSite=Mehetia|94.23.61.191:9000|<101,139,26>
HgSite=Moorea|94.23.61.191:9000|<140,149,21>
HgSite=Motu One|94.23.61.191:9000|<54,126,21>
HgSite=Museo del Metaverso|94.23.35.77:9000|<89,123,32>
HgSite=Pyramidosita|94.23.193.186:15000|<127,127,70>
HgSite=Roma|94.23.22.158:9000|<127,127,70>
HgSite=Tetiaroa|94.23.61.191:9000|<138,126,22>
HgSite=Tupai|94.23.61.191:9000|<147,172,22>
HgSite=Venezia|94.23.14.28:9000|<190,135,22>
HgSite=SylveLand|djinnmetaverse.dynalias.net:9000|<247,259,23>
HgSite=Dorenas World|62.75.242.247:9000|<127,127,70>
HgSite=dorenas world|87.106.30.244:9000|<127,127,70>
HgSite=Agolorium|82.30.71.119:9000|<127,127,70>
HgSite=Hypergridgate|86.2.85.164:9000|<127,127,70>
HgSite=Welcome|86.2.85.164:9000|<127,127,70>
HgSite=EFGrid Welcome Center|evilforce.ru:11000|<128,128,23>
HgSite=CambosFM|188.165.36.210:9015|<127,160,26>
HgSite=castle|88.164.70.62:9902|<187,183,24>
HgSite=castles mare|94.23.200.218:9903|<127,127,70>
HgSite=Cevennes|castor.zipili.net:9120|<127,145,25>
HgSite=Gaia|gaia.scrapping.cc:9000|<128,128,22>
HgSite=Tarian|germangrid.net:9008|<127,127,70>
HgSite=Beach Disco|62.75.252.59:9000|<128,187,22>
HgSite=Grid4Us Welcome|grid4us.net:9020|<128,128,25>
HgSite=Marina|grid4us.net:8998|<112,79,25>
HgSite=Mystique Valley|www.grid4us.net:8998|<183,106,23>
HgSite=virtual law|85.214.75.189:9000|<128,128,25>
HgSite=*HyperGate*|grid.andres-seite.de:9104|<127,127,70>
HgSite=Ignis Fatuus 11|manaz.dyndns.biz:9050|<127,127,70>
HgSite=Jamland|jamland.de:9300|<203,177,27>
HgSite=Kims World|angelsworld.dyndns.org:8002|<198,163,23>
HgSite=Huge Paws|kubwa.de:9000|<128,150,22>
HgSite=logicamp|logicamp.dyndns.org:9300|<127,127,70>
HgSite=Loki|92.236.93.23:9000|<127,127,70>
HgSite=Meanduland|meanduland.com:9124|<128,128,151>
HgSite=MetaGridNet 1|metagridnet.com:9000|<127,127,70>
HgSite=Iti Motu Resort|metaversesims.net:9000|<127,127,30>
HgSite=*Wave*|server28.webgo24.de:9000|<127,127,70>
HgSite=IMC_FreeCulture|85.214.144.62:9000|<133,162,22>
HgSite=Teleportationscenter|jimbo0815.homelinux.com:9000|<128,128,28>
HgSite=Over Land|myopengrid.com:9005|<127,127,70>
HgSite=Ongoe|ongoe.mine.nu:9000|<127,127,70>
HgSite=*Wave*|v34784.1blu.de:9200|<127,127,70>
HgSite=Abyss|ssm.it.cx:9000|<127,232,31>
HgSite=AdNovea Sims|adnovea.com:9005|<128,128,22>
HgSite=Allegria|h1465828.stratoserver.net:9000|<127,127,23>
HgSite=Art5|98.142.211.121:9000|<127,127,70>
HgSite=artiska|88.164.70.62:9904|<127,127,70>
HgSite=Blearg|mariagrot.dyndns.org:9000|<23,23,23>
HgSite=castleB|88.164.70.62:9900|<56,86,30>
HgSite=Diaspora|tx.icf.de:9095|<146,72,47>
HgSite=Domain|osgrid.compinche.net:9000|<142,157,22>
HgSite=Dutchmaster|osgrid.homedns.org:9000|<128,128,25>
HgSite=Free_Software_Free_Cultu|77.167.123.149:9000|<128,120,44>
HgSite=Freiland|tx.icf.de:9200|<112,111,50>
HgSite=Freiland|tx.icf.de:9200|<127,193,123>
HgSite=Freiland|tx.icf.de:9200|<88,49,22>
HgSite=galapagos|mariagrot.dyndns.org:9000|<98,111,23>
HgSite=Greenmeadow|greenmeadow.ath.cx:9095|<128,128,25>
HgSite=griditalia|87.98.173.157:8002|<127,127,70>
HgSite=IMAGENHARIA|vendasmais.ddns.com.br:9000|<128,128,25>
HgSite=Imagine Metaverse Core|multiverse.imagine-tech.com:9000|<127,127,70>
HgSite=Kliederaar|77.167.123.149:9000|<130,126,46>
HgSite=Ko Ngan|80.190.98.114:9030|<127,127,23>
HgSite=LDizzy East|ldizzygrid.gotdns.org:9000|<127,127,25>
HgSite=Lost-Region|96.31.93.99:9007|<128,128,43>
HgSite=Lunga Sea|188.138.3.87:9020|<127,127,70>
HgSite=mynameisdeleted13|sschuresko.merseine.nu:9900|<127,127,70>
HgSite=New Hope|nahona.be:9000|<128,128,70>
HgSite=pelguise|91.121.87.101:9000|<127,127,70>
HgSite=Quirm|warincascabel.homelinux.net:9506|<127,127,70>
HgSite=Samsara|66.240.232.94:9010|<167,52,22>
HgSite=Samsara|66.240.232.94:9010|<127,127,70>
HgSite=Skyz|skybinary.selfip.com:9000|<127,127,27>
HgSite=Snoopies|66.240.232.94:9011|<127,127,70>
HgSite=Snoopies|66.240.232.94:9011|<167,52,22>
HgSite=The Factory|duvert.cupiodissolvi.com:9000|<20,234,302>
HgSite=White Wolf|whitewolf.dynalias.org:9000|<98,131,22>
HgSite=WorldSimTerra HG-01|gs801.wsterra.com:9101|<84,80,22>
HgSite=Wright Plaza|plaza02.osgrid.org:9101|<128,128,22>
HgSite=PhoenixByrdSA|phoenixbyrd.ath.cx:8002|<125,130,24>
HgSite=Playneko Entrance|87.106.68.177:9100|<128,128,22>
HgSite=Art02|julpet.ath.cx:9020|<127,127,70>
HgSite=ART03|julpet.ath.cx:9020|<127,127,70>
HgSite=Psychedelia 1|62.40.147.45:9090|<127,127,70>
HgSite=Hannover ZW|meverhagen.nl:9300|<128,128,30>
HgSite=Peace|sanctuary.homelinux.org:9000|<159,218,31>
HgSite=Gateway Lower|m2.virtualportland.org:9002|<127,127,70>
HgSite=Gateway Upper|m2.virtualportland.org:9001|<127,127,70>
HgSite=Breathe|87.118.120.180:9000|<128,128,21>
HgSite=check|dynapad.orang.org:8002|<127,127,70>
HgSite=HGOSDUXT|osduxt.no-ip.org:9000|<127,127,70>
HgSite=Humbug Cove|68.227.231.8:9000|<160,137,22>
HgSite=Jans Schmiede 1|jhs.no-ip.info:9000|<108,53,23>
HgSite=Kirilisa|kirilisa.homeip.net:9000|<128,128,21>
HgSite=Lambda|s.yi.org:9000|<127,127,140>
HgSite=NixTech Forge|97.107.142.118:9300|<95,82,51>
HgSite=Ongoe|ongoe.mine.nu:9000|<127,127,70>
HgSite=OpenParadise|so-fort.de:9000|<112,154,22>
HgSite=PeaceMans|v34784.1blu.de:9000|<127,127,70>
HgSite=Reine1|rsgrid.ath.cx:9000|<128,128,25>
HgSite=Sandbox|magicben.dyndns.org:9000|<128,128,70>
HgSite=Welfarea|v34784.1blu.de:9000|<127,127,70>
HgSite=Welfarea|88.84.129.131:9300|<127,127,70>
HgSite=World of Angels|angelsworld.dyndns.org:9000|<113,128,40>
HgSite=World of Angels|angelsworld.dyndns.org:9000|<113,128,40>
HgSite=Xing|76.188.209.193:9000|<73,133,35>
HgSite=SwissOpenSim|62.167.242.69:8002|<128,128,21>
HgSite=Ted1|toms-world.dyndns.org:9000|<127,127,70>
HgSite=Welcome region|atalanta.ath.cx:9000|<128,128,25>
HgSite=Toronto|heliosgrid.no-ip.org:9000|<127,127,26>
HgSite=TomsHome|toms-world.dyndns.org:9000|<127,127,70>
HgSite=TomsHome|toms-world.dyndns.org:8002|<127,127,70>
HgSite=Welcome|twistedsky.net:9000|<154,106,23>
HgSite=Welcome|sim2.v-business.com:9000|<127,127,24>
HgSite=Welcome|landofvikings.de:9050|<127,127,70>
HgSite=Graceland|m01.virtyou.com:11030|<112,112,25>
HgSite=Luchsenburg|m08.virtyou.com:11033|<150,200,35>
HgSite=Ninesim|m08.virtyou.com:11051|<94,124,24>
HgSite=Waterland01|m06.virtyou.com:11065|<77,67,34>
HgSite=Atlantis Magnolia|grid-ww.talentraspel.de:9000|<127,127,70>
HgSite=Gateway 3000|grid-ww.talentraspel.de:9002|<127,127,70>
HgSite=Gateway 7000|grid-ww.talentraspel.de:9001|<127,127,70>
HgSite=YourSimSpot|YourSimSpot.com:9000|<127,127,70>


Part-1 Setting your Server

Special Note: HyperGrid Transport can be done a couple of way at this time. I am only addressing it by using the OSSL functions. These can ONLY be installed by the owner of a Region Server as certain things must be enabled inside the OpenSim.ini The Region (Server) Owner has to Own & Rez the scripted device for it to function. This is because it is an osFunction Call.

!!!!! ONLY INSTALLABLE BY REGION SERVER OWNERS !!!!!

Installation:
1) Server Requirements:
This device uses osTeleportAgent and therefore requires that os functions be enabled in the OpenSim.ini
The LSL code used is only valid with the XEngine being enabled on the server as well.

Enabling osFunctions in OpenSim.ini

{L_CODE}:
    [ScriptEngine.DotNetEngine]
        Enabled = true
   
        ; Allow the use of os* functions (some are dangerous)
        ; Default is false
        AllowOSFunctions = true

        ; Threat level to allow if os functions are enabled
        ; One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
        ; Default is VeryLow
        OSFunctionThreatLevel = Low
   
    [XEngine]
        ; Enable this engine in this OpenSim instance
        Enabled = true

        ; Allow the use of os* functions (some are dangerous)
        AllowOSFunctions = true

        ; REPLACE the 000-UUID  below with YOUR (Region/Sim Owner) UUID
        Allow_osTeleportAgent = 00000000-0000-0000-0000-000000000000

        ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
        OSFunctionThreatLevel = Low


UPDATE JUNE 2,2009
{L_CODE}:
; REPLACE the 000-UUID  below with YOUR (Region/Sim Owner) UUID
        Allow_osTeleportAgent = true

This allows anyone to place a device with osTeleportAgent in it. !!!! USE WITH EXTREME CAUTION !!!!

Scripts, Documentation etc... follow on Post # 3
All Patches and Mods to the Base will be posted on THAT PAGE

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Last edited by WhiteStar Magic on Mon May 24, 2010 8:07 am, edited 18 times in total.
updated notecard data


Top
 Profile  
 
 Post subject: Re: HyperGrid LIST, Install, Scripts etc...
PostPosted: Mon May 11, 2009 11:02 pm 

Joined: Wed May 06, 2009 7:26 am
Posts: 28
what about grid owners?
I also run 3 regions with one opensim.ini how woudl i make this work with all the regions. At the moment hthere is only one listen port 9000?

Any help more then welcomed.

Thanks
Russell Harrower


Top
 Profile  
 
 Post subject: Re: HyperGrid LIST, Install, Scripts etc...
PostPosted: Tue May 12, 2009 1:18 am 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
OK Folks... Here we go !

First... I started by taking the one I had been developing for the last couple of days and recoding it as I had hacked it together to get the concept nailed down and into the testing process.... Well... As things would have it, I kinda got into it! (dunno why that happens but it does) LOL :geek: So the end result is somewhat more than what I had planned to drop into the OpenSource universe but what the heck. I've been using it to HyperGrid Jump around and it's working just peachy as far as I can tell. Is it Perfect ? Heck No ! It IS an Educational Exercise to help others be able to HG Jump Around at will.

CAVEAT EMPTOR & WARNINGS
This is released AS/IS! WHEREIS !! NO WARRANTY EXPRESSED OR IMPLIED!!! I ACCEPT NO RESPONSIBILITY WHATSOEVER !!!!
It IS Open Source to Anyone who wants to use! The ONLY CONDITION That I place on this code, is that Credit to it's source remains with me
AND if you Mod it, Adapt it, Fold/Spindle/Mutilate or Sit on it, share your findings and so that everyone can benefit.

OK that's out of the way... I don't think I can get any more clear about it. OOPS Almost forgot (LMAO) Support... If you have a problem or something needs fixing (of my own doing and not yours) I will attend to it as time permits. I won't rewrite it to suit anyones whims or fancies. There... That's Got it !

PATCHES Applied List
May-12-09 Added an extra set of lines into changed event, related to llVolumeDetect & Region Restart.
. Issue & Solution noted by Warin Cascabel in Post http://osgrid.org/forums/viewtopic.php?f=5&t=1122&start=10
May-21-09
. Issue Multiple attempts to Teleport Avatar. Solution provided by Tiffany Sicling OSGrid. Tested and implemented into Base code this date.
. Further issue related to resetting for llVolumeDetect. Implemented an alternative method and this seems to have further enhance previous solution.
June-02-09
. Made an additional "DeBouce" change to MAIN SCRIPT. UPDATE ACCORDINGLY !
June-05-09
!! MAIN SCRIPT !!
. Modified Debouce yet again
. Changed to reset script on notecard change as it was having update issues, reset solves it.


VERSION CHANGE now to V.0.3d.
Update your Main Script Accordingly


SPECIAL NOTES:
You cannot HyperGrid back to your HOME Region. This may or may not get get fixed in future HG Code in OpenSim. Call it a Quirk!

[DOCUMENTATION] (imagine that, a ReadMe)

ASSEMBLY:
1- Large Prim which is to be ROOT Prim, Containing the Core Script, ReadMe NoteCard, and HGLocations NoteCard.
2- Small Prims, linked to Root. Named UP & DN. Each with their respective scripts as supplied.
1- Prim Named MENU. Button containing the Menu Script.
1- Prim Named HELP. Button containing Help Script.
All Prims LINKED to the LARGE Root Prim.

INFORMATION TO CHANGE YOUR OPENSIM.INI
{L_CODE}:
FirstStar TelePortal Base System.
Rev. 0.02 (prototype)

Author:     WhiteStar Magic
Date:        May.11.2009 (Public Release Experimental)

Licence/Use: 
    OpenSource / OpenLicense
    Only Condition: Please Give Credit for the work already done !

Support:
        Please contact me in OSGrid should there be any issues with the system.  It would be preferred to have a notecard
        which outline any issues or problems that may appear during the initial test process.
        If there is a severe issues and ONLY severe issues
        Suggestions & Input are welcome and desired to further improve and build upon.  They may take some time to implement
        as my Real Life is quite busy especially at this time.
       
!!!!!    ONLY INSTALLABLE BY REGION OWNERS    !!!!!
       
Installation:
1) Server Requirements:
    This device uses osTeleportAgent and therefore requires that os functions be enabled in the OpenSim.ini
    The LSL code used is only valid with the XEngine being enabled on the server as well.
   
    Enabling osFunctions in OpenSim.ini
   
    [ScriptEngine.DotNetEngine]
        Enabled = true
   
        ; Allow the use of os* functions (some are dangerous)
        ; Default is false
        AllowOSFunctions = true

        ; Threat level to allow if os functions are enabled
        ; One of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
        ; Default is VeryLow
        OSFunctionThreatLevel = Low
   
    [XEngine]
        ; Enable this engine in this OpenSim instance
        Enabled = true

        ; Allow the use of os* functions (some are dangerous)
        AllowOSFunctions = true

        ; REPLACE the 000-UUID  below with YOUR (Region/Sim Owner) UUID
        Allow_osGetSimulatorVersion = 00000000-0000-0000-0000-000000000000
        Allow_osTeleportAgent = 00000000-0000-0000-0000-000000000000

        ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
        OSFunctionThreatLevel = Low

[b] AS OF REVISION 9700+  (The new OpenSim.ini config)[/b]
[Architecture]
    ; Choose exactly ONE and only ONE of the architectures below.
   
    ;Include-Standalone    = "config-include/Standalone.ini"
    ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
    ;Include-Grid         = "config-include/Grid.ini"
    Include-HGGrid = "config-include/GridHypergrid.ini"


2)  Locations NoteCard (example provided at bottom of this NoteCard)
    This is how the list of available Teleport addresses is loaded into the system.
   
3)  Rez device & Place it where you want it.  Enjoy Jumping around The Grid(s)
    !!  ONLY A REGION OWNER CAN PLACE THIS SYSTEM.   
    !!  IF YOU DO NOT OWN YOUR OWN FULL REGION, NO GOOD FOR YOU !

4)  LIST SIZE !!!
    This is an interesting problem.  In LL/SL   LSL Scripts (non Mono) have a 16K cap, this limits the size of lists to approx 72 entries
    This is OS...   How far can it be pushed ?   I guess we are gonna find out !  Right now, it is a guessing game as I cannot find / get any
    definitive answer to that question.
    After some in-world tests, JULY,2009 Lists can reach up to 2000 entries! depending on content. 
    My initial tests revealed that 2172 UUIDS can be stored in a simple list with a simple script.
    !! This will vary of course with the amount of data stored in the lists themselves and the amount of bytes the script uses.[/b]
   
    Please let me know IF you wind up having issues (Stack Heap) and I will need to know just how many entries are in the list.
   
    I do suggest that you keep it simple, it will be easier for people to use if there is less than 25 entries.   It's a lot to scroll through! 
    The User Menu is Dynamic and will increase in size, but that can also get quite messy if it is more than a couple of pages deep



[MAIN SCRIPT] (UPDATED JUNE-05-09)
{L_CODE}:
//XEngine:lsl

// ----------------------------------------------------------------
// Script Title:    HyperGrid_BaseScript V.0.3d   (CORE)
// Created by:       WhiteStar Magic
// Creation Date:   May.11.2009
// Platforms:
//    OpenSim:       Y    OSGrid 
//    OpenSim Version 0.6.5.9700
// 
// Revision:        0.3d  June.05.09 @ 10:30
// Revision History:
//  0.3b changed collision to end, increased time for added debouncing (repeated TP attempts) in collisions.
//  0.3c changed settings related to collision timing
//  0.3d added resertscript() when notecard changed.  Seems that it was not reading in data correctly and updating. 
//
// Revision Contributors:
//  0.3 patch submitted by Tiffany Sicling @ OSGrid
//
//
//
// Conditions:
// Please maintain this header. If you modify the script indicate your
// revision details / enhancements
// ================================================================
// General Information:
//    Operational / functional on OpenSim Rev. 9395
//    Subject to change depending on future revisions
//    Dependencies require ossl & XEngine functions
//    see section immediately below for OpenSim.ini mods
// [ScriptEngine.DotNetEngine]
//        Enabled = true
//        AllowOSFunctions = true
//        OSFunctionThreatLevel = Low
// [XEngine]
//        Enabled = true
//        AllowOSFunctions = true
//
//        ; REPLACE the 000-UUID  below with YOUR (Region/Sim Owner) UUID for OWNER ONLY to install on Region
//        Allow_osTeleportAgent = 00000000-0000-0000-0000-000000000000
//                           OR  for ANYONE to be able to install osTeleport Enabled Scripts on region (!!!CAUTION!!!)
//        Allow_osTeleportAgent = true
//
//        ; Threat level to allow, one of None, VeryLow, Low, Moderate, High, VeryHigh, Severe
//        OSFunctionThreatLevel = Low
//
// AS OF REVISION 9700+  (The new OpenSim.ini config)
//[Architecture]
//    ; Choose exactly ONE and only ONE of the architectures below.
//   
//    ;Include-Standalone    = "config-include/Standalone.ini"
//    ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
//    ;Include-Grid         = "config-include/Grid.ini"
//    Include-HGGrid = "config-include/GridHypergrid.ini"
//
//
// Licensing:
// OpenSource Component, use AS/IS, Whereis
// This is for educational purposes.  No Warranty Expressed or Implied
// Support is limited to the original authors discretion OR contributors
// So do as you will with it.
// ================================================================
// ** SCRIPT NOTES **
//    This system reads a Notecard "HGLocations" of HyperGrid Addresses in and stores
//    the info in a list
//
//    -This Script is designed to operate within the ROOT PRIM that AVATAR will walk/step through TP
//    -2 Scroll Button Prims (UP & DN) communicate to this script to go through list
//    -1 Help Button Prim, Raises Menu & Dialog
//    -1 Menu Button Prim, Raises Selection Teleport Menu
//     examples provided separately.
//   
// NoteCard Format:
//  HgSite=TargetName|TargetAddress:port|<TargetLandingVector>|<TargetLookAtVector>
//  HgSite=FirstStar Systems|first-star.dyndns.org:9000|<37,200,33>|<-1,0,0>
//  !! NOTE !!
//  TargetLandingVector   (a good default is <128,128,30> )
//    Places arrival point @ centre of Region, 30m Height
//  TargetLookAtVector    (a good default is <-1,0,0> )
//    Places Avatar @ neutral viewing position.
//     
//
// Hopefully soon, there will be a more efficient method to accomodate such a system.
// Mr. Adam Frisby is developing MRM which could completely replace all of this
//     see http://www.adamfrisby.com/blog/tag/mrm/
// Other ossl functions are also in DEV and may provide alternate solutions as well
//     see http://opensimulator.org/wiki/Scripting_Documentation  for more info
//
//================================================================
// ** CLOSNG NOTES **
// I am using some methods in here which although are not completely optimal, they do work
// and are most likely functional accross various grids / platforms at this time.
// Remember that OpenSim is ALPHA and therefore subject to change extensively through it's
// evolution.  At this time I am using Known Good Functionality.  It is a bit "cludgy".
//================================================================
// === GLOBAL VARIABLES
//
integer CHANNEL;        //Channel for Menus
//
integer DEBUG = FALSE;  //TRUE; // for DEBUG msgs
//
list LastAgents = [];   // to capture avatar collisions, prevent recurrance.
//                      // Thanks to Tiffany Sicling for this !
integer MENUCHOICE = FALSE; //IF Menu is Used to pick TP Destination
string menu_picked = "";    // for the Chosen Destination from Menu
//
integer PortalActive = TRUE;  // Switch to deactive Portal
//List To Populate from NoteCard
list LST_HGmaster;    //Master List of Available HG Regions
list LST_TrgtName;    //HG Display Names
integer LSTidx = 0;   //Main Index Reference
integer LSTpos = 0;   //Position keeper used by Buttons +
// Vars used to generate osTP string data
string tpDestName;
string tpDestAddr;
vector tpDestTrgt;
vector tpDestLook;
// NoteCard Specific
string  NFO_card    = "ReadMe";        // for Help Card to Owner
string  CFG_Card    = "HGLocations";   // Locations Card
integer CFG_Loaded  = FALSE;
integer line = 0;
key queryhandle;
//
//
// Recuring Strings Variables
string strTitle = "=[HyperGrid TelePortal]=\n";
//
// ================================
// ==== CALLED FUCTION MODULES ====
// ================================
//
// MENU FUNCTIONS
//
OPEN_Comms()  // Open Communications Channel only when needed
{
    llListenRemove(CHANNEL);                         // SAFETY Kill CHANNEL incase left over
    CHANNEL = (integer)(llFrand(-1000.0) - 1000.0);  // RANDOM Negative Channel
    llListen(CHANNEL, "", "", "");                   // listen for dialog answers
    llSetTimerEvent(45.0); // to AutoKill CHANNEL
}
//
MENU_Help(key id) // Simple Help Dialog
{
    OPEN_Comms();
    llDialog(id, strTitle +
        "[Help / Info]\n" +
        "UP ARROW = Go Up though List\n"+
        "DOWN ARROW = Go Down through List\n"+
        "When Destination Selected, Step into OR Touch Portal\n"+
        "Safe Journeys !", ["OK"], CHANNEL);
}
//
MENU_Admin(key id)  // Admin Menu
{
    OPEN_Comms();
    string mystatus = "InActive";
    if(PortalActive) mystatus = "Active";
    //
    llDialog(id, strTitle +
        "[Administration Menu\n" +
        "STATUS = ["+mystatus+"]\n"+
        "\n\nSelect the Option\n"+
        "LIST   = Dump List\n"+
        "ACTIVE = Toggle Portal On/Off\n"+
        "README = Instructions NoteCard"+
        "RESET  = RESET SCRIPT",
        ["LIST","ACTIVE","README","HELP","RESET"], CHANNEL);
}
//
MENU_Dest(key id) // Menu Selection for Teleport Destinations
{
    OPEN_Comms();
    MENUCHOICE = TRUE;
    //
    llDialog(id,strTitle +
        "[Destinations Menu]\n" +
        "Select Destination",
        ButtonFix( 0 ), CHANNEL);
}
//
// This is not of my design and I don't remember who gave it to me
// quite a long time ago, but it works very well and is dynamic.   
list ButtonFix( integer iPage )
{
    list LstOut;
    MENUCHOICE = TRUE;
    integer iTmpLen = llGetListLength( LST_TrgtName );
    integer iTmpStart = llAbs(iPage) * 11;
    //-- sanity check
    if (iTmpLen - iTmpStart > 0)
    {
        //-- test for last full page
        if (iTmpLen - iTmpStart > 12) // NOT Last Page
        {
            LstOut += llList2List( LST_TrgtName, iTmpStart + 9, iTmpStart + 10 );
            //-- setup "Next" button
            if (iPage < 10)
            {
                LstOut += ["NEXT (0" + (string)(iPage + 1) + ")"];
            }
            else
            {
                LstOut += ["NEXT (" + (string)(iPage + 1) + ")"];
            }
            //-- Sequence Buttons into order
            LstOut += llList2List( LST_TrgtName, iTmpStart + 6, iTmpStart + 8 );
            LstOut += llList2List( LST_TrgtName, iTmpStart + 3, iTmpStart + 5 );
            LstOut += llList2List( LST_TrgtName, iTmpStart, iTmpStart + 2 );
        }
        else  // IS Last Page
        {
            integer i;
            // correct order by full rows
            for(i = iTmpLen - 1; i -2 >= iTmpStart; i -= 3)
            {
                LstOut += llList2List( LST_TrgtName, (i -2), i );
            }
            // add any leftovers
            if (i >= iTmpStart)
            {
                LstOut += llList2List( LST_TrgtName, iTmpStart, i );
            }
        }
    }
    return LstOut;
}
//
// =================
// TELEPORT FUNCTION
//
TP_Out(key agent )
{
    if(DEBUG) llOwnerSay("TP_Out: Data\n"+(string)agent+
        ","+tpDestName+" @ "+tpDestAddr+"\n"+
        (string)tpDestTrgt+"\n"+(string)tpDestLook);
    //
    if(PortalActive)
    {
        osTeleportAgent(agent, tpDestAddr, tpDestTrgt, tpDestLook);//HG Teleport
        MENUCHOICE = FALSE; // Menu Driven TP Choice was requested, Return to OFF
        //
    }
    else llSay(0,"Sorry the system is not Active");
}
// =================
// Button Prim Functions
//
BUTTON_UP()
{
    if(LSTpos >= 0) LSTpos = (LSTpos + 1);
    if(LSTpos > LSTidx) LSTpos = 0; // Safety to start at begining IF @ END (cheap loop)
    //
    if(DEBUG)llOwnerSay("UP LSTpos = "+(string)LSTpos);
    //
    // Get the Strided List Data Record
    LIST_GetRec(LSTpos);
    //
}
BUTTON_DN()
{
    if(LSTpos <= 0) LSTpos = LSTidx ;
    else LSTpos = (LSTpos - 1);
    if(DEBUG)llOwnerSay("DN LSTpos = "+(string)LSTpos);
    //
    LIST_GetRec(LSTpos);
    //
}
BUTTON_HLP(key id)
{
    if (id == llGetOwner())
    {
        OPEN_Comms();
        MENU_Admin(id);
    }
    else
    {
        OPEN_Comms();
        MENU_Help(id);
    }
}
BUTTON_MENU(key id)
{
    OPEN_Comms();
    MENU_Dest(id);
}
//
// (MINI) STRIDED LIST FUNCTIONS Modules
//
LIST_dump()
{
    // Dumping the Master List to Owner.  Could also dump to openchat
    integer i;
    integer curLSTlen = llGetListLength(LST_HGmaster);
    llMessageLinked( -3, 99, llDumpList2String(LST_TrgtName, "\n"), NULL_KEY );
    if (curLSTlen > 0)
    {
        for (i = 0; i < curLSTlen; i += 4)
        {
            string reg_name = llList2String(LST_HGmaster, i);
            string reg_addr = llList2String(LST_HGmaster, i + 1);
            string reg_land = llList2String(LST_HGmaster, i + 2);
            string reg_look = llList2String(LST_HGmaster, i + 3);
            llOwnerSay(reg_name+" , "+reg_addr+" , "+reg_land+" , "+reg_look); //OwnerOnly
            // llSay(0,reg_name+" , "+reg_addr+" , "+reg_land+" , "+reg_look); //OpenChat
        }
    }
}

LIST_GetRec(integer rec)
{
    // we are stuffing single record to the defined variables
    if(rec == 999999)
    {
        integer tmprec;
        tmprec = llListFindList(LST_TrgtName, [menu_picked]);
        if(tmprec == -1){ llSay(0,"ERROR!\nMatching Record not Found\n"+menu_picked); return;}
        //Selection was made by Menu so we need the correct position
        //to stuff the variable Pre-TP
        //
        tpDestName = llList2String(LST_HGmaster, tmprec*4);
        tpDestAddr = llList2String(LST_HGmaster, (tmprec*4)+1 );
        tpDestTrgt = (vector)llList2String(LST_HGmaster, (tmprec*4) + 2);
        tpDestLook = (vector)llList2String(LST_HGmaster, (tmprec*4) + 3);
    }
    else
    {
        if(rec!=0) rec = rec*4;//adding the stride
        tpDestName = llList2String(LST_HGmaster, rec);
        tpDestAddr = llList2String(LST_HGmaster, rec + 1);
        tpDestTrgt = (vector)llList2String(LST_HGmaster, rec + 2);
        tpDestLook = (vector)llList2String(LST_HGmaster, rec + 3);
    }
    SFX();
    llSetText("-=[Destination: "+tpDestName+"]=-",<0.0,1.0,0.5>,1.0); // in lt_green
    if(DEBUG)llOwnerSay("LST_GetRec="+tpDestName+" , "+tpDestAddr+" , "+(string)tpDestTrgt+" , "+(string)tpDestLook); //OwnerOnly
}

LIST_Names()
{
    // Here we build a List of JUST the Names. The list is already sorted Alphabetically
    // Used for generating a Menu Listing with all Region names
    LST_TrgtName = llList2ListStrided(LST_HGmaster, 0, -1, 4);
    LSTidx = (llGetListLength(LST_TrgtName)-1); //Main List Index
    if(DEBUG)llOwnerSay("LST Index = "+(string)LSTidx);
    if(DEBUG)llOwnerSay("TargetName Listing\n"+ llDumpList2String(LST_TrgtName,"\n"));
}
//
SFX()
{
    llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1, 1,0.05);
}
//
//
RESET_VOL_DET()
{
    // THIS IS A PATCH.  Resets the Volume Detection as it is bporked in OS
    llVolumeDetect( 0 ); // turn off volume detection
    llVolumeDetect( 1 ); // turn it back on again
}
//===========================
// ==== MAIN APPLICATION ====
//===========================
//
default
{
    on_rez(integer start_param)
    {
        llSetText(strTitle+"\nInitializing",<0.0,0.5,1.0>,1.0); // in blue
        llResetScript();
    }
   
    changed(integer change) // something changed, take action
    {
        if(change & CHANGED_INVENTORY)
        {
            llOwnerSay(CFG_Card + " has Changed, Loading Now.");
            llSetText(strTitle+"\nRe-Configuring",<1.0,1.0,0.5>,1.0); // in lt_yellow
            llSleep(5.0);
            // This delay is to allow Inventory Update and Commit to occur.
            // IF the delay is not enough, then increase the sleep delay.
            // IF you have no delay issue on your region, it can be commented out.
            // this is just for a "Safety Catch" to prevent useless errors
            llResetScript();
        }
        else if(change & CHANGED_OWNER)
        {
            if (DEBUG) llOwnerSay("Owner Changed, Resetting Script");
            llResetScript();
        }
        else if (change & 256) // that bit is set during a region restart
        {
            RESET_VOL_DET();
            SFX();
        }

    }
   
    state_entry()
    {
        if (CFG_Loaded == FALSE) // not setup, so load up
        {
            llSetText(strTitle+"\nLoading Notecard",<1.0,0.5,0.0>,1.0); // in orange
            state GET_CONFIG;
        }
        else // is configured, so proceed
        {
            LST_HGmaster = llListSort(LST_HGmaster, 4, TRUE);//Sort list in Strides according to RegionName
            LIST_Names(); // generate RegionNames List & Get a MasterIndex
            //
            llSetText(strTitle+"\n-=["+(string)LSTidx + " Destinations]=-",<0.0,1.0,0.5>,1.0); // in lt_green
            LIST_GetRec(0); // so we are at Pos 0 (SAFETY CHECK)
            RESET_VOL_DET();
            SFX();
        }
    }
    //
    collision_end(integer num_detected)
    {
        if(DEBUG)llWhisper(0,"Portal Collision Occured"); // said in Whisper so that it is stored in Chat History
        // CODE PATCH //  To stop avatars from getting multi TP attempts from Tiffany Sicling. Adapted.
        // get current time & check against list to see if the agent is in it at XX time.
        // if found & XX time passed remove from list, OR just return them if Time XX not elapsed
        key agent = llDetectedKey(0);
        integer TimeNow = llGetUnixTime();
        integer a_idx = llListFindList( LastAgents, [ agent ] );
        if (a_idx != -1)
        {
            integer TimeLast = llList2Integer( LastAgents, a_idx + 1 );
            if (TimeLast >= (TimeNow - 6)) return;
            LastAgents = llDeleteSubList( LastAgents, a_idx, a_idx+1);
        }
        LastAgents += [ agent, TimeNow ];  // agent just TP'd so add to list with NOWTIME
        // END PATCH
        TP_Out(agent); // Send collided avatar to destination.
    }
    // USING LINK MESSAGE for BUTTON PRIM comms
    link_message( integer sibling, integer num, string mesg, key id_key )
    {
        if(DEBUG) llOwnerSay("Link Msg Received: "+mesg);
        //
        if((PortalActive)||(id_key==llGetOwner()))
        {
            if( mesg == "UP" ) //
            {
                BUTTON_UP();
            }
            else if( mesg == "DN" )//
            {
                BUTTON_DN();
            }
            else if( mesg == "HELP" )//
            {
                BUTTON_HLP(id_key);
            }
            else if( mesg == "MENU" )//
            {
                BUTTON_MENU(id_key);
            }
        }
        else
        {
            llWhisper(0,strTitle+"\nSorry, System Inactive ");
            return;
        }
    }
    // ==== Listening & acting on Menu Response ====
    listen( integer channel, string name, key id, string msg )
    {
        if(DEBUG) llOwnerSay("\nListen Heard on Channel " + (string)channel+
            "\nName: "+name+
            "\nID: "+(string)id+
            "\nMSG: "+msg);
        llListenRemove(CHANNEL); // Kill Listen reduce Lag
        //
        if(llGetSubString(msg,0,5) == "NEXT (")
        {
            integer tMSG = (integer)llGetSubString(msg,6,7);
            if(DEBUG) llOwnerSay("tMSG="+(string)tMSG);
            OPEN_Comms();
            llDialog(id,strTitle +
                "[Destinations Menu]\n" +
                "Select Destination",
                ButtonFix(tMSG), CHANNEL);
        }
        else if(msg=="LIST") LIST_dump();
        else if(msg == "RESET") llResetScript();
        else if (msg == "ACTIVE")
        {
            if (PortalActive)
            {
                PortalActive = FALSE;
            }
            else
            {
                PortalActive = TRUE;
            }
            llOwnerSay(msg+" = "+(string)PortalActive+"[ON = 1, OFF = 0]");
            return;
        }
        else if( msg == "README")
        {
            llGiveInventory(id,NFO_card);
        }
        else if(msg == "HELP")
        {
            OPEN_Comms();
            MENU_Help(id);
        }
        else if(MENUCHOICE)
        {
            if(msg !="") menu_picked = msg; // Transfer msg to Var to get correct dest info
            LIST_GetRec(999999); //Send Ridiculous # to retrieve selection
            ////TP_Out(id);
        }
    }
    timer()
    {
        llListenRemove(CHANNEL); // Kill Listen reduce Lag
        llSetTimerEvent(0.0);    //Turn off Timer Event
    }
}
// end of Default state
//
//   ==============================
// ====== [ GET_CONFIG STATE ]=======
//   ==============================
// setup config by reading in notecard data
// information is processed and stored into list(s)
//
// !!! LIST SIZE WARNING !!!
// In SL with standard LSL (non-mono) The List Sized capped at average 72 entries pending on data stored
// The List Size capacity is not determined in OS at this time.
// IF you get (Stack Heap) issues, reduce list size (entries in notecard) and test.
// should you encounter this, PLEASE NOTE IT IN FORUMS and Advise for further testing
//
state GET_CONFIG
{
    state_entry()
    {
        integer numCards;
        integer foundCard;
        for(numCards = llGetInventoryNumber(INVENTORY_NOTECARD); numCards > 0; --numCards)
            if(llGetInventoryName(INVENTORY_NOTECARD, numCards - 1) == CFG_Card) foundCard = 1;
        if(foundCard)
        {
            queryhandle = llGetNotecardLine(CFG_Card, 0); // request line
        }
        else
        {
            llOwnerSay("The " + CFG_Card + " Notecard was not found in Inventory");
            // !! IMPORTANT SPECIAL NOTE !!
            // Sometimes, due to response time from saving a notecard, the lag time for a full
            // store may cause this error to be triggered.  Should that occur, reset scripts
            // after waiting till you can reopen the card in inventory and read it's contents
            CFG_Loaded = TRUE;
            state default;
        }
    }
    dataserver(key query_id, string data)
    {
        if (query_id == queryhandle)
        {
            if (data != EOF)
            {   // not at the end of the notecard
                data = llStringTrim(data, STRING_TRIM_HEAD);
                // is it a comment?
                // If it is... skip the line ANYTHING with a # is a comment
                if (llGetSubString (data, 0, 0) != "#")
                {
                    integer s = llSubStringIndex(data, "=");
                    if(~s)//does it have an "=" in it? if YES it's Valid!
                    {
                        string token = llToLower(llStringTrim(llDeleteSubString(data, s, -1), STRING_TRIM));
                        data = llStringTrim(llDeleteSubString(data, 0, s), STRING_TRIM);
                        // Grabbing Tokens and Setting lists
                        // lists to populate
                        // LST_HGmaster
                        // !! this is a "Strided List"
                        //  There are 4 elements, per stride.
                        //  First Stride in List Position = 0,1,2,3
                        //  Each stride = 1 destination dataset (the big string) :)
                        //
                        // NoteCard Line Format:
                        // HgSite=TargetName|TargetAddress:port|<TargetLandingVector>|<TargetLookAtVector>
                        if (token == "hgsite")
                        {
                            list tmp = llParseString2List(data, ["|"], []);
                            // store values to List
                            if(data !="")
                            {
                                string validate = llList2String(tmp,0);
                                LST_HGmaster += llGetSubString(validate, 0, 23);//TargetName MAX 24 Char
                                LST_HGmaster += llList2String(tmp,1);//TargetAddress
                                LST_HGmaster += llList2String(tmp,2);//TargetLandingVector
                                LST_HGmaster += llList2String(tmp,3);//TargetLookAtVector
                                // The list record entry should now be as follows on next line
                                // "TargetName","MyWebServer.com:9999",<128,128,30>,<-1,0.0>
                                if(DEBUG) llOwnerSay(token+" = "+data);
                            }
                        }
                    }
                }
                queryhandle = llGetNotecardLine(CFG_Card,++line);
                if(DEBUG) llOwnerSay("CFG Card Data = "+(string)data);
            }
            else
            {
                llOwnerSay("-=[ Data & Default Configuration Loaded ]=-");
                //llWhisper(0,"-=[ Free Memory (AFTER NOTECARD) read in ["+(string)llGetFreeMemory()+"]=-");
                // NOTE llGetFreeMemory() is also borked in OS and not usefull at this time :(
                CFG_Loaded = TRUE;
                state default;
            }
        }
    }
}


[UP BUTTON SCRIPT]
{L_CODE}:
//XEngine:lsl
//
default
{
    on_rez(integer start_param) { llResetScript();}
    state_entry() { }
    touch(integer num_detected) {  }
    touch_end(integer num_detected) {llMessageLinked( LINK_ROOT, 2, "UP", llDetectedKey(0) ); }
}


[DN BUTTON SCRIPT]
{L_CODE}:
//XEngine:lsl
//
default
{
    on_rez(integer start_param) { llResetScript();}
    state_entry() { }
    touch(integer num_detected) {  }
    touch_end(integer num_detected) {llMessageLinked( LINK_ROOT, 3, "DN", llDetectedKey(0) ); }
}


[MENU BUTTON SCRIPT]
{L_CODE}:
//XEngine:lsl
//
default
{
    on_rez(integer start_param) { llResetScript();}
    state_entry() { }
    touch(integer num_detected) {  }
    touch_end(integer num_detected) {llMessageLinked( LINK_ROOT, 4, "MENU", llDetectedKey(0) ); }
}


[HELP BUTTON SCRIPT]
{L_CODE}:
//XEngine:lsl
//
default
{
    on_rez(integer start_param) { llResetScript();}
    state_entry() { }
    touch(integer num_detected) {  }
    touch_end(integer num_detected) {llMessageLinked( LINK_ROOT, 4, "HELP", llDetectedKey(0) ); }
}



------------- !!! THE END !!! ------------

Alright... There ya Have it. Enjoy Jumping around and have a Blast!
Quick Tip ! It's Better to HyperGrid (Just like regular TP) as LIGHTWEIGHT as possible. Redice Prims and lose scripted "thinga,ma,doosiez". :o


Hope it Helps

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Last edited by WhiteStar Magic on Thu Jul 16, 2009 9:48 am, edited 15 times in total.

Top
 Profile  
 
 Post subject: Re: HyperGrid LIST, Install, Scripts etc...
PostPosted: Tue May 12, 2009 1:34 am 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
russellharrower {L_WROTE}:
what about grid owners?
I also run 3 regions with one opensim.ini how woudl i make this work with all the regions. At the moment hthere is only one listen port 9000?


You can have as many as you want. Assuming that you have Region_1 @ PORT:9000, Region_2 @ PORT:9002, Region_3 @ PORT:9004

Once you have HyperGrid enabled on your server(s) The address is adjusted to the individual Port. So as an example here are entries that would be included in the List that I use.

"COMPLETELY FICTITIOUS"
The Ice Station|russelb.supergrids.org:9000|<128,128,30>|<-1,0.0>
The Fire Region|russelb.supergrids.org:9002|<128,128,30>|<-1,0.0>
The Sky Region|russelb.supergrids.org:9004|<128,128,30>|<-1,0.0>

Where the First Part is the Descriptive Region Name.
The Second Part is either the IP Address OR Domain Name
AND the :PORT for each separate region
The Next Part is the Landing Point for where the people will land
Finally the direction that they will be looking at when they arrive.

It's Handled by the different PORTS. BUT.... and yes there is always a BUT. It is MORE Advisable to have them Land at a Main Receiving Area and have them Jump from there to other areas. This can also be done using osTeleportAgent just by having them touch a sign, or step on a pad. It reduces the amount of stuff to track and is efficient to operate. Also by having people Jump Locally, it's faster for everyone.


Good Luck and Have Fun !

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Mon May 18, 2009 11:52 am 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
Possible BUG Issues

{L_QUOTE}:
There seems to be a random issue of collision detection issues. I'm unsure if this is trunk revision issues or something else that is going on. As most already the implementation of LSL is not entirely the same as at LL. I have made a correction in the base code which addresses the Phantom Prim / Collision Detection after a server restart.

There are a couple of different approaches to work around the problem. I will likely add another flavour of the system with a slightly different method of taking a collision and passing the avatar. Unfortunately, I am not able to get in-world to do any testing / work on it at this time and my time is becoming very limited.

RESOLVED AND PATCHED IN CODE ABOVE

IF you find a bug / quirk OR have a suggestion / thought / solution that could be implemented please post it and I'll see how it can be managed.

Your contributions can help improve this system for everyone.
Thanks in Advance

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Last edited by WhiteStar Magic on Thu May 21, 2009 12:56 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Wed May 20, 2009 8:42 am 

Joined: Fri Apr 17, 2009 3:28 pm
Posts: 26
I applied the new code to the main script. Still I get a second transport attempt after arriving at the destination. The second attempt fails. After returning home and trying to transport somewhere else, often I get an error saying that there is an issue with attachments and I have to relog.


Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Wed May 20, 2009 9:15 am 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
Hey Vette,

{L_QUOTE}:
I'll have a look at that later today when I get a chance. Tiffany had a suggestion about that so I will explore that method. This seems to only occur with the collision detection event and not with the Menu Selected Transport.

Resolved in the Patches applied on Page 3. Happy HyperGridding

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Thu May 21, 2009 1:13 am 
OSG Elite
User avatar

Joined: Wed Mar 11, 2009 3:57 pm
Posts: 444
HyperGrid HUD System

Just letting people know.... I have been tinkering with a HyperGrid HUD system, based on the above code. It's proving to be a bit "interesting" but so far the results are looking promising. While it cannot use osTelePortAgent functions to automatically Teleport you around, it will provide a clickable link in chat so that you can go. It will take a bit of time for me to get that working in a satisfactory fashion.

Will it be posted here ? The Code could indeed be posted here.... BUT I think I will likely just make it available as a Freebie Item simply because I don't really feel like writing a pile of instructions on how to make a HUD. It will be available in time as my RL is kicking into Overdrive and my time is limited.

Happy HyperGridding !

_________________
No further support of any kind, for any of my materials. Use as/is whereis.
PLEASE UNSTICKY Any Stickied Posting by myself.


Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Fri May 22, 2009 3:08 am 

Joined: Tue Apr 14, 2009 6:34 am
Posts: 39
Well I still doing definetly something wrong.....

Anywone has a little time to browse this pastebin it would be appreciated :)

http://pastebin.ca/1430754


Top
 Profile  
 
 Post subject: Re: HyperGrid TelePortal System, Scripts, List, Docs Complete
PostPosted: Fri May 22, 2009 6:41 am 

Joined: Fri Apr 17, 2009 3:28 pm
Posts: 26
WhiteStar {L_WROTE}:
Hey Vette,

{L_QUOTE}:
I'll have a look at that later today when I get a chance. Tiffany had a suggestion about that so I will explore that method. This seems to only occur with the collision detection event and not with the Menu Selected Transport.

Resolved in the Patches applied on Page 3. Happy HyperGridding


Sorry, but where is page 3? My version of this thread only shows one single page.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post a new topicPost a reply Page 1 of 4   [ 32 posts ]
Go to page 1, 2, 3, 4  Next


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net