This page is meant to clarify that page for use with skyboxes. Here you can
compare our world settings to the script used above. Mine is set for changing
skyboxes and cloud textures and movement.
I would like to thank Starheart of Mythopia world
for helping me, you can visit his website at
http://www.sh3d-design.com/
I'd also like to thank Elysium for his
FREE Skyboxes,
one of which I used to change the texture to make my very first
*starry night* skybox! If you'd like my *starry night* skybox,
you can d/l it from my Freebies page!
Please NOTE: This page is only a *sample* of how I set mine up ...
it will be practically impossible to *copy to notepad* from this page.
If you want the actual scripts,
Click Here!
OK here we go...
Leave purple text AS IS! You may change green text!
[Head]
Type=Script
Version=2.0
[Settings]
Origin=0.000n 0.000w 0.00a 0.0°
Run
[Script]
###################################
# The WorldSchedule Bot #
# a Xelagot script #
# (c) 2000 Alex Grigny de Castro #
###################################
##################################################################
###### Requires Xelagot 2.9999916 or higher
###### Help: www.imatowns.com/xelagot/xlgasex_worldschedule.html
##################################################################
var $World, $Universe
var /s_Schedule, $ScheduleFile
var /s_Attrib
var %Changes, %Pointer
var %ok, %okSchedule, %FileNotFound
var %okFiles, %okWorld, %HasUniverse, %okUniverse
var %myWorld
var !This, !Next
var $This, $Next
var $ThisFile, $NextFile
var !now
var $CRLF, $TAB
Label Start
$ScheduleFile = "schedule.txt"
Concat $CRLF #13 #10
$TAB = #9
Gosub Initialize
IfInt %FileNotFound <> 0 Goto Error
IfInt %Changes = 0 Goto Error
IfInt %okSchedule = 0 Goto Error
IfInt %okFiles = 0 Goto Error
# now the Pointer is set to the right period
# change the attributes
Label Main_Loop
# check universe
GetUniverse $u
IfInt %HasUniverse = 0 %okUniverse = 1
Else IfString $u = $Universe %okUniverse = 1
Else %okUniverse = 0
IfInt %okUniverse = 0 Goto WrongWorld
# check the world
GetWorld $w
IfString $w <> $World Goto WrongWorld
IfNotLoginWorld Goto WrongWorld
# check the time
GetTime !now
IfTime !now IsBetween !This !Next Gosub ChangeAttributes
Goto Main_Loop
Label WrongWorld
GetUniverse $u
IfInt %HasUniverse = 0 %okUniverse = 1
Else IfString $u = $Universe %okUniverse = 1
Else %okUniverse = 0
IfInt %okUniverse = 0 Goto WrongWorld
GetWorld $w
IfString $w = $World IfLoginWorld Goto Start
Goto WrongWorld
End
Label Error
IfInt %FileNotFound <> 0 SecretConcat "File " $ScheduleFile " not found
IfInt %Changes = 0 SecretConcat "Invalid schedule file " $ScheduleFile
IfInt %Changes = 0 SayConcat "Invalid schedule file " $ScheduleFile
IfInt %okWorld = 0 SecretConcat "Missing world name in " $ScheduleFile
IfInt %okWorld = 0 SayConcat "Missing world name in " $ScheduleFile
IfInt %okSchedule = 0 SecretConcat "Error in schedule file " $ScheduleFile
IfInt %okSchedule = 0 SayConcat "Error in schedule file " $ScheduleFile
End
Sub Initialize
# set error flags to 'no error'
%FileNotFound = 0
%Changes = 1
%okWorld = 1
%okSchedule = 1
%okFiles = 1
# load the schedule
SListLoad /s_Schedule $ScheduleFile %FileNotFound
IfInt %FileNotFound <> 0 EndSub
# remove any empty lines
SListNoBlanks /s_Schedule
# world name must be included
IfSListGetValue /s_Schedule "world" $World
Else %okWorld = 0
IfInt %okWorld = 0 EndSub
SListDeleteName /s_Schedule "world"
# universe name is optional
IfSListGetValue /s_Schedule "universe" $Universe %HasUniverse = 1
Else %HasUniverse = 0
SListDeleteName /s_Schedule "universe"
# count how may changes
SListGetCount /s_Schedule %Changes
IfInt %Changes = 0 EndSub
Gosub CheckSchedule
IfInt %okSchedule = 0 EndSub
Gosub CheckFiles
IfInt %okFiles = 0 EndSub
Gosub SetPointer
EndSub
Sub CheckSchedule
%okSchedule = 1
%Pointer = 1
Label CheckSchedule_Loop
IfInt %Pointer > %Changes EndSub
Gosub GetThis
Gosub GetNext
IfTime !this IsAfter !next %okSchedule = 0
Inc %Pointer
# last entry should not be checked against first
IfInt %Pointer < %Changes IfInt %okSchedule = 1 Goto CheckSchedule_Loop
EndSub
Sub CheckFiles
GetMyDir $q
%okFiles = 1
%Pointer = 1
Label CheckFiles_Loop
Gosub GetThis
Concat $f $q $ThisFile
IfFileExists $f
Else Gosub NoFile
Inc %Pointer
IfInt %Pointer <= %Changes Goto CheckFiles_Loop
EndSub
Sub NoFile
%okFiles = 0
SecretConcat "Attributes file " $ThisFile " not found"
SayConcat "Attributes file " $ThisFile " not found"
EndSub
Sub SetPointer
%ok = 0
%Pointer = 0
Label SetPointer_Loop
Inc %Pointer
IfInt %Pointer > %Changes %Pointer = 1
Gosub GetThis
Gosub GetNext
GetTime !now
IfTime !now IsBetween !this !next %ok = 1
IfInt %ok = 0 Goto SetPointer_Loop
EndSub
Sub GetThis
SItemGet /s_Schedule %Pointer $a
Split $b $c $a ","
GetTime !This $b
Split $This $c $c ","
Split $ThisFile $c $c ","
EndSub
Sub GetNext
%p = %Pointer
Inc %p
IfInt %p > %Changes %p = 1
SItemGet /s_Schedule %p $a
Split $b $c $a ","
GetTime !Next $b
Split $Next $c $c ","
Split $NextFile $c $c ","
EndSub
Sub ChangeAttributes
SListClear /s_Attrib
SListLoad /s_Attrib $ThisFile %i
Replace /s_Attrib /s_Attrib "{newline}" $CRLF
Replace /s_Attrib /s_Attrib "{tab}" $TAB
IfInt %i = 0 ChangeAttributes /s_Attrib
# Get next
Inc %Pointer
IfInt %Pointer > %Changes %Pointer = 1
Gosub GetThis
Gosub GetNext
EndSub
I believe this is unchanged from the original but I didn't check, I got this version from Starheart. WorldSchedule.txt is the file you *load* into your bot! This is the *control* file and it calls upon the others when it's time to do so.
my *schedule.txt* looks like this:
world=aeon
8,dawn,aeon_dawn.txt,
10 15,day,aeon_day.txt,
21 15,dusk,aeon_dusk.txt,
23,night,aeon_night.txt,
Green items are items you can change:
- numbers represent VRT *military* time (8:00am, 10:15am, 21:15pm, 23:00pm)
- the words (dawn, day, dusk and night) represent the *time of day*
- the filenames (aeon_dawn.txt, etc) are what are called by the bot at the specified time and are the actual files that change the *time of day*. These MUST match the actual names of the files!
OK this is big LOL, or looks it here, but is simple to use.Skybox=skyaw3
WorldLightRed=245
WorldLightGreen=225
WorldLightBlue=225
WorldAmbientLightRed=220
WorldAmbientLightGreen=200
WorldAmbientLightBlue=200
Clouds1Texture=cloud_strat1
Clouds1Mask=
Clouds1SpeedX=1.01
Clouds1SpeedZ=1.1
Clouds1Tile=2.1
Clouds1Opacity=149
Clouds2Texture=cloud_strat1
Clouds2Mask=
Clouds2SpeedX=-1.003
Clouds2SpeedZ=-1.2
Clouds2Tile=2.0
Clouds2Opacity=152
Clouds3Texture=
Clouds3Mask=
Clouds3SpeedX=0.0
Clouds3SpeedZ=0.0
Clouds3Tile=0.0
Clouds3Opacity=255
TerrainAmbient=0.2
TerrainDiffuse=1.0
Skybox=skyo33
WorldLightRed=255
WorldLightGreen=255
WorldLightBlue=255
WorldAmbientLightRed=219
WorldAmbientLightGreen=219
WorldAmbientLightBlue=219
Clouds1Texture=alterng4
Clouds1Mask=cloud_strat1m
Clouds1SpeedX=1.01
Clouds1SpeedZ=1.2
Clouds1Tile=2.1
Clouds1Opacity=149
Clouds2Texture=alterng5
Clouds2Mask=cloud_strat1m
Clouds2SpeedX=-1.003
Clouds2SpeedZ=-2.2
Clouds2Tile=3.0
Clouds2Opacity=250
Clouds3Texture=alterng9
Clouds3Mask=cloud_strat1m
Clouds3SpeedX=1.003
Clouds3SpeedZ=1.1
Clouds3Tile=3.0
Clouds3Opacity=201
TerrainAmbient=0.2
TerrainDiffuse=1.0Again, same as above only I changed to the skybox used and to the
cloud textures and movement. Bold is what I changed from Starheart's version
but you can change anything green to suit your liking.
Skybox=skyaw1
WorldLightRed=245
WorldLightGreen=225
WorldLightBlue=225
WorldAmbientLightRed=220
WorldAmbientLightGreen=200
WorldAmbientLightBlue=200
Clouds1Texture=alterng4
Clouds1Mask=cloud_strat1m
Clouds1SpeedX=1.01
Clouds1SpeedZ=1.2
Clouds1Tile=1.1
Clouds1Opacity=149
Clouds2Texture=alterng5
Clouds2Mask=cloud_strat1m
Clouds2SpeedX=-0.003
Clouds2SpeedZ=-1.2
Clouds2Tile=2.0
Clouds2Opacity=149
Clouds3Texture=alterng9
Clouds3Mask=cloud_strat1m
Clouds3SpeedX=0.002
Clouds3SpeedZ=0.003
Clouds3Tile=2.0
Clouds3Opacity=100
TerrainAmbient=0.2
TerrainDiffuse=1.0
Same as above, just changed the skybox again, and the cloud textures,
movements, etc.
Skybox=lnh-stars3c
WorldLightRed=190
WorldLightGreen=190
WorldLightBlue=190
WorldAmbientLightRed=150
WorldAmbientLightGreen=150
WorldAmbientLightBlue=150
Clouds1Texture=cloud_strat1
Clouds1Mask=cloud_strat1m
Clouds1SpeedX=1.01
Clouds1SpeedZ=1.2
Clouds1Tile=3.1
Clouds1Opacity=100
Clouds2Texture=alterng5
Clouds2Mask=cloud_strat1m
Clouds2SpeedX=-1.003
Clouds2SpeedZ=-1.2
Clouds2Tile=2.0
Clouds2Opacity=100
Clouds3Texture=cloud_strat1
Clouds3Mask=cloud_strat1m
Clouds3SpeedX=0.002
Clouds3SpeedZ=0.003
Clouds3Tile=2.0
Clouds3Opacity=11
TerrainAmbient=0.2
TerrainDiffuse=1.0
This again is pretty much the same kind of file as the other three, just change the skybox &/or cloud layers and movements.
- I did NOT use the WorldMessage= ... not only did I leave it blank but I deleted the whole line in each of the four files (aeon_dawn.txt, etc) because it changes the world's Immigration Officer greeting as well. If you choose to use that line, perhaps do something like this: Your world's standard IM greeting followed by bot time change (ex: WelcomeMessage=Welcome to Aeon :o} owned by Lady NightHawk and her husband AerHawk! The world began on 06/11/03, thanks to Belfalest (my host)! Enjoy your stay and come back often! AV DUMP may be necessary if you were here before 09/29/03. The world's atmosphere setting is now ... Dawn!). The Day file would be similar only change the word Dawn to Day! And so on. The WelcomeMessage=whatever you have to say here! goes at the first line of each of the four files!
- Again, this page is in regards to using a skybox and therefore it uses Skybox= not the Backdrop as seen on the Xelagot page.
- Here we are using WorldLight & WorldAmbient, none of which I changed from Starheart's originals.
- Notice ALL cloud layers have names indicating which is which (ex: Cloud1Texture, Cloud2Texture, etc). It's very easy to copy the settings from your *features* directly to the four files. Also, in ALL of my 2nd cloud layers I'm using a negative (-) number so that the middle layer of clouds goes the opposite direction of the top and bottom layers ... I like it ... you may not LOL, just pointing it out. For cloud layers, you can use just one or all three for each of the four files, again ... play with those settings and see what you like and once you've settled on something for each time of day change it's file to match.
- I did not change any of the four files TerrainAmbient or TerrainDiffuse settings, they are set at the standard ... but you can change those if you have a clue about what they are/do LOL.
- Again, remember that IF you change the filenames (aeon_dawn.txt) the you MUST put the new filename in it's appropriate place in the schedule.txt file also!
- IF you get errors, check your filenames in the schedule.txt and the other four to be sure they match. Check that you put the right skybox name, or right cloud texture name (the extensions .zip, .rwx or .jpg do NOT need to be used)! If you are still getting errors, check your OP to see if you actually have those skyboxes and cloud textures loaded up and in the correct folders!
Things to note about *Cloud Layers*:
- Cloud speeds (X & Z): the lower the numbers the slower the movement speed, higher is faster.
- Cloud tile is for giving your clouds more or less bulk/wrap. The higher the number the more the *cloud* layer wraps (duplicates) ... compare a setting of 1 to a setting of 10 for instance, the lower numbers generally look better and more natural.
- Cloud opacity is how visible or invisible the cloud layer is, the higher the number (up to 255) the more visible the cloud layer. Lower numbers would make the clouds lighter, less visible. I noticed that if you set the first layer to a higher number like 100 or more, it makes the sky in general appear lighter. The next two layers would be lower like 75 and 50 respectively. If you don't want a brighter sky then set the first layer down to 50 or so. You can use one or all of the cloud layers depending on your preferences.
- I have not played with any of the WorldAmbient, WorldLight, nor Terrain settings because I'm not sure what they do LOL. If you are a brave soul ... go for it!
- A word of advice ... write down your starting settings BEFORE you make ANY changes!!! Have fun!