Use this script to count and optionally delete the objects made by the PaintBal script. Read the instructions at the begining of the script to customise it. If you chose to delete the objects they will be saved to file in xlg project format. You can use a program kindly written and made available by Andras to extract the scores from this project file, it can be downloaded at http://andras.net/tools/pbscore.zip.
You can download this script: click here.
[Head]
Type=Script
Version=2.0
[Settings]
Origin=0.000n 0.000w 0.00a 0.0°
Run
[Script]
########################################
# The SkullCounter Bot #
# a Xelagot script #
# third version #
# (c) 1999-2000 Alex Grigny de Castro #
########################################
# This bot script is a complement to the PaintBall Bot
# it counts the objects dropped by the paintball bot,
# and turns them into a project that can be saved and deleted
# using the Survey Manager.
# edit $m and $d:
# $m is the model your Paintball Bot uses to drop
# $d contains part of the description field
# The variables @a and @b have the coordinates
# of the oposite corners of the world (field)
#########################################################
# TO SAVE THE OBJECTS AUTOMATICALLY TO FILE
# AND DELETE THEM IN THE WORLD
#########################################################
# Test first this script to see whether it counts the
# right objects. If it is working ok,
# you can enable the 'delete' part of the script
# to automatically remove all the 'skulls' or 'flames'
# Look for the line in the script, just before the End
# statement, some 25 lines below this one.
# It looks like this:
# # IfInt %c > 0 Gosub Delete
# To enable automatic save and delete,
# remove the # sign at the begining of that line.
#########################################################
OnQueryBeginEvent QB
OnQueryCompleteEvent QC
%i = 1
@a = "25.1n 25.1w"
@b = "25.1s 25.1e"
$m = "flame1.rwx"
$d = "ejected by"
Concat $a "Searching, looking for skulls... model: " $d
Say $a
FilterClear
FilterModel $m
FilterDescription $d
ProjectClear
ProjectBackup @a @b %r
Label Loop
IfInt %i <= %r Goto Loop
ResClear
ResFromProjectFilter
ResCount %c
Concat $a %c " skulls counted."
Say $a
ProjectClear
ProjectFromRes
# IfInt %c > 0 Gosub Delete
End
Event QB
# only the first query triggers this event
Concat $a "Searching zone " %i " of " %r
Say $a
EndEvent
Event QC
inc %i
IfInt %i > %r Goto QC1
Concat $a "Searching zone " %i " of " %r
Say $a
EndEvent
Label QC1
Concat $a "Search completed."
Say $a
OnQueryBeginEvent
OnQueryCompleteEvent
EndEvent
Sub Delete
GetMyDir $f
GetWorld $w
GetDateTime !t
GetYear $y !t
GetMonth $m !t
Length %L $m
IfInt %L < 2 Concat $m "0" $m
GetDay $d !t
Length %L $d
IfInt %L < 2 Concat $d "0" $d
GetHour $h !t
Length %L $h
IfInt %L < 2 Concat $h "0" $h
GetMinute $n !t
Length %L $n
IfInt %L < 2 Concat $n "0" $n
GetSecond $s !t
Length %L $s
IfInt %L < 2 Concat $s "0" $s
Concat $g "Paintball_" $w "_" $y $m $d $h $n $s ".xlg"
Concat $f $f $g
SayConcat "Saving the survey as file " $g " in the script folder..."
ProjectSave $f
Say Deleting them now!...
ProjectDestroy
EndSub
|