Jump to content

Photo

Deprecation notice: Game->*SolidCombo changes


  • Please log in to reply
1 reply to this topic

#1 DarkDragon

DarkDragon

    Junior

  • ZC Developers

Posted 19 January 2017 - 01:25 AM

Per the discussion in this thread: http://www.armageddo...h-SetComboSolid
an old bug with the way maps are indexed in Game->*ComboSolid has been fixed in the next version of ZC. This function now works the same way as other combo editing functions.

Starting with the next release, old quest and scripts are affected in the following way:
- Old quest behavior is unchanged when played in ZC.
- Old quests that are saved in ZQ, but whose scripts are not recompiled, will continue to function using the old behavior.
- Scripts in a quest (old or new) will switch to the new behavior when recompiled. You must correct your scripts to use the corrected map index before recompiling your scripts.

 

If you are currently using a 2.50.3 RC and are using scripts with these commands, you quest is currently in a twilight zone bugged state. Updating your calls and recompiling once we release the next RC is strongly recommended.

 

We apologize for any disruption.


Edited by DarkDragon, 19 January 2017 - 01:33 AM.

  • Avaro likes this

#2 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 20 January 2017 - 12:53 PM

I'll step in for a moment to clarify some things to the userbase:

 

This is a bugfix, that was absolutely mandatory. In 2.50, somehow a set of bad maths slipped into the assembly code, which read the map offsets improperly. The result of this, is that SetComboSolid() was able to write to illegal map locations.

 

Because most locations were legal, many uses of this function 'worked', but the resulting values were such that some inputs to SetComboSolid() would crash ZC.

 

This change corrects the offsets, but as a result, scripts that use the old values will need to be adjusted under the following conditions:

 

  1. A quest using them, is recompiled, and saved in a new ZC version.
  2. You create a quest in a new ZC version, that uses old scripts using SetComboSolid().

 

Note that this is not a disaster, and the damage should be minimal:

  • It does not affect any old quests in the database.
  • it does not affect new quests made in a new version of ZC, if the user properly sets the values.
  • It could affect headers, that call SetComboSolid(), or old scripts that you wish to compile in the new ZC versions. If any script calls SetComboSolid(), you will need to verify its values. Quests saved in 2.50.x will run properly, and new scripts should not have problems.

 

We plan to update the parser for future ZC versions to store information, including the ZScript version associated with scripts, so that it is easier to mend things like this in the future, with less potential damage.

 

Please note that this was not our first solution, but it was the inevitable solution, as all others had failing points, and the implications of these, were far worse than requiring the user to check script values when making a new quest with old scripts, or updating/recompiling in a new version.

 

We encourage anyone who has made a script, or a header, that depends on SetComboSolid() to update any public instance of that script, or header, when the next ZC version is available. You may check the results of the revised SetComboSolid() values in 2.50.3RC1, or [2.future] 2.54 (beta 40, or later).

 

Again, our apologies for this issue.


Edited by ZoriaRPG, 20 January 2017 - 12:56 PM.



1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users