25-01-2004, Kell - Fixed a bug with @Gain trigger, that regardless of it even existing would reset the skill to the skill being tested. This turned out in Parrying skill interrupting combat, and other buggy skill behaviour. - Added EF_Scripts_Parse_Verbs (040). If enabled, verbs (the 1st command in a script line) are parsed before execution, thus making "TRY" obsolete for that purpose. Example: LOCAL.MYSTAT = MODSTR // the following line is parsed to become: str = <> + 5 = <> + 5 SYSMESSAGE Stat '' increased to <>. 26-01-2004, Kell - Renamed SPELLFLAG_TARG_OBJ to SPELLFLAG_TARG_ITEM. This is really an internal change, but you should change spheredefs.scp to be: SPELLFLAG_TARG_ITEM 000002 SPELLFLAG_TARG_CHAR 000004 SPELLFLAG_TARG_OBJ SPELLFLAG_TARG_CHAR | SPELLFLAG_TARG_ITEM - Made sure a character can only be targeted by a spell with SPELLFLAG_TARG_CHAR, and that an item can only be targetted by a spell with SPELLFLAG_TARG_ITEM. - Modified TARGET command to allow 3 possible suffixes (in this order): F, G and W. So you can do TARGETGW, TARGETFW, etc. F - Call a function after target ( eg: TARGETF f_rename ) W - Warn against criminal action G - Target ground - Made sure flags in the CAN= field for ITEMDEFs work correctly. A few items are missing these flags, such as i_wall_stone_7 missing CAN_I_BLOCK (so NPCs walk through them). - Added MULTICREATE command, so you can place multi items via scripts: first set their position then call MULTICREATE to build them permanently. 27-01-2004, Kell - Added EF_New_Maps (020), which enables the mapchange packet (0bf, subcmd 08). If enabled, moving to mapplane 1 or 2 will send a packet for the client to see the appropriate map, and moving to other mapplanes will send the packet changing back to basic map. This allows one to see the new maps. However, there is NO support on the server for new maps. That means that you're walking on the new map only on the clientside, while on the server you're walking on the standard map. - Server now recognizes bogus extended message 15 - won't send error message to client. - Added recognition for clients up to 4.0.0c - will not endure AOS features though. Useful for people with plain AOS installation that wish to play on the server. - Mind you that this isn't AOS support, it's merely supporting the client. 28-01-2004, Kell - Fixed TARGP not being set when using a spell. - Added SPELLFLAG_TARG_NOSELF (0800), which stops spells from being cast on the player itself. - Fixed accessing LOCAL variables straight within DIALOG sections (also fixes FOR loops). - "return 1" within a DIALOG section stops the dialog from actually being sent. 30-01-2004, Kell - Changed SPELLEFFECT to take UID of SRC as 3rd argument, and UID of source item as 4th argument (optional). To maintain compatibility, a 3rd argument of '1' refers to the current SRC. Example: CONT.SPELLEFFECT s_fireball 1000 In this example, will be the SRC of @Effect and @SpellEffect triggers. Say no to equip fudging :p - Fixed KARMA going to odd ranges. - Added EF_Intrinsic_Locals (080), so that after you do LOCAL.X = something, you can access it via just . Be careful though, not to name local variables after some known keyword, or your results might how you want them. Example: LOCAL.X = 10 SYSMESSAGE X is . 02-02-2004, Kell - Fixed an exploit that would allow insta-resurrection anywhere (death menu packet). - Fixed one last \n\r packet exploits. - Made sure \n or \r are never saved to the world file, so even if some packet exploit got overlooked, it'll end up causing no harm and issue a warning in the console.. This is likely to be the end of 99% of shard hacking. 03-02-2004, Kell - Fixed FOR x being 0 based - FOR 5 will now loop from 1 to 5 and not from 0 to 5. - Fixed "/" character in parsing of simple formulas (so you don't need to use eval when assigning formulas to TAGs/VARs or in RETURN). - Fixed @Targon_ground in GM mode with weapons throwing critical exception (it was attempting to damage a static item, which obviously is not an item at all). - Targon_ triggers now have argn1 as the id of the static item (if a static was targeted), and ARGO being the targeted item (reduntant yes, but coherent). - (intermediary test release here to get some feedback) - Polymorph spell fixed. 04-02-2004, Kell - When loading a world with VERSION below "0.55 R3", convert spells that affect stats, by removing its effect from base stats (old method) then putting the effect into modstats (new method). This ensures compatibility with spells and cursed items. Notice that this only works for worlds saved on versions earlier than R3, seeing as worlds saved on the test versions of R3 made no conversion and thus had items with both formats which cannot be distinguished. If for some reason you want to bypass this conversion on an old world, change the version of the save files to "0.55 R3". If you want to force this conversion on a world saved with R3 test versions, change its version to "0.55". - Fixed melee weapons with large RANGE hitting through walls. - Added ARCHERYMAXDIST to sphere.ini (defaults to 12). - RANGE works for ranged weapons (bows) too. If no minimum range is set, then ARCHERYMINDIST is used. If no maximum range is set, then ARCHERYMAXDIST is used. Notice that on ITEMDEFs, syntax for range is either RANGE=min,max or RANGE=max (assumes 0 as min for melee weapons, or archerymindist for ranged weapons). - Account delete should be working fine now. - IPs now accept 255 as a wildcard. So if you add an ip under BLOCKIPs with: 1.2.255.255 you will actually be blocking everyone IP under 1.2 - EOF Account really fixed now (thanks everyone who pointed all the flaws out). note for programmers: never ignore the return error value of a function :p - Added , where iPos is the position to start at and ch can be either a single character, or the ascii code for a character. Example: --> will return 5. --> will return 4. - Added . Returns "iCount" numbers string, starting at iPos. Example: --> will return "look". - Both StrSub and StrPos can take a negative value as iPos. In such a case, the position is counted from the end of the string. So if you do: StrSub -5 2 --> returns "cd". - Changed StrArg / StrEat to stop at either a space or a comma. These are quick functions when you just want to take one argument from a string, or just want the string after one argument. Imagine you have a function that takes 1 number and a string. Instead of using argv[], you could use strarg to get the number and streat to get the string. 05-02-2004, Kell - Spells with SPELLFLAG_SCRIPTED can "return 0" in @Effect/@SpellEffect to bypass any hardcoded effect, w/o cancelling the spell. - Duration for summon spells now takes in consideration the DURATION field in the SPELL section and the caster level (yeah, it didn't). - @SpellEffect/@Effect is triggered on the NPC when it is first summoned (it's always considered to be the s_summon_creature spell, regardless of spell initially used to summon the NPC). 06-02-2004, Kell - Spells with both SPELLFLAG_TARG_XYZ and SPELLFLAG_TARG_CHAR/ITEM can be used either on the ground or on a character / item.