View unanswered posts | View active topics It is currently Tue Apr 21, 2026 7:18 am



Reply to topic  [ 1 post ] 
 Scripting: If/End While/End 
Author Message
Ambassador
User avatar

Joined: Mon Feb 09, 2004 3:00 am
Posts: 3141
Location: Kansas
Unread post Scripting: If/End While/End
# some basic scripting information


Every script generally has some basic elements in common so here are two of them. You will note that in between the If/End and while/end sections, the text is indented. This is to allow easier visual inspection of the structure and makes debugging a lot easier. No, you don't have to do it that way, but most people do.

The "IF" decision structure is basically looking to see if something
is true or false. If it is true then it does the next line after the evaluation.

If/End If/ElseIf/End

# note: // end of line comments are not currently supported by twx
# use the # above a line to comment within a script

setVar $x 1 // sets the variable $x to 1
if ($x = 1) // we want to know if the value in the variable $x = 1
echo "*" $x // echos to the client screen (* is the enter command)
end // we are done with our check

--------------------------------------------------

getRnd $x 1 10 // get a random number in the range of 1 to 10 and put in variable $x
if ($x = 1) // see if $x = 1
echo "*Value of $x is: " $x // displaying $x
elseif ($x = 10) // see if it was 10
echo "*Value of $x was 10" // just saying $x = 10
else // value was neither of the above
echo "*Value was neither 1 or 10"
echo "*$x = " $x
end

--------------------------------------------------

Loops are a common method of doing something a certain number
of times or until something changes value in the loop. The script
help .html file contains an example of reading a file that will be of
interest.

Endless loops are a very bad thing that can easily max your cpu,
and besides, you don't do anything except spin in a circle. You
will have to kill TWX to get out of it. (ctrl-alt-delete and then
select TWX to kill).

While/End

setVar $x 0 // set the variable $x to 0
while ($x < 10) // while $x is less than 10 loop
add $x 1 // add 1 to $x otherwise this is an endless loop
echo "*" $x // echo the value of $x to the client
end // end of while

--------------------------------------------------

setVar $x 0
while ($x < 10)
add $x 1
if ($x = 7)
echo "*$x reached the value of 7"
end
end

--------------------------------------------------

The positioning of your add $x 1 can affect your output. In the
first example of while ($x < 10) it showed values of 1 - 10. The
next will show values of 0 - 9.

setVar $x 0
while ($x < 10)
echo "*" $x
add $x 1
end

--------------------------------------------------

If you wanted values of 0 - 10 to show in the above example, you
could change "while ($x < 10)" to "while ($x <= 10)".

--------------------------------------------------

# putting a while loop to use
# using ANSI_12 to output the echo in red (try the different ANSI_xx values)
# CURRENTSECTOR gets our current sector from TWX
# $i is initialized to 1, because
# sector.warps[CURRENTSECTOR][0] would not be valid.

setVar $warpCnt sector.warpcount[CURRENTSECTOR] // get the warpcount of the current sector from TWX's database
setVar $i 1 // init our var to 1
while ($i <= $warpCnt) // setup while loop value
echo ANSI_12 "*" sector.warps[CURRENTSECTOR][$i] // display adjacent warps contained in TWX's database
add $i 1 // increment counter
end // end of while loop
halt // stop script

_________________
               / Promethius / Enigma / Wolfen /

"A man who has no skills can be taught, a man who has no honor has nothing."


Wed Nov 26, 2008 4:19 pm
Profile ICQ
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 21 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.
Designed by wSTSoftware.