I am not sure what could be done about this, except of course having all developers review all their modules and make sure they work with the latest Vassal (when there is a stable version that lasts more than a week, I guess).
{If(TalonController==$PlayerName$,"Talon",If(TerranController==$PlayerName$,"Terran","n\/a"))}
{If(TalonController=="$PlayerName$","Talon",If(TerranController=="$PlayerName$","Terran","n\/a"))}
{If(TalonController==PlayerName,"Talon",If(TerranController==PlayerName,"Terran","n\/a"))}
This ONLY applies to the use of $xxx$ variables inside the Beanshell {} braces. They MUST be surrounded by double quotation marks.
But not if the property resolves to an integer. No double quotes needed.
Also, the property definition (e.g. marker trait) must appear in the trait list above the beanshell check that uses it. The beanshell won’t see it if it comes later. This issue drove me nuts last night.
But not if the property resolves to an integer. No double quotes needed.
But double quoting an integer won't cause problems.
Also, the property definition (e.g. marker trait) must appear in the trait list above the beanshell check that uses it. The beanshell won’t see it if it comes later. This issue drove me nuts last night.
In what context Stan? This will be dependent on the Trait that holds the Beanshell expression and in general, they should search for properties starting at the bottom-most trait in the piece and work up. If a particular trait is not doing this, I need to know.
The point I'm making is the quotes aren't there I think for the $$. They are there to tell Beanshell that the stuff replacing the $$ property is a STRING. I would think if Beanshell didn't see a string (quotes) or an integer, then it would interpret what's there as a property, effectively double-dereferencing what's between the $$.
{hereX == "$CurrentX$" }
{hereX == $CurrentX$ }
But of course, it's not what I first coded. Instead, I had the lines reversed in order. i.e.:
send to location (to a culture piece as above)
marker: myCulture = <culture number>
This did NOT work. I think the myCulture property is undefined at send-to-location time. I had to move the myCulture definition higher up in the trait list to get it to work.
Brent Easton wrote:We don't have the manpower to monitor every sub forum of every gaming site on the internet. Unless issues are brought to our attention on the Vassal forums, they will generally not be seen by the Vassal developers.
Looking at your buildfile, I believe the problem you are seeing ....
==$PlayerName$
or
!=$PlayerName$
To reproduce it, if anybody cares to look into this, one needs to follow these steps:
Brent Easton wrote:Why would we not care to look? This is what we do. If you had reported this problem to us when it was first reported to you back in early July, we would have investigated and resolved it back then and saved you and your players this angst. We cannot solve problems that people don't tell us about.
You will also need to change the following cases, taking careful care of whether or not there is a space after the ==/!=
If(TalonController==$PlayerName$
If(TerranController==$PlayerName$
If(OwnerID==$highlightShipID$
If(TargetID==$highlightShipID$
{LocationName!=$OldLocationName$
CurrentMap == $OldMap$
ControllerName == $PlayerName$}
Sector == $CurrentSector$
Controller == $PlayerName$}
!= $PlayerName$)}
{Controller != $PlayerName$
{(BasicName != $CurrentSector$
CurrentZone != $CurrentSector$
Sector != $CurrentSector$
Note that there are 3 cases of != $OldTargetName$ or != $OldLocationName$ on lines 206, 231 and 412 that are NOT withing {} braces. These are old-style expressions that should not be changed unless you upgrade them to include the Beanshell braces.
Return to Technical Support & Bugs
Users browsing this forum: No registered users and 5 guests