Are you sure that
   (?*bwapi* getMyUnits)
returns a list?

Jess' foreach isn't quite as tolerant as for in Java 1.5 and later.
You may have to return an java.util.iterator.

-W


On 10/03/2012, Hunter McMillen <mcmil...@gmail.com> wrote:
> I am receiving the error in the subject line when one of my rules is
> firing. I can't seem to find any other forum posts about it, here is my
> rule:
>
> (defrule build-supply-depot
> (minerals (value ?x&:(> ?x 100)))
> =>
> (try
> (foreach ?u (?*bwapi* getMyUnits)
> (if (= (?u getTypeID) ?*SCV_ID*) then
> (bind ?p (call get-next-build-tile()))
> (call ?*bwapi* drawCircle ?p.x ?p.y 100 111 FALSE FALSE)
> (call ?*bwapi* build (?u getID) ?p.x ?p.y
> (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
> (break)))
> catch
> (printout t (call ?ERROR toString) crlf)
> )
> )
>
> and here is the exact error message:
>
>         while executing (foreach ?u (call ?*bwapi* getMyUnits)
>                                    (if (= (call ?u getTypeID) ?*SCV_ID*)
> then
>                                    (bind ?p (call get-next-build-tile ))
>                                    (call ?*bwapi* drawCircle ?p.x ?p.y 100
> 111 FALSE FALSE)
>                                    (call ?*bwapi* build (call ?u getID)
> ?p.x ?p.y (UnitType$UnitTypes.Terran_Supply_Depot ordinal))
>                                    (break))).
>
>   Message: '' is a list, not  a string.
>
> But the error doesn't give me a line number.
>
> Any help would be appreciated.
> Thanks,
> Hunter McMillen
>

--------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users y...@address.com'
in the BODY of a message to majord...@sandia.gov, NOT to the list
(use your own address!) List problems? Notify owner-jess-us...@sandia.gov.
--------------------------------------------------------------------

Reply via email to