News:

Welcome to the new Sinister Design forums!

Main Menu

Errors found by bugfartboy

Started by bugfartboy, June 04, 2015, 11:38:23 PM

Previous topic - Next topic

bugfartboy

#15
The map editor doesn't allow binary operators to be typed in the "Tag" box in the add character tool.

Also, for some reason I can't quite figure out, this character entry is giving my swordsmen the "Sword" attack twice. Once before Shove and another after.

<Char charname="random" spritetype="Swordsman" portrait="Swordsman" race="Human" sex="Either" classname="Swordsman" move="land" hurtParticle="Sparks" shadowType="Small" shadowY="32" charY="16" lighting="" ctr="Sword" onDeath="None" defaultAtkAnim="Motivate" atk1="Sword" atk2="Shove" atk3="" atk4="" atk5="" atk6="" atk7="" atk8="" hp="30" en="10" spd="5" ctrLimit="2" dodge="0" str="8" per="5" psyP="2" psyD="0" prcRes="0" slshRes="10" crshRes="20" mnRes="0" htRes="0" cdRes="0" ltRes="0" shRes="0" poiRes="0" acc="100" lvl="1" exp="0" pushable="true" tags="">
<OnLevelUp charname="Swordsman" hp="4" en="2" ctr="3" dodge="2" accuracy="0" str="3" psyP="0" psyD="0" prcRes="0" slshRes="2" crshRes="2" mnRes="0" htRes="0" cdRes="0" ltRes="0" shRes="0">2,Pull,4,Sprint,6,Feint,10,Double Strike</OnLevelUp>
</Char>



Weather interacts with dialog very strangely in the latest update.  I have the Pollen weather effect running on a map that works fine until I end a conversation that launches on turn 0.  Once I end that conversation all weather particles freeze in place and no new particles are emitted.  I've attached two logs: one from before I closed the conversation and another from right after.


tile0067 in the town tile set is still described as "Carpet" in the data file.  I noticed it a few versions back, but forgot about it until now.  It should read "Cobblestone".

CraigStern

Weird! I'll look into it.

Quote from: bugfartboy on July 01, 2015, 12:57:57 PMAlso, for some reason I can't quite figure out, this character entry is giving my swordsmen the "Sword" attack twice

Is that character then equipping a sword? Because that'll do it. (When you assign an attack in the <Char> tag, it gives the character that attack independent of their equipment.)

bugfartboy

Nope! That's the entire character entry for it, and I don't have any items that grant attacks for it to possibly even accidentally equip.

bugfartboy

#18
I was digging around in Data/Multiplayer/Maps and I noticed a few things.  The list of Multiplayer maps the game ships with is

  • Cone of Cold
  • Donut Tower
  • Little Lava Cave
  • River of Fire
  • Stonebridge
  • Sunken Fortress
  • Tavern
  • Tiny Lava Cave
  • Winter Ruins
but the list of Previews included are

  • Archipelago

    • No longer an available map
  • Cone of Cold
  • Donut Tower
  • Hotfoot Cavern

    • No longer an available map, thankfully. This one never ran well on my laptop.
  • Little Lava Cave
  • Ring Fortress

    • I'm guessing this is actually Sunken Fortress, but see bug below.
  • River of Fire
  • Stonebridge
  • Tavern
  • Tiny Lava Cave
  • Winter Ruins


Multiplayer is broken again.  After selecting a map and ruleset, clicking the next arrow leads to a blank menu with just the Close button.  Version 1.039, fresh installation.  Windows 7, 64-bit.
Odd. I deleted NewMatchPreferences.sol and the problem resolved itself.  Never mind, then.


Side question: Could we either get a bigger "Loading Error!" window or a log generated any time one is thrown?  I've been bumping into one, and I have no idea what it says because the path name goes way beyond the window's edge.

bugfartboy

Ever wonder how you could open the inventory of a character that could never be closed?  I know I didn't, but I found one anyway.

This Unit entry on a map:

<Unit trigger="Use,openBookcase" tag="Add,ID,201">0,99,BookcaseFull,5,3,None,Pyrokinetics for Beginners/Cryokinetics for Beginners/Skiakinetics for Beginners/Photokinetics for Beginners/Raging Fire: Focusing Your Passion/Glacial Wrath: Rationality and You/Shadowy Past: A History/Blinding Truths: Infinite Possibilities</Unit>

triggered to run this script:

<Script>
openBookcase
<Action>SetStat/ID[201],Army,=,0</Action>
<Action>OpenInv/ID[201]</Action>
<Action>SetStat/ID[201],Army,=,99</Action>
  </Script>

will indeed open the inventory of the bookcase but will never let you close it (despite pressing the close button many many times.)

I've attached a log file that I generated after attempting to close the inventory screen once.

Should I give up on my idea of using Objects as inventory containers?

CraigStern

See what happens if you only use book titles without any colons in them; I wonder if the colons are perhaps being treated as a delimiter in the <Unit> tag.

bugfartboy

I just removed the books with colons in them, and it didn't change anything.  Those books had been appearing the the unit's inventory fine.  From playing around with it, the issue seems to be with the last line of the script:

<Action>SetStat/ID[201],Army,=,99</Action>

Even though the window is open, the script continues to run in the background.  When I take that line out the window closes fine, but then I can't immediately trigger the object again.  I guess the game doesn't like trying to store character data for a character that isn't on the team it thought it was. (I think that makes sense.)  The only way I can think of (right now) to fix this is for scripts to pause when OpenInv is called, which would require a change to the game engine, which wouldn't be right for me to ask for or expect.

bugfartboy

My experiences with the IfItemGoTo and IfItemRun actions have been really spotty; they don't seem to work the way they should.  Would the mysterious needsUseType parameter inside checkForItem () be causing them to misbehave in some way?  In general the actions seem to return whatever value they want to, regardless of what (apparent) logic would suggest.

Here's the script/dialog event I'm having trouble with:

<Dialog branch="0" r="-1">
OnCharSelect/0,None/[Arena]/The bookcase was selected
<Action>SetArr/invList,1,1</Action>
<Action>SetArr/invList,2,1</Action>
<Action>SetArr/invList,3,1</Action>
<Action>SetArr/invList,4,1</Action>
<Action>SetArr/invList,5,1</Action>
<Action>SetArr/invList,6,1</Action>
<Action>SetArr/invList,7,1</Action>
<Action>SetArr/invList,8,1</Action>
<Action>IfItemRun/ID[201],Pyrokinetics for Beginners,false,Found Pyro 1,Weapon Hand</Action>
<Action>IfItemRun/ID[201],Cryokinetics for Beginners,false,Found Cryo 1</Action>
<Action>IfItemRun/ID[201],Skiakinetics for Beginners,false,Found Skia 1</Action>
<Action>IfItemRun/ID[201],Photokinetics for Beginners,false,Found Photo 1</Action>
<Action>IfItemRun/ID[201],Raging Fire,false,Found Pyro 2</Action>
<Action>IfItemRun/ID[201],Glacial Wrath,false,Found Cryo 2</Action>
<Action>IfItemRun/ID[201],Shadowy Past,false,Found Skia 2</Action>
<Action>IfItemRun/ID[201],Blinding Truths,false,Found Photo 2</Action>
<Action>SetStat/ID[201],Army,=,99</Action>
<Action>Run/EndConv</Action>
<Reply>.../EndConv/</Reply>
  </Dialog>
  <Script>
Found Pyro 1
<Action>SetArr/invList,1,0</Action>
  </Script>
  <Script>
Found Cryo 1
<Action>SetArr/invList,2,0</Action>
  </Script>
  <Script>
Found Skia 1
<Action>SetArr/invList,3,0</Action>
  </Script>
  <Script>
Found Photo 1
<Action>SetArr/invList,4,0</Action>
  </Script>
  <Script>
Found Pyro 2
<Action>SetArr/invList,5,0</Action>
  </Script>
  <Script>
Found Cryo 2
<Action>SetArr/invList,6,0</Action>
  </Script>
  <Script>
Found Skia 2
<Action>SetArr/invList,7,0</Action>
  </Script>
  <Script>
Found Photo 2
<Action>SetArr/invList,8,0</Action>
  </Script>


Line 781 is the line where this script starts to occur in the log.  In this instance, an array that read

Arena Gatehouse Bookcase,1,1,1,1,1,1,1,1

at the beginning should have read

Arena Gatehouse Bookcase,0,0,0,0,0,0,1,0

by the end.  Unfortunately it read

Arena Gatehouse Bookcase,1,0,0,0,0,0,0,0

by the end of this section of the script.  This is based on the items the character has in its inventory: 0 if it has it and 1 if it does not.

The character this script is operating on had 8 items, the 7th of which I removed before this script was triggered.  Each of those items is added and checked for in the same order each time.  I'm not quite sure what's going on; I've pored over it multiple times and can't seem to figure out what's wrong.  I'm not sure if it's a mistake on my end or not.

CraigStern

Ah! I figured it out; checkForItem() returns an int, but I was treating it as a Boolean value elsewhere in the code. I'm not sure how that slipped past the debugger--but in any event, it's now fixed for the next patch. :)

bugfartboy

#24
I'm having trouble getting some actions to work properly in the most recent version of the game (V 1.041).  This most greatly impacts and breaks the keyboard I built a while back.

In Introduction.xml I have a dialog box that sets a specific string to a specific value, for example:

<Action>SetString/nextMap,Super Cool Map</Action>

In a different map (the map concerning me being the aforementioned keyboard) I call that string in a NewScene action:

<Action>NewScene/-STR:nextMap-</Action>

The game then decides that it doesn't want to load the map, and crashes to the main menu.

Because of the nature of the bug, I haven't been able to force a log to generate.  I have however been able to examine the save file in-between maps: once after the introduction is finished, and again after the NewScene script is attempted.  The difference is scary:

Before:

<SavedGame inSlot="1" lastSaveTime="8/10/2015, 21:10" currCampaign="My Campaign" currScene="MBK" nextBattle="MBK" totalScore="0">
 
  <Roster>0</Roster>
 
  <Val>deathCount||600</Val>
  <Val>ctr||103</Val>
  <Val>recruitIDCount||102</Val>
  <Val>ArenaGatesUnlocked||0</Val>
  <Val>currentAura||500000</Val>
 
  <Str>MBKReturnScene||Hero Creation</Str>
  <Str>CurrentMap||Introduction</Str>
 
  <Arr>freeRecruitIDs||1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102</Arr>
  <Arr>invList||Arena Gatehouse Bookcase,0,0,0,0,0,0,0,0</Arr>
 
</SavedGame>


After:

<SavedGame inSlot="1" lastSaveTime="8/10/2015, 21:16" currCampaign="My Campaign" currScene="MBK" nextBattle="MBK" totalScore="-1680">
 
  <Roster>0</Roster>
 
  <Val>MBKScriptRan||0</Val>
  <Val>MBKCaps||1</Val>
 
  <Str>MBKOutput||L</Str>
  <Str>MBKName||DONE</Str>
  <Str>_ArrStr||L</Str>
 
  <Arr>MBKChars||L</Arr>
 
</SavedGame>




I have no idea where to go from here.

bugfartboy

#25
Never mind on that last one; the latest patch fixed it. I lied.  Could the game not be saving everything correctly when NewScene is called?