If you use the script as it is, without modifying it, you will need to have 3 signs for notices, and 9 signs for the board.
The signs for notices need the following in the Action line:
The 9 signs used for the board need the following in the Action line:
These objects are placed so:
| sq1 | sq4 | sq7 |
| sq2 | sq5 | sq8 |
| sq3 | sq6 | sq9 |
| sq1 | sq2 | sq3 |
| sq4 | sq5 | sq6 |
| sq7 | sq8 | sq9 |
The model of these playboard objects must also be specified. The default for all is sign3.rwx. That can be changed: you may change it in Sub Init. There are 3 models specified, one for an empty square: $Empty, one for a square with an "X": $Cross, and one with a square with a "O": $Naught. If you use signs, all 3 models must be identical. You do not have to use signs: you may use custom objects, with the appropriate symbols on them. If you do so, change the name of the models in Sub Init and make sure the Action line matches the lines specified in $sq1 etc... (mind the comma). You would then need to build your set using the $Empty model (or any other of the 3). Here you can download a 1m x 1m sign, made specially for this script: it is called sgn1x1.rwx. If you use it, change these lines in the script to this:
$Empty = "sgn1x1.rwx" $Naught = "sgn1x1.rwx" $Cross = "sgn1x1.rwx"
The bot must be near these objects, and must belong to the same citizen as the objects unless you use the ED script. The owner of bot and objects must have build right.
[Head]
Type=Script
Version=2.0
[Settings]
Origin=0.000n 0.000w 0.00a 0.0°
#Run
[Script]
###################################
# The NaughtsAndCrosses Bot #
# (Tic-Tac-Toe) #
# a Xelagot script #
# (c) 2000 Alex Grigny de Castro #
###################################
##################################################################
###### Requires Xelagot 2.9999916 or higher
###### Help: www.imatowns.com/xelagot/xlgasex_naughtsncrosses.html
##################################################################
# the specs used in this script are in Sub Init
var @centre
# not1, not2 and not3 are the notice boards,
# the others are the squares on the board
var $not1, $not2, $not3
var $sq1, $sq2, $sq3
var $sq4, $sq5, $sq6
var $sq7, $sq8, $sq9
var ~not1, ~not2, ~not3
var ~sq1, ~sq2, ~sq3
var ~sq4, ~sq5, ~sq6
var ~sq7, ~sq8, ~sq9
var %square
var %Moves
var $Empty, $Naught, $Cross, $Models
var $Notice1Desc, $Notice2Desc, $Notice3Desc
var %Citnum, %Error
var /s_Xrows, /s_Nrows
var &XPlayer, &NPlayer, &Turn
var %XPlayer, %NPlayer, %Turn
var $XPlayer, $NPlayer, $Turn
var $TurnDesc
var %Players
var %IsQuerying
var %GameStage
var /s_temp, $StringFile
var $s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9
var $w1, $w2, $w3
var $e1, $e2, $e3, $e4
var $a1, $a2, $a3, $a4
var $b1
var $c1, $c2, $c3, $c4, $c5, $c6, $c7
Label Scan
OnWorldEnterEvent WorldEnter
OnWorldReconnectEvent Reconnect
Gosub Init
OnQueryCompleteEvent QueryComplete
Gosub ScanArea
Label Query
IfInt %IsQuerying = 1 Goto Query
Gosub GetSigns
# e1=sign(s) not found...
IfInt %Error > 0 SayConcat %Error " " $e1
Else Goto More1
End
Label More1
# s3=Found signs
SayConcat $s3
Gosub GetNotice1
# e2=Notice1 board not found...
IfInt %Error > 0 SayConcat $e2
Else Goto More2
End
Label More2
Gosub GetNotice2
# e3=Notice2 board not found...
IfInt %Error > 0 SayConcat $e3
Else Goto More3
End
Label More3
Gosub GetNotice3
# e4=Notice3 board not found...
IfInt %Error > 0 SayConcat $e4
Else Goto More
End
Label More
OnAvatarDeleteEvent AvatarDelete
IfInt %GameStage = 3 Goto Wait
Label Register
OnObjectClickEvent
%GameStage = 1
%Players = 0
Gosub ClearLists
Gosub GetSigns
Gosub ClearSigns
Gosub GetNotice1
# a1=Click here to register
Concat $Notice1Desc $a1
Gosub SetNotice1
Gosub GetNotice2
# b1=Players:
Concat $Notice2Desc $b1 #13 #10 "X = ?" #13 #10 "0 = ?"
Gosub SetNotice2
Gosub GetNotice3
# c1=No players...
Concat $Notice3Desc $c1
Gosub SetNotice3
OnObjectClickEvent Register1Click
Label RegisterLoop
IfInt %GameStage = 1 Goto RegisterLoop
Label Play
OnObjectClickEvent GameClick
Label PlayLoop
IfInt %GameStage = 2 Goto PlayLoop
Label Wait
OnObjectClickEvent WaitClick
Label WaitLoop
IfInt %Gamestage = 3 Goto WaitLoop
Goto Register
End
Sub Init
GetCitnum %Citnum
GetPosition @centre
# 'create name' in the objects
$not1 = "name not1,"
$not2 = "name not2,"
$not3 = "name not3,"
$sq1 = "name sq1,"
$sq2 = "name sq2,"
$sq3 = "name sq3,"
$sq4 = "name sq4,"
$sq5 = "name sq5,"
$sq6 = "name sq6,"
$sq7 = "name sq7,"
$sq8 = "name sq8,"
$sq9 = "name sq9,"
$Empty = "sign3.rwx"
$Naught = "sign3.rwx"
$Cross = "sign3.rwx"
Concat $Models $Empty "," $Naught "," $Cross
Gosub ClearLists
$StringFile = "N&CStrings_UK.txt"
SListLoad /s_temp $StringFile %r
IfInt %r <> 0 SListSetText /s_temp Strings
SListGetValue /s_temp "s1" $s1
SListGetValue /s_temp "s2" $s2
SListGetValue /s_temp "s3" $s3
SListGetValue /s_temp "s4" $s4
SListGetValue /s_temp "s5" $s5
SListGetValue /s_temp "s6" $s6
SListGetValue /s_temp "s7" $s7
SListGetValue /s_temp "s8" $s8
SListGetValue /s_temp "s9" $s9
SListGetValue /s_temp "w1" $w1
SListGetValue /s_temp "w2" $w2
SListGetValue /s_temp "w3" $w3
SListGetValue /s_temp "e1" $e1
SListGetValue /s_temp "e2" $e2
SListGetValue /s_temp "e3" $e3
SListGetValue /s_temp "e4" $e4
SListGetValue /s_temp "a1" $a1
SListGetValue /s_temp "a2" $a2
SListGetValue /s_temp "a3" $a3
SListGetValue /s_temp "a4" $a4
SListGetValue /s_temp "b1" $b1
SListGetValue /s_temp "c1" $c1
SListGetValue /s_temp "c2" $c2
SListGetValue /s_temp "c3" $c3
SListGetValue /s_temp "c4" $c4
SListGetValue /s_temp "c5" $c5
SListGetValue /s_temp "c6" $c6
SListGetValue /s_temp "c7" $c7
EndSub
Sub ScanArea
# s1=Please wait, scanning area...
SayConcat $s1
%IsQuerying = 1
QueryAt @Centre
EndSub
Event QueryComplete
# s2=Finished scanning :)
SayConcat $s2
%IsQuerying = 0
EndEvent
Event Reconnect
# s4=Got disconnected... I'm back now... Starting all over :(
SayConcat $s4
ResetTo Scan
EndEvent
Event WorldEnter
ResetTo Scan
EndEvent
Sub GetSigns
%Error = 0
FilterClear
ResClear
FilterModel $Models
FilterAction $sq1
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq1 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq2
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq2 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq3
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq3 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq4
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq4 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq5
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq5 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq6
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq6 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq7
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq7 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq8
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq8 1
Else Inc %Error
FilterClear
ResClear
FilterModel $Models
FilterAction $sq9
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~sq9 1
Else Inc %Error
EndSub
Sub ClearSigns
# do not call from an event handler
# as the object number will not be refreshed correctly
Suspend
~a = ~sq1
$b = ""
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq1 ~a
~sq1 = ~a
~a = ~sq2
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq2 ~a
~sq2 = ~a
~a = ~sq3
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq3 ~a
~sq3 = ~a
~a = ~sq4
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq4 ~a
~sq4 = ~a
~a = ~sq5
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq5 ~a
~sq5 = ~a
~a = ~sq6
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq6 ~a
~sq6 = ~a
~a = ~sq7
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq7 ~a
~sq7 = ~a
~a = ~sq8
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq8 ~a
~sq8 = ~a
~a = ~sq9
GetModel ~a $Empty
GetDescription ~a $b
ObjectModify ~sq9 ~a
~sq9 = ~a
Do
EndSub
Sub GetNotice1
%Error = 0
FilterClear
ResClear
FilterAction $not1
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~not1 1
Else Inc %Error
EndSub
Sub SetNotice1
# must be preceeded by a call to GetNotice1
~a = ~not1
GetDescription ~a $Notice1Desc
ObjectModify ~not1 ~a
EndSub
Sub GetNotice2
%Error = 0
FilterClear
ResClear
FilterAction $not2
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~not2 1
Else Inc %Error
EndSub
Sub SetNotice2
# must be preceeded by a call to GetNotice2
~a = ~not2
GetDescription ~a $Notice2Desc
ObjectModify ~not2 ~a
EndSub
Sub GetNotice3
%Error = 0
FilterClear
ResClear
FilterAction $not3
FilterCitizen %Citnum
ResFromSurveyFilter
IfGetResObjectItem ~not3 1
Else Inc %Error
EndSub
Sub SetNotice3
# must be preceeded by a call to GetNotice3
~a = ~not3
GetDescription ~a $Notice3Desc
ObjectModify ~not3 ~a
EndSub
Text Rows
1=0,0,0,0,0,0,0,0
2=0,0,0,0,0,0,0,0
3=0,0,0,0,0,0,0,0
4=0,0,0,0,0,0,0,0
5=0,0,0,0,0,0,0,0
6=0,0,0,0,0,0,0,0
7=0,0,0,0,0,0,0,0
8=0,0,0,0,0,0,0,0
9=0,0,0,0,0,0,0,0
EndText
Sub ClearLists
SListSetText /s_Xrows Rows
SListSetText /s_Nrows Rows
EndSub
# these subs inscribe the position in the row for Naughts
Sub n1
%w = 1
SListSetFields /s_Nrows "1" 8 %w x x %w x x %w x
Gosub NAdd
EndSub
Sub n2
%w = 1
SListSetFields /s_Nrows "2" 8 %w x x x %w x x x
Gosub NAdd
EndSub
Sub n3
%w = 1
SListSetFields /s_Nrows "3" 8 %w x x x x %w x %w
Gosub NAdd
EndSub
Sub n4
%w = 1
SListSetFields /s_Nrows "4" 8 x %w x %w x x x x
Gosub NAdd
EndSub
Sub n5
%w = 1
SListSetFields /s_Nrows "5" 8 x %w x x %w x %w %w
Gosub NAdd
EndSub
Sub n6
%w = 1
SListSetFields /s_Nrows "6" 8 x %w x x x %w x x
Gosub NAdd
EndSub
Sub n7
%w = 1
SListSetFields /s_Nrows "7" 8 x x %w %w x x x %w
Gosub NAdd
EndSub
Sub n8
%w = 1
SListSetFields /s_Nrows "8" 8 x x %w x %w x x x
Gosub NAdd
EndSub
Sub n9
%w = 1
SListSetFields /s_Nrows "9" 8 x x %w x x %w %w x
Gosub NAdd
EndSub
Sub NAdd
SListAddField /s_Nrows 1 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 2 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 3 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 4 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 5 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 6 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 7 %i
IfInt %i > 2 Goto NAddDone
SListAddField /s_Nrows 8 %i
IfInt %i > 2 Goto NAddDone
Inc %Moves
IfInt %Moves >= 9 Gosub GameDraw
IfInt %Moves >= 9 EndSub
&Turn = &XPlayer
%Turn = %XPlayer
$Turn = $XPlayer
$TurnDesc = "X"
Gosub GetNotice3
# c2=Playing now:
Concat $Notice3Desc $c2 #13 #10 $Turn
Gosub SetNotice3
EndSub
Label NAddDone
# Naughts has won!
%GameStage = 3
# a2=Click here for new game
Concat $Notice1Desc $a2
Gosub SetNotice1
Gosub GetNotice3
# c3=Winner:
Concat $Notice3Desc $c3 #13 #10 $NPlayer
Gosub SetNotice3
# s5=Game between {x} and {n} was won by... {y}
$s = $s5
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
Replace $s $s "{y}" $NPlayer
SayConcat $s
EndSub
# these subs inscribe the position in the row for Crosses
Sub x1
%w = 1
SListSetFields /s_Xrows "1" 8 %w x x %w x x %w x
Gosub xAdd
EndSub
Sub x2
%w = 1
SListSetFields /s_Xrows "2" 8 %w x x x %w x x x
Gosub xAdd
EndSub
Sub x3
%w = 1
SListSetFields /s_Xrows "3" 8 %w x x x x %w x %w
Gosub xAdd
EndSub
Sub x4
%w = 1
SListSetFields /s_Xrows "4" 8 x %w x %w x x x x
Gosub xAdd
EndSub
Sub x5
%w = 1
SListSetFields /s_Xrows "5" 8 x %w x x %w x %w %w
Gosub xAdd
EndSub
Sub x6
%w = 1
SListSetFields /s_Xrows "6" 8 x %w x x x %w x x
Gosub xAdd
EndSub
Sub x7
%w = 1
SListSetFields /s_Xrows "7" 8 x x %w %w x x x %w
Gosub xAdd
EndSub
Sub x8
%w = 1
SListSetFields /s_Xrows "8" 8 x x %w x %w x x x
Gosub xAdd
EndSub
Sub x9
%w = 1
SListSetFields /s_Xrows "9" 8 x x %w x x %w %w x
Gosub xAdd
EndSub
Sub xAdd
SListAddField /s_Xrows 1 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 2 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 3 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 4 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 5 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 6 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 7 %i
IfInt %i > 2 Goto XAddDone
SListAddField /s_Xrows 8 %i
IfInt %i > 2 Goto XAddDone
Inc %Moves
IfInt %Moves >= 9 Gosub GameDraw
IfInt %Moves >= 9 EndSub
&Turn = &NPlayer
%Turn = %NPlayer
$Turn = $NPlayer
$TurnDesc = "O"
Gosub GetNotice3
# c2=Playing now:
Concat $Notice3Desc $c2 #13 #10 $Turn
Gosub SetNotice3
EndSub
Label XAddDone
# Crosses has won!
%GameStage = 3
# a2=Click here for new game
Concat $Notice1Desc $a2
Gosub SetNotice1
Gosub GetNotice3
# c3=Winner:
Concat $Notice3Desc $c3 #13 #10 $XPlayer
Gosub SetNotice3
# s5=Game between {x} and {n} was won by... {y}
$s = $s5
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
Replace $s $s "{y}" $XPlayer
SayConcat $s
EndSub
Event Register1Click
IfTargetUndefined EndEvent
GetSourceTarget &p ~t
GetObjectNumber %t ~t
Gosub GetNotice1
GetObjectNumber %n ~not1
IfInt %n <> %t EndEvent
&Xplayer = &p
GetSession %XPlayer &XPlayer
GetName $XPlayer &XPlayer
%Players = 1
OnObjectClickEvent Register2Click
Gosub GetNotice2
# b1=Players:
Concat $Notice2Desc $b1 #13 #10 "X = " $XPlayer #13 #10 "0 = ?"
Gosub SetNotice2
Gosub GetNotice3
# c4=needs a partner
Concat $Notice3Desc $XPlayer " " $c4
Gosub SetNotice3
EndEvent
Event Register2Click
IfTargetUndefined EndEvent
GetSourceTarget &p ~t
GetSession %s &p
IfInt %s = %XPlayer EndEvent
GetObjectNumber %t ~t
Gosub GetNotice1
GetObjectNumber %n ~not1
IfInt %n <> %t EndEvent
&Nplayer = &p
GetSession %NPlayer &NPlayer
GetName $NPlayer &NPlayer
%Moves = 0
%Turn = %XPlayer
$Turn = $XPlayer
&Turn = &XPlayer
$TurnDesc = "X"
%Players = 2
%GameStage = 2
OnObjectClickEvent
Gosub GetNotice1
# a3=GAME ON
# a4=click here to cancel
Concat $Notice1Desc $a3 #13 #10 $a4
Gosub SetNotice1
Gosub GetNotice2
# b1=Players:
Concat $Notice2Desc $b1 #13 #10 "X = " $XPlayer #13 #10 "0 = " $NPlayer
Gosub SetNotice2
Gosub GetNotice3
# c2=Playing now:
Concat $Notice3Desc $c2 #13 #10 $Turn
Gosub SetNotice3
# s6=Game started between {x} and {n}
$s = $s6
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
SayConcat $s
EndEvent
Event GameClick
IfTargetUndefined EndEvent
%z = 0
GetSourceTarget &p ~t
GetSession %s &p
GetObjectNumber %t ~t
Gosub GetNotice1
GetObjectNumber %n ~not1
IfInt %n = %t Gosub CheckCancel
IfInt %z <> 0 EndEvent
# code here...
# check if squares heve been clicked
%square = 0
GetCitnum %c ~t
IfInt %c <> %Citnum EndEvent
GetAction $a ~t
IfString $sq1 IsIn $a %square = 1
Else IfString $sq2 IsIn $a %square = 2
Else IfString $sq3 IsIn $a %square = 3
Else IfString $sq4 IsIn $a %square = 4
Else IfString $sq5 IsIn $a %square = 5
Else IfString $sq6 IsIn $a %square = 6
Else IfString $sq7 IsIn $a %square = 7
Else IfString $sq8 IsIn $a %square = 8
Else IfString $sq9 IsIn $a %square = 9
IfInt %square = 0 EndEvent
IfInt %s <> %Turn Gosub SayNotYourTurn
IfInt %s <> %Turn EndEvent
# if so, check if valid square has been clicked
GetDescription $d ~t
IfString $d <> "" Gosub SayWrongSquare
IfString $d <> "" EndEvent
# if so, inscribe, count
# next either announce winner,
# or change %Turn to session nr. of next player
# $TurnDesc has the description
~a = ~t
GetDescription ~a $TurnDesc
ObjectModify ~t ~a
# $h has the Sub label
IfInt %Turn = %XPlayer Concat $h "x" %square
Else Concat $h "n" %square
Gosub $h
EndEvent
Sub CheckCancel
%z = 0
# w1=You are not playing
IfInt %s = %XPlayer %z = 1
Else IfInt %s = %NPlayer %z = 2
Else WhisperConcat &p $w1
IfInt %z = 0 EndSub
Else IfInt %z = 1 Gosub SayCancelX
Else Gosub SayCancelN
%GameStage = 3
# a2=Click here for new game
Concat $Notice1Desc $a2
Gosub SetNotice1
Gosub GetNotice3
# c6=GAME CANCELLED
Concat $Notice3Desc $c6
Gosub SetNotice3
EndSub
Sub SayCancelN
# s7=Game between {x} and {n} was cancelled by {y}
$s = $s7
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
Replace $s $s "{y}" $NPlayer
SayConcat $s
EndSub
Sub SayCancelX
# s7=Game between {x} and {n} was cancelled by {y}
$s = $s7
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
Replace $s $s "{y}" $XPlayer
SayConcat $s
EndSub
Sub GameDraw
%GameStage = 3
# s9=Game between {x} and {n} ended in a draw
$s = $s9
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
SayConcat $s
# a2=Click here for new game
Concat $Notice1Desc $a2
Gosub SetNotice1
Gosub GetNotice3
# c7=GAME ENDED IN DRAW
Concat $Notice3Desc $c7
Gosub SetNotice3
EndSub
Sub SayNotYourTurn
# w1=You are not playing
# w2=It's the turn of {y}
IfInt %s = %NPlayer Replace $s $w2 "{y}" $XPlayer
Else IfInt %s = %XPlayer Replace $s $w2 "{y}" $NPlayer
Else $s = $w1
WhisperConcat &p $s
EndSub
Sub SayWrongSquare
# w3=Wrong move
WhisperConcat &p $w3
EndSub
Event WaitClick
IfTargetUndefined EndEvent
GetSourceTarget &p ~t
GetSession %s &p
GetObjectNumber %t ~t
Gosub GetNotice1
GetObjectNumber %n ~not1
IfInt %n = %t %GameStage = 0
EndEvent
Event AvatarDelete
GetAvatarPerson &p
GetSession %s &p
IfInt %GameStage = 1 IfInt %Players > 0 Gosub CheckRegisterDel
Else IfInt %GameStage = 2 Gosub CheckGameDel
EndEvent
Sub CheckRegisterDel
IfInt %s = %XPlayer ResetTo Register
Else EndSub
EndSub
Sub CheckGameDel
IfInt %s = %XPlayer
Else IfInt %s = %MPlayer
Else EndSub
GetName $n &p
%GameStage = 3
# a2=Click here for new game
Concat $Notice1Desc $a2
Gosub SetNotice1
Gosub GetNotice3
# c6=GAME CANCELLED
Concat $Notice3Desc $c6
Gosub SetNotice3
# s8=Game between {x} and {n} cancelled: {y} left
$s = $s8
Replace $s $s "{x}" $XPlayer
Replace $s $s "{n}" $NPlayer
Replace $s $s "{y}" $n
SayConcat $s
EndSub
Text Strings
s1=Please wait, scanning area...
s2=Finished scanning :)
s3=Found signs
s4=Got disconnected... I'm back now... Starting all over :(
s5=Game between {x} and {n} was won by... {y}
s6=Game started between {x} and {n}
s7=Game between {x} and {n} was cancelled by {y}
s8=Game between {x} and {n} cancelled: {y} left
s9=Game between {x} and {n} ended in a draw
w1=You are not playing
w2=It's the turn of {y}
w3=Wrong move
e1=sign(s) not found...
e2=Notice1 board not found...
e3=Notice2 board not found...
e4=Notice3 board not found...
a1=Click here to register
a2=Click here for new game
a3=GAME ON
a4=click here to cancel
b1=Players:
c1=No players...
c2=Playing now:
c3=Winner:
c4=needs a partner
c5=
c6=GAME CANCELLED
c7=GAME ENDED IN DRAW
EndText
|
Download the script for bots with build rights only. The script file is N&CNew.txt.
Download the script for bots with build rights and Eminent Domain rights. The script file is N&CNewED.txt.
Both sets contain these language files: