Difference between revisions of "Revisions Changelog"

From SphereWiki
Jump to: navigation, search
(REVISIONS-56-SERIES)
(0.56d, Current Nightly)
 
(42 intermediate revisions by 3 users not shown)
Line 12: Line 12:
 
new crypt for clients up to 2.0.7
 
new crypt for clients up to 2.0.7
 
2.0.7 client has strange problem with text containing - or _ in UNICODE speech modes (this can crash the client in some cases)
 
2.0.7 client has strange problem with text containing - or _ in UNICODE speech modes (this can crash the client in some cases)
UNICODESpeech=off will fix for english.
+
  UNICODESpeech=off will fix for english.
 
3d beta client support.
 
3d beta client support.
 
new key ACCOUNT.CHARS
 
new key ACCOUNT.CHARS
Line 30: Line 30:
 
x. Also you can smelt Chaos and Order shields to get gold and blackrock ingots in mass amounts with no or little work.
 
x. Also you can smelt Chaos and Order shields to get gold and blackrock ingots in mass amounts with no or little work.
 
x. Also with the guild stones, you can recruit the guildmaster making him a candidate and  
 
x. Also with the guild stones, you can recruit the guildmaster making him a candidate and  
take over the guild stone and kick everyone out. Warring guilds tend to make mules and do this sort of thing.
+
  take over the guild stone and kick everyone out. Warring guilds tend to make mules and do this sort of thing.
 
18. Many guild bugs. Players can be "half-way" in a guild now.  
 
18. Many guild bugs. Players can be "half-way" in a guild now.  
The result is other waring guilds are now orange to you and  
+
  The result is other waring guilds are now orange to you and  
you are blue to them. They can be half way in the guild two  
+
  you are blue to them. They can be half way in the guild two  
ways.  
+
  ways.  
18.1. Have the guildmaster never accept you fully in.  
+
  18.1. Have the guildmaster never accept you fully in.  
18.2. after the guildmaster accepts you in, don't click the stone. You can actually end up half way in a guild with your guild tag on.  
+
  18.2. after the guildmaster accepts you in, don't click the stone. You can actually end up half way in a guild with your guild tag on.  
 
19. Another guild bug is people will make a charater with 10 str  
 
19. Another guild bug is people will make a charater with 10 str  
and then join it to a guild thats either Chaos or Order.  
+
  and then join it to a guild thats either Chaos or Order.  
Then go attack greens, the player will auto attack back and  
+
  Then go attack greens, the player will auto attack back and  
easily kill the player with 10 str. Thusly giving them a kill
+
  easily kill the player with 10 str. Thusly giving them a kill
they get guard killed and a near by guildmate loots the corpse of the person that got attacked by the guy with 10 str. No criminal tags are incured on either the looter or the attacker due to the fact that the target was green.
+
  they get guard killed and a near by guildmate loots the corpse of the person that got attacked by the guy with 10 str. No criminal tags are incured on either the looter or the attacker due to the fact that the target was green.
  
 
---- 0.55b --------------------------------------------------------------------
 
---- 0.55b --------------------------------------------------------------------
Line 84: Line 84:
 
test output for scripts and logs should use the \r\n text mode. NotePad will work again.
 
test output for scripts and logs should use the \r\n text mode. NotePad will work again.
 
SKILLDEF effects
 
SKILLDEF effects
"DELAY_HI",
+
  "DELAY_HI",
"DELAY_LO",
+
  "DELAY_LO",
"EFFECT_HI",
+
  "EFFECT_HI",
"EFFECT_LO",
+
  "EFFECT_LO",
 
missing SKILLMAKE=BLACKSMTIHING x.x for item 01b73 (i_shield_buckler) in sphereitemb5.scp
 
missing SKILLMAKE=BLACKSMTIHING x.x for item 01b73 (i_shield_buckler) in sphereitemb5.scp
 
SPELL_Reactive_Armor = effect_Lo and Effect_Hi = random max percent reflected damage.
 
SPELL_Reactive_Armor = effect_Lo and Effect_Hi = random max percent reflected damage.
Line 95: Line 95:
 
---- 21/03/2001
 
---- 21/03/2001
  
X Taste Id doesnt work at all it doesnt give a message period.
+
X Taste Id doesnt work at all it doesnt give a message period.
 
burn vs. smelt. flame effect ?
 
burn vs. smelt. flame effect ?
 
X -npc speech color not working properly  
 
X -npc speech color not working properly  
Line 102: Line 102:
 
X Polymorph not working   
 
X Polymorph not working   
 
SEEMS OK TO ME - When creating a t_script item, buying off a vendor, not to have the t_script attributes,  
 
SEEMS OK TO ME - When creating a t_script item, buying off a vendor, not to have the t_script attributes,  
the TAGS do not appear to working through the ON=@CREATE .
+
  the TAGS do not appear to working through the ON=@CREATE .
 
X Need the @LOGIN @LOGOUT trigger
 
X Need the @LOGIN @LOGOUT trigger
 
x Backgammon board has chess pieces   
 
x Backgammon board has chess pieces   
 
X All drinkable potions create a gold coin in pack instead of empty bottle (probably script TDATA value).   
 
X All drinkable potions create a gold coin in pack instead of empty bottle (probably script TDATA value).   
? CLIENT UPDATE BUG? - when u set an amount as a gm it doesnt set the whole stack-it leaves the original 1 and then gives u the diff in a different pile
+
? CLIENT UPDATE BUG? - when u set an amount as a gm it doesnt set the whole stack-it leaves the original 1 and then gives u the diff in a different pile
 
-NEED to do UPDATE now - couldnt .set flags statf_nightsight  
 
-NEED to do UPDATE now - couldnt .set flags statf_nightsight  
-Setting colors of cchar objects is very strange, I would color my zorn, but no refeash commands would show me the color, when I mounted it, it turned the right color.
+
  -Setting colors of cchar objects is very strange, I would color my zorn, but no refeash commands would show me the color, when I mounted it, it turned the right color.  
 
- CANT CURSE self - curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)   
 
- CANT CURSE self - curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)   
 
new command SAYUA Color, Mode, Font, Lang, Text
 
new command SAYUA Color, Mode, Font, Lang, Text
Line 120: Line 120:
 
TRUE - Drink one potion, then drink a different one - second one drank overwrites the first potion's effect. (IE, poison yourself, drink agility - now agile, but no longer poisoned at all)(all potions, same thing)   
 
TRUE - Drink one potion, then drink a different one - second one drank overwrites the first potion's effect. (IE, poison yourself, drink agility - now agile, but no longer poisoned at all)(all potions, same thing)   
 
TRUE - Var.x=rand(nnn) doesn't save output of Random function (so a number since 0 to nnn-1) but it save the function.
 
TRUE - Var.x=rand(nnn) doesn't save output of Random function (so a number since 0 to nnn-1) but it save the function.
Should use Var.x = <eval rand(nnn)>  rand() only works bare if it's an 'if' or other known math function.
+
  Should use Var.x = <eval rand(nnn)>  rand() only works bare if it's an 'if' or other known math function.
 
i_shield_wood shield made of only wood.
 
i_shield_wood shield made of only wood.
  
Line 152: Line 152:
 
Ingot smelting yield for one ore is 1.
 
Ingot smelting yield for one ore is 1.
 
x) If in war mode, summon a animal, you end up fighting yourself
 
x) If in war mode, summon a animal, you end up fighting yourself
Healing - you get two messages about applying bandages when you heal yourself/anyonelse  unequip on heal  healrates totally screwed up 100 heal 100 anat = crazy healing
+
Healing - you get two messages about applying bandages when you heal yourself/anyonelse  unequip on heal  healrates totally screwed up 100 heal 100 anat = crazy healing
 
SECTOR.RAIN SECTOR.DRY weather transition problem.
 
SECTOR.RAIN SECTOR.DRY weather transition problem.
 
MORE1l, MORE1h, MORE2l, MORE2h
 
MORE1l, MORE1h, MORE2l, MORE2h
 
remove "Rune to:" header
 
remove "Rune to:" header
 
CAN'T FIND THIS- they don't count fists or daggers as a criminal offence,  
 
CAN'T FIND THIS- they don't count fists or daggers as a criminal offence,  
thus getting the npc's to attack them and making the npc grey and free to kill.
+
  thus getting the npc's to attack them and making the npc grey and free to kill.
 
CALL FOR GUARDS WORKS FOR ME - Just hit the blue npc or player one time in war mode. The aggressor WILL NOT
 
CALL FOR GUARDS WORKS FOR ME - Just hit the blue npc or player one time in war mode. The aggressor WILL NOT
 
  be flagged criminal until the victim die. Or the aggressor can go in peace
 
  be flagged criminal until the victim die. Or the aggressor can go in peace
Line 180: Line 180:
 
With GM or PC, if you try to fill a keg with potion you get the you cannot use this yet message. I have a mortar and pestle. Tested at GM alchemy skill for both GM and PC.
 
With GM or PC, if you try to fill a keg with potion you get the you cannot use this yet message. I have a mortar and pestle. Tested at GM alchemy skill for both GM and PC.
 
In UO3D, if you log into an account that has no characters, you get a message
 
In UO3D, if you log into an account that has no characters, you get a message
that says "You already have 5 characters".  -- Fixed AD 3/31/2001.
+
  that says "You already have 5 characters".  -- Fixed AD 3/31/2001.
 
Increased maximum item name length to 256.
 
Increased maximum item name length to 256.
 
The teleports in the map script, like entering dungeons should not allow NPC's to travel through them unless they are pets. This will keep monsters from harder levels roaming to easier levels.
 
The teleports in the map script, like entering dungeons should not allow NPC's to travel through them unless they are pets. This will keep monsters from harder levels roaming to easier levels.
Line 210: Line 210:
 
i_multi_house_wheat_cottage
 
i_multi_house_wheat_cottage
 
UNICODE to UTF8 convert for LINUX
 
UNICODE to UTF8 convert for LINUX
syntax error with " if ((<morey><0) || (<morey>>1000))"
+
syntax error with " if ((<morey><0) || (<morey>>1000))"
 
port +1000 for the accounts ?
 
port +1000 for the accounts ?
  
Line 546: Line 546:
 
12-12-2003, Kell
 
12-12-2003, Kell
 
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:
 
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:
       FONT_BOLD, // 0 - Bold Text = Large plain filled block letters.
+
       FONT_BOLD, // 0 - Bold Text = Large plain filled block letters.
       FONT_SHAD, // 1 - Text with shadow = small gray
+
       FONT_SHAD, // 1 - Text with shadow = small gray
       FONT_BOLD_SHAD, // 2 - Bold+Shadow = Large Gray block letters.
+
       FONT_BOLD_SHAD, // 2 - Bold+Shadow = Large Gray block letters.
       FONT_NORMAL, // 3 - Normal (default) = Filled block letters.
+
       FONT_NORMAL, // 3 - Normal (default) = Filled block letters.
       FONT_GOTH, // 4 - Gothic = Very large blue letters.
+
       FONT_GOTH, // 4 - Gothic = Very large blue letters.
       FONT_ITAL, // 5 - Italic Script
+
       FONT_ITAL, // 5 - Italic Script
       FONT_SM_DARK, // 6 - Small Dark Letters = small Blue
+
       FONT_SM_DARK, // 6 - Small Dark Letters = small Blue
       FONT_COLOR, // 7 - Colorful Font (Buggy?) = small Gray (hazy)
+
       FONT_COLOR, // 7 - Colorful Font (Buggy?) = small Gray (hazy)
       FONT_RUNE, // 8 - Rune font (Only use capital letters with this!)
+
       FONT_RUNE, // 8 - Rune font (Only use capital letters with this!)
       FONT_SM_LITE, // 9 - Small Light Letters = small roman gray font.
+
       FONT_SM_LITE, // 9 - Small Light Letters = small roman gray font.
 
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,
 
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,
 
   SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.
 
   SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.
Line 570: Line 570:
 
   similar to ACT but it can be used anywhere.  
 
   similar to ACT but it can be used anywhere.  
 
   Example:
 
   Example:
     OBJ = <UID>
+
     OBJ = <UID>
 
     SAY You are <OBJ.NAME>, with uid <OBJ.UID>.
 
     SAY You are <OBJ.NAME>, with uid <OBJ.UID>.
 
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific
 
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific
 
   UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.
 
   UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.
 
   Example:
 
   Example:
     MEMORY <SRC.UID> 0200 // set memory  
+
     MEMORY <SRC.UID> 0200 // set memory  
 
     SAY Memory flag regarding <UID> is <MEMORY.<SRC.UID>>.
 
     SAY Memory flag regarding <UID> is <MEMORY.<SRC.UID>>.
  
Line 599: Line 599:
 
   ON = @Start
 
   ON = @Start
 
   if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )
 
   if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )
       SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>
+
       SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>
 
   endif
 
   endif
  
Line 609: Line 609:
 
     NEWITEM i_gold
 
     NEWITEM i_gold
 
     NEW.AMOUNT 100
 
     NEW.AMOUNT 100
     NEW.P = <TOPOBJ.P>
+
     NEW.P = <TOPOBJ.P>
 
   You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).
 
   You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).
  
Line 629: Line 629:
 
19-12-2003, Kell
 
19-12-2003, Kell
 
- To make writing dialogs easier, added a cursor and relative coordinates:
 
- To make writing dialogs easier, added a cursor and relative coordinates:
     dorigin 50 50 // sets the origin to x=50, y=50
+
     dorigin 50 50 // sets the origin to x=50, y=50
 
   Using "*" near a coordinate makes it relative to the origin, and displaces the origin by some amount:
 
   Using "*" near a coordinate makes it relative to the origin, and displaces the origin by some amount:
 
     dtext    *0    *10    0    the origin is now x=50 y=60, so is the last location
 
     dtext    *0    *10    0    the origin is now x=50 y=60, so is the last location
Line 640: Line 640:
 
   dtext    *0  -    5  1:
 
   dtext    *0  -    5  1:
 
     dtext  +10  -    0  the text for row1, col1
 
     dtext  +10  -    0  the text for row1, col1
   dtext  *200  -    5  2: // x orig = 200
+
   dtext  *200  -    5  2:   // x orig = 200
 
     dtext  +10  -    0  the text for row1, col2
 
     dtext  +10  -    0  the text for row1, col2
   dtext  *200  -    5  3: // x orig = 400
+
   dtext  *200  -    5  3:   // x orig = 400
 
     dtext  +10  -    0  the text for row1, col2
 
     dtext  +10  -    0  the text for row1, col2
  
Line 732: Line 732:
 
23-12-2003, Kell
 
23-12-2003, Kell
 
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:
 
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:
     TERRAIN The terrain ID
+
     TERRAIN The terrain ID
     ISDIRT Checks the terrain ID to see if it's dirt.
+
     ISDIRT Checks the terrain ID to see if it's dirt.
     ISGRASS guess
+
     ISGRASS guess
     ISROCK dunno
+
     ISROCK dunno
     ISWATER guess again
+
     ISWATER guess again
     STATICS Number of statics in the position
+
     STATICS Number of statics in the position
     STATICS(n) ID of static Nth static ( eg: <SERV.MAP(200,300).STATICS(0)>. Shows no error in the console
+
     STATICS(n) ID of static Nth static ( eg: <SERV.MAP(200,300).STATICS(0)>. Shows no error in the console
if static isn't present, returning 0 - useful to test for a static w/o counting or looping.
+
    if static isn't present, returning 0 - useful to test for a static w/o counting or looping.
     STATICS.n   same
+
     STATICS.n  same
     STATICS(n).key Get a key from the appropriate ITEMDEF. eg: <SERV.MAP(200,300).STATICS(0).NAME>
+
     STATICS(n).key Get a key from the appropriate ITEMDEF. eg: <SERV.MAP(200,300).STATICS(0).NAME>
  
 
- Added basic iterator construct, WHILE, with the following syntax:
 
- Added basic iterator construct, WHILE, with the following syntax:
 
     WHILE ( condition )
 
     WHILE ( condition )
// do stuff, current iteration number in <LOCAL._WHILE>
+
  // do stuff, current iteration number in <LOCAL._WHILE>
 
     END // or ENDWHILE
 
     END // or ENDWHILE
  
 
   also added FOR, terminated with either END or ENDFOR, with the following syntax:
 
   also added FOR, terminated with either END or ENDFOR, with the following syntax:
  
     FOR 5 // loops from 0 to 5, current iteration number in LOCAL._FOR
+
     FOR 5 // loops from 0 to 5, current iteration number in LOCAL._FOR
   or FOR 3 5 // loops from 3 to 5, current iteration number in LOCAL._FOR
+
   or FOR 3 5 // loops from 3 to 5, current iteration number in LOCAL._FOR
   or FOR K 5 // loops from 0 to 5, current iteration number in LOCAL.K
+
   or FOR K 5 // loops from 0 to 5, current iteration number in LOCAL.K
   or FOR K 3 5 // loops from 3 to 5, current iteration number in LOCAL.K
+
   or FOR K 3 5 // loops from 3 to 5, current iteration number in LOCAL.K
// do stuff
+
  // do stuff
 
     END  // or ENDFOR
 
     END  // or ENDFOR
  
Line 767: Line 767:
 
   is also a FLAGS key for SKILL section, with the following values:
 
   is also a FLAGS key for SKILL section, with the following values:
 
     [DEFNAME skill_defs]
 
     [DEFNAME skill_defs]
     SKF_SCRIPTED 01 // no hardcoded behaviour, only triggers are called.
+
     SKF_SCRIPTED 01 // no hardcoded behaviour, only triggers are called.
 
     // feel free to add new tags you find useful, but only above 01000 please, to make room for future
 
     // feel free to add new tags you find useful, but only above 01000 please, to make room for future
 
     expansion
 
     expansion
Line 782: Line 782:
  
  
[DEFNAME tile_flags] // by Shadowlord
+
[DEFNAME tile_flags]     // by Shadowlord
tilef_background 01 // No idea. None whatsoever. Maybe it's the blackness.
+
tilef_background 01   // No idea. None whatsoever. Maybe it's the blackness.
tilef_weapon 02 // I smack thee with this here ... club?
+
tilef_weapon   02   // I smack thee with this here ... club?
tilef_transparent 04 // Yeah. So we can see through it?
+
tilef_transparent 04   // Yeah. So we can see through it?
tilef_translucent 08 // Okay...
+
tilef_translucent 08   // Okay...
tilef_wall 010 // Hey look, we can't walk through it!
+
tilef_wall   010   // Hey look, we can't walk through it!
tilef_damaging 020 // Lava, perhaps? Fires, hmm!
+
tilef_damaging   020   // Lava, perhaps? Fires, hmm!
tilef_impassable 040 // Mountains and stuff, I'll wager.
+
tilef_impassable 040   // Mountains and stuff, I'll wager.
tilef_wet 080 // Water? Or mud? Or a slick road in a rainstorm? Probably the first.
+
tilef_wet   080   // Water? Or mud? Or a slick road in a rainstorm? Probably the first.
tilef_unknown 0100 // Uh...
+
tilef_unknown   0100   // Uh...
tilef_surface 0200 // Tables or something?
+
tilef_surface   0200   // Tables or something?
tilef_bridge 0400 // I wonder why they'd have a flag for that.
+
tilef_bridge   0400   // I wonder why they'd have a flag for that.
tilef_stackable 0800
+
tilef_stackable   0800
tilef_window 01000 // So we can see/shoot out?
+
tilef_window   01000   // So we can see/shoot out?
tilef_noshoot 02000 // ? We can't shoot out or something? So, like a glass window maybe?
+
tilef_noshoot   02000   // ? We can't shoot out or something? So, like a glass window maybe?
tilef_prefixA 04000 // A card
+
tilef_prefixA   04000   // A card
tilef_prefixAn 08000 // An apple
+
tilef_prefixAn   08000   // An apple
tilef_internal 010000 // hair, beards, etc
+
tilef_internal   010000   // hair, beards, etc
tilef_foliage 020000 // Probably bushes and tree leaves and stuff.
+
tilef_foliage   020000   // Probably bushes and tree leaves and stuff.
tilef_partialHue 040000 // semi-glowy?
+
tilef_partialHue 040000   // semi-glowy?
tilef_unknown_1 080000 // Well, gee. I should see if it's used on anything...
+
tilef_unknown_1   080000   // Well, gee. I should see if it's used on anything...
tilef_map 0100000 // Sounds good to me.
+
tilef_map   0100000   // Sounds good to me.
tilef_container 0200000 // They flag these!?
+
tilef_container   0200000   // They flag these!?
tilef_wearable 0400000 // Omigod!
+
tilef_wearable   0400000   // Omigod!
tilef_lightSource 0800000 // I'm getting tired of typing repetitive shiznit now.
+
tilef_lightSource 0800000   // I'm getting tired of typing repetitive shiznit now.
tilef_animated 01000000 // Like fire again. And stuff. Those spinny propeller thingies!
+
tilef_animated   01000000 // Like fire again. And stuff. Those spinny propeller thingies!
tilef_noDiagonal 02000000 // !?!???!!?
+
tilef_noDiagonal 02000000 // !?!???!!?
tilef_unknown_2 04000000 // I really hope some of these unknowns are n/w/s/e facing flags.
+
tilef_unknown_2   04000000 // I really hope some of these unknowns are n/w/s/e facing flags.
tilef_armor 08000000 // Armor, okay, so does that count shields? Hmmm?
+
tilef_armor   08000000 // Armor, okay, so does that count shields? Hmmm?
tilef_roof 010000000 // "Don't fall through me!" Or why isn't it just flagged surface or something?
+
tilef_roof   010000000 // "Don't fall through me!" Or why isn't it just flagged surface or something?
tilef_door 020000000 // Okay...
+
tilef_door   020000000 // Okay...
tilef_stairBack 040000000 // Don't we have stairs that go forward or left too? This could cover both...
+
tilef_stairBack   040000000 // Don't we have stairs that go forward or left too? This could cover both...
tilef_stairRight 080000000 // Well, whatever, you can climb them, so, hey... Good use for a  
+
tilef_stairRight 080000000 // Well, whatever, you can climb them, so, hey... Good use for a  
  
NOTE : EF flags change from version to version, so make SURE you're using only the EF
+
NOTE : EF flags change from version to version, so make SURE you're using only the EF
flags you want, if any.
+
  flags you want, if any.
  
 
SUMMARY of flags for Sphere.ini:
 
SUMMARY of flags for Sphere.ini:
OptionFlags= // Flags for options that affect server behaviour but not compatibility
+
OptionFlags= // Flags for options that affect server behaviour but not compatibility
0001 // OF_Magic_IgnoreAR
+
  0001   // OF_Magic_IgnoreAR
0002 // OF_Magic_CanHarmSelf
+
  0002   // OF_Magic_CanHarmSelf
0004 // OF_Magic_StackStats (Do NOT set this yet)
+
  0004   // OF_Magic_StackStats     (Do NOT set this yet)
0008 // OF_Skill_DiffFirst
+
  0008   // OF_Skill_DiffFirst
0010 // OF_Archery_CanMove
+
  0010   // OF_Archery_CanMove
0020 // OF_Magic_PreCast
+
  0020   // OF_Magic_PreCast
  
Experimental= // Flags for options that affect server behaviour and which might affect compatibility
+
Experimental= // Flags for options that affect server behaviour and which might affect compatibility
0001 // EF_XCMD_Spy
+
  0001   // EF_XCMD_Spy
0002 // EF_UNICODE
+
  0002   // EF_UNICODE
0004 // EF_CanSeeLOS
+
  0004   // EF_CanSeeLOS
0008 // EF_ReturnString
+
  0008   // EF_ReturnString
Suggested value: EXPERIMENTAL=01
+
  Suggested value: EXPERIMENTAL=01
  
01-12-2003, Kell
+
- It's Xmas! So I'm off to eat some turkey for the next 48 hours. :) Does this count as an entry in the
- Added @EquipTest and @ItemEquipTest (return 1 cancels equiping).
+
   changelog?
- Changed @SkillItemMake so that "return 1" only deletes the item if it's container hasn't
 
  been set.
 
- Fixed bug with skills apparently not finishing (also fixes cartography).
 
- Fixed summoning bug (Linux only). This has to do with doing propper memory initialization
 
  prior to using points.
 
- Removed all specific handling for SERV.xxx(y).zzz and made it generic. You can now use
 
   either syntax: SERV.xxx(y).zzz or SERV.xxx.y.zzz.
 
- Changed default release options for speed optimization.
 
  
02-12-2003, Kell
+
27-12-2003, Kell
- Fixed REAPAMOUNT / AMOUNT. It can now take multi-point values in a format similar to
+
- Added support for color & render mode in EFFECT. If no color or render effect are specified, old
   ADVANCE for skills.
+
  effect packet is still sent (which spares 8 bytes). Otherwise the new packet type is sent. Tested
- Added SPEECHSELF= to sphere.ini, to allow setting the name of the speech trigger that
+
   and works with clients from 2.0.3 (should work on all 2.0.* series).
   should be called to intercept player speech. Suggested: SPEECHSELF=spk_player
+
- Consolidated support for 3.0.* clients, they should work fine, up to LBR (they already worked, just
  "return 1" in said trigger stops the player from actually talking.
+
   spitted some error messages).
- Removed hard coded "home home home" - one can just use the default spk_player speech if
+
- Added modulus (%) operator in numerical expressions (eg: 12 % 3 == 0).
   that feature is desired (but mostly it's not)
+
- Added SENDPACKET command for clients. To make it easier to send WORD(2 bytes) and DWORD(4 bytes) values,
- Added SPEECHPET= to sphere.ini, to allow setting the name of the speech trigger that
+
   allowed for 'W' and 'D' prefix to values ('B' is also supported for byte but it's redundant). Here's an
   is called when a pet listens to its master. "return 1" in said trigger stops the pet
+
  example, of setting light level:
  from listenning.
+
    SRC.SENDPACKET  04e  D<SRC.UID>  20
 +
  Both 04e and 20 could use the prefix B, but notice how <SRC.UID> uses the prefix D to specify it takes
 +
  the space of a DWORD (4 bytes). So much for complex scripts to break multi-byte stuff in bytes :p
 +
  Notice also that each of the parameters is evaluated and truncated, and only then used. For instance,
 +
   if you put 0fffffffe (which obviously isn't a byte) in place of a BYTE, what you'll get is effectively
 +
  0fe. If you put (2+2) it'll be evaluated to "4" before being used.
  
09-12-2003
+
28-12-2003, Kell
- Added TAGs to CHARDEF/ITEMDEF sections. If a TAG does exists at an instance it overrides
+
- Added OSTR, ODEX, OINT.
  the def value.
+
- Added MODSTR, MODDEX, MODINT - spells affect these.
 
+
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=0 and
10-12-2003, Kell
+
   then do STR=60, you will get MODSTR=10 (and OSTR unchanged).  
- Added OptionFlags to sphere.ini, to set multiple options. These will be named OF_
+
  *** CHANGED *** read the entry for 19-01-2004
- Added OF_Magic_IgnoreAR = 0001, so that AR doesn't count to stop damage spells.
+
- Added MAXHITS/MAXMANA/MAXSTAM. If set to 0, it defaults to the base max stat (eg, MAXSTR defaults to STR).
- Added ACTDIFF to characters to obtain the current action difficulty.
+
  MAX always contains MOD for the appropriate stat. That is to say that if you have MAXHITS=100 and MODSTR=10
   Suggestion: One can use ACTDIFF to modify difficulty within skill Start triggers.
+
  then internally it'll be recorded as MAXHITS being 90, and if MODSTR changes, so does MAXHITS. This makes
- Added @Effect trigger to spells, triggered after @SpellEffect
+
  it coherent for stat spells, seeing as they not only change your stats but also max hits/stam/mana.
- <TAG0.xxx> can now be used to assume "0" as the default value for a tag.
+
   To make hits depend on STR again, use
- TAG0.xxx = yyy can now be used, if yyy is 0, then no tag will be recorded (same as setting
+
    MAXHITS =  // don't use a value
   to a zero length string)
+
- You can now write TAGs on accounts. Both TAG and TAG0 are available.
  Using TAG0, you can thus have tags that are only recorded if they are not 0. This is great
+
- LOCAL._WHILE fixed, within WHILE loops.
   for tags that are usually 0 and are often used (e.g. tags that must exist on all characters).
+
- Changed dialog BUTTON sections to allow
- Added VAR0 (same functionality as TAG0, but for VAR).
+
    ON = min max
 +
   to grab any button with buttonID between min and max (including). Also, argn1 is the buttonID that
 +
  actually got selected (even when specify just a buttonID and not a range, as usual). With the buttonID
 +
  in argn1 you can write more generic functions with little fuss.
  
11-12-2003, Kell
+
29-12-2003, Kell
- Added OF_Magic_CanHarmSelf = 0002, so that spells with SPELLFLAG_HARM will still affect the
+
- Fixed some skills not getting currectly terminated when another skill was used before they finished. An
   caster (useful for SPELLEFFECT in scripts)
+
  example of this is Spells not fizzling when a skill was used before spell ended.
- Changed rand(x) to allow a 2nd parameter rand(x,y) and return a random number between x and y,
+
- For skills, @Fail is now only triggered when failure occured due to normal circumstances (eg, failed
   if y is present.
+
  difficulty). @Abort is called when failure occurs due to a situation that aborts the skill, such as
 +
  using a new skill before finishing the previous one or an invalid circumstance.
 +
  If @Fail is triggered, it means that the character will still get a skillcheck for failure (skill raise
 +
   through failure), but if you do a "return 1" in there, it won't (check MANUAL.TXT).
 +
- Started implementing propper behaviour for EF_CanSeeLOS. At the moment, it'll check the height of static
 +
  items in the path to the target.
 +
- The use of "SECTOR" to access keywords related to sector is now mandatory. So, to access "light" or
 +
  "rainchance", SRC.RAINCHANCE used to work, you must do SRC.SECTOR.RAINCHANCE. This has several
 +
  advantages - people usually already use SECTOR anyway, so this makes for faster faster execution of
 +
   commands on characters, seeing as it has less things to try. It is also more coherent.
  
12-12-2003, Kell
+
30-12-2003, Kell
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:
+
- Fixed a small problem with KARMA/FAME that had the huge effect of blocking the client once it got different
      FONT_BOLD, // 0 - Bold Text = Large plain filled block letters.
+
  than 0.
      FONT_SHAD, // 1 - Text with shadow = small gray
+
- Added FEATURES= to sphere.ini, to define the features the server will enable on the clients upon connection:
      FONT_BOLD_SHAD, // 2 - Bold+Shadow = Large Gray block letters.
+
  0001 - (T2A) enables chatbutton
      FONT_NORMAL, // 3 - Normal (default) = Filled block letters.
+
  0002 - (LBR) enables LBR sound (plays MP3s instead of MIDI)
      FONT_GOTH, // 4 - Gothic = Very large blue letters.
+
  0004 - (T2A) enables T2A update
      FONT_ITAL, // 5 - Italic Script
+
  0008 - (LBR) enables LBR update (shows monsters)
      FONT_SM_DARK, // 6 - Small Dark Letters = small Blue
+
  Standard .55i automatically enabled 0001 - but you could disable it.
      FONT_COLOR, // 7 - Colorful Font (Buggy?) = small Gray (hazy)
+
- DIALOGCLOSE command. First argument is the dialog name, second argument is the button that should be
      FONT_RUNE, // 8 - Rune font (Only use capital letters with this!)
+
  triggered on the dialog - 0 if not specified. (eg: DIALOGCLOSE d_my_dialog).
      FONT_SM_LITE, // 9 - Small Light Letters = small roman gray font.
+
  You can put this as one of the first commands in a DIALOG section, to ensure there is only one dialog of
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,
+
   that type on the client.
   SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.
 
  
13-12-2003, Kell
+
02-01-2004, Kell
- Added "RELEASE" to character verbs, does the same as "release" when spoke to a pet.
+
- Added connection control keywords to sphere.ini - a value of 0 disables
- Added @NPCFollow trigger, called when an NPC is following someone.
+
  any of these settings. These settings are not dumb proof. Make sure you
 +
  know what you're doing if you set these:
 +
  * ConnectingMax=x, where x is the maximum number of clients that can coexist
 +
      in non-game state (http, login, etc). Older clients that are not ingame
 +
      get disconnected when new ones come in. Default: 24
 +
  * ConnectingMaxIP=x, as above, but per IP. Only a maximum of x simultaneous
 +
      "not in game" connections will be allowed per IP. Notice that HTTP
 +
      requests for instance, count as "not in game". Default: 8
 +
  * ClientMaxIP=x, maximum number of connections per IP. This is intended to
 +
      stop flooders, DO NOT SET THIS TOO LOW, or you risk looking stupid. There
 +
      are MANY situations where connections can appear as comming from the same
 +
      IP - a common one is people connecting from cybercaffes. Default: 0
 +
- Fixed a serious bug where login errors (Bad Login) could leave a lingering
 +
  socket. This happened because sockets were made invalid so that they'd get
 +
  closed on the next read cycle, therefore losing all information about the
 +
  socket. Clients are now flagged for disconnection, and socket handling is
 +
  done when clients are freed.
 +
  This means that there should always be a "disconnected" message to pair
 +
  with a "connected" message.
 +
- You will see two numbers after the IP in connected/disconnected messages.
 +
  The first is the number of connections from that IP which are not in-game,
 +
  whereas the second is the total number of connections from that IP.
 +
- In savefiles, OSTR and MODSTR are now saved instead of STR. If "STR" is found,
 +
  it'll be interpreted as OSTR. This works fine to convert old worldfiles, even
 +
if you have spells, because once they wear off they'll simply make your MODSTR
 +
  negative. This works for all stats obviously (simply using STR as an example).
 +
- Changed it so that the first time you set a stat on an NPC, if the Ostat is 0,
 +
  it'll update Ostat not MODstat. In other words, and as an example, if you do
 +
  STR=20 in @Create, you'll end up with OSTR=20 and MODSTR=0. If you then do
 +
  STR=30 on the same NPC, you'll end up with OSTR=20 and MODSTR=10.
 +
  **** changed **** see the entry for 19-01-2003
 +
- Fixed a small problem from R3.13 with stat affecting spells not setting MODstat
 +
  correctly.
  
14-12-2003, Kell
+
03-01-2004, Kell
- Changed ATTACK to accept as parameter the UID of the character to attack.
+
- Added unary operators "*=", "+=", "-=", "/=", "%=", "|=", "&=" and "!=". Internally,
- Changed TRY to make no plevel or touch/distance checks. Use TRYP if you want those checks
+
   what these actually do is change a line in the format:
  (TRYP 0 only checks for touch/distance, not plevel).
+
    XXX += YYY
- Added an useful keyword to scripts, that allows one to use "OBJ" as pointer to an item. It's
+
   to
   similar to ACT but it can be used anywhere.
+
    XXX = <eval (<XXX> + (YYY))>
   Example:
+
  So you can do stuff like
    OBJ = <UID>
+
    MANA  += 10/2    // same as MANA = <eval (<MANA> + (10/2))>
    SAY You are <OBJ.NAME>, with uid <OBJ.UID>.
+
    ATTR  &= ~attr_magic    // same as ATTR = <eval (<ATTR> & (~attr_magic))>
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific
+
- Added ".=" operator, to do string concatenation. Internally what it does is change a line
  UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.
+
  in the format
  Example:
+
    XXX .= YYY
    MEMORY <SRC.UID> 0200 // set memory
+
  to
    SAY Memory flag regarding <UID> is <MEMORY.<SRC.UID>>.
+
    XXX = <XXX>YYY
 
+
   This is intended to be used with things that can support strings (NAME, TITLE, VAR, LOCAL, etc)
15-12-2003, Kell
+
- First attempt to implement propper LOS check counting with z. To have LOS, you must be
- Changed @UserSkills so that <argn1> is the number of the skill being updated, or -1 for the skill
+
  able to walk in a straight line to the target (no news here) AND finish at a reasonable
   list. This allows one to stop sending of skill updates to the client.
+
   height, climbing your way to it. So, if you're on a slope you might have LOS, but if
- NPCs will not say "Yes Master" if SPEECHPET is set in sphere.ini (you can script it in the speech
+
  you're standing one floor below you won't. These extra texts have no measurable impact on
   triggers if you want them to). If SPEECHPET isn't set, they still won't say anything unless they
+
   performance Enable this behaviour with EF_CanSeeLos (04).
   can see their master (which is great for GMs). Players will no longer respond "Sorry".
+
- Diagonal walking (eg, NW) is allowed only if the character can move ortogonally in both
- Resource gathering was changed so that the SKILLMAKE of the resource item is checked. Resources
+
   directions (NW -> N and W). This takes care of a few clientside exploits, as well as NPCs
   which fail the canmake check are ignored and aren't part of the randomization process. If for some
+
   walking through corners. Enable this behaviour with EF_DiagonalWalkCheck (010)
   reason one wants to go back to the old style, just comment SKILLMAKE on the ore itemdefs.
+
- For the effect of stepping on them, all items were considered to have a height of 3. If you
- Added OF_Skill_DiffFirst = 0008. With this flag turned on, difficulty for a skill is calculated BEFORE
+
   are standing higher than 3 above an item, you wouldn't trigger a step on it. Changed it so that
  calling @Start/@SkillStart. This has the advantage of allowing the difficulty for a skill to be changed
+
   if the item's height is above 3, that value is used, and not the hardcoded "3". This allows
   via ACTDIFF within that trigger. Notice that for a skill to fail, ACTDIFF must be set above the current
+
   one to get @Step events on stuff like tables.
   (modified) skill. Setting ACTDIFF to a negative value means that the skill will abort, that is, @Fail
+
- If no SRC is defined at the time of a @SpellEffect trigger, then the character subject to the
  will not be called and no skill gain will be attempted. To always fail set ACTDIFF to a value above the
+
   spell will be considered the SRC. This fixes SPELLEFFECT under @Timer triggers.
   possible skill (say, 1001).
+
- Added @NPCLookAtChar and @NPCLookAtItem triggers (check the manual). Do not abuse of these
  This has the sideffect of calling @SpellCast before @Start/@SkillStart. On the other hand, it is the
+
  triggers, as they will affect the CPU usage.
  ultimate tool for implementing your own skill difficulties.
 
  Here's an example of making the difficulty for arms lore AT LEAST the same value as for making the item
 
   (using the primary skill). Characters with skill above ACTDIFF will always succeed.
 
  ON = @Start
 
  if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )
 
      SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>
 
  endif
 
  
16-12-2003, Kell
+
04-01-2004, Kell
- You can now use NEWITEM, NEWNPC and NEWDUPE in item scripts, the items will be created into "NEW". Using
+
- Added ISNEARTYPE, first argument is type, 2nd argument is max distance to search ( if not
  these commands on a character will create the items in both NEW and ACT. If you want to use these
+
  specified, 4 is the default ). Also added ISNEARTYPE.P, which returns "0" if false or the
  on a character without changing ACT, use SERV.NEWITEM, etc.
+
  point coordinates if true.
   Example:
+
- Changed DISTANCE to accept the UID of an object (item/char) to compare the distance, or a
    NEWITEM i_gold
+
   point. One can now write things like
    NEW.AMOUNT 100
+
    <DISTANCE <MOREP>>  <DISTANCE trinsic>  <DISTANCE <SRC.ACT.UID>>
    NEW.P = <TOPOBJ.P>
+
   If no argument is supplied, then SRC.UID is used (as default). If the point/UID is invalid
   You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).
+
  an error is printed to the console.
 
+
- Made TIMERD readable (its precision is 10x that of TIMER, same scale of SERV.TIME).
17-12-2003, Kell
+
- Made USEITEM not check for visibility. The whole purpose of this keyword is to allow
- Functions can now receive "args" when being evaluated, as in <SRC.myfunction Say hello>
+
  activating an item via scripts w/o testing for touch, so it doesn't make sense to test
- Added RANGE=min,max or RANGE=max (min defaults to 0) for ITEMDEF and CHARDEF. Default weapon range
+
  if the item can be seen. DCLICK performs the usual tests though. The "USE" keyword already
   is 1. Default character range is 1. Range is calculated as (character + weapon -1).
+
  allowed one to do "USE 0" not to test for touch, but it also tested for visibility, and it
   Example: Assuming all characters are RANGE=1 (which they are), putting RANGE=2 in an halberd
+
  won't anymore if used like "USE 0".
  means characters equipping it can hit 1 square further.
+
- Spawns gems now instantly update the display as soon as you set MORE1.
 +
- Double clicking an already negated (more2=0) character spawn sets its timer to 1 so it
 +
  respawns next turn.
 +
- Added MOVENEAR keyword for objects(items/chars). 1st argument is the UID of item to move
 +
   near to, 2nd argument is the distance to the item. If 3rd argument is present and "0",
 +
   then the item will not send an Update. Example:
 +
    ON = @DClick
 +
        MOVENEAR <SRC.UID> 5  // move to 5 steps away from SRC
 +
  Notice that this movement respects walls & such (which is why it is useful).
 +
- Set ARGN1=1 in @Login not to show MOTD scroll.
  
18-12-2003, Kell
+
05-01-2004, Kell
- The main section for DIALOGs is now fully interpreted like other scripts, allowing you to add logic
+
- Fixed possible exploit with \n and textentry and inpdlg.
   to your dialog, use IFs, etc. The only limitation at the moment is that gump commands are only
+
- AREA and ROOM sections in the following format
   allowed right in the DIALOG section, and not within FUNCTIONs, but hei... it's better. :)
+
    [AREA name here]
- Dialogs will no longer conflict with each other, this allows for permanent on-screen dialogs. INPDLG
+
  Should now be written as
   works too, seeing as there can be only one INPDLG window onscreen at all times.
+
    [AREADEF a_some_def] // ROOMDEF for rooms
- Added RESOURCES.n, RESOURCES.n.KEY and RESOURCES.n.VAL to items/characters.
+
    NAME=name here
 
+
  The advantage of this format is that you can resync it w/o having conflicting regions.
19-12-2003, Kell
+
  Suggestions:  Keep your areas in different formats in seperate files. Either find a script
- To make writing dialogs easier, added a cursor and relative coordinates:
+
    to convert your old format to the new one or slowly convert by hand.
     dorigin 50 50 // sets the origin to x=50, y=50
+
    Move [Teleporters] and [Moongates] to their own files (these can't be resynced).
  Using "*" near a coordinate makes it relative to the origin, and displaces the origin by some amount:
+
   Note:  You do NOT have to use the new format. It is, however, strongly suggested, as
     dtext    *0    *10    0    the origin is now x=50 y=60, so is the last location
+
    it allows you to change an area without rebooting.
   Using "+" near a coordinate makes it relative to the last location w/o changing the origin.
+
    Any future ability to save things on regions will only be available for regions
    dtext    +10    -    0    adds 10 to X (y=150, o.y=100)
+
    in the new format (or regions that have a DEFNAME).
   As an example, imagine writing a list of text with 3 columns, each seperated via 200 x and 20 space
+
- Added CALL instruction to invoke a function, but sharing the LOCAL variables with the called
   between each row:
+
  function. Quite useful when you want to break a function in small pieces that are logically
   dorigin 10 10
+
   yet not functionally seperate. In other words, if you invoke a function with CALL, all your
   // first row
+
  LOCAL will be available to the underlying function. Example
   dtext    *0  -    5   1:
+
    [FUNCTION myfunction1]
    dtext  +10  -    0  the text for row1, col1
+
      LOCAL.VAL1 = 12
  dtext  *200  -    5  2: // x orig = 200
+
      CALL myfunction2 1, 2    // LOCAL.VAL1 will be available to myfunction2
    dtext  +10  -    0   the text for row1, col2
+
      // if myfunction2 changes LOCAL.VAL1 it will change here aswell.
   dtext  *200  -   5   3: // x orig = 400
+
  If you do not pass arguments to the called function, then args/argn/argv are also shared,
    dtext  +10  -   0   the text for row1, col2
+
  and the process is faster than invoking the function w/o CALL. If you pass arguments to the
 +
   function, then only LOCAL is shared, and the process is an infinitesimal amount slower. Not
 +
  noticeable, no real impact, but conceptually slower.  
 +
  This can also be used as <CALL Function ...>, faster without arguments, slower with.
 +
- Recently realized that ALL DEFNAMEs are put into VAR. That means that all itemdefs, chardefs,
 +
  etc have an entry in VAR (try <VAR.i_dagger> ). Now, this is potentially confusing and source
 +
  for many problems:
 +
     1) Whenever you're trying to access a VAR, you go through ALL the existing defnames.
 +
     2) You can accidentally create a var that is also a defname... and oooooops!
 +
   So to cope with this, changed it so that VAR/VAR0 only contains global variables that can be
 +
  modified, whereas DEF/DEF0 contains item defnames and can only be read. The difference in speed
 +
   is visible! EVERY time you were accessing a VAR you'd be searching through an array with a few
 +
   thousand elements. Now each lookup searches only through the variables your scritps have created
 +
   (which even on an extremely scripted shard shouldn't reach a hundred).
 +
   This also makes it possible to identify WHICH variables are supposed to be saved.
 +
   Although this is a huge change internally, it won't affect scripts except in the following
 +
   situation:
 +
    1) You defined a DEFNAME flag in scripts that you then changed during execution. This is
 +
        highly uncommon, but if you decide you need this sort of behaviour just create the create
 +
        the VAR once via scripts, it will be saved to spherevars.scp.
 +
    2) You were accessing DEFNAMEs via VAR. No real reason to do it, seeing as DEFs / VARs can
 +
        be accessed w/o the VAR. prefix.
 +
   If not using DEF or VAR to access a variable, you'll get first the VAR if exists, and then the
 +
   DEF. That means that old behaviour is kept.
 +
- VARs are now saved to spheredata.scp. If that file isn't present at boottime the shard will print
 +
   a warning, but it will continue, and it'll be created on the next save.
 +
- GMPages will now be saved to spheredata.scp. Too many people are interested in parsing these to
 +
   make special stuff (eg webpage interfaces or mirc scripts), so now they won't have to parse the
 +
  whole world to read in this stuff.
  
  And now one only has to go down one row. and the text is quite similar. This isn't too easy to explain, it's
+
06-01-2004, Kell
   there for whomever might find it useful. If you can't think of a use for it, just ignore it. ;)
+
- Added "S" flag to SENDPACKET, allows one to send strings of characters directly. String is not
- Fixed the bug with FORCHARS/ITEMS/OBJS and keywords starting with "FOR" (like FORensics).
+
  within quotes it stops at the first space. Example
- Changed textadd and gumptext to collapse equal strings of text to the same index. So if you use
+
    SENDPACKET 00 S"This is the string to send" 0
    gumptext 10 20  This is an example.
+
    SENDPACKET 00 SUpToTheSpace 0
    gumptext 10 40  This is an example.
+
   If the string must be null terminated, simply put a 0 in there, as above. Otherwise, you'll probably
    gumptext 10 60  This is an example.
+
  need to specify length (strlen function) - depends on packet
   It will only generate ONE text id. This does away with the need to have a seperate TEXT section. Granted,
+
- Added new walk limiting code, wildly based on the bit-bucket algorithm used in IP QoS DiffServ
   such a section is still useful for keeping strings all in one place (in this case it'd be useful), but it
+
  routers: there is a maximum speed at which you can walk (it's fixed, different walking or foot). If
   is no longer mandatory, it becomes simply a matter of style/choice.
+
  you walk faster than that speed, every tenth of second you walk faster than expected is a point you
 
+
  loose. Every 10th of second you take above the time expected is a point you win. The number of points
20-12-2003, Kell
+
   you start with and the maximum is WALKBUFFER in sphere.ini, and I've tested it with values
- Equal PLEVEL should be able to see each other, so they are now.
+
  around 40 for good connections and 70 for laggy connections.
- You can now open a dialog in a specific page, with DIALOG d_dialog_name  pagenumber. This isn't actually
+
   If a player speedwalks, he'll soon drop below 0, and stop moving, then have to compensate with equally
  possible with the UO client - what it does is recalculate the dialog page/button numbers so that the selected
+
   slow walking periods, like it happens when there's a burst of lag.
  page is first. It's completly invisible though, and works perfectly.
+
  WALKREGEN is the speed at which you regen walk points, in percentage.
- Added a new command - DTEXT - to gumps, which does the handling of text ids for you (d stands for dynamic):
+
  Default values: WALKBUFFER=50  WALKREGEN=25
    dtext x y color  Actual text comes here.
+
  Hints:
   Text added with gumptext is actually added to the [DIALOG ... TEXT] section. If you're only using a given
+
  WALKBUFFER lower for more strict control. However, setting it lower also increases the
  text string once, then it's actually faster using this than using "text" and adding it to the TEXT section
+
        chance of limiting someone which is just experiencing lag. Raise this value
   of the dialog. Simmilar commands, DCROPPEDTEXT and DTEXTENTRY are also in, also taking text instead of an
+
      if you lower WALKREGEN.
   index. DHTMLGUMP is also in, but notice that the syntax is like HTMLGUMP, except that you ommit the ID and add
+
  WALKREGEN set lower for longer-lasting punishments. It makes sense to lower this value
   the text in the end.
+
      if you raise WALKBUFFER.
  With these changes, you can completly ommit the [DIALOG ... TEXT] section of dialogs. Only those strings
+
- Removed some EF_ flags that are no longer necessary seeing as they proved to be harmless. Make sure
  that are commonly used throughout the dialog should you put in the [DIALOG ... TEXT] section.
+
   you consult MANUAL.TXT.
  Internally, both gumptext and textadd simply add stuff to the dialog as needed, and send normal "text"
+
- Changed trigger @DropOn_Item and @ItemDropOn_Item to be activated for container items too.
  commands to the client, so they're safe to use. But they free you from having to keep track of a LONG
+
   Activated when item with the trigger is dropped on another item (dropped on something else).
  list of numbers, and allow you to shape and modify your dialog w/o bothering with text ids.
+
- Added @DropOn_Self and @ItemDropOn_Self, activated when an item is dropped on the item with the
- You can now use FUNCTIONs that issue gump commands. So you actually make your own gump commands!!! Death to
+
   trigger (something was dropped on self).
  copy & paste dialogs!
+
- Implemented trigger @DropOn_Char and @ItemDropOn_Char.
 +
- If these triggers fail, will only bounce the item if it's still being dragged. That allows the
 +
   scripts in the triggers to define a new place for item.
 +
- Made sure clients can only drop stuff into the bankbox if they are standing in the place where it
 +
  was opened. This could now be checked within scripts aswell.
 +
- Fixed an Injection exploit regarding accessing the bank away from the place it was opened in.
 +
- Added @SkillGain and @Gain triggers. Check MANUAL.TXT for more info.
  
21-12-2003, Kell
+
07-01-2004, Kell
- Fixed a bug in that setting stats & skills via scripts wouldn't correctly parse things. For instance, numerical
+
- Automatically assign a DEFNAME to areas and rooms defined in the old format (AREA / ROOM). This
   expressions.
+
   defname is built upon the NAME, and is made unique by adding a number to it.
- Started work on MANUAL.TXT, to detail the current state of things like triggers and their arguments, seeing as
+
- In the console, you can type "d a" to output all the areas and rooms to a file "map_all.scp". I
  reading this changelog is probably a difficult task for a lot of people.
+
  strongly suggest you replace your map with this file, as it'll allow you to finally get rid of the
- Changed args in functions to be writeable. This is useful in scripts, but for triggers, the server will read
+
  old format.
  back the values and use the new ones wherever it makes sense. For the time being, these triggers were
+
   NOTE: Teleporters and Moongates aren't saved in this file, so you should split those to a different
  changed:
+
   file, to allow areas to be resynced.
    @GetHit, ARGN1 is the damage being apllied, ARGN2 the damage type (as usual, but now writeable).
+
- It is strongly suggested that you do the above, and get rid of the old format areas/rooms. Doing it
    @Hit, ARGN1 is now the raw damage being applied, prior to armour (writeable). ARGO is the weapon (if any).
+
  has the following advantages:
    @PersonalSpace, ARGN1 is the stamina required to move (writeable). "return 1" stops the movement, "return 0"
+
   * Loading will be faster, because the server won't have to try and find a good defname for areas.
    allows the movement but shows none of the hard-coded messages. Plain "return" or no return, works as standard.
+
  * You can edit areas, and resync (even change their name) with no conflicts.
   @Hit, @HitTry and @HitMiss were also changed so that ARGO is the weapon being used (handy so you don't have to
+
   * TAGs on areas are only saved for areas that have a valid DEFNAME, so if you do this, TAGs will be
   be looking at layers n stuff).
+
    saved on all your areas.
  I should add that ACTDIFF is also available, and it can be used to change the difficulty of a skill, even make
+
- Added @Targon_Cancel for items.
   a skill succedd that would otherwise fail (by setting it to 0). It can also be used in @HitTry now, and if
 
  set to any non-negative value, a missing hit will instead succeed.
 
- Added StrEat function, which removes a word up to the space, from a string (<streat("hello there friend")>
 
   or <streat hello there friend> return "there friend")
 
- Added <SERV.LOOKUPSKILL skill name> which returns the skill number for some text or -1 if not found.
 
- After some beta-testing, a few fixes to dialogs.
 
- LOCAL.xxx within functions for LOCAL . They're a bit more efficient on servers with lots of global
 
  vars due to faster lookups ). LOCAL variables always come up initially as "0".
 
- ARGN1, ARGN2 and ARGN3 are set for functions with numeric arguments. So whenever possible, use these instead
 
  of argv. Example: "myfunction  123 50 89" - these 3 values will be parsed into argn1, argn2 and argn3
 
  
22-12-2003, Kell
+
---- 0.55 R3 rc2 --------------------------------------------------------------
- Functions can now return strings using "return". Notice that this behaves like TAGs, in that if you do
+
---- 25/01/2004
    return 2+2
 
  then "2+2" is returned, and not "4". You'll have to explicitly call "eval" on what you want
 
  to return:
 
    return <eval (2+2)>
 
  Returning strings causes no extra lag, seeing as the old method of returning a value relied on the same
 
  string which is returned (EVALed). So it is actually faster (although hardly noticeable).
 
  This might pose a problem problem if you have "return rand" or similar, instead of "return <eval rand..."
 
  seeing as multiple uses of the return value re-evaluate it, generating a new random number - again,
 
  similar to TAGs.
 
  MAKE SURE YOU HAVE "EVAL" on your "return" lines, wherever you want the result of a calculation to be
 
  returned. The next version will probably not have an EF_ReturnString flag.
 
  
- Modified the profiling function to keep track of average consumption over time. The average time is
+
08-01-2004, Kell
  calculated each second as 90% of the previous average time plus 10% the current time. This poses some
+
- Fixed VERBOSE=1 causing a catrazillion errors at boot.
  resistence to spikes.  
+
- .CAST and .TELE won't show "bad command" sysmessage when they fail.
- Added a new keyword to @Create / @NPCRestock and template scripts: FULLINTERP. Set FULLINTERP=1 to allow the
+
- If TRY/TRPY are called with an invalid command, they will send the error to the console and not to
  use of functions, ifs, etc. Example:
+
   the player. This is coherent with how scripts should behave.
  ON = @NPCRestock
+
- Fixed NPCs not starting with max stats when MAXxxx is used.
    ITEM=i_cape
+
- Fixed .admin showing only your own IP.
    FULLINTERP
 
        ITEM=i_robe
 
        MY_FUNCTION_CALL
 
  You can use FULLINTERP 0 to disable the feature, after you've enabled it, but it's usually pointless, seeing as
 
   this FULLINTERP affects only the remainder of the current script. Bear in mind that the usual restrictions apply,
 
  seeing as the created NPC is not ingame yet.
 
  
23-12-2003, Kell
+
09-01-2004, Kell
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:
+
- .serv.account unused xxx  delete
    TERRAIN The terrain ID
+
- .serv.account add test // missing password will no longer crash
    ISDIRT Checks the terrain ID to see if it's dirt.
+
- killing characters with positive karma (actually, it's about commiting a crime, not karma)
    ISGRASS guess
+
- .info not returning to dialog after changing a value (actually, INPDLG wasn't returning to dialog)
    ISROCK dunno
+
- flags on UIDs preserved (040000000 for items, 0d2000000 for skills, etc). GLOBALS renamed to WORLDVARS
    ISWATER guess again
+
   due to this (won't go into details here).
    STATICS Number of statics in the position
+
- SERV.LOG fixed.
    STATICS(n) ID of static Nth static ( eg: <SERV.MAP(200,300).STATICS(0)>. Shows no error in the console
+
- Fixed plevel 1 players seeing other plevel 1 hidden players
if static isn't present, returning 0 - useful to test for a static w/o counting or looping.
+
- Added USEHTTP=0/1 in sphere.ini, to disable/enable the built-in HTTP server.
    STATICS.n   same
+
- Added USEGODPORT=0/1 in sphere.ini, to disable the port opened at +1000. As far as I can tell, there is
    STATICS(n).key Get a key from the appropriate ITEMDEF. eg: <SERV.MAP(200,300).STATICS(0).NAME>
+
  really no purpose for that port except taking in connections, much like the standard port you set. So it
 
+
  ships disabled by default.
- Added basic iterator construct, WHILE, with the following syntax:
 
    WHILE ( condition )
 
// do stuff, current iteration number in <LOCAL._WHILE>
 
    END // or ENDWHILE
 
  
   also added FOR, terminated with either END or ENDFOR, with the following syntax:
+
10-01-2004, Kell
 +
- Fixed a bug where redefining a base type (one in the TYPEDEFS list in spheretables.scp) could lead
 +
  to a crash.
 +
- Added a way to assign a TYPEDEF to a terrain type. This means you can define what terrain types are
 +
  water, for instance. Example:
 +
    [TYPEDEF t_water]
 +
    TERRAIN = 00a8  00ab
 +
    TERRAIN = 0136  0137
 +
  This information is then used by ISNEARTYPE (and it has effect on all the hardcoded behaviour)
 +
  when trying to assert if there's t_water around.
 +
  Notice that ISWATER checks wether a terrain type is t_water, whereas <ISNEARTYPE t_water> would check
 +
  for terrain, statics and dynamic items.
 +
- Changed TYPE when called on an SERV.ITEMDEF.xxx.TYPE to return the typename, and not just a value. So
 +
   when called on an water item it should return t_water, and not "30". This also has affect when using
 +
  STATICS.x.TYPE.
 +
- Fixed not being able to access properties of TARGP, as in <SRC.TARGP.X> or <SRC.TARGP.TERRAIN>.
 +
- Added "TYPE" to the keywords available on a point. It uses the information above to return what item
 +
  type is the terrain at that point. So you can do TARGP.TERRAIN.
 +
 
 +
11-01-2004, Kell
 +
- Changed .info command to show the type associated with the terrain (t_normal if none).
 +
- Wrote sphere_types.scp - it is a REQUIRED script, as it associates terrain IDs to item types. This
 +
  replaces the old hard-coded behaviour (which by the way, was slower). By replacing it, I see no
 +
  need to keep the old code, seeing as all you need is to have this script, which will be distributed
 +
  from now on.
 +
  Add sphere_types.scp in spheretables.scp right after sphere_defs.scp.
 +
- Removed ISWATER, ISGRASS, ISROCK and ISDIRT commands from points (they were introduced in R3). Please
 +
  use TYPE instead. For instance, use (<P.TYPE> == t_water) wherever you'd use <P.ISWATER>. Some might
 +
  have grown attached to these commands, but unified and coherent scripts are certainly better than
 +
  different methods for doing the same. Besides, this offers a lot more control (e.g.: <P.TYPE> == t_lava)
 +
- Added ISNEARTYPE to the keywords accepted by points. So you can do <SRC.TARGP.ISNEARTYPE t_water> and
 +
  that will effectively test terrain type, statics, and dynamic items. This is probably what most people
 +
  will want to use, seeing as P.TYPE only test for terrain (and not statics or dynamic items).
 +
- Added EF_New_Triggers (010). If set, allows the use of @NPCActFight, @NPCActFollow, @NPCLookAtChar
 +
  and @NPCLookAtItem. This flag was added because even having these triggers *might* have some impact
 +
  upon performance in very busy shards.
 +
- Removed a "Weird layer" message from whenever you equipped an item to layer_hidden. This is quite an
 +
  useful layer for people wanting to expand their shards, so there's really no reason for this error.
  
    FOR 5 // loops from 0 to 5, current iteration number in LOCAL._FOR
+
12-01-2004, Kell
  or FOR 3 5 // loops from 3 to 5, current iteration number in LOCAL._FOR
+
- Fixed "b" in console not working.
  or FOR K 5 // loops from 0 to 5, current iteration number in LOCAL.K
+
- Added DISTANCEYELL, DISTANCETALK, DISTANCEWHISPER to sphere.ini - a value of -1 turns it into a
   or FOR K 3 5 // loops from 3 to 5, current iteration number in LOCAL.K
+
   broadcast.
// do stuff
 
    END  // or ENDFOR
 
  
  Changing these LOCAL variables has no effect on the loop.
+
13-01-2004, Kell
- Wrote a small assembly function to access the high resolution timer. Works for both windows and Linux,
+
- The @Create trigger for items works as any other item trigger - it can be fully scripted.
   now being used in profiling. Profiling works on Linux now. It also looks a lot better in the console
+
  After a LOT of work, you can now also check for SRC under item's @Create. There are situations where
   thanks to the monospaced font.
+
  an item can be created without an SRC, but in most cases, there will be one. Eg:
- Changed the console font under Windows to Courier, which is monospaced, so things come out aligned in
+
   ON = @Create
   the console. Under Linux, the console is naturally monospaced.
+
    if ( <SRC.UID> )
- You can now add new SKILL sections, up to 70. SERV.MAXSKILL tells you how many skills are loaded. Notice
+
        SRC.SYSMESSAGE You have created an item!
   that they won't be sent to the client though, the client doesn't support them (hint: @UserSkills). There
+
    endif
   is also a FLAGS key for SKILL section, with the following values:
+
  Bear in mind that @Create is created before the item by the server, so it can still suffer transformations
    [DEFNAME skill_defs]
+
   after it's been created. Particulary, you won't be able to REMOVE an item under a @Create trigger - it
    SKF_SCRIPTED 01 // no hardcoded behaviour, only triggers are called.
+
  will have no effect.
    // feel free to add new tags you find useful, but only above 01000 please, to make room for future
+
- Added ISEMPTY and ISNUM. Eg: <ISEMPTY <VAR.TMP>> or <ISNUM <VAR.TMP>>.  
    expansion
+
- Added STATICS.FINDID.xxx - it will take you to the ITEMDEF of the static item with the supplied ID
   This is heavily experimental, mess with it at your own risk.
+
- Added @ResourceTest to REGIONRESOURCE sections, called once for each resource in the region that the
- SKILLSELECT skill - force a button select event on the skill list
+
   character is able to find.
 +
- Added @ResourceFound, triggered after a resource has been selected (@ResourceTest has been called for
 +
  all resources available). ARGO is the resource bit to be placed at the location. "return 1" keeps the
 +
   resource bit, but sets it to be empty.
 +
- Added DEFMESSAGE section for scripts, allows setting of strings to be used by the server. More will be
 +
   added - work in progress. You now REQUIRE a script with these strings.
 +
- Fixed RESOURCES.xxx.val and .key.
 +
 
 +
19-01-2004, Kell
 +
- Fixed a bug with getting stuck on stuff.
 +
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=10 and
 +
   then do STR=70, you will get OSTR=60 and MODSTR unchanged.
  
24-12-2003, Kell
+
21-01-2004, Kell
- Fixed TYPEDEFS section in spherefs.scp loosing values when resynced.
+
- Changed max height difference on CanSeeLOS from PLAYER_HEIGHT/2 to PLAYER_HEIGHT, so that you can access
- Added <CANMOVE dir>, takes a direction as argument (like WALK), returns the area ID we're moving to,
+
   chests on top of a table.
   or 0 if no move is possible.
+
- Removed the password being shown on console when a password error occurs.
- Added <MOVE dir>, takes a direction as argument (like WALK), returns the TILE flags for that position.
+
- Made .x* and .set* commands respect PLEVEL. You also need plevel to use the "SET" command to use .x and .set
  Notice that flag 04 is walkable. Here's a list of flags, you can copy&paste it into spheredefs.scp. This
+
   commands.
   keyword might change in the future.
+
- Slightly smarter NPCs against field spells - they will avoid them more often depending on INT.
- It's Xmas! So I'm off to eat some turkey for the next 48 hours. :) Does this count as an entry in the
+
- Fixed another spot where SRC was undefined in @Create (there might still be more of these).
  changelog?
 
  
27-12-2003, Kell
+
23-01-2004, Kell
- Added support for color & render mode in EFFECT. If no color or render effect are specified, old
+
- Fixed buying multiple pets from animal trainers.
  effect packet is still sent (which spares 8 bytes). Otherwise the new packet type is sent. Tested
+
- Fixed a bug in FOR where counting down wouldn't work (eg: FOR 10 1 works now)
  and works with clients from 2.0.3 (should work on all 2.0.* series).
+
 
- Consolidated support for 3.0.* clients, they should work fine, up to LBR (they already worked, just
+
24-01-2004, Kell
  spitted some error messages).
+
- Fixed bug with NPCs going stale (their timer going -1) - particulary pets.
- Added modulus (%) operator in numerical expressions (eg: 12 % 3 == 0).
+
- Fixed @Effect in SPELL sections to work and have same arguments as @SpellEffect.
- Added SENDPACKET command for clients. To make it easier to send WORD(2 bytes) and DWORD(4 bytes) values,  
+
- Added SPELLFLAG_SCRIPTED (010000) so that one can more easily override the default behaviour of
  allowed for 'W' and 'D' prefix to values ('B' is also supported for byte but it's redundant). Here's an
+
   spells.
  example, of setting light level:
 
    SRC.SENDPACKET  04e  D<SRC.UID>  20
 
  Both 04e and 20 could use the prefix B, but notice how <SRC.UID> uses the prefix D to specify it takes
 
  the space of a DWORD (4 bytes). So much for complex scripts to break multi-byte stuff in bytes :p
 
  Notice also that each of the parameters is evaluated and truncated, and only then used. For instance,
 
  if you put 0fffffffe (which obviously isn't a byte) in place of a BYTE, what you'll get is effectively
 
   0fe. If you put (2+2) it'll be evaluated to "4" before being used.
 
  
28-12-2003, Kell
+
25-01-2004, Kell
- Added OSTR, ODEX, OINT.
+
- Fixed yet another exploit, with sending a hacked Author in books (tks Balkon)
- Added MODSTR, MODDEX, MODINT - spells affect these.
+
- Added PROMPT_MSG to SPELL sections and disabled the hard-coded messages. You'll have to fill in the
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=0 and
+
   prompt messages for the spells.
  then do STR=60, you will get MODSTR=10 (and OSTR unchanged).
 
  *** CHANGED *** read the entry for 19-01-2004
 
- Added MAXHITS/MAXMANA/MAXSTAM. If set to 0, it defaults to the base max stat (eg, MAXSTR defaults to STR).
 
   MAX always contains MOD for the appropriate stat. That is to say that if you have MAXHITS=100 and MODSTR=10
 
  then internally it'll be recorded as MAXHITS being 90, and if MODSTR changes, so does MAXHITS. This makes
 
  it coherent for stat spells, seeing as they not only change your stats but also max hits/stam/mana.
 
  To make hits depend on STR again, use
 
    MAXHITS = // don't use a value
 
- You can now write TAGs on accounts. Both TAG and TAG0 are available.
 
- LOCAL._WHILE fixed, within WHILE loops.
 
- Changed dialog BUTTON sections to allow
 
    ON = min max
 
  to grab any button with buttonID between min and max (including). Also, argn1 is the buttonID that
 
  actually got selected (even when specify just a buttonID and not a range, as usual). With the buttonID
 
  in argn1 you can write more generic functions with little fuss.
 
  
29-12-2003, Kell
+
---- 0.55 R3 rc3 --------------------------------------------------------------
- Fixed some skills not getting currectly terminated when another skill was used before they finished. An
+
---- 06/02/2004
  example of this is Spells not fizzling when a skill was used before spell ended.
 
- For skills, @Fail is now only triggered when failure occured due to normal circumstances (eg, failed
 
  difficulty). @Abort is called when failure occurs due to a situation that aborts the skill, such as
 
  using a new skill before finishing the previous one or an invalid circumstance.
 
  If @Fail is triggered, it means that the character will still get a skillcheck for failure (skill raise
 
  through failure), but if you do a "return 1" in there, it won't (check MANUAL.TXT).
 
- Started implementing propper behaviour for EF_CanSeeLOS. At the moment, it'll check the height of static
 
  items in the path to the target.
 
- The use of "SECTOR" to access keywords related to sector is now mandatory. So, to access "light" or
 
  "rainchance", SRC.RAINCHANCE used to work, you must do SRC.SECTOR.RAINCHANCE. This has several
 
  advantages - people usually already use SECTOR anyway, so this makes for faster faster execution of
 
  commands on characters, seeing as it has less things to try. It is also more coherent.
 
  
30-12-2003, Kell
+
25-01-2004, Kell
- Fixed a small problem with KARMA/FAME that had the huge effect of blocking the client once it got different
+
- Fixed a bug with @Gain trigger, that regardless of it even existing would reset the skill to the skill
   than 0.
+
   being tested. This turned out in Parrying skill interrupting combat, and other buggy skill behaviour.
- Added FEATURES= to sphere.ini, to define the features the server will enable on the clients upon connection:
+
- Added EF_Scripts_Parse_Verbs (040). If enabled, verbs (the 1st command in a script line) are parsed
  0001 - (T2A) enables chatbutton
+
  before execution, thus making "TRY" obsolete for that purpose. Example:
  0002 - (LBR) enables LBR sound (plays MP3s instead of MIDI)
+
    LOCAL.MYSTAT = MODSTR
  0004 - (T2A) enables T2A update
+
    // the following line is parsed to become: str = <<local.mystat>> + 5
  0008 - (LBR) enables LBR update (shows monsters)
+
    <LOCAL.MYSTAT> = <<LOCAL.MYSTAT>> + 5
   Standard .55i automatically enabled 0001 - but you could disable it.
+
    SYSMESSAGE Stat '<LOCAL.MYSTAT>' increased to <<LOCAL.MYSTAT>>.
- DIALOGCLOSE command. First argument is the dialog name, second argument is the button that should be
+
 
   triggered on the dialog - 0 if not specified. (eg: DIALOGCLOSE d_my_dialog).
+
26-01-2004, Kell
  You can put this as one of the first commands in a DIALOG section, to ensure there is only one dialog of
+
- Renamed SPELLFLAG_TARG_OBJ to SPELLFLAG_TARG_ITEM. This is really an internal change, but you should
   that type on the client.
+
  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.
  
02-01-2004, Kell
+
27-01-2004, Kell
- Added connection control keywords to sphere.ini - a value of 0 disables
+
- Added EF_New_Maps (020), which enables the mapchange packet (0bf, subcmd 08). If enabled, moving to
  any of these settings. These settings are not dumb proof. Make sure you
+
   mapplane 1 or 2 will send a packet for the client to see the appropriate map, and moving to other
  know what you're doing if you set these:
+
   mapplanes will send the packet changing back to basic map. This allows one to see the new maps.
  * ConnectingMax=x, where x is the maximum number of clients that can coexist
+
   However, there is NO support on the server for new maps. That means that you're walking on the new
      in non-game state (http, login, etc). Older clients that are not ingame
+
   map only on the clientside, while on the server you're walking on the standard map.
      get disconnected when new ones come in. Default: 24
+
- Server now recognizes bogus extended message 15 - won't send error message to client.
   * ConnectingMaxIP=x, as above, but per IP. Only a maximum of x simultaneous
+
- Added recognition for clients up to 4.0.0c - will not endure AOS features though. Useful for people
      "not in game" connections will be allowed per IP. Notice that HTTP
+
  with plain AOS installation that wish to play on the server.
      requests for instance, count as "not in game". Default: 8
+
- Mind you that this isn't AOS support, it's merely supporting the client.
   * ClientMaxIP=x, maximum number of connections per IP. This is intended to
 
      stop flooders, DO NOT SET THIS TOO LOW, or you risk looking stupid. There
 
      are MANY situations where connections can appear as comming from the same
 
      IP - a common one is people connecting from cybercaffes. Default: 0
 
- Fixed a serious bug where login errors (Bad Login) could leave a lingering
 
   socket. This happened because sockets were made invalid so that they'd get
 
  closed on the next read cycle, therefore losing all information about the
 
  socket. Clients are now flagged for disconnection, and socket handling is
 
  done when clients are freed.
 
  This means that there should always be a "disconnected" message to pair
 
  with a "connected" message.
 
- You will see two numbers after the IP in connected/disconnected messages.
 
   The first is the number of connections from that IP which are not in-game,
 
  whereas the second is the total number of connections from that IP.
 
- In savefiles, OSTR and MODSTR are now saved instead of STR. If "STR" is found,
 
  it'll be interpreted as OSTR. This works fine to convert old worldfiles, even
 
if you have spells, because once they wear off they'll simply make your MODSTR
 
  negative. This works for all stats obviously (simply using STR as an example).
 
- Changed it so that the first time you set a stat on an NPC, if the Ostat is 0,
 
  it'll update Ostat not MODstat. In other words, and as an example, if you do
 
  STR=20 in @Create, you'll end up with OSTR=20 and MODSTR=0. If you then do
 
  STR=30 on the same NPC, you'll end up with OSTR=20 and MODSTR=10.
 
  **** changed **** see the entry for 19-01-2003
 
- Fixed a small problem from R3.13 with stat affecting spells not setting MODstat
 
  correctly.
 
  
03-01-2004, Kell
+
28-01-2004, Kell
- Added unary operators "*=", "+=", "-=", "/=", "%=", "|=", "&=" and "!=". Internally,
+
- Fixed TARGP not being set when using a spell.
  what these actually do is change a line in the format:
+
- Added SPELLFLAG_TARG_NOSELF (0800), which stops spells from being cast on the player itself.
    XXX += YYY
+
- Fixed accessing LOCAL variables straight within DIALOG sections (also fixes FOR loops).
  to
+
- "return 1" within a DIALOG section stops the dialog from actually being sent.
    XXX = <eval (<XXX> + (YYY))>
 
  So you can do stuff like
 
    MANA += 10/2 // same as MANA = <eval (<MANA> + (10/2))>
 
    ATTR &= ~attr_magic // same as ATTR = <eval (<ATTR> & (~attr_magic))>
 
- Added ".=" operator, to do string concatenation. Internally what it does is change a line
 
  in the format
 
    XXX .= YYY
 
  to
 
    XXX = <XXX>YYY
 
  This is intended to be used with things that can support strings (NAME, TITLE, VAR, LOCAL, etc)
 
- First attempt to implement propper LOS check counting with z. To have LOS, you must be
 
  able to walk in a straight line to the target (no news here) AND finish at a reasonable
 
  height, climbing your way to it. So, if you're on a slope you might have LOS, but if
 
  you're standing one floor below you won't. These extra texts have no measurable impact on
 
  performance Enable this behaviour with EF_CanSeeLos (04).
 
- Diagonal walking (eg, NW) is allowed only if the character can move ortogonally in both
 
  directions (NW -> N and W). This takes care of a few clientside exploits, as well as NPCs
 
  walking through corners. Enable this behaviour with EF_DiagonalWalkCheck (010)
 
- For the effect of stepping on them, all items were considered to have a height of 3. If you
 
  are standing higher than 3 above an item, you wouldn't trigger a step on it. Changed it so that
 
  if the item's height is above 3, that value is used, and not the hardcoded "3". This allows
 
  one to get @Step events on stuff like tables.
 
- If no SRC is defined at the time of a @SpellEffect trigger, then the character subject to the
 
  spell will be considered the SRC. This fixes SPELLEFFECT under @Timer triggers.
 
- Added @NPCLookAtChar and @NPCLookAtItem triggers (check the manual). Do not abuse of these
 
  triggers, as they will affect the CPU usage.
 
  
04-01-2004, Kell
+
30-01-2004, Kell
- Added ISNEARTYPE, first argument is type, 2nd argument is max distance to search ( if not
+
- Changed SPELLEFFECT to take UID of SRC as 3rd argument, and UID of source item as 4th argument
   specified, 4 is the default ). Also added ISNEARTYPE.P, which returns "0" if false or the
+
   (optional). To maintain compatibility, a 3rd argument of '1' refers to the current SRC.
  point coordinates if true.
+
   Example: CONT.SPELLEFFECT s_fireball 1000 <CONT.UID>
- Changed DISTANCE to accept the UID of an object (item/char) to compare the distance, or a
+
   In this example, <cont.uid> will be the SRC of @Effect and @SpellEffect triggers. Say no to
   point. One can now write things like
+
   equip fudging :p
    <DISTANCE <MOREP>>  <DISTANCE trinsic>  <DISTANCE <SRC.ACT.UID>>
+
- Fixed KARMA going to odd ranges.
   If no argument is supplied, then SRC.UID is used (as default). If the point/UID is invalid
+
- Added EF_Intrinsic_Locals (080), so that after you do LOCAL.X = something, you can access it
   an error is printed to the console.
+
   via just <X>. Be careful though, not to name local variables after some known keyword, or your
- Made TIMERD readable (its precision is 10x that of TIMER, same scale of SERV.TIME).
+
   results might how you want them.  
- Made USEITEM not check for visibility. The whole purpose of this keyword is to allow
+
   Example:
   activating an item via scripts w/o testing for touch, so it doesn't make sense to test
+
      LOCAL.X = 10
   if the item can be seen. DCLICK performs the usual tests though. The "USE" keyword already
+
      SYSMESSAGE X is <X>.
   allowed one to do "USE 0" not to test for touch, but it also tested for visibility, and it
+
 
  won't anymore if used like "USE 0".
+
02-02-2004, Kell
- Spawns gems now instantly update the display as soon as you set MORE1.
+
- Fixed an exploit that would allow insta-resurrection anywhere (death menu packet).
- Double clicking an already negated (more2=0) character spawn sets its timer to 1 so it
+
- Fixed one last \n\r packet exploits.
  respawns next turn.
+
- Made sure \n or \r are never saved to the world file, so even if some packet exploit got overlooked,
- Added MOVENEAR keyword for objects(items/chars). 1st argument is the UID of item to move
+
   it'll end up causing no harm and issue a warning in the console.. This is likely to be the end of
  near to, 2nd argument is the distance to the item. If 3rd argument is present and "0",
+
   99% of shard hacking.
   then the item will not send an Update. Example:
 
    ON = @DClick
 
        MOVENEAR <SRC.UID> 5 // move to 5 steps away from SRC
 
   Notice that this movement respects walls & such (which is why it is useful).
 
- Set ARGN1=1 in @Login not to show MOTD scroll.
 
  
05-01-2004, Kell
+
03-02-2004, Kell
- Fixed possible exploit with \n and textentry and inpdlg.
+
- Fixed FOR x being 0 based - FOR 5 will now loop from 1 to 5 and not from 0 to 5.
- AREA and ROOM sections in the following format
+
- Fixed "/" character in parsing of simple formulas (so you don't need to use eval when
    [AREA name here]
+
  assigning formulas to TAGs/VARs or in RETURN).
  Should now be written as
+
- Fixed @Targon_ground in GM mode with weapons throwing critical exception (it was attempting
    [AREADEF a_some_def] // ROOMDEF for rooms
+
   to damage a static item, which obviously is not an item at all).
    NAME=name here
+
- Targon_ triggers now have argn1 as the id of the static item (if a static was targeted),
  The advantage of this format is that you can resync it w/o having conflicting regions.
+
   and ARGO being the targeted item (reduntant yes, but coherent).
  Suggestions: Keep your areas in different formats in seperate files. Either find a script
+
- (intermediary test release here to get some feedback)
to convert your old format to the new one or slowly convert by hand.
+
- Polymorph spell fixed.
Move [Teleporters] and [Moongates] to their own files (these can't be resynced).
 
  Note: You do NOT have to use the new format. It is, however, strongly suggested, as
 
it allows you to change an area without rebooting.
 
Any future ability to save things on regions will only be available for regions
 
in the new format (or regions that have a DEFNAME).
 
- Added CALL instruction to invoke a function, but sharing the LOCAL variables with the called
 
  function. Quite useful when you want to break a function in small pieces that are logically
 
  yet not functionally seperate. In other words, if you invoke a function with CALL, all your
 
  LOCAL will be available to the underlying function. Example
 
    [FUNCTION myfunction1]
 
      LOCAL.VAL1 = 12
 
      CALL myfunction2 1, 2 // LOCAL.VAL1 will be available to myfunction2
 
      // if myfunction2 changes LOCAL.VAL1 it will change here aswell.
 
   If you do not pass arguments to the called function, then args/argn/argv are also shared,
 
  and the process is faster than invoking the function w/o CALL. If you pass arguments to the
 
  function, then only LOCAL is shared, and the process is an infinitesimal amount slower. Not
 
  noticeable, no real impact, but conceptually slower.
 
  This can also be used as <CALL Function ...>, faster without arguments, slower with.
 
- Recently realized that ALL DEFNAMEs are put into VAR. That means that all itemdefs, chardefs,
 
  etc have an entry in VAR (try <VAR.i_dagger> ). Now, this is potentially confusing and source
 
  for many problems:
 
    1) Whenever you're trying to access a VAR, you go through ALL the existing defnames.
 
    2) You can accidentally create a var that is also a defname... and oooooops!
 
  So to cope with this, changed it so that VAR/VAR0 only contains global variables that can be
 
   modified, whereas DEF/DEF0 contains item defnames and can only be read. The difference in speed
 
  is visible! EVERY time you were accessing a VAR you'd be searching through an array with a few
 
  thousand elements. Now each lookup searches only through the variables your scritps have created
 
  (which even on an extremely scripted shard shouldn't reach a hundred).
 
  This also makes it possible to identify WHICH variables are supposed to be saved.
 
  Although this is a huge change internally, it won't affect scripts except in the following
 
  situation:
 
    1) You defined a DEFNAME flag in scripts that you then changed during execution. This is
 
        highly uncommon, but if you decide you need this sort of behaviour just create the create
 
        the VAR once via scripts, it will be saved to spherevars.scp.
 
    2) You were accessing DEFNAMEs via VAR. No real reason to do it, seeing as DEFs / VARs can
 
        be accessed w/o the VAR. prefix.
 
  If not using DEF or VAR to access a variable, you'll get first the VAR if exists, and then the
 
  DEF. That means that old behaviour is kept.
 
- VARs are now saved to spheredata.scp. If that file isn't present at boottime the shard will print
 
  a warning, but it will continue, and it'll be created on the next save.
 
- GMPages will now be saved to spheredata.scp. Too many people are interested in parsing these to
 
  make special stuff (eg webpage interfaces or mirc scripts), so now they won't have to parse the
 
  whole world to read in this stuff.
 
  
06-01-2004, Kell
+
04-02-2004, Kell
- Added "S" flag to SENDPACKET, allows one to send strings of characters directly. String is not
+
- When loading a world with VERSION below "0.55 R3", convert spells that affect stats, by
   within quotes it stops at the first space. Example
+
   removing its effect from base stats (old method) then putting the effect into modstats
    SENDPACKET 00 S"This is the string to send" 0
+
  (new method). This ensures compatibility with spells and cursed items.
    SENDPACKET 00 SUpToTheSpace 0
+
   Notice that this only works for worlds saved on versions earlier than R3, seeing as worlds
   If the string must be null terminated, simply put a 0 in there, as above. Otherwise, you'll probably
+
   saved on the test versions of R3 made no conversion and thus had items with both formats
   need to specify length (strlen function) - depends on packet
+
   which cannot be distinguished.
- Added new walk limiting code, wildly based on the bit-bucket algorithm used in IP QoS DiffServ
+
   If for some reason you want to bypass this conversion on an old world, change the version
   routers: there is a maximum speed at which you can walk (it's fixed, different walking or foot). If
+
  of the save files to "0.55 R3". If you want to force this conversion on a world saved with
   you walk faster than that speed, every tenth of second you walk faster than expected is a point you
+
   R3 test versions, change its version to "0.55".
   loose. Every 10th of second you take above the time expected is a point you win. The number of points
+
- Fixed melee weapons with large RANGE hitting through walls.
  you start with and the maximum is WALKBUFFER in sphere.ini, and I've tested it with values
+
- Added ARCHERYMAXDIST to sphere.ini (defaults to 12).
  around 40 for good connections and 70 for laggy connections.
+
- RANGE works for ranged weapons (bows) too. If no minimum range is set, then ARCHERYMINDIST
  If a player speedwalks, he'll soon drop below 0, and stop moving, then have to compensate with equally
+
   is used. If no maximum range is set, then ARCHERYMAXDIST is used.
   slow walking periods, like it happens when there's a burst of lag.
+
   Notice that on ITEMDEFs, syntax for range is either RANGE=min,max or RANGE=max (assumes 0
  WALKREGEN is the speed at which you regen walk points, in percentage.
+
   as min for melee weapons, or archerymindist for ranged weapons).
   Default values: WALKBUFFER=50  WALKREGEN=25
+
- Account delete should be working fine now.
   Hints:
+
- IPs now accept 255 as a wildcard. So if you add an ip under BLOCKIPs with:
WALKBUFFER lower for more strict control. However, setting it lower also increases the
+
  1.2.255.255 you will actually be blocking everyone IP under 1.2
  chance of limiting someone which is just experiencing lag. Raise this value
+
- EOF Account really fixed now (thanks everyone who pointed all the flaws out).
if you lower WALKREGEN.
+
   note for programmers: never ignore the return error value of a function :p
WALKREGEN set lower for longer-lasting punishments. It makes sense to lower this value
+
- Added <StrPos iPos, ch, string>, where iPos is the position to start at and ch can be
if you raise WALKBUFFER.
+
  either a single character, or the ascii code for a character.
- Removed some EF_ flags that are no longer necessary seeing as they proved to be harmless. Make sure
+
   Example:  <strpos 0 32 Where is the first space> --> will return 5.
   you consult MANUAL.TXT.
+
      <strpos 3 e  Where is the first 'e'> --> will return 4.
- Changed trigger @DropOn_Item and @ItemDropOn_Item to be activated for container items too.
+
- Added <StrSub iPos, iCount, string>. Returns "iCount" numbers string, starting at iPos.
   Activated when item with the trigger is dropped on another item (dropped on something else).
+
   Example:  <strsub 3 4 Oh look at this> --> will return "look".
- Added @DropOn_Self and @ItemDropOn_Self, activated when an item is dropped on the item with the
+
- Both StrSub and StrPos can take a negative value as iPos. In such a case, the position
   trigger (something was dropped on self).
+
  is counted from the end of the string. So if you do:
- Implemented trigger @DropOn_Char and @ItemDropOn_Char.
+
  StrSub -5 2 <abcdefg> --> returns "cd".
- If these triggers fail, will only bounce the item if it's still being dragged. That allows the
+
- Changed StrArg / StrEat to stop at either a space or a comma. These are quick functions
  scripts in the triggers to define a new place for item.
+
  when you just want to take one argument from a string, or just want the string after one
- Made sure clients can only drop stuff into the bankbox if they are standing in the place where it
+
   argument. Imagine you have a function that takes 1 number and a string. Instead of using
   was opened. This could now be checked within scripts aswell.
+
  argv[], you could use strarg to get the number and streat to get the string.
- Fixed an Injection exploit regarding accessing the bank away from the place it was opened in.
 
- Added @SkillGain and @Gain triggers. Check MANUAL.TXT for more info.
 
  
07-01-2004, Kell
+
05-02-2004, Kell
- Automatically assign a DEFNAME to areas and rooms defined in the old format (AREA / ROOM). This
+
- Spells with SPELLFLAG_SCRIPTED can "return 0" in @Effect/@SpellEffect to bypass any
   defname is built upon the NAME, and is made unique by adding a number to it.
+
   hardcoded effect, w/o cancelling the spell.
- In the console, you can type "d a" to output all the areas and rooms to a file "map_all.scp". I
+
- Duration for summon spells now takes in consideration the DURATION field in the SPELL section and
   strongly suggest you replace your map with this file, as it'll allow you to finally get rid of the
+
   the caster level (yeah, it didn't).
  old format.
+
- @SpellEffect/@Effect is triggered on the NPC when it is first summoned (it's always considered to
  NOTE: Teleporters and Moongates aren't saved in this file, so you should split those to a different
+
   be the s_summon_creature spell, regardless of spell initially used to summon the NPC).
  file, to allow areas to be resynced.
 
- It is strongly suggested that you do the above, and get rid of the old format areas/rooms. Doing it
 
   has the following advantages:
 
  * Loading will be faster, because the server won't have to try and find a good defname for areas.
 
  * You can edit areas, and resync (even change their name) with no conflicts.
 
  * TAGs on areas are only saved for areas that have a valid DEFNAME, so if you do this, TAGs will be
 
    saved on all your areas.
 
- Added @Targon_Cancel for items.
 
  
---- 0.55 R3 rc2 --------------------------------------------------------------
+
06-02-2004, Kell
---- 25/01/2004
+
- Spells with both SPELLFLAG_TARG_XYZ and SPELLFLAG_TARG_CHAR/ITEM can be used either on the ground
 +
  or on a character / item.
  
08-01-2004, Kell
+
---- 0.55 R3 final ------------------------------------------------------------
- Fixed VERBOSE=1 causing a catrazillion errors at boot.
+
---- 31/05/2004
- .CAST and .TELE won't show "bad command" sysmessage when they fail.
+
---- * unofficial release [unallowed]
- If TRY/TRPY are called with an invalid command, they will send the error to the console and not to
 
  the player. This is coherent with how scripts should behave.
 
- Fixed NPCs not starting with max stats when MAXxxx is used.
 
- Fixed .admin showing only your own IP.
 
  
09-01-2004, Kell
+
07-02-2004, Kell
- .serv.account unused xxx  delete
+
- Added FeaturesLogin= to sphere.ini, allows setting of the flags sent in the 0xA9 packet, on login.
- .serv.account add test // missing password will no longer crash
 
- killing characters with positive karma (actually, it's about commiting a crime, not karma)
 
- .info not returning to dialog after changing a value (actually, INPDLG wasn't returning to dialog)
 
- flags on UIDs preserved (040000000 for items, 0d2000000 for skills, etc). GLOBALS renamed to WORLDVARS
 
  due to this (won't go into details here).
 
- SERV.LOG fixed.
 
- Fixed plevel 1 players seeing other plevel 1 hidden players
 
- Added USEHTTP=0/1 in sphere.ini, to disable/enable the built-in HTTP server.
 
- Added USEGODPORT=0/1 in sphere.ini, to disable the port opened at +1000. As far as I can tell, there is
 
  really no purpose for that port except taking in connections, much like the standard port you set. So it
 
  ships disabled by default.
 
  
10-01-2004, Kell
+
08-02-2004, Kell
- Fixed a bug where redefining a base type (one in the TYPEDEFS list in spheretables.scp) could lead
+
- Added EVENTS/TEVENTS to items. Order of triggering is as follows:
  to a crash.
+
  1) If it's a character activating the trigger, check for triggers sensitive to items (@ItemDClick, etc).
- Added a way to assign a TYPEDEF to a terrain type. This means you can define what terrain types are
+
  2) triggers in EVENTS on the item
  water, for instance. Example:
+
  3) triggers in TEVENTS on the item
    [TYPEDEF t_water]
+
  4) triggers in TYPEDEF section for the corresponding TYPE of the item
    TERRAIN = 00a8 00ab
+
  5) triggers in ITEMDEF section of the item
    TERRAIN = 0136 0137
+
  6) default hardcoded behaviour (if any).
  This information is then used by ISNEARTYPE (and it has effect on all the hardcoded behaviour)
+
  a "return 1" in any case, stops further processing of triggers.
  when trying to assert if there's t_water around.
 
  Notice that ISWATER checks wether a terrain type is t_water, whereas <ISNEARTYPE t_water> would check
 
  for terrain, statics and dynamic items.
 
- Changed TYPE when called on an SERV.ITEMDEF.xxx.TYPE to return the typename, and not just a value. So
 
  when called on an water item it should return t_water, and not "30". This also has affect when using
 
  STATICS.x.TYPE.
 
- Fixed not being able to access properties of TARGP, as in <SRC.TARGP.X> or <SRC.TARGP.TERRAIN>.
 
- Added "TYPE" to the keywords available on a point. It uses the information above to return what item
 
  type is the terrain at that point. So you can do TARGP.TERRAIN.
 
  
11-01-2004, Kell
+
21-02-2004, Kell
- Changed .info command to show the type associated with the terrain (t_normal if none).
+
- There is a feature/bug when checking to see wether a player has some specific items, any item of a similar
- Wrote sphere_types.scp - it is a REQUIRED script, as it associates terrain IDs to item types. This
+
  type will do. It affects these items:
  replaces the old hard-coded behaviour (which by the way, was slower). By replacing it, I see no
+
    0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards), 00f3f (arrow), 01bfb (bolt).
   need to keep the old code, seeing as all you need is to have this script, which will be distributed
+
   e.g., when the server tries to find an arrow, any t_weapon_arrow will do, and so on.
   from now on.
+
   Added flag EF_Item_Strict_Comparison (0200) to disable this behaviour.
   Add sphere_types.scp in spheretables.scp right after sphere_defs.scp.
+
    
- Removed ISWATER, ISGRASS, ISROCK and ISDIRT commands from points (they were introduced in R3). Please
+
25-03-2004, Radiant
  use TYPE instead. For instance, use (<P.TYPE> == t_water) wherever you'd use <P.ISWATER>. Some might
+
- Added some combat, server and command messages to sphere_msgs.scp.
   have grown attached to these commands, but unified and coherent scripts are certainly better than
+
- Added two file handleing commands:
   different methods for doing the same. Besides, this offers a lot more control (e.g.: <P.TYPE> == t_lava)
+
  SERV.WRITEFILE <filename> <text>
- Added ISNEARTYPE to the keywords accepted by points. So you can do <SRC.TARGP.ISNEARTYPE t_water> and
+
  SERV.DELETEFILE <filename>
   that will effectively test terrain type, statics, and dynamic items. This is probably what most people
+
   Because these commands can be quite destructive, option flag OF_FileCommands (080) must be enabled
  will want to use, seeing as P.TYPE only test for terrain (and not statics or dynamic items).
+
   for these commands to work. Be careful, because any GM with access to SERV.* commands could use this!
- Added EF_New_Triggers (010). If set, allows the use of @NPCActFight, @NPCActFollow, @NPCLookAtChar
+
   More will follow soon.
  and @NPCLookAtItem. This flag was added because even having these triggers *might* have some impact
+
- Added @UserChatButton trigger (return 1 disables default (chat window) behaviour)
  upon performance in very busy shards.
+
- Added @UserMailBag trigger (return 1 disables default (message) behaviour)
- Removed a "Weird layer" message from whenever you equipped an item to layer_hidden. This is quite an
+
  NOTE: It seems this is also triggered on login, try using something like
   useful layer for people wanting to expand their shards, so there's really no reason for this error.
+
    if (<uid> == <src.uid>)
 +
      return 1
 +
    endif
 +
   to prevent this.
  
12-01-2004, Kell
+
26-03-2004, Radiant
- Fixed "b" in console not working.
+
- Added <READFILE filename line> statement
- Added DISTANCEYELL, DISTANCETALK, DISTANCEWHISPER to sphere.ini - a value of -1 turns it into a
+
  If line == 0 this will return the last line of the file, if line == -1 this will return the first line of
   broadcast.
+
  the file. This needs OF_FileCommands (080) to be enabled because of obvious security reasons.
 +
  This will return "" (nothing) on failure.
 +
- Added <FILELINES filename> statement, returns the amount of lines in a file.
 +
  If this is 0 it means the file doesnt exist or cannot be read. This too needs OF_FileCommands (080).
 +
- Added some error and misc. messages to sphere_msgs.scp.
 +
- Added SYSMESSAGEUA (syntax equal to SAYUA).
 +
  *** NOTE *** People using Taran's colored sysmessage script will experience problems! Remove Taran's script
 +
  and change your scripts to use the hardcoded function instead (which is much faster and efficient anyway).
 +
- Fixed missing return char in TRY console errors and added the UID of the object causing the error.
 +
- Added @Attack trigger (after someone doubleclicked a character to attack).
 +
  SRC is the target. "return 1" will cancel the attack.
 +
- Added @UserWarmode trigger, fired when a user hits the warmode button before sphere changes the warmode flag.
 +
   ARGN is the current warmode state (1 = in warmode, 0 = peace). "return 1" cancels the warmode change.
  
13-01-2004, Kell
+
27-03-2004, Radiant
- The @Create trigger for items works as any other item trigger - it can be fully scripted.
+
- Got sphere to compile on FreeBSD, it's not very stable yet, working on that (problem with signal handlers).
  After a LOT of work, you can now also check for SRC under item's @Create. There are situations where
+
- Added TRYSRC <uid> <verb>, executes <verb> with <uid> as the SRC. Death to equip fudging!
  an item can be created without an SRC, but in most cases, there will be one. Eg:
+
  Note that the default object is the object this is called on, so link.trysrc <cont.uid> will make <link> the
  ON = @Create
+
   default object and <cont> the <src>. Very useful in timers!
    if ( <SRC.UID> )
 
        SRC.SYSMESSAGE You have created an item!
 
    endif
 
  Bear in mind that @Create is created before the item by the server, so it can still suffer transformations
 
  after it's been created. Particulary, you won't be able to REMOVE an item under a @Create trigger - it
 
  will have no effect.
 
- Added ISEMPTY and ISNUM. Eg: <ISEMPTY <VAR.TMP>> or <ISNUM <VAR.TMP>>.  
 
- Added STATICS.FINDID.xxx - it will take you to the ITEMDEF of the static item with the supplied ID
 
- Added @ResourceTest to REGIONRESOURCE sections, called once for each resource in the region that the
 
  character is able to find.
 
- Added @ResourceFound, triggered after a resource has been selected (@ResourceTest has been called for
 
  all resources available). ARGO is the resource bit to be placed at the location. "return 1" keeps the
 
   resource bit, but sets it to be empty.
 
- Added DEFMESSAGE section for scripts, allows setting of strings to be used by the server. More will be
 
  added - work in progress. You now REQUIRE a script with these strings.
 
- Fixed RESOURCES.xxx.val and .key.
 
  
19-01-2004, Kell
+
28-03-2004, Radiant
- Fixed a bug with getting stuck on stuff.
+
- Disabled SENDPACKET S"" and put in a little notice that you should use <ASC> instead.
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=10 and
+
- Casting recall/gate travel on an item now fires @SpellEffect on that item.
  then do STR=70, you will get OSTR=60 and MODSTR unchanged.
 
  
21-01-2004, Kell
+
31-03-2004, Radiant
- Changed max height difference on CanSeeLOS from PLAYER_HEIGHT/2 to PLAYER_HEIGHT, so that you can access
+
- Added OF_NoItemNaming (0100), prevents sphere from naming items "sword crafted by Player"
   chests on top of a table.
+
- Added EF_No_Pause_Packet (0400), this prevents sphere from sending a Disable Redraw (or pause) packet everytime
- Removed the password being shown on console when a password error occurs.
+
   a new item/character is sent to the client. This is a bandwidth saver and lag preventer.
- Made .x* and .set* commands respect PLEVEL. You also need plevel to use the "SET" command to use .x and .set
+
   This saves about 45 bytes for each action, this doesn't seem much but you can notice the difference.
   commands.
 
- Slightly smarter NPCs against field spells - they will avoid them more often depending on INT.
 
- Fixed another spot where SRC was undefined in @Create (there might still be more of these).
 
  
23-01-2004, Kell
+
02-04-2004, Radiant
- Fixed buying multiple pets from animal trainers.
+
- Changed skillsum to DWORD, which fixes the problem with high skillsums not working.
- Fixed a bug in FOR where counting down wouldn't work (eg: FOR 10 1 works now)
 
  
24-01-2004, Kell
+
04-04-2004, Radiant
- Fixed bug with NPCs going stale (their timer going -1) - particulary pets.
+
- Gate travel spell now LINKs the gate to the person that opened it.
- Fixed @Effect in SPELL sections to work and have same arguments as @SpellEffect.
 
- Added SPELLFLAG_SCRIPTED (010000) so that one can more easily override the default behaviour of
 
  spells.
 
  
25-01-2004, Kell
+
06-04-2004, Radiant
- Fixed yet another exploit, with sending a hacked Author in books (tks Balkon)
+
- Healing is now interrupted properly when hit, fixes exception problem.
- Added PROMPT_MSG to SPELL sections and disabled the hard-coded messages. You'll have to fill in the
 
  prompt messages for the spells.
 
  
---- 0.55 R3 rc3 --------------------------------------------------------------
+
08-04-2004, Radiant
---- 06/02/2004
+
- Fixed signal locking problem on Linux/FreeBSD, running sphere in multi-threading mode still has problems, I'll look
 +
  at that tomorrow. Sphere now survives pretty much every error on Linux/FreeBSD (only tested on FreeBSD), as long as
 +
  it's running in single thread mode.
  
25-01-2004, Kell
+
09-04-2004, Radiant
- Fixed a bug with @Gain trigger, that regardless of it even existing would reset the skill to the skill
+
- Threading problem seems to be a little more complicated, but at least sphere runs very stable for me without threading
  being tested. This turned out in Parrying skill interrupting combat, and other buggy skill behaviour.
+
  on FreeBSD. I've tried it on Slackware, which still had alot of problems. I'll leave that for Kell ;)
- 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 = <<local.mystat>> + 5
 
    <LOCAL.MYSTAT> = <<LOCAL.MYSTAT>> + 5
 
    SYSMESSAGE Stat '<LOCAL.MYSTAT>' increased to <<LOCAL.MYSTAT>>.
 
  
26-01-2004, Kell
+
11-04-2004, Balkon
- Renamed SPELLFLAG_TARG_OBJ to SPELLFLAG_TARG_ITEM. This is really an internal change, but you should
+
- Fixed bug when pick up few items from a pile on the ground it's timers become -1
  change spheredefs.scp to be:
+
- Added @Pickup_Self - fired on container when item picked up from it, ARGO points to item we picking up
   SPELLFLAG_TARG_ITEM 000002
+
   @ItemPickup_Self for chars, ACT - container , ARGO - item we picking up
  SPELLFLAG_TARG_CHAR 000004
+
   Removed Reveal() from corpse looting - one can do it using @Pickup_Self if needed
  SPELLFLAG_TARG_OBJ SPELLFLAG_TARG_CHAR | SPELLFLAG_TARG_ITEM
+
- @Dropon_Char, @ItemDropon_Char now called when drop an item directly on charater either (before secure trade window
- Made sure a character can only be targeted by a spell with SPELLFLAG_TARG_CHAR, and that an item
+
   shown and @NPCAccept/Refuseitem triggers), ARGO points to character we drop the item on, or character's backpack
   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
+
11-04-2004, Balkon
- Added EF_New_Maps (020), which enables the mapchange packet (0bf, subcmd 08). If enabled, moving to
+
- Can't provoce char against an item
  mapplane 1 or 2 will send a packet for the client to see the appropriate map, and moving to other
+
- Return 1 in @Login fixed (character will not stay in the world, no "client version check" loop)
  mapplanes will send the packet changing back to basic map. This allows one to see the new maps.
+
- Fixed CONT and TOPOBJ in @EquipTest, item not moved if can't be equipped when doubleclick on it
  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
+
12-04-2004, Radiant
- Fixed TARGP not being set when using a spell.
+
- Added LOCALLIGHT property on characters, if this is 0 the normal lightlevel (sector) will be used, if this is higher the
- Added SPELLFLAG_TARG_NOSELF (0800), which stops spells from being cast on the player itself.
+
  LOCALLIGHT value will be sent as lightlevel instead. You will need to use UPDATE after you have changed this, because the
- Fixed accessing LOCAL variables straight within DIALOG sections (also fixes FOR loops).
+
  light level is not automatically updated. This overrides nightsight.
- "return 1" within a DIALOG section stops the dialog from actually being sent.
+
  (note: if you want to give a character a LOCALLIGHT level of 0, just set the nightsight flag)
  
30-01-2004, Kell
+
13-04-2004, Balkon
- Changed SPELLEFFECT to take UID of SRC as 3rd argument, and UID of source item as 4th argument
+
- OF_NoHouseMuteSpeech (0200) - if enabled players are able to hear each other inside and outside the house
  (optional). To maintain compatibility, a 3rd argument of '1' refers to the current SRC.
+
- Started remaking a CanSeeLos and CanWalk, temporary added EF_CanSeeLos_New (0800) to enable both changes
  Example: CONT.SPELLEFFECT s_fireball 1000 <CONT.UID>
+
   as for now it fixes shoot through walls an fall through the floor in house regions interception area bugs,  
  In this example, <cont.uid> will be the SRC of @Effect and @SpellEffect triggers. Say no to
+
   more changes here later...
   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 <X>. 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 <X>.
 
  
02-02-2004, Kell
+
14-04-2004, Radiant
- Fixed an exploit that would allow insta-resurrection anywhere (death menu packet).
+
- @DClick is now triggered before the item is attempted to be equipped
- 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
+
15-04-2004, Balkon
- Fixed FOR x being 0 based - FOR 5 will now loop from 1 to 5 and not from 0 to 5.
+
- EF_WalkCheck (01000) - new walk check code, should fix lot of house looting bugs (patched verdata, walk under stairs etc.)
- Fixed "/" character in parsing of simple formulas (so you don't need to use eval when
+
   NOTE: in default script pack some stairs are in DUPELIST of items, which are not really a stairs, so they have
   assigning formulas to TAGs/VARs or in RETURN).
+
   wrong CAN flags (CAN_I_CLIMB is not set). Make sure you've fixed your scripts before enabling this EF or you'll
- Fixed @Targon_ground in GM mode with weapons throwing critical exception (it was attempting
+
  not be able to walk on some of dynamic stairs
  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
+
16-04-2004, Balkon
- When loading a world with VERSION below "0.55 R3", convert spells that affect stats, by
+
- some optimization to EF_WalkCheck, fixing climb height after teleporting and Z changing
  removing its effect from base stats (old method) then putting the effect into modstats
+
- fixed bug when summoned NPC's have loot
  (new method). This ensures compatibility with spells and cursed items.
+
- fixed RESOURCES.1 returned string in RESMAKE format
  Notice that this only works for worlds saved on versions earlier than R3, seeing as worlds
+
- fixed shafts etc. dupe bug
  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 <StrPos iPos, ch, string>, where iPos is the position to start at and ch can be
 
  either a single character, or the ascii code for a character.
 
  Example: <strpos 0 32 Where is the first space> --> will return 5.
 
  <strpos 3 e  Where is the first 'e'> --> will return 4.
 
- Added <StrSub iPos, iCount, string>. Returns "iCount" numbers string, starting at iPos.
 
  Example: <strsub 3 4 Oh look at this> --> 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 <abcdefg> --> 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
+
17-04-2004, Radiant
- Spells with SPELLFLAG_SCRIPTED can "return 0" in @Effect/@SpellEffect to bypass any
+
- Started working on some basic AOS functionality, EF_AgeOfShadows (02000) will enable this.
  hardcoded effect, w/o cancelling the spell.
+
  Currently only enables tooltips (which aren't even working for now). Don't forget to enable flag 020 in FeaturesLogin!
- Duration for summon spells now takes in consideration the DURATION field in the SPELL section and
+
- Fixed a nasty exploit that would allow anyone to crash sphere and/or execute code on your machine without even logging in
   the caster level (yeah, it didn't).
+
   (thanks Furio for reporting this)
- @SpellEffect/@Effect is triggered on the NPC when it is first summoned (it's always considered to
+
- Fixed AOS Tooltips, now only shows the name for items and characters. I'll add other things later.
  be the s_summon_creature spell, regardless of spell initially used to summon the NPC).
+
- Added AOS/LBR fading damage counter thing (requires EF_AgeOfShadows). This only shows for you and the person that hit you,
 +
  I believe thats how it works on OSI (or doesn't it?). Showing it for everyone would make it laggy in my opinion.
  
06-02-2004, Kell
+
17-04-2004, Balkon
- Spells with both SPELLFLAG_TARG_XYZ and SPELLFLAG_TARG_CHAR/ITEM can be used either on the ground
+
- torch/candle dupe bug seems to be fixed at last :)
  or on a character / item.
 
  
---- 0.55 R3 final ------------------------------------------------------------
+
18-04-2004, Balkon
---- 31/05/2004
+
- fixed ACCOUNT properties was not accessable for logged out chars
---- * unofficial release [unallowed]
+
- added ISPLAYER function - just a little feature :)
 
+
- added ISONLINE function - for players returns 1 if client is online (connected) and 0 overwise, for NPCs returns 1 when
07-02-2004, Kell
+
  NPC is in the world or 0 if it is offline (shrinked, mounted pets)
- Added FeaturesLogin= to sphere.ini, allows setting of the flags sent in the 0xA9 packet, on login.
+
- added NOTOGETFLAG function, returns notoriety flags for specified char, syntax: NOTOGETFLAG Viewer_Serial,Allow_Incognito
 +
  returned values:
 +
  NOTO_GOOD  1 // good(blue)
 +
  NOTO_GUILD_SAME  2 // same guild
 +
  NOTO_NEUTRAL  3 // Neutral
 +
  NOTO_CRIMINAL 4 // criminal
 +
  NOTO_GUILD_WAR  5 // Waring guilds
 +
  NOTO_EVIL  6 // evil(red)
 +
  if no args specified returns flags for SRC as a viewer, NOTOGETFLAG 0,1 will return flags for SRC as a viewer with
 +
  Allow_Incognito = true
 +
  NOTE: for red guildmates it will return NOTO_EVIL, not NOTO_GUILD_SAME
 +
 
 +
18-04-2004, Radiant
 +
- Some additions to AOS tooltips
  
08-02-2004, Kell
+
19-04-2004, Kell
- Added EVENTS/TEVENTS to items. Order of triggering is as follows:
+
- A few changes to AOS tooltips for cross-platform compatibility (itoa).
  1) If it's a character activating the trigger, check for triggers sensitive to items (@ItemDClick, etc).
 
  2) triggers in EVENTS on the item
 
  3) triggers in TEVENTS on the item
 
  4) triggers in TYPEDEF section for the corresponding TYPE of the item
 
  5) triggers in ITEMDEF section of the item
 
  6) default hardcoded behaviour (if any).
 
  a "return 1" in any case, stops further processing of triggers.
 
  
21-02-2004, Kell
+
19-04-2004, Radiant
- There is a feature/bug when checking to see wether a player has some specific items, any item of a similar
+
- Fixed status updates not sending with EF_No_Pause_Packet flag set
  type will do. It affects these items:
+
- Made @userStats fire on every status update that is being sent, if ARGN3 == 1 then the user has just opened the status window
    0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards), 00f3f (arrow), 01bfb (bolt).
+
- More tooltips stuff, type specific
  e.g., when the server tries to find an arrow, any t_weapon_arrow will do, and so on.
+
- Added AOS/LBR Popup Menu's, these can be activated by setting flag 08 in FeaturesLogin (currently only for characters).
  Added flag EF_Item_Strict_Comparison (0200) to disable this behaviour.
 
 
 
25-03-2004, Radiant
 
- Added some combat, server and command messages to sphere_msgs.scp.
 
- Added two file handleing commands:
 
  SERV.WRITEFILE <filename> <text>
 
  SERV.DELETEFILE <filename>
 
  Because these commands can be quite destructive, option flag OF_FileCommands (080) must be enabled
 
  for these commands to work. Be careful, because any GM with access to SERV.* commands could use this!
 
  More will follow soon.
 
- Added @UserChatButton trigger (return 1 disables default (chat window) behaviour)
 
- Added @UserMailBag trigger (return 1 disables default (message) behaviour)
 
  NOTE: It seems this is also triggered on login, try using something like
 
    if (<uid> == <src.uid>)
 
      return 1
 
    endif
 
  to prevent this.
 
  
26-03-2004, Radiant
+
19-04-2004, Balkon
- Added <READFILE filename line> statement
+
- RANGE bug fixed
  If line == 0 this will return the last line of the file, if line == -1 this will return the first line of
+
- updating last regen time for dead chars so that they will not get ticks every tenth of second any more
  the file. This needs OF_FileCommands (080) to be enabled because of obvious security reasons.
 
  This will return "" (nothing) on failure.
 
- Added <FILELINES filename> statement, returns the amount of lines in a file.
 
  If this is 0 it means the file doesnt exist or cannot be read. This too needs OF_FileCommands (080).
 
- Added some error and misc. messages to sphere_msgs.scp.
 
- Added SYSMESSAGEUA (syntax equal to SAYUA).
 
  *** NOTE *** People using Taran's colored sysmessage script will experience problems! Remove Taran's script
 
  and change your scripts to use the hardcoded function instead (which is much faster and efficient anyway).
 
- Fixed missing return char in TRY console errors and added the UID of the object causing the error.
 
- Added @Attack trigger (after someone doubleclicked a character to attack).
 
  SRC is the target. "return 1" will cancel the attack.
 
- Added @UserWarmode trigger, fired when a user hits the warmode button before sphere changes the warmode flag.
 
  ARGN is the current warmode state (1 = in warmode, 0 = peace). "return 1" cancels the warmode change.
 
  
27-03-2004, Radiant
+
20-04-2004, Balkon
- Got sphere to compile on FreeBSD, it's not very stable yet, working on that (problem with signal handlers).
+
- some traffic optimization:
- Added TRYSRC <uid> <verb>, executes <verb> with <uid> as the SRC. Death to equip fudging!
+
  short stats change packets now used instead of full status packet when changing only hits/mana/stamina or it's max. values
   Note that the default object is the object this is called on, so link.trysrc <cont.uid> will make <link> the
+
  HITSUPDATERATE in sphere.ini controls how often (in seconds) my changed hits will be sent to others who can see me,
   default object and <cont> the <src>. Very useful in timers!
+
   default value is 1, incraise to reduce the traffic usage, 0 value disables sending such updates (like it was on 55i)
 +
- MAXHITS etc. fixed. .MAXHITS 100 will now set MAXHITS to 100, this will include MODSTR so that if you had MODSTR 10 before
 +
   setting MAXHITS than when you change MODSTR back to 0 MAXHITS will be 90.
 +
- maxhits displayed for others changed from 25 to 50 for smoother hits line changing on the statusbar
  
28-03-2004, Radiant
+
21-04-2004, Radiant
- Disabled SENDPACKET S"" and put in a little notice that you should use <ASC> instead.
+
- Added MESSAGEUA, syntax equal to SAYUA and SYSMESSAGEUA
- Casting recall/gate travel on an item now fires @SpellEffect on that item.
+
- Fixed lack of argument checking in SAYUA that sometimes causes an exception
 +
- Added support for the "Virtue button" (at the top of the paperdoll on newer clients), fires the @UserVirtue trigger.
 +
- Added support for the new spellbook packets (old ones don't work with AOS), if EF_AgeOfShadows is not set the old packets will
 +
  be used (this is for Magery, there is no Necromancy or Paladin stuff (yet)).
  
31-03-2004, Radiant
+
22-04-2004, Radiant
- Added OF_NoItemNaming (0100), prevents sphere from naming items "sword crafted by Player"
+
- Re-added the "The spell fizzles" message on spell failure
- Added EF_No_Pause_Packet (0400), this prevents sphere from sending a Disable Redraw (or pause) packet everytime
 
  a new item/character is sent to the client. This is a bandwidth saver and lag preventer.
 
  This saves about 45 bytes for each action, this doesn't seem much but you can notice the difference.
 
  
02-04-2004, Radiant
+
22-04-2004, Balkon
- Changed skillsum to DWORD, which fixes the problem with high skillsums not working.
+
- setting values in quotas for TAGs, VARs and LOCALs now will create text tags, i.e.
 +
  TAG.TEST_1 2+2
 +
  will create numrecal tag TEST_1 with value 04, but
 +
  TAG.TEST_2 "2+2"
 +
  will create text tag with text '2+2'.
 +
  Text tags and vars are saved quoted also.
 +
- fixed REGION.TAG0.SOMETHING caused 'Undefined symbol "" error' when tag SOMETHING is not set
  
04-04-2004, Radiant
+
23-04-2004, Radiant
- Gate travel spell now LINKs the gate to the person that opened it.
+
- Found out that new spellbook packets are broken, still not fixed
 +
- Added support for necro book spells, now reads the spelldefs for these (101 - 116), will add hardcoded behaviour later
 +
- Added @UserExWalkLimit trigger, fired if a user exceeds the Walk limit (is either lagging alot or speedhacking)
 +
  RETURN 1 allows the user to walk, no action or RETURN 0 disallows the user to walk
 +
  (note: this is pretty expensive because it's fired each time a step is taken while the user's walkbuffer is at 0, so be careful)
  
06-04-2004, Radiant
+
24-04-2004, Radiant
- Healing is now interrupted properly when hit, fixes exception problem.
+
- Removed message from WEBLINK command
 +
- Fixed .admin showing japanese text/crashing client with long character names (names are truncated to 30 chars)
 +
- SERV.NEWDUPE and DUPE now sets NEW (and ACT? coded but not tested) for items only, duping chars doesn't work like it should yet
 +
- DCLICK/USE on characters now takes an argument (uid), makes the character DCLICK a certain item/char
 +
- CALL function is no longer case-sensitive
 +
- Added arguments to dialogs, in this form: "DIALOG d_dlg 0 blabla", both <args> and <argv[x]> can be used. <argn> is the page number
 +
  (second argument)
  
08-04-2004, Radiant
+
25-04-2004, Radiant
- Fixed signal locking problem on Linux/FreeBSD, running sphere in multi-threading mode still has problems, I'll look
+
- Added COMMANDLOG option in sphere.ini, only logs commands issued by this plevel and higher. (default = 0, log all)
  at that tomorrow. Sphere now survives pretty much every error on Linux/FreeBSD (only tested on FreeBSD), as long as
 
  it's running in single thread mode.
 
  
09-04-2004, Radiant
+
29-04-2004, Balkon
- Threading problem seems to be a little more complicated, but at least sphere runs very stable for me without threading
+
- after some beta testing few fixes in equip and EF_WalkCheck
   on FreeBSD. I've tried it on Slackware, which still had alot of problems. I'll leave that for Kell ;)
+
- added EVENTSPET to sphere.ini - events far all NPCs
 +
- added EF_DiagonalLOSCheck (04000) - to see the object in diagonal direction we must be able to see the point at least
 +
  in one of ortogonal directions, this mean you can't see objects only through the "corner", this fixes teleport through
 +
  fence NW corner and some other bugs but still allows, for example, closing doors which are in diagonal direction
 +
   to you when opened :) Setting this flag may incraise CPU usage.
 +
- alternative name in TAG.NAME.ALT is now used everywhere if tag is set - in character status, corpse names, linked
 +
  memories etc. It overrides incognito name also. The real name is only accessable via NAME property.
 +
  TAG.NAME.PREFIX now overrides fame prefixes (shown on click). TAG.NAME.PREFIX and TAG.NAME.SUFFIX are now can be combined
 +
  with TAG.NAME.ALT
  
11-04-2004, Balkon
+
01-05-2004, Balkon
- Fixed bug when pick up few items from a pile on the ground it's timers become -1
+
- fixed bug when closing dialog with targeting cursor up canceled targeting
- Added @Pickup_Self - fired on container when item picked up from it, ARGO points to item we picking up
+
- removed \r check from character profile packet - this allows to have a multiline profile and fixing wrong "Cheater" warnings
  @ItemPickup_Self for chars, ACT - container , ARGO - item we picking up
+
- fixed bug when players was able to buy any items from vendor even outside the stock (equipped on him. in his backpack etc.)
   Removed Reveal() from corpse looting - one can do it using @Pickup_Self if needed
+
- vendor now will simply transfer items to character's backpack if they are stored in his "extras" box or if he is a player's
- @Dropon_Char, @ItemDropon_Char now called when drop an item directly on charater either (before secure trade window
+
   vendor (they was duped, you bought the copy and the old one deleted before). Shrinked pets will not be unshrinked when sold
   shown and @NPCAccept/Refuseitem triggers), ARGO points to character we drop the item on, or character's backpack
+
   from player's vendor (or from extras box).
  
11-04-2004, Balkon
+
02-05-2004, Balkon
- Can't provoce char against an item
+
- EF_CanSeeLos_New is not longer used, all fixes affected by this EF are now included to the code by default.
- Return 1 in @Login fixed (character will not stay in the world, no "client version check" loop)
 
- Fixed CONT and TOPOBJ in @EquipTest, item not moved if can't be equipped when doubleclick on it
 
  
12-04-2004, Radiant
+
03-05-2004, Socket (UNSP team)
- Added LOCALLIGHT property on characters, if this is 0 the normal lightlevel (sector) will be used, if this is higher the
+
- Started work on fullfeatured guild/town system. Added MEMBER property to guildstones. You shall use it this way:
   LOCALLIGHT value will be sent as lightlevel instead. You will need to use UPDATE after you have changed this, because the
+
  <guildstone>.member.X.<property> These properties are available for read/write: ACCOUNTGOLD, LOYALTO, PRIV,
   light level is not automatically updated. This overrides nightsight.
+
  SHOWABBREV, GUILDTITLE. Functions available: IsCandidate (returns 1 if member is a recruit), IsMember (1 if member),
  (note: if you want to give a character a LOCALLIGHT level of 0, just set the nightsight flag)
+
   IsMaster (returns 1 if guildmaster). Also, MEMBER.X. construction points directly to character, so you
 
+
   could use something like MEMBER.X.NAME in your scripts. MEMBER.COUNT returns total number of guildmembers.
13-04-2004, Balkon
+
- ACCOUNTGOLD guild member's property is now saving to worldsave too.
- OF_NoHouseMuteSpeech (0200) - if enabled players are able to hear each other inside and outside the house
+
- Added new GOLDRESERVE property to guildstone.
- Started remaking a CanSeeLos and CanWalk, temporary added EF_CanSeeLos_New (0800) to enable both changes
+
- Added new <CONT>.COUNT function which returns a total amount of items in the container.
   as for now it fixes shoot through walls an fall through the floor in house regions interception area bugs,
+
- Added new SERV.CLIENT.x reference. SERV.CLIENT.0. is a newest client and so on, for example <serv.client.0.name>
   more changes here later...
+
   will return the name of last logged in client. Reference is READ-ONLY for safety. In this case you could save
 +
   client uid somewhere and work with his using UID.<uid>. reference.
  
14-04-2004, Radiant
+
07-05-2004, Socket
- @DClick is now triggered before the item is attempted to be equipped
+
- <CONT>.COUNT now returns an amount of items only in selected container, without counting items in containers inside it.
 +
- Added <CONT>.FCOUNT function, which returns a TOTAL amount of items inside container.
  
15-04-2004, Balkon
+
11-05-2004, Balkon
- EF_WalkCheck (01000) - new walk check code, should fix lot of house looting bugs (patched verdata, walk under stairs etc.)
+
- some fixes, @EquipTest now fired before all internal checks, before item unstacked from the pile, before item in same layer
  NOTE: in default script pack some stairs are in DUPELIST of items, which are not really a stairs, so they have
+
   unequipped (this mean if you have return 1 there char will not unequip previews item)
   wrong CAN flags (CAN_I_CLIMB is not set). Make sure you've fixed your scripts before enabling this EF or you'll
 
  not be able to walk on some of dynamic stairs
 
  
16-04-2004, Balkon
+
16-05-2004, Balkon
- some optimization to EF_WalkCheck, fixing climb height after teleporting and Z changing
+
- fixed @Dropon_char called when dropping item to any container on the char. Now it called only when you really drop the item
- fixed bug when summoned NPC's have loot
+
  on the character - directly on his head or on his backpack if you don't own him. ARGO now always points to character.
- fixed RESOURCES.1 returned string in RESMAKE format
 
- fixed shafts etc. dupe bug
 
  
17-04-2004, Radiant
+
19-05-2004, Balkon
- Started working on some basic AOS functionality, EF_AgeOfShadows (02000) will enable this.
+
- fixed @color,font in MESSAGE and SYSMESSAGE, now it accept hexadecimal values, added 3-rd argument there - unicode flag,
   Currently only enables tooltips (which aren't even working for now). Don't forget to enable flag 020 in FeaturesLogin!
+
  new format is SYSMESSAGE @color,font,unicode text, added @color,font,unicode to SAY and broadcast either. Of course SAYUA,
- Fixed a nasty exploit that would allow anyone to crash sphere and/or execute code on your machine without even logging in
+
  MESSAGEUA and SYSMESSAGEUA still can be used for this, but @color,font,unicode is accepted in default messages definition
   (thanks Furio for reporting this)
+
   (sphere_msgs.scp), so now we can have default messages in unicode :)
- Fixed AOS Tooltips, now only shows the name for items and characters. I'll add other things later.
+
- added OF_SkipUndefMsgs (0400) - if flag is set sphere don't send error strings for undefined default messages,
- Added AOS/LBR fading damage counter thing (requires EF_AgeOfShadows). This only shows for you and the person that hit you,
+
   dont print errors on resync - just ignores it, so now we can disable some default messages if needed.
   I believe thats how it works on OSI (or doesn't it?). Showing it for everyone would make it laggy in my opinion.
+
- SPEED wepaons property now used in fight delay calcilation if set (and not 0), the formula is
 +
   DELAY = 15000 / ( ( DEX +100 ) * SPEED )
  
17-04-2004, Balkon
+
20-05-2004, Balkon
- torch/candle dupe bug seems to be fixed at last :)
+
- some optimization in hit messages (get only messages which really will be sent to client)
 +
- added SPEEDSCALEFACTOR to INI (defaul value is 15000), used in weapon delay calcultions, now formula looks like
 +
  DELAY = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )
 +
- ARGN1 in @HitTry now is the delay (in tenths of second) left before the hit, can be changed
  
18-04-2004, Balkon
+
21-05-2004. Balkon
- fixed ACCOUNT properties was not accessable for logged out chars
+
- added FORCLIENTS and FORPLAYERS loops, difference is that FORPLAYERS will loop through disconnected players which are
- added ISPLAYER function - just a little feature :)
+
   still stay in the world (client linger) either.
- added ISONLINE function - for players returns 1 if client is online (connected) and 0 overwise, for NPCs returns 1 when
+
- if no args specifiead for FORITEMS, FORCHARS, FOROBJS, FORCLIENTS, and FORPLAYERS loops value 18 is used by default
   NPC is in the world or 0 if it is offline (shrinked, mounted pets)
+
   (maximum view distance)
- added NOTOGETFLAG function, returns notoriety flags for specified char, syntax: NOTOGETFLAG Viewer_Serial,Allow_Incognito
+
- added FORCONTID and FORCONTTYPE loops, format is FORCONTID i_dagger max_sub_containers. If max_sub_containers is not
   returned values:
+
   present it will search in all subcontainers. If max_sub_containers = 0 - it will search only in this container.
NOTO_GOOD 1 // good(blue)
+
- added FORCHARLAYER layer - loop through all objects in specified layer
NOTO_GUILD_SAME  2 // same guild
+
- added FORCHARMEMORYTYPE flags - loop through all memory objects with this flags
NOTO_NEUTRAL 3 // Neutral
 
NOTO_CRIMINAL 4 // criminal
 
NOTO_GUILD_WAR 5 // Waring guilds
 
NOTO_EVIL 6 // evil(red)
 
   if no args specified returns flags for SRC as a viewer, NOTOGETFLAG 0,1 will return flags for SRC as a viewer with  
 
  Allow_Incognito = true
 
  NOTE: for red guildmates it will return NOTO_EVIL, not NOTO_GUILD_SAME
 
  
18-04-2004, Radiant
+
25-05-2004. Balkon
- Some additions to AOS tooltips
+
- fixed bug when after parsing quoted lines when setting VARs, TAGs and LOCALs didn't create text variables
  
19-04-2004, Kell
+
27-05-2004, Socket
- A few changes to AOS tooltips for cross-platform compatibility (itoa).
+
- Fixed guild MEMBER.X.KEY for read/write. Now it should be working well. Will return error if you try
 +
  to access non-existant member (so it should be better to use MEMBER.COUNT to check bounds).
  
19-04-2004, Radiant
+
---- 0.55 R4.0.1 --------------------------------------------------------------
- Fixed status updates not sending with EF_No_Pause_Packet flag set
+
---- 07/06/2004
- Made @userStats fire on every status update that is being sent, if ARGN3 == 1 then the user has just opened the status window
+
---- * unofficial release [unallowed]
- More tooltips stuff, type specific
 
- Added AOS/LBR Popup Menu's, these can be activated by setting flag 08 in FeaturesLogin (currently only for characters).
 
  
19-04-2004, Balkon
+
30-05-2004, Kell
- RANGE bug fixed
+
- Little fixes to allow compile under Linux (use strcmpi() for caseless string
- updating last regen time for dead chars so that they will not get ticks every tenth of second any more
+
  comparison, and add casts to (LPCTSTR) on CGStrings).
 +
- Changed version number. I suggest using R4.x.y where xx is increased when
 +
  something major is done and yy is for little changes. Set to R4.0.1.
 +
  (ps: some people never quite understood what RC* means. After the 20th it
 +
  stops being a release candidate, it's more like a candidate to a release
 +
  candidate. So after the "powers that be" have adopted and turned that
 +
  numbering scheme into a mockery, I suggest we change to something less
 +
  confusing.
  
20-04-2004, Balkon
+
31-05-2004, Furio
- some traffic optimization:
+
- Added FORCONT loop, format is FORCONT uid_of_container max_sub_containers. It
   short stats change packets now used instead of full status packet when changing only hits/mana/stamina or it's max. values
+
  will loop on every item present in the container. If max_sub_containers is not
   HITSUPDATERATE in sphere.ini controls how often (in seconds) my changed hits will be sent to others who can see me,
+
   present it will search in all subcontainers. If max_sub_containers = 0 - it
   default value is 1, incraise to reduce the traffic usage, 0 value disables sending such updates (like it was on 55i)
+
   will search only in this container. (Thx to Balkon for the base code for
- MAXHITS etc. fixed. .MAXHITS 100 will now set MAXHITS to 100, this will include MODSTR so that if you had MODSTR 10 before
+
   container loops)
  setting MAXHITS than when you change MODSTR back to 0 MAXHITS will be 90.
+
 
- maxhits displayed for others changed from 25 to 50 for smoother hits line changing on the statusbar
+
07-06-2004, Furio
 +
- Made a blank REVISIONS.TXT because it was getting pretty big.
 +
- Added XOR (^) operator to expressions.
  
21-04-2004, Radiant
+
---- 0.55 R4.0.2 --------------------------------------------------------------
- Added MESSAGEUA, syntax equal to SAYUA and SYSMESSAGEUA
+
---- 22/07/2004
- Fixed lack of argument checking in SAYUA that sometimes causes an exception
+
---- * unofficial release [unallowed]
- Added support for the "Virtue button" (at the top of the paperdoll on newer clients), fires the @UserVirtue trigger.
 
- Added support for the new spellbook packets (old ones don't work with AOS), if EF_AgeOfShadows is not set the old packets will
 
  be used (this is for Magery, there is no Necromancy or Paladin stuff (yet)).
 
  
22-04-2004, Radiant
+
12-06-2004, Furio
- Re-added the "The spell fizzles" message on spell failure
+
- Added two new INI value USECRYPT and USENOCRYPT. The first if 0 don't allow at
 +
  encrypted client to login otherwise allow them to log (default is 1). The
 +
  second if 0 don't allow at unencrypted client to login otherwise
 +
  if 1 -> allow and suppose that the clientversion is >= 2.0.0
 +
  if 2 -> n/a
 +
  if 3 -> allow and suppose that the clientversion is >= 3.0.0
 +
- Added the most requested security-by-obscurity feature DISGUISEVERSION in
 +
  sphere.ini. If set change the version outputted to clients, ircserver,
 +
  webserver, listserver, telnetserver to its value otherwise the default build
 +
  value is used. (Mind that the version in savefile and in console startup is
 +
  the default build version)
 +
- Fixed (i hope) bug with Mozilla/Firefox browser with the status page
 +
- Fixed a buffer overrun bug that could be exploited to crash or run arbitrary
 +
  code, in the log system.
  
22-04-2004, Balkon
+
20-06-2004, kuch
- setting values in quotas for TAGs, VARs and LOCALs now will create text tags, i.e.
+
- Added ClearTags function (removes all the tags from the char/item/account);
  TAG.TEST_1 2+2
+
   Revital did most of the work, but I get the credit.
   will create numrecal tag TEST_1 with value 04, but
 
  TAG.TEST_2 "2+2"
 
  will create text tag with text '2+2'.
 
  Text tags and vars are saved quoted also.
 
- fixed REGION.TAG0.SOMETHING caused 'Undefined symbol "" error' when tag SOMETHING is not set
 
  
23-04-2004, Radiant
+
28-06-2004, Furio
- Found out that new spellbook packets are broken, still not fixed
+
- Fixed multiple gump exploits. In order to do this now memory 08000 is used as
- Added support for necro book spells, now reads the spelldefs for these (101 - 116), will add hardcoded behaviour later
+
   internal memory (is called MEMORY_GUMPRECORD).
- Added @UserExWalkLimit trigger, fired if a user exceeds the Walk limit (is either lagging alot or speedhacking)
+
- Fixed and refined things for disguise version feature.
  RETURN 1 allows the user to walk, no action or RETURN 0 disallows the user to walk
 
   (note: this is pretty expensive because it's fired each time a step is taken while the user's walkbuffer is at 0, so be careful)
 
  
24-04-2004, Radiant
+
02-07-04, kuch
- Removed message from WEBLINK command
+
- Added MODMAXWEIGHT: allows you to increase/decrease max carrying capacity of a
- Fixed .admin showing japanese text/crashing client with long character names (names are truncated to 30 chars)
+
  char.
- SERV.NEWDUPE and DUPE now sets NEW (and ACT? coded but not tested) for items only, duping chars doesn't work like it should yet
+
- Added MODAR: allows you to increase/decrease the overall AR of a char
- DCLICK/USE on characters now takes an argument (uid), makes the character DCLICK a certain item/char
+
  NOTE: there are no oStat equivalents (ie oModAr or oModMaxWeight) for the
- CALL function is no longer case-sensitive
+
  above.
- Added arguments to dialogs, in this form: "DIALOG d_dlg 0 blabla", both <args> and <argv[x]> can be used. <argn> is the page number
+
- Also added the following to avoid possible confusion:
   (second argument)
+
  * MAXWEIGHT - same as WEIGHTMAX
 +
  * AR - same as AC
 +
  * MODAC - same as MODAR
 +
  * MODWEIGHTMAX - same as MODMAXWEIGHT
 +
 
 +
03-07-04, kuch
 +
- Added 135 more strings (mostly from skills) to sphere_msg.scp
 +
- Added new .ini option: WOOLGROWTHTIME: how long in minutes it takes for wool
 +
  on sheared sheep to regrow.
 +
- Added new .ini option: SKILLPRACTICEMAX: how high can you train a skill on
 +
   dummy/archery_target.
  
25-04-2004, Radiant
+
04-07-04, kuch
- Added COMMANDLOG option in sphere.ini, only logs commands issued by this plevel and higher. (default = 0, log all)
+
- Added 93 more strings: NPC speech and skill msgs; there are now 329 string
 +
  messages in sphere_msgs.scp.
 +
- Added TAGCOUNT function (works on regions/items/chars/accounts) - returns the
 +
  number of tags on that obj
 +
- Fixed CLEARTAGS (now also works on regions)
  
29-04-2004, Balkon
+
06-07-04, kuch
- after some beta testing few fixes in equip and EF_WalkCheck
+
- Fixed some weird bug in jobmage.scp and jobnoble.scp
- added EVENTSPET to sphere.ini - events far all NPCs
+
- Added a lot more strings to sphere_msgs.scp; If you find any bugs with them,
- added EF_DiagonalLOSCheck (04000) - to see the object in diagonal direction we must be able to see the point at least
+
   kuchervano@hotmail.com me immediately!
  in one of ortogonal directions, this mean you can't see objects only through the "corner", this fixes teleport through
 
  fence NW corner and some other bugs but still allows, for example, closing doors which are in diagonal direction
 
  to you when opened :) Setting this flag may incraise CPU usage.
 
- alternative name in TAG.NAME.ALT is now used everywhere if tag is set - in character status, corpse names, linked
 
   memories etc. It overrides incognito name also. The real name is only accessable via NAME property.
 
  TAG.NAME.PREFIX now overrides fame prefixes (shown on click). TAG.NAME.PREFIX and TAG.NAME.SUFFIX are now can be combined
 
  with TAG.NAME.ALT
 
  
01-05-2004, Balkon
+
07-07-04, Furio
- fixed bug when closing dialog with targeting cursor up canceled targeting
+
- Fixed DISTANCEWHISPER not working correctly.
- removed \r check from character profile packet - this allows to have a multiline profile and fixing wrong "Cheater" warnings
 
- fixed bug when players was able to buy any items from vendor even outside the stock (equipped on him. in his backpack etc.)
 
- vendor now will simply transfer items to character's backpack if they are stored in his "extras" box or if he is a player's
 
  vendor (they was duped, you bought the copy and the old one deleted before). Shrinked pets will not be unshrinked when sold
 
  from player's vendor (or from extras box).
 
  
02-05-2004, Balkon
+
07-07-04, kuch
- EF_CanSeeLos_New is not longer used, all fixes affected by this EF are now included to the code by default.
+
- Added DEFFOOD value to sphere_defs.scp - this is a template of items you want
 +
  to get by casting the create food spell; Yes it does not give you a great deal
 +
  of control over what you get (ie skillbased for example), but its better than
 +
  nothing
 +
 
 +
09-07-04, Furio
 +
- Fixed bug with ^ operator.
  
03-05-2004, Socket (UNSP team)
+
16-07-04, Vjaka
- Started work on fullfeatured guild/town system. Added MEMBER property to guildstones. You shall use it this way:
+
- Fixed bug with armor/weapon when hits were above to hitsmax.
  <guildstone>.member.X.<property> These properties are available for read/write: ACCOUNTGOLD, LOYALTO, PRIV,
+
- Cosmetic fix to report Client out overflow error line once per dialog instead
  SHOWABBREV, GUILDTITLE. Functions available: IsCandidate (returns 1 if member is a recruit), IsMember (1 if member),
+
   of tons of them.
  IsMaster (returns 1 if guildmaster). Also, MEMBER.X. construction points directly to character, so you
+
- Added trigger function f_onchar_delete triggered before client is going to
   could use something like MEMBER.X.NAME in your scripts. MEMBER.COUNT returns total number of guildmembers.
+
  delete a character. SRC is char, return 1 denyes deletion.
- ACCOUNTGOLD guild member's property is now saving to worldsave too.
+
- Added trigger function f_onaccount_login triggered after client entered the
- Added new GOLDRESERVE property to guildstone.
+
  password, ARGS is account name, return 1 disconnects.
- Added new <CONT>.COUNT function which returns a total amount of items in the container.
+
- Added spell flag SPELLFLAG_PLAYERONLY 020000 which denies spell being cast by
- Added new SERV.CLIENT.x reference. SERV.CLIENT.0. is a newest client and so on, for example <serv.client.0.name>
+
   npc ai (no more npcs casting shrink if not wished to).
  will return the name of last logged in client. Reference is READ-ONLY for safety. In this case you could save
 
   client uid somewhere and work with his using UID.<uid>. reference.
 
  
07-05-2004, Socket
+
17-07-04, Vjaka
- <CONT>.COUNT now returns an amount of items only in selected container, without counting items in containers inside it.
+
- Added @NPCLostTeleport to trigger before NPC is going to be teleported back to
- Added <CONT>.FCOUNT function, which returns a TOTAL amount of items inside container.
+
  its spawn (by LostNPCTeleport sphere.ini setting), ARGN1 is the distance from
 +
  the spawn.
 +
- Added INI switch PAYFROMPACKONLY (default: 0). If set to 1, then buying stuff
 +
  from vendors will search pack only for the gold.
 +
- Added @Hunger to trigger before char is going to loss a food level. ARGN1 is
 +
  the food level that will be set, return 1 cancels.
  
11-05-2004, Balkon
+
19-07-04, Vjaka
- some fixes, @EquipTest now fired before all internal checks, before item unstacked from the pile, before item in same layer
+
- Removed IRC server from default build settings. It is buggy, has holes inside
   unequipped (this mean if you have return 1 there char will not unequip previews item)
+
  and probably should not used by anyone.
 +
- Reverted memory information profiling in Win32 version (stability testings).
 +
- Fixed NoMessages and Quick login mode (ARNG1/2 in @Login) now skips sphere
 +
  version information and Welcome back.. prompt.
 +
- Fixed some exceptions for ticking events. Some division by zero removed, and
 +
  the exceptions are made less critical (actualy the way they should be - quite
 +
  local). It means that the server should be more stable now. Also they gives
 +
  usualy more information on when the error occured.
 +
- Added @StepStealth triggering on each step made by person in stealth. ARGN1
 +
   (in and out) - whatever to reveal him or not.
 +
- Added isnumber(something) - returns 1 if it is a number (only number of radix
 +
  10 suits). Useful in argtxt validation.
  
16-05-2004, Balkon
+
19-07-04, Furio
- fixed @Dropon_char called when dropping item to any container on the char. Now it called only when you really drop the item
+
- Fixed compatibility issues with Linux for isnumber(something).
   on the character - directly on his head or on his backpack if you don't own him. ARGO now always points to character.
+
- Added TAG.DIALOG_NAME to MEMORY_GUMPRECORD. The tag contains the name of the
 +
  dialog opened. Special case are the .admin gump (clientlist), the hair dye
 +
   gump (hairdye), a guild hardcoded gump (guild) and if no name is found
 +
  (undef). Hope that this will help in checking what gumps are opened on client
 +
  screen.
 +
- Added SDIALOG command. It works like DIALOG with the difference that it'll
 +
  open a dialog only if it's not present on the client screen.
 +
- Fixed a thing in DISGUISEVERSION. Now .[x]show version shows the disguised
 +
  version.
  
19-05-2004, Balkon
+
20-07-04, Vjaka
- fixed @color,font in MESSAGE and SYSMESSAGE, now it accept hexadecimal values, added 3-rd argument there - unicode flag,
+
- Fixed compatibility issues with Unix for exceptions
  new format is SYSMESSAGE @color,font,unicode text, added @color,font,unicode to SAY and broadcast either. Of course SAYUA,
+
- Added MODAR (MODAC) working on items as well. Now it is for both items and
  MESSAGEUA and SYSMESSAGEUA still can be used for this, but @color,font,unicode is accepted in default messages definition
+
   chars.
   (sphere_msgs.scp), so now we can have default messages in unicode :)
+
- Fixed startup sequence - now tryes to bind a socket before loading the world
- added OF_SkipUndefMsgs (0400) - if flag is set sphere don't send error strings for undefined default messages,
+
   saving time on running multiply instances.
   dont print errors on resync - just ignores it, so now we can disable some default messages if needed.
+
- Fixed Windows version buffered output flushing. Also removed log file
- SPEED wepaons property now used in fight delay calcilation if set (and not 0), the formula is
+
   buffering.
   DELAY = 15000 / ( ( DEX +100 ) * SPEED )
 
  
20-05-2004, Balkon
+
21-07-04, Kell
- some optimization in hit messages (get only messages which really will be sent to client)
+
- Fixed some compilation issues under Linux (just missing some (DWORD) casts).
- added SPEEDSCALEFACTOR to INI (defaul value is 15000), used in weapon delay calcultions, now formula looks like
 
  DELAY = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )
 
- ARGN1 in @HitTry now is the delay (in tenths of second) left before the hit, can be changed
 
  
21-05-2004. Balkon
+
22-07-04, Furio
- added FORCLIENTS and FORPLAYERS loops, difference is that FORPLAYERS will loop through disconnected players which are
+
- If PAYFROMPACKONLY (default: 0). is enabled, in the char status only gold from
  still stay in the world (client linger) either.
+
   pack is displayed.
- if no args specifiead for FORITEMS, FORCHARS, FOROBJS, FORCLIENTS, and FORPLAYERS loops value 18 is used by default
+
- Fixed minor things on default messages.
   (maximum view distance)
 
- added FORCONTID and FORCONTTYPE loops, format is FORCONTID i_dagger max_sub_containers. If max_sub_containers is not
 
  present it will search in all subcontainers. If max_sub_containers = 0 - it will search only in this container.
 
- added FORCHARLAYER layer - loop through all objects in specified layer
 
- added FORCHARMEMORYTYPE flags - loop through all memory objects with this flags
 
  
25-05-2004. Balkon
+
22-07-04, Vjaka
- fixed bug when after parsing quoted lines when setting VARs, TAGs and LOCALs didn't create text variables
+
- Added server state functions f_onserver_save, f_onserver_save_ok and
 
+
  f_onserver_save_fail. Arguments are ARGN1 - force save? and ARGN2 - save stage
27-05-2004, Socket
+
  (for background saves). For f_onserver_save the ARGN1 is writeable and return
- Fixed guild MEMBER.X.KEY for read/write. Now it should be working well. Will return error if you try
+
  1 cancels the save.
   to access non-existant member (so it should be better to use MEMBER.COUNT to check bounds).
+
  Please note, that if background saves are enabled, these functions will be run
 +
  tons of times during the worldsave process (at least 6144 [sectors amount]
 +
   times).
 +
- Added f_onserver_start function triggered server start.
 +
- Created knownbugs.txt file to be distributed with sphere revisions.
  
---- 0.55 R4.0.1 --------------------------------------------------------------
+
---- 0.55 R4.0.3 --------------------------------------------------------------
---- 07/06/2004
+
---- * not released
 
---- * unofficial release [unallowed]
 
---- * unofficial release [unallowed]
  
30-05-2004, Kell
+
23-07-04, Vjaka
- Little fixes to allow compile under Linux (use strcmpi() for caseless string
+
- Added some more exceptions debugging. It is going deeper and deeper to engine.
  comparison, and add casts to (LPCTSTR) on CGStrings).
+
- Added MAXITEMCOMPLEXITY (default: 25) - the amount of items in one tile so
- Changed version number. I suggest using R4.x.y where xx is increased when
+
   start showing "too many items here".
   something major is done and yy is for little changes. Set to R4.0.1.
+
- Added MAXSECTORCOMPLEXITY (default: 1024) - the amount of items in one sector
  (ps: some people never quite understood what RC* means. After the 20th it
+
  to start showing "x items too complex".
  stops being a release candidate, it's more like a candidate to a release
 
  candidate. So after the "powers that be" have adopted and turned that
 
  numbering scheme into a mockery, I suggest we change to something less
 
  confusing.
 
  
31-05-2004, Furio
+
24-07-04, Vjaka
- Added FORCONT loop, format is FORCONT uid_of_container max_sub_containers. It
+
- Removed instant logout in guarded areas. use REGION_FLAG_INSTA_LOGOUT instead
   will loop on every item present in the container. If max_sub_containers is not
+
   if you wish instant logout.
   present it will search in all subcontainers. If max_sub_containers = 0 - it
+
- Added console commands history of 5 latest commands in Windows version. You
   will search only in this container. (Thx to Balkon for the base code for
+
   can scroll them using UP key.
  container loops)
+
- Added one minute delay after take of an item from trade window before
 +
   accepting the deal.
  
07-06-2004, Furio
+
25-07-04, Vjaka
- Made a blank REVISIONS.TXT because it was getting pretty big.
+
- Added smsg/smsgu shortcuts for sysmessage/sysmessageua (note, that msg already
- Added XOR (^) operator to expressions.
+
  existed as a shortcut to message)
 
+
- Added SKILLCLASS properties - if written like SRC.SKILLCLASS.NAME, returns
---- 0.55 R4.0.2 --------------------------------------------------------------
+
  <SERV.SKILLCLASS.<SRC.SKILLCLASS>.NAME>
---- 22/07/2004
+
- Started doing ARGVCOUNT and realised that <ARGV> is the amount of ARGV[x]  
---- * unofficial release [unallowed]
+
  variables. Noting that as not found in revisions.
 
+
- If player speech longer 5 chars and has 75% capital letters inside, it will
12-06-2004, Furio
+
  come out in lower case. Works for english chars only. And as for unicode - if
- Added two new INI value USECRYPT and USENOCRYPT. The first if 0 don't allow at
+
   EF_UNICODE is set.
   encrypted client to login otherwise allow them to log (default is 1). The
+
- Added GUILD properties: <SRC.GUILD> returns 0 or guildstone UID,
  second if 0 don't allow at unencrypted client to login otherwise
+
   <SRC.GUILD.NAME> returns guild name
   if 1 -> allow and suppose that the clientversion is >= 2.0.0
+
- Removed all old PLOT bit stuff. Use EVENTS instead
  if 2 -> n/a
+
- Changed CLEARTAGS - it takes optional argument, clearing tags only if matching
  if 3 -> allow and suppose that the clientversion is >= 3.0.0
+
   the string (does not support wildcards)
- Added the most requested security-by-obscurity feature DISGUISEVERSION in
+
- Added HITS and MAXHITS to items (same as MORE1L and MORE1H). Note: this is
   sphere.ini. If set change the version outputted to clients, ircserver,
+
   valid for armor and weapon object.
  webserver, listserver, telnetserver to its value otherwise the default build
+
- Telnet has a username. So, Administrator or RemoteAdmin login left for local
  value is used. (Mind that the version in savefile and in console startup is  
+
  logins (127.0.0.1) if LOCALIPADMIN enabled
   the default build version)
+
 
- Fixed (i hope) bug with Mozilla/Firefox browser with the status page
+
25-07-04, Furio
- Fixed a buffer overrun bug that could be exploited to crash or run arbitrary
+
- Hopefully tracked down and fixed the arrow bug, and similar problem derived
   code, in the log system.
+
  from NEW (big thx to Handred that finded the point where start looking at for
 +
   the fix).
  
20-06-2004, kuch
+
26-07-04, Vjaka
- Added ClearTags function (removes all the tags from the char/item/account);
+
- Fixed broken TEVENTS read method on chars.
   Revital did most of the work, but I get the credit.
+
- Added QVAL(test1,test2,res1,res2,res3) in addition to current <QVAL?:>
 +
  variant. It is useful if dealing with numbers without many IF-s. Sample
 +
  <eval qval(<VAR.X>,<VAR.Y>,<VAR.ONE>,<VAR.TWO>,<VAR.THREE>)> will return
 +
  <VAR.ONE> if <VAR.X> < <VAR.Y>, <VAR.TWO> if they are equal, and <VAR.THREE>
 +
  if the it is greater. If some of the arguments are omited like qval(1,2,,3) it
 +
   will default to zero.
 +
- Changed REGISTERSERVER to default an empty string. If you wish to register to
 +
  list.sphereserver.net, specify REGISTERSERVER=1 or it's host.
 +
- Added TELEPORTEFFECTSTAFF, TELEPORTEFFECTPLAYERS, the teleport effect for
 +
  staff (use hex id of object or 0 here) (default: 03709 for staff, 0372a for
 +
  players).
  
28-06-2004, Furio
+
27-07-04, Furio
- Fixed multiple gump exploits. In order to do this now memory 08000 is used as
+
- Fixed an issue with MOVE/XMOVE command.
  internal memory (is called MEMORY_GUMPRECORD).
 
- Fixed and refined things for disguise version feature.
 
  
02-07-04, kuch
+
27-07-04, Vjaka
- Added MODMAXWEIGHT: allows you to increase/decrease max carrying capacity of a
+
- Added command line switch -Gpath/to/saves/ to defrag sphere server UIDs. It
   char.
+
   is done because sphere UID management routines has flows which makes not to
- Added MODAR: allows you to increase/decrease the overall AR of a char
+
   reuse empty uids, but generate new, higher. Howewer, space for lower unused
   NOTE: there are no oStat equivalents (ie oModAr or oModMaxWeight) for the
+
   objects is still reserved. It saved 400Mb me (from 600Mb on start to 180Mb)
   above.
+
   working for 2.5 hours, but caused all mounts to disappear, maybe some more
- Also added the following to avoid possible confusion:
+
   flaws. So, use on your own risk. In future versions for 4.0.x Furio is going
   * MAXWEIGHT - same as WEIGHTMAX
+
   to improve the uid subsystem and this will not be needed anymore.
   * AR - same as AC
 
  * MODAC - same as MODAR
 
  * MODWEIGHTMAX - same as MODMAXWEIGHT
 
 
 
03-07-04, kuch
 
- Added 135 more strings (mostly from skills) to sphere_msg.scp
 
- Added new .ini option: WOOLGROWTHTIME: how long in minutes it takes for wool
 
  on sheared sheep to regrow.
 
- Added new .ini option: SKILLPRACTICEMAX: how high can you train a skill on
 
   dummy/archery_target.
 
  
04-07-04, kuch
+
28-07-04, Vjaka
- Added 93 more strings: NPC speech and skill msgs; there are now 329 string
+
- Changed FILELINES to close the file and READFILE if line number is too big.
  messages in sphere_msgs.scp.
+
- Added DISMOUNT verb on char to dismount him, MOUNT to get UID of ridden one.
- Added TAGCOUNT function (works on regions/items/chars/accounts) - returns the
+
- Fixed an issue with SERV.CLIENT.x. causing exceptions.
  number of tags on that obj
+
- Removed 0.55R from version. It is a complicated notation. It's 4.0.x now.
- Fixed CLEARTAGS (now also works on regions)
+
- Fixed MODAR not updating armor class if changed on char or equipped item.
  
06-07-04, kuch
+
29-07-04, Vjaka
- Fixed some weird bug in jobmage.scp and jobnoble.scp
+
- Limited allshow to MAXCHARCOMPLEXITY*4.
- Added a lot more strings to sphere_msgs.scp; If you find any bugs with them,
+
- Fixed issue when telnet connection could not do resync load after pausing.
   kuchervano@hotmail.com me immediately!
+
- Account now has TAG.LastLogged with his previous login date. It is shown upon
 +
  login if quick/no-messages login not selected (by @Login trigger).
 +
- Fixed msg_criminal to be shown only if person is not a criminal yet (lags).
 +
- Added read-only COMP reference for multis. Returns amount of components when
 +
  called with no params, and has attributes: ID,D,DX,DY,DZ (D mean delta).
 +
- NPC wishes gold and vendable items (not limited to desires listing).
 +
- Added ARGN2 to @NPCLookAtItem (writeable) - the percent level the the NPC
 +
  wish this item. If set high, he can loot the item.
 +
- Added GMPAGES and GMPAGE.* verb to access gm pages from scripts. You can
 +
  give arguments like you do to .page command, and use 2 specials - DELETE to
 +
  delete even not-taken one, and HANDLE [uid] to mark gmpage for character.
 +
   Also GMPAGE.x.HANDLED field returns UID of person taken the gmpage.
  
07-07-04, Furio
+
30-07-2004, Kell
- Fixed DISTANCEWHISPER not working correctly.
+
- Added ACCOUNT.NAME
  
07-07-04, kuch
+
30-07-04, Vjaka
- Added DEFFOOD value to sphere_defs.scp - this is a template of items you want
+
- Speed optimisation working with strings & possible some stack overflow out.
  to get by casting the create food spell; Yes it does not give you a great deal
+
 
  of control over what you get (ie skillbased for example), but its better than
+
31-07-04, Vjaka
  nothing
+
- Fixed several spells (like mark) casting in not allowed region when running.
 
+
- Fixed KILLS removal using multi-uo client.
09-07-04, Furio
+
- Changed @Logoff to take 2 writeable arguments: ARGN1 - linger time and ARGN2
- Fixed bug with ^ operator.
+
  instant logoff flag. Return 1 in logoff is now obsolete.
  
16-07-04, Vjaka
+
01-08-04, Vjaka
- Fixed bug with armor/weapon when hits were above to hitsmax.
+
- Added triggers @MurderDecay (ARGN1 - murder count that will be set, ARGN2 -
- Cosmetic fix to report Client out overflow error line once per dialog instead
+
  decay time to set for the next kill) and @MurderMark (ARGN1 - murder count
   of tons of them.
+
   that will be set, ARGN2 - set criminal flag?). The names are descriptive.
- Added trigger function f_onchar_delete triggered before client is going to
+
- NPC is now trying to move objects blocking his walkpath. He also investigate
   delete a character. SRC is char, return 1 denyes deletion.
+
   the possibility to loot this item in several cases. Triggers look@item not
- Added trigger function f_onaccount_login triggered after client entered the
+
  called since if there are tons of items in the spot, it will be very laggy.
  password, ARGS is account name, return 1 disconnects.
+
- Added @Rename trigger (ARGS - new name, ARGO - target char) when renaming a
- Added spell flag SPELLFLAG_PLAYERONLY 020000 which denies spell being cast by
+
  pet. Return 1 cancels. Also triggered when creating character.
   npc ai (no more npcs casting shrink if not wished to).
+
- Items with ATTR_STATIC are now saved to spherestatics.scp and NOT SAVED by
 +
   standart world save. So, you need to call .serv.savestatics to save them.
 +
- NPC is now trying to cast good spells as on self and his combat friends also.
  
17-07-04, Vjaka
+
02-08-04, Vjaka
- Added @NPCLostTeleport to trigger before NPC is going to be teleported back to
+
- Calling guards are now more speed optimised.
  its spawn (by LostNPCTeleport sphere.ini setting), ARGN1 is the distance from
+
- Defrag mode now supports spherestatics.scp and is much faster.
  the spawn.
+
- Changed FACE and SALUTE to take an optional argument - target object.
- Added INI switch PAYFROMPACKONLY (default: 0). If set to 1, then buying stuff
+
- Characters on the way do not disallow GM to place a house anymore.
  from vendors will search pack only for the gold.
+
- Items gets stacked one on the other witheen some height if possible.
- Added @Hunger to trigger before char is going to loss a food level. ARGN1 is
 
  the food level that will be set, return 1 cancels.
 
  
19-07-04, Vjaka
+
03-08-04, Vjaka
- Removed IRC server from default build settings. It is buggy, has holes inside
+
- Exceptions catching fixed, some stack information added.
  and probably should not used by anyone.
+
- Added CLEARVARS being same as CLEARTAGS.
- Reverted memory information profiling in Win32 version (stability testings).
+
- Fixed CLEARTAGS to work normal without arguments.
- Fixed NoMessages and Quick login mode (ARNG1/2 in @Login) now skips sphere
+
- Now VENDORMARKUP is taken from region tags if not found on a vendor.
  version information and Welcome back.. prompt.
 
- Fixed some exceptions for ticking events. Some division by zero removed, and
 
  the exceptions are made less critical (actualy the way they should be - quite
 
  local). It means that the server should be more stable now. Also they gives
 
  usualy more information on when the error occured.
 
- Added @StepStealth triggering on each step made by person in stealth. ARGN1
 
  (in and out) - whatever to reveal him or not.
 
- Added isnumber(something) - returns 1 if it is a number (only number of radix
 
  10 suits). Useful in argtxt validation.
 
  
19-07-04, Furio
+
04-08-04, Vjaka
- Fixed compatibility issues with Linux for isnumber(something).
+
- Default messages working optimised for speed. Removed OF_SkipUndefMsgs.
- Added TAG.DIALOG_NAME to MEMORY_GUMPRECORD. The tag contains the name of the  
+
- Removed OF_Skill_DiffFirst since the actdiff is calculated in any case.
  dialog opened. Special case are the .admin gump (clientlist), the hair dye
+
- Started implementing EF_Pathfinding.
  gump (hairdye), a guild hardcoded gump (guild) and if no name is found
 
  (undef). Hope that this will help in checking what gumps are opened on client
 
  screen.
 
- Added SDIALOG command. It works like DIALOG with the difference that it'll
 
  open a dialog only if it's not present on the client screen.
 
- Fixed a thing in DISGUISEVERSION. Now .[x]show version shows the disguised
 
  version.
 
  
20-07-04, Vjaka
+
05-08-04, Vjaka
- Fixed compatibility issues with Unix for exceptions
+
- Fixed SERV.ITEMDEF reference to object not being currently in the world.
- Added MODAR (MODAC) working on items as well. Now it is for both items and
 
  chars.
 
- Fixed startup sequence - now tryes to bind a socket before loading the world
 
  saving time on running multiply instances.
 
- Fixed Windows version buffered output flushing. Also removed log file
 
  buffering.
 
  
21-07-04, Kell
+
06-08-04, Vjaka
- Fixed some compilation issues under Linux (just missing some (DWORD) casts).
+
- Added SERV.resync to resync scripts without the resync delay.
 +
- Now adding a new account automaticaly fills (FIRST/LAST)CONNECTDATE.
 +
- Added @SkillMenu to trigger BEFORE calling any hardcoded skillmenu. So, you
 +
  can return 1 to cancel the action. ARGS - the name of the menu, is one of:
 +
  sm_polymorph, sm_carpentry, sm_bowcraft, sm_tailor_leather, sm_tailor_cloth,
 +
  sm_bolts, sm_carpentry, sm_cartography, sm_tinker, sm_summon, sm_blacksmith,
 +
  sm_alchemy, sm_cartography, sm_inscription.
  
22-07-04, Furio
+
07-08-04, kuch
- If PAYFROMPACKONLY (default: 0). is enabled, in the char status only gold from
+
- Finished the conversions of default messages into the new format: this should
   pack is displayed.
+
  greately improve the execution speed. Also updated sphere_msg.scp to fit new
- Fixed minor things on default messages.
+
   format. Read the comments inside the file to get more more infomation.
  
22-07-04, Vjaka
+
09-08-04, Vjaka
- Added server state functions f_onserver_save, f_onserver_save_ok and
+
- Added DISGUISENAME to alter the name of the server.
  f_onserver_save_fail. Arguments are ARGN1 - force save? and ARGN2 - save stage
+
- Added REPLYPEERCONNECTS (default 1) to allow masterserver and peer connects.
  (for background saves). For f_onserver_save the ARGN1 is writeable and return
+
- Fixed duplicating hungry messages search.
  1 cancels the save.
+
 
  Please note, that if background saves are enabled, these functions will be run
+
10-08-04, Vjaka
   tons of times during the worldsave process (at least 6144 [sectors amount]
+
- Fixed NPC moving some items not actualy blocking their way.
   times).
+
 
- Added f_onserver_start function triggered server start.
+
11-08-04, Vjaka
- Created knownbugs.txt file to be distributed with sphere revisions.
+
- Added console commands auto-completion on using TAB key. File sphere.dic is
 +
   read for the list of definitions. Note: this file SHOULD BE sorted (at least
 +
   witheen each separate first letter) to multi-matches to work correctly.
  
---- 0.55 R4.0.3 --------------------------------------------------------------
+
12-08-04, Vjaka
---- * not released
+
- Added @ItemCreate triggered when an item (ARGO) is created by a client.
---- * unofficial release [unallowed]
+
- Added auto-completion to telnet connection. The difference from winconsole is
 +
  that it fills the word up to end ONLY if there is exact 1 variant, or if
 +
  other variants contains this one in self.
  
23-07-04, Vjaka
+
13-08-04, Vjaka
- Added some more exceptions debugging. It is going deeper and deeper to engine.
+
- Optimised sysmessages - now nothing is sent to client if the message is empty.
- Added MAXITEMCOMPLEXITY (default: 25) - the amount of items in one tile so
+
  This is useful to clear default messages. If wish to scroll line, use space.
  start showing "too many items here".
+
- Fixed exploit to crash clients by renaming pet with some special color. Thanks
- Added MAXSECTORCOMPLEXITY (default: 1024) - the amount of items in one sector
+
   TheLegbra reporting that.
   to start showing "x items too complex".
 
  
24-07-04, Vjaka
+
15-08-04, Vjaka
- Removed instant logout in guarded areas. use REGION_FLAG_INSTA_LOGOUT instead
+
- Added EF_Script_Profiler (08000) to add information on functions usage for
   if you wish instant logout.
+
   weak places (functions or triggers) to be optimised.
- Added console commands history of 5 latest commands in Windows version. You
+
- Added EF_Size_Optimise (010000) to save WORLDITEM/CHAR/SCRIPT as W*. This is
   can scroll them using UP key.
+
   not much for now, saving 7+ bytes per object. Loading supports any method.
- Added one minute delay after take of an item from trade window before
 
  accepting the deal.
 
  
25-07-04, Vjaka
+
03-09-04, Vjaka
- Added smsg/smsgu shortcuts for sysmessage/sysmessageua (note, that msg already
+
- Added OverSkillMultiply (default 2). When player skills/stats goes this times
  existed as a shortcut to message)
+
   more than skillclass allowed, drop them to skillclass level. Setting this to
- Added SKILLCLASS properties - if written like SRC.SKILLCLASS.NAME, returns
+
   0 disables the action.
  <SERV.SKILLCLASS.<SRC.SKILLCLASS>.NAME>
+
- Added ACCOUNTS BLOCKED/JAILED arguments. Works exactly like UNUSED, but just
- Started doing ARGVCOUNT and realised that <ARGV> is the amount of ARGV[x]
+
   applyes to the blocked/jailed accounts only.
   variables. Noting that as not found in revisions.
+
- Only chars in mapplane where the player is are ticked now (lag reduction).
- If player speech longer 5 chars and has 75% capital letters inside, it will
 
  come out in lower case. Works for english chars only. And as for unicode - if
 
   EF_UNICODE is set.
 
- Added GUILD properties: <SRC.GUILD> returns 0 or guildstone UID,
 
   <SRC.GUILD.NAME> returns guild name
 
- Removed all old PLOT bit stuff. Use EVENTS instead
 
- Changed CLEARTAGS - it takes optional argument, clearing tags only if matching
 
  the string (does not support wildcards)
 
- Added HITS and MAXHITS to items (same as MORE1L and MORE1H). Note: this is
 
  valid for armor and weapon object.
 
- Telnet has a username. So, Administrator or RemoteAdmin login left for local
 
  logins (127.0.0.1) if LOCALIPADMIN enabled
 
  
25-07-04, Furio
+
04-09-04, Vjaka
- Hopefully tracked down and fixed the arrow bug, and similar problem derived
+
- Added ## command to console to save both world and statics.
  from NEW (big thx to Handred that finded the point where start looking at for
+
- Added X# command to instant shutdown the server with world/statics save.
  the fix).
+
- Changed "commands uid=... (name) to ''" to show amount if above of 1.
 +
- Server startup crash fixed
  
26-07-04, Vjaka
+
08-09-04, Furio
- Fixed broken TEVENTS read method on chars.
+
- Fixed issues for the Linux build.
- Added QVAL(test1,test2,res1,res2,res3) in addition to current <QVAL?:>
+
- Disabled information abou "Key" on OnTriggerRun exception for compatibility
   variant. It is useful if dealing with numbers without many IF-s. Sample
+
   problem on the *Nix build. (temporary solution)
  <eval qval(<VAR.X>,<VAR.Y>,<VAR.ONE>,<VAR.TWO>,<VAR.THREE>)> will return
+
- Added .pid file (sphere.pid) on *Nix build, for those who want to write bash
  <VAR.ONE> if <VAR.X> < <VAR.Y>, <VAR.TWO> if they are equal, and <VAR.THREE>
+
   script for checking sphere process easily.
  if the it is greater. If some of the arguments are omited like qval(1,2,,3) it
 
  will default to zero.
 
- Changed REGISTERSERVER to default an empty string. If you wish to register to
 
  list.sphereserver.net, specify REGISTERSERVER=1 or it's host.
 
- Added TELEPORTEFFECTSTAFF, TELEPORTEFFECTPLAYERS, the teleport effect for
 
   staff (use hex id of object or 0 here) (default: 03709 for staff, 0372a for
 
  players).
 
  
27-07-04, Furio
+
08-09-04, Vjaka
- Fixed an issue with MOVE/XMOVE command.
+
- EF_Pathinding is working perfectly making NPC to select a best path. Howewer,
 +
  for maximal speed it is yet checking only static objects blocking his path.
 +
  More testings on the speed needed before making it to include dynamics checks.
 +
- Fixed Counselors losing their invis status after worldsave.
  
27-07-04, Vjaka
+
10-09-04, Vjaka
- Added command line switch -Gpath/to/saves/ to defrag sphere server UIDs. It
+
- Memory information is now got from system routines instead of internal one. It
   is done because sphere UID management routines has flows which makes not to
+
   will cause this info to appear in UNIX builds, howewer, it will be not be in
  reuse empty uids, but generate new, higher. Howewer, space for lower unused
+
   WINDOWS systems where PSAPI.DLL is not available (fe: Windows 95/98/NT4.0).
   objects is still reserved. It saved 400Mb me (from 600Mb on start to 180Mb)
+
   Also this makes ALLOCS useless, since there is no way to get it.
   working for 2.5 hours, but caused all mounts to disappear, maybe some more
+
- Added CLIENTS property for sectors and regions to get active clients count.
  flaws. So, use on your own risk. In future versions for 4.0.x Furio is going
 
  to improve the uid subsystem and this will not be needed anymore.
 
  
28-07-04, Vjaka
+
11-09-04, Vjaka
- Changed FILELINES to close the file and READFILE if line number is too big.
+
- Added EF_Clients_Thread (020000) to split clients handling to to other thread.
- Added DISMOUNT verb on char to dismount him, MOUNT to get UID of ridden one.
+
  This will work only in windows build and is not recommendable to change on fly.
- Fixed an issue with SERV.CLIENT.x. causing exceptions.
+
  This is VERY experimental yet, since sphere is very singlethreaded by design.
- Removed 0.55R from version. It is a complicated notation. It's 4.0.x now.
 
- Fixed MODAR not updating armor class if changed on char or equipped item.
 
  
29-07-04, Vjaka
+
13-09-04, Furio
- Limited allshow to MAXCHARCOMPLEXITY*4.
+
- Fixed memory information on Unix. Now it uses two different methods to get
- Fixed issue when telnet connection could not do resync load after pausing.
+
   memory information depending on *Nix system where sphere is running.
- Account now has TAG.LastLogged with his previous login date. It is shown upon
 
  login if quick/no-messages login not selected (by @Login trigger).
 
- Fixed msg_criminal to be shown only if person is not a criminal yet (lags).
 
- Added read-only COMP reference for multis. Returns amount of components when
 
   called with no params, and has attributes: ID,D,DX,DY,DZ (D mean delta).
 
- NPC wishes gold and vendable items (not limited to desires listing).
 
- Added ARGN2 to @NPCLookAtItem (writeable) - the percent level the the NPC
 
  wish this item. If set high, he can loot the item.
 
- Added GMPAGES and GMPAGE.* verb to access gm pages from scripts. You can
 
  give arguments like you do to .page command, and use 2 specials - DELETE to
 
  delete even not-taken one, and HANDLE [uid] to mark gmpage for character.
 
  Also GMPAGE.x.HANDLED field returns UID of person taken the gmpage.
 
  
30-07-2004, Kell
+
13-09-04, Vjaka
- Added ACCOUNT.NAME
+
- Fixed functions profiler to strip off arguments of a function.
 +
- Fixed console commands like ##, x# showing unknown keyword error in console.
 +
- Fixed murder count set always to 1 by @MurderMark.
  
30-07-04, Vjaka
+
14-09-04, Vjaka
- Speed optimisation working with strings & possible some stack overflow out.
+
- Fixed LOCALs in f_onserver_start/f_onchar_delete.
  
31-07-04, Vjaka
+
18-09-04, Vjaka
- Fixed several spells (like mark) casting in not allowed region when running.
+
- Code cleanups, removed some useless (not enabled keywords), same keywords grouped
- Fixed KILLS removal using multi-uo client.
+
  to one variant for usage for faster work lookups:
- Changed @Logoff to take 2 writeable arguments: ARGN1 - linger time and ARGN2
+
   1. *WEIGHT[MAX]->*[MAX]WEIGHT, BRAIN->NPC, KNOWLEDGE->SPEECH, COMMENT->TAG.COMMENT
   instant logoff flag. Return 1 in logoff is now obsolete.
+
  CLI*VER*->CLIENTVERSION, DEF->ARMOR, LISTEN->HEARALL, *PRICE->PRICE, VER->VERSION
 
+
   WEBPAGEDST->WEPAGEFILE (LoadKeys)
01-08-04, Vjaka
+
   2. CLIENTS->ALLCLIENTS, PARDON->FORGIVE, INVISIBLE->INVIS, INVULNERABLE->INVUL,
- Added triggers @MurderDecay (ARGN1 - murder count that will be set, ARGN2 -
+
   R->RUN, W->WALK, CLIENTS->ADMIN, MIDI/MUSIC->MIDILIST, [RE]SYNC->RESEND, ADDITEM->ADD
   decay time to set for the next kill) and @MurderMark (ARGN1 - murder count
+
   FOLLOWED->FOLLOW, M->MOVE, PROPS/TWEAK->INFO, SPEAK[U[A]]->SAY[U[A]], SFX->SOUND
   that will be set, ARGN2 - set criminal flag?). The names are descriptive.
+
  SAFE->SECURE (VerbKeys)
- NPC is now trying to move objects blocking his walkpath. He also investigate
+
 
   the possibility to loot this item in several cases. Triggers look@item not
+
20-09-04, Vjaka
   called since if there are tons of items in the spot, it will be very laggy.
+
- Fixed errors on load if setting VERSION for saves to start from litera.
- Added @Rename trigger (ARGS - new name, ARGO - target char) when renaming a
+
- Fixed paths in resource testing commands.
  pet. Return 1 cancels. Also triggered when creating character.
+
- Added EF_Minimize_Triggers (040000) to call as little triggers as needed by a minimum.
- Items with ATTR_STATIC are now saved to spherestatics.scp and NOT SAVED by
+
- Removed some declared but unused triggers.
  standart world save. So, you need to call .serv.savestatics to save them.
 
- NPC is now trying to cast good spells as on self and his combat friends also.
 
  
02-08-04, Vjaka
+
23-09-04, Vjaka
- Calling guards are now more speed optimised.
+
- Removed unused EF_Allow_Override (it was not working anyway).
- Defrag mode now supports spherestatics.scp and is much faster.
+
- Added OF_Advanced_AI (including moving objects in the path, helping friends by magic,
- Changed FACE and SALUTE to take an optional argument - target object.
+
  pathfinding)
- Characters on the way do not disallow GM to place a house anymore.
+
- Renamed EF_Client_Thread to OF_Multithreaded (0400)
- Items gets stacked one on the other witheen some height if possible.
+
- sphere.pid file is now created in Windows builds as well.
  
03-08-04, Vjaka
+
25-09-04, Vjaka  
- Exceptions catching fixed, some stack information added.
+
- Removed ADDNPC since it is already integrated with ADD command for both items and npc.
- Added CLEARVARS being same as CLEARTAGS.
+
- Removed some more duplicates (some really strange) to speed up lookups.
- Fixed CLEARTAGS to work normal without arguments.
+
- Added showing of option flags on start.
- Now VENDORMARKUP is taken from region tags if not found on a vendor.
 
  
04-08-04, Vjaka
+
26-09-04, Vjaka
- Default messages working optimised for speed. Removed OF_SkipUndefMsgs.
+
- Removed different mail operations not working and other code cleanups.
- Removed OF_Skill_DiffFirst since the actdiff is calculated in any case.
+
- Bugfix: Disabled moving gold coins to vendor stock (items shifting).
- Started implementing EF_Pathfinding.
+
- Bugfix: Disabled moving static/immovable items from ground, spell effect.
 +
- Bugfix: Disabled gaining spell effect by ghost other than ressurection.
 +
- Bugfix: Mounted creature will leave no corpse on death if died while mounted.
 +
- Bugfix: @DeathCorpse is called only if corpse is really created.
  
05-08-04, Vjaka
+
27-09-04, Vjaka
- Fixed SERV.ITEMDEF reference to object not being currently in the world.
+
- Added ISSTUCK keyword to check if npc can move to N/W/E/S dirs.
  
06-08-04, Vjaka
+
29-09-04, Vjaka
- Added SERV.resync to resync scripts without the resync delay.
+
- Optimized OF_Advanced_AI, makes NPC to remember the path, recalculating it
- Now adding a new account automaticaly fills (FIRST/LAST)CONNECTDATE.
+
  not so often (depending on INT).
- Added @SkillMenu to trigger BEFORE calling any hardcoded skillmenu. So, you
+
 
  can return 1 to cancel the action. ARGS - the name of the menu, is one of:
+
30-09-04, Furio
  sm_polymorph, sm_carpentry, sm_bowcraft, sm_tailor_leather, sm_tailor_cloth,
+
- Added OF_Advanced_LOS (0800) this disable EF_CanSeeLOS and EF_DiagonalLOSCheck
   sm_bolts, sm_carpentry, sm_cartography, sm_tinker, sm_summon, sm_blacksmith,
+
  and enable a new method to check the LOS (still testing and optimizing).
  sm_alchemy, sm_cartography, sm_inscription.
+
- Fixed some compatibility problems with Linux build.
 +
- Now Linux build is compiled statically, so no more tons of version linked to
 +
   different shared library for each distro.
  
07-08-04, kuch
+
30-09-04, Vjaka
- Finished the conversions of default messages into the new format: this should
+
- Fixed Windows build issue.
  greately improve the execution speed. Also updated sphere_msg.scp to fit new
+
- Removed EF_CanSeeLOS, EF_DiagonalLOSCheck, moved that to default LOS checks.
  format. Read the comments inside the file to get more more infomation.
+
- Bugfix: unable to resurrect on too low strength. Now gets 1 HP at least.
 +
- Average profile information is now saved to worldsaves and loaded.
 +
- Option and Experimental flags are now shown in text on .show command.
  
09-08-04, Vjaka
+
03-10-04, Furio
- Added DISGUISENAME to alter the name of the server.
+
- Optimized some parts in OF_Advanced_LOS.
- Added REPLYPEERCONNECTS (default 1) to allow masterserver and peer connects.
+
- Fixed Linux build issue.
- Fixed duplicating hungry messages search.
+
- Added ISTEVENT for chars (npc/players) working like ISEVENT
  
10-08-04, Vjaka
+
04-10-04, Vjaka
- Fixed NPC moving some items not actualy blocking their way.
+
- Regions now does not conflict if are in different mapplanes (useful for new
 +
  maps support). You can also specify RECT=left,top,right,bottom,map in the
 +
  rect record, specifyed the exact map for this rect to work.
 +
- Started redoing the code to support multiple maps. This will invalidate old
 +
  mapplane feature which was 0..255. This is affected mainly by teleports and
 +
  moongates since many of default ones had 255 mapplain specifyed. You should
 +
  change it to 0, since this is only for map0.
 +
- Added MAP property same as MAPPLANE (in future MAPPLANE will be removed)
 +
</pre>
  
11-08-04, Vjaka
+
==REVISIONS-56-SERIES==
- Added console commands auto-completion on using TAB key. File sphere.dic is
+
==0.56a==
  read for the list of definitions. Note: this file SHOULD BE sorted (at least
+
<pre>----0.56a --------------------------------------------------------------------
  witheen each separate first letter) to multi-matches to work correctly.
+
---- 08/12/2004
  
12-08-04, Vjaka
+
06-10-04, Vjaka
- Added @ItemCreate triggered when an item (ARGO) is created by a client.
+
- Removed DISGUISE(NAME/VERSION), renamed the current version to 0.56a.
- Added auto-completion to telnet connection. The difference from winconsole is
 
  that it fills the word up to end ONLY if there is exact 1 variant, or if
 
  other variants contains this one in self.
 
  
13-08-04, Vjaka
+
07-10-04, Vjaka
- Optimised sysmessages - now nothing is sent to client if the message is empty.
+
- Removed AGREE config line neccessaty since it is not longer R* series.
   This is useful to clear default messages. If wish to scroll line, use space.
+
- Added startup expansion set support output depending on map*,statics*,staidx*
- Fixed exploit to crash clients by renaming pet with some special color. Thanks
+
  files found and loaded (T2A, LBR, AOS, SE).
  TheLegbra reporting that.
+
- Removed EF_New_Maps since it is integrated to source now, packet is sent when
 +
  needed.
 +
- Moving on other map now moves the same map on the server. But this currently
 +
  does not use caching and re-read tile information from map files every time.
 +
   Caching of same sectors but in different mapplanes will be in the future.
 +
  You should both add regions for these maps, and place corresponding files in
 +
  place where all other mul files resides.
 +
- Changed values of EXPERIMENTAL flags to remove empty slots between items.
  
15-08-04, Vjaka
+
08-10-04, Vjaka
- Added EF_Script_Profiler (08000) to add information on functions usage for
+
- Fixed memory leak caused by map cache removal.
  weak places (functions or triggers) to be optimised.
+
- Fixed client screen update on map change.
- Added EF_Size_Optimise (010000) to save WORLDITEM/CHAR/SCRIPT as W*. This is
 
  not much for now, saving 7+ bytes per object. Loading supports any method.
 
  
03-09-04, Vjaka
+
08-10-04, Furio
- Added OverSkillMultiply (default 2). When player skills/stats goes this times
+
- Added PROMPTCONSOLE, it makes the client prompt (like on page request) and send
   more than skillclass allowed, drop them to skillclass level. Setting this to
+
   the response as an argument of a user definied function.
   0 disables the action.
+
   (syntax PROMPTCONSOLE callback function, message to prompt)
- Added ACCOUNTS BLOCKED/JAILED arguments. Works exactly like UNUSED, but just
 
  applyes to the blocked/jailed accounts only.
 
- Only chars in mapplane where the player is are ticked now (lag reduction).
 
  
04-09-04, Vjaka
+
10-10-04, Furio
- Added ## command to console to save both world and statics.
+
- Added RESDISP properties to account. Accepted values are 0 (PreT2a client),
- Added X# command to instant shutdown the server with world/statics save.
+
  1 (T2A), 2 (LBR), 3 (AoS), 4 (Samurai Empire). This is used to identify what type
- Changed "commands uid=... (name) to ''" to show amount if above of 1.
+
  of client is logged in. As default is set at 0, but if the client is T2A is
- Server startup crash fixed
+
  automatically set to 1 by Sphere. LBR, AoS and SE is not setted automatically and
 +
  is leaved to you.
 +
- Added to CHARDEF properties RESLEVEL, RESDISPDNID, RESDISPDNHUE. The first state
 +
  from what UO version the anim comes. The second what anim id is showed to older
 +
  client version. The third an hue showed to older client (if 0 or null the default
 +
  anim hue is used.
 +
- Modified scriptpack to reflect these changes for T2A monsters.
  
08-09-04, Furio
+
22-10-04, Vjaka
- Fixed issues for the Linux build.
+
- Added <dVALUE> as a shortcut to <eval <VALUE>> to get a decimal value of a
- Disabled information abou "Key" on OnTriggerRun exception for compatibility
+
  single expr like a variable. Note, this affects EF_Intrinsic_Locals a bit.
   problem on the *Nix build. (temporary solution)
+
- Commands with .command and spaces before will be treated as without spaces,
- Added .pid file (sphere.pid) on *Nix build, for those who want to write bash
+
  since extra space makes privileged chars to reveal self.
   script for checking sphere process easily.
+
- Added TAG.PARTY_CANLOOTME for party. If 1, allows party to loot self.
 +
- Added @Kill trigger (SRC-killer, ARGO-killed)
 +
- Added sector function ALLCHARS,ALLITEMS similar to ALLCLIENTS. For regions
 +
   you can use SECTORS.ALLCHARS, SECTORS.ALLITEMS.
 +
- Changed GODPORT to accept port number as well. Old values ( <=0 = disables,
 +
  1=ServPort+1000) are still working also.
 +
- Added SYSCMD and SYSSPAWN commands to run external applications. Returns <0 if
 +
  there was an error. The first one blocks while program is running while the
 +
  second spawns and continues scripts execution. Due to obvious security fear
 +
  in these commands, they are disabled if OF_FileCommands is not set. Up to 9
 +
   command line arguments are passed to the external application.
  
08-09-04, Vjaka
+
23-10-04, Furio
- EF_Pathinding is working perfectly making NPC to select a best path. Howewer,
+
- Fixed minor things in grayproto.
  for maximal speed it is yet checking only static objects blocking his path.
+
- Updated grayproto (list/sizes of Uo packet in Sphere).
   More testings on the speed needed before making it to include dynamics checks.
+
- Finished and debugged the new crypt engine (for crypt clients). Currently up
- Fixed Counselors losing their invis status after worldsave.
+
   to latest current OSI client 4.0.5a is supported.
  
10-09-04, Vjaka
+
25-10-04, Vjaka
- Memory information is now got from system routines instead of internal one. It
+
- Fixed exception in writefile when unable to open the file.
  will cause this info to appear in UNIX builds, howewer, it will be not be in
+
- Added account name output when packet dispatch generated an exception.
  WINDOWS systems where PSAPI.DLL is not available (fe: Windows 95/98/NT4.0).
 
  Also this makes ALLOCS useless, since there is no way to get it.
 
- Added CLIENTS property for sectors and regions to get active clients count.
 
  
11-09-04, Vjaka
+
25-10-2004. Furio
- Added EF_Clients_Thread (020000) to split clients handling to to other thread.
+
- Still updated grayproto, with new packet infos.
  This will work only in windows build and is not recommendable to change on fly.
 
  This is VERY experimental yet, since sphere is very singlethreaded by design.
 
  
13-09-04, Furio
+
26-10-04, Vjaka
- Fixed memory information on Unix. Now it uses two different methods to get
+
- Fixed SMSG[u] resolve error.
  memory information depending on *Nix system where sphere is running.
+
- Fixed <dSOMEVAL> giving some hex results.
 +
- Added update for items moved by NPCs when they blocks the path.
  
13-09-04, Vjaka
+
27-10-04, Vjaka
- Fixed functions profiler to strip off arguments of a function.
+
- Now Windows build tryes to use winsock 2.0 if available instead of 1.1.
- Fixed console commands like ##, x# showing unknown keyword error in console.
+
- Added amount argument to NEWITEM (newitem i_gold,45). Defaults to 1.
- Fixed murder count set always to 1 by @MurderMark.
+
- Removed one of occasions with creating an extra log not in logfile path.
  
14-09-04, Vjaka
+
27-10-04, Furio
- Fixed LOCALs in f_onserver_start/f_onchar_delete.
+
- Fixed a bug in displaying big dialogs with newer clients (4.0.X).
 +
- Fixed a bug where some clients were crashing when adding an item.
  
18-09-04, Vjaka
+
28-10-04, Vjaka
- Code cleanups, removed some useless (not enabled keywords), same keywords grouped
+
- Disabled string 'q'/'Q' to be said by privileged accounts. It is due the
   to one variant for usage for faster work lookups:
+
   fact that default macro for repeat is Ctrl+Q, and one less Ctrl press will
  1. *WEIGHT[MAX]->*[MAX]WEIGHT, BRAIN->NPC, KNOWLEDGE->SPEECH, COMMENT->TAG.COMMENT
+
   lead to GM to reveal self existance around, which really is not good.
   CLI*VER*->CLIENTVERSION, DEF->ARMOR, LISTEN->HEARALL, *PRICE->PRICE, VER->VERSION
 
  WEBPAGEDST->WEPAGEFILE (LoadKeys)
 
  2. CLIENTS->ALLCLIENTS, PARDON->FORGIVE, INVISIBLE->INVIS, INVULNERABLE->INVUL,
 
  R->RUN, W->WALK, CLIENTS->ADMIN, MIDI/MUSIC->MIDILIST, [RE]SYNC->RESEND, ADDITEM->ADD
 
  FOLLOWED->FOLLOW, M->MOVE, PROPS/TWEAK->INFO, SPEAK[U[A]]->SAY[U[A]], SFX->SOUND
 
  SAFE->SECURE (VerbKeys)
 
  
20-09-04, Vjaka
+
31-10-04, Furio
- Fixed errors on load if setting VERSION for saves to start from litera.
+
- Some fixes related to account creation and bank/box hack.
- Fixed paths in resource testing commands.
+
- Removed EF_AgeOfShadows. It'll be re-added with new features and complete
- Added EF_Minimize_Triggers (040000) to call as little triggers as needed by a minimum.
+
  compatibility for older clients, when enabled.
- Removed some declared but unused triggers.
+
- Fixed another exploit with Bullettin Boards. Thx to Balkon for reporting it.
  
23-09-04, Vjaka
+
01-11-04, Vjaka
- Removed unused EF_Allow_Override (it was not working anyway).
+
- Added .pid file existance notification to warn for double sphere launches.
- Added OF_Advanced_AI (including moving objects in the path, helping friends by magic,
 
  pathfinding)
 
- Renamed EF_Client_Thread to OF_Multithreaded (0400)
 
- sphere.pid file is now created in Windows builds as well.
 
  
25-09-04, Vjaka
+
02-11-04, Vjaka
- Removed ADDNPC since it is already integrated with ADD command for both items and npc.
+
- Now light level for sectors is saved as LIGHT istead of LOCALLIGHT.
- Removed some more duplicates (some really strange) to speed up lookups.
+
- One more cause for long default message string lookups removed.
- Added showing of option flags on start.
+
- EQUIPHALO now takes an argument - time to work on a person.
 +
- Fixed bug causing objects calculated to be in sector 0 always.
 +
- Added @Destroy trigger for objects.
  
26-09-04, Vjaka
+
04-11-04, Vjaka
- Removed different mail operations not working and other code cleanups.
+
- Quickfix of OF_Magic_PreCast - now not precasting on NPCs.
- Bugfix: Disabled moving gold coins to vendor stock (items shifting).
+
- Consume now can take more than 65k at once.
- Bugfix: Disabled moving static/immovable items from ground, spell effect.
+
- Added @CreatePlayer to trigger just after the char was created by a player.
- Bugfix: Disabled gaining spell effect by ghost other than ressurection.
 
- Bugfix: Mounted creature will leave no corpse on death if died while mounted.
 
- Bugfix: @DeathCorpse is called only if corpse is really created.
 
  
27-09-04, Vjaka
+
05-11-04, Vjaka
- Added ISSTUCK keyword to check if npc can move to N/W/E/S dirs.
+
- Now "Admin" is shown instead of "GM" if person is admin or owner in title.
  
29-09-04, Vjaka
+
06-11-04, Vjaka
- Optimized OF_Advanced_AI, makes NPC to remember the path, recalculating it
+
- Added sector function ALLCHARSIDLE similar to ALLCHARS, but looping via
   not so often (depending on INT).
+
  disconnected/mounted/etc chars, not accessable by ALLCHARS.
 +
- Added auto map fix to zero map if it is out of bounds. Please note, that
 +
   this can cause some problems with MOREM usage as well.
  
30-09-04, Furio
+
25-11-04, Furio
- Added OF_Advanced_LOS (0800) this disable EF_CanSeeLOS and EF_DiagonalLOSCheck
+
- Fixed: encryption - client login.
  and enable a new method to check the LOS (still testing and optimizing).
+
- Fixed: dVALUE evaluating when VALUE is already int.
- Fixed some compatibility problems with Linux build.
+
- Fixed: EQUIPHALO <timer> does not making the light disappearing.
- Now Linux build is compiled statically, so no more tons of version linked to
+
- Updated supported clients to 4.0.6a.
  different shared library for each distro.
+
- Removed "Cannot move here!" message.
 +
- Added more information to "MOVE: empty region" error. (uid and point)
  
30-09-04, Vjaka
+
30-11-04, Furio
- Fixed Windows build issue.
+
- Fixed: MOREM automatically converted to 0 because of new multi-map feature.
- Removed EF_CanSeeLOS, EF_DiagonalLOSCheck, moved that to default LOS checks.
+
- Added MasterUid property to guildstones
- Bugfix: unable to resurrect on too low strength. Now gets 1 HP at least.
 
- Average profile information is now saved to worldsaves and loaded.
 
- Option and Experimental flags are now shown in text on .show command.
 
  
03-10-04, Furio
+
02-12-04, Furio
- Optimized some parts in OF_Advanced_LOS.
+
- Fixed: Gm Page menu not sending gms on page select.
- Fixed Linux build issue.
+
- Fixed: Lord is displayed without space.
- Added ISTEVENT for chars (npc/players) working like ISEVENT
+
- Fixed: TAGAT trying to access to non existing TAGs.
 +
- Modified: Only items with 08000 as attr are moved to spherestatics.scp.
 +
- Modified: Overskillmultiply is 0 by default now.
 +
- Added: ISEVENT for regions.
  
04-10-04, Vjaka
+
08-12-04, Furio
- Regions now does not conflict if are in different mapplanes (useful for new
+
- Fixed: EvaluatingIntel on 0 int NPCs.
  maps support). You can also specify RECT=left,top,right,bottom,map in the
+
- Fixed: EQUIPHALO light disappearing on Dispel.
  rect record, specifyed the exact map for this rect to work.
 
- Started redoing the code to support multiple maps. This will invalidate old
 
  mapplane feature which was 0..255. This is affected mainly by teleports and
 
  moongates since many of default ones had 255 mapplain specifyed. You should
 
  change it to 0, since this is only for map0.
 
- Added MAP property same as MAPPLANE (in future MAPPLANE will be removed)</pre>
 
  
 +
08-12-04, Vjaka
 +
- Fixed exploit submitting invalid amount in buy packet giving free resources
 +
  (thanks Breaker and Fallout for reporting this).
 +
- Fixed canmove to accept DIR values (0..8) in addition to a letter arguments.
 +
  Same changes affects other places, like move command, etc.
 +
- File locking method optimised. It should improve the multithreading a bit.
 +
- Result of the old "ACCOUNT accname" command changed to be more informational.
 +
- GMs should login with invul and without allshow flags set.
 +
- If reference set to OBJ/NEW does not exist, zero will be storied instead. And
 +
  opposite, if it is already deleted, OBJ/NEW value is cleared to zero.
 +
- Fixed exception in f_onaccount_login.
  
==REVISIONS-56-SERIES==
+
08-12-2004, Various authors
<pre>---- 0.56a --------------------------------------------------------------------
+
- Fixed some scripts by Vjaka.
---- 08/12/2004
+
- Added new scripts and scripts fixes by Tattooed Corpse.
 
+
</pre>
06-10-04, Vjaka
+
==0.56b==
- Removed DISGUISE(NAME/VERSION), renamed the current version to 0.56a.
+
<pre>
 +
---- 0.56b --------------------------------------------------------------------
 +
---- * not released yet
  
07-10-04, Vjaka
+
09-12-04, Vjaka
- Removed AGREE config line neccessaty since it is not longer R* series.
+
- Added map caching supporting all maps. Due to this, sectors are no longer
- Added startup expansion set support output depending on map*,statics*,staidx*
+
   same in the same spot in different maps, allowing local settings for maps.
   files found and loaded (T2A, LBR, AOS, SE).
+
- Added ADDCIRCLE=x[,y] to add a circle to a character's spellbook. If y is on,
- Removed EF_New_Maps since it is integrated to source now, packet is sent when
+
   includes all lower spell circles as well.
   needed.
+
- File locking method optimised. It should improve the multithreading a bit.
- Moving on other map now moves the same map on the server. But this currently
+
- Changed [SECTOR x,y] in world saves to x,y,0,map to allow local settings for
  does not use caching and re-read tile information from map files every time.
+
   sectors in different maps. Old format will default to map 0.
   Caching of same sectors but in different mapplanes will be in the future.
+
- Since sectors are no longer shared witheen different maps, sectors on maps,
  You should both add regions for these maps, and place corresponding files in
+
   unsupported by server (having no corresponding .mul files) do not get ticks.
   place where all other mul files resides.
+
- Fixed cause to duplicate saved items in static saves in several occasions.
- Changed values of EXPERIMENTAL flags to remove empty slots between items.
+
- Added BADSPAWN command to jump to the first bad spawn found in the world. You
 +
  should add this to some of the [PLEVEL records. It also saves the UID into
 +
  ACT in case you unable to see it due to some obstacles.
 +
- Removed useless PRIVHIDE (privshow 0/1 is enough for this).
  
08-10-04, Vjaka
+
10-12-04, Vjaka
- Fixed memory leak caused by map cache removal.
+
- Fixed some defmessages misprint making unable to override them.
- Fixed client screen update on map change.
+
- Fixed @Kill to trigger even if the killer is not an agressor in the fight.
 +
- Changed MAPPLANE->MAP, LOCALLIGHT->LIGHT (.56a supported both variants, but
 +
  saved the second). Launch and save in .56a will autoconvert this in saves.
 +
- Now any items with ATTR_STATIC are saved to spherestatics.scp, not only those
 +
  who has this flag being the only set.
 +
- Fixed carriage return in accounts unused message.
  
08-10-04, Furio
+
11-12-04, Furio
- Added PROMPTCONSOLE, it makes the client prompt (like on page request) and send
+
- Fixed: bugs with FORCONT* loops.
   the response as an argument of a user definied function.
+
- Fixed: bug with coloured text in comm crystal.
   (syntax PROMPTCONSOLE callback function, message to prompt)
+
- Added: SKILLGAIN function to call internal sphere skillgain function. Args are
 +
  skill to gain and difficulty (0 to 100).
 +
- Added: REPORTEDCLIVER property for clients. It'll contain the version that
 +
   the client is. (this is easy fakeable by 3rd party programs, but still is
 +
   useful)
  
10-10-04, Furio
+
13-12-04, Vjaka
- Added RESDISP properties to account. Accepted values are 0 (PreT2a client),
+
- Fixed resolving functions executing on containers, if the name started from
  1 (T2A), 2 (LBR), 3 (AoS), 4 (Samurai Empire). This is used to identify what type
+
   rescount,restest,fcount or count.
  of client is logged in. As default is set at 0, but if the client is T2A is
+
- Fixed isneartype not working if calling under points (like from TARGP).
   automatically set to 1 by Sphere. LBR, AoS and SE is not setted automatically and
 
  is leaved to you.
 
- Added to CHARDEF properties RESLEVEL, RESDISPDNID, RESDISPDNHUE. The first state
 
  from what UO version the anim comes. The second what anim id is showed to older
 
  client version. The third an hue showed to older client (if 0 or null the default
 
  anim hue is used.
 
- Modified scriptpack to reflect these changes for T2A monsters.
 
  
22-10-04, Vjaka
+
17-12-04, Vjaka
- Added <dVALUE> as a shortcut to <eval <VALUE>> to get a decimal value of a
+
- Account delete information now contains account name.
  single expr like a variable. Note, this affects EF_Intrinsic_Locals a bit.
+
- Added NPC keyword GOTO x,y,z,map to execute sphere default movements there.
- Commands with .command and spaces before will be treated as without spaces,
+
- Redone pathfinding to support separate thread execution, so it now utilizes
  since extra space makes privileged chars to reveal self.
+
   extra thread if OF_Multithreaded is set.
- Added TAG.PARTY_CANLOOTME for party. If 1, allows party to loot self.
+
- Advanced AI now includes food search on hunger to eat and gather meal around.
- Added @Kill trigger (SRC-killer, ARGO-killed)
+
   It is executed in separate thread with pathfinding if configured so.
- Added sector function ALLCHARS,ALLITEMS similar to ALLCLIENTS. For regions
 
  you can use SECTORS.ALLCHARS, SECTORS.ALLITEMS.
 
- Changed GODPORT to accept port number as well. Old values ( <=0 = disables,
 
   1=ServPort+1000) are still working also.
 
- Added SYSCMD and SYSSPAWN commands to run external applications. Returns <0 if
 
   there was an error. The first one blocks while program is running while the
 
  second spawns and continues scripts execution. Due to obvious security fear
 
  in these commands, they are disabled if OF_FileCommands is not set. Up to 9
 
  command line arguments are passed to the external application.
 
  
23-10-04, Furio
+
21-12-04, Vjaka
- Fixed minor things in grayproto.
+
- Changed sector allocations, now allocates only those who are needed by the
- Updated grayproto (list/sizes of Uo packet in Sphere).
+
  server depending on the *.mul files found. Thus, on bare t2a install no space
- Finished and debugged the new crypt engine (for crypt clients). Currently up
+
  for other maps will be allocated (saves several Mbytes).
   to latest current OSI client 4.0.5a is supported.
+
- Random selection {x y} now supports format {x,y} also. Should help using it
 
+
  with DAM/AR fields of items.
25-10-04, Vjaka
+
- Added EXP field to characters. No internal support for it yet. But you can
- Fixed exception in writefile when unable to open the file.
+
   use it in scripts already.
- Added account name output when packet dispatch generated an exception.
+
- Empty accounts file is created on-fly if not found. Useful for unpack-n-run.
 +
- Fixed bug with TOTALCONNECTTIME being increased by doubled value, and now is
 +
  made more accurate.
 +
- Optimized the UID allocation routine, trying to disallow creating holes in
 +
  objects allocation. This should improve memory neccessaty increase for large
 +
  or long-lasting servers. Howewer, this does not defrag the current save, only
 +
  newly generated UIDs will be optimized - no existant UIDs will be altered.
 +
  Garbage Collection should be enabled for this optimization to work.
 +
- Expanded account information in ACCOUNT NAME command by logged char name.
  
25-10-2004. Furio
+
03-01-05, Vjaka
- Still updated grayproto, with new packet infos.
+
- Added <Rarguments> as a shortcut to <eval rand(arguments)>. Can take either
 +
  one, two or no arguments like <R>, <R15>, <R3,15>. If no arguments given,
 +
  R1000 is assumed.
 +
- You can now disable broadcast messages (like errors, connects, etc) from the
 +
  server log to be sent to your account logged via telnet. You can toggle this
 +
  behavior per account via PRIV field of the account (mask 0400). So, only
 +
  responces to your commands and some very-basic messages (like world save)
 +
  will be sent in this case.
  
26-10-04, Vjaka
+
08-01-05, Vjaka
- Fixed SMSG[u] resolve error.
+
- Added support for virtual maps. Now map numbers 0..255 are supported by the
- Fixed <dSOMEVAL> giving some hex results.
+
  server.
- Added update for items moved by NPCs when they blocks the path.
+
- Map dimensions are now customizable in INI-file using by the following cmd:
 +
  MAPx=max_x,max_y,sector_size,real_map_number.
 +
  Here x - the map number for ingame useage (4rd coordinate of the coordinate).
 +
  max_x - maximal X coordinate of the map (should be multiply of 8).
 +
  max_y - maximal Y coordinate of the map (should be multiply of 8).
 +
  sector_size - the sector size (you can play with this if you experience lags
 +
    decreasing this value (should be multiply of 8 and both max_x and max_y).
 +
  real_map_numer - number used by map files (like: 0 for map0, statics0).
 +
  You can also change some attribute of the current map not redefining all
 +
  values, skipping the ones you wish to be as default putting 0 instead (for
 +
  real map number -1). For example, decreasing sector size for map 0 to 16
 +
  from default value of 64 will look in INI file thus: "MAP0=0,0,16,-1".
 +
  Please note, that no changes are applied when server is already started.
 +
- Default map numbering has been changed (you can ovverride it easily by MAPx
 +
  setting in sphere.ini). Now 0 = map0, 1 = map0, 2 = map2, 3 = map3, 4 = map4.
  
27-10-04, Vjaka
+
10-01-05, Furio
- Now Windows build tryes to use winsock 2.0 if available instead of 1.1.
+
- Added: tooltip %d command for gumps (works in SE clients).
- Added amount argument to NEWITEM (newitem i_gold,45). Defaults to 1.
+
- Added: sphere_map*.scp/sphere_map_points*.scp for new maps and fixed the
- Removed one of occasions with creating an extra log not in logfile path.
+
  default one.
 +
- Updated: gray proto with new packets.
 +
- Updated: client support to 4.0.7 family.
 +
- Updated: fix in default script pack.
  
27-10-04, Furio
+
13-01-05, Furio
- Fixed a bug in displaying big dialogs with newer clients (4.0.X).
+
- Modified SERV.MAP(x,y) to accept a 3rd parameter, the map. If omitted is
- Fixed a bug where some clients were crashing when adding an item.
+
  defaulted to 0.
 +
- Added SECTOR access to read-only properties from a point. Example:
 +
  SERV.MAP(100,100,1).SECTOR.ITEMCOUNT will give you the itemcount of the
 +
  sector that contains the point 100,100 on map 1.
 +
- Added REGION access to read-only properties from a point. (works like
 +
  SECTOR one)
 +
- Fixed: gumppic to show hue when used. (Hue usable only for client >= 3)
  
28-10-04, Vjaka
+
15-01-05, Vjaka
- Disabled string 'q'/'Q' to be said by privileged accounts. It is due the
+
- Changed the way the server saves allowing more information about the cause of
   fact that default macro for repeat is Ctrl+Q, and one less Ctrl press will
+
   some exception (which is now not fatal for the save).
  lead to GM to reveal self existance around, which really is not good.
 
  
31-10-04, Furio
+
17-01-05, Vjaka
- Some fixes related to account creation and bank/box hack.
+
- Added LEVEL field to char as the future part of the experience system.
- Removed EF_AgeOfShadows. It'll be re-added with new features and complete
+
- Added ExperienceSystem, ExperienceMode, LevelSystem, LevelMode, LevelNextAt
   compatibility for older clients, when enabled.
+
  fields to the .INI file as a future part of the experience system. Read the
- Fixed another exploit with Bullettin Boards. Thx to Balkon for reporting it.
+
  default sphere.ini for more description over these fields.
 +
- PRIV flags are now auto-clearing bits corresponding to not used priv. This is
 +
   a solution for a possible incompatibility when the previosely disabled bit
 +
  will be reused with other functionality on same world saves.
 +
- Fixed: LAYER_EXTRA is now used ONLY to place the items bought by the vendor.
 +
- Items sold to vendors are auto-deleted exactly upon the sell operation. The
 +
  only case they are saved, if they are sold to player vendors.
 +
- Amount of items in sell packet is now limited to the container size.
 +
- Fixed one more sell/buy exploit.
  
01-11-04, Vjaka
+
17-01-05, Furio
- Added .pid file existance notification to warn for double sphere launches.
+
- Fixed: party system.
 
+
- Fixed: group disappeared from gumps.
02-11-04, Vjaka
+
- Added: scriptable components for the party. Still work in progress.
- Now light level for sectors is saved as LIGHT istead of LOCALLIGHT.
+
  With <REF>.PARTY refer to the current party of the char.
- One more cause for long default message string lookups removed.
+
    <REF>.PARTY.MEMBER.x refer to any member of the party.
- EQUIPHALO now takes an argument - time to work on a person.
+
      <REF>.PARTY.MASTER refer to the master of the party.
- Fixed bug causing objects calculated to be in sector 0 always.
+
  PARTY.MEMBERS give the count of members
- Added @Destroy trigger for objects.
+
  PARTY.MEMBER.x has also ISMASTER and ISLOOTABLE properties.
 
+
  PARTY.ADDMEMBER[FORCED] you can add a meber by script (forced  version works
04-11-04, Vjaka
+
      without the normal /accept behaviour)
- Quickfix of OF_Magic_PreCast - now not precasting on NPCs.
+
  PARTY.DISBAND disband the current party
- Consume now can take more than 65k at once.
+
  PARTY.REMOVEMEMBER @<N> remove the Nth member
- Added @CreatePlayer to trigger just after the char was created by a player.
+
  PARTY.REMOVEMEMBER <UID> remove a member in the party with the UID given
 +
      (if is the master the party is disbanded)
 +
  PARTY.SYSMESSAGE @<N> TEXT send a party sysmessage to the Nth member
 +
  PARTY.SYSMESSAGE <UID> TEXT send a party sysmessage to a member in the party
 +
      with the UID given
 +
  PARTY.SYSMESSAGE TEXT send a sysmessage to the party
 +
  PARTY.MESSAGE @<M> TEXT send a message from the Mth member to the party
 +
  PARTY.MESSAGE @<M>,<N> TEXT send a message from the Mth member to the Nth
 +
      member
 +
  PARTY.MESSAGE <UID1> TEXT send a message from the <UID1> to the party
 +
  PARTY.MESSAGE <UID1>,<UID2> TEXT send a message from <UID1> member to <UID2>
 +
- Added: TAG/TAG0 for party.
  
05-11-04, Vjaka
+
24-01-05, Vjaka
- Now "Admin" is shown instead of "GM" if person is admin or owner in title.
+
- Fixed bug with some keywords recognition caused by <Rxxx> operator.
 +
- Chardef triggers do not apply to players now.
 +
- Write deleted accounts out to log file
  
06-11-04, Vjaka
+
25-01-05, Vjaka
- Added sector function ALLCHARSIDLE similar to ALLCHARS, but looping via
+
- Fixed vendor selling in case of one item being sold.
  disconnected/mounted/etc chars, not accessable by ALLCHARS.
+
- Ensure double character removal from view in "remove 1" case (for allshow).
- Added auto map fix to zero map if it is out of bounds. Please note, that
 
  this can cause some problems with MOREM usage as well.
 
  
25-11-04, Furio
+
26-01-05, Vjaka
- Fixed: encryption - client login.
+
- Fixed registry settings overriding MULFILES setting in some cases in win32.
- Fixed: dVALUE evaluating when VALUE is already int.
+
- Fixed the way spells are checked whatever they are in a spellbook. New type
- Fixed: EQUIPHALO <timer> does not making the light disappearing.
+
  of spellbook (186) has been added for script purposes with internal support.
- Updated supported clients to 4.0.6a.
+
  Now the spellbooks (if not default one) can be configured to specify which
- Removed "Cannot move here!" message.
+
  number of the lowest spell it contains (stored in MOREZ).
- Added more information to "MOVE: empty region" error. (uid and point)
+
- Fixed casting speel with two or more similar spell books when it does not
 +
  exist in one of these books.
 +
- Removed limitation to 1 byte (255) for MOREZ of spellbooks. Now it can hold
 +
  2 bytes (65535). Please note, that setting MOREZ via MOREP is incorrect here.
  
30-11-04, Furio
+
28-01-05, Vjaka
- Fixed: MOREM automatically converted to 0 because of new multi-map feature.
+
- Fixed bug caused with layer_extra removal from buy menu in older clients.
- Added MasterUid property to guildstones
+
- Added support for packets filterings. Please note, that you should understand
 
+
  what are you doing. You can install your handler of a packet X specifying
02-12-04, Furio
+
  PACKETx=functionname. This function will be called when the packet is going
- Fixed: Gm Page menu not sending gms on page select.
+
  to be processed by the server. It has the following arguments set:
- Fixed: Lord is displayed without space.
+
  ARGN1 = packet number (to allow using one function for different packets)
- Fixed: TAGAT trying to access to non existing TAGs.
+
  ARGS = source client ip address
- Modified: Only items with 08000 as attr are moved to spherestatics.scp.
+
  LOCAL.0-LOCAL.9 - first 10 bytes of the packet for parsing contents
- Modified: Overskillmultiply is 0 by default now.
+
  If you do return 1 in this function, the packet will NOT be processed.
- Added: ISEVENT for regions.
+
- Some exceptions debug messaging speed optimised.
 +
 
 +
29-01-05, Vjaka
 +
- Added argument for RECRUIT on guildstone. If set 1, the member recruited will
 +
  become a fully qualifyed member of a guild with abbriviation shown on.
  
08-12-04, Furio
+
30-01-05, Furio
- Fixed: EvaluatingIntel on 0 int NPCs.
+
- Fixed: compatibility problems on Linux.
- Fixed: EQUIPHALO light disappearing on Dispel.
+
- Freeze for 0.56b Test1.
  
08-12-04, Vjaka
+
03-02-05, Vjaka
- Fixed exploit submitting invalid amount in buy packet giving free resources
+
- Argument switches of target[f][g][w] functions can be given in any order.
  (thanks Breaker and Fallout for reporting this).
+
- Fixed removing events on other events execution that leaded skipping others.
- Fixed canmove to accept DIR values (0..8) in addition to a letter arguments.
+
- Memory usage is lowered (pre-storage optimized for more accurate values),
  Same changes affects other places, like move command, etc.
+
  approx 30-40% less memory will be used (depending on load structure).
- File locking method optimised. It should improve the multithreading a bit.
 
- Result of the old "ACCOUNT accname" command changed to be more informational.
 
- GMs should login with invul and without allshow flags set.
 
- If reference set to OBJ/NEW does not exist, zero will be storied instead. And
 
  opposite, if it is already deleted, OBJ/NEW value is cleared to zero.
 
- Fixed exception in f_onaccount_login.
 
  
08-12-2004, Various authors
+
04-02-05, Vjaka
- Fixed some scripts by Vjaka.
+
- Logout now quits from chat removing problems with inactive zombies left.
- Added new scripts and scripts fixes by Tattooed Corpse.
+
- Characters with Statf_STONE cannot logout (actualy, have 1 hour logout timer).
 +
- You can now access account properties using SERV.ACCOUNT.x. reference where x
 +
  is the numerical index of the account (0..SERV.ACCOUNTS) [read-only]
 +
- Fixed extra step made on sector borders.
 +
- Fixed "return"/"return 2" in chardef triggers stopping others from launching.
  
---- 0.56b --------------------------------------------------------------------
+
04-02-05, Furio
---- * not released yet
+
- Added support for 4.0.8 clients.
 +
- Fixed some arguments parsing in party functions
  
09-12-04, Vjaka
+
05-02-05, Vjaka
- Added map caching supporting all maps. Due to this, sectors are no longer
+
- Optimized time profiling on ticking objects.
  same in the same spot in different maps, allowing local settings for maps.
 
- Added ADDCIRCLE=x[,y] to add a circle to a character's spellbook. If y is on,
 
  includes all lower spell circles as well.
 
- File locking method optimised. It should improve the multithreading a bit.
 
- Changed [SECTOR x,y] in world saves to x,y,0,map to allow local settings for
 
  sectors in different maps. Old format will default to map 0.
 
- Since sectors are no longer shared witheen different maps, sectors on maps,
 
  unsupported by server (having no corresponding .mul files) do not get ticks.
 
- Fixed cause to duplicate saved items in static saves in several occasions.
 
- Added BADSPAWN command to jump to the first bad spawn found in the world. You
 
  should add this to some of the [PLEVEL records. It also saves the UID into
 
  ACT in case you unable to see it due to some obstacles.
 
- Removed useless PRIVHIDE (privshow 0/1 is enough for this).
 
  
10-12-04, Vjaka
+
07-02-05, Vjaka
- Fixed some defmessages misprint making unable to override them.
+
- Problem with items left with switching virtual maps with one physical should
- Fixed @Kill to trigger even if the killer is not an agressor in the fight.
+
  be solved.
- Changed MAPPLANE->MAP, LOCALLIGHT->LIGHT (.56a supported both variants, but
+
- Added simple mySQL support. New settings MySqlHost, MySqlUser, MySqlPassword,
   saved the second). Launch and save in .56a will autoconvert this in saves.
+
   MySqlDatabase will be used to connect to the DB in case if MYSQL is set to 1.
- Now any items with ATTR_STATIC are saved to spherestatics.scp, not only those
+
  You will need extra .dll/.so to download for sphere installation. They will
   who has this flag being the only set.
+
   join the packages.
- Fixed carriage return in accounts unused message.
 
  
11-12-04, Furio
+
08-02-05, Vjaka
- Fixed: bugs with FORCONT* loops.
+
- Fixed several map support bugs with incorrect sector counting (should improve
- Fixed: bug with coloured text in comm crystal.
+
   support of a high map numbers).
- Added: SKILLGAIN function to call internal sphere skillgain function. Args are
 
   skill to gain and difficulty (0 to 100).
 
- Added: REPORTEDCLIVER property for clients. It'll contain the version that
 
  the client is. (this is easy fakeable by 3rd party programs, but still is
 
  useful)
 
  
13-12-04, Vjaka
+
11-02-05, Vjaka
- Fixed resolving functions executing on containers, if the name started from
+
- Fixed bug causing incorrect function name lookup in several cases with some
   rescount,restest,fcount or count.
+
  special chars like underline (_).
- Fixed isneartype not working if calling under points (like from TARGP).
+
- Added debug flags 0200 and 0400 to debug experience and level changes from
 +
   server console (if enabled).
 +
- Experience system integrated. Few addons about defaults to config comments:
 +
  a) experience bonus for crafting counted as a value/100.
 +
  b) default experience set on create is str+dex/2+int.
 +
  c) manual setting experience will alter level if configured so.
 +
  d) dying decreases experience by 10%
 +
  e) killing enemy will give experience depending on exp and level of target.
  
17-12-04, Vjaka
+
12-02-05, Vjaka
- Account delete information now contains account name.
+
- Added 2 more EXP settings to config: ExperienceKoefPVP and ExperienceKoefPVM,
- Added NPC keyword GOTO x,y,z,map to execute sphere default movements there.
+
  controlling percents of gaining experience in PvP and PvM combat.
- Redone pathfinding to support separate thread execution, so it now utilizes
+
- Added triggers @ExpChange and @ExpLevelChange, where ARGN1 (writeable) is the
   extra thread if OF_Multithreaded is set.
+
  change is going to happen. Returning 1 cancels the change.
- Advanced AI now includes food search on hunger to eat and gather meal around.
+
 
   It is executed in separate thread with pathfinding if configured so.
+
12-02-05, Furio
 +
- Fixed: another buffer overrun exploit in log system. Thx to Radiant for
 +
   reporting it.
 +
- Added: SUPPRESSCAPITALS (default 0) to enable/disable Vjaka system to avoid
 +
   long text written only in capital letters.
  
21-12-04, Vjaka
+
14-02-05, Vjaka
- Changed sector allocations, now allocates only those who are needed by the
+
- OF_Advanced_AI is now obsolete. Currently it is controlled by NPCAI setting
   server depending on the *.mul files found. Thus, on bare t2a install no space
+
   in config file.
  for other maps will be allocated (saves several Mbytes).
+
- Added MaxLoopTimes value to config (default 10000) to limit a number of
- Random selection {x y} now supports format {x,y} also. Should help using it
+
  iterations the while/for cycle could have to remove possible deadlocks making
   with DAM/AR fields of items.
+
   server to stop responding (better use this instead of main loop restart).
- Added EXP field to characters. No internal support for it yet. But you can
+
- Added MOVERATE to CHARDEFs. It is the percent modifier of the speed of the
   use it in scripts already.
+
   NPC - the higher it is, the slower will the NPC be. Default is 100.
- Empty accounts file is created on-fly if not found. Useful for unpack-n-run.
+
- Now double clicking on the log window in windows build will bring up an
- Fixed bug with TOTALCONNECTTIME being increased by doubled value, and now is
+
   editor with corresponded file (if any specifyed in the same line) opened.
  made more accurate.
 
- Optimized the UID allocation routine, trying to disallow creating holes in
 
  objects allocation. This should improve memory neccessaty increase for large
 
  or long-lasting servers. Howewer, this does not defrag the current save, only
 
  newly generated UIDs will be optimized - no existant UIDs will be altered.
 
   Garbage Collection should be enabled for this optimization to work.
 
- Expanded account information in ACCOUNT NAME command by logged char name.
 
  
03-01-05, Vjaka
+
15-02-05, Vjaka
- Added <Rarguments> as a shortcut to <eval rand(arguments)>. Can take either
+
- Fixed one more buy menu exploit (probably, the last one) ;).
  one, two or no arguments like <R>, <R15>, <R3,15>. If no arguments given,
+
- Fixed NEWITEM id,amount in case if non-exact value was given (like {x y}).
  R1000 is assumed.
+
- Added cont argument to NEWITEM (now it looks NEWITEM id,amount,container).
- You can now disable broadcast messages (like errors, connects, etc) from the
 
  server log to be sent to your account logged via telnet. You can toggle this
 
  behavior per account via PRIV field of the account (mask 0400). So, only
 
  responces to your commands and some very-basic messages (like world save)
 
  will be sent in this case.
 
  
08-01-05, Vjaka
+
16-02-05, Furio
- Added support for virtual maps. Now map numbers 0..255 are supported by the
+
- Fixed: compatibility things for Linux/BSD build.
  server.
 
- Map dimensions are now customizable in INI-file using by the following cmd:
 
  MAPx=max_x,max_y,sector_size,real_map_number.
 
  Here x - the map number for ingame useage (4rd coordinate of the coordinate).
 
  max_x - maximal X coordinate of the map (should be multiply of 8).
 
  max_y - maximal Y coordinate of the map (should be multiply of 8).
 
  sector_size - the sector size (you can play with this if you experience lags
 
    decreasing this value (should be multiply of 8 and both max_x and max_y).
 
  real_map_numer - number used by map files (like: 0 for map0, statics0).
 
  You can also change some attribute of the current map not redefining all
 
  values, skipping the ones you wish to be as default putting 0 instead (for
 
  real map number -1). For example, decreasing sector size for map 0 to 16
 
  from default value of 64 will look in INI file thus: "MAP0=0,0,16,-1".
 
  Please note, that no changes are applied when server is already started.
 
- Default map numbering has been changed (you can ovverride it easily by MAPx
 
  setting in sphere.ini). Now 0 = map0, 1 = map0, 2 = map2, 3 = map3, 4 = map4.
 
  
10-01-05, Furio
+
27-02-05, Furio
- Added: tooltip %d command for gumps (works in SE clients).
+
- Added: STRREV for strings.
- Added: sphere_map*.scp/sphere_map_points*.scp for new maps and fixed the
+
- Reverted to dynamic linked executable for the linux build. That permit some
   default one.
+
   exception handling during signal raise.
- Updated: gray proto with new packets.
 
- Updated: client support to 4.0.7 family.
 
- Updated: fix in default script pack.
 
  
13-01-05, Furio
+
01-03-05, Vjaka
- Modified SERV.MAP(x,y) to accept a 3rd parameter, the map. If omitted is
+
- Fixed gaining fame and exp on summoned pets.
  defaulted to 0.
+
- Faster and more intelligent protection from fastloot like ,emptycontainer. The
- Added SECTOR access to read-only properties from a point. Example:
+
   delays for picking now are 0.3 sec per item. Item with amount (popping dialog
  SERV.MAP(100,100,1).SECTOR.ITEMCOUNT will give you the itemcount of the
+
   with input) adds extra 0.2 sec delay.
   sector that contains the point 100,100 on map 1.
 
- Added REGION access to read-only properties from a point. (works like
 
   SECTOR one)
 
- Fixed: gumppic to show hue when used. (Hue usable only for client >= 3)
 
  
15-01-05, Vjaka
+
04-03-05, Vjaka
- Changed the way the server saves allowing more information about the cause of
+
- Fixed an exploit with invalid book packet (thanks Fallout for reporting).
   some exception (which is now not fatal for the save).
+
- Fixed @Destroy event not fired.
 +
- Added the minimal delay before accepting sell/buy deal equal to 0.3 sec per
 +
  each item. This limits the power of autobuy/autosell/inject sell all.
 +
- Added client property CTAG similar to the TAG array. The difference is that
 +
   the contents is not saved, and is destroyed upon logout - useful place to
 +
  store your local variables on the client character.
  
17-01-05, Vjaka
+
06-03-05, Furio
- Added LEVEL field to char as the future part of the experience system.
+
- Some other fixes to improve Linux build stability.
- Added ExperienceSystem, ExperienceMode, LevelSystem, LevelMode, LevelNextAt
+
- Now killing sphere with HUP make the server save and exit.
  fields to the .INI file as a future part of the experience system. Read the
+
- Added support for 4.0.9 client encryption.
  default sphere.ini for more description over these fields.
+
- Added more comprehensible messages to error output (bad login / garbage / save)
- PRIV flags are now auto-clearing bits corresponding to not used priv. This is
 
  a solution for a possible incompatibility when the previosely disabled bit
 
  will be reused with other functionality on same world saves.
 
- Fixed: LAYER_EXTRA is now used ONLY to place the items bought by the vendor.
 
- Items sold to vendors are auto-deleted exactly upon the sell operation. The
 
  only case they are saved, if they are sold to player vendors.
 
- Amount of items in sell packet is now limited to the container size.
 
- Fixed one more sell/buy exploit.
 
  
17-01-05, Furio
+
10-03-05, Vjaka
- Fixed: party system.
+
- Fixed placing items from invalid containers upon save loading to world nearby
- Fixed: group disappeared from gumps.
+
  100,100 coords, these items should be deleted, so they are.
- Added: scriptable components for the party. Still work in progress.
+
- Limited amount of items shown to client on screen to MaxItemComplexity*30 (by
  With <REF>.PARTY refer to the current party of the char.
+
   default 25*30 = 750).
    <REF>.PARTY.MEMBER.x refer to any member of the party.
+
- Removed goldreserve from guilds - use TAGs for this.
      <REF>.PARTY.MASTER refer to the master of the party.
+
- Windows: added build date and time to the About box along with the version.
  PARTY.MEMBERS give the count of members
 
  PARTY.MEMBER.x has also ISMASTER and ISLOOTABLE properties.
 
   PARTY.ADDMEMBER[FORCED] you can add a meber by script (forced  version works
 
      without the normal /accept behaviour)
 
  PARTY.DISBAND disband the current party
 
  PARTY.REMOVEMEMBER @<N> remove the Nth member
 
  PARTY.REMOVEMEMBER <UID> remove a member in the party with the UID given
 
      (if is the master the party is disbanded)
 
  PARTY.SYSMESSAGE @<N> TEXT send a party sysmessage to the Nth member
 
  PARTY.SYSMESSAGE <UID> TEXT send a party sysmessage to a member in the party
 
      with the UID given
 
  PARTY.SYSMESSAGE TEXT send a sysmessage to the party
 
  PARTY.MESSAGE @<M> TEXT send a message from the Mth member to the party
 
  PARTY.MESSAGE @<M>,<N> TEXT send a message from the Mth member to the Nth
 
      member
 
  PARTY.MESSAGE <UID1> TEXT send a message from the <UID1> to the party
 
  PARTY.MESSAGE <UID1>,<UID2> TEXT send a message from <UID1> member to <UID2>
 
- Added: TAG/TAG0 for party.
 
  
24-01-05, Vjaka
+
13-03-05, Furio
- Fixed bug with some keywords recognition caused by <Rxxx> operator.
+
- Added SERV.GUILDSTONES.x to referer to the Xth guildstone in the server.
- Chardef triggers do not apply to players now.
+
  Use SERV.GUILDSTONES.COUNT to get the total number.
- Write deleted accounts out to log file
+
- Added SERV.TOWNSTONES working like SERV.GUILDSTONES.
 +
- Added MasterUid property also in write mode. Now you can change the guild
 +
  master passing the uid as argument.
 +
- Some minor fix to Linux build.
  
25-01-05, Vjaka
+
14-03-05, Vjaka
- Fixed vendor selling in case of one item being sold.
+
- Optimised object los check, should decrease waste of cpu on large shards.
- Ensure double character removal from view in "remove 1" case (for allshow).
+
- Fixed possible webpage exploit with malformed requests.
 +
- Removed EMAIL property from accounts and all associated commands (EMAIL/
 +
  ADDEMAIL,defmessages) - use account TAGs to work with it when needed.
 +
- Removed server status responce from the standart ping/telnet connection.
 +
- Fixed logging in localy when both RemoteAdmin and Administrator accounts were
 +
  not found and LOCALIPADMIN was set.
 +
- Fixed misprinted defmessage ncp_* to npc_* (2 matches), sphere_msgs.scp now
 +
  comes commented by default - uncomment things only you need to change - most
 +
  people will not need this file at all, so by this way we show that.
  
26-01-05, Vjaka
+
14-03-05, Furio
- Fixed registry settings overriding MULFILES setting in some cases in win32.
+
- Temp removed "Limited amount of items shown to client on screen".
- Fixed the way spells are checked whatever they are in a spellbook. New type
+
- Moved FOLLOW from exe to scripts. Now MEMORY_FOLLOW(01000) is unused.
  of spellbook (186) has been added for script purposes with internal support.
+
- Modified default info gump with a new one (thx to NHR).
  Now the spellbooks (if not default one) can be configured to specify which
 
  number of the lowest spell it contains (stored in MOREZ).
 
- Fixed casting speel with two or more similar spell books when it does not
 
  exist in one of these books.
 
- Removed limitation to 1 byte (255) for MOREZ of spellbooks. Now it can hold
 
  2 bytes (65535). Please note, that setting MOREZ via MOREP is incorrect here.
 
  
28-01-05, Vjaka
+
17-03-05, Vjaka
- Fixed bug caused with layer_extra removal from buy menu in older clients.
+
- Removed EF_No_Pause_Packet, it is built in to code now.
- Added support for packets filterings. Please note, that you should understand
+
- Drop item on vendor to trade quick, removed npc_vendor_sell (from 1.0).
  what are you doing. You can install your handler of a packet X specifying
+
- Setting SLEEPMASK=0 will give no time to sleeping sectors (from 1.0).
  PACKETx=functionname. This function will be called when the packet is going
+
- Optimised few widely used checks like touch check.
  to be processed by the server. It has the following arguments set:
 
  ARGN1 = packet number (to allow using one function for different packets)
 
  ARGS = source client ip address
 
  LOCAL.0-LOCAL.9 - first 10 bytes of the packet for parsing contents
 
  If you do return 1 in this function, the packet will NOT be processed.
 
- Some exceptions debug messaging speed optimised.
 
  
29-01-05, Vjaka
+
29-03-05, Vjaka
- Added argument for RECRUIT on guildstone. If set 1, the member recruited will
+
- Removed debug message about not found pathfinding path.
   become a fully qualifyed member of a guild with abbriviation shown on.
+
- Fixed bug causing objects disappear on doubleclick.
 +
- "Limited amount of items shown to client on screen" is back due this was not
 +
  the cause of the previous bug ;).
 +
- Removed verbose command. It was anyhow very limited in Release build.
 +
- Added -c command line switch to WIN32 build. It allows changing registered
 +
   class name for sphere, which helps working via windows messages with several
 +
  sphere servers on the same machine.
  
30-01-05, Furio
+
05-04-05, Vjaka
- Fixed: compatibility problems on Linux.
+
- Made ARGN1 writeable in @Hunger.
- Freeze for 0.56b Test1.
+
- Fixed OptionFlags display instead of MagicIngoreAR.
  
03-02-05, Vjaka
+
11-04-05, Vjaka
- Argument switches of target[f][g][w] functions can be given in any order.
+
- Packet filtering support heavily expanded. Now you have these variables:
- Fixed removing events on other events execution that leaded skipping others.
+
  LOCAL.NUM (value) set to amount of data got from the packet
- Memory usage is lowered (pre-storage optimized for more accurate values),
+
  LOCAL.STR (string) all data threated as a string (aware of zero chars)
  approx 30-40% less memory will be used (depending on load structure).
+
  LOCAL.ACCOUNT (string) current active account if any is logged by the client
 +
  LOCAL.CHAR (uid) current active char if any is logged in from the client
 +
  and the all data is now given in LOCAL.x, not the only first 10 bytes.
 +
- Returning 1 in PACKETx handler function no longer shows Bad Msg Eat string.
 +
- Removing exception on invalid map point in some drop cases.
 +
- Account named like account keywords (ADD/BLOCKED/etc) denied for creation.
  
04-02-05, Vjaka
+
12-04-05, Vjaka
- Logout now quits from chat removing problems with inactive zombies left.
+
- Walking via others with no penalty fixed (now it more like it was before in
- Characters with Statf_STONE cannot logout (actualy, have 1 hour logout timer).
+
  the times of 55i - more correct way). You can override this by changing ARGN1
- You can now access account properties using SERV.ACCOUNT.x. reference where x
+
   in @PersonalSpace trigger.
   is the numerical index of the account (0..SERV.ACCOUNTS) [read-only]
+
- Fixed message of guard owners always saying previous region guards owners.
- Fixed extra step made on sector borders.
 
- Fixed "return"/"return 2" in chardef triggers stopping others from launching.
 
  
04-02-05, Furio
+
14-04-05, Vjaka
- Added support for 4.0.8 clients.
+
- Fixed Sphere accepting a player character as a valid guard in some cases.
- Fixed some arguments parsing in party functions
+
- Fixed guard walking to enemy even if they are cheaters (instantkill enabled).
 +
- Added messaging flood control - equal sysmessages one after another will not
 +
  be sent to the client (if they are absolutely identifical and no any other
 +
  message was between them).
 +
- Added STRIP [DIR/] console command. Reads all scripts and outputs them to new
 +
  files with only [...], and base definitions lines. Good for giving script to
 +
  your gms to be able to use axis with very basic information.
  
05-02-05, Vjaka
+
17-04-05, Vjaka
- Optimized time profiling on ticking objects.
+
- Fixed bug with quick trade on player vendors.
 +
- Fixed an exception caused by empty messages in some client events.
  
07-02-05, Vjaka
+
21-04-05, Furio
- Problem with items left with switching virtual maps with one physical should
+
- Added 4.0.10 client keys.
  be solved.
+
- Fixed: bugs in getting vals from party.
- Added simple mySQL support. New settings MySqlHost, MySqlUser, MySqlPassword,
 
  MySqlDatabase will be used to connect to the DB in case if MYSQL is set to 1.
 
  You will need extra .dll/.so to download for sphere installation. They will
 
  join the packages.
 
  
08-02-05, Vjaka
+
21-04-05, Vjaka
- Fixed several map support bugs with incorrect sector counting (should improve
+
- Fixed some cases (not all!) of scripts clearence by specifying incorrect
   support of a high map numbers).
+
  directory in STRIP command. There are too many ways to specify direct or
 +
  indirect path that will look different but will lead to the same file
 +
  starting from symlinks, ending with messing with .. and dir seprarators (\/).
 +
   Locking the file is not ok, since it will cause problems with other threads
 +
  or applications working with file. So use this either with care, or with no
 +
  argument ;)
 +
- Added Axis tags support CATEGORY, SUBSECTION, DESCRIPTION to STRIP command. I
 +
  do not use them, so did not add that when making the command :).
  
11-02-05, Vjaka
+
23-04-05, Furio
- Fixed bug causing incorrect function name lookup in several cases with some
+
- Some fixes and optimization for Linux code.
  special chars like underline (_).
 
- Added debug flags 0200 and 0400 to debug experience and level changes from
 
  server console (if enabled).
 
- Experience system integrated. Few addons about defaults to config comments:
 
  a) experience bonus for crafting counted as a value/100.
 
  b) default experience set on create is str+dex/2+int.
 
  c) manual setting experience will alter level if configured so.
 
  d) dying decreases experience by 10%
 
  e) killing enemy will give experience depending on exp and level of target.
 
  
12-02-05, Vjaka
+
03-05-05, Vjaka
- Added 2 more EXP settings to config: ExperienceKoefPVP and ExperienceKoefPVM,
+
- Fixed bug causing impossibility to dress off items in some cases.
  controlling percents of gaining experience in PvP and PvM combat.
+
- Removed background task and all corresponding to it operations, since they
- Added triggers @ExpChange and @ExpLevelChange, where ARGN1 (writeable) is the
+
   only looked as working, while doing almost nothing.
   change is going to happen. Returning 1 cancels the change.
 
  
12-02-05, Furio
+
14-05-2005, Furio
- Fixed: another buffer overrun exploit in log system. Thx to Radiant for
+
- Fixed some bugs in client detection.
   reporting it.
+
- Fixed a bug for too short account name login.
- Added: SUPPRESSCAPITALS (default 0) to enable/disable Vjaka system to avoid
+
- Removed support for encrypted client from 1.25.31 to 1.26.4 (you can use them
  long text written only in capital letters.
+
   only in unencrypted way).
 +
- Fixed problems with allshow.
 +
- Fixed problems with rand(x,y).
 +
- Disabled (temp.) Vjaka's messaging flood control.
  
14-02-05, Vjaka
+
24-05-05, Furio
- OF_Advanced_AI is now obsolete. Currently it is controlled by NPCAI setting
+
- Fixed some bugs for Linux build.
  in config file.
+
- Added CanSee check in spellcast.
- Added MaxLoopTimes value to config (default 10000) to limit a number of
 
  iterations the while/for cycle could have to remove possible deadlocks making
 
  server to stop responding (better use this instead of main loop restart).
 
- Added MOVERATE to CHARDEFs. It is the percent modifier of the speed of the
 
  NPC - the higher it is, the slower will the NPC be. Default is 100.
 
- Now double clicking on the log window in windows build will bring up an
 
  editor with corresponded file (if any specifyed in the same line) opened.
 
  
15-02-05, Vjaka
+
25-05-05, Vjaka
- Fixed one more buy menu exploit (probably, the last one) ;).
+
- Added OF_Flood_Protection as a control of toggling appearence of same
- Fixed NEWITEM id,amount in case if non-exact value was given (like {x y}).
+
  messages and sysmessages one after another. Note, that this setting is always
- Added cont argument to NEWITEM (now it looks NEWITEM id,amount,container).
+
  off for PLEVEL 2 or upper, so GMs will always get everything.
 +
- Fixed copses giving unlimited blood amount. Now, the corpse gets TAG.BLOOD
 +
  upon creation to TAG.MAXBLOOD of itemdef. You can also alter TAG.BLOOD upon
 +
  creation on the coprse object. The default value is 5.
 +
- Due to multiply requests, TAG.LastLogged is removed just after showing it to
 +
  client. It is still there for the purpose to show real last connection date.
 +
- Added INI setting of MOVERATE (default 100) to change the default moving
 +
  speed of all NPCs at once. Remember, this is percent setting.
 +
- Fixed bless and curse on items which lead to ultimate stats raise.
  
16-02-05, Furio
+
28-05-05, Furio
- Fixed: compatibility things for Linux/BSD build.
+
- Fixed: Corpse not appearing.
 +
- Fixed: CTAG sysmessage on set.
 +
- Fixed: FVAL bug.
  
27-02-05, Furio
+
18-06-05, Vjaka
- Added: STRREV for strings.
+
- Fixed book saving only the first line on each page.
- Reverted to dynamic linked executable for the linux build. That permit some
+
- Fixed exception on allshow.
  exception handling during signal raise.
+
- Fixed console errors when using looms and repair.
  
01-03-05, Vjaka
+
27-06-05, Vjaka
- Fixed gaining fame and exp on summoned pets.
+
- Removed RESOURCES2 line since it never worked at all.
- Faster and more intelligent protection from fastloot like ,emptycontainer. The
+
- Fixed variety of bugs with using some keywords like newitem from functions
   delays for picking now are 0.3 sec per item. Item with amount (popping dialog
+
  called directly from the server (like f_onserver_start). Special char is
   with input) adds extra 0.2 sec delay.
+
   created for this purpose to be acting as a default object.
 +
- Region now executes command for all sectors inside if the command is sector
 +
  one (you can use REGION.all* instead of REGION.SECTORS.all*) for example.
 +
   REGION.SECTORS command is depricated.
 +
- Added StatsFlags setting to cap MAX(HITS/MANA/STAM) status.
  
04-03-05, Vjaka
+
01-07-05, Vjaka
- Fixed an exploit with invalid book packet (thanks Fallout for reporting).
+
- Added f_onserver_exit triggered on server quit. Quite useless since no saves
- Fixed @Destroy event not fired.
+
   are occured after then, but good for launching some prog using sysspawn.
- Added the minimal delay before accepting sell/buy deal equal to 0.3 sec per
+
- Townstones are now listed in status using TOWNLIST command, splitting town
   each item. This limits the power of autobuy/autosell/inject sell all.
+
   and guild stones to different links.
- Added client property CTAG similar to the TAG array. The difference is that
+
- Fixed calling guards on self.
   the contents is not saved, and is destroyed upon logout - useful place to
 
  store your local variables on the client character.
 
  
06-03-05, Furio
+
03-07-05, Vjaka
- Some other fixes to improve Linux build stability.
+
- Fixed fightself bug. It was not fixed before. I did not notice that since do
- Now killing sphere with HUP make the server save and exit.
+
  not use default summon creature spell. Thanks Handred for reporting.
- Added support for 4.0.9 client encryption.
+
- Trying to improve the rate and distance NPC sees characters around. Now it
- Added more comprehensible messages to error output (bad login / garbage / save)
+
  should happen faster, since higher distance is checked in areas with little
 +
  complexity.
 +
- Spawning NPC distance is now more random. Also now spawning checks the
 +
  borders inside disallowing to spawn in unaccessable place. Thus, if you place
 +
  spawn in house and the doors are closed, there is no possibility for NPC to
 +
  spawn outside the house.
 +
- The death now triggers inventory close to avoid appearing fake items inside
 +
  that are no longer in the pack.
  
10-03-05, Vjaka
+
04-07-05, Vjaka
- Fixed placing items from invalid containers upon save loading to world nearby
+
- Fixed impossibility to change type of the object to a non-default one.
  100,100 coords, these items should be deleted, so they are.
 
- Limited amount of items shown to client on screen to MaxItemComplexity*30 (by
 
  default 25*30 = 750).
 
- Removed goldreserve from guilds - use TAGs for this.
 
- Windows: added build date and time to the About box along with the version.
 
  
13-03-05, Furio
+
08-07-05, Furio
- Added SERV.GUILDSTONES.x to referer to the Xth guildstone in the server.
+
- Fixed SERVIP problems (and similar).
  Use SERV.GUILDSTONES.COUNT to get the total number.
+
- Fixed pet killing not giving criminal status to owner.
- Added SERV.TOWNSTONES working like SERV.GUILDSTONES.
+
- Added: client 4.0.11 keys.
- Added MasterUid property also in write mode. Now you can change the guild
+
- Fixed: FVAL 0 now gives 0.0
  master passing the uid as argument.
+
- Touchups on Ef_Walkcheck routines
- Some minor fix to Linux build.
 
  
14-03-05, Vjaka
+
11-07-05, Vjaka
- Optimised object los check, should decrease waste of cpu on large shards.
+
- Fixed ALLCHARS region/sector command.
- Fixed possible webpage exploit with malformed requests.
+
- Fixed typedef bug on save.
- Removed EMAIL property from accounts and all associated commands (EMAIL/
 
  ADDEMAIL,defmessages) - use account TAGs to work with it when needed.
 
- Removed server status responce from the standart ping/telnet connection.
 
- Fixed logging in localy when both RemoteAdmin and Administrator accounts were
 
  not found and LOCALIPADMIN was set.
 
- Fixed misprinted defmessage ncp_* to npc_* (2 matches), sphere_msgs.scp now
 
  comes commented by default - uncomment things only you need to change - most
 
  people will not need this file at all, so by this way we show that.
 
  
14-03-05, Furio
+
17-07-05, Furio
- Temp removed "Limited amount of items shown to client on screen".
+
- Added SERV.RTIME.FORMAT. It takes as args a string like strftime()
- Moved FOLLOW from exe to scripts. Now MEMORY_FOLLOW(01000) is unused.
+
  (the list is here http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+strftime ).
- Modified default info gump with a new one (thx to NHR).
+
  e.g SERV.RTIME.FORMAT %d returns the number of the day.
 +
- Fixed: animal trainer problem with EF_Walkcheck.
 +
- Fixed: magic lock/unlock bugs.
 +
- Fixed: dagger on static crop.
  
17-03-05, Vjaka
+
19-07-05, Vjaka
- Removed EF_No_Pause_Packet, it is built in to code now.
+
- Multithreading now should be more stable.
- Drop item on vendor to trade quick, removed npc_vendor_sell (from 1.0).
+
- Few misc fixes in combat, like added los check.
- Setting SLEEPMASK=0 will give no time to sleeping sectors (from 1.0).
+
- Fixed REGION.ALLCHARS command.
- Optimised few widely used checks like touch check.
 
  
29-03-05, Vjaka
+
19-07-05, Furio
- Removed debug message about not found pathfinding path.
+
- Fixed: creating unnamed chars.
- Fixed bug causing objects disappear on doubleclick.
+
- Fixed: creating chars with no title.
- "Limited amount of items shown to client on screen" is back due this was not
+
- Fixed: creating chars with hacked stats.
  the cause of the previous bug ;).
+
- Fixed: writing on console.
- Removed verbose command. It was anyhow very limited in Release build.
+
- Fixed: problem with spawning with EF Walk flags.
- Added -c command line switch to WIN32 build. It allows changing registered
+
- Fixed: touchups in script pack.
  class name for sphere, which helps working via windows messages with several
+
- Added: hardcoded support for AoS/Se/Ml skills.
  sphere servers on the same machine.
 
  
05-04-05, Vjaka
+
21-07-05, Furio
- Made ARGN1 writeable in @Hunger.
+
- Fixed: Warmode refresh if getting attacked (thx to Torfo).
- Fixed OptionFlags display instead of MagicIngoreAR.
+
- Fixed: Training skill out of skillsum cap.
 +
- Fixed: Viewing hidden clients with higher plevel with allshow.
 +
- Fixed: skill name/key/title in sphere_skills.scp
 +
- Fixed: template mispelled (orge instead of ogre).
 +
- Modified: sphere_map*.scp and sphere_point*.scp are now in map/
 +
subdir.
 +
- Modified: only map0 and map1 scp are loaded, to load the others
 +
uncomment the lines in spheretables.scp
  
11-04-05, Vjaka
+
22-07-05, Cloud_Br (Script pack)
- Packet filtering support heavily expanded. Now you have these variables:
+
- Fixed: buying wool from vendors.
  LOCAL.NUM (value) set to amount of data got from the packet
+
- Fixed: Missing flags in sphere_defs.scp
  LOCAL.STR (string) all data threated as a string (aware of zero chars)
+
- Added: sphere_item_aos_se.scp containing various AoS/Se item defs.
  LOCAL.ACCOUNT (string) current active account if any is logged by the client
+
- Added: spherechar_se.scp containing various npc defs for Se.
  LOCAL.CHAR (uid) current active char if any is logged in from the client
 
  and the all data is now given in LOCAL.x, not the only first 10 bytes.
 
- Returning 1 in PACKETx handler function no longer shows Bad Msg Eat string.
 
- Removing exception on invalid map point in some drop cases.
 
- Account named like account keywords (ADD/BLOCKED/etc) denied for creation.
 
  
12-04-05, Vjaka
+
23-07-05, Furio
- Walking via others with no penalty fixed (now it more like it was before in
+
- Fixed: rock throwed by ogres not decaying.
  the times of 55i - more correct way). You can override this by changing ARGN1
+
- Fixed: cansee e musical item for provocation.
  in @PersonalSpace trigger.
+
- Fixed: npc speak on train.
- Fixed message of guard owners always saying previous region guards owners.
+
- Fixed: animal lore on mounted pets.
  
14-04-05, Vjaka
+
24-07-05, Vjaka
- Fixed Sphere accepting a player character as a valid guard in some cases.
+
- Fixed: default object operations on server. Will not show extra error msgs.
- Fixed guard walking to enemy even if they are cheaters (instantkill enabled).
 
- Added messaging flood control - equal sysmessages one after another will not
 
  be sent to the client (if they are absolutely identifical and no any other
 
  message was between them).
 
- Added STRIP [DIR/] console command. Reads all scripts and outputs them to new
 
  files with only [...], and base definitions lines. Good for giving script to
 
  your gms to be able to use axis with very basic information.
 
  
17-04-05, Vjaka
+
25-07-05, Furio
- Fixed bug with quick trade on player vendors.
+
- Fixed: npc try to attack mounts causing exceptions.
- Fixed an exception caused by empty messages in some client events.
+
- Fixed: mounts disappearing. (thx to Gygrazok and Darkraven)
 +
- Fixed: args not used in trigger @PersonalSpace. (thx to Darkraven)
 +
- Fixed: Map teleports teleporting npcs.
 +
- Added: 4th argument to map teleports. If is set to 1 npcs can use the teleport.
 +
By default is 0. Eg: 1,1,1,0=100,100,100,0=my_teleport=1 is enabled,
 +
1,1,1,0=100,100,100,0=my_teleport=0 or 1,1,1,0=100,100,100,0=my_teleport is
 +
disabled.
  
21-04-05, Furio
+
27-07-05, Vjaka
- Added 4.0.10 client keys.
+
- Fixed: Several exceptions with latest client.
- Fixed: bugs in getting vals from party.
+
- Fixed: Extra error msg for show command when server property was specifyed.
 +
- Fixed: Some more timeslices freeing will decrease useless cpu usage in
 +
  multithreaded mode.
  
21-04-05, Vjaka
+
30-07-05, Furio
- Fixed some cases (not all!) of scripts clearence by specifying incorrect
+
- Fixed: exploit with hair dye gump (choosing random color).
  directory in STRIP command. There are too many ways to specify direct or
+
- Fixed: x/set respecting plevel.
  indirect path that will look different but will lead to the same file
+
- Moved: hair dye gump from exe to scripts.
  starting from symlinks, ending with messing with .. and dir seprarators (\/).
 
  Locking the file is not ok, since it will cause problems with other threads
 
  or applications working with file. So use this either with care, or with no
 
  argument ;)
 
- Added Axis tags support CATEGORY, SUBSECTION, DESCRIPTION to STRIP command. I
 
  do not use them, so did not add that when making the command :).
 
  
23-04-05, Furio
+
30-07-05, Cloud_Br (Script pack)
- Some fixes and optimization for Linux code.
+
- Fixed: problems with spherechars_se.scp
 +
- Added: defs to sphere_backward_compatibility.scp
 +
- Fixed: some areas without guards (map0/map1).
 +
 
 +
30-07-05, Vjaka
 +
- Added: MySQL support to scripts. You can execute any queries and statements,
 +
  as well as get data from mysql link. A special script object similar to the
 +
  FILE or OBJ added and is named DB.
 +
  DB Properties:
 +
    CONNECTED - the current state of database connection (1 or 0)
 +
ROW.NUMROWS - number of rows returned by last query
 +
ROW.NUMCOLS - number of columns returned by last query
 +
ROW.* - list of all columns returned by last query. Both column names and
 +
  numbers are saved in the list, so you can use indexes [0..] or column
 +
  names [id, name, etc] here.
 +
  DB Methods:
 +
    CLOSE - disconnects the SQL server
 +
    CONNECT - connects to the database (using mysql settings in sphere.ini)
 +
EXECUTE - executes SQL query not filling any results anywhere
 +
QUERY - executes SQL query filling ROW.* properties information
 +
  Example of a simple query:
 +
DB.query "SELECT id FROM users WHERE account='<SRC.ACCOUNT.NAME>'"
 +
SERV.log "Got ID = <DB.ROW.id>"
 +
  Note: Server does not create connection upon start, so if you wish to make
 +
    the connection with the server start, add DB.connect to the function
 +
f_onserver_start.
 +
- Fixed: Map support higher than map 0. Now there should be no more problems
 +
  with fix throwing to incorrect Z level (hopefully).
  
03-05-05, Vjaka
+
31-07-05, Radiant
- Fixed bug causing impossibility to dress off items in some cases.
+
- Added: Support for tooltips. Requires OF_Tooltips (02000) and the 020
- Removed background task and all corresponding to it operations, since they
+
  FeaturesLogin flag. Usable in scripts:
  only looked as working, while doing almost nothing.
+
  Every object has a OBJPROPS property, which works like tags. Syntax:
 +
  OBJPROPS.<name>=<locale id>,[args]
 +
  note that <name> can be anything, but the entries are sent in alphabetical
 +
  order. So, for example, a bag, the props would look like this:
  
14-05-2005, Furio
+
  OBJPROPS.a="1048032" // a bag
- Fixed some bugs in client detection.
+
  OBJPROPS.b="1050044,32,450" // ~1_COUNT~ items, ~2_WEIGHT~ stones
- Fixed a bug for too short account name login.
+
- Fixed: exception occuring during load with unknown keys in sphere.ini
- Removed support for encrypted client from 1.25.31 to 1.26.4 (you can use them
 
  only in unencrypted way).
 
- Fixed problems with allshow.
 
- Fixed problems with rand(x,y).
 
- Disabled (temp.) Vjaka's messaging flood control.
 
  
24-05-05, Furio
+
01-08-05, Radiant
- Fixed some bugs for Linux build.
+
- Added: CTAG0 similar to TAG0 version of CTAG.
- Added CanSee check in spellcast.
 
  
25-05-05, Vjaka
+
03-08-05, Radiant
- Added OF_Flood_Protection as a control of toggling appearence of same
+
- Horses are now forced to dismount and will die if someone is riding them and
  messages and sysmessages one after another. Note, that this setting is always
+
   they have statf_dead set or their hitpoints are 0 or below. This should fix
   off for PLEVEL 2 or upper, so GMs will always get everything.
+
   the "ghost" horses appearing sometimes (when horse is poisoned and ridden).
- Fixed copses giving unlimited blood amount. Now, the corpse gets TAG.BLOOD
 
  upon creation to TAG.MAXBLOOD of itemdef. You can also alter TAG.BLOOD upon
 
  creation on the coprse object. The default value is 5.
 
- Due to multiply requests, TAG.LastLogged is removed just after showing it to
 
   client. It is still there for the purpose to show real last connection date.
 
- Added INI setting of MOVERATE (default 100) to change the default moving
 
  speed of all NPCs at once. Remember, this is percent setting.
 
- Fixed bless and curse on items which lead to ultimate stats raise.
 
  
28-05-05, Furio
+
08-08-05, Furio
- Fixed: Corpse not appearing.
+
- Fixed: CTAG0 when setting a value.
- Fixed: CTAG sysmessage on set.
+
- Updated: sphere_backward_compatibility.scp
- Fixed: FVAL bug.
+
- Added: FILE obj, enabled by Of_File_Commands. Look in manual.txt for help.
  
18-06-05, Vjaka
+
08-08-05, Vjaka
- Fixed book saving only the first line on each page.
+
- Added: SQL support for multiply rows. You can use both ways ROW.<column#> and
- Fixed exception on allshow.
+
  ROW.<row#>.<column#> for addressing a field you are interested in, but the
- Fixed console errors when using looms and repair.
+
  first method allows operating on row #0 only.
 +
  Sample full-n-ready script to show how to use this feature:
 +
DB.connect
 +
if ( <DB.connected> )
 +
db.query "SELECT * FROM mytable"
 +
for R 0 <eval <DB.ROW.NUMROWS>-1>
 +
SERV.log "--- ROW #<eval <LOCAL.R>> ---"
 +
for C 0 <eval <DB.ROW.NUMCOLS>-1>
 +
SERV.log ".. COLUMN #<LOCAL.C> : <DB.ROW.<eval <LOCAL.R>>.<eval <LOCAL.C>>>"
 +
end
 +
end
 +
endif
 +
- Added: a possibility to specify MySQL port. Just add ':port' to the host
 +
  record.
 +
- Fixed: account references in several cases leading to errors.
  
27-06-05, Vjaka
+
11-08-05, Radiant
- Removed RESOURCES2 line since it never worked at all.
+
- Fixed 'undefined keyword' error on SKILLMENU with not enough resources on player
- Fixed variety of bugs with using some keywords like newitem from functions
 
  called directly from the server (like f_onserver_start). Special char is
 
  created for this purpose to be acting as a default object.
 
- Region now executes command for all sectors inside if the command is sector
 
  one (you can use REGION.all* instead of REGION.SECTORS.all*) for example.
 
  REGION.SECTORS command is depricated.
 
- Added StatsFlags setting to cap MAX(HITS/MANA/STAM) status.
 
  
01-07-05, Vjaka
+
13-08-05, Exer (Script pack)
- Added f_onserver_exit triggered on server quit. Quite useless since no saves
+
- Added: sphere_item_building_roofs_se.scp (SE roofing items)
  are occured after then, but good for launching some prog using sysspawn.
+
- Added: sphere_item_building_walls_se.scp (SE wall items)
- Townstones are now listed in status using TOWNLIST command, splitting town
+
- Added: sphere_item_magic_necromancer_aos.scp (SE necromacer items)
  and guild stones to different links.
 
- Fixed calling guards on self.
 
  
03-07-05, Vjaka
+
13-08-05, Cloud_Br (Script pack)
- Fixed fightself bug. It was not fixed before. I did not notice that since do
+
- Updated: sphere_backward_compatibility.scp
  not use default summon creature spell. Thanks Handred for reporting.
+
- Updated: sphere_region.scp
- Trying to improve the rate and distance NPC sees characters around. Now it
+
- Added: sphere_chars_newer.scp (All monsters of AoS/SE)
  should happen faster, since higher distance is checked in areas with little
+
- Removed: sphere_chars_aos_se.scp (Obsolete, sobstituted by chars_newer.scp)
  complexity.
 
- Spawning NPC distance is now more random. Also now spawning checks the
 
  borders inside disallowing to spawn in unaccessable place. Thus, if you place
 
  spawn in house and the doors are closed, there is no possibility for NPC to
 
  spawn outside the house.
 
- The death now triggers inventory close to avoid appearing fake items inside
 
  that are no longer in the pack.
 
  
04-07-05, Vjaka
+
15-08-05, Vjaka
- Fixed impossibility to change type of the object to a non-default one.
+
- Added: AutoResDisp ini setting (default:0) to setup this resdisp by default
 +
  to all accounts. Useful if all your clients are using at least some client.
 +
  Recommended setting at least 1 (T2A).
  
08-07-05, Furio
+
15-08-05, Radiant
- Fixed SERVIP problems (and similar).
+
- Fixed: potential buffer overflow exploit in file write operations
- Fixed pet killing not giving criminal status to owner.
+
  Also saves one string operation, it's gotten a little faster.
- Added: client 4.0.11 keys.
+
- Fixed: CTAG/CTAG0 got broken in last fix
- Fixed: FVAL 0 now gives 0.0
+
- Fixed: Extremely long save times
- Touchups on Ef_Walkcheck routines
+
- Moved: .admin from executable to scripts and completely rewritten it.
 +
  Please copy sphere_admin.scp from the script pack. Same is going to happen
 +
  to .tweak.
  
11-07-05, Vjaka
+
16-08-05, Rattlehead (Script pack)
- Fixed ALLCHARS region/sector command.
+
- Added: sphere_item_building_floors_se.scp (SE floor items)
- Fixed typedef bug on save.
+
- Added: sphere_item_misc_se.scp (SE misc items)
  
17-07-05, Furio
+
18-08-05, Radiant
- Added SERV.RTIME.FORMAT. It takes as args a string like strftime()
+
- Added: exception catching around more save sections, should give a better
   (the list is here http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+strftime ).
+
   description if a save error occurs
   e.g SERV.RTIME.FORMAT %d returns the number of the day.
+
- Added: sphere no longer cares if an npc is riding a valid horse, so you can
- Fixed: animal trainer problem with EF_Walkcheck.
+
  just add a horse item
- Fixed: magic lock/unlock bugs.
+
- Script sphere_admin.scp:
- Fixed: dagger on static crop.
+
  - Staff can see their own IP
 +
  - Invisible staff is now printed in red
 +
   - Added summon cage
 +
- Fixed: problem in saves and allskills, no check if skill is defined or not.
 +
  Broke saves (naked players) on some servers with not all skills (AOS and SE) defined.
 +
- Fixed: Disconnected NPCs (horses) being seen if rider is gone (probably! need feedback)
  
19-07-05, Vjaka
+
18-08-05, Gygrazok (Script pack)
- Multithreading now should be more stable.
+
- Modified: sphere_admin.scp:
- Few misc fixes in combat, like added los check.
+
  - Start position of dialogs set to 0,21
- Fixed REGION.ALLCHARS command.
+
  - Default page of the tweaking menu set to "action"
 +
  - + shown before account name for higher privs and - before guest accounts (like the old admin panel)
 +
  - Removed PLevel informations in main page to get more space for char name
 +
  - Closing tweak dialog brings back to main page
 +
  - Added number of online clients in the main page title and changed "Administration Console"
 +
    to "Admin Panel", which is shorter
 +
  - Added "remove note" button
 +
  - Fixed: extra page if you have 15 clients only
  
19-07-05, Furio
+
19-08-05, Furio
- Fixed: creating unnamed chars.
+
- Removed: OF_Tooltip
- Fixed: creating chars with no title.
+
- Removed: Features/FeaturesLogin
- Fixed: creating chars with hacked stats.
+
- Removed: @CreatePlayer
- Fixed: writing on console.
+
- Added: Feature(T2A/LBR/AOS/SE/ML) to use feature expansion. Look in sphere.ini for usage.
- Fixed: problem with spawning with EF Walk flags.
+
- Added: f_onchar_create in sphere_serv_triggers.scp. With newer clients you'll get
- Fixed: touchups in script pack.
+
ARGN1 flags - ARGN2 profession chosen - ARGN3 elf
- Added: hardcoded support for AoS/Se/Ml skills.
+
- Added: TRYSRV. It works like TRYSRC but putting automatically as src the server.
 +
- Scripts: Added TRYSRV as plevel 7 command. I highly recommend everyone does this!
  
21-07-05, Furio
+
19-08-05, Radiant
- Fixed: Warmode refresh if getting attacked (thx to Torfo).
+
- Scripts: Added TRYSRC as plevel 7 command. I highly recommend everyone does this!
- Fixed: Training skill out of skillsum cap.
+
- Fixed: d console command (area dump) was broken a while ago
- Fixed: Viewing hidden clients with higher plevel with allshow.
 
- Fixed: skill name/key/title in sphere_skills.scp
 
- Fixed: template mispelled (orge instead of ogre).
 
- Modified: sphere_map*.scp and sphere_point*.scp are now in map/
 
subdir.
 
- Modified: only map0 and map1 scp are loaded, to load the others
 
uncomment the lines in spheretables.scp
 
  
22-07-05, Cloud_Br (Script pack)
+
21-08-05, Vjaka
- Fixed: buying wool from vendors.
+
- Fixed: 2 exploits due to bad player name parsing (thanks XD for reporting).
- Fixed: Missing flags in sphere_defs.scp
 
- Added: sphere_item_aos_se.scp containing various AoS/Se item defs.
 
- Added: spherechar_se.scp containing various npc defs for Se.
 
  
23-07-05, Furio
+
21-08-05, Radiant
- Fixed: rock throwed by ogres not decaying.
+
- Made ROOM object accessable on everything. It is used like REGION, but for ROOMDEF.
- Fixed: cansee e musical item for provocation.
 
- Fixed: npc speak on train.
 
- Fixed: animal lore on mounted pets.
 
  
24-07-05, Vjaka
+
22-08-05, Furio
- Fixed: default object operations on server. Will not show extra error msgs.
+
- Fixed: Crash on sell for older clients.
 +
- Fixed: Tooltip not working also if correct ini flags are set.
 +
- Fixed: i_blood_2 created by sphere during hits not decaying.
 +
- Added: TFLAGS accessable as SERV.ITEMDEF.defname.TFLAGS to get tiledata flags of the item.
 +
- Added: p# dump all profiler data to profiler_dump.txt
  
25-07-05, Furio
+
23-08-05, Radiant
- Fixed: npc try to attack mounts causing exceptions.
+
- Added: more exception catching to CSector::OnTick, should print more descriptive errors now
- Fixed: mounts disappearing. (thx to Gygrazok and Darkraven)
+
- Fixed: resource gathering bug (mining fishes when switching from pickaxe to fishing rod, etc)
- Fixed: args not used in trigger @PersonalSpace. (thx to Darkraven)
+
  (resource gathering skill is now aborted if resource gathering tool is unequipped)
- Fixed: Map teleports teleporting npcs.
 
- Added: 4th argument to map teleports. If is set to 1 npcs can use the teleport.
 
By default is 0. Eg: 1,1,1,0=100,100,100,0=my_teleport=1 is enabled,
 
1,1,1,0=100,100,100,0=my_teleport=0 or 1,1,1,0=100,100,100,0=my_teleport is
 
disabled.
 
  
27-07-05, Vjaka
+
23-08-05, Vjaka
- Fixed: Several exceptions with latest client.
+
- Fixed: fatal exceptions referencing PARTY methods (PARTY.MEMBERS) from NPC.
- Fixed: Extra error msg for show command when server property was specifyed.
+
- Fixed: account references for writing in scripts under low-privileged accounts.
- Fixed: Some more timeslices freeing will decrease useless cpu usage in
+
  Both ways SRC.ACCOUNT.xxx and SERV.ACCOUNT.name.xxx are accessable this way.
  multithreaded mode.
+
- Fixed: invalid message when unlocking container told that I locked it.
 +
- Fixed: NPC_AI_FOOD now obeys homedist and will not search out of the range.
 +
- Fixed: NPC_AI_EXTRA caused npcs moving stonewalls and other spells :)
 +
- Fixed: Pathfinding broken by some of the later changes.
  
30-07-05, Furio
+
23-08-05, Lynchy (Script pack)
- Fixed: exploit with hair dye gump (choosing random color).
+
- Added: NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)
- Fixed: x/set respecting plevel.
 
- Moved: hair dye gump from exe to scripts.
 
  
30-07-05, Cloud_Br (Script pack)
+
24-08-05, Furio
- Fixed: problems with spherechars_se.scp
+
- Added: Support for elf body (and ghost) in game.
- Added: defs to sphere_backward_compatibility.scp
+
- Added: Client keys for 5.0.0.
- Fixed: some areas without guards (map0/map1).
+
- Added: TAG.MAXPLAYERPETS to Stabler. It's the maximum limits of pets that a player
 +
can stable. If not setted is 10.
 +
- Added: @UserGuildButton for the new guild button on client.
 +
- Added: @UserQuestButton for the new quest button on client.
 +
- Fixed: Spellbook with newer clients (displaying/selecting spell).
 +
- Fixed: Elf NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)
 +
- Updated: grayproto to support ML quest button.
 +
- Updated: spheretables.scp (changed plevel of some commands for better security)
  
30-07-05, Vjaka
+
24-08-05, Vjaka
- Added: MySQL support to scripts. You can execute any queries and statements,
+
- Added: CombatFlags ini setting. Currently it controls two aspects of the
  as well as get data from mysql link. A special script object similar to the
+
   bounce back effect in combat.
   FILE or OBJ added and is named DB.
+
- Fixed: Reference to SERV from some triggers including @Enter in regions.
  DB Properties:
+
- Fixed: House regions creation for maps bigger than 0.
    CONNECTED - the current state of database connection (1 or 0)
+
- Fixed: Players unavailable to call guards on NPCs.
ROW.NUMROWS - number of rows returned by last query
+
- Fixed: Trigger command that did not work on characters.
ROW.NUMCOLS - number of columns returned by last query
 
ROW.* - list of all columns returned by last query. Both column names and
 
  numbers are saved in the list, so you can use indexes [0..] or column
 
  names [id, name, etc] here.
 
  DB Methods:
 
    CLOSE - disconnects the SQL server
 
    CONNECT - connects to the database (using mysql settings in sphere.ini)
 
EXECUTE - executes SQL query not filling any results anywhere
 
QUERY - executes SQL query filling ROW.* properties information
 
  Example of a simple query:
 
DB.query "SELECT id FROM users WHERE account='<SRC.ACCOUNT.NAME>'"
 
SERV.log "Got ID = <DB.ROW.id>"
 
  Note: Server does not create connection upon start, so if you wish to make
 
    the connection with the server start, add DB.connect to the function
 
f_onserver_start.
 
- Fixed: Map support higher than map 0. Now there should be no more problems
 
  with fix throwing to incorrect Z level (hopefully).
 
  
31-07-05, Radiant
+
25-08-05, Radiant
- Added: Support for tooltips. Requires OF_Tooltips (02000) and the 020
+
- Removed: OBJPROPS
   FeaturesLogin flag. Usable in scripts:
+
- Rewritten tooltips to use a trigger. There is @ClientTooltip on items and characters.
  Every object has a OBJPROPS property, which works like tags. Syntax:
+
  (in the world, only non-static, movable items)
  OBJPROPS.<name>=<locale id>,[args]
+
   You can use ADDCLILOC on the client in this trigger (SRC), syntax:
  note that <name> can be anything, but the entries are sent in alphabetical
+
  ADDCLILOC <cliloc id>,[arguments]
  order. So, for example, a bag, the props would look like this:
+
  Arguments can also be NULL, to skip an argument.
 
+
  If this trigger returns 0 or nothing, some default properties will be added to the tooltip
  OBJPROPS.a="1048032" // a bag
+
  depending on the type.
  OBJPROPS.b="1050044,32,450" // ~1_COUNT~ items, ~2_WEIGHT~ stones
+
  If it returns 1, no default properties will be added (but the tooltip still be sent).
- Fixed: exception occuring during load with unknown keys in sphere.ini
+
- Added: @GetTooltip (ARGO = item being sent for) for players. This is like @itemEquip, etc.
 +
  Fired before @ClientTooltip, if returns 1 @ClientTooltip is skipped.
 +
  Try keeping these triggers light, because they will be fired alot.
 +
- Added: f_onserver_save_finished, called after save is completely done
 +
  (ARGS is time it took to save in seconds, 4 digit precision)
 +
- Fixed: exploit to cast spells faster than normal (i.e. cast first clumsy then flamestrike)
 +
  with precasting enabled.
 +
- Added: COMMANDPREFIX ini setting. Default is .
  
01-08-05, Radiant
+
25-08-05, Lynchy (Script pack)
- Added: CTAG0 similar to TAG0 version of CTAG.
+
- Added some Mondain's Legacy items (not complete yet)
  
03-08-05, Radiant
+
26-08-05, Radiant
- Horses are now forced to dismount and will die if someone is riding them and
+
- Fixed: MASTERUID no longer changes loyalty, should fix the errors (was undesired behaviour too imo)
   they have statf_dead set or their hitpoints are 0 or below. This should fix
+
  Note that in order for this setting to work the person you set this to has to be a full member
   the "ghost" horses appearing sometimes (when horse is poisoned and ridden).
+
   of the guild.
 +
- Fixed: REMOVE not working in @EquipTest
 +
- Added: Encryption keys for clients are now in SphereCrypt.ini. When new clients come out,
 +
   the new keys can just be added here without the need to upgrade sphere.
  
08-08-05, Furio
+
26-08-05, Furio
- Fixed: CTAG0 when setting a value.
+
- Fixed: Tooltip sent to wrong client version making them crash.
- Updated: sphere_backward_compatibility.scp
+
- Updated: sphere_defs.scp
- Added: FILE obj, enabled by Of_File_Commands. Look in manual.txt for help.
 
  
08-08-05, Vjaka
+
26-08-05, Cloud_Br (Script pack)
- Added: SQL support for multiply rows. You can use both ways ROW.<column#> and
+
- Updated: sphere_chars_newer.scp (Monsters of AoS/SE)
  ROW.<row#>.<column#> for addressing a field you are interested in, but the
 
  first method allows operating on row #0 only.
 
  Sample full-n-ready script to show how to use this feature:
 
DB.connect
 
if ( <DB.connected> )
 
db.query "SELECT * FROM mytable"
 
for R 0 <eval <DB.ROW.NUMROWS>-1>
 
SERV.log "--- ROW #<eval <LOCAL.R>> ---"
 
for C 0 <eval <DB.ROW.NUMCOLS>-1>
 
SERV.log ".. COLUMN #<LOCAL.C> : <DB.ROW.<eval <LOCAL.R>>.<eval <LOCAL.C>>>"
 
end
 
end
 
endif
 
- Added: a possibility to specify MySQL port. Just add ':port' to the host
 
  record.
 
- Fixed: account references in several cases leading to errors.
 
  
11-08-05, Radiant
+
26-08-05, Gygrazok (Script pack)
- Fixed 'undefined keyword' error on SKILLMENU with not enough resources on player
+
- Added: sphere_item_deco_mini_houses.scp (House miniatures of AoS)
  
13-08-05, Exer (Script pack)
+
28-08-05, Furio
- Added: sphere_item_building_roofs_se.scp (SE roofing items)
+
- Fixed: mem leak in CGTypedArray (and derived one).
- Added: sphere_item_building_walls_se.scp (SE wall items)
 
- Added: sphere_item_magic_necromancer_aos.scp (SE necromacer items)
 
  
13-08-05, Cloud_Br (Script pack)
+
28-08-05, Radiant
- Updated: sphere_backward_compatibility.scp
+
- Added: missing @itemClientTooltip trigger causing wrong triggers to be fired
- Updated: sphere_region.scp
+
- Removed: @GetTooltip. Please use @itemClientTooltip trigger now, argo = item
- Added: sphere_chars_newer.scp (All monsters of AoS/SE)
+
  tooltip being sent for (in both @ClientTooltip and @itemClientTooltip)
- Removed: sphere_chars_aos_se.scp (Obsolete, sobstituted by chars_newer.scp)
+
- Added: Notoriety title and guild abbreviation to default character tooltip
 +
- Changed: Tooltips added in triggers now show below the name if return 0
 +
- Fixed: Game Master title no longer shows on tooltip with privshow off
 +
- Added: Elf bodies to sphere's internal list of humanoids
 +
- Fixed: mem leak in sorted variable arrays (DEF/TAG/CTAG/VAR/LOCAL/etc)
  
15-08-05, Vjaka
+
30-08-05, Vjaka
- Added: AutoResDisp ini setting (default:0) to setup this resdisp by default
+
- Added: GenericSounds ini settings to enable/disable all sounds.
  to all accounts. Useful if all your clients are using at least some client.
+
- Removed: PlayerGhostSounds since it was not checked anywhere.
  Recommended setting at least 1 (T2A).
 
  
15-08-05, Radiant
+
30-08-05, Cloud_Br (Script pack)
- Fixed: potential buffer overflow exploit in file write operations
+
- Removed: spherechars_newer.scp
  Also saves one string operation, it's gotten a little faster.
+
- Added: spherechar_lbr.scp (Lbr monsters)
- Fixed: CTAG/CTAG0 got broken in last fix
+
- Added: spherechar_aos.scp (AoS monsters)
- Fixed: Extremely long save times
+
- Added: spherechar_se.scp (SE monsters)
- Moved: .admin from executable to scripts and completely rewritten it.
+
- Updated: sphere_item_building_others.scp
  Please copy sphere_admin.scp from the script pack. Same is going to happen
 
  to .tweak.
 
  
16-08-05, Rattlehead (Script pack)
+
02-09-05, Cloud_Br (Script pack)
- Added: sphere_item_building_floors_se.scp (SE floor items)
+
- Updated: sphere_defs.scp (new sounds)
- Added: sphere_item_misc_se.scp (SE misc items)
+
- Updated: spherechar_lbr.scp (Lbr monsters)
 +
- Updated: spherechar_aos.scp (AoS monsters)
 +
- Updated: spherechar_se.scp (SE monsters)
 +
- Updated: sphere_item_building_others.scp
 +
- Added: sphere_item_icons_new.scp (icons from new expansions)
  
18-08-05, Radiant
+
03-09-2005, Furio
- Added: exception catching around more save sections, should give a better
+
- Fixed: PARTY references (master/member)
  description if a save error occurs
+
- Fixed: hue/hair/beard for elf selectable on char creation
- Added: sphere no longer cares if an npc is riding a valid horse, so you can
+
- Updated: sphere protocol (accepts tooltip refresh requests from new clients)
  just add a horse item
+
- Added: ISINPARTY to char (check if a player is in party)
- Script sphere_admin.scp:
+
- Added: UseDefaultSource (default: 0) if enabled SERV fallback to its default
  - Staff can see their own IP
+
  source when executing commands. You shold set this to 1 if you are operating
  - Invisible staff is now printed in red
+
   with any new objects from functions called directly from the server, like
  - Added summon cage
+
  f_onaccount_login, f_onserver_start and so on.
- Fixed: problem in saves and allskills, no check if skill is defined or not.
 
   Broke saves (naked players) on some servers with not all skills (AOS and SE) defined.
 
- Fixed: Disconnected NPCs (horses) being seen if rider is gone (probably! need feedback)
 
  
18-08-05, Gygrazok (Script pack)
+
05-09-2005, Furio
- Modified: sphere_admin.scp:
+
- Updated: Sphere now support the internal client cache for tooltips. This will
  - Start position of dialogs set to 0,21
+
   avoid wasting of bandwith and client crashes.
  - Default page of the tweaking menu set to "action"
 
  - + shown before account name for higher privs and - before guest accounts (like the old admin panel)
 
   - Removed PLevel informations in main page to get more space for char name
 
  - Closing tweak dialog brings back to main page
 
  - Added number of online clients in the main page title and changed "Administration Console"
 
    to "Admin Panel", which is shorter
 
  - Added "remove note" button
 
  - Fixed: extra page if you have 15 clients only
 
  
19-08-05, Furio
+
05-09-2005, Radiant
- Removed: OF_Tooltip
+
- Fixed: incorrect info on tooltips for some types
- Removed: Features/FeaturesLogin
 
- Removed: @CreatePlayer
 
- Added: Feature(T2A/LBR/AOS/SE/ML) to use feature expansion. Look in sphere.ini for usage.
 
- Added: f_onchar_create in sphere_serv_triggers.scp. With newer clients you'll get
 
ARGN1 flags - ARGN2 profession chosen - ARGN3 elf
 
- Added: TRYSRV. It works like TRYSRC but putting automatically as src the server.
 
- Scripts: Added TRYSRV as plevel 7 command. I highly recommend everyone does this!
 
  
19-08-05, Radiant
+
06-09-2005, Vjaka
- Scripts: Added TRYSRC as plevel 7 command. I highly recommend everyone does this!
+
- Fixed: some operations workability (SERV.new*) called from functions that are
- Fixed: d console command (area dump) was broken a while ago
+
  run directly by the server. This disables both the default script object and
 +
  UseDefaultSource.
 +
- Fixed: rescount-like operations when arguments was specifyed.
 +
- Denied account auto-creation with first character numeric to avoid server
 +
  confusion to treat this account as index or a valid name in some operations.
 +
- Fixed: win32 server crash if server name was too long.
  
21-08-05, Vjaka
+
06-09-2005, Furio
- Fixed: 2 exploits due to bad player name parsing (thanks XD for reporting).
+
- Added: SCREENSIZE to access the game window size if the client supports that.
 +
  You can access that via SCREENSIZE.X and SCREENSIZE.Y.
 +
- Added: RESENDTOOLTIP. Calling that on the object you need to resend tooltip.
 +
  Since clients use a cache for tooltip, if you want to force the cache too use
 +
  RESENDTOOLTIP 1.
 +
- Fixed: REMOVEFROMVIEW/TARGET(FGW) not working.
  
21-08-05, Radiant
+
08-09-2005, Vjaka
- Made ROOM object accessable on everything. It is used like REGION, but for ROOMDEF.
+
- Fixed: several errors with sql queries.
 +
- Added: AutoPrivFlags to specify auto PRIV flags for new accounts.
 +
- Added: ARGN1 to f_onaccount_login specifying account type. Most common values
 +
  are 3(login), 4(go to game), 5(http), 6(telnet).
 +
- Added: HitsHungerLoss to specify char hits percents lost on starving tick.
 +
- Added: TAG.NOSAVE tag for objects. If set to 1 the object will NOT be saved
 +
  when the world save will take place.
 +
- Fixed: NEW* commands on characters not modifying character's ACT.
  
22-08-05, Furio
+
08-09-2005, Furio
- Fixed: Crash on sell for older clients.
+
- Fixed: SCREENSIZE.X/.Y not working.
- Fixed: Tooltip not working also if correct ini flags are set.
+
- Added: CLIENTIS3D. Returns 1 if is a client is 3D.
- Fixed: i_blood_2 created by sphere during hits not decaying.
+
- Removed: Client support for clients older than 1.26.00 (they're awfully old).
- Added: TFLAGS accessable as SERV.ITEMDEF.defname.TFLAGS to get tiledata flags of the item.
+
- ReDone: Unencrypted client support. UseNoCrypt now is a bool 1 means that
- Added: p# dump all profiler data to profiler_dump.txt
+
  unencrypted client are allowed to login. If ClientVersion in sphere.ini is
 +
  setted to some value (e.g. 4.0.0) then only that client version will login
 +
  (this is valid for encrypted and unencrypted clients). Note that sometimes
 +
  unencrypted clients sometimes are dumb and sphere not recognize them properly
 +
  (and thus disconnected), but after restarting the client it's all ok.
 +
- Modified: REPORTEDCLIVER. It contains the version of the unencrypted client
 +
  without any trailing letter. To get the complete version (e.g 4.0.11f) use
 +
  REPORTEDCLIVER.1.
 +
- Modified: Disabled support for client tooltip cache (it'll be re-enabled after
 +
  a re-write).
  
23-08-05, Radiant
+
08-09-2005, Cloud_Br (Script pack)
- Added: more exception catching to CSector::OnTick, should print more descriptive errors now
+
- Updated: sphere_map_points3.scp
- Fixed: resource gathering bug (mining fishes when switching from pickaxe to fishing rod, etc)
+
- Updated: sphere_item_profession.scp
   (resource gathering skill is now aborted if resource gathering tool is unequipped)
+
- Added: addons/worldfiles.zip. It contains a fully spawned world for Felluca,
 +
   Ilshenar and Malas.
  
23-08-05, Vjaka
+
09-09-2005, Furio
- Fixed: fatal exceptions referencing PARTY methods (PARTY.MEMBERS) from NPC.
+
- Moved: Hardcoded mount/mountid list from exe to scripts.
- Fixed: account references for writing in scripts under low-privileged accounts.
+
- Updated: sphere_defs.scp with the mount/mountid list. Read the comments to
   Both ways SRC.ACCOUNT.xxx and SERV.ACCOUNT.name.xxx are accessable this way.
+
   know how to edit it.
- Fixed: invalid message when unlocking container told that I locked it.
+
- Fixed: READLINE returning blank line.
- Fixed: NPC_AI_FOOD now obeys homedist and will not search out of the range.
+
- Fixed: Referring to party outputs a debug message.
- Fixed: NPC_AI_EXTRA caused npcs moving stonewalls and other spells :)
 
- Fixed: Pathfinding broken by some of the later changes.
 
  
23-08-05, Lynchy (Script pack)
+
09-09-2005, Vjaka
- Added: NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)
+
- Fixed: Popup menus not calling SELL, BUY speech triggers on NPCs.
 +
- Added: LBR mounts IDs to the mount defnames.
 +
- Fixed: mounting later npcs since they were treated being brain_human.
  
24-08-05, Furio
+
10-09-2005, Cloud_Br (Script pack)
- Added: Support for elf body (and ghost) in game.
+
- Fixed: some guarded areas on sphere_map2.scp that should be guarded.
- Added: Client keys for 5.0.0.
+
- Fixed: names on sphere_map1.scp (Britain being Britain too, so when you
- Added: TAG.MAXPLAYERPETS to Stabler. It's the maximum limits of pets that a player
+
  typed .go britain you were going to MAP 1), now all trammel places have
can stable. If not setted is 10.
+
  "Trammel <local name>".
- Added: @UserGuildButton for the new guild button on client.
+
- Fixed: some errors on addons/worldfiles.zip.
- Added: @UserQuestButton for the new quest button on client.
+
- Added: new mounts on sphere_chars_new_mounts.scp and their icons.
- Fixed: Spellbook with newer clients (displaying/selecting spell).
+
- Added: new mounts sounds to sphere_defs.scp
- Fixed: Elf NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)
+
- Added: some HTML defs to sphere_defs.scp
- Updated: grayproto to support ML quest button.
 
- Updated: spheretables.scp (changed plevel of some commands for better security)
 
  
24-08-05, Vjaka
+
10-09-2005, Rattlehead (Script pack)
- Added: CombatFlags ini setting. Currently it controls two aspects of the
+
- Added: new mounts defs to sphere_defs.scp
  bounce back effect in combat.
+
- Added: new mounts defs to spherechar_mondain_legacy.scp
- Fixed: Reference to SERV from some triggers including @Enter in regions.
 
- Fixed: House regions creation for maps bigger than 0.
 
- Fixed: Players unavailable to call guards on NPCs.
 
- Fixed: Trigger command that did not work on characters.
 
  
25-08-05, Radiant
+
12-09-2005, Furio
- Removed: OBJPROPS
+
- Added: WOPCOLOR/WOPFONT to set color/font of Word of Powers.
- Rewritten tooltips to use a trigger. There is @ClientTooltip on items and characters.
+
- Added: TAG.OVERRIDE_SKILL applied to a weapon override the SKILL= field.
  (in the world, only non-static, movable items)
+
   Attention is a 1 based field so... 1 means Alchemy and so on.
  You can use ADDCLILOC on the client in this trigger (SRC), syntax:
+
- Modified: now PACKETxx in .ini accept values from 0 to 255.
  ADDCLILOC <cliloc id>,[arguments]
+
- Modified: item, with attr not containing 010 or 08000, dropped by player
  Arguments can also be NULL, to skip an argument.
+
   on sea or black tile will insta-decay. RETURN 1 on DropOn_Ground
  If this trigger returns 0 or nothing, some default properties will be added to the tooltip
+
   avoid that thing.
  depending on the type.
 
   If it returns 1, no default properties will be added (but the tooltip still be sent).
 
- Added: @GetTooltip (ARGO = item being sent for) for players. This is like @itemEquip, etc.
 
  Fired before @ClientTooltip, if returns 1 @ClientTooltip is skipped.
 
  Try keeping these triggers light, because they will be fired alot.
 
- Added: f_onserver_save_finished, called after save is completely done
 
   (ARGS is time it took to save in seconds, 4 digit precision)
 
- Fixed: exploit to cast spells faster than normal (i.e. cast first clumsy then flamestrike)
 
   with precasting enabled.
 
- Added: COMMANDPREFIX ini setting. Default is .
 
  
25-08-05, Lynchy (Script pack)
+
14-09-2005, Vjaka
- Added some Mondain's Legacy items (not complete yet)
+
- Added: warning msg if chardef does not have any CAN flags specifyed.
 +
- Added: error msg if RESOURCES line contains errors inside.
 +
- Fixed: NPC item equipping not having mt_equip flag.
 +
- Fixed: dialog command TILEPICHUE nor working.
  
26-08-05, Radiant
+
18-09-2005, Cloud_Br (Script pack)
- Fixed: MASTERUID no longer changes loyalty, should fix the errors (was undesired behaviour too imo)
+
- Fixed: some errors on spherechar_lbr.scp
  Note that in order for this setting to work the person you set this to has to be a full member
 
  of the guild.
 
- Fixed: REMOVE not working in @EquipTest
 
- Added: Encryption keys for clients are now in SphereCrypt.ini. When new clients come out,
 
  the new keys can just be added here without the need to upgrade sphere.
 
  
26-08-05, Furio
+
19-09-2005, Vjaka
- Fixed: Tooltip sent to wrong client version making them crash.
+
- Fixed: wopfont not working.
- Updated: sphere_defs.scp
+
- Optimized vendor templates storage. Now vendor does not keep all the items to
 +
  be sold or bought from players all the time, but generate this list on the
 +
  first query and invalidate after some time. It will save your server and save
 +
  from tons of objects not actualy in the world.
  
26-08-05, Cloud_Br (Script pack)
+
19-09-2005, Furio
- Updated: sphere_chars_newer.scp (Monsters of AoS/SE)
+
- Fixed: HITPOINTS not working.
 +
- Modified: SYSPAWN/SYSCMD on *Nix build should work now.
  
26-08-05, Gygrazok (Script pack)
+
20-09-2005, Vjaka
- Added: sphere_item_deco_mini_houses.scp (House miniatures of AoS)
+
- Added: COMMANDTRIGGER setting. If set, each command the client is entering by
 +
  .something will be given to the function first. If it returns 1, the default
 +
  action is not taken. This allows overriding default commands.
  
28-08-05, Furio
+
21-09-2005, Cloud_Br (Script pack)
- Fixed: mem leak in CGTypedArray (and derived one).
+
- Added: addons/Champion_Spawn.zip. A functional Champion Spawn system for Sphere.
  
28-08-05, Radiant
+
21-09-2005, Furio
- Added: missing @itemClientTooltip trigger causing wrong triggers to be fired
+
- Fixed: Spellbook content not correctly sent to newer clients.
- Removed: @GetTooltip. Please use @itemClientTooltip trigger now, argo = item
+
- Fixed: SHRINK not working.
  tooltip being sent for (in both @ClientTooltip and @itemClientTooltip)
+
- Fixed: carving corpse not working.
- Added: Notoriety title and guild abbreviation to default character tooltip
+
- Fixed: using .commands with GM body.
- Changed: Tooltips added in triggers now show below the name if return 0
+
- Modified: tooltip info on spellbooks.
- Fixed: Game Master title no longer shows on tooltip with privshow off
+
- Modified: Damage on head for newer client now use newer packet.
- Added: Elf bodies to sphere's internal list of humanoids
+
- Modified: FeatureAOS in sphere.ini. Look in to know how it works.
- Fixed: mem leak in sorted variable arrays (DEF/TAG/CTAG/VAR/LOCAL/etc)
+
- Added: support for All Names in 3d clients and newer 2d (ctrl+shift macro).
  
30-08-05, Vjaka
+
22-09-2005, Vjaka
- Added: GenericSounds ini settings to enable/disable all sounds.
+
- Fixed: Open paperdoll popup menu on self dismounting from horse.
- Removed: PlayerGhostSounds since it was not checked anywhere.
+
- Modified: Resync executed in a fast mode will not broadcast notes to clients.
 +
- Modified: Low hungry level does not damage in safe zones, and in underground
 +
  for NPCs.
 +
- Fixed: ARGO reference when no property was specifyed.
 +
- Fixed: TOPOBJ reference.
  
30-08-05, Cloud_Br (Script pack)
+
22-09-2005, Furio
- Removed: spherechars_newer.scp
+
- Fixed: attack not working with some weapons.
- Added: spherechar_lbr.scp (Lbr monsters)
+
- Fixed: damage packet sent to incorrect clients.
- Added: spherechar_aos.scp (AoS monsters)
+
- Fixed: Advanced_LOS not blocking los in some cases.
- Added: spherechar_se.scp (SE monsters)
+
- Fixed: Spell teleport not using ef_walkcheck routines when enabled.
- Updated: sphere_item_building_others.scp
 
  
02-09-05, Cloud_Br (Script pack)
+
23-09-2005, Cloud_Br (Script pack)
- Updated: sphere_defs.scp (new sounds)
+
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
- Updated: spherechar_lbr.scp (Lbr monsters)
+
- Updated: addons/worldfiles.zip (read inside readme for more infos).
- Updated: spherechar_aos.scp (AoS monsters)
 
- Updated: spherechar_se.scp (SE monsters)
 
- Updated: sphere_item_building_others.scp
 
- Added: sphere_item_icons_new.scp (icons from new expansions)
 
  
03-09-2005, Furio
+
25-09-2005, Furio
- Fixed: PARTY references (master/member)
+
- Updated: Moved all OF flags related to magic/magery in "ad hoc" field
- Fixed: hue/hair/beard for elf selectable on char creation
+
  called MAGICFLAGS. More info on it in Sphere.ini.
- Updated: sphere protocol (accepts tooltip refresh requests from new clients)
+
- Added: SEXTANTP. Retrieve the sextant point shown by a sextant in args
- Added: ISINPARTY to char (check if a player is in party)
+
  and if no args are set it would return the sextantp for the reference.
- Added: UseDefaultSource (default: 0) if enabled SERV fallback to its default
+
- Added: support for showing skillcaps in newer clients.
  source when executing commands. You shold set this to 1 if you are operating
+
- Added: support for new status gump in newer clients.
  with any new objects from functions called directly from the server, like
 
  f_onaccount_login, f_onserver_start and so on.
 
  
05-09-2005, Furio
+
25-09-2005, Radiant
- Updated: Sphere now support the internal client cache for tooltips. This will
+
- Added @SkillUseQuick char trigger and @UseQuick skill trigger, these are
   avoid wasting of bandwith and client crashes.
+
  called when sphere does a quick run of a skill (just difficulty test + skill
 
+
  gain), in which case it wouldn't call @SkillStart (for example use of tactics,
05-09-2005, Radiant
+
  parrying in combat, arms lore with blacksmithing repair, magic resistance, etc).
- Fixed: incorrect info on tooltips for some types
+
  ARGN1 = skill being used
 +
  ARGN2 = difficulty requested
 +
  ARGN3 = result of difficulty calculation (same as in @GetHit)
 +
  returning 0 will force skill to fail, returning 1 will force skill to succeed
 +
   (both skip gains)
 +
- Fixed: GMs not being able to resurrect in anti-magic areas
 +
- Added: Character flag 020000 (STATF_ArcherCanMove), same as OF_Archery_CanMove
 +
  but for specific players. OF_Archery_CanMove overrides this flag for everyone.
 +
- Updated: sphere_defs.scp and sphere_admin.scp for STATF_ArcherCanMove.
 +
- Added: NPCAI flag NPC_AI_ALWAYSINT (0008), always be as smart as possible when
 +
  pathfinding.
 +
- Fixed: SERV.NAME not working
 +
- Added: SKILLUSEQUICK on chars, syntax: <SKILLUSEQUICK (skill) (difficulty)>.
 +
  Does a quick use of a skill based on (difficulty) and returns 1 if it succeeded.
  
06-09-2005, Vjaka
+
26-09-2005, Vjaka
- Fixed: some operations workability (SERV.new*) called from functions that are
+
- Fixed: exception when adding empty sell/buy template on restock.
   run directly by the server. This disables both the default script object and
+
- Modified: CommandTrigger now has 2 arguments (in/out): ARGN1 is whatever the
   UseDefaultSource.
+
   command is accepted (limited by PLEVEL section, etc), and ARGN2 is whatever
- Fixed: rescount-like operations when arguments was specifyed.
+
  the command should be said if not accepted. Also the prefix of the command is
- Denied account auto-creation with first character numeric to avoid server
+
   cut up as well.
   confusion to treat this account as index or a valid name in some operations.
+
- Fixed: SERV.MAP if normal point was given in arguments (with Z coord).
- Fixed: win32 server crash if server name was too long.
+
- Modified: the sphere window operation on tray dclick. Now it hides if shown
 +
   and appears if hidden.
  
06-09-2005, Furio
+
26-09-2005, Furio
- Added: SCREENSIZE to access the game window size if the client supports that.
+
- Modified: <STRREV string> to StrReverse(string)
  You can access that via SCREENSIZE.X and SCREENSIZE.Y.
+
- Added: StrTrim(string) trime whitespaces at start/end of the string.
- Added: RESENDTOOLTIP. Calling that on the object you need to resend tooltip.
 
  Since clients use a cache for tooltip, if you want to force the cache too use
 
  RESENDTOOLTIP 1.
 
- Fixed: REMOVEFROMVIEW/TARGET(FGW) not working.
 
  
08-09-2005, Vjaka
+
26-09-2005, Gygrazok (Script pack)
- Fixed: several errors with sql queries.
+
- Added items/sphere_item_eight_age.scp. Item of 8th anniversary of UO.
- Added: AutoPrivFlags to specify auto PRIV flags for new accounts.
 
- Added: ARGN1 to f_onaccount_login specifying account type. Most common values
 
  are 3(login), 4(go to game), 5(http), 6(telnet).
 
- Added: HitsHungerLoss to specify char hits percents lost on starving tick.
 
- Added: TAG.NOSAVE tag for objects. If set to 1 the object will NOT be saved
 
  when the world save will take place.
 
- Fixed: NEW* commands on characters not modifying character's ACT.
 
  
08-09-2005, Furio
+
27-09-2005, Furio
- Fixed: SCREENSIZE.X/.Y not working.
+
- Added: support in status gump for stat locking.
- Added: CLIENTIS3D. Returns 1 if is a client is 3D.
+
- Added: STATLOCK[x] working like SKILLLOCK[x] but for stats.
- Removed: Client support for clients older than 1.26.00 (they're awfully old).
 
- ReDone: Unencrypted client support. UseNoCrypt now is a bool 1 means that
 
  unencrypted client are allowed to login. If ClientVersion in sphere.ini is
 
  setted to some value (e.g. 4.0.0) then only that client version will login
 
  (this is valid for encrypted and unencrypted clients). Note that sometimes
 
  unencrypted clients sometimes are dumb and sphere not recognize them properly
 
  (and thus disconnected), but after restarting the client it's all ok.
 
- Modified: REPORTEDCLIVER. It contains the version of the unencrypted client
 
  without any trailing letter. To get the complete version (e.g 4.0.11f) use
 
  REPORTEDCLIVER.1.
 
- Modified: Disabled support for client tooltip cache (it'll be re-enabled after
 
  a re-write).
 
  
08-09-2005, Cloud_Br (Script pack)
+
27-09-2005, Cloud_Br (Script pack)
- Updated: sphere_map_points3.scp
+
- Updated: sphere_map0.scp and sphere_map3.scp
- Updated: sphere_item_profession.scp
+
- Updated: sphere_map_points0.scp and sphere_map_points3.scp
- Added: addons/worldfiles.zip. It contains a fully spawned world for Felluca,
+
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
   Ilshenar and Malas.
+
- Added: addons/Doom_Dungeon.zip. A functional Doom Dungeon system for Sphere
 +
   (read inside readme for more infos).
  
09-09-2005, Furio
+
28-09-2005, Vjaka
- Moved: Hardcoded mount/mountid list from exe to scripts.
+
- Added: ARGN2 to UserSkills trigger. Will be 1 if triggeted from .info command
- Updated: sphere_defs.scp with the mount/mountid list. Read the comments to
+
   that is useful if you use custom skill gump and not wish it opening when its not
   know how to edit it.
+
  needed.
- Fixed: READLINE returning blank line.
+
- Fixed: ModAr not affecting actual armor.
- Fixed: Referring to party outputs a debug message.
+
- Added: ARGN2 (show the message of gain/loss) and ARGO (person killed) to the
 +
  @ExpChange trigger.
  
09-09-2005, Vjaka
+
29-09-2005, Furio
- Fixed: Popup menus not calling SELL, BUY speech triggers on NPCs.
+
- Updated: Moved LAYER_LIGHT from 9 to 15. Modified all hardcoded things.
- Added: LBR mounts IDs to the mount defnames.
+
- Updated: script pack (sphere_defs.scp, sphere_item_unsorted.scp).
- Fixed: mounting later npcs since they were treated being brain_human.
+
- Fixed: sphere_admin.scp showing incognito name.
 +
- Fixed: elf created always with blond hair.
 +
- Added: RESDISPDNID/RESLEVEL/RESDISPDNHUE for items (it'll work for equippable ones only).
  
10-09-2005, Cloud_Br (Script pack)
+
30-09-2005, Vjaka
- Fixed: some guarded areas on sphere_map2.scp that should be guarded.
+
- Fixed: dupe <amount> limited to the item complexity in containers.
- Fixed: names on sphere_map1.scp (Britain being Britain too, so when you
+
- Fixed: commandtrigger not having proper default object.
  typed .go britain you were going to MAP 1), now all trammel places have
+
- Added: TIMERCALL ini setting to specify amount of minutes for server to call
  "Trammel <local name>".
+
  user function f_onserver_timer.
- Fixed: some errors on addons/worldfiles.zip.
+
- Added: BETWEEN min,max,currentvalue,maximalvalue to get the curve value in
- Added: new mounts on sphere_chars_new_mounts.scp and their icons.
+
  this combination.
- Added: new mounts sounds to sphere_defs.scp
+
- Modified: <Rx,y> now supports formulas inside, so -, or eval could be used.
- Added: some HTML defs to sphere_defs.scp
 
  
10-09-2005, Rattlehead (Script pack)
+
01-10-2005, Cloud_Br (Script pack)
- Added: new mounts defs to sphere_defs.scp
+
- Updated: addons/Doom_Dungeon.zip (read inside readme for more infos).
- Added: new mounts defs to spherechar_mondain_legacy.scp
+
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
 +
- Updated: addons/worldfiles.zip (read inside readme for more infos).
 +
- Added: addons/Slayer_Weapons.zip (read inside readme for more infos).
  
12-09-2005, Furio
+
02-10-2005, Radiant
- Added: WOPCOLOR/WOPFONT to set color/font of Word of Powers.
+
- Fixed #013: Webserver attempting to parse images and sending invalid
- Added: TAG.OVERRIDE_SKILL applied to a weapon override the SKILL= field.
+
  Content-Type header to clients
   Attention is a 1 based field so... 1 means Alchemy and so on.
+
- Updated #037: Changed @Kill trigger to be fired on ALL the characters that had
- Modified: now PACKETxx in .ini accept values from 0 to 255.
+
   to do with the killing and therefor would gain/lose karma/fame. return 1 stops default
- Modified: item, with attr not containing 010 or 08000, dropped by player
+
   karma/fame changes.
  on sea or black tile will insta-decay. RETURN 1 on DropOn_Ground
 
   avoid that thing.
 
  
14-09-2005, Vjaka
+
02-10-2005, Handred (Script pack)
- Added: warning msg if chardef does not have any CAN flags specifyed.
+
- Updated: sphere_types.scp
- Added: error msg if RESOURCES line contains errors inside.
 
- Fixed: NPC item equipping not having mt_equip flag.
 
- Fixed: dialog command TILEPICHUE nor working.
 
  
18-09-2005, Cloud_Br (Script pack)
+
04-10-2005, Furio
- Fixed: some errors on spherechar_lbr.scp
+
- Fixed #040: An item crafted by a player (skillmenu - makeitem) is created
 +
  without decay flag set.
 +
- Updated: Client >= 5.0.0 now use the compressed dialog packet (bandwith saver).
 +
- Updated: Default tooltip for a char (guild title/name).
 +
- Updated: sphere_item_eight_age.scp with some RESDISP tests for two items.
 +
- Added: TEXTENTRYLIMITED/DTEXTENTRYLIMITED (working in only in client >= 5.0.0),
 +
  look into sphere_dialog.scp help section.
  
19-09-2005, Vjaka
+
04-10-2005, Cloud_Br (Script pack)
- Fixed: wopfont not working.
+
- Updated: sphere_admin.scp
- Optimized vendor templates storage. Now vendor does not keep all the items to
 
  be sold or bought from players all the time, but generate this list on the
 
  first query and invalidate after some time. It will save your server and save
 
  from tons of objects not actualy in the world.
 
  
19-09-2005, Furio
+
06-10-2005, Vjaka
- Fixed: HITPOINTS not working.
+
- Added: MOUNT command for character to mount it (if possible) by SRC object.
- Modified: SYSPAWN/SYSCMD on *Nix build should work now.
+
- Fixed #020: Vendor buy menus showing empty list.
 +
- Fixed #022: Fame prefix shown when in polymorph.
 +
- Fixed #006: Item remove not working in DropOn_Ground.
 +
- Fixed #017: Chars with MT_NONMOVER unable to spawn.
 +
- Fixed #051: Extra message when drinking potions too fast, or eating errors.
 +
- Fixed: ISBIT command. Now it is used like all rest functions <isbit value,bit>
 +
  without complicated eval plus brackets constructions difficult to reproduce.
 +
- Added: SETBIT value,bit and CLRBIT value,bit commands which returns mask with
 +
  specifyed bit set or cleared.
 +
- Added: @ operator (means power of value, fe: 2@3 = 8).
 +
- Added: If SERV.log @text specifyed, this will be shown without script context.
 +
- Added: ALLOWLIGHTOVERRIDE, if set to zero, sector local light will be skipped.
  
20-09-2005, Vjaka
+
06-10-2005, Furio
- Added: COMMANDTRIGGER setting. If set, each command the client is entering by
+
- Fixed #009: Client lingering in newer clients.
  .something will be given to the function first. If it returns 1, the default
+
- Fixed #061: Name not shown on paperdoll.
  action is not taken. This allows overriding default commands.
+
 
 +
07-10-2005, Vjaka
 +
- Fixed #057: <dSOMEVAL> gave incorrect values.
  
21-09-2005, Cloud_Br (Script pack)
+
07-10-2005, Furio
- Added: addons/Champion_Spawn.zip. A functional Champion Spawn system for Sphere.
+
- Fixed #065: Commands not working with gm body.
 +
- Fixed #064: Commands saying with sysmesage.
 +
- Fixed #055: sphere_backward_compatibility.scp. MUSIC command.
 +
- Fixed #062: sphere_char.scp. CAN flag not specifyed for c_corpser.
 +
- Added: StrIndexOf(string1,string2,[offset]). Search string2 in string1 and
 +
  returns -1 (if not found) or a number >= 0 if found (index in string1).
 +
  Offset is optional (where to start to search 0-based index).
  
21-09-2005, Furio
+
11-10-2005, Vjaka
- Fixed: Spellbook content not correctly sent to newer clients.
+
- Added: ZeroPoint to configure base of the sextant coordinates.
- Fixed: SHRINK not working.
+
- Improved: exception debugging and support.
- Fixed: carving corpse not working.
+
- Fixed: dclick on console not always opened the corresponding file.
- Fixed: using .commands with GM body.
+
- Added: ARGN2 in speech triggers corresponds to the player speech color if
- Modified: tooltip info on spellbooks.
+
  applicable.
- Modified: Damage on head for newer client now use newer packet.
 
- Modified: FeatureAOS in sphere.ini. Look in to know how it works.
 
- Added: support for All Names in 3d clients and newer 2d (ctrl+shift macro).
 
  
22-09-2005, Vjaka
+
11-10-2005, Radiant
- Fixed: Open paperdoll popup menu on self dismounting from horse.
+
- Fixed #070: Container can now be changed in @DropOn_Ground and @DropOn_Item
- Modified: Resync executed in a fast mode will not broadcast notes to clients.
 
- Modified: Low hungry level does not damage in safe zones, and in underground
 
  for NPCs.
 
- Fixed: ARGO reference when no property was specifyed.
 
- Fixed: TOPOBJ reference.
 
  
22-09-2005, Furio
+
13-10-2005, Vjaka
- Fixed: attack not working with some weapons.
+
- Fixed: ADDCLILOC leading to string corruption.
- Fixed: damage packet sent to incorrect clients.
+
- Optimized: CALL operator to work faster if arguments are specifyed.
- Fixed: Advanced_LOS not blocking los in some cases.
+
- Fixed #049: isevent/istevent working incorrectly.
- Fixed: Spell teleport not using ef_walkcheck routines when enabled.
+
 
 +
18-10-2005, Radiant
 +
- Reverted 0.56b back to 14-10-2005 07:10, 0.57.1 is now a different branch
  
23-09-2005, Cloud_Br (Script pack)
+
19-10-2005, Radiant
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
+
- Tweaked #121: showing durability in tooltips as hits / maxhits instead of
- Updated: addons/worldfiles.zip (read inside readme for more infos).
+
  percentages for armor/clothing.
 +
- Added #038: CTAGLIST and SERV.VARLIST. TAGLIST/CTAGLIST/SERV.VARLIST LOG writes
 +
  results to the console.
 +
- Fixed #098: Client not updating on .invis
  
25-09-2005, Furio
+
19-10-2005, Cloud_Br (Script pack)
- Updated: Moved all OF flags related to magic/magery in "ad hoc" field
+
- Added the minor artifacts, see inside sphere_minor_artifacts.scp for tips.
  called MAGICFLAGS. More info on it in Sphere.ini.
+
- Added some missing fields to sphere.ini (PROFILE and EVENTSPET)
- Added: SEXTANTP. Retrieve the sextant point shown by a sextant in args
+
- Some updates and fixes on doom script and champions script.
  and if no args are set it would return the sextantp for the reference.
 
- Added: support for showing skillcaps in newer clients.
 
- Added: support for new status gump in newer clients.
 
  
25-09-2005, Radiant
+
19-10-2005, RanXerox (Script pack)
- Added @SkillUseQuick char trigger and @UseQuick skill trigger, these are
+
- Updated: sphere_item_aos_se.scp
  called when sphere does a quick run of a skill (just difficulty test + skill
+
- Updated: sphere_item_ml_weapons.scp
  gain), in which case it wouldn't call @SkillStart (for example use of tactics,
+
- Updated: sphere_item_treasure_maps.scp
  parrying in combat, arms lore with blacksmithing repair, magic resistance, etc).
 
  ARGN1 = skill being used
 
  ARGN2 = difficulty requested
 
  ARGN3 = result of difficulty calculation (same as in @GetHit)
 
  returning 0 will force skill to fail, returning 1 will force skill to succeed
 
  (both skip gains)
 
- Fixed: GMs not being able to resurrect in anti-magic areas
 
- Added: Character flag 020000 (STATF_ArcherCanMove), same as OF_Archery_CanMove
 
  but for specific players. OF_Archery_CanMove overrides this flag for everyone.
 
- Updated: sphere_defs.scp and sphere_admin.scp for STATF_ArcherCanMove.
 
- Added: NPCAI flag NPC_AI_ALWAYSINT (0008), always be as smart as possible when
 
  pathfinding.
 
- Fixed: SERV.NAME not working
 
- Added: SKILLUSEQUICK on chars, syntax: <SKILLUSEQUICK (skill) (difficulty)>.
 
  Does a quick use of a skill based on (difficulty) and returns 1 if it succeeded.
 
  
26-09-2005, Vjaka
+
19-10-2005, Vjaka
- Fixed: exception when adding empty sell/buy template on restock.
+
- Added a deadlock detection to some keywords parsing, that will eliminate some
- Modified: CommandTrigger now has 2 arguments (in/out): ARGN1 is whatever the
+
  stack overflows.
  command is accepted (limited by PLEVEL section, etc), and ARGN2 is whatever
+
 
  the command should be said if not accepted. Also the prefix of the command is
+
22-10-2005, Furio
  cut up as well.
+
- Fixed #087: Guild related clilocs are bugged.
- Fixed: SERV.MAP if normal point was given in arguments (with Z coord).
+
- Fixed #091: WOPFONT doesnt work.
- Modified: the sphere window operation on tray dclick. Now it hides if shown
+
- Fixed: bug in encryption routines that could lead to a sphere crash during startup
  and appears if hidden.
 
  
26-09-2005, Furio
+
23-10-2005, Furio
- Modified: <STRREV string> to StrReverse(string)
+
- Fixed: Referring to SERV.MEM when memory = 0 causing exceptions.
- Added: StrTrim(string) trime whitespaces at start/end of the string.
+
- Fixed #131: Feature_AOS_Damage + Canharmself cause 2x damage display if damage
 +
  is on self.
 +
- Added #125: SERV.CLEARVARS. Clear all vars. Added in default script pack as
 +
  plevel 6 command (spheretables.scp).
 +
- Removed: SERV.DELETEFILE / SERV.WRITEFILE / READFILE / FILELINES since they're all
 +
  integrated in the FILE obj.
  
26-09-2005, Gygrazok (Script pack)
+
26-10-2005, Cloud_Br (Script pack)
- Added items/sphere_item_eight_age.scp. Item of 8th anniversary of UO.
+
- Updated: sphere_item_building_walls_se.scp
  
27-09-2005, Furio
+
26-10-2005, Furio
- Added: support in status gump for stat locking.
+
- Fixed #135: All stats being 26 when creating char.
- Added: STATLOCK[x] working like SKILLLOCK[x] but for stats.
+
- Fixed #149: Trigger @Rename is never called.
 +
- Added: @UserSpecialMove with ARGN1 the special move selected from the fight book.
  
27-09-2005, Cloud_Br (Script pack)
+
31-10-2005, Furio
- Updated: sphere_map0.scp and sphere_map3.scp
+
- Fixed #159: Party don't display correct loot info.
- Updated: sphere_map_points0.scp and sphere_map_points3.scp
+
- Fixed #171: All NPCs have ISSTUCK 1, even if they are on open, clear ground.
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
+
- Fixed #167: Can't see tooltips for locked down items.
- Added: addons/Doom_Dungeon.zip. A functional Doom Dungeon system for Sphere
 
  (read inside readme for more infos).
 
  
28-09-2005, Vjaka
+
04-11-2005, Vjaka
- Added: ARGN2 to UserSkills trigger. Will be 1 if triggeted from .info command
+
- Fixed #174: NEWDUPE from server object.
  that is useful if you use custom skill gump and not wish it opening when its not
+
- Fixed #161: max* stats affected by mod* even if unsynced.
  needed.
+
- Fixed #128: ClientTooltip trigger return 1 causing exceptions.
- Fixed: ModAr not affecting actual armor.
 
- Added: ARGN2 (show the message of gain/loss) and ARGO (person killed) to the
 
  @ExpChange trigger.
 
  
29-09-2005, Furio
+
08-11-2005, Furio
- Updated: Moved LAYER_LIGHT from 9 to 15. Modified all hardcoded things.
+
- Fixed #188: <guildstone>.member.X.IsCandidate not working.
- Updated: script pack (sphere_defs.scp, sphere_item_unsorted.scp).
 
- Fixed: sphere_admin.scp showing incognito name.
 
- Fixed: elf created always with blond hair.
 
- Added: RESDISPDNID/RESLEVEL/RESDISPDNHUE for items (it'll work for equippable ones only).
 
  
30-09-2005, Vjaka
+
11-11-2005, Furio
- Fixed: dupe <amount> limited to the item complexity in containers.
+
- Fixed #186: <serv.map(<PLACE>).region.name> giving missing location.
- Fixed: commandtrigger not having proper default object.
+
- Added #199: Hiding hierachy (higher plevel will see lower hidden plevel gray).
- Added: TIMERCALL ini setting to specify amount of minutes for server to call
 
  user function f_onserver_timer.
 
- Added: BETWEEN min,max,currentvalue,maximalvalue to get the curve value in
 
  this combination.
 
- Modified: <Rx,y> now supports formulas inside, so -, or eval could be used.
 
  
01-10-2005, Cloud_Br (Script pack)
+
15-11-2005, Vjaka
- Updated: addons/Doom_Dungeon.zip (read inside readme for more infos).
+
- Fixed #208: return 1 on @ReceiveItem not bounced item back if it was still in
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
+
  dragging layer.
- Updated: addons/worldfiles.zip (read inside readme for more infos).
+
- Fixed #151: trigger command not working for characters.
- Added: addons/Slayer_Weapons.zip (read inside readme for more infos).
 
  
02-10-2005, Radiant
+
18-11-2005, Cloud_Br (Script pack)
- Fixed #013: Webserver attempting to parse images and sending invalid
+
- Fixed a bug when stealing artifacts that might cause crashes (add-on/Doom_Dungeon.zip).
  Content-Type header to clients
+
- Added some missing weapons to sphere_item_ml_weapons.scp
- Updated #037: Changed @Kill trigger to be fired on ALL the characters that had
+
- Added some missing npcs to spherechar_lbr.scp
  to do with the killing and therefor would gain/lose karma/fame. return 1 stops default
+
- Added Succubus to Daemon Slayer list (add-on/Slayer_Weapons.zip).
  karma/fame changes.
 
  
02-10-2005, Handred (Script pack)
+
22-11-2005, Vjaka
- Updated: sphere_types.scp
+
- Fixed #112: impossible to access the CHARDEF if the NPC is not in world.
 +
- Fixed #225: CanSee and CanSeeLOS always required for SRC and not accepting
 +
  arguments in several cases (actualy CanSee did not accept this at all).
  
04-10-2005, Furio
+
22-11-2005, Torfo
- Fixed #040: An item crafted by a player (skillmenu - makeitem) is created
+
- Fixed #221: Msg/Say parameters have no effect on hearall output.
  without decay flag set.
 
- Updated: Client >= 5.0.0 now use the compressed dialog packet (bandwith saver).
 
- Updated: Default tooltip for a char (guild title/name).
 
- Updated: sphere_item_eight_age.scp with some RESDISP tests for two items.
 
- Added: TEXTENTRYLIMITED/DTEXTENTRYLIMITED (working in only in client >= 5.0.0),
 
  look into sphere_dialog.scp help section.
 
  
04-10-2005, Cloud_Br (Script pack)
+
24-11-2005, Cloud_Br (Script pack)
- Updated: sphere_admin.scp
+
- Updated add-on/Champion_Spawn.zip:
 
+
  Changed c_forest_lord to c_etheral_warrior as it should be on Forest Lord Spawn Group.
06-10-2005, Vjaka
+
  Changed ID field for Lord Oaks to c_etheral_warrior, to respect the defnames changes.
- Added: MOUNT command for character to mount it (if possible) by SRC object.
+
  Barracoon now has the hability to summon ratmans.
- Fixed #020: Vendor buy menus showing empty list.
+
  Added Rotting Corpse to Unholy terror spawn.
- Fixed #022: Fame prefix shown when in polymorph.
+
   Added Rotting Corpse to Undead slayer weapon list.
- Fixed #006: Item remove not working in DropOn_Ground.
+
  Corpses of the minions should now stay on the ground (with a timer of 15 seconds) to
- Fixed #017: Chars with MT_NONMOVER unable to spawn.
+
    avoid lag.
- Fixed #051: Extra message when drinking potions too fast, or eating errors.
+
  Optimized spawning of monsters, they won't appear on the same spot anymore and walk a
- Fixed: ISBIT command. Now it is used like all rest functions <isbit value,bit>
+
    way after some time, they will appear scatered around the spawn in a maximum distance
   without complicated eval plus brackets constructions difficult to reproduce.
+
    of the range of that spawn (this should avoid lag when changing levels).
- Added: SETBIT value,bit and CLRBIT value,bit commands which returns mask with
 
  specifyed bit set or cleared.
 
- Added: @ operator (means power of value, fe: 2@3 = 8).
 
- Added: If SERV.log @text specifyed, this will be shown without script context.
 
- Added: ALLOWLIGHTOVERRIDE, if set to zero, sector local light will be skipped.
 
  
06-10-2005, Furio
+
25-11-2005, Vjaka
- Fixed #009: Client lingering in newer clients.
+
- Fixed #233: Setting MAX* was substracting MOD*, so did not work correct way.
- Fixed #061: Name not shown on paperdoll.
 
  
07-10-2005, Vjaka
+
28-11-2005, Cloud_Br (Script pack)
- Fixed #057: <dSOMEVAL> gave incorrect values.
+
- Updated add-on/Doom_Dungeon.zip.
 +
- Updated add-on/Champion_Spawn.zip.
  
07-10-2005, Furio
+
01-12-2005, Vjaka
- Fixed #065: Commands not working with gm body.
+
- Fixed #222: Region triggers required return 0 to allow other same triggers to work.
- Fixed #064: Commands saying with sysmesage.
 
- Fixed #055: sphere_backward_compatibility.scp. MUSIC command.
 
- Fixed #062: sphere_char.scp. CAN flag not specifyed for c_corpser.
 
- Added: StrIndexOf(string1,string2,[offset]). Search string2 in string1 and
 
  returns -1 (if not found) or a number >= 0 if found (index in string1).
 
  Offset is optional (where to start to search 0-based index).
 
  
11-10-2005, Vjaka
+
01-12-2005, Cloud_Br (Script pack)
- Added: ZeroPoint to configure base of the sextant coordinates.
+
- Updated add-on/Champion_Spawn.zip:
- Improved: exception debugging and support.
+
  Fixed some wrong defnames on the monsters list.
- Fixed: dclick on console not always opened the corresponding file.
+
  Fixed champion appearing as a man and dieing.
- Added: ARGN2 in speech triggers corresponds to the player speech color if
+
- Updated add-on/Slayer_Weapons.zip:
  applicable.
+
  Added Bovine Slayer to slayers list.
 +
- Updated: Talismans to sphere_item_ml_misc.scp.
  
11-10-2005, Radiant
+
01-12-2005, Blizzard (Script pack)
- Fixed #070: Container can now be changed in @DropOn_Ground and @DropOn_Item
+
- Updated: aquarium fishes to sphere_item_ml_misc.scp.
  
13-10-2005, Vjaka
+
02-12-2005, Torfo
- Fixed: ADDCLILOC leading to string corruption.
+
- Fixed #251: PacketX & unary operators
- Optimized: CALL operator to work faster if arguments are specifyed.
 
- Fixed #049: isevent/istevent working incorrectly.
 
  
18-10-2005, Radiant
+
03-12-2005, Furio
- Reverted 0.56b back to 14-10-2005 07:10, 0.57.1 is now a different branch
+
- Fixed #246: Desappearing items on tiles built over water map tiles.
 +
- Fixed #227: Tooltips for locked down items isn't being sent yet.
 +
- Fixed: re-added basic support for speech.mul.
  
19-10-2005, Radiant
+
07-12-2005, Torfo
- Tweaked #121: showing durability in tooltips as hits / maxhits instead of
+
- Fixed #242: Cannot connect with newer clients
  percentages for armor/clothing.
 
- Added #038: CTAGLIST and SERV.VARLIST. TAGLIST/CTAGLIST/SERV.VARLIST LOG writes
 
  results to the console.
 
- Fixed #098: Client not updating on .invis
 
  
19-10-2005, Cloud_Br (Script pack)
+
08-12-2005, Vjaka
- Added the minor artifacts, see inside sphere_minor_artifacts.scp for tips.
+
- Fixed #247: Sector local time not changing, light levels not working due that.
- Added some missing fields to sphere.ini (PROFILE and EVENTSPET)
 
- Some updates and fixes on doom script and champions script.
 
  
19-10-2005, RanXerox (Script pack)
+
09-12-2005, Vjaka
- Updated: sphere_item_aos_se.scp
+
- Fixed #11: DiagonalWalkCheck caused problems with NPC spawning.
- Updated: sphere_item_ml_weapons.scp
 
- Updated: sphere_item_treasure_maps.scp
 
  
19-10-2005, Vjaka
+
10-12-2005, Sir Dwayne (Script Pack)
- Added a deadlock detection to some keywords parsing, that will eliminate some
+
- Updated: sphere_skillmenu.scp (Silver jewelry)
  stack overflows.
+
- Updated: spherechar_human.scp (Female barber)
  
22-10-2005, Furio
+
11-12-2005, RanXerox (Script pack)
- Fixed #087: Guild related clilocs are bugged.
+
- Updated: maps/sphere_map_points2.scp (Rat fort teleporters)
- Fixed #091: WOPFONT doesnt work.
+
- Updated: sphere_types.scp (Swamp terrain)
- Fixed: bug in encryption routines that could lead to a sphere crash during startup
 
  
23-10-2005, Furio
+
11-12-2005, Blizzard (Script Pack)
- Fixed: Referring to SERV.MEM when memory = 0 causing exceptions.
+
- Renamed: sphere_item_ml_weapons.scp to sphere_item_provisions_weapons_ml.scp
- Fixed #131: Feature_AOS_Damage + Canharmself cause 2x damage display if damage
+
- Added: sphere_item_provisions_weapons_aos.scp
  is on self.
+
- Added: sphere_item_provisions_weapons_se.scp
- Added #125: SERV.CLEARVARS. Clear all vars. Added in default script pack as
+
- Updated: sphere_item_aos_se.scp
  plevel 6 command (spheretables.scp).
+
- Added DUPELIST and DUPEITEMs for all AoS, SE, and ML weapons.
- Removed: SERV.DELETEFILE / SERV.WRITEFILE / READFILE / FILELINES since they're all
+
- Added: sphere_item_provisions_armor_aos.scp
  integrated in the FILE obj.
+
- Added: sphere_item_provisions_armor_se.scp
 +
- Updated: sphere_item_provisions_weapons.scp
  
26-10-2005, Cloud_Br (Script pack)
+
11-12-2005, Cloud_Br (Script Pack)
- Updated: sphere_item_building_walls_se.scp
+
- Updated: sphere_minor_artifacts.scp (some missing minor artifacts)
 +
- Added: sphere_item_christimas.scp (Christimas Item ids that come with 5.0.1f patch)
  
26-10-2005, Furio
+
15-12-2005, Introvert (Script Pack)
- Fixed #135: All stats being 26 when creating char.
+
- Updated: sphere_events_npcs.scp (fixed bugs in e_undead)
- Fixed #149: Trigger @Rename is never called.
 
- Added: @UserSpecialMove with ARGN1 the special move selected from the fight book.
 
  
31-10-2005, Furio
+
20-12-2005, Furio
- Fixed #159: Party don't display correct loot info.
+
- Fixed #286: Bug with @ operator (power of).
- Fixed #171: All NPCs have ISSTUCK 1, even if they are on open, clear ground.
 
- Fixed #167: Can't see tooltips for locked down items.
 
  
04-11-2005, Vjaka
+
25-12-2005, Furio
- Fixed #174: NEWDUPE from server object.
+
- Fixed: FILE.READLINE returning strings with trailing \n and \r.
- Fixed #161: max* stats affected by mod* even if unsynced.
+
- Changed: StrTrim(args) to <STRTRIM args>.
- Fixed #128: ClientTooltip trigger return 1 causing exceptions.
+
- Fixed #298: Logging out while dragging item.
  
08-11-2005, Furio
+
25-12-2005, Handred
- Fixed #188: <guildstone>.member.X.IsCandidate not working.
+
- Fixed #287: Updated sphere_item_professions.scp
  
11-11-2005, Furio
+
26-12-2005, Vjaka
- Fixed #186: <serv.map(<PLACE>).region.name> giving missing location.
+
- Fixed #294,#296: @SpellCast did not allow or disable to change words of power.
- Added #199: Hiding hierachy (higher plevel will see lower hidden plevel gray).
+
- Fixed #282: Operator ^= did not resolve.
  
15-11-2005, Vjaka
+
28-12-2005, Radiant
- Fixed #208: return 1 on @ReceiveItem not bounced item back if it was still in
+
- Fixed #090, #172, #237: ACTION being changed on UseQuick because of new trigger
  dragging layer.
+
- Fixed #136, #154, #291: Partial character updates not working
- Fixed #151: trigger command not working for characters.
+
- Fixed #129: GM body can now also use the normal command prefix, instead of only '='
 +
- Fixed #299: Transfering pets to NPCs
  
18-11-2005, Cloud_Br (Script pack)
+
29-12-2005, Furio (Script Pack)
- Fixed a bug when stealing artifacts that might cause crashes (add-on/Doom_Dungeon.zip).
+
- Updated: sphere_item_provisions_weapons_ml.scp (fixed bug BLACKSMITH
- Added some missing weapons to sphere_item_ml_weapons.scp
+
  instead of BLACKSMITHING).
- Added some missing npcs to spherechar_lbr.scp
 
- Added Succubus to Daemon Slayer list (add-on/Slayer_Weapons.zip).
 
  
22-11-2005, Vjaka
+
31-12-2005, Furio
- Fixed #112: impossible to access the CHARDEF if the NPC is not in world.
+
- Fixed #324: TRYSRC is read as TRYSRV (only in message errors).
- Fixed #225: CanSee and CanSeeLOS always required for SRC and not accepting
+
- Fixed #326: missing resource in sphere_item_provisions_weapons_ml.scp
  arguments in several cases (actualy CanSee did not accept this at all).
+
- Fixed #315: wrong defnames in sphere_defs.scp
 +
- Fixed #330: updated sphere_item_building_walls_se.scp and sphere_item_magic_necromancer_aos.scp
  
22-11-2005, Torfo
+
02-01-2006, Furio
- Fixed #221: Msg/Say parameters have no effect on hearall output.
+
- Fixed #332: support for guild chat speech mode.
 +
- Fixed #336: PETRETRIEVE console error that shows when there's no stabled animals.
 +
- Updated: sphere_defs.scp
  
24-11-2005, Cloud_Br (Script pack)
+
03-01-2006, RanXerox (Script pack)
- Updated add-on/Champion_Spawn.zip:
+
- Updated: sphere_types.scp
  Changed c_forest_lord to c_etheral_warrior as it should be on Forest Lord Spawn Group.
 
  Changed ID field for Lord Oaks to c_etheral_warrior, to respect the defnames changes.
 
  Barracoon now has the hability to summon ratmans.
 
  Added Rotting Corpse to Unholy terror spawn.
 
  Added Rotting Corpse to Undead slayer weapon list.
 
  Corpses of the minions should now stay on the ground (with a timer of 15 seconds) to
 
    avoid lag.
 
  Optimized spawning of monsters, they won't appear on the same spot anymore and walk a
 
    way after some time, they will appear scatered around the spawn in a maximum distance
 
    of the range of that spawn (this should avoid lag when changing levels).
 
  
25-11-2005, Vjaka
+
04-01-2006, Gygrazok (Script pack)
- Fixed #233: Setting MAX* was substracting MOD*, so did not work correct way.
+
- Added: items/sphere_item_deco_evilitem.scp
  
28-11-2005, Cloud_Br (Script pack)
+
08-01-2006, Shadow Dragon
- Updated add-on/Doom_Dungeon.zip.
+
- Fixed: Pets going logout.
- Updated add-on/Champion_Spawn.zip.
 
  
01-12-2005, Vjaka
+
10-01-2006, Furio
- Fixed #222: Region triggers required return 0 to allow other same triggers to work.
+
- Fixed #361: Creating characters with apostrophes ( ' ) in the name gives a random
 +
  name in game.
 +
- Fixed #348: Problems with FILE object.
 +
- Fixed #356: Monsters not playing proper sounds (spherechar.scp and spherechar_evil.scp)
 +
- Fixed #357: Some mappoints fixes (sphere_map_points0.scp and sphere_map_points1.scp)
 +
- Updated: sphere_item_ml_misc.scp
  
01-12-2005, Cloud_Br (Script pack)
+
11-11-2006, Radiant
- Updated add-on/Champion_Spawn.zip:
+
- Ticks will no longer be given to webpages if USEHTTP is disabled in sphere.ini
  Fixed some wrong defnames on the monsters list.
 
  Fixed champion appearing as a man and dieing.
 
- Updated add-on/Slayer_Weapons.zip:
 
  Added Bovine Slayer to slayers list.
 
- Updated: Talismans to sphere_item_ml_misc.scp.
 
  
01-12-2005, Blizzard (Script pack)
+
12-01-2006, Vjaka
- Updated: aquarium fishes to sphere_item_ml_misc.scp.
+
- Fixed #94: Stable master restock causing stabled pets to disappear.
 +
- Fixed #212: Vendors do not restock money amount, unable to buy after a while.
 +
- Fixed #343: Container functions like COUNT overrided user functions.
 +
- Updated sphere_spells.scp fixing spell flags for polymorph (#335).
  
02-12-2005, Torfo
+
12-01-2006, K. Thorp (Script pack)
- Fixed #251: PacketX & unary operators
+
- Added: some multis to sphere_item_multis_houses_ships.scp
 +
- Added: deeds to sphere_item_provisions_deed.scp
  
03-12-2005, Furio
+
14-01-2006, Furio:
- Fixed #246: Desappearing items on tiles built over water map tiles.
+
- Fixed #363: defining new region types. (See knowbugs.txt)
- Fixed #227: Tooltips for locked down items isn't being sent yet.
+
- Updated: sphere_defs.scp, sphere_types.scp, spheretables.scp
- Fixed: re-added basic support for speech.mul.
 
  
07-12-2005, Torfo
+
14-01-2006, Torfo:
- Fixed #242: Cannot connect with newer clients
+
- Fixed #371: Error on Bulletin Board (last letter missing)
  
08-12-2005, Vjaka
+
15-01-2006, Radiant:
- Fixed #247: Sector local time not changing, light levels not working due that.
+
- Updated: You may now call functions on the SERV object. This affects several things,
 +
  including the f_onserver functions, the console and packet filtering functions.
  
09-12-2005, Vjaka
+
17-01-2006, RanXerox (Script pack)
- Fixed #11: DiagonalWalkCheck caused problems with NPC spawning.
+
- Updated: sphere_triggers.scp,sphere_item_eight_age.scp,sphere_item_ml_misc.scp
 +
  sphere_item_provisions_weapons_ml.scp,sphere_minor_artifacts.scp
 +
  sphere_map_points0.scp,sphere_map_points1.scp
 +
  sphere_item_provisions_weapons_aos.scp,sphere_item_provisions_weapons_se.scp
  
10-12-2005, Sir Dwayne (Script Pack)
+
20-01-2006, Blizzard (Script Pack)
- Updated: sphere_skillmenu.scp (Silver jewelry)
+
- Updated: sphere_item_provisions_armor.scp, sphere_item_provisions_armor_se.scp,
- Updated: spherechar_human.scp (Female barber)
+
  sphere_item_provisions_weapons_aos.scp, sphere_item_provisions_weapons_ml.scp,
 +
  sphere_item_provisions_weapons_se.scp.
  
11-12-2005, RanXerox (Script pack)
+
21-01-2006, Radiant
- Updated: maps/sphere_map_points2.scp (Rat fort teleporters)
+
- Updated: 80 character console command limitation to SCRIPT_MAX_LINE_LEN
- Updated: sphere_types.scp (Swamp terrain)
 
  
11-12-2005, Blizzard (Script Pack)
+
22-01-2006, Furio
- Renamed: sphere_item_ml_weapons.scp to sphere_item_provisions_weapons_ml.scp
+
- Fixed #380: IsNearType doesn't works whith custom typedef.
- Added: sphere_item_provisions_weapons_aos.scp
+
- Fixed #366: Effect of Hallucination.
- Added: sphere_item_provisions_weapons_se.scp
+
- Fixed #378: Typo in sphere_admin.scp.
- Updated: sphere_item_aos_se.scp
+
- Fixed: exceptions when using .charlist.
- Added DUPELIST and DUPEITEMs for all AoS, SE, and ML weapons.
+
- Fixed: typo in console message.
- Added: sphere_item_provisions_armor_aos.scp
+
- Sync (Vjaka): defmessage string allocation, thus binary EXE size reduced by ~200kb.
- Added: sphere_item_provisions_armor_se.scp
+
- Sync (Vjaka): SERV.console CMD to launch commands as you were in server console.
- Updated: sphere_item_provisions_weapons.scp
+
- Sync (ShadowDragon): Items in multis do not send to the client if he is not in
 +
  the multi (OSI-compatible lag fight) as OF_OSIMultiSight.
 +
- Updated: now ARGS in f_onchar_create contains account name.
 +
- Updated: sphere_serv_triggers.scp.
 +
- Added: f_onaccount_delete, ARGS contain account name, RETURN 1 block the delete.
  
11-12-2005, Cloud_Br (Script Pack)
+
23-01-2006, Torfo
- Updated: sphere_minor_artifacts.scp (some missing minor artifacts)
+
- Fixed #264: Problem with 0xBF packet.
- Added: sphere_item_christimas.scp (Christimas Item ids that come with 5.0.1f patch)
 
  
15-12-2005, Introvert (Script Pack)
+
23-01-2006, Blizzard (Script Pack)
- Updated: sphere_events_npcs.scp (fixed bugs in e_undead)
+
- Added: sphere_item_provisions_armor_ml.scp, sphere_item_provisions_clothing_ml.scp,
 +
  sphere_item_provisions_clothing.scp.
 +
- Updated: sphere_item_provisions_armor.scp, sphere_item_profession_tailor_tanner.scp,
 +
  sphere_item_ml.scp.
  
20-12-2005, Furio
+
27-01-2006, Torfo
- Fixed #286: Bug with @ operator (power of).
+
- Fixed #411: sm_bolts in sphere_item_resources.scp and sphere_item_profession.scp
 +
- Fixed #409: added missing ">" in sphere_item_aos_se.scp
 +
- Fixed #405: added missing MT_FEMALE in def of succubus in spherechar_lbr.scp
 +
- Fixed: seasons will be saved now.
 +
- Fixed #408: <sector.season> doesn't work.
  
25-12-2005, Furio
+
29-01-2006, Furio
- Fixed: FILE.READLINE returning strings with trailing \n and \r.
+
- Fixed #410: Promptconsole removes all used ",".
- Changed: StrTrim(args) to <STRTRIM args>.
+
- Fixed: strlen not working correctly with ",".
- Fixed #298: Logging out while dragging item.
 
  
25-12-2005, Handred
+
29-01-2006, RanXerox (Script pack)
- Fixed #287: Updated sphere_item_professions.scp
+
- Updated: sphere_book.scp
  
26-12-2005, Vjaka
+
31-01-2006, Furio
- Fixed #294,#296: @SpellCast did not allow or disable to change words of power.
+
- Fixed #425: Unable to start sphere when editing sphere_msgs.scp.
- Fixed #282: Operator ^= did not resolve.
+
- Removed: USEGODPORT in sphere.ini (and also the god port)
 +
- Modified: USEHTTP usage. Look into sphere.ini for new options.
  
28-12-2005, Radiant
+
02-02-2006, Furio
- Fixed #090, #172, #237: ACTION being changed on UseQuick because of new trigger
+
- Fixed: players being able to track invisible (.invis) GMs.
- Fixed #136, #154, #291: Partial character updates not working
+
- Sync (Vjaka): REGION.TYPE returning type from the itemdef of the multi.
- Fixed #129: GM body can now also use the normal command prefix, instead of only '='
 
- Fixed #299: Transfering pets to NPCs
 
  
29-12-2005, Furio (Script Pack)
+
10-02-2006, Furio
- Updated: sphere_item_provisions_weapons_ml.scp (fixed bug BLACKSMITH
+
- Modified: replaced internal routines of TAG/CTAG/VAR/LOCALs, it improves
   instead of BLACKSMITHING).
+
   speed, memory usage and decrease the occurence of leaks/exception.
 +
- Fixed #440: Crash when selling too many items to vendors.
  
31-12-2005, Furio
+
11-02-2006, Furio
- Fixed #324: TRYSRC is read as TRYSRV (only in message errors).
+
- Fixed: new internal routines of TAG/CTAG/VAR/LOCALs in some special case.
- Fixed #326: missing resource in sphere_item_provisions_weapons_ml.scp
+
- Added: support for OSI AuthID to avoid possible hijack to game server. By
- Fixed #315: wrong defnames in sphere_defs.scp
+
  default is disabled, set UseAuthID = 1 in sphere.ini to use it.
- Fixed #330: updated sphere_item_building_walls_se.scp and sphere_item_magic_necromancer_aos.scp
 
  
02-01-2006, Furio
+
15-02-2006, Furio
- Fixed #332: support for guild chat speech mode.
+
- Fixed: "Divide by Zero" in CChar::Tick() for "update stats" sections.
- Fixed #336: PETRETRIEVE console error that shows when there's no stabled animals.
 
- Updated: sphere_defs.scp
 
  
03-01-2006, RanXerox (Script pack)
+
19-02-2006, Furio
- Updated: sphere_types.scp
+
- Fixed #456: NEWDUPE and DUPE doesn't copy events.
 +
- Added: AOS properties for player characters: RES* (cold,energy,fire,poison) and
 +
  LUCK with no built-in functionality.
 +
- Sync (Vjaka): Added #214: ColorNoto* settings for characters color hue change.
 +
- Sync (Vjaka): "NEWLOOT X" character function creating and equiping item X for NPCs
 +
  if can give loot, useful to be used in @Death or @DeathCorpse triggers.
 +
- Sync (Vjaka): "NEWGOLD N" function gives amount N of gold to the current char.
 +
- Sync (Vjaka): character function TIMERF N,FuncName to cause a timed execution of a
 +
  function FuncName in N secs. Specifying N as -1 will clear all TIMERF list.
 +
  These functions are not saved, so do not store hours in the list, the purpose
 +
  of this is to decrease overhead due to timered memory items opeations.
 +
- Sync (Shadow Dragon): TAG.NoMoveTill for script purposes. This doesn't allow char
 +
  to move if TAG.NoMoveTill > SERV.Time.
  
04-01-2006, Gygrazok (Script pack)
+
20-02-2006, Furio
- Added: items/sphere_item_deco_evilitem.scp
+
- Fixed #462: TAG.NAME.HUE on chardef isn't working.
 +
- Fixed: some possible overflow in some spots.
 +
- Touchups for *NIX compilation.
  
08-01-2006, Shadow Dragon
+
20-02-2006, Cloud_Br (Script pack)
- Fixed: Pets going logout.
+
- Changed description of EVENTSPET on sphere.ini
 +
- Add some new points to sphere_map_pointsX.scp
 +
- Add some places with names like on OSI (places that didn't have a respective name
 +
  before on default sphere) to sphere_mapX.scp files.
  
10-01-2006, Furio
+
24-02-2006, Vjaka
- Fixed #361: Creating characters with apostrophes ( ' ) in the name gives a random
+
- Fixed #158: NPC value spontaneously changing when NPC was under reactive armor.
  name in game.
+
- Fixed #314: Elf's Hair Color in creation is not correct.
- Fixed #348: Problems with FILE object.
 
- Fixed #356: Monsters not playing proper sounds (spherechar.scp and spherechar_evil.scp)
 
- Fixed #357: Some mappoints fixes (sphere_map_points0.scp and sphere_map_points1.scp)
 
- Updated: sphere_item_ml_misc.scp
 
  
11-11-2006, Radiant
+
25-02-2006, Torfo
- Ticks will no longer be given to webpages if USEHTTP is disabled in sphere.ini
+
- Fixed: possible PLEVEL-hack (thx to SL for reporting).
  
12-01-2006, Vjaka
+
03-03-2006, Furio
- Fixed #94: Stable master restock causing stabled pets to disappear.
+
- Fixed #401: Spells (incognito and mark) don't update the client tooltip.
- Fixed #212: Vendors do not restock money amount, unable to buy after a while.
+
- Fixed #478: Newgold does not update gold amount.
- Fixed #343: Container functions like COUNT overrided user functions.
 
- Updated sphere_spells.scp fixing spell flags for polymorph (#335).
 
  
12-01-2006, K. Thorp (Script pack)
+
05-03-2006, Furio
- Added: some multis to sphere_item_multis_houses_ships.scp
+
- Fixed #483: Typo in sphere.ini.
- Added: deeds to sphere_item_provisions_deed.scp
+
- Fixed #484: LUCK and RES* properties throws errors when reading.
  
14-01-2006, Furio:
+
07-03-2006, Furio
- Fixed #363: defining new region types. (See knowbugs.txt)
+
- Added: Tithing points for player characters as TITHING with no built-in
- Updated: sphere_defs.scp, sphere_types.scp, spheretables.scp
+
  functionality.
 +
- Fixed #492: Undefinied SCROLL_MOTD at player login.
  
14-01-2006, Torfo:
+
08-03-2006, Furio
- Fixed #371: Error on Bulletin Board (last letter missing)
+
- Fixed #502: Divide by Zero Exceptions in CChar::Tick() stat section.
 +
- Fixed #503: Tithing Points showed incorrectly in Paladin book.
 +
- Updated: sphere_item_aos_se.scp, sphere_item_magic_necromancer_aos.scp
  
15-01-2006, Radiant:
+
10-03-2006, Furio
- Updated: You may now call functions on the SERV object. This affects several things,
+
- Fixed #501: Dropping a stackable item on another one with
   including the f_onserver functions, the console and packet filtering functions.
+
   special attr (Newbie, Static, Move Never).
 +
- Fixed #509: Cheater message with disconnect.
 +
- Fixed #511: Tooltip Problem with Spawns.
 +
- Fixed #517: Deleting Accounts not loging properly.
  
17-01-2006, RanXerox (Script pack)
+
15-03-2006, Radiant
- Updated: sphere_triggers.scp,sphere_item_eight_age.scp,sphere_item_ml_misc.scp
+
- Fixed: WHILE loops ending with weird undefined symbol error.
  sphere_item_provisions_weapons_ml.scp,sphere_minor_artifacts.scp
 
  sphere_map_points0.scp,sphere_map_points1.scp
 
  sphere_item_provisions_weapons_aos.scp,sphere_item_provisions_weapons_se.scp
 
  
20-01-2006, Blizzard (Script Pack)
+
18-03-2006, Furio
- Updated: sphere_item_provisions_armor.scp, sphere_item_provisions_armor_se.scp,
+
- Fixed #526: "Resync [...]" working incorrectly.
  sphere_item_provisions_weapons_aos.scp, sphere_item_provisions_weapons_ml.scp,
+
- Fixed #520: Magic Flag IgnoreAr doesn't work.
  sphere_item_provisions_weapons_se.scp.
+
- Updated: no 0-100 limitations to RES*.
 +
- Updated: sphere_defs.scp
  
21-01-2006, Radiant
+
21-03-2006, Furio
- Updated: 80 character console command limitation to SCRIPT_MAX_LINE_LEN
+
- Fixed #292: Textentrylimited crashing clients (thx to Admin Ben)
 +
- Fixed #528: Invis items in pack and/or corpse we see it, but when
 +
  we click it, it dissappears.
 +
- Fixed #506: ghost of the npc appears after dying when mounted.
 +
- Updated: sphere_dialog.scp
  
22-01-2006, Furio
+
22-03-2006, MrSugarCube (Script pack)
- Fixed #380: IsNearType doesn't works whith custom typedef.
+
- Updated: sphere_menu.scp, sphere_item_misc.scp, townmagincia.scp (incorrect
- Fixed #366: Effect of Hallucination.
+
   spelling of 'jewelry').
- Fixed #378: Typo in sphere_admin.scp.
+
- Updated: sphere_item_provisions_armor_ml.scp (Duplicate DEFNAMEs for 02b74
- Fixed: exceptions when using .charlist.
+
  and 02b79).
- Fixed: typo in console message.
 
- Sync (Vjaka): defmessage string allocation, thus binary EXE size reduced by ~200kb.
 
- Sync (Vjaka): SERV.console CMD to launch commands as you were in server console.
 
- Sync (ShadowDragon): Items in multis do not send to the client if he is not in
 
   the multi (OSI-compatible lag fight) as OF_OSIMultiSight.
 
- Updated: now ARGS in f_onchar_create contains account name.
 
- Updated: sphere_serv_triggers.scp.
 
- Added: f_onaccount_delete, ARGS contain account name, RETURN 1 block the delete.
 
  
23-01-2006, Torfo
+
23-03-2006, Furio
- Fixed #264: Problem with 0xBF packet.
+
- Added: <FILE.FILEEXIST arg> returning 1 if arg exist.
 +
- Added: Support for Bushido/Ninjitsu/SpellWeaving spellbooks.
 +
- Updated: sphere_defs.scp (new typedefs), sphere_item_aos_se.scp (spellbooks).
  
23-01-2006, Blizzard (Script Pack)
+
23-03-2006, MrSugarCube
- Added: sphere_item_provisions_armor_ml.scp, sphere_item_provisions_clothing_ml.scp,
+
- Fixed: Incorrect spellbook packet being sent to newer clients with certain AOS
   sphere_item_provisions_clothing.scp.
+
  features disabled.
- Updated: sphere_item_provisions_armor.scp, sphere_item_profession_tailor_tanner.scp,
+
- Fixed #181: Woolly sheep having wool resource on corpse after being shorn.
   sphere_item_ml.scp.
+
- Fixed: Player adding non-vendable item to vendor stock is deleted - Vendor now
 +
   returns the item.
 +
- Fixed #475: Taking item from hidden state does not update other clients.
 +
- Modified: Warning message for non-vendable items will show the UID of the item
 +
   and vendor.
  
27-01-2006, Torfo
+
23-03-2006, Handred
- Fixed #411: sm_bolts in sphere_item_resources.scp and sphere_item_profession.scp
+
- Updated: sphere_spawns.scp. Changed all RESOURCES= to ID=, modified also the
- Fixed #409: added missing ">" in sphere_item_aos_se.scp
+
  WEIGHT= for a better and easier looking to, ie: ID=c_zombie 5.
- Fixed #405: added missing MT_FEMALE in def of succubus in spherechar_lbr.scp
 
- Fixed: seasons will be saved now.
 
- Fixed #408: <sector.season> doesn't work.
 
  
29-01-2006, Furio
+
24-03-2006, MrSugarCube
- Fixed #410: Promptconsole removes all used ",".
+
- Fixed #519: Poison spell and field spell damage reveals caster after every
- Fixed: strlen not working correctly with ",".
+
  damage effect.
 +
- Fixed: Setting TARGP only working with invalid locations.
 +
- Modified: @DropOn_Ground and @itemDropon_Ground triggers now have ARGS set
 +
  to the location the item will be dropped to, specific points accessible
 +
  using ARGV[x]. (readonly)
 +
- Fixed: ARGS not being parsed correctly into ARGV when empty parameters are
 +
  given (for example <myfunc 1,,,4,5> was treated as "1",",","4","5" and not
 +
  "1","","","4","5").
 +
- Modified: Attacker will not be revealed when a character is hit by a spell
 +
  with SPELLFLAG_FIELD set.
 +
- Added: Damage Flag DAM_NOREVEAL (04000). If this flag is applied the attacker
 +
  will not be revealed. This is applied by default to poison damage and spell
 +
  damage. (Note that for spells the attacker will be revealed regardless if
 +
  SPELLFLAG_HARM is set, unless SPELLFLAG_FIELD is also set, so only affects
 +
  field spell damage).
 +
- Updated: sphere_defs.scp (Updated DAM_FLAGS section)
  
29-01-2006, RanXerox (Script pack)
+
26-03-2006, MrSugarCube
- Updated: sphere_book.scp
+
- Modified: Vendor boxes will now only accept a maximum of 115 items dropped
 +
  inside (as opposed to the 256 item limit of a normal container). A warning
 +
  message will be displayed when the buy menu is shown if this limit has been
 +
  exceeded.
 +
- Fixed #540: Logged out characters can be targeted with spells (Actually
 +
  CANSEE was returning 1 without GM/ALLSHOW priv).
  
31-01-2006, Furio
+
27-03-2006, MrSugarCube
- Fixed #425: Unable to start sphere when editing sphere_msgs.scp.
+
- Fixed #429: Unable to walk on blocking terrain with platform properties
- Removed: USEGODPORT in sphere.ini (and also the god port)
+
  (eg: Palace of Paroxysmus acid).
- Modified: USEHTTP usage. Look into sphere.ini for new options.
+
- Fixed: Walking on stairs in certain areas (such as the ones at 925,641,-80,2
 +
  or 7060,376)
 +
- Updated: sphere_map0.scp, sphere_map_points0.scp, sphere_map0_ml.scp,
 +
  sphere_map_points0_ml.scp (Moved ML locations to seperate script which can be
 +
  uncommented to enabled ML areas).
 +
- Updated: spheretables.scp (Added ML map files to RESOURCES block, to be
 +
  uncommented if you wish to use).
 +
- Updated: sphere.ini (Updated MAP0 description to remind users to uncomment ML
 +
  map scripts).
  
02-02-2006, Furio
+
28-03-2006, Ellessar (Script Pack)
- Fixed: players being able to track invisible (.invis) GMs.
+
- Updated: sphere_item_provisions_weapons_se.scp (incorrect spelling for
- Sync (Vjaka): REGION.TYPE returning type from the itemdef of the multi.
+
  i_tetsubo SKILLMAKE).
  
10-02-2006, Furio
+
29-03-2006, MrSugarCube
- Modified: replaced internal routines of TAG/CTAG/VAR/LOCALs, it improves
+
- Fixed: NPCs unable to walk on the same tile as a dead/disconnected/insubstantial
   speed, memory usage and decrease the occurence of leaks/exception.
+
   character.
- Fixed #440: Crash when selling too many items to vendors.
 
  
11-02-2006, Furio
+
30-03-2006, MrSugarCube
- Fixed: new internal routines of TAG/CTAG/VAR/LOCALs in some special case.
+
- Fixed #545: TARGET function with no message specified sent a blank sysmessage
- Added: support for OSI AuthID to avoid possible hijack to game server. By
+
  to the client. (also affected PROMPTCONSOLE).
   default is disabled, set UseAuthID = 1 in sphere.ini to use it.
+
- Updated: sphere_msgs.scp - Added missing message definitions to the list
 +
   (27 were missing).
  
15-02-2006, Furio
+
30-03-2006, Ellessar (Script Pack)
- Fixed: "Divide by Zero" in CChar::Tick() for "update stats" sections.
+
- Updated: sphere_item_provisions_weapons.scp (SKILL properties corrected for
 +
  MaceFighting weapons).
  
19-02-2006, Furio
+
31-03-2006, MrSugarCube (Script Pack)
- Fixed #456: NEWDUPE and DUPE doesn't copy events.
+
- Updated: sphere_item_building_floors_se.scp (incorrect axis categories)
- Added: AOS properties for player characters: RES* (cold,energy,fire,poison) and
+
- Updated: sphere_item_provisons_deed.scp (incorrect spelling of "Provisions"
  LUCK with no built-in functionality.
+
   for some axis categories)
- Sync (Vjaka): Added #214: ColorNoto* settings for characters color hue change.
 
- Sync (Vjaka): "NEWLOOT X" character function creating and equiping item X for NPCs
 
  if can give loot, useful to be used in @Death or @DeathCorpse triggers.
 
- Sync (Vjaka): "NEWGOLD N" function gives amount N of gold to the current char.
 
- Sync (Vjaka): character function TIMERF N,FuncName to cause a timed execution of a
 
   function FuncName in N secs. Specifying N as -1 will clear all TIMERF list.
 
  These functions are not saved, so do not store hours in the list, the purpose
 
  of this is to decrease overhead due to timered memory items opeations.
 
- Sync (Shadow Dragon): TAG.NoMoveTill for script purposes. This doesn't allow char
 
  to move if TAG.NoMoveTill > SERV.Time.
 
  
20-02-2006, Furio
+
01-04-2006, MrSugarCube
- Fixed #462: TAG.NAME.HUE on chardef isn't working.
+
- Fixed #552: Removing items in SECTOR.ALLITEMS causes infinite loop
- Fixed: some possible overflow in some spots.
+
  (also ALLCHARS/ALLCHARSIDLE/ALLCLIENTS).
- Touchups for *NIX compilation.
 
  
20-02-2006, Cloud_Br (Script pack)
+
03-04-2006, Furio
- Changed description of EVENTSPET on sphere.ini
+
- Fixed #553: Errors during SERV.MAP parsing.
- Add some new points to sphere_map_pointsX.scp
+
- Fixed #407: Account creation with bad words.
- Add some places with names like on OSI (places that didn't have a respective name
+
- Removed: OF_Advanced_Los.
  before on default sphere) to sphere_mapX.scp files.
+
- Added: AdvancedLos in sphere.ini to control Los behaviour of player and npc.
  
24-02-2006, Vjaka
+
04-04-2006, RanXerox (Script pack)
- Fixed #158: NPC value spontaneously changing when NPC was under reactive armor.
+
- Updated: sphere_item_magic_wands.scp (eliminates old ITEMDEF numbers).
- Fixed #314: Elf's Hair Color in creation is not correct.
 
  
25-02-2006, Torfo
+
04-04-2006, MrSugarCube
- Fixed: possible PLEVEL-hack (thx to SL for reporting).
+
- Fixed #556: Exception occuring when failing to bandage another character.
 +
- Fixed #558: DB reference still accessible with MySQL support disabled.
  
03-03-2006, Furio
+
04-04-2006, Ellessar (Script pack)
- Fixed #401: Spells (incognito and mark) don't update the client tooltip.
+
- Updated: spherechar_lbr.scp (Changed "ICON=i_pet_orc_brute" to "ICON=i_pet_orc"
- Fixed #478: Newgold does not update gold amount.
+
  for character c_orc_brute)
  
05-03-2006, Furio
+
07-04-2006, MrSugarCube
- Fixed #483: Typo in sphere.ini.
+
- Fixed #565: Account name "account" not loaded correctly from accounts file.
- Fixed #484: LUCK and RES* properties throws errors when reading.
 
  
07-03-2006, Furio
+
08-04-2006, Ellessar (Script pack)
- Added: Tithing points for player characters as TITHING with no built-in
+
- Updated: sphere_item_icons_new.scp (Added missing icons: i_pet_terathanavenger,
   functionality.
+
  i_pet_meereternal, i_pet_meercaptain, i_pet_meermage)
- Fixed #492: Undefinied SCROLL_MOTD at player login.
+
- Updated: spherechar_lbr.scp (Added NPCs: c_mummy, c_terathan_avenger,
 +
   c_meer_eternal, c_meer_captain, c_meer_mage)
 +
- Updated: spherechar_se.scp (Fixed incorrect weapon for c_yomotsu_warrior)
  
08-03-2006, Furio
+
09-04-2006, Vjaka
- Fixed #502: Divide by Zero Exceptions in CChar::Tick() stat section.
+
- Fixed #284: Character DISPID limitation changed to 2048 basing on bodyconv.def.
- Fixed #503: Tithing Points showed incorrectly in Paladin book.
+
- Fixed #372: Weighted random templates had limitation for 64 members inside.
- Updated: sphere_item_aos_se.scp, sphere_item_magic_necromancer_aos.scp
+
- Fixed #479: Off-duty vendor going off-duty with active client around.
 +
- Fixed #497: Duplicated resources on inherited NPC.
 +
- Fixed #541: Picking item that is too heavy is causing item to drop.
 +
- Fixed #561: Players are unable to walk through any npc regardless of the stamina.
  
10-03-2006, Furio
+
10-04-2006, Furio
- Fixed #501: Dropping a stackable item on another one with
+
- Added: TERRAIN.Z in SERV.MAP to know at which z is located the map tile.
  special attr (Newbie, Static, Move Never).
+
- Fixed #577: SERV.ITEMDEF not behaving correctly.
- Fixed #509: Cheater message with disconnect.
 
- Fixed #511: Tooltip Problem with Spawns.
 
- Fixed #517: Deleting Accounts not loging properly.
 
  
15-03-2006, Radiant
+
10-04-2006, MrSugarCube (Script pack)
- Fixed: WHILE loops ending with weird undefined symbol error.
+
- Updated: sphere_map0.scp (Removed REGION_FLAG_UNDERGROUND from
 +
  a_lord_britishs_castle_1, fixing lighting around west britain).
  
18-03-2006, Furio
+
10-04-2006, Vjaka
- Fixed #526: "Resync [...]" working incorrectly.
+
- Fixed #575: Multiple resource lines in a REGIONTYPE not loading correctly.
- Fixed #520: Magic Flag IgnoreAr doesn't work.
 
- Updated: no 0-100 limitations to RES*.
 
- Updated: sphere_defs.scp
 
  
21-03-2006, Furio
+
11-04-2006, Ellessar (Script pack)
- Fixed #292: Textentrylimited crashing clients (thx to Admin Ben)
+
- Updated: sphere_backward_compatibility.scp (tweak for addnpc).
- Fixed #528: Invis items in pack and/or corpse we see it, but when
 
  we click it, it dissappears.
 
- Fixed #506: ghost of the npc appears after dying when mounted.
 
- Updated: sphere_dialog.scp
 
  
22-03-2006, MrSugarCube (Script pack)
+
13-04-2006, MrSugarCube
- Updated: sphere_menu.scp, sphere_item_misc.scp, townmagincia.scp (incorrect
+
- Fixed #576: Added World Statics Save to DEFMESSAGE table.
   spelling of 'jewelry').
+
- Updated: sphere_msgs.scp (Added 'server_worldstaticsave' message)
- Updated: sphere_item_provisions_armor_ml.scp (Duplicate DEFNAMEs for 02b74
+
 
   and 02b79).
+
15-04-2006, MrSugarCube
 +
- Fixed: Players unable to dismount from their rides after attacking
 +
  another character unless they retreated or killed the enemy.
 +
 
 +
16-04-2006, Handred (Script pack)
 +
- Updated: sphere_menu.scp (Added Guild Transfer menu option using
 +
   softcoded TRANSFERGUILD function. )
 +
- Updated: sphere_triggers.scp (Added TRANSFERGUILD function. Feel
 +
   free to fit it to your needs. )
  
23-03-2006, Furio
+
17-04-2006, MrSugarCube (Script pack)
- Added: <FILE.FILEEXIST arg> returning 1 if arg exist.
+
- Updated: sphere_spells.scp (Added SPELLFLAG_PLAYERONLY to spells
- Added: Support for Bushido/Ninjitsu/SpellWeaving spellbooks.
+
  71 and above (potion effects))
- Updated: sphere_defs.scp (new typedefs), sphere_item_aos_se.scp (spellbooks).
+
- Updated: jobbeggar.scp, jobblacksmith.scp, jobhealer.scp,
 +
  jobtavernkeeper.scp, jobvet.scp, jobweaponsmith.scp,
 +
  townbritain.scp (Fixed syntax errors where SRC.SEX was being used
 +
  incorrectly)
  
23-03-2006, MrSugarCube
+
18-04-2006, MrSugarCube
- Fixed: Incorrect spellbook packet being sent to newer clients with certain AOS
+
- Fixed: Adding a stack of scrolls to a spellbook consumed the whole
  features disabled.
+
   pile instead of just one.
- Fixed #181: Woolly sheep having wool resource on corpse after being shorn.
 
- Fixed: Player adding non-vendable item to vendor stock is deleted - Vendor now
 
   returns the item.
 
- Fixed #475: Taking item from hidden state does not update other clients.
 
- Modified: Warning message for non-vendable items will show the UID of the item
 
  and vendor.
 
  
23-03-2006, Handred
+
19-04-2006, coruja747 (Script pack)
- Updated: sphere_spawns.scp. Changed all RESOURCES= to ID=, modified also the
+
- Updated: sphere_item_magic_wands (Fixed incorrect spelling of 'daemon'
   WEIGHT= for a better and easier looking to, ie: ID=c_zombie 5.
+
   for i_wand_summon_daemon)
  
24-03-2006, MrSugarCube
+
19-04-2006, MrSugarCube
- Fixed #519: Poison spell and field spell damage reveals caster after every
+
- Fixed: Turning ships to force ship into invalid sailing location.
  damage effect.
 
- Fixed: Setting TARGP only working with invalid locations.
 
- Modified: @DropOn_Ground and @itemDropon_Ground triggers now have ARGS set
 
  to the location the item will be dropped to, specific points accessible
 
  using ARGV[x]. (readonly)
 
- Fixed: ARGS not being parsed correctly into ARGV when empty parameters are
 
  given (for example <myfunc 1,,,4,5> was treated as "1",",","4","5" and not
 
  "1","","","4","5").
 
- Modified: Attacker will not be revealed when a character is hit by a spell
 
  with SPELLFLAG_FIELD set.
 
- Added: Damage Flag DAM_NOREVEAL (04000). If this flag is applied the attacker
 
  will not be revealed. This is applied by default to poison damage and spell
 
  damage. (Note that for spells the attacker will be revealed regardless if
 
  SPELLFLAG_HARM is set, unless SPELLFLAG_FIELD is also set, so only affects
 
  field spell damage).
 
- Updated: sphere_defs.scp (Updated DAM_FLAGS section)
 
  
26-03-2006, MrSugarCube
+
20-04-2006, Furio
- Modified: Vendor boxes will now only accept a maximum of 115 items dropped
+
- Fixed #600: Forcont* loops block script execution if no items found.
  inside (as opposed to the 256 item limit of a normal container). A warning
 
  message will be displayed when the buy menu is shown if this limit has been
 
  exceeded.
 
- Fixed #540: Logged out characters can be targeted with spells (Actually
 
  CANSEE was returning 1 without GM/ALLSHOW priv).
 
  
27-03-2006, MrSugarCube
+
22-04-2006, MrSugarCube
- Fixed #429: Unable to walk on blocking terrain with platform properties
+
- Fixed #622: Unable to access specific resources for spells using
   (eg: Palace of Paroxysmus acid).
+
   RESOURCES.n[.KEY|.VAL]
- Fixed: Walking on stairs in certain areas (such as the ones at 925,641,-80,2
+
- Fixed #141: Curse spell having no effect on target.
  or 7060,376)
+
- Fixed #476: UID.x.KEY not working correctly on region reference (under
- Updated: sphere_map0.scp, sphere_map_points0.scp, sphere_map0_ml.scp,
+
   @Enter trigger for example).
  sphere_map_points0_ml.scp (Moved ML locations to seperate script which can be
 
  uncommented to enabled ML areas).
 
- Updated: spheretables.scp (Added ML map files to RESOURCES block, to be
 
  uncommented if you wish to use).
 
- Updated: sphere.ini (Updated MAP0 description to remind users to uncomment ML
 
   map scripts).
 
  
28-03-2006, Ellessar (Script Pack)
+
24-04-2006, MrSugarCube
- Updated: sphere_item_provisions_weapons_se.scp (incorrect spelling for
+
- Fixed #201: Walking off ship planks moves player to incorrect
   i_tetsubo SKILLMAKE).
+
   height (this is normal for characters with GM mode enabled).
  
29-03-2006, MrSugarCube
+
26-04-2006, Ellessar
- Fixed: NPCs unable to walk on the same tile as a dead/disconnected/insubstantial
+
- Updated: sphere_item_profession_tailor_tanner.scp (Removed custom
   character.
+
   @TargOn_Item trigger for i_sewing_kit)
  
30-03-2006, MrSugarCube
+
02-05-2006, Gygrazok
- Fixed #545: TARGET function with no message specified sent a blank sysmessage
+
- Updated: sphereCrypt.ini (Added encryption keys for 5.0.2 client)
  to the client. (also affected PROMPTCONSOLE).
 
- Updated: sphere_msgs.scp - Added missing message definitions to the list
 
  (27 were missing).
 
  
30-03-2006, Ellessar (Script Pack)
+
02-05-2006, Furio
- Updated: sphere_item_provisions_weapons.scp (SKILL properties corrected for
+
- Fixed #643: Functions with similar names sometimes get miscalled (thx to SL Patch).
  MaceFighting weapons).
+
- Fixed #641: Deleting account when the player is online.
 +
- Fixed #625: Cloth bolts give always 25 i_cloth, while it should give the amount of
 +
  i_cloth specified in RESOURCES.
 +
- Updated: sphere_item_profession_tanner.scp (Cloth bolt value).
  
31-03-2006, MrSugarCube (Script Pack)
+
03-05-2006, MrSugarCube
- Updated: sphere_item_building_floors_se.scp (incorrect axis categories)
+
- Fixed #642: Intrinsic functions not working correctly from SERV
- Updated: sphere_item_provisons_deed.scp (incorrect spelling of "Provisions"
+
  object.
   for some axis categories)
+
- Fixed #645: Possible to place invalid items on a gameboard, which
 +
  in turn crashes clients.
 +
- Fixed: Game board was setup incorrectly for games of Checkers.
 +
- Modified: Game board setup for backgammon game added. (Note: Requires
 +
  that backgammon board has MORE1 value of 2)
 +
- Updated: sphere_item_profession_cook_barkeep_baker.scp (i_backgammon_game
 +
   MORE1 changed to correct value)
  
01-04-2006, MrSugarCube
+
09-05-2006, Torfo
- Fixed #552: Removing items in SECTOR.ALLITEMS causes infinite loop
+
- Fix (temp): TX-Errors are disconnecting player now (just on linux).
  (also ALLCHARS/ALLCHARSIDLE/ALLCLIENTS).
 
  
03-04-2006, Furio
+
15-05-2006, Furio
- Fixed #553: Errors during SERV.MAP parsing.
+
- Modified: If VENDORMARKUP is not present on the npc or in the region the one from
- Fixed #407: Account creation with bad words.
+
  the chardef will be readed.
- Removed: OF_Advanced_Los.
+
- Modified: Changing CLIENT properties will not show anymore annoying sysmessages.
- Added: AdvancedLos in sphere.ini to control Los behaviour of player and npc.
 
  
04-04-2006, RanXerox (Script pack)
+
19-05-2006, Shadow Dragon
- Updated: sphere_item_magic_wands.scp (eliminates old ITEMDEF numbers).
+
- Fixed #638 & #639: Items outside of multi not sending when in multi.
 +
- Fixed #655: House building on each other.
  
04-04-2006, MrSugarCube
+
21-05-2006, V
- Fixed #556: Exception occuring when failing to bandage another character.
+
- Fixed #611: Vendors buying without buy= assigned to them
- Fixed #558: DB reference still accessible with MySQL support disabled.
 
  
04-04-2006, Ellessar (Script pack)
+
23-05-2006, MrSugarCube
- Updated: spherechar_lbr.scp (Changed "ICON=i_pet_orc_brute" to "ICON=i_pet_orc"
+
- Fixed #675: Stone wall revealing location of higher privileged characters.
  for character c_orc_brute)
 
  
07-04-2006, MrSugarCube
+
28-05-2006, Furio
- Fixed #565: Account name "account" not loaded correctly from accounts file.
+
- Fixed #662: Skill lock tick.
 +
- Fixed #691: serv.REGIONRESOURCE.x.REAP not working
 +
- Modified: FeatureAOS to permit using of basic Aos feature without having tooltips.
 +
  Look into sphere.ini for more info.
  
08-04-2006, Ellessar (Script pack)
+
31-05-2006, MrSugarCube
- Updated: sphere_item_icons_new.scp (Added missing icons: i_pet_terathanavenger,
+
- Modified: <CANCAST (spell)> now accepts an extra parameter to check the region
   i_pet_meereternal, i_pet_meercaptain, i_pet_meermage)
+
  flags. If the second parameter is not supplied then this check is enabled by
- Updated: spherechar_lbr.scp (Added NPCs: c_mummy, c_terathan_avenger,
+
  default, the advantage is that you can now disable the region check when checking
   c_meer_eternal, c_meer_captain, c_meer_mage)
+
   if a character can cast a spell. New usage is: <CANCAST (spell) [checkantimagic]>
- Updated: spherechar_se.scp (Fixed incorrect weapon for c_yomotsu_warrior)
+
- Fixed #702: Items with value=0 can not be crafted (note that without a value set the
 +
  QUALITY property will be unavailable, and also no experience will be gained from such
 +
   items).
  
09-04-2006, Vjaka
+
31-05-2006, MrSugarCube (Script pack)
- Fixed #284: Character DISPID limitation changed to 2048 basing on bodyconv.def.
+
- Fixed #679: sphere_skillmenu.scp (Inscription SKILLMENU now makes use of new
- Fixed #372: Weighted random templates had limitation for 64 members inside.
+
  CANCAST syntax, resolving the issue of region flags preventing the crafting of
- Fixed #479: Off-duty vendor going off-duty with active client around.
+
  certain scrolls)
- Fixed #497: Duplicated resources on inherited NPC.
 
- Fixed #541: Picking item that is too heavy is causing item to drop.
 
- Fixed #561: Players are unable to walk through any npc regardless of the stamina.
 
  
10-04-2006, Furio
+
01-06-2006, MrSugarCube
- Added: TERRAIN.Z in SERV.MAP to know at which z is located the map tile.
+
- Fixed #671: CriminalTimer=0 causes errors when setting criminal status.
- Fixed #577: SERV.ITEMDEF not behaving correctly.
+
- Fixed #703: Verbs not executing correctly on the default object in dialogs.
  
10-04-2006, MrSugarCube (Script pack)
+
04-06-2006, MrSugarCube
- Updated: sphere_map0.scp (Removed REGION_FLAG_UNDERGROUND from
+
- Fixed #681: Unable to execute and read the return value of scripted functions
   a_lord_britishs_castle_1, fixing lighting around west britain).
+
  on the SERV object.
 +
- Fixed: Server stats not being given when requested by UOGateway.
 +
- Modified: The following multi properties can now be read from their ITEMDEFs:
 +
   MULTIREGION, REGIONFLAGS and COMPONENT (COMPONENT usage is same as COMP).
  
10-04-2006, Vjaka
+
05-06-2006, MrSugarCube
- Fixed #575: Multiple resource lines in a REGIONTYPE not loading correctly.
+
- Fixed: Attempts to use house keys to lock items down in containers.
  
11-04-2006, Ellessar (Script pack)
+
06-06-2006, Furio
- Updated: sphere_backward_compatibility.scp (tweak for addnpc).
+
- Added: NAPIERPOW(arg), LOGARITHM(arg[,base]), TAN(arg).
  
13-04-2006, MrSugarCube
+
06-06-2006, MrSugarCube
- Fixed #576: Added World Statics Save to DEFMESSAGE table.
+
- Fixed: MULTIREGION property didn't show the value exactly as it appears in
- Updated: sphere_msgs.scp (Added 'server_worldstaticsave' message)
+
  scripts (x1,y1,x2+1,y2+1,0 instead of x1,y1,x2,y2)
  
15-04-2006, MrSugarCube
+
08-06-2006, MrSugarCube
- Fixed: Players unable to dismount from their rides after attacking
+
- Fixed #711: EFFECT_ID property returning the EFFECT value on SPELL block.
   another character unless they retreated or killed the enemy.
+
- Fixed #413: Spell icons are bounced into backpack with MAGICF_STACKSTATS
 +
  enabled.
 +
- Modified: MAGICF_STACKSTATS now allows a character to be affected by
 +
  each of the stat spells at the same time (eg. strength+bless+feeblemind).
 +
  Note that it does not allow multiple effects from the same spell (so
 +
   casting bless several times does not work).
 +
- Updated: Sphere.ini with MAGICF_STACKSTATS description
  
16-04-2006, Handred (Script pack)
+
08-06-2006, Furio
- Updated: sphere_menu.scp (Added Guild Transfer menu option using
+
- Fixed #699: Removing an account on Linux cause an exception.
  softcoded TRANSFERGUILD function. )
 
- Updated: sphere_triggers.scp (Added TRANSFERGUILD function. Feel
 
  free to fit it to your needs. )
 
  
17-04-2006, MrSugarCube (Script pack)
+
08-06-2006, Ellessar (Script pack)
- Updated: sphere_spells.scp (Added SPELLFLAG_PLAYERONLY to spells
+
- Updated: sphere_triggers.scp (Updated SRC.NEWITEM with SERV.NEWITEM and
  71 and above (potion effects))
+
   removed unnecessary SRC references)
- Updated: jobbeggar.scp, jobblacksmith.scp, jobhealer.scp,
 
   jobtavernkeeper.scp, jobvet.scp, jobweaponsmith.scp,
 
  townbritain.scp (Fixed syntax errors where SRC.SEX was being used
 
  incorrectly)
 
  
18-04-2006, MrSugarCube
+
08-06-2006, Beyonder (Script pack)
- Fixed: Adding a stack of scrolls to a spellbook consumed the whole
+
- Updated: sphere_item_building_fence.scp (Changed incorrect item defname
   pile instead of just one.
+
  i_gate_wood_2 to i_fence_wood_3 (ITEMDEF 085c))
 +
- Updated: sphere_backward_compatibility.scp (Added i_gate_wood_2 as a
 +
   DUPEITEM of i_fence_wood_3 for saves using incorrect defname)
  
19-04-2006, coruja747 (Script pack)
+
11-06-2006, V
- Updated: sphere_item_magic_wands (Fixed incorrect spelling of 'daemon'
+
- Fixed: alligator not responding to commands
  for i_wand_summon_daemon)
+
- Added: Broadcast warning 10 seconds before world save is performed to alert players
  
19-04-2006, MrSugarCube
+
12-06-2006, MrSugarCube
- Fixed: Turning ships to force ship into invalid sailing location.
+
- Fixed: ISNUM not working correctly with numbers in hex format.
  
20-04-2006, Furio
+
13-06-2006, MrSugarCube
- Fixed #600: Forcont* loops block script execution if no items found.
+
- Added #722: Support for dialog component 'buttontileart' in newer clients. Syntax
 +
  is the same as 'button', but with 4 additional parameters for placing a tilepic
 +
  over the gump image with a specified hue (0=normal) and offset (0,0=top left):
 +
  "buttontileart x y up down active page id tileid tilehue offsetx offsety"
 +
- Fixed: Remove Trap skill not starting after targeting an object.
 +
- Fixed: Scripted & Targeted skills not starting after targeting an object.
 +
- Fixed: Possible exceptions occuring when a reference does not exist (such as ACCOUNT
 +
  .CHAR.x where x was an invalid index)
 +
- Modified: Stat regeneration will now take twice as long instead of halting
 +
  completely when a character is hungry.
  
22-04-2006, MrSugarCube
+
13-06-2006, MrSugarCube (Script pack)
- Fixed #622: Unable to access specific resources for spells using
+
- Updated: sphere_dialog.scp (Fixed d_hair_dye dialog not dying player's hair and
  RESOURCES.n[.KEY|.VAL]
+
   added buttontileart description to the help section)
- Fixed #141: Curse spell having no effect on target.
 
- Fixed #476: UID.x.KEY not working correctly on region reference (under
 
   @Enter trigger for example).
 
  
24-04-2006, MrSugarCube
+
14-06-2006, MrSugarCube
- Fixed #201: Walking off ship planks moves player to incorrect
+
- Fixed: Exception when adding a guild member and not provided sufficient arguments.
  height (this is normal for characters with GM mode enabled).
+
- Fixed: Inviting someone into a party tells the wrong character they've been added.
  
26-04-2006, Ellessar
+
15-06-2006, Furio
- Updated: sphere_item_profession_tailor_tanner.scp (Removed custom
+
- Added: Added TAG.OVERRIDE.STATSUM/SKILLSUM/STATCAP[$statid]/SKILLCAP[$skillid] for
   @TargOn_Item trigger for i_sewing_kit)
+
  players and npc to override SKILLCLASS values.
 +
- Sync (ShadowDragon): TAG.OVERRIDE.REGEN[$statid]/REGENVAL[$statid] to modify regen
 +
   rate and regen amount.
 +
- Sync (Vjaka): Added <EXPLODE sep,string> operator which converts string with separators
 +
  other than ',' to commas making possible to operate with such string using strarg/streat.
 +
  Sample: LOCAL.S=<explode :/- ,my:test/string:2-3> should give result of "my,test,string,2,3".
  
02-05-2006, Gygrazok
+
17-06-2006, MrSugarCube
- Updated: sphereCrypt.ini (Added encryption keys for 5.0.2 client)
+
- Fixed #729: AntiMagic flags blocking spell effects on items even with GM mode enabled.
 +
- Fixed #730: Immunity to spider web traps after taking damage.
  
02-05-2006, Furio
+
17-06-2006, coruja747 (Script pack)
- Fixed #643: Functions with similar names sometimes get miscalled (thx to SL Patch).
+
- Updated: sphere_item_provisions_armor_se.scp (Fixed error in t_ninja_belt)
- Fixed #641: Deleting account when the player is online.
 
- Fixed #625: Cloth bolts give always 25 i_cloth, while it should give the amount of
 
  i_cloth specified in RESOURCES.
 
- Updated: sphere_item_profession_tanner.scp (Cloth bolt value).
 
  
03-05-2006, MrSugarCube
+
18-06-2006, V (TYVM SL)
- Fixed #642: Intrinsic functions not working correctly from SERV
+
- Modified: TimerF is now global and works on any object. It will take optional
  object.
+
  arguments to the function call. Entire list is now saved and loaded upon startup.
- Fixed #645: Possible to place invalid items on a gameboard, which
+
  It no longer uses -1 to erase the TimerF list. Takes a maximum of 1024 characters.
  in turn crashes clients.
+
   syntax: timerf n, function args
- Fixed: Game board was setup incorrectly for games of Checkers.
 
- Modified: Game board setup for backgammon game added. (Note: Requires
 
  that backgammon board has MORE1 value of 2)
 
- Updated: sphere_item_profession_cook_barkeep_baker.scp (i_backgammon_game
 
   MORE1 changed to correct value)
 
  
09-05-2006, Torfo
+
19-06-2006, MrSugarCube
- Fix (temp): TX-Errors are disconnecting player now (just on linux).
+
- Fixed #653: TRAIN function causing exception when not all default skills
 +
  are defined.
 +
- Fixed #732: Items on buy/sell menus displaying names from muls with
 +
  FEATURE_AOS_UPDATE_B disabled on AOS+ clients. Instead a basic tooltip packet
 +
  containing only the name of the item will be sent to the client in this case.
  
15-05-2006, Furio
+
19-06-2006, MrSugarCube (Script pack)
- Modified: If VENDORMARKUP is not present on the npc or in the region the one from
+
- Updated: sphere_item_provisions_weapons_se.scp (Corrected incorrect DUPEITEM
   the chardef will be readed.
+
   and TDATA properties for i_fukiya)
- Modified: Changing CLIENT properties will not show anymore annoying sysmessages.
+
- Updated: sphere_msgs.scp (Moved 32 hardcoded messages to defmessages and added
 +
  1 missing defmessage)
  
19-05-2006, Shadow Dragon
+
01-07-2006, Furio
- Fixed #638 & #639: Items outside of multi not sending when in multi.
+
- Fixed #740: Strange price on vendors.
- Fixed #655: House building on each other.
+
- Fixed #752: Resizepic not showing with dorigin.
 +
- Fixed #757: Error on ".serv.account add".
  
21-05-2006, V
+
02-07-2006, Nazghul (with thx to Ellessar)
- Fixed #611: Vendors buying without buy= assigned to them
+
- Fixed #639: OSI Multi Sight removes items already in sight.
 +
- Added: TAG.ALWAYSSEND for items. An item with this TAG will always be send,
 +
  no matter whether it is in a multi or not. The TAG works only with
 +
  OF_OSIMultiSight on.
 +
- Redone new items sending (should save some unneeded packets)
  
23-05-2006, MrSugarCube
+
04-07-2006, MrSugarCube
- Fixed #675: Stone wall revealing location of higher privileged characters.
+
- Modified: SERV.CLIENT.x reference no longer accepts x if it is out of range
 +
  (use SERV.CLIENTS property to check range).
 +
- Modified: SERV.CLIENT.x reference no longer skips clients without characters
 +
  (such as HTTP, or telnet connections), which caused strange behaviour.
 +
  <SERV.CLIENT.x> will return 0 if the client has no attached character, 1 if
 +
  the client has a character attached.
  
28-05-2006, Furio
+
05-07-2006, Nazghul
- Fixed #662: Skill lock tick.
+
- Added: A skill trigger ON=@PreStart and a character trigger ON=@SkillPreStart
- Fixed #691: serv.REGIONRESOURCE.x.REAP not working
+
  are now called before ANY hardcoded stuff related to the skill which will start.
- Modified: FeatureAOS to permit using of basic Aos feature without having tooltips.
+
- Added: A skill flag SFK_NOMINDIST. With this flag on, you can mine, chop
  Look into sphere.ini for more info.
+
  (distance doesn't have to be >= 1) or fish (distance doesn't have to be >= 2)
 +
  right under yourself.
 +
- Modified: Now an axe can be damaged during lumberjacking.
 +
- Fixed: Fishing bug, which allowed fishing through ship floor.
 +
- Fixed: Chopping with t_weapon_fence does not start skill Lumberjacking.
  
31-05-2006, MrSugarCube
+
05-07-2006, Nazghul (Script Pack)
- Modified: <CANCAST (spell)> now accepts an extra parameter to check the region
+
- Updated: sphere_defs.scp (added section skill_flags)
  flags. If the second parameter is not supplied then this check is enabled by
+
- Updated: sphere_msgs.scp (messages fishing_close, lumberjacking_close,
  default, the advantage is that you can now disable the region check when checking
+
   lumberjacking_tool, mining_close, fishing_4)
  if a character can cast a spell. New usage is: <CANCAST (spell) [checkantimagic]>
 
- Fixed #702: Items with value=0 can not be crafted (note that without a value set the
 
   QUALITY property will be unavailable, and also no experience will be gained from such
 
  items).
 
  
31-05-2006, MrSugarCube (Script pack)
+
09-07-2006, MrSugarCube
- Fixed #679: sphere_skillmenu.scp (Inscription SKILLMENU now makes use of new
+
- Fixed: dtext, dcroppedtext, dhtmlgump, dtextentry and dtextentrylimited in gumps
  CANCAST syntax, resolving the issue of region flags preventing the crafting of
+
  using a space for the text if no string was provided.
   certain scrolls)
+
- Fixed #754: GMs losing non-vendable items when dropping them into a vendor box.
 +
- Fixed #720: <dSOMEVAL> returning 0 for values starting with "0.".
 +
 
 +
10-07-2006, MrSugarCube
 +
- Fixed #760: Exception caused by opening paperdoll when not all default skills
 +
   are defined.
  
01-06-2006, MrSugarCube
+
11-07-2006 Nazghul
- Fixed #671: CriminalTimer=0 causes errors when setting criminal status.
+
- Fixed #594: Players (only if their client allows) and NPCs were able to go through
- Fixed #703: Verbs not executing correctly on the default object in dialogs.
+
  non-static walls.
 +
- Added: CAN-Flag mt_passwalls (08); NPC with this flag CAN pass through static
 +
  and dynamic walls.
  
04-06-2006, MrSugarCube
+
12-07-2006, Furio
- Fixed #681: Unable to execute and read the return value of scripted functions
+
- Fixed #690: serv.REGIONTYPE.*.resources is not working.
  on the SERV object.
+
- Added: <serv.regiontype.*.calcmemberindex [uid]> returning the index of the
- Fixed: Server stats not being given when requested by UOGateway.
+
   resource selected randomly or basing on the skill of the uid passed as argument.
- Modified: The following multi properties can now be read from their ITEMDEFs:
 
   MULTIREGION, REGIONFLAGS and COMPONENT (COMPONENT usage is same as COMP).
 
  
05-06-2006, MrSugarCube
+
12-07-2006 Nazghul
- Fixed: Attempts to use house keys to lock items down in containers.
+
- Fixed: When logging in with an unencrypted client, you were not able to see
 +
  tooltips for objects in line of sight (0 to 18 tiles away from you),
 +
  including yourself.
  
06-06-2006, Furio
+
12-07-2006, Nazghul (Script Pack)
- Added: NAPIERPOW(arg), LOGARITHM(arg[,base]), TAN(arg).
+
- Updated: sphere_defs.scp (updated section can_flags)
 +
- Fixed #761: missing positioning of newly created vendor in i_deed_vendor
 +
  (sphere_item_provisions_deed.scp)
  
06-06-2006, MrSugarCube
+
13-07-2006, Nazghul
- Fixed: MULTIREGION property didn't show the value exactly as it appears in
+
- Added: CURFOLLOWER, MAXFOLLOWER with no built-in functionality. These variables
  scripts (x1,y1,x2+1,y2+1,0 instead of x1,y1,x2,y2)
+
  change values on a status gump.
 +
- Fixed #764: Cannot see items in large multis (OF_OsiMultiSight).
 +
- Sync (Vjaka): ISWEAPON and ISARMOR read-only properties for items.
  
08-06-2006, MrSugarCube
+
14-07-2006, Nazghul
- Fixed #711: EFFECT_ID property returning the EFFECT value on SPELL block.
+
- Added: ISWEAPON and ISARMOR are now avaliable through serv.itemdef.x.* too.
- Fixed #413: Spell icons are bounced into backpack with MAGICF_STACKSTATS
+
 
   enabled.
+
16-07-2006, Nazghul
- Modified: MAGICF_STACKSTATS now allows a character to be affected by
+
- Added: OF_Command_Sysmsgs into sphere.ini. With this flag on, you will see
   each of the stat spells at the same time (eg. strength+bless+feeblemind).
+
   sysmessages with current status after typing .allmove, .allshow, .debug,
  Note that it does not allow multiple effects from the same spell (so
+
   .detail, .gm, .hearall, .privshow, .invis, .invul
  casting bless several times does not work).
 
- Updated: Sphere.ini with MAGICF_STACKSTATS description
 
  
08-06-2006, Furio
+
20-07-2006, Nazghul (Script Pack)
- Fixed #699: Removing an account on Linux cause an exception.
+
- Fixed #776: sphere_map2.scp (Wrong Ilshenar Region description (Wisp Dungeon),
 +
  thx Coruja747.
  
08-06-2006, Ellessar (Script pack)
+
21-07-2006, Furio
- Updated: sphere_triggers.scp (Updated SRC.NEWITEM with SERV.NEWITEM and
+
- Fixed #780: Unable to read REPLICATE property.
   removed unnecessary SRC references)
+
- Changed: TAG.OVERRIDE.STATCAP[$statid]/SKILLCAP[$skillid]/REGEN[$statid]/REGENVAL[$statid]
 +
  to TAG.OVERRIDE.STATCAP_$statid/SKILLCAP_$skillid/REGEN_$statid/REGENVAL_$statid.
 +
- Added: -E to command line. Starting Sphere with it will enable the ExceptionDumper
 +
  that will generate a .map file on unexpected exceptions. Sending that file through
 +
   the bugtracker will help us in the debug process. (thx to Z.)
 +
- Fixed #774: Ghost's speech when in peace mode.
  
08-06-2006, Beyonder (Script pack)
+
21-07-2006, MrSugarCube
- Updated: sphere_item_building_fence.scp (Changed incorrect item defname
+
- Fixed: Incorrect name shown when a player declines a party invite.
  i_gate_wood_2 to i_fence_wood_3 (ITEMDEF 085c))
+
- Modified: Placing a house over a staff member (Counselor+) no longer blocks
- Updated: sphere_backward_compatibility.scp (Added i_gate_wood_2 as a
+
   the placement if the character cannot see them.
   DUPEITEM of i_fence_wood_3 for saves using incorrect defname)
 
  
11-06-2006, V
+
22-07-2006, MrSugarCube
- Fixed: alligator not responding to commands
+
- Added: SPEEDMODE property for players. Allows setting the speed mode that a
- Added: Broadcast warning 10 seconds before world save is performed to alert players
+
  client can use (and affects the movement throttle accordingly). There are
 +
  4 different speed modes that affect the client:
 +
    0  - Normal speed.
 +
    1  - Double speed on foot, normal speed when mounted.
 +
    2  - Always walk on foot and when mounted.
 +
    3+ - Always run on foot, always walk when mounted.
  
12-06-2006, MrSugarCube
+
22-07-2006, coruja747 (Script pack)
- Fixed: ISNUM not working correctly with numbers in hex format.
+
- Updated: sphere_map2.scp (Sorcerer Dungeon region definitions incorrect).
  
13-06-2006, MrSugarCube
+
23-07-2006, Shadow Dragon
- Added #722: Support for dialog component 'buttontileart' in newer clients. Syntax
+
- Added: LOCAL.Arrow storing an UID of used arrow while archery in @Hit.
  is the same as 'button', but with 4 additional parameters for placing a tilepic
+
- Added: Extra combat flag COMBAT_PREHIT to allow pre hit combat style
   over the gump image with a specified hue (0=normal) and offset (0,0=top left):
+
   (first hit is instant)
  "buttontileart x y up down active page id tileid tilehue offsetx offsety"
+
 
- Fixed: Remove Trap skill not starting after targeting an object.
+
26-07-2006, coruja747 (Script Pack)
- Fixed: Scripted & Targeted skills not starting after targeting an object.
+
- Updated: sphere_map2.scp (#793, Lake Shire region has not to be guarded)
- Fixed: Possible exceptions occuring when a reference does not exist (such as ACCOUNT
+
- Added: GAINRADIUS keyword for skill definitions. Skillgain will only be calculated if
   .CHAR.x where x was an invalid index)
+
  the current skill is less than the actual difficulty + GAINRADIUS to prohibit skillgain
- Modified: Stat regeneration will now take twice as long instead of halting
+
   by performing way too easy tasks. If not set it defaults to 100.0 (so pertaining the
   completely when a character is hungry.
+
   old behaviour)
  
13-06-2006, MrSugarCube (Script pack)
+
27-07-2006, coruja747 (Script Pack)
- Updated: sphere_dialog.scp (Fixed d_hair_dye dialog not dying player's hair and
+
- Fixed: #796, sphere_map_points2.scp (Wisp Dungeon, Kirin Passage, Cyclops Dungeon)
  added buttontileart description to the help section)
 
  
14-06-2006, MrSugarCube
+
28-07-2006, coruja747 (Script Pack)
- Fixed: Exception when adding a guild member and not provided sufficient arguments.
+
- Fixed: #800, missing teleports in sphere_map_points0.scp and sphere_map_points1.scp
- Fixed: Inviting someone into a party tells the wrong character they've been added.
 
  
15-06-2006, Furio
+
29-07-2006, Nazghul
- Added: Added TAG.OVERRIDE.STATSUM/SKILLSUM/STATCAP[$statid]/SKILLCAP[$skillid] for
+
- Modified: @Dclick is now called for items which were dclicked by an NPC.
   players and npc to override SKILLCLASS values.
+
   (e.g. when an NPC is going to open a door, @DClick is called for this door)
- Sync (ShadowDragon): TAG.OVERRIDE.REGEN[$statid]/REGENVAL[$statid] to modify regen
+
- Fixed #798: If a wall was built on a spot where a paralyzed player stays,
  rate and regen amount.
+
   he was not unparalyzed.
- Sync (Vjaka): Added <EXPLODE sep,string> operator which converts string with separators
 
   other than ',' to commas making possible to operate with such string using strarg/streat.
 
  Sample: LOCAL.S=<explode :/- ,my:test/string:2-3> should give result of "my,test,string,2,3".
 
  
17-06-2006, MrSugarCube
+
29-07-2006, MrSugarCube
- Fixed #729: AntiMagic flags blocking spell effects on items even with GM mode enabled.
+
- Fixed: Vendors speak two messages when a player does not have any items to sell to them.
- Fixed #730: Immunity to spider web traps after taking damage.
 
  
17-06-2006, coruja747 (Script pack)
+
30-07-2006, Shadow Dragon
- Updated: sphere_item_provisions_armor_se.scp (Fixed error in t_ninja_belt)
+
- Added: New trigger @Criminal called after someone becomes criminal for someone.
 +
  [] - criminal, SRC - someone. RETURN 1 - stops hardcoded effect (memory_harmedby and so),
 +
  so you can make your own criminal system.
  
18-06-2006, V (TYVM SL)
+
31-07-2006, Kirofus (Script pack)
- Modified: TimerF is now global and works on any object. It will take optional
+
- Updated: sphere_types.scp (Fixed incorrect terrain definition for t_water)
  arguments to the function call. Entire list is now saved and loaded upon startup.
 
  It no longer uses -1 to erase the TimerF list. Takes a maximum of 1024 characters.
 
  syntax: timerf n, function args
 
  
19-06-2006, MrSugarCube
+
31-07-2006, MrSugarCube
- Fixed #653: TRAIN function causing exception when not all default skills
+
- Modified: MaxWeight is now sent to the client for display on the status window in
   are defined.
+
   newer clients.
- Fixed #732: Items on buy/sell menus displaying names from muls with
+
 
   FEATURE_AOS_UPDATE_B disabled on AOS+ clients. Instead a basic tooltip packet
+
31-07-2006, Nazghul
  containing only the name of the item will be sent to the client in this case.
+
- Added: CONTP function, which allows you to change the position of an item,
 +
   which is inside a container.
  
19-06-2006, MrSugarCube (Script pack)
+
01-08-2007, Nazghul
- Updated: sphere_item_provisions_weapons_se.scp (Corrected incorrect DUPEITEM
+
- Added: INI flag EF_New_Walkcheck = 04000 to switch on and off new walkcheck routines
   and TDATA properties for i_fukiya)
+
   what should prohibit NPC from passing thru walls if not explicitely stated
- Updated: sphere_msgs.scp (Moved 32 hardcoded messages to defmessages and added
+
  (CAN-Flag mt_passwalls (08))
  1 missing defmessage)
 
  
01-07-2006, Furio
+
02-08-2006, Furio
- Fixed #740: Strange price on vendors.
+
- Added: STRREGEX(pattern,string) that execute a pattern matching supporting the
- Fixed #752: Resizepic not showing with dorigin.
+
  known standard. Return: 1 match found, 0 match not found, -1 illegal pattern syntax.
- Fixed #757: Error on ".serv.account add".
 
  
02-07-2006, Nazghul (with thx to Ellessar)
+
04-08-2006, Nazghul
- Fixed #639: OSI Multi Sight removes items already in sight.
+
(most code revised, debugged and (re)designed by Ellessar when I was up to drop
- Added: TAG.ALWAYSSEND for items. An item with this TAG will always be send,
+
this all in desperation)
  no matter whether it is in a multi or not. The TAG works only with
+
- Added: Function AddContextEntry. what takes 2 to 4 arguments separated by a comma.
  OF_OSIMultiSight on.
+
  SRC.AddContextEntry EntryTag,TextID,Flags,Color
- Redone new items sending (should save some unneeded packets)
+
  EntryTag - the number to return as ARGN by @(item)ContextMenuSelect. Make it unique.
 +
            - EntryTags from 0 to 100 are reserved by Sphere for internal use, so do not
 +
              use it.
 +
  TextID - CLILOCed name of the button. The number from cliloc.[your_localization]
 +
            WITHOUT the leading "300" or such! Just type "5194" or "11010"
 +
  Flags - 01 - locked (will be grayed out)
 +
        - 02 - consecutive entries with this flag set will be summarized under
 +
                a golden arrow
 +
        - 020 - can be colored
 +
  Color (applied only if Flags & 020) - hue
  
04-07-2006, MrSugarCube
+
- Added: Trigger @ContextMenuRequest/@itemContextMenuRequest which is fired after
- Modified: SERV.CLIENT.x reference no longer accepts x if it is out of range
+
   receiving a display Popup-menu client request (single click on an object).
   (use SERV.CLIENTS property to check range).
 
- Modified: SERV.CLIENT.x reference no longer skips clients without characters
 
  (such as HTTP, or telnet connections), which caused strange behaviour.
 
  <SERV.CLIENT.x> will return 0 if the client has no attached character, 1 if
 
  the client has a character attached.
 
  
05-07-2006, Nazghul
+
   It can be fired two times, each call has a different ARGN.
- Added: A skill trigger ON=@PreStart and a character trigger ON=@SkillPreStart
 
  are now called before ANY hardcoded stuff related to the skill which will start.
 
- Added: A skill flag SFK_NOMINDIST. With this flag on, you can mine, chop
 
   (distance doesn't have to be >= 1) or fish (distance doesn't have to be >= 2)
 
  right under yourself.
 
- Modified: Now an axe can be damaged during lumberjacking.
 
- Fixed: Fishing bug, which allowed fishing through ship floor.
 
- Fixed: Chopping with t_weapon_fence does not start skill Lumberjacking.
 
  
05-07-2006, Nazghul (Script Pack)
+
  The first time it is fired before any hardcoded stuff is added to the Popup-menu.
- Updated: sphere_defs.scp (added section skill_flags)
+
  Here, Return 1 denies displaying any hardcoded entries, but if you make a softcoded
- Updated: sphere_msgs.scp (messages fishing_close, lumberjacking_close,
+
  entry, it WILL be displayed. It also will prohibit the second call of the trigger.
   lumberjacking_tool, mining_close, fishing_4)
+
  Both, Return 0 and Return 2 allows hardcoded stuff to be added. If you change ARGN,
 +
   the trigger will be called once more (but ARGN != 1).
  
09-07-2006, MrSugarCube
+
  The second time it is fired after all hardcoded stuff was added (so you can add
- Fixed: dtext, dcroppedtext, dhtmlgump, dtextentry and dtextentrylimited in gumps
+
   your stuff to the bottom of the Popup-menu). Return value has no effect at all.
   using a space for the text if no string was provided.
 
- Fixed #754: GMs losing non-vendable items when dropping them into a vendor box.
 
- Fixed #720: <dSOMEVAL> returning 0 for values starting with "0.".
 
  
10-07-2006, MrSugarCube
+
  The first call:
- Fixed #760: Exception caused by opening paperdoll when not all default skills
+
  In:  ARGN = 1
  are defined.
+
  Out: Return 1 - only your stuff will be added (IF ANY), prohibits the second call
 +
        Return 0/2 - your and hardcoded stuff will be added
 +
        ARGN (ARGN != 1) - allows the second call
  
11-07-2006 Nazghul
+
  The second call:
- Fixed #594: Players (only if their client allows) and NPCs were able to go through
+
  In: ARGN = 2
  non-static walls.
+
  Out: Return 0/1/2 - does nothing
- Added: CAN-Flag mt_passwalls (08); NPC with this flag CAN pass through static
+
        ARGN - does nothing
  and dynamic walls.
 
  
12-07-2006, Furio
+
- Added: Trigger @ContextMenuSelect/@itemContextMenuSelect which is fired after
- Fixed #690: serv.REGIONTYPE.*.resources is not working.
+
  a client selects something from a Popup-menu. ARGN is a value, which was sent
- Added: <serv.regiontype.*.calcmemberindex [uid]> returning the index of the
+
   by the server to the client as the first argument with the AddContextEntry function.
   resource selected randomly or basing on the skill of the uid passed as argument.
 
  
12-07-2006 Nazghul
+
06-08-2006, MrSugarCube
- Fixed: When logging in with an unencrypted client, you were not able to see
+
- Modified: SERV.ACCOUNT.x now returns 1 if the account name or index exists, or 0 if not.
   tooltips for objects in line of sight (0 to 18 tiles away from you),
+
- Added: P.STATICS.x.COLOR and P.STATICS.x.Z can be used to find the colour and height
   including yourself.
+
   of static items.
 
+
- Modified: Setting BONUS_STATS to 0 in SKILL definitions disables using BONUS_x properties
12-07-2006, Nazghul (Script Pack)
+
   when calculating stat gains for that skill instead of blocking all stat gains for it. If
- Updated: sphere_defs.scp (updated section can_flags)
+
  you want to prevent stat gains, you should either set STAT_x to 0, or set BONUS_x to 0
- Fixed #761: missing positioning of newly created vendor in i_deed_vendor
+
   with BONUS_STATS greater than 0.
   (sphere_item_provisions_deed.scp)
 
  
13-07-2006, Nazghul
+
07-08-2006, MrSugarCube (Script pack)
- Added: CURFOLLOWER, MAXFOLLOWER with no built-in functionality. These variables
+
- Updated: sphere_msgs.scp (Fixed some 'broken' defmessages with tabs in)
  change values on a status gump.
 
- Fixed #764: Cannot see items in large multis (OF_OsiMultiSight).
 
- Sync (Vjaka): ISWEAPON and ISARMOR read-only properties for items.
 
  
14-07-2006, Nazghul
+
10-08-2006, ShiryuX (Script Pack)
- Added: ISWEAPON and ISARMOR are now avaliable through serv.itemdef.x.* too.
+
- Fixed: #827 Kirin entered twice in sphere_defs.scp
  
16-07-2006, Nazghul
+
14-08-2006, Nazghul
- Added: OF_Command_Sysmsgs into sphere.ini. With this flag on, you will see
+
- Added: dmgcold, dmgenergy, dmgfire, dmgpoison properties for weapons with no built-in
   sysmessages with current status after typing .allmove, .allshow, .debug,
+
   functionality (yet).
   .detail, .gm, .hearall, .privshow, .invis, .invul
+
- Fixed: Returned maxweight property different from maxweight property displayed
 +
   in status gump.
 +
- Fixed #592: Wrong spellbook packets send by Linux versions
 +
- Updated: sphere.ini - added new experimental flag EF_NewPositionChecks.
  
20-07-2006, Nazghul (Script Pack)
+
16-08-2006, Nazghul
- Fixed #776: sphere_map2.scp (Wrong Ilshenar Region description (Wisp Dungeon),
+
- Added: Experimental flag EF_NewPositionChecks, with this flag on,
   thx Coruja747.
+
  the new position-related checks behavior will be used. So far it does something only
 +
  with resource gathering related skills (lumberjacking, mining, fishing, eating grass etc.)
 +
  and Advanced LOS.
 +
  The flag is HIGHLY EXPERIMENTAL!
 +
- Modified: FORPLAYERS now loops through logouted players. If you want to loop only through
 +
   online players, use FORCLIENTS.
  
21-07-2006, Furio
+
17-08-2006, MrSugarCube
- Fixed #780: Unable to read REPLICATE property.
+
- Fixed: Retrieving StatLock properties with STATLOCK[statname] and SKILLLOCK[skillname]
- Changed: TAG.OVERRIDE.STATCAP[$statid]/SKILLCAP[$skillid]/REGEN[$statid]/REGENVAL[$statid]
+
- Fixed #835: Setting StatLocks on the status window sets the incorrect StatLock[x] property.
  to TAG.OVERRIDE.STATCAP_$statid/SKILLCAP_$skillid/REGEN_$statid/REGENVAL_$statid.
+
- Modified: Undefined region warnings are no longer reported for locations outside of the
- Added: -E to command line. Starting Sphere with it will enable the ExceptionDumper
+
   map boundaries.
   that will generate a .map file on unexpected exceptions. Sending that file through
 
  the bugtracker will help us in the debug process. (thx to Z.)
 
- Fixed #774: Ghost's speech when in peace mode.
 
  
21-07-2006, MrSugarCube
+
20-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Fixed: Incorrect name shown when a player declines a party invite.
+
- Fixed #304: NPCs are dumber in pathfinding with EF_DiagonalWalkCheck on
- Modified: Placing a house over a staff member (Counselor+) no longer blocks
+
  (fixed only with EF_NewPositionCheck and EF_WalkCheck on).
  the placement if the character cannot see them.
+
- Fixed #747, #767: Z not updated when you enter a multi, .fix not working inside a multi.
 +
- Fixed #837, #829: NPCs not spawning (or on the wrong place) inside a building.
 +
- Fixed #598: Ladders not updating Z and a player cannot step on some of them.
 +
- Modified GOTO function: NPC will now not stop moving after the first step.
  
22-07-2006, MrSugarCube
+
26-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Added: SPEEDMODE property for players. Allows setting the speed mode that a
+
- Fixed #744: Line Of Sight check going from out of a house into the house was successful,
  client can use (and affects the movement throttle accordingly). There are
+
   but not vice versa.
   4 different speed modes that affect the client:
+
- Fixed: Item flags and height was always inherited from the parent item
    0  - Normal speed.
+
  (the item with DUPELIST=), what damaged almost all Line Of Sight checks.
    1  - Double speed on foot, normal speed when mounted.
 
    2  - Always walk on foot and when mounted.
 
    3+ - Always run on foot, always walk when mounted.
 
  
22-07-2006, coruja747 (Script pack)
+
28-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Updated: sphere_map2.scp (Sorcerer Dungeon region definitions incorrect).
+
- Modified: Now, archery, potion throwing, dragon breathing, stone throwing, magery can be
 +
  used through a window.
 +
- Modified: Now, fishing use LOS and prohibits casting through blocking objects.
  
23-07-2006, Shadow Dragon
+
28-08-2006, Nazghul
- Added: LOCAL.Arrow storing an UID of used arrow while archery in @Hit.
+
- Updated sphere_defs.scp: Added DEFNAME los_flags.
- Added: Extra combat flag COMBAT_PREHIT to allow pre hit combat style
+
- Updated sphere_msgs.scp: Added message fishing_los.
  (first hit is instant)
+
- Removed: Multithreading support for Linux version due to its unusability on this OS.
  
26-07-2006, coruja747 (Script Pack)
+
30-08-2006, Nazghul
- Updated: sphere_map2.scp (#793, Lake Shire region has not to be guarded)
+
- MODIFIED: RESCOLD, RESENERGY, RESFIRE, RESPOISON now can also be set on NPC
- Added: GAINRADIUS keyword for skill definitions. Skillgain will only be calculated if
+
  Remember that RES*=100 will give you a 100 percent immunity against the damage inflicted
   the current skill is less than the actual difficulty + GAINRADIUS to prohibit skillgain
+
  by TAG.*DAMAGE.
   by performing way too easy tasks. If not set it defaults to 100.0 (so pertaining the
+
- Added: COMBAT_SPECIALDAMAGE to INI CombatFlags (08). If set, TAG.*DAMAGE (below) will be
   old behaviour)
+
  used.
 +
- Added: COMBAT_USE_RESISTANCE to INI CombatFlags (010). If set, RES* on characters will
 +
  also be weighted against normal damage if the old fashioned damage flags are set.
 +
- Added: TAG.COLDDAMAGE, TAG.ENERGYDAMAGE, TAG.FIREDAMAGE, TAG.POISONDAMAGE for characters
 +
  and items. The server will only evaluate the tags on characters, and if ComBatFlag
 +
   COMBAT_SPECIALDAMAGE is set. Then any damage done to others (if it's damage type contains
 +
  at least one of the physical types OR magic) will be increased by the value of the
 +
   appropriate tag, lowered by the RES* percentage of the victim.
 +
  Tags on items will not be evaluated by the server - their values can be used to for
 +
  example increase the TAGs or the RES* properties on characters on equip of the item.
 +
  This way you can use TAG.*DAMAGE on a weapon to increase the wearer's appropriate
 +
   damage tag, or on a piece of armor to increase his RES*, or to whatever you want.
  
27-07-2006, coruja747 (Script Pack)
+
31-08-2006, Nazghul
- Fixed: #796, sphere_map_points2.scp (Wisp Dungeon, Kirin Passage, Cyclops Dungeon)
+
- Added: NPC trigger @PetDesert. Fires when a pet decides to go wild.
 +
  Default object is the pet, SRC the master. RETURN 1 changes the pet's mind.
  
28-07-2006, coruja747 (Script Pack)
+
31-08-2006, MrSugarCube
- Fixed: #800, missing teleports in sphere_map_points0.scp and sphere_map_points1.scp
+
- Fixed: P.REGION reference not working correctly in areas defined via ROOMDEFs.
 +
- Added: P.ROOM can be used to access the ROOM properties of a point, just like
 +
  you can with P.REGION.
 +
- Modified: P.REGION and P.ROOM now return 0 if a region or room doesn't exist at
 +
  the point, and 1 if one does.
 +
- Added: Support for the new BandageSelf and BandageTarget macros found in the
 +
  latest clients (5.0.4). Using the macro will act as if the client has just
 +
  targeted something with the bandage (and so @[item]TargOn_Item will be called).
  
29-07-2006, Nazghul
+
01-09-2006, MrSugarCube
- Modified: @Dclick is now called for items which were dclicked by an NPC.
+
- Fixed #849: Enabling precasting does not freeze characters when casting.
   (e.g. when an NPC is going to open a door, @DClick is called for this door)
+
- Fixed #849: With precasting enabled, skill is gained before the spell is
- Fixed #798: If a wall was built on a spot where a paralyzed player stays,
+
   completely cast at a target.
   he was not unparalyzed.
+
- Fixed #849: Harmful area effect spells don't affect the caster when
 +
  MAGICF_CANHARMSELF is enabled.
 +
- Fixed #849: TELE and POLY functions not working correctly with precasting
 +
   enabled.
 +
- Fixed #849: Casting from spellbook not working correctly with both
 +
  FEATURE_AOS_UPDATE_B and MAGICF_PRECAST settings enabled.
 +
- Fixed: Exception caused by spell effects on items with no SRC present.
  
29-07-2006, MrSugarCube
+
02-09-2006, Nazghul
- Fixed: Vendors speak two messages when a player does not have any items to sell to them.
+
- Added: TAG.OVERRIDE.MOVERATE for NPC to speed up or slow down single NPC
  
30-07-2006, Shadow Dragon
+
05-09-2006, Nazghul
- Added: New trigger @Criminal called after someone becomes criminal for someone.
+
- Added: Option flag OF_Buffs. When on, Sphere will automatically add and remove buff and
   [] - criminal, SRC - someone. RETURN 1 - stops hardcoded effect (memory_harmedby and so),
+
   debuff icons to the affected players.
   so you can make your own criminal system.
+
- Updated: sphere.ini - added new optional flag OF_Buffs
 +
- Added: Functions ADDBUFF, REMOVEBUFF for adding and removing buff/debuff icons.
 +
  syntax: ADDBUFF IconId ClilocOne ClilocTwo Seconds Text1 Text2(optional) Text3(optional)
 +
          The text fields are supposed to hold max. 3 characters each (numbers) and will
 +
          be cut off if larger.
 +
    REMOVEBUFF IconId
 +
   These functions only work with client 5.0.3 or above.
  
31-07-2006, Kirofus (Script pack)
+
06-09-2006, Nazghul (script pack)
- Updated: sphere_types.scp (Fixed incorrect terrain definition for t_water)
+
- Updated: sphere_defs.scp (added defnames for buff icons and clilocs)
 +
- Fixed: bug with i_multi_tower_wizard - the door was placed BELOW the floor,
 +
  so unuseable with new LOS checks
  
31-07-2006, MrSugarCube
+
07-09-2006, Nazghul
- Modified: MaxWeight is now sent to the client for display on the status window in
+
- Updated: sphere.ini - added new debug flags DEBUGF_SCRIPTS, DEBUGF_LOS.
  newer clients.
 
  
31-07-2006, Nazghul
+
10-09-2006, ShiryuX (Script Pack)
- Added: CONTP function, which allows you to change the position of an item,
+
- Updated: sphere_defs.scp - added a defname for rideable Polar Bear
  which is inside a container.
 
  
01-08-2007, Nazghul
+
11-09-2006, Nazghul
- Added: INI flag EF_New_Walkcheck = 04000 to switch on and off new walkcheck routines
+
- Fixed #852: Trigger @SKILLSUCCESS did not fire with fighting skills
  what should prohibit NPC from passing thru walls if not explicitely stated
 
  (CAN-Flag mt_passwalls (08))
 
  
02-08-2006, Furio
+
12-09-2006, MrSugarCube
- Added: STRREGEX(pattern,string) that execute a pattern matching supporting the
+
- Added: FORINSTANCES to loop through all instances of a given BaseID. Usage
   known standard. Return: 1 match found, 0 match not found, -1 illegal pattern syntax.
+
  is "FORINSTANCES id". If an ID is not supplied then the BaseID of the default
 +
   object will be used. Works for both items and characters.
  
04-08-2006, Nazghul
+
12-09-2006, Nazghul
(most code revised, debugged and (re)designed by Ellessar when I was up to drop
+
- Added: A new item property IsCont, which returns 1 if an item is a container and 0 if
this all in desperation)
+
  it is not.
- Added: Function AddContextEntry. what takes 2 to 4 arguments separated by a comma.
+
- Updated: sphere.ini - added a new debug flag DEBUGF_WALK.
  SRC.AddContextEntry EntryTag,TextID,Flags,Color
 
  EntryTag - the number to return as ARGN by @(item)ContextMenuSelect. Make it unique.
 
            - EntryTags from 0 to 100 are reserved by Sphere for internal use, so do not
 
              use it.
 
  TextID - CLILOCed name of the button. The number from cliloc.[your_localization]
 
            WITHOUT the leading "300" or such! Just type "5194" or "11010"
 
  Flags - 01 - locked (will be grayed out)
 
        - 02 - consecutive entries with this flag set will be summarized under
 
                a golden arrow
 
        - 020 - can be colored
 
  Color (applied only if Flags & 020) - hue
 
  
- Added: Trigger @ContextMenuRequest/@itemContextMenuRequest which is fired after
+
15-09-2006, Nazghul
   receiving a display Popup-menu client request (single click on an object).
+
- Added: INI Flag OF_NoPrefix (0x4000) to get rid of the "A" and "An" prefixes what ere
 +
  only an annoyance for not english language shards
 +
- Changed: Key links will only be blanked if they are pointing to an invalid item UID now.
 +
  Before everything what was neither container nor multi was considered "invalid", so keys
 +
  with the UID of a door, or themselves could turn blank.
 +
- Added #848: Character trigger @SpellSelect. Doing pretty much the same as the spell trigger
 +
  @select and has the same arguments/parameters
 +
- Fixed #778: Wrong spellbook recognition with more than one spellbook std., necro, ...)
 +
   in pack.
 +
- Updated: sphere.ini - Removed experimental flag EF_New_Walkcheck.
  
   It can be fired two times, each call has a different ARGN.
+
16-09-2006, Nazghul
 +
- Added: OF_DyeType flag to sphere.ini. If set players are allowed to use i_dye on every
 +
  t_dye_vat instead of only i_dye_tub. Making it switcheable for all those who have concerns
 +
   about exploitability (even as I do not see any risk) - we all remember the times when
 +
  injection users colored whole shards pink.
  
  The first time it is fired before any hardcoded stuff is added to the Popup-menu.
+
17-09-2006, MrSugarCube
  Here, Return 1 denies displaying any hardcoded entries, but if you make a softcoded
+
- Fixed: Using Bandage macro with a target prompt already present calling @TargOn_Cancel
   entry, it WILL be displayed. It also will prohibit the second call of the trigger.
+
   on the bandages.
  Both, Return 0 and Return 2 allows hardcoded stuff to be added. If you change ARGN,
+
- Fixed #863: Changing RESFIRE/RESENERGY/RESPOISON/RESCOLD properties does not update the
  the trigger will be called once more (but ARGN != 1).
+
  client.
 +
- Fixed: Unable to gain magery skill with precasting enabled.
 +
- Fixed: Various object references not accessible from the guildstone object.
 +
- Fixed #865: GUILD.MEMBER.x.ISMEMBER property not working correctly.
  
  The second time it is fired after all hardcoded stuff was added (so you can add
+
20-09-2006, Nazghul
  your stuff to the bottom of the Popup-menu). Return value has no effect at all.
+
- Fixed #853: Update & DClick stopped display of weather effects
  
  The first call:
+
21-09-2006, Nazghul
  In:  ARGN = 1
+
- added TAG.OVERRIDE.AMMOTYPE and TAG.OVERRIDE.AMMOANIM for bows and xbows to - yes, OVERRIDE the
  Out: Return 1 - only your stuff will be added (IF ANY), prohibits the second call
+
  TDATA3 and TDATA4 values on a per-item-base
        Return 0/2 - your and hardcoded stuff will be added
 
        ARGN (ARGN != 1) - allows the second call
 
  
  The second call:
+
21-09-2006, MrSugarCube
  In:  ARGN = 2
+
- Fixed #875: Exception caused by setting MASTERUID when no current guild/town master
  Out: Return 0/1/2 - does nothing
+
  exists.
        ARGN - does nothing
+
- Modified: Setting MASTERUID to the same uid as the current guild/town master no longer
 +
  causes an error.
 +
- Fixed: Calling the TRAIN function on an NPC in combat would cause an error.
 +
- Modified #869: The TRAIN function now works on all NPC brains between 2 and 9.
  
- Added: Trigger @ContextMenuSelect/@itemContextMenuSelect which is fired after
+
21-09-2006, Nazghul
  a client selects something from a Popup-menu. ARGN is a value, which was sent
+
- changed GAINRADIUS so that it no longer defaults to anything - if not set on a skill
   by the server to the client as the first argument with the AddContextEntry function.
+
   it's just transparent (as if never invented)
  
06-08-2006, MrSugarCube
+
22-09-2006, Nazghul
- Modified: SERV.ACCOUNT.x now returns 1 if the account name or index exists, or 0 if not.
+
- Fixed #846: Bad character DispID displayed if there was serv.chardef called no NPC
- Added: P.STATICS.x.COLOR and P.STATICS.x.Z can be used to find the colour and height
+
   in the world with this ID.
   of static items.
 
- Modified: Setting BONUS_STATS to 0 in SKILL definitions disables using BONUS_x properties
 
  when calculating stat gains for that skill instead of blocking all stat gains for it. If
 
  you want to prevent stat gains, you should either set STAT_x to 0, or set BONUS_x to 0
 
  with BONUS_STATS greater than 0.
 
  
07-08-2006, MrSugarCube (Script pack)
+
24-09-2006, Nazghul
- Updated: sphere_msgs.scp (Fixed some 'broken' defmessages with tabs in)
+
- Added: Function CONTCONSUME <arg1> <arg2>, which consumes <arg2> amount of an item with id <arg1>
 
+
  from a referenced container and its subcontainers. Function does nothing on chars (use consume)
10-08-2006, ShiryuX (Script Pack)
+
  and on non-container items.
- Fixed: #827 Kirin entered twice in sphere_defs.scp
+
  Example: findlayer.29.contconsume i_gold 100000
 +
- Added: Item trigger @Buy and character trigger @itemBuy, which are called before item is sold
 +
  by a vendor. The trigger is called only with EF_New_Triggers on.
 +
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
 +
  Return 1 prevents the player from buying the item.
 +
- Added: Item trigger @Sell and character trigger @itemSell, which are called before item is bought
 +
  by a vendor. The trigger is called only with EF_New_Triggers on.
 +
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
 +
  Return 1 prevents the player from selling the item.
 +
- Fixed: Serv.itemdef.xxx.skill not always returning the skill
 +
- Fixed: A copy & paste error in TAG.OVERRIDE.AMMO* what prevented the animation stuff to run.
  
14-08-2006, Nazghul
+
25-09-2006, Nazghul
- Added: dmgcold, dmgenergy, dmgfire, dmgpoison properties for weapons with no built-in
+
- Added: EF_DamageTool (0x2000) to Sphere.ini. Only if set tools/weapons will be damaged while
   functionality (yet).
+
   lumberjacking/mining (what includes firing @Damage on them)
- Fixed: Returned maxweight property different from maxweight property displayed
+
- Fixed: NPCs spawning with incorrect Z position.
  in status gump.
 
- Fixed #592: Wrong spellbook packets send by Linux versions
 
- Updated: sphere.ini - added new experimental flag EF_NewPositionChecks.
 
  
16-08-2006, Nazghul
+
26-09-2006, Nazghul
- Added: Experimental flag EF_NewPositionChecks, with this flag on,
+
- Modified: @(item)ContextMenuRequest and @(item)ContextMenuSelect now will not be called with
  the new position-related checks behavior will be used. So far it does something only
+
   EF_Minimize_Triggers on.
  with resource gathering related skills (lumberjacking, mining, fishing, eating grass etc.)
 
  and Advanced LOS.
 
  The flag is HIGHLY EXPERIMENTAL!
 
- Modified: FORPLAYERS now loops through logouted players. If you want to loop only through
 
   online players, use FORCLIENTS.
 
  
17-08-2006, MrSugarCube
+
27-09-2006, Nazghul
- Fixed: Retrieving StatLock properties with STATLOCK[statname] and SKILLLOCK[skillname]
+
- Added: TDATA3 and TDATA4 of a container type item are now holding min and max coordinates of
- Fixed #835: Setting StatLocks on the status window sets the incorrect StatLock[x] property.
+
  the "area were items may be placed", relatively to the open container gump.
- Modified: Undefined region warnings are no longer reported for locations outside of the
+
  TDATA3 is (MinX * 0x10000) + MinY, TDATA4 is (MaxX * 0x10000) + MaxY
   map boundaries.
+
  Be very careful with these settings - if they are set to illegal values (i.e., outside of the
 +
   visible gump) Sphere will happily accept them, but your users will not be able to pick items
 +
  placed there out of the container, because the client will only display then if they have the
 +
  container gump as a background!
 +
  If TDATA4 is not set (or set to 0), default values will apply, along with the console warning
 +
  "unknown gump id".
  
20-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
+
28-09-2006, Nazghul
- Fixed #304: NPCs are dumber in pathfinding with EF_DiagonalWalkCheck on
+
- Added: MOREM value (0..127) on digestible food will override the amount of "food units"
   (fixed only with EF_NewPositionCheck and EF_WalkCheck on).
+
  what will be added to the characters FOOD property when eating this. Obviously, items
- Fixed #747, #767: Z not updated when you enter a multi, .fix not working inside a multi.
+
   with different MOREM will not stack. Because on=@SUCCESS on cooking will not give you
- Fixed #837, #829: NPCs not spawning (or on the wrong place) inside a building.
+
  a reference to the newly created item but only to the raw one, MOREM will be transferred
- Fixed #598: Ladders not updating Z and a player cannot step on some of them.
+
  from the raw food (what you may alter in on=@success)
- Modified GOTO function: NPC will now not stop moving after the first step.
 
  
26-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
+
29-09-2006, Nazghul
- Fixed #744: Line Of Sight check going from out of a house into the house was successful,
+
- Added: 3 defmessages, thus making the headline for the "c" console command configurable.
  but not vice versa.
 
- Fixed: Item flags and height was always inherited from the parent item
 
  (the item with DUPELIST=), what damaged almost all Line Of Sight checks.
 
  
28-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
+
01-10-2006, Nazghul
- Modified: Now, archery, potion throwing, dragon breathing, stone throwing, magery can be
+
- Added: Intrinsic function IsObscene what tests whether the passed argument is a forbidden
  used through a window.
+
  word (list of these words are in your spheretables.scp under the section OBSCENE).
- Modified: Now, fishing use LOS and prohibits casting through blocking objects.
+
- Fixed: Obscene not matching obscened words inside a string.
 +
- Fixed #889: Fame.* and Karma.* always returning 0.
 +
- Updated: spheretables.scp - added KARMA and FAME sections. Now you can change, add or remove
 +
  keys which are used behind Karma. and Fame. . First line declares steps, other lines their
 +
  names.
 +
  IT IS HIGHLY RECOMMENDED TO UPDATE YOUR SPHERETABLES.SCP!!!
  
28-08-2006, Nazghul
+
02-10-2006, Nazghul (Script Pack)
- Updated sphere_defs.scp: Added DEFNAME los_flags.
+
- Fixed #867: sphere_minor_artifacts.scp, i_orcish_visage
- Updated sphere_msgs.scp: Added message fishing_los.
+
- Updated: Flags notification on server startup
- Removed: Multithreading support for Linux version due to its unusability on this OS.
 
  
30-08-2006, Nazghul
+
02-10-2006, Nazghul
- MODIFIED: RESCOLD, RESENERGY, RESFIRE, RESPOISON now can also be set on NPC
+
- Fixed #898: Some stairs unwalkable with EF_NewPositionChecks, EF_WalkCheck and
  Remember that RES*=100 will give you a 100 percent immunity against the damage inflicted
+
   EF_DiagonalWalkCheck on.
  by TAG.*DAMAGE.
 
- Added: COMBAT_SPECIALDAMAGE to INI CombatFlags (08). If set, TAG.*DAMAGE (below) will be
 
  used.
 
- Added: COMBAT_USE_RESISTANCE to INI CombatFlags (010). If set, RES* on characters will
 
  also be weighted against normal damage if the old fashioned damage flags are set.
 
- Added: TAG.COLDDAMAGE, TAG.ENERGYDAMAGE, TAG.FIREDAMAGE, TAG.POISONDAMAGE for characters
 
  and items. The server will only evaluate the tags on characters, and if ComBatFlag
 
   COMBAT_SPECIALDAMAGE is set. Then any damage done to others (if it's damage type contains
 
  at least one of the physical types OR magic) will be increased by the value of the
 
  appropriate tag, lowered by the RES* percentage of the victim.
 
  Tags on items will not be evaluated by the server - their values can be used to for
 
  example increase the TAGs or the RES* properties on characters on equip of the item.
 
  This way you can use TAG.*DAMAGE on a weapon to increase the wearer's appropriate
 
  damage tag, or on a piece of armor to increase his RES*, or to whatever you want.
 
  
31-08-2006, Nazghul
+
05-10-2006, Nazghul
- Added: NPC trigger @PetDesert. Fires when a pet decides to go wild.
+
- Added: INI flag OF_OSIDamageMod (0x04)
   Default object is the pet, SRC the master. RETURN 1 changes the pet's mind.
+
  Modifying weapon damage OSI style, according to this formulas (originally provided by ClouD_Br):
 +
  Tactics Damage Bonus% = Tactics � 1.6 (Add 6.25% if Tactics >= 100)
 +
  Anatomy Damage Bonus% = (Anatomy � 2) + 5
 +
  Lumberjack Damage Bonus% = Lumberjack � 2 (Add 10% if Lumberjacking >= 100)
 +
  Strength Damage Bonus% = Strength * 0.3 (Add 5% if Strength >= 100)
 +
   Final Damage Bonus% = Tactics Bonus + Anatomy Bonus + Lumber Bonus + Strangth Bonus + Damage Increase Items*
 +
  Final Damage = Base Damage + (Base Damage * Final Damage Bonus%)
 +
  * Damage Increase is capped at 100%.
  
31-08-2006, MrSugarCube
+
05-10-2006, Nazghul
- Fixed: P.REGION reference not working correctly in areas defined via ROOMDEFs.
+
- Fixed #036: Fixed TRY and TRYSRV not working with locals (local and arg*). TRYSRC and TRYP
- Added: P.ROOM can be used to access the ROOM properties of a point, just like
+
   do not work, since it makes no sense to use it on local variables. (Thx to Ellessar who
  you can with P.REGION.
+
  finally worked out how this SHOULD work, so we found the bug deeply buried under tons of
- Modified: P.REGION and P.ROOM now return 0 if a region or room doesn't exist at
+
   old code)
   the point, and 1 if one does.
 
- Added: Support for the new BandageSelf and BandageTarget macros found in the
 
   latest clients (5.0.4). Using the macro will act as if the client has just
 
  targeted something with the bandage (and so @[item]TargOn_Item will be called).
 
  
01-09-2006, MrSugarCube
+
06-10-2006, Nazghul
- Fixed #849: Enabling precasting does not freeze characters when casting.
+
- Added: Function ISNEARTYPETOP(.P) which uses new checks for resource gathering (item which
- Fixed #849: With precasting enabled, skill is gained before the spell is
+
  you want to find must be at the top, if at the top there are 2 items, then the success
   completely cast at a target.
+
  depends on the priority (dynamic->multi->static->terrain) of those items). Syntax is the
- Fixed #849: Harmful area effect spells don't affect the caster when
+
  same with ISNEARTYPE(.P). NOTE: This function is called from hardcode if EF_NewPositionChecks
  MAGICF_CANHARMSELF is enabled.
+
   are on.
- Fixed #849: TELE and POLY functions not working correctly with precasting
+
- Fixed #668: Delete packets of items which cannot be seen were sent to the client.
  enabled.
+
- Modified #632: Now, IsPlayer can be used on every game object.
- Fixed #849: Casting from spellbook not working correctly with both
+
- Modified: sphere.ini - added an NPC AI flag NPC_AI_INTFOOD which enables smarter and more
   FEATURE_AOS_UPDATE_B and MAGICF_PRECAST settings enabled.
+
   trustworthy food finding.
- Fixed: Exception caused by spell effects on items with no SRC present.
 
  
02-09-2006, Nazghul
+
08-10-2006, Furio
- Added: TAG.OVERRIDE.MOVERATE for NPC to speed up or slow down single NPC
+
- Modified: TRIGGER command. It now supports calling a trigger with arguments, the syntax is:
 +
  TRIGGER $trigger_name[,$trigger_arg_type,...] where $trigger_arg_type can be:
 +
  - TAT_AS_ARGN (1): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGN>,1,2,3
 +
                    will call @MyTest with ARGN1=1 ARGN2=2 ARGN3=3.
 +
  - TAT_AS_ARGS (2): uses arguments as ARGS. Example: TRIGGER @MyTest,<def.TAT_AS_ARGS>,hi you 2,yo !
 +
                    will call @MyTest with ARGS=hi you 2,yo !.
 +
  - TAT_AS_ARGO (3): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGO>,01
 +
                    will call @MyTest with ARGO.UID=01 (only if object with such uid exist).
 +
- Updated: sphere_defs.scp (with new definitions for the TRIGGER command).
 +
- Fixed #880: Explode function not working as it should.
  
05-09-2006, Nazghul
+
09-10-2006, Nazghul
- Added: Option flag OF_Buffs. When on, Sphere will automatically add and remove buff and
+
- fixed problems with spellbooks obviously triggered by new Gcc compiler for Linux with a weird
  debuff icons to the affected players.
+
   workaround.
- Updated: sphere.ini - added new optional flag OF_Buffs
 
- Added: Functions ADDBUFF, REMOVEBUFF for adding and removing buff/debuff icons.
 
   syntax: ADDBUFF IconId ClilocOne ClilocTwo Seconds Text1 Text2(optional) Text3(optional)
 
          The text fields are supposed to hold max. 3 characters each (numbers) and will
 
          be cut off if larger.
 
    REMOVEBUFF IconId
 
  These functions only work with client 5.0.3 or above.
 
  
06-09-2006, Nazghul (script pack)
+
10-10-2006, Nazghul
- Updated: sphere_defs.scp (added defnames for buff icons and clilocs)
+
- Fixed #900: Added INI flag COMBAT_DCLICKSELF_UNMOUNT to unmount horse when dclicking self
- Fixed: bug with i_multi_tower_wizard - the door was placed BELOW the floor,
+
   while in warmode.
   so unuseable with new LOS checks
 
  
07-09-2006, Nazghul
+
11-10-2006, Nazghul (Script Pack)
- Updated: sphere.ini - added new debug flags DEBUGF_SCRIPTS, DEBUGF_LOS.
+
- Updated: sphere_msgs.scp - more defmessages to customize text output.
 +
- Updated (#905): sphere_item_provisions_potions.scp - Shrink potion did not behave as expected.
  
10-09-2006, ShiryuX (Script Pack)
+
13-10-2006, Nazghul
- Updated: sphere_defs.scp - added a defname for rideable Polar Bear
+
- Added: Intrinsic functions SIN() and COS(). Attention: Without FLOAT math they will obviously
 +
  only return 0 and 1 :)
  
11-09-2006, Nazghul
+
16-10-2006, Nazghul
- Fixed #852: Trigger @SKILLSUCCESS did not fire with fighting skills
+
- Added: Support for floats (local variables FLOAT.younameit, which have size of double, and
 +
  can hold precise numbers). Usage of these variables is the same like LOCAL.younameit. As
 +
  EVAL only uses integer arithmetic, with FLOAT math you have to use <FLOATVAL ()>
 +
  (New code was done mainly by Ellessar and Decrythe, I just "glued" it into Sphere :) )
 +
- Changed: Return values for @SPELLSELECT trigger. Touchup for @SELECT with spells. Different
 +
  server behaviour can be achieved with the following RETURN values in trigger scripts:
 +
  @SELECT
 +
  RETURN 0 - proceed without mana, spellbook, and reagent check as if these checks were
 +
  successful
 +
RETURN 1 - Abort processing (so aborting the spell)
 +
  RETURN 2 - proceed as normal
 +
  RETURN 6 - like RETURN 0 (for compatibility with @SPELLSELECT)
 +
  @SPELLSELECT
 +
  RETURN 0 - proceed as normal
 +
RETURN 1 - abort processing (so aborting the spell)
 +
  RETURN 2 - proceed as normal
 +
  RETURN 6 - proceed without mana, spellbook, and reagent check as if these checks were
 +
  successful
 +
  @SPELLSELECT will be called after @SELECT - what means, if you leave @SELECT with RETURN 0 or
 +
  RETURN 1, @SPELLSELECT will NOT be called!
  
12-09-2006, MrSugarCube
+
16-10-2006, Furio
- Added: FORINSTANCES to loop through all instances of a given BaseID. Usage
+
- Added: DAM.HI/LO and ARMOR.HI/LO
  is "FORINSTANCES id". If an ID is not supplied then the BaseID of the default
 
  object will be used. Works for both items and characters.
 
  
12-09-2006, Nazghul
+
17-10-2006, Nazghul
- Added: A new item property IsCont, which returns 1 if an item is a container and 0 if
+
- Added: Defmessage if skillgain is aborted due to GAINRADIUS not met; message will only be displayed
   it is not.
+
   if TAG.NOSKILLMSG=1 on character
- Updated: sphere.ini - added a new debug flag DEBUGF_WALK.
+
- Fixed: Problems with long passwords and MD5 hash on.
  
15-09-2006, Nazghul
+
18-10-2006, Nazghul
- Added: INI Flag OF_NoPrefix (0x4000) to get rid of the "A" and "An" prefixes what ere
+
- Added INI flag OF_DrinkIsFood (0x10000). If set, T_DRINK will increase FOOD lvl. like T_FOOD
  only an annoyance for not english language shards
 
- Changed: Key links will only be blanked if they are pointing to an invalid item UID now.
 
  Before everything what was neither container nor multi was considered "invalid", so keys
 
  with the UID of a door, or themselves could turn blank.
 
- Added #848: Character trigger @SpellSelect. Doing pretty much the same as the spell trigger
 
  @select and has the same arguments/parameters
 
- Fixed #778: Wrong spellbook recognition with more than one spellbook std., necro, ...)
 
  in pack.
 
- Updated: sphere.ini - Removed experimental flag EF_New_Walkcheck.
 
  
16-09-2006, Nazghul
+
19-10-2006, Nazghul
- Added: OF_DyeType flag to sphere.ini. If set players are allowed to use i_dye on every
+
- Added: Dynamic property "height" for characters.
  t_dye_vat instead of only i_dye_tub. Making it switcheable for all those who have concerns
 
  about exploitability (even as I do not see any risk) - we all remember the times when
 
  injection users colored whole shards pink.
 
  
17-09-2006, MrSugarCube
+
20-10-2006, Nazghul
- Fixed: Using Bandage macro with a target prompt already present calling @TargOn_Cancel
+
- Updated: sphere_defs.scp - added defname charheight.
  on the bandages.
 
- Fixed #863: Changing RESFIRE/RESENERGY/RESPOISON/RESCOLD properties does not update the
 
  client.
 
- Fixed: Unable to gain magery skill with precasting enabled.
 
- Fixed: Various object references not accessible from the guildstone object.
 
- Fixed #865: GUILD.MEMBER.x.ISMEMBER property not working correctly.
 
  
20-09-2006, Nazghul
+
21-10-2006, Nazghul
- Fixed #853: Update & DClick stopped display of weather effects
+
- Added: New "m" paramter for TARGET function. Now you can use TARGETM and TARGETFM for targeting
 +
  a place for your multi (you will see your multi in the "ghost mode"). TARGETM takes as an argument
 +
  ONLY ID of the multi, TARGETFM takes 2 arguments - function_to_call,ID_ot_the_multi.
  
21-09-2006, Nazghul
+
21-10-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on and AdvancedLOS on)
- added TAG.OVERRIDE.AMMOTYPE and TAG.OVERRIDE.AMMOANIM for bows and xbows to - yes, OVERRIDE the
+
- Modified: CanSeeLOS now uses height of a character for its checks. Height is read in this order
   TDATA3 and TDATA4 values on a per-item-base
+
  and first correct entry is used:
 +
  1. Dynamic height property of an object
 +
  2. Height property under CHARDEF/ITEMDEF (can be inherited)
 +
  3. Defname in format "height_dispid", while dispid is a hex number in Sphere format (0a3)
 +
   4. Defname in format "height_dispid", while dispid is a dec number
 +
  5. Universal height - "15"
 +
  If a character is mounted, its height is raised by 4. CanSeeLOS reduce height of an unmounted
 +
  character by 1 (pretending eyes height).
 +
  NOTE: This formula is used when you are doing .show height, or <height> in scripts.
  
21-09-2006, MrSugarCube
+
23-10-2006, Nazghul
- Fixed #875: Exception caused by setting MASTERUID when no current guild/town master
+
- Fixed: #789 ModAR on characters only worked with damage of type GENERAL.
  exists.
 
- Modified: Setting MASTERUID to the same uid as the current guild/town master no longer
 
  causes an error.
 
- Fixed: Calling the TRAIN function on an NPC in combat would cause an error.
 
- Modified #869: The TRAIN function now works on all NPC brains between 2 and 9.
 
  
21-09-2006, Nazghul
+
23-10-2006, MrSugarCube
- changed GAINRADIUS so that it no longer defaults to anything - if not set on a skill
+
- Fixed: Webpage requests always displaying the "Internal Server Error" page.
  it's just transparent (as if never invented)
 
  
22-09-2006, Nazghul
+
24-10-2006, Nazghul
- Fixed #846: Bad character DispID displayed if there was serv.chardef called no NPC
+
- Added: Trigger @(item)Buy now has local.totalcost, which holds the cost of the whole purchase
   in the world with this ID.
+
  and ARGN2, which holds price of this amount of items (price * amount).
 +
- Fixed: Trigger @(item)Buy returning bad amount in ARGN1.
 +
- Added: Local variables LOCAL.CREATEOBJECT1 and LOCAL.CREATEOBJECT2 to @SUCCESS trigger of spells.
 +
  These variables are _unset_ when the trigger is called. But they can be _set_ with field- and
 +
   summon spells to change what these spells will create.
 +
  - Summon spells (summon creature, bladeSpirit, Vortex, summon daemon, summon *elemental) take only
 +
    the first one. If set with LOCAL.CREATEOBJECT1 = <eval c_orc> the spell will summon an orc. This
 +
    way one can add more random daemons to the summon daemon spell, or change the spawned creature
 +
    due to magery or whatever.
 +
  - field spells (s_wall_of_stone, s_fire_field etc) take both variables, as usually the items for
 +
    the field in west-east direction are different from those in north-south direction. If necessary
 +
    they can of course be the same (s_fire_field looks impressive with i_fire_columns :) ), but BOTH
 +
    have to be set (otherwise the unset will be replaced by the spell's default item for this dir).
 +
    Example:
 +
    [SPELL s_fire_field]
 +
    ...
 +
    on=@SUCCESS
 +
      IF <magery> >= 99.9
 +
        LOCAL.CREATEOBJECT1 = <eval i_fire_column>
 +
        LOCAL.CREATEOBJECT2 = <eval i_fire_column>
 +
      ENDIF
  
24-09-2006, Nazghul
+
24-10-2006, Pilz-e (Script pack)
- Added: Function CONTCONSUME <arg1> <arg2>, which consumes <arg2> amount of an item with id <arg1>
+
- Updated: sphere_map0_ml.scp (Corrected P properties for ML locations)
  from a referenced container and its subcontainers. Function does nothing on chars (use consume)
 
  and on non-container items.
 
  Example: findlayer.29.contconsume i_gold 100000
 
- Added: Item trigger @Buy and character trigger @itemBuy, which are called before item is sold
 
  by a vendor. The trigger is called only with EF_New_Triggers on.
 
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
 
  Return 1 prevents the player from buying the item.
 
- Added: Item trigger @Sell and character trigger @itemSell, which are called before item is bought
 
  by a vendor. The trigger is called only with EF_New_Triggers on.
 
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
 
  Return 1 prevents the player from selling the item.
 
- Fixed: Serv.itemdef.xxx.skill not always returning the skill
 
- Fixed: A copy & paste error in TAG.OVERRIDE.AMMO* what prevented the animation stuff to run.
 
  
25-09-2006, Nazghul
+
25-10-2006, Nazghul (Changes only with EF_NewPositionCheck, EF_WalkCheck and MountHeight on)
- Added: EF_DamageTool (0x2000) to Sphere.ini. Only if set tools/weapons will be damaged while
+
- Modified. You will not be able to go into a building if there is not enough space for you.
  lumberjacking/mining (what includes firing @Damage on them)
+
- Modified: You will not be able to mount a rideable if there is not enough space for you + ride.
- Fixed: NPCs spawning with incorrect Z position.
+
- Modified: You will not be able to summon an NPC if there is not enough space for it.
 +
- Modified: You will not be able to teleport (gate, recall) yourself to a spot where is not enough
 +
  space for you.
  
26-09-2006, Nazghul
+
25-10-2006, Nazghul
- Modified: @(item)ContextMenuRequest and @(item)ContextMenuSelect now will not be called with
+
- Updated: sphere_msgs.scp - added a new defmessage msg_summon_ceiling and modified
   EF_Minimize_Triggers on.
+
   the msg_mounted_ceiling defmessage.
  
27-09-2006, Nazghul
+
25-10-2006, Nazghul
- Added: TDATA3 and TDATA4 of a container type item are now holding min and max coordinates of
+
- Changed: NPC_AI flags in sphere.ini. Started splitting them up to make it easier to track
   the "area were items may be placed", relatively to the open container gump.
+
   errors related to them. The respective INI section now reads:
   TDATA3 is (MinX * 0x10000) + MinY, TDATA4 is (MaxX * 0x10000) + MaxY
+
   // NPC AI settings
   Be very careful with these settings - if they are set to illegal values (i.e., outside of the
+
  // NPC_AI_PATH 0001 NPC pathfinding
   visible gump) Sphere will happily accept them, but your users will not be able to pick items
+
  // NPC_AI_FOOD 0002 NPC food search (objects + grass)
   placed there out of the container, because the client will only display then if they have the
+
  // NPC_AI_EXTRA 0004 NPC magics, etc
   container gump as a background!
+
   // NPC_AI_ALWAYSINT 0008 Always be as smart as possible with pathfinding
   If TDATA4 is not set (or set to 0), default values will apply, along with the console warning
+
  // NPC_AI_INTFOOD 0010 NPC food search (more intelligent and trusworthy)
   "unknown gump id".
+
   // NPC_AI_COMBAT 0040 Look for friends in combat
 +
   // NPC_AI_VEND_TIME 0080 vendors closing their shops at nighttime
 +
   // NPC_AI_LOOTING 0100 loot corpses an the way
 +
   // NPC_AI_MOVEOBSTACLES 0200 if moveable items block my way, try to move them
 +
   //NPCAI=0
  
28-09-2006, Nazghul
+
27-10-2006, Nazghul
- Added: MOREM value (0..127) on digestible food will override the amount of "food units"
+
- Fixed: Fishing not displaying an animation right after start.
  what will be added to the characters FOOD property when eating this. Obviously, items
+
- Fixed: Resource gathering with EF_NewPositionChecks on did not work on tiles with Z < 0.
  with different MOREM will not stack. Because on=@SUCCESS on cooking will not give you
+
- Added: Some more defmessages (also to sphere_msgs.scp), this time title-related
  a reference to the newly created item but only to the raw one, MOREM will be transferred
 
  from the raw food (what you may alter in on=@success)
 
  
29-09-2006, Nazghul
+
28-10-2006, Furio
- Added: 3 defmessages, thus making the headline for the "c" console command configurable.
+
- Fixed #809: Wrong cheater message.
 +
- Added #913: TAG.OVERRIDE.MAXITEMS/MAXWEIGHT on bank to override global settings.
 +
- Added: TAG.PARTY_AUTODECLINEINVITE. If set on char it makes the char autodecline every invite.
 +
- Modified: After an party invite you must wait a bit before inviting someone else.
  
01-10-2006, Nazghul
+
29-10-2006, Nazghul
- Added: Intrinsic function IsObscene what tests whether the passed argument is a forbidden
+
- Added: Spell flag "SPELLFLAG_NOUNPARALYZE", if the flag is turned on, victim won't be
   word (list of these words are in your spheretables.scp under the section OBSCENE).
+
   unparalyzed.
- Fixed: Obscene not matching obscened words inside a string.
+
- Added: Damage flag "DAM_NOUNPARALYZE", if the flag is turned on, victim won't be unparalyzed.
- Fixed #889: Fame.* and Karma.* always returning 0.
+
- Updated: sphere_spells.scp (added spellflag_nounparalyze to the paralyze field spell)
- Updated: spheretables.scp - added KARMA and FAME sections. Now you can change, add or remove
+
   and sphere_defs.scp
   keys which are used behind Karma. and Fame. . First line declares steps, other lines their
+
- Updated: sphereCrypt.ini
  names.
 
  IT IS HIGHLY RECOMMENDED TO UPDATE YOUR SPHERETABLES.SCP!!!
 
  
02-10-2006, Nazghul (Script Pack)
+
31-10-2006, Nazghul
- Fixed #867: sphere_minor_artifacts.scp, i_orcish_visage
+
- Added: FEVAL and FHVAL which allow you to convert your float variable to a standard decimal or
- Updated: Flags notification on server startup
+
  hexadecimal number. Numbers behind a decimal point are cut out.
 +
  The syntax is: <feval <float.yourvar>> or <fhval <floatl.yourvar>>.
 +
- Fixed: Addspell not working if used like <findid.i_spellbook.addspell 5>. Now, this syntax
 +
  should return 1 if the spell passed as an argument is in the spellbook.
  
02-10-2006, Nazghul
+
02-11-2006, Nazghul
- Fixed #898: Some stairs unwalkable with EF_NewPositionChecks, EF_WalkCheck and
+
- Fixed: CanSeeLOS working through a "black hole" in terrain.
  EF_DiagonalWalkCheck on.
+
- Fixed: Walls with the impassable flag off blocking movement.
 +
- Modified: IsArmor and IsWeapon now accept UID or ItemId as an argument.
  
05-10-2006, Nazghul
+
02-11-2006, MrSugarCube
- Added: INI flag OF_OSIDamageMod (0x04)
+
- Fixed: Double "You have the key for this" message when attempting to use a lockpick or cast
  Modifying weapon damage OSI style, according to this formulas (originally provided by ClouD_Br):
+
   magic unlock on something you already have a key for.
  Tactics Damage Bonus% = Tactics � 1.6 (Add 6.25% if Tactics >= 100)
 
  Anatomy Damage Bonus% = (Anatomy � 2) + 5
 
  Lumberjack Damage Bonus% = Lumberjack � 2 (Add 10% if Lumberjacking >= 100)
 
  Strength Damage Bonus% = Strength * 0.3 (Add 5% if Strength >= 100)
 
  Final Damage Bonus% = Tactics Bonus + Anatomy Bonus + Lumber Bonus + Strangth Bonus + Damage Increase Items*
 
  Final Damage = Base Damage + (Base Damage * Final Damage Bonus%)
 
   * Damage Increase is capped at 100%.
 
  
05-10-2006, Nazghul
+
03-11-2006, Furio
- Fixed #036: Fixed TRY and TRYSRV not working with locals (local and arg*). TRYSRC and TRYP
+
- Added: DB.ESCAPEDATA $field returning $field escaped using the charset of the connected db.
  do not work, since it makes no sense to use it on local variables. (Thx to Ellessar who
 
  finally worked out how this SHOULD work, so we found the bug deeply buried under tons of
 
  old code)
 
  
06-10-2006, Nazghul
+
03-11-2006, Nazghul
- Added: Function ISNEARTYPETOP(.P) which uses new checks for resource gathering (item which
+
- Added: Character trigger ON=@JAILED
   you want to find must be at the top, if at the top there are 2 items, then the success
+
   ARGN1 = 1 -> Char is up to be jailed, 0 -> char is up to be forgiven
   depends on the priority (dynamic->multi->static->terrain) of those items). Syntax is the
+
  ARGN2 = Jail cell (0 if none special)
   same with ISNEARTYPE(.P). NOTE: This function is called from hardcode if EF_NewPositionChecks
+
   RETURN 0 -> proceed as normal
  are on.
+
  RETURN 1 -> stop the procedure without changing current status
- Fixed #668: Delete packets of items which cannot be seen were sent to the client.
+
- Added: Character property IsVerticalSpace, which returns 0 if there is not enough space for
- Modified #632: Now, IsPlayer can be used on every game object.
+
   you and your mount (if you are mounted). Function takes position as an optional argument.
- Modified: sphere.ini - added an NPC AI flag NPC_AI_INTFOOD which enables smarter and more
+
 
  trustworthy food finding.
+
05-11-2006, MrSugarcube
 +
- Modified: SERV.BLOCKIP now accepts a second argument specifying the time to block the IP for
 +
  in tenths of a second (-1 for permanent).
 +
- Added: f_onserver_blockip, called when an IP is blocked from the server. ARGS contain the IP
 +
  being blocked and ARGN1 holds the amount of time the IP will be blocked for (writable).
 +
 
 +
05-11-2006, MrSugarCube (Script pack)
 +
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip definition)
  
08-10-2006, Furio
+
10-11-2006, Nazghul
- Modified: TRIGGER command. It now supports calling a trigger with arguments, the syntax is:
+
- Added: REFx as a local reference object, where x is a number between 1 and 65535. It can be
  TRIGGER $trigger_name[,$trigger_arg_type,...] where $trigger_arg_type can be:
+
   used like an OBJ, but will be removed after leaving a function (like a LOCAL).
   - TAT_AS_ARGN (1): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGN>,1,2,3
 
                    will call @MyTest with ARGN1=1 ARGN2=2 ARGN3=3.
 
  - TAT_AS_ARGS (2): uses arguments as ARGS. Example: TRIGGER @MyTest,<def.TAT_AS_ARGS>,hi you 2,yo !
 
                    will call @MyTest with ARGS=hi you 2,yo !.
 
  - TAT_AS_ARGO (3): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGO>,01
 
                    will call @MyTest with ARGO.UID=01 (only if object with such uid exist).
 
- Updated: sphere_defs.scp (with new definitions for the TRIGGER command).
 
- Fixed #880: Explode function not working as it should.
 
  
09-10-2006, Nazghul
+
15-11-2006, Nazghul
- fixed problems with spellbooks obviously triggered by new Gcc compiler for Linux with a weird
+
- Fixed #933: i_rune_paralyze is not removed.
  workaround.
+
- Fixed #934: NPCAI_Extra and heavy weapons.
  
10-10-2006, Nazghul
+
16-11-2006, Admin BladeCraft (Script pack)
- Fixed #900: Added INI flag COMBAT_DCLICKSELF_UNMOUNT to unmount horse when dclicking self
+
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip under [PLEVEL 7] block)
  while in warmode.
 
  
11-10-2006, Nazghul (Script Pack)
+
20-11-2006, MrSugarCube
- Updated: sphere_msgs.scp - more defmessages to customize text output.
+
- Fixed #940: Undefined keyword errors when using functions via [guildstone.]MEMBER.x.KEY.
- Updated (#905): sphere_item_provisions_potions.scp - Shrink potion did not behave as expected.
 
  
13-10-2006, Nazghul
+
23-11-2006, MrSugarCube
- Added: Intrinsic functions SIN() and COS(). Attention: Without FLOAT math they will obviously
+
- Added: Support for ConnectUO status request packet.
  only return 0 and 1 :)
 
  
16-10-2006, Nazghul
+
23-11-2006, Furio
- Added: Support for floats (local variables FLOAT.younameit, which have size of double, and
+
- Added: ALLOWBUYSELLAGENT in sphere.ini to allow rapid buy/sell.
  can hold precise numbers). Usage of these variables is the same like LOCAL.younameit. As
 
  EVAL only uses integer arithmetic, with FLOAT math you have to use <FLOATVAL ()>
 
  (New code was done mainly by Ellessar and Decrythe, I just "glued" it into Sphere :) )
 
- Changed: Return values for @SPELLSELECT trigger. Touchup for @SELECT with spells. Different
 
  server behaviour can be achieved with the following RETURN values in trigger scripts:
 
  @SELECT
 
  RETURN 0 - proceed without mana, spellbook, and reagent check as if these checks were
 
  successful
 
RETURN 1 - Abort processing (so aborting the spell)
 
  RETURN 2 - proceed as normal
 
  RETURN 6 - like RETURN 0 (for compatibility with @SPELLSELECT)
 
  @SPELLSELECT
 
  RETURN 0 - proceed as normal
 
RETURN 1 - abort processing (so aborting the spell)
 
  RETURN 2 - proceed as normal
 
  RETURN 6 - proceed without mana, spellbook, and reagent check as if these checks were
 
  successful
 
  @SPELLSELECT will be called after @SELECT - what means, if you leave @SELECT with RETURN 0 or
 
  RETURN 1, @SPELLSELECT will NOT be called!
 
  
16-10-2006, Furio
+
24-11-2006, MrSugarCube
- Added: DAM.HI/LO and ARMOR.HI/LO
+
- Fixed: Exceptions caused by not definined FAME.*/KARMA.* ranges.
 +
- Fixed: Exception caused by using a spyglass from a ship.
 +
- Modified: Walking off a ship plank no longer moves characters to adjacent ships.
  
17-10-2006, Nazghul
+
25-11-2006, MrSugarCube
- Added: Defmessage if skillgain is aborted due to GAINRADIUS not met; message will only be displayed
+
- Fixed: Stamina not being sent to other party members, and stat bars for other party members
   if TAG.NOSKILLMSG=1 on character
+
   not always showing the correct mana/stamina levels.
- Fixed: Problems with long passwords and MD5 hash on.
 
  
18-10-2006, Nazghul
+
26-11-2006, MrSugarCube
- Added INI flag OF_DrinkIsFood (0x10000). If set, T_DRINK will increase FOOD lvl. like T_FOOD
+
- Fixed #949: Possibility of taking items from inside containers within the bank.
 +
- Fixed #947: ISARMOR causing errors when no arguments given.
 +
- Fixed #960: .Extract and .UnExtract always using map 0.
 +
- Modified #946: Items can no longer be moved from the trade window due to client limitations.
  
19-10-2006, Nazghul
+
26-11-2006, MrSugarCube (Script pack)
- Added: Dynamic property "height" for characters.
+
- Updated: sphere_msgs.scp (Added "msg_trade_cantmove" defmessage)
  
20-10-2006, Nazghul
+
27-11-2006, Vjaka
- Updated: sphere_defs.scp - added defname charheight.
+
- Added: ATTACKER keyword to access last attackers of a character. Usage:
 +
  <attacker> returns amount of attackers
 +
  <attacker.x> returns UID of the attacker (or 0 if there is no attacker)
 +
  <attacker.x.dam> returns total damage done by the attacker
 +
  The list is being cleared upon death after @DeathCorpse trigger.
 +
- Removed: OF_Multithreaded option flag, it actually did not work at all.
 +
- Removed: EF_Scripts_Parse_Verbs - now it is integrated into the parser and is used when needed.
 +
- Modified: The way the scripts are being parsed, now they are not read from the disk on each
 +
  operation, and are actually re-read only when you are doing a manual resync.
 +
- Added: BETWEEN2 as opposite of BETWEEN, which selected min<-cur->max to select towards
 +
  minimum (max<-cur->min).
  
21-10-2006, Nazghul
+
28-11-2006, Furio
- Added: New "m" paramter for TARGET function. Now you can use TARGETM and TARGETFM for targeting
+
- Fixed #951: FILE.WRITECHR not working as it should.
  a place for your multi (you will see your multi in the "ghost mode"). TARGETM takes as an argument
+
- Modified: Added error feedback for FOR* cycles.
   ONLY ID of the multi, TARGETFM takes 2 arguments - function_to_call,ID_ot_the_multi.
+
 
 +
28-11-2006, MrSugarCube
 +
- Fixed #932: Removing items with a Z greater than 25 not updating view for players.
 +
 
 +
29-11-2006, Vjaka
 +
- Modified: The exception handling routine to get more information about the place which causes
 +
   the exception.
  
21-10-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on and AdvancedLOS on)
+
30-11-2006, MrSugarCube
- Modified: CanSeeLOS now uses height of a character for its checks. Height is read in this order
+
- Fixed #804: Multiple stackable items being created in a TEMPLATE not having the correct
  and first correct entry is used:
+
   amounts.
   1. Dynamic height property of an object
+
- Fixed #664: Automatic loading of backup saves not working.
  2. Height property under CHARDEF/ITEMDEF (can be inherited)
+
- Fixed: REPORTEDCLIVER always returning 0.0.0 and CLIENTIS3D always returning 0.
  3. Defname in format "height_dispid", while dispid is a hex number in Sphere format (0a3)
+
- Fixed: GUILDTITLE property on guild members not working.
   4. Defname in format "height_dispid", while dispid is a dec number
+
- Fixed: KARMA.* ranges not accepting negative values.
   5. Universal height - "15"
+
- Modified #494: RESURRECT function now accepts a parameter specifying whether or not to
   If a character is mounted, its height is raised by 4. CanSeeLOS reduce height of an unmounted
+
   ignore anti-magic fields (i.e. "RESURRECT 1" to ignore anti-magic field). Note that
   character by 1 (pretending eyes height).
+
   specifying 1 will also cause @[Spell]Effect triggers to not fire for the resurrection
  NOTE: This formula is used when you are doing .show height, or <height> in scripts.
+
   spell.
 +
- Modified: Adding/Accepting an offline player into a guild now shows a more appropriate
 +
   message to the client.
  
23-10-2006, Nazghul
+
01-12-2006, MrSugarCube
- Fixed: #789 ModAR on characters only worked with damage of type GENERAL.
+
- Fixed: Corpses for creatures with higher RESLEVEL than the client's RESDISP not showing
 +
  the body and hue specified in the creature's CHARDEF.
  
23-10-2006, MrSugarCube
+
02-12-2006, Nazghul
- Fixed: Webpage requests always displaying the "Internal Server Error" page.
+
- Added: CanSeeLOSFlag which accepts flags for LOS check as the first argument and an object
 +
  or a position as the second argument. For flags and their explanation see sphere_defs.scp.
  
24-10-2006, Nazghul
+
05-12-2006, Vjaka
- Added: Trigger @(item)Buy now has local.totalcost, which holds the cost of the whole purchase
+
- Fixed: Ships falling apart after rotation.
  and ARGN2, which holds price of this amount of items (price * amount).
+
- Fixed #955: Some dialogs/sdialogs causing exceptions after they're opened.
- Fixed: Trigger @(item)Buy returning bad amount in ARGN1.
 
- Added: Local variables LOCAL.CREATEOBJECT1 and LOCAL.CREATEOBJECT2 to @SUCCESS trigger of spells.
 
  These variables are _unset_ when the trigger is called. But they can be _set_ with field- and
 
  summon spells to change what these spells will create.
 
  - Summon spells (summon creature, bladeSpirit, Vortex, summon daemon, summon *elemental) take only
 
    the first one. If set with LOCAL.CREATEOBJECT1 = <eval c_orc> the spell will summon an orc. This
 
    way one can add more random daemons to the summon daemon spell, or change the spawned creature
 
    due to magery or whatever.
 
  - field spells (s_wall_of_stone, s_fire_field etc) take both variables, as usually the items for
 
    the field in west-east direction are different from those in north-south direction. If necessary
 
    they can of course be the same (s_fire_field looks impressive with i_fire_columns :) ), but BOTH
 
    have to be set (otherwise the unset will be replaced by the spell's default item for this dir).
 
    Example:
 
    [SPELL s_fire_field]
 
    ...
 
    on=@SUCCESS
 
      IF <magery> >= 99.9
 
        LOCAL.CREATEOBJECT1 = <eval i_fire_column>
 
        LOCAL.CREATEOBJECT2 = <eval i_fire_column>
 
      ENDIF
 
  
24-10-2006, Pilz-e (Script pack)
+
06-12-2006, Nazghul
- Updated: sphere_map0_ml.scp (Corrected P properties for ML locations)
+
- Modified: Now only ATTACKER.* works (not ATTACKERFUBAR), now only ATTACKER.*/ATTACKER.*.UID
 +
  returns the UID of an attacker, ATTACKER.*.DAM returns damage done by the attacker * and
 +
  ATTACKER.*.ELAPSED returns the time in seconds since the last hit of the attacker *.
 +
- Modified: ATTACKERs are now also saved if they deal no damage.
  
25-10-2006, Nazghul (Changes only with EF_NewPositionCheck, EF_WalkCheck and MountHeight on)
+
09-12-2006, Nazghul
- Modified. You will not be able to go into a building if there is not enough space for you.
+
- Fixed #965: Fishing with certain flags on not working.
- Modified: You will not be able to mount a rideable if there is not enough space for you + ride.
+
- Fixed: Error messages about undefined item 00.
- Modified: You will not be able to summon an NPC if there is not enough space for it.
 
- Modified: You will not be able to teleport (gate, recall) yourself to a spot where is not enough
 
  space for you.
 
  
25-10-2006, Nazghul
+
09-12-2006, Furio
- Updated: sphere_msgs.scp - added a new defmessage msg_summon_ceiling and modified
+
- Added: Encryption keys for client 5.0.7.0.
  the msg_mounted_ceiling defmessage.
 
  
25-10-2006, Nazghul
+
09-12-2006, MrSugarCube
- Changed: NPC_AI flags in sphere.ini. Started splitting them up to make it easier to track
+
- Fixed: <REPORTEDCLIVER.> not showing the ".x" in client "5.0.6.5" and above.
  errors related to them. The respective INI section now reads:
 
  // NPC AI settings
 
  // NPC_AI_PATH 0001 NPC pathfinding
 
  // NPC_AI_FOOD 0002 NPC food search (objects + grass)
 
  // NPC_AI_EXTRA 0004 NPC magics, etc
 
  // NPC_AI_ALWAYSINT 0008 Always be as smart as possible with pathfinding
 
  // NPC_AI_INTFOOD 0010 NPC food search (more intelligent and trusworthy)
 
  // NPC_AI_COMBAT 0040 Look for friends in combat
 
  // NPC_AI_VEND_TIME 0080 vendors closing their shops at nighttime
 
  // NPC_AI_LOOTING 0100 loot corpses an the way
 
  // NPC_AI_MOVEOBSTACLES 0200 if moveable items block my way, try to move them
 
  //NPCAI=0
 
  
27-10-2006, Nazghul
+
10-12-2006, Vjaka
- Fixed: Fishing not displaying an animation right after start.
+
- Added: Now keyword MAX can be used instead of number in ATTACKER in order to access the one
- Fixed: Resource gathering with EF_NewPositionChecks on did not work on tiles with Z < 0.
+
  who have dealt most damage.
- Added: Some more defmessages (also to sphere_msgs.scp), this time title-related
+
- Removed: EF_Scripts_Ret_Strings has proven to be stable and correct during years, so it is
 +
  now a default behavior of Sphere.
  
28-10-2006, Furio
+
16-12-2006, Furio
- Fixed #809: Wrong cheater message.
+
- Added: argument CLEAR to TIMERF. Now using x.TIMER CLEAR will delete all the timerf running on x.
- Added #913: TAG.OVERRIDE.MAXITEMS/MAXWEIGHT on bank to override global settings.
 
- Added: TAG.PARTY_AUTODECLINEINVITE. If set on char it makes the char autodecline every invite.
 
- Modified: After an party invite you must wait a bit before inviting someone else.
 
  
29-10-2006, Nazghul
+
16-12-2006, MrSugarCube
- Added: Spell flag "SPELLFLAG_NOUNPARALYZE", if the flag is turned on, victim won't be
+
- Fixed #979: PRIVSHOW feedback showing incorrect ON/OFF message.
   unparalyzed.
+
- Fixed #977: +=/-= operators not working with REFx, and exception caused when TRYSRC is
- Added: Damage flag "DAM_NOUNPARALYZE", if the flag is turned on, victim won't be unparalyzed.
+
   supplied with an invalid verb.
- Updated: sphere_spells.scp (added spellflag_nounparalyze to the paralyze field spell)
+
- Fixed #936: REFx interfering with functions beginning with REF (such as REFUSECANDIDATE
   and sphere_defs.scp
+
  on guildstones)
- Updated: sphereCrypt.ini
+
- Fixed: REFx allowing x to be out of range (should only allow 1 to 65535).
 +
- Modified: <REFx> now returns the UID of the object stored in the REF like other object
 +
   references.
 +
- Modified: REFx no longer ignores attempts at being set to invalid UIDs - now in this case
 +
  the REF will be cleared.
  
31-10-2006, Nazghul
+
16-12-2006, ShiryuX (Script pack)
- Added: FEVAL and FHVAL which allow you to convert your float variable to a standard decimal or
+
- Updated: sphere_defs.scp (Added missing MT_MALE definition)
  hexadecimal number. Numbers behind a decimal point are cut out.
 
  The syntax is: <feval <float.yourvar>> or <fhval <floatl.yourvar>>.
 
- Fixed: Addspell not working if used like <findid.i_spellbook.addspell 5>. Now, this syntax
 
  should return 1 if the spell passed as an argument is in the spellbook.
 
  
02-11-2006, Nazghul
+
18-12-2006, MrSugarCube
- Fixed: CanSeeLOS working through a "black hole" in terrain.
+
- Fixed #985: Clients on the "Status..." window not showing on seperate lines.
- Fixed: Walls with the impassable flag off blocking movement.
+
- Fixed #978: Setting LevelMode to unexpected values causing server freeze when calculating
- Modified: IsArmor and IsWeapon now accept UID or ItemId as an argument.
+
  experience.
  
02-11-2006, MrSugarCube
+
19-12-2006, coruja747 (Script pack)
- Fixed: Double "You have the key for this" message when attempting to use a lockpick or cast
+
- Updated: sphere_admin.scp (Fixed IP Address and Location properties not greyed out for
   magic unlock on something you already have a key for.
+
  insubstantial characters)
 +
- Updated: spherechar.scp and spherechar_evil.scp (Corrected Lava Lizard definition and
 +
   moved it to spherechar.scp)
  
03-11-2006, Furio
+
19-12-2006, _Epila_ (Script pack)
- Added: DB.ESCAPEDATA $field returning $field escaped using the charset of the connected db.
+
- Updated: sphere_menu.scp (Removed [COMMENT MENU MENU_ADMIN] as it's no longer used)
  
03-11-2006, Nazghul
+
20-12-2006, MrSugarCube
- Added: Character trigger ON=@JAILED
+
- Modified: Tooltips that have been queued long enough for their object to no longer be on
  ARGN1 = 1 -> Char is up to be jailed, 0 -> char is up to be forgiven
+
   the client's screen are no longer sent.
  ARGN2 = Jail cell (0 if none special)
 
   RETURN 0 -> proceed as normal
 
  RETURN 1 -> stop the procedure without changing current status
 
- Added: Character property IsVerticalSpace, which returns 0 if there is not enough space for
 
  you and your mount (if you are mounted). Function takes position as an optional argument.
 
  
05-11-2006, MrSugarcube
+
20-12-2006, MrSugarCube (Script pack)
- Modified: SERV.BLOCKIP now accepts a second argument specifying the time to block the IP for
+
- Updated #988: sphere_msgs.scp (Added 3 "msg_serv_shutdown*" defmessages)
  in tenths of a second (-1 for permanent).
 
- Added: f_onserver_blockip, called when an IP is blocked from the server. ARGS contain the IP
 
  being blocked and ARGN1 holds the amount of time the IP will be blocked for (writable).
 
  
05-11-2006, MrSugarCube (Script pack)
+
20-12-2006, Nazghul
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip definition)
+
- Fixed #972: NPCs walking on water with EF_WalkCheck on.
 +
- Fixed #982: Teleport allowed to water with EF_WalkCheck on.
  
10-11-2006, Nazghul
+
21-12-2006, MrSugarCube
- Added: REFx as a local reference object, where x is a number between 1 and 65535. It can be
+
- Fixed #971: Clock overflow that causes the game to freeze.
  used like an OBJ, but will be removed after leaving a function (like a LOCAL).
+
- Fixed: FRUIT property of crops not returning the correct value.
  
15-11-2006, Nazghul
+
22-12-2006, Nazghul
- Fixed #933: i_rune_paralyze is not removed.
+
- Fixed: HEIGHT returning wrong value on DUPEd items.
- Fixed #934: NPCAI_Extra and heavy weapons.
 
  
16-11-2006, Admin BladeCraft (Script pack)
+
22-12-2006, Vjaka
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip under [PLEVEL 7] block)
+
- Fixed: HITS setting for items when MAXHITS was not specified, so you can act via HITS for
 +
  items as well for saving with no need to differ HITS and HITPOINTS.
 +
- Fixed: client problems with quick mounting horse while running causing no future updates
 +
  being interpreted by client till .fix/.resend was done.
 +
- Fixed: inject ,snoop command still having some cases to access items in undesired containers.
 +
- Fixed #819: If we use rand(X), where X > 32767, we always get result of rand(131072).
  
20-11-2006, MrSugarCube
+
22-12-2006, Furio
- Fixed #940: Undefined keyword errors when using functions via [guildstone.]MEMBER.x.KEY.
+
- Fixed #816: Reading non-string data from sql is autoeval'd.
  
23-11-2006, MrSugarCube
+
23-12-2006, Vjaka
- Added: Support for ConnectUO status request packet.
+
- Added: Region tag RestockVendors (in ticks) to alter time in which the vendors will auto restock.
 +
  Default value is 10*60*10 (10 minutes).
  
23-11-2006, Furio
+
24-12-2006, MrSugarCube
- Added: ALLOWBUYSELLAGENT in sphere.ini to allow rapid buy/sell.
+
- Fixed #1000: TAG.NAME.PREFIX not overriding the Lord/Lady title in the profile and paperdoll
 +
  menus, and TAG.NAME.SUFFIX not showing at all.
 +
- Fixed: Sphere crashing when a player opens a container with 810+ items inside.
  
24-11-2006, MrSugarCube
+
29-12-2006, MrSugarCube
- Fixed: Exceptions caused by not definined FAME.*/KARMA.* ranges.
+
- Fixed #973: Ship hatch contents being deleted upon turning the ship.
- Fixed: Exception caused by using a spyglass from a ship.
+
- Fixed #973: Ship planks becoming permanently unlocked when opened.
- Modified: Walking off a ship plank no longer moves characters to adjacent ships.
+
- Fixed #973: Fixed spam caused when attempting to attack an opponent outside of a ship.
 +
- Fixed: MULTICREATE function not working without an SRC present.
 +
- Fixed: Setting the ACCOUNT property of an NPC now properly sets it up as a player character
 +
  without it being deleted by garbage collection.
 +
- Modified #995: Logged out players are now moved along with moving ships.
 +
- Modified #920: GMPAGE function can now be used with the arguments "ADD <Message>" to add <Message>
 +
  to the page queue. This function should be called on a logged in player (eg: "GMPAGE ADD This is a
 +
  page").
 +
- Added #973: Combat flag COMBAT_ALLOWHITFROMSHIP. Removes the combat restriction that prevents
 +
  characters attacking from ships.
 +
- Added: TILLER, HATCH and PLANK.x references for ships. PLANKS property can be used to determine
 +
  how many planks are present on a ship.
  
25-11-2006, MrSugarCube
+
29-12-2006, MrSugarCube (Script pack)
- Fixed: Stamina not being sent to other party members, and stat bars for other party members
+
- Updated: sphere_msgs.scp (Added combat_outsideship to defmessages)
  not always showing the correct mana/stamina levels.
 
  
26-11-2006, MrSugarCube
+
30-12-2006, _Epila_ (Script pack)
- Fixed #949: Possibility of taking items from inside containers within the bank.
+
- Updated: sphere_map_points3.scp (Added missing Doom dungeon teleporters)
- Fixed #947: ISARMOR causing errors when no arguments given.
 
- Fixed #960: .Extract and .UnExtract always using map 0.
 
- Modified #946: Items can no longer be moved from the trade window due to client limitations.
 
  
26-11-2006, MrSugarCube (Script pack)
+
02-01-2007, MrSugarCube
- Updated: sphere_msgs.scp (Added "msg_trade_cantmove" defmessage)
+
- Fixed: Loginserver not sending server IPs correctly.
 +
- Fixed: Response not being sent when a client sends a ping packet.
 +
- Fixed: Hallucination ignoring RESLEVEL settings on the random bodies it selects.
 +
- Modified: Trade window contents are no longer included in searches of a character's inventory. This
 +
  affects CONSUME, *COUNT, FIND* and FORCONT* functions.
  
27-11-2006, Vjaka
+
02-01-2007, MrSugarCube (Script pack)
- Added: ATTACKER keyword to access last attackers of a character. Usage:
+
- Updated: spherechar.scp (Replaced c_sea_monster definition to add protection against crashing newer
  <attacker> returns amount of attackers
+
   clients)
  <attacker.x> returns UID of the attacker (or 0 if there is no attacker)
 
  <attacker.x.dam> returns total damage done by the attacker
 
  The list is being cleared upon death after @DeathCorpse trigger.
 
- Removed: OF_Multithreaded option flag, it actually did not work at all.
 
- Removed: EF_Scripts_Parse_Verbs - now it is integrated into the parser and is used when needed.
 
- Modified: The way the scripts are being parsed, now they are not read from the disk on each
 
  operation, and are actually re-read only when you are doing a manual resync.
 
- Added: BETWEEN2 as opposite of BETWEEN, which selected min<-cur->max to select towards
 
   minimum (max<-cur->min).
 
  
28-11-2006, Furio
+
03-01-2007, MrSugarCube
- Fixed #951: FILE.WRITECHR not working as it should.
+
- Fixed: MapChange packet not sending the correct map id for Trammel (Map 1)
- Modified: Added error feedback for FOR* cycles.
+
- Modified: MAPx in sphere.ini now accepts a 5th parameter, for specifying the map id that should be
 
+
  given to the client (0=felucca, 1=trammel, 2=ilshenar, etc).
28-11-2006, MrSugarCube
+
- Added: *Experimental* flag "EF_Mapdiff_Support" added to sphere.ini. Enables using mapdif and stadif
- Fixed #932: Removing items with a Z greater than 25 not updating view for players.
+
  files to patch terrain and statics.
  
29-11-2006, Vjaka
+
04-01-2007, MrSugarCube
- Modified: The exception handling routine to get more information about the place which causes
+
- Fixed: Buying from vendors allowing players to carry more weight than they should. Excess items are
   the exception.
+
  now dropped to the ground.
 +
- Fixed: Selling to off-duty vendors showing a warning message about an illegal "buy packet" instead
 +
   of "sell packet". Also added more detail to buy/sell packet cheater warnings.
 +
- Modified: Resync messages are now always visible on the console.
  
30-11-2006, MrSugarCube
+
05-01-2007, MrSugarCube
- Fixed #804: Multiple stackable items being created in a TEMPLATE not having the correct
+
- Fixed #1011: Trade title on the paperdoll written incorrectly.
  amounts.
 
- Fixed #664: Automatic loading of backup saves not working.
 
- Fixed: REPORTEDCLIVER always returning 0.0.0 and CLIENTIS3D always returning 0.
 
- Fixed: GUILDTITLE property on guild members not working.
 
- Fixed: KARMA.* ranges not accepting negative values.
 
- Modified #494: RESURRECT function now accepts a parameter specifying whether or not to
 
  ignore anti-magic fields (i.e. "RESURRECT 1" to ignore anti-magic field). Note that
 
  specifying 1 will also cause @[Spell]Effect triggers to not fire for the resurrection
 
  spell.
 
- Modified: Adding/Accepting an offline player into a guild now shows a more appropriate
 
  message to the client.
 
  
01-12-2006, MrSugarCube
+
05-01-2007, Nazghul
- Fixed: Corpses for creatures with higher RESLEVEL than the client's RESDISP not showing
+
- Fixed: Sphere now adds and removes the hiding/stealth buff icon automatically
  the body and hue specified in the creature's CHARDEF.
 
  
02-12-2006, Nazghul
+
06-01-2007, MrSugarCube
- Added: CanSeeLOSFlag which accepts flags for LOS check as the first argument and an object
+
- Fixed: SERV.RESYNC command being executed from scripts causing the server to freeze. Note that using
   or a position as the second argument. For flags and their explanation see sphere_defs.scp.
+
  SERV.RESYNC from scripts will now cause the resync pause to be delayed until after the script has
 +
  completed execution.
 +
- Modified: EFFECT property of crafting skills can now be used to define the percentage of resources
 +
  that are lost when failing to craft an item. A few examples of how you can use this:
 +
  "EFFECT=x" - Always lose x% of resources on fail
 +
  "EFFECT=x,y" - Lose between x% and y% of resources on fail
 +
  "EFFECT=x,y,z" - Lose between x% and z% of resources on fail (weighted by y)
 +
   If EFFECT is not set then resource loss will be as normal -> 0-50% resources lost.
 +
- Added: TAG.OVERRIDE.GUARDS on regions to specify different guards per region.
 +
- Added: Arguments for @CallGuards trigger:
 +
  ARGN1 = Guard ID that will be created. (writable)
 +
  ARGN2 = Force spawning a new guard. (writable)
 +
  ARGO  = An already spawned guard that will be used, unless ARGN2 has been set to 1.
  
05-12-2006, Vjaka
+
06-01-2007, MrSugarCube (Script pack)
- Fixed: Ships falling apart after rotation.
+
- Updated: sphere_skills.scp (Removed EFFECT property from Alchemy and updated [COMMENT SKILL x] block)
- Fixed #955: Some dialogs/sdialogs causing exceptions after they're opened.
 
  
06-12-2006, Nazghul
+
07-01-2007, MrSugarCube
- Modified: Now only ATTACKER.* works (not ATTACKERFUBAR), now only ATTACKER.*/ATTACKER.*.UID
+
- Fixed #1007: War/Peace button on paperdoll not correct when logging in with war mode.
   returns the UID of an attacker, ATTACKER.*.DAM returns damage done by the attacker * and
+
 
   ATTACKER.*.ELAPSED returns the time in seconds since the last hit of the attacker *.
+
08-01-2007, MrSugarCube
- Modified: ATTACKERs are now also saved if they deal no damage.
+
- Fixed #1004: Target cursor appearing when calling functions starting with "SET" or "X".
 +
- Added #1013: SYSMESSAGELOC, for sending localized messages to clients. SMSGL can also be used as a shortcut.
 +
   Syntax is: "SYSMESSAGELOC color,clilocid[,arguments]"
 +
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override it.
 +
   Some examples of this being used (latest clilocs) are:
 +
  "SYSMESSAGELOC -1,502771" - Displays "You cannot reach that."
 +
  "SYSMESSAGELOC 2,1042758,MrSugarCube" - Displays "You are now loyal to MrSugarCube." in blue
 +
  "SYSMESSAGELOC -1,1062695,MrSugarCube,4,5" - Displays "MrSugarCube rolls the dice and gets a 4 and
 +
  a 5!"
 +
- Modified #1013: '@color,font,unicode' in messages is now '@color,font,mode'. You can specify 1 for mode if
 +
  you wish to use unicode (like before), or specify 2 if you wish to use a localized message (useful for
 +
  overriding messages in sphere_msgs.scp). The above localization examples used with this method would be:
 +
  "SYSMESSAGE @,,2 502771"
 +
  "SYSMESSAGE @2,,2 1042758,MrSugarCube"
 +
  "SYSMESSAGE @,,2 1062695,MrSugarCube,4,5"
  
09-12-2006, Nazghul
+
09-01-2007, Furio
- Fixed #965: Fishing with certain flags on not working.
+
- Added: MD5HASH returning the md5 hash of the argument.
- Fixed: Error messages about undefined item 00.
 
  
09-12-2006, Furio
+
11-01-2007, MrSugarCube
- Added: Encryption keys for client 5.0.7.0.
+
- Fixed: ATTACKER.x not working correctly.
 +
- Fixed: Possible exception with handling mail message packet.
 +
- Modified: Rewritten EF_Mapdiff_Support handling to perform much faster. This is done at the cost of some
 +
  additional memory usage but it can now cope with populated worlds.
 +
- Modified: Profiler now includes time spent loading map blocks.
  
09-12-2006, MrSugarCube
+
11-01-2007, MrSugarCube (Script pack)
- Fixed: <REPORTEDCLIVER.> not showing the ".x" in client "5.0.6.5" and above.
+
- Updated: sphere_spells.scp (Corrected FLAGS property of paralyze field spell)
  
10-12-2006, Vjaka
+
12-01-2007, Shadow Dragon
- Added: Now keyword MAX can be used instead of number in ATTACKER in order to access the one
+
- Added: MulDiv script function. Usage "MulDiv number,multiplier,divider". Returns result.
  who have dealt most damage.
 
- Removed: EF_Scripts_Ret_Strings has proven to be stable and correct during years, so it is
 
  now a default behavior of Sphere.
 
  
16-12-2006, Furio
+
12-01-2007, Vjaka
- Added: argument CLEAR to TIMERF. Now using x.TIMER CLEAR will delete all the timerf running on x.
+
- Greatly increased speed of loading large scripts (especially annoying on resync).
 +
- Fixed parsing script files when latest useful script line not ended by carriage return.
  
16-12-2006, MrSugarCube
+
15-01-2007, MrSugarCube
- Fixed #979: PRIVSHOW feedback showing incorrect ON/OFF message.
+
- Fixed #1027: SDIALOG claiming to be an undefined keyword when the specified dialog is already showing.
- Fixed #977: +=/-= operators not working with REFx, and exception caused when TRYSRC is
 
  supplied with an invalid verb.
 
- Fixed #936: REFx interfering with functions beginning with REF (such as REFUSECANDIDATE
 
  on guildstones)
 
- Fixed: REFx allowing x to be out of range (should only allow 1 to 65535).
 
- Modified: <REFx> now returns the UID of the object stored in the REF like other object
 
  references.
 
- Modified: REFx no longer ignores attempts at being set to invalid UIDs - now in this case
 
  the REF will be cleared.
 
  
16-12-2006, ShiryuX (Script pack)
+
16-01-2007, Nazghul
- Updated: sphere_defs.scp (Added missing MT_MALE definition)
+
- Added: Character trigger @charAttack, @charClick, @charClienttooltip, @charDClick, which work like
 +
  @itemXXX triggers, but for NPCs.
 +
- Added: An item flag CAN_I_DCIGNORELOS and a character flag mt_nodclicklos. With these flags on, LOS checks
 +
  on a dclicked item won't be performed.
 +
- Added: An item flag CAN_I_DCIGNOREDIST and a character flag mt_nodclickdist. With these flags on, distance
 +
  checks on a dclicked item won't be performed.
  
18-12-2006, MrSugarCube
+
16-01-2007, MrSugarCube
- Fixed #985: Clients on the "Status..." window not showing on seperate lines.
+
- Added #1029: @Cancel trigger to MENUs and SKILLMENUs.
- Fixed #978: Setting LevelMode to unexpected values causing server freeze when calculating
+
- Modified: Items displayed on MENUs and SKILLMENUs can now be coloured. This can be done by prefixing the
  experience.
+
  item description with "@color" (in the same way that sysmessages can be coloured). For example,
 +
  "ON=i_sword_viking @2 This is a viking sword" will display a blue sword on the menu.
 +
- Modified: Cancelling a PROMPTCONSOLE prompt no longer prevents the callback function from being called.
  
19-12-2006, coruja747 (Script pack)
+
16-01-2007, SaCi (Script pack)
- Updated: sphere_admin.scp (Fixed IP Address and Location properties not greyed out for
+
- Updated: sphere_dialog.scp (Updated descriptions in [COMMENT DIALOG HELP_SECTION])
  insubstantial characters)
 
- Updated: spherechar.scp and spherechar_evil.scp (Corrected Lava Lizard definition and
 
  moved it to spherechar.scp)
 
  
19-12-2006, _Epila_ (Script pack)
+
17-01-2007, MrSugarCube
- Updated: sphere_menu.scp (Removed [COMMENT MENU MENU_ADMIN] as it's no longer used)
+
- Added: OPENPAPERDOLL character function. Without arguments it will display the current character's
 +
  paperdoll to SRC. With the UID of a character given it will display the specified character's paperdoll to
 +
  the current client.
  
20-12-2006, MrSugarCube
+
20-01-2007, Ellessar
- Modified: Tooltips that have been queued long enough for their object to no longer be on
+
- Fixed: Problems with stairs which have odd height (1,3,5,...).
  the client's screen are no longer sent.
+
- Fixed #1037: Buffs needed FEATURE_AOS_UPDATE_B to work.
  
20-12-2006, MrSugarCube (Script pack)
+
24-01-2007, MrSugarCube
- Updated #988: sphere_msgs.scp (Added 3 "msg_serv_shutdown*" defmessages)
+
- Fixed: Tillerman speech on the 3D client not shown in the correct colour.
  
20-12-2006, Nazghul
+
25-01-2007, Ellessar
- Fixed #972: NPCs walking on water with EF_WalkCheck on.
+
- Fixed #1028: Problems with terrain height.
- Fixed #982: Teleport allowed to water with EF_WalkCheck on.
+
- Rewritten the whole NPC_AI_PATH, now it should be faster, more reliable and less buggy.
  
21-12-2006, MrSugarCube
+
28-01-2007, Ellessar
- Fixed #971: Clock overflow that causes the game to freeze.
+
- Fixed: Pathfinding called on every NPC step.
- Fixed: FRUIT property of crops not returning the correct value.
+
- Fixed #987: ResMake returning wrong values if the item doesn't exist in the world.
 +
- Fixed #1010: After casting a wall in a guard zone you were flagged as a criminal, also with the spellflag_harm
 +
  flag off.
  
22-12-2006, Nazghul
+
28-01-2007, MrSugarCube
- Fixed: HEIGHT returning wrong value on DUPEd items.
+
- Fixed: GAINRADIUS on skill definitions defaulting to random values.
  
22-12-2006, Vjaka
+
29-01-2007, Ellessar
- Fixed: HITS setting for items when MAXHITS was not specified, so you can act via HITS for
+
- Optimized: MapCaching (using STL functions), which should result in less bugs and better performance.
  items as well for saving with no need to differ HITS and HITPOINTS.
+
- Fixed: Using .tele over water tiles was allowed.
- Fixed: client problems with quick mounting horse while running causing no future updates
 
  being interpreted by client till .fix/.resend was done.
 
- Fixed: inject ,snoop command still having some cases to access items in undesired containers.
 
- Fixed #819: If we use rand(X), where X > 32767, we always get result of rand(131072).
 
  
22-12-2006, Furio
+
29-01-2007, Furio
- Fixed #816: Reading non-string data from sql is autoeval'd.
+
- Modified: Is now possible to always use ARGO.verb directly.
 +
- Added: In packetfilter functions ARGO is the CClient connected now (e.g. it allows SENDPACKET through
 +
  ARGO.SENDPACKET syntax at any time)
  
23-12-2006, Vjaka
+
31-01-2007, MrSugarCube
- Added: Region tag RestockVendors (in ticks) to alter time in which the vendors will auto restock.
+
- Fixed #771: Unicode characters being stripped from speech when keywords from Speech.mul are used.
  Default value is 10*60*10 (10 minutes).
+
- Added: Encryption keys for client 5.0.8.x to sphereCrypt.ini
  
24-12-2006, MrSugarCube
+
01-02-2007, MrSugarCube
- Fixed #1000: TAG.NAME.PREFIX not overriding the Lord/Lady title in the profile and paperdoll
+
- Fixed #755: GetResourceValue error being shown for items with valid resources after being shown for the
   menus, and TAG.NAME.SUFFIX not showing at all.
+
   first time.
- Fixed: Sphere crashing when a player opens a container with 810+ items inside.
+
- Modified: Changed the "GetResourceValue reentrant item=xxx" error to make more sense.
  
29-12-2006, MrSugarCube
+
02-02-2007, MrSugarCube
- Fixed #973: Ship hatch contents being deleted upon turning the ship.
+
- Fixed #496: Musicianship skill triggering skill gain twice on success.
- Fixed #973: Ship planks becoming permanently unlocked when opened.
 
- Fixed #973: Fixed spam caused when attempting to attack an opponent outside of a ship.
 
- Fixed: MULTICREATE function not working without an SRC present.
 
- Fixed: Setting the ACCOUNT property of an NPC now properly sets it up as a player character
 
  without it being deleted by garbage collection.
 
- Modified #995: Logged out players are now moved along with moving ships.
 
- Modified #920: GMPAGE function can now be used with the arguments "ADD <Message>" to add <Message>
 
  to the page queue. This function should be called on a logged in player (eg: "GMPAGE ADD This is a
 
  page").
 
- Added #973: Combat flag COMBAT_ALLOWHITFROMSHIP. Removes the combat restriction that prevents
 
  characters attacking from ships.
 
- Added: TILLER, HATCH and PLANK.x references for ships. PLANKS property can be used to determine
 
  how many planks are present on a ship.
 
  
29-12-2006, MrSugarCube (Script pack)
+
03-02-2007, MrSugarCube
- Updated: sphere_msgs.scp (Added combat_outsideship to defmessages)
+
- Fixed #510: Notoriety status on tooltips not shown correctly when moving around.
 +
 
 +
05-02-2007, Ellessar
 +
- Added: Keyword GetRefType, which returns flag of the referenced type. The list of flags is in sphere_defs.scp.
 +
- Updated: sphere_defs.scp - added ref_types defnames
  
30-12-2006, _Epila_ (Script pack)
+
06-02-2007, Nazghul
- Updated: sphere_map_points3.scp (Added missing Doom dungeon teleporters)
+
- fixed #1047: NPC AI_CAN_LOOT missed a "not" so only animals looted :).
 +
  Domestic animals will no more poop dung if frozen, stone, insubstantial or in warmode
  
02-01-2007, MrSugarCube
+
07-02-2007, Nazghul
- Fixed: Loginserver not sending server IPs correctly.
+
- Fixed #1049: t_fire, t_campfire, t_spell are no longer dispellable if they have attr_move_never
- Fixed: Response not being sent when a client sends a ping packet.
+
- Added: more defmessages (update sphere_msgs.scp!)
- Fixed: Hallucination ignoring RESLEVEL settings on the random bodies it selects.
 
- Modified: Trade window contents are no longer included in searches of a character's inventory. This
 
  affects CONSUME, *COUNT, FIND* and FORCONT* functions.
 
  
02-01-2007, MrSugarCube (Script pack)
+
07-02-2007, Vjaka
- Updated: spherechar.scp (Replaced c_sea_monster definition to add protection against crashing newer
+
- Modified console output in linux build. By default it assumes that it is not colored,
   clients)
+
   launch with argument -c (./spheresvr -c) in order to get colored output. It screwed some consoles.
  
03-01-2007, MrSugarCube
+
08-02-2007, Nazghul
- Fixed: MapChange packet not sending the correct map id for Trammel (Map 1)
+
- Added: Skill flags SKF_NOANIM (don't show hardcoded anim for this skill) and SKF_NOSFX (don't play
- Modified: MAPx in sphere.ini now accepts a 5th parameter, for specifying the map id that should be
+
  hardcoded sound for this skill). After setting this you can set anim/sfx yourself in @start
  given to the client (0=felucca, 1=trammel, 2=ilshenar, etc).
+
   or alike.
- Added: *Experimental* flag "EF_Mapdiff_Support" added to sphere.ini. Enables using mapdif and stadif
 
   files to patch terrain and statics.
 
  
04-01-2007, MrSugarCube
+
08-02-2007, Ellessar
- Fixed: Buying from vendors allowing players to carry more weight than they should. Excess items are
+
- Fixed #1050: Problems with underground caves.
  now dropped to the ground.
 
- Fixed: Selling to off-duty vendors showing a warning message about an illegal "buy packet" instead
 
  of "sell packet". Also added more detail to buy/sell packet cheater warnings.
 
- Modified: Resync messages are now always visible on the console.
 
  
05-01-2007, MrSugarCube
+
09-02-2007, MrSugarCube
- Fixed #1011: Trade title on the paperdoll written incorrectly.
+
- Fixed: ConnectUO Status requests sometimes reporting an encryption error.
  
05-01-2007, Nazghul
+
11-02-2007, Fisicka (Script pack)
- Fixed: Sphere now adds and removes the hiding/stealth buff icon automatically
+
- Fixed #1051: Bug in sphere_map_points0.scp and sphere_map_points1.scp
  
06-01-2007, MrSugarCube
+
11-02-2007, MrSugarCube
- Fixed: SERV.RESYNC command being executed from scripts causing the server to freeze. Note that using
+
- Fixed #1037: ADDBUFF and REMOVEBUFF requiring FEATURE_AOS_UPDATE_B enabled to work.
  SERV.RESYNC from scripts will now cause the resync pause to be delayed until after the script has
+
- Fixed #1053: @color in [SKILL]MENUs displaying the wrong colour.
  completed execution.
 
- Modified: EFFECT property of crafting skills can now be used to define the percentage of resources
 
  that are lost when failing to craft an item. A few examples of how you can use this:
 
  "EFFECT=x" - Always lose x% of resources on fail
 
  "EFFECT=x,y" - Lose between x% and y% of resources on fail
 
  "EFFECT=x,y,z" - Lose between x% and z% of resources on fail (weighted by y)
 
  If EFFECT is not set then resource loss will be as normal -> 0-50% resources lost.
 
- Added: TAG.OVERRIDE.GUARDS on regions to specify different guards per region.
 
- Added: Arguments for @CallGuards trigger:
 
  ARGN1 = Guard ID that will be created. (writable)
 
  ARGN2 = Force spawning a new guard. (writable)
 
  ARGO  = An already spawned guard that will be used, unless ARGN2 has been set to 1.
 
  
06-01-2007, MrSugarCube (Script pack)
+
12-02-2007, MrSugarCube
- Updated: sphere_skills.scp (Removed EFFECT property from Alchemy and updated [COMMENT SKILL x] block)
+
- Fixed #1058: Exception on linux build caused by items decaying without decay flag.
  
07-01-2007, MrSugarCube
+
13-02-2007, Nazghul
- Fixed #1007: War/Peace button on paperdoll not correct when logging in with war mode.
+
- Fixed #1059: Now NPC will be stuck with the lightsource they already have equipped.
  
08-01-2007, MrSugarCube
+
15-02-2007, Nazghul
- Fixed #1004: Target cursor appearing when calling functions starting with "SET" or "X".
+
- Added: First version of support for TNG's webscript reader. Use console command
- Added #1013: SYSMESSAGELOC, for sending localized messages to clients. SMSGL can also be used as a shortcut.
+
   "tngstrip" to create a file what contains the information TNG needs from all
   Syntax is: "SYSMESSAGELOC color,clilocid[,arguments]"
+
   your scripts (thus completely useless for script thieves). The file will be
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override it.
+
  placed at the location defined with "StripPath=" in sphere.ini and is named
   Some examples of this being used (latest clilocs) are:
+
   "tngstrip.scp. Can be delivered either by a dedicated web server or the built-in
  "SYSMESSAGELOC -1,502771" - Displays "You cannot reach that."
+
  of sphere itself.
  "SYSMESSAGELOC 2,1042758,MrSugarCube" - Displays "You are now loyal to MrSugarCube." in blue
 
  "SYSMESSAGELOC -1,1062695,MrSugarCube,4,5" - Displays "MrSugarCube rolls the dice and gets a 4 and
 
  a 5!"
 
- Modified #1013: '@color,font,unicode' in messages is now '@color,font,mode'. You can specify 1 for mode if
 
   you wish to use unicode (like before), or specify 2 if you wish to use a localized message (useful for
 
  overriding messages in sphere_msgs.scp). The above localization examples used with this method would be:
 
  "SYSMESSAGE @,,2 502771"
 
  "SYSMESSAGE @2,,2 1042758,MrSugarCube"
 
  "SYSMESSAGE @,,2 1062695,MrSugarCube,4,5"
 
  
09-01-2007, Furio
+
15-02-2007, Babidi (Script pack)
- Added: MD5HASH returning the md5 hash of the argument.
+
- Modified: sphere_dialog.scp - line 217, the highest skill is now SKILL_SPELLWEAVING.
  
11-01-2007, MrSugarCube
+
16-02-2007, Nazghul
- Fixed: ATTACKER.x not working correctly.
+
- Added: TAG.OVERRIDE.AMMOANIMHUE for bow and crossboy-type weapons to locally
- Fixed: Possible exception with handling mail message packet.
+
  override the color of the effect what will be used for displaying the shot.
- Modified: Rewritten EF_Mapdiff_Support handling to perform much faster. This is done at the cost of some
 
  additional memory usage but it can now cope with populated worlds.
 
- Modified: Profiler now includes time spent loading map blocks.
 
  
11-01-2007, MrSugarCube (Script pack)
+
18-02-2007, MrSugarCube
- Updated: sphere_spells.scp (Corrected FLAGS property of paralyze field spell)
+
- Fixed #1069: Stable masters giving food to invisible characters.
  
12-01-2007, Shadow Dragon
+
20-02-2007, Nazghul
- Added: MulDiv script function. Usage "MulDiv number,multiplier,divider". Returns result.
+
- Added SPELLFLAG_NO_CASTANIM (0x80000) to suppress the usual cast anim.  
 +
  This way a custom (perhaps race-, class-, magery-, experience-related) anim
 +
  can be played @START/@SPELLCAST
  
12-01-2007, Vjaka
+
21-02-2007, MrSugarCube
- Greatly increased speed of loading large scripts (especially annoying on resync).
+
- Fixed #1071: Undefined Symbol error caused when a function returns a string.
- Fixed parsing script files when latest useful script line not ended by carriage return.
+
- Fixed #1075: The last line in script files being ignored.
 +
- Fixed #1076: ALLSHOW switching off too late upon login.
 +
- Added: Skill flag SKF_CRAFT. Skills with this flag set will function
 +
  correctly with the MAKEITEM command.
  
15-01-2007, MrSugarCube
+
21-02-2007, MrSugarCube (Script pack)
- Fixed #1027: SDIALOG claiming to be an undefined keyword when the specified dialog is already showing.
+
- Updated: sphere_defs.scp (Added SKF_CRAFT definition)
 +
- Updated: sphere_map_points0.scp and sphere_map_points1.scp
 +
  (Removed duplicate teleporters)
  
16-01-2007, Nazghul
+
22-02-2007, MrSugarCube
- Added: Character trigger @charAttack, @charClick, @charClienttooltip, @charDClick, which work like
+
- Fixed #1078: Exception when walking in the top left corner of maps.
  @itemXXX triggers, but for NPCs.
+
- Added #1079: ARGO in f_onchar_create, f_onchar_delete and f_onaccount_login
- Added: An item flag CAN_I_DCIGNORELOS and a character flag mt_nodclicklos. With these flags on, LOS checks
+
   is now the the client that is performing the action (note that at the time
   on a dclicked item won't be performed.
+
  these functions are called, there is no character attached to the client so
- Added: An item flag CAN_I_DCIGNOREDIST and a character flag mt_nodclickdist. With these flags on, distance
+
   character properties are not accessible).
   checks on a dclicked item won't be performed.
 
  
16-01-2007, MrSugarCube
+
22-02-2007, Nazghul
- Added #1029: @Cancel trigger to MENUs and SKILLMENUs.
+
- Added: Character trigger @statchange (argn1: the stat, argn2: new value).
- Modified: Items displayed on MENUs and SKILLMENUs can now be coloured. This can be done by prefixing the
 
  item description with "@color" (in the same way that sysmessages can be coloured). For example,
 
  "ON=i_sword_viking @2 This is a viking sword" will display a blue sword on the menu.
 
- Modified: Cancelling a PROMPTCONSOLE prompt no longer prevents the callback function from being called.
 
  
16-01-2007, SaCi (Script pack)
+
25-02-2007, Ellessar
- Updated: sphere_dialog.scp (Updated descriptions in [COMMENT DIALOG HELP_SECTION])
+
- Added: TAG.DEATHFLAGS which changes some death related behavior. The list of
 +
  flags is in sphere_defs.scp and their names are pretty self-explaining.
 +
- Fixed #1081: SERV.WRITELINE not adding a new line on Windows.
  
17-01-2007, MrSugarCube
+
25-02-2007, Ellessar (Script pack)
- Added: OPENPAPERDOLL character function. Without arguments it will display the current character's
+
- Updated: sphere_defs.scp (Added death_flags defname)
  paperdoll to SRC. With the UID of a character given it will display the specified character's paperdoll to
 
  the current client.
 
  
20-01-2007, Ellessar
+
25-02-2007, Nazghul
- Fixed: Problems with stairs which have odd height (1,3,5,...).
+
- Added: TAG.OVERRIDE.MAXWEIGHT and TAG.OVERRIDE.MAXITEMS now are applying
- Fixed #1037: Buffs needed FEATURE_AOS_UPDATE_B to work.
+
  to all containers if set. If not, maximum weight is still unlimited, while
 +
  max. item count is still default.
  
24-01-2007, MrSugarCube
+
26-02-2007, Ellessar
- Fixed: Tillerman speech on the 3D client not shown in the correct colour.
+
- Modified: Region trigger @Step will now work only with EF_New_Triggers
 +
  on and EF_Minimize_Triggers off.
  
25-01-2007, Ellessar
+
27-02-2007, Ellessar
- Fixed #1028: Problems with terrain height.
+
- Added: sphere.ini settings EventsPlayer, EventsRegion. These events are
- Rewritten the whole NPC_AI_PATH, now it should be faster, more reliable and less buggy.
+
  applied on all players/regions in the world.
 +
- Updated: sphere.ini
  
28-01-2007, Ellessar
+
01-03-2007, Furio
- Fixed: Pathfinding called on every NPC step.
+
- Added: LASTEVENT keyword on clients, returning the time of last packet
- Fixed #987: ResMake returning wrong values if the item doesn't exist in the world.
+
  receive (like serv.time).
- Fixed #1010: After casting a wall in a guard zone you were flagged as a criminal, also with the spellflag_harm
+
- Modified: OF_OSIDamageMod and OF_Archery_CanMove are now CombatFlags
  flag off.
+
  (look in sphere.ini)
 +
- Updated: sphere.ini
  
28-01-2007, MrSugarCube
+
01-03-2007, MrSugarCube
- Fixed: GAINRADIUS on skill definitions defaulting to random values.
+
- Fixed #1092: Dead characters not showing on the status page.
 +
- Fixed #1090: MOUNTHEIGHT checks preventing characters teleporting to valid
 +
  locations if they are stuck under a low ceiling.
 +
- Fixed #1085: MAXBASESKILL in sphere.ini applying to skills that players are
 +
  unable to see in their skill menu. An INITHIDDENSKILLS setting has been added
 +
  to sphere.ini so that this behaviour can be toggled.
 +
- Fixed #1084: Vendor's constantly restocking goods instantly after selling them.
 +
- Fixed: Players able to create characters with skill in undefined skills.
  
29-01-2007, Ellessar
+
01-03-2007, MrSugarCube (Script pack)
- Optimized: MapCaching (using STL functions), which should result in less bugs and better performance.
+
- Updated: sphere_skills.scp (Missing skill cap for Animal Lore in SKILLCLASS 0)
- Fixed: Using .tele over water tiles was allowed.
 
  
29-01-2007, Furio
+
02-03-2007, Ellessar
- Modified: Is now possible to always use ARGO.verb directly.
+
- Fixed #1093: serv.restock not working. Now it updates all vendor boxes and
- Added: In packetfilter functions ARGO is the CClient connected now (e.g. it allows SENDPACKET through
+
  world gem bits.
   ARGO.SENDPACKET syntax at any time)
+
- Fixed: NPCs sometimes not spawning with EF_NewPositionChecks on.
 +
- Modified: Trigger @CallGuards now have a reference "REF1", which refers to  
 +
  the target of the guard.
 +
- Modified: NPCs now won't 'talk and follow' you, if your distance from their
 +
   spawn bit is greater than their homedist.
  
31-01-2007, MrSugarCube
+
02-03-2007, Vjaka
- Fixed #771: Unicode characters being stripped from speech when keywords from Speech.mul are used.
+
- Fixed: red NPCs spawning in cities from spawns at the edges of the town.
- Added: Encryption keys for client 5.0.8.x to sphereCrypt.ini
+
- Modified: now clients which spawns too many exceptions are disconnected.
 +
- Added: GOLD property for character. It counts all gold coins on character
 +
  and return them. Or, if used with argument, sets a new amount of gold, adding
 +
  gold coins to reach the new sum. The most common usage would be similar to
 +
  GOLD += 5000 and so on.
 +
- Fixed: NPCs not being able to stumble upon hidden player character.
  
01-02-2007, MrSugarCube
+
05-03-2007, Furio
- Fixed #755: GetResourceValue error being shown for items with valid resources after being shown for the
+
- Fixed #1098: Explosion potion activate with decay timer also if not activated.
  first time.
 
- Modified: Changed the "GetResourceValue reentrant item=xxx" error to make more sense.
 
  
02-02-2007, MrSugarCube
+
06-03-2007, Ellessar
- Fixed #496: Musicianship skill triggering skill gain twice on success.
+
- Added: ATTACKER.LAST, which works like ATTACKER.MAX, but returns the char which
 +
  hit the victim for the last time.
  
03-02-2007, MrSugarCube
+
10-03-2007, Ellessar
- Fixed #510: Notoriety status on tooltips not shown correctly when moving around.
+
- Added: Experimental flag EF_AllowTelnetPacketFilter, which allows telnet
 +
  connections to fire a PACKETx function.
 +
- Updated: sphere.ini
  
05-02-2007, Ellessar
+
12-03-2007, MrSugarCube
- Added: Keyword GetRefType, which returns flag of the referenced type. The list of flags is in sphere_defs.scp.
+
- Fixed #1062: "RETURN x" not always halting script execution or even returning
- Updated: sphere_defs.scp - added ref_types defnames
+
  the correct value.
 +
- Fixed: Exceptions that are sometimes caused when attempting to use/take an item
 +
  that cannot be reached.
  
06-02-2007, Nazghul
+
13-03-2007, Nazghul
- fixed #1047: NPC AI_CAN_LOOT missed a "not" so only animals looted :).
+
- Added: keyword VISUALRANGE, parameter 1..18 to limit the visualrange of a client.  
   Domestic animals will no more poop dung if frozen, stone, insubstantial or in warmode
+
   After changing the visual range you should update the character in question once.
  
07-02-2007, Nazghul
+
13-03-2007, Ellessar
- Fixed #1049: t_fire, t_campfire, t_spell are no longer dispellable if they have attr_move_never
+
- Fixed #1106: PACKETx sometimes caused errors in console.
- Added: more defmessages (update sphere_msgs.scp!)
 
  
07-02-2007, Vjaka
+
16-03-2007, MrSugarCube
- Modified console output in linux build. By default it assumes that it is not colored,
+
- Fixed #1113: Exception caused when an online player character is deleted.
  launch with argument -c (./spheresvr -c) in order to get colored output. It screwed some consoles.
+
- Fixed: ATTACKER.LAST only working when the last attack was within the last second.
  
08-02-2007, Nazghul
+
17-03-2007, Beyonder (Script pack)
- Added: Skill flags SKF_NOANIM (don't show hardcoded anim for this skill) and SKF_NOSFX (don't play
+
- Updated: sphere_item_treasure_maps.scp (Updated to use 0.56b features)
  hardcoded sound for this skill). After setting this you can set anim/sfx yourself in @start
 
  or alike.
 
  
08-02-2007, Ellessar
+
17-03-2007, Ellessar
- Fixed #1050: Problems with underground caves.
+
- Added: Function SKILLTEST, which tests values of skills sent as arguments
 +
  on the default character. Usage: <skilltest carpentry 68.9>
 +
- Fixed: SKILLMAKE replacing types with item names.
  
09-02-2007, MrSugarCube
+
17-03-2007, Furio
- Fixed: ConnectUO Status requests sometimes reporting an encryption error.
+
- Fixed #1117: Unable to access subcontainers on the ground.
  
11-02-2007, Fisicka (Script pack)
+
17-03-2007, MrSugarCube
- Fixed #1051: Bug in sphere_map_points0.scp and sphere_map_points1.scp
+
- Fixed #1118: Ship functions being reported as invalid commands.
  
11-02-2007, MrSugarCube
+
18-03-2007, Ellessar
- Fixed #1037: ADDBUFF and REMOVEBUFF requiring FEATURE_AOS_UPDATE_B enabled to work.
+
- Added: ++/-- operators, which are in C languages.
- Fixed #1053: @color in [SKILL]MENUs displaying the wrong colour.
+
- Fixed: RESENERGY is saved only if RESPOISON doesn't equal 0.
 +
- Fixed: Possibility of double definition of events (sphere.ini + events +e...)
  
12-02-2007, MrSugarCube
+
24-03-2007, Furio
- Fixed #1058: Exception on linux build caused by items decaying without decay flag.
+
- Updated: sphereCrypt.ini with 5.0.9.0 keys.
 +
- Removed: MEMORY_GUMPRECORD to track open dialogs. It now uses an internal system.
 +
- Updated: sphere_defs.scp
 +
- Added: ISDIALOGOPEN $dialogId. It returns the number of the opened $dialogId
 +
  on the client.
 +
- Fixed #1127: Items of the hatch can't be moved.
 +
- Fixed #1129: GumpPicTiled don't work with dynamic origin.
  
13-02-2007, Nazghul
+
24-03-2007, ShiryuX (Script pack)
- Fixed #1059: Now NPC will be stuck with the lightsource they already have equipped.
+
- Updated: sphere_dialog.scp (Reference at top)
  
15-02-2007, Nazghul
+
24-03-2007, RanXerox (Script pack)
- Added: First version of support for TNG's webscript reader. Use console command
+
- Updated: sphere_map_points0_ml.scp (Updated teleports)
  "tngstrip" to create a file what contains the information TNG needs from all
 
  your scripts (thus completely useless for script thieves). The file will be
 
  placed at the location defined with "StripPath=" in sphere.ini and is named
 
  "tngstrip.scp. Can be delivered either by a dedicated web server or the built-in
 
  of sphere itself.
 
  
15-02-2007, Babidi (Script pack)
+
26-03-2007, Nazghul
- Modified: sphere_dialog.scp - line 217, the highest skill is now SKILL_SPELLWEAVING.
+
- Added: Teleport effect and sound config keywords for Sphere.ini.
 +
  Setting it to 0 disables the effect. Defaults are
 +
  TeleportEffectNPC=0372a
 +
  TeleportEffectPlayers=0372a
 +
  TeleportEffectStaff=03709
 +
  TeleportSoundNPC=01fe
 +
  TeleportSoundPlayers=01fe
 +
  TeleportSoundStaff=01f3
  
16-02-2007, Nazghul
+
27-03-2007, Vjaka
- Added: TAG.OVERRIDE.AMMOANIMHUE for bow and crossboy-type weapons to locally
+
- Fixed: Allowed to cast spells without reagents.
  override the color of the effect what will be used for displaying the shot.
 
  
18-02-2007, MrSugarCube
+
29-03-2007, MrSugarCube
- Fixed #1069: Stable masters giving food to invisible characters.
+
- Fixed #1122: Exception when fighting with -100 dexterity.
 +
- Fixed #1137: Containers closing when targeting them with .x/set.
  
20-02-2007, Nazghul
+
04-03-2007, MrSugarCube
- Added SPELLFLAG_NO_CASTANIM (0x80000) to suppress the usual cast anim.  
+
- Fixed #1126: Creatures with neutral karma not spawning in guard zones.
  This way a custom (perhaps race-, class-, magery-, experience-related) anim
 
  can be played @START/@SPELLCAST
 
  
21-02-2007, MrSugarCube
+
04-03-2007, Furio
- Fixed #1071: Undefined Symbol error caused when a function returns a string.
+
- Added: PARTY.ISSAMEPARTYOF $uid, checking if the current party is the
- Fixed #1075: The last line in script files being ignored.
+
   same of the char with $uid.
- Fixed #1076: ALLSHOW switching off too late upon login.
 
- Added: Skill flag SKF_CRAFT. Skills with this flag set will function
 
   correctly with the MAKEITEM command.
 
  
21-02-2007, MrSugarCube (Script pack)
+
06-04-2007, Nazghul
- Updated: sphere_defs.scp (Added SKF_CRAFT definition)
+
- Added: More defmessages
- Updated: sphere_map_points0.scp and sphere_map_points1.scp  
+
- Updated: sphere_msgs.scp
  (Removed duplicate teleporters)
 
  
22-02-2007, MrSugarCube
+
14-04-2007, Sir Dwayne (Script pack)
- Fixed #1078: Exception when walking in the top left corner of maps.
+
- Fixed: Various flaws in npc scripts and sphere_item_unsorted.
- Added #1079: ARGO in f_onchar_create, f_onchar_delete and f_onaccount_login
 
  is now the the client that is performing the action (note that at the time
 
  these functions are called, there is no character attached to the client so
 
  character properties are not accessible).
 
  
22-02-2007, Nazghul
+
21-04-2007, coruja747 (Script pack)
- Added: Character trigger @statchange (argn1: the stat, argn2: new value).
+
- Updated: sphere_map2.scp (Corrected a_shrine_virtues area definition)
  
25-02-2007, Ellessar
+
27-04-2007, Ellessar
- Added: TAG.DEATHFLAGS which changes some death related behavior. The list of  
+
- Added: Character trigger @TradeAccepted (+@charTradeAccepted), which is called
   flags is in sphere_defs.scp and their names are pretty self-explaining.
+
  after both trade sides tick Accept Trade button. Default, ARGO - the first
- Fixed #1081: SERV.WRITELINE not adding a new line on Windows.
+
  trader, SRC - the second one, ARGN1 - the number of items the first trader gets,
 +
   ARGN2 - the number of items the second trader gets, REF1...REF<argn1> -  
 +
  references to items the first trader gets. Return 1 prevents the trade.
 +
- Fixed: CTAGs deleted before calling @LogOut
  
25-02-2007, Ellessar (Script pack)
+
30-04-2007, MrSugarCube
- Updated: sphere_defs.scp (Added death_flags defname)
+
- Modified #1162: A comma ',' can be used under the NOTOTITLES section to
 +
  optionally specify seperate titles for female characters.
 +
- Modified: EF_MapDiff_Support has been removed, and map diffs are now enabled
 +
  via the USEMAPDIFFS setting in sphere.ini.
  
25-02-2007, Nazghul
+
02-05-2007, MrSugarCube
- Added: TAG.OVERRIDE.MAXWEIGHT and TAG.OVERRIDE.MAXITEMS now are applying
+
- Fixed: Exception when using ACCOUNT.CHAR.x.KEY when the index 'x' does not exist.
  to all containers if set. If not, maximum weight is still unlimited, while
 
  max. item count is still default.
 
  
26-02-2007, Ellessar
+
03-05-2007, MrSugarCube
- Modified: Region trigger @Step will now work only with EF_New_Triggers
+
- Fixed: Server IPs on the server list being sent incorrectly to older clients.
  on and EF_Minimize_Triggers off.
 
  
27-02-2007, Ellessar
+
05-05-2007, MrSugarCube
- Added: sphere.ini settings EventsPlayer, EventsRegion. These events are
+
- Added: Experimental flag EF_UsePingServer. This will enable a server for
   applied on all players/regions in the world.
+
   receiving pings from clients viewing the server list. Uses UDP port 12000.
- Updated: sphere.ini
 
  
01-03-2007, Furio
+
06-05-2007, Ellessar
- Added: LASTEVENT keyword on clients, returning the time of last packet
+
- Added: Missing character trigger @SpellFail (called before @Fail in a
  receive (like serv.time).
+
   SPELL section)
- Modified: OF_OSIDamageMod and OF_Archery_CanMove are now CombatFlags
 
   (look in sphere.ini)
 
- Updated: sphere.ini
 
  
01-03-2007, MrSugarCube
+
06-05-2007, MrSugarCube
- Fixed #1092: Dead characters not showing on the status page.
+
- Fixed #1169: Exception caused by the count parameter being negative in the
- Fixed #1090: MOUNTHEIGHT checks preventing characters teleporting to valid
+
   STRSUB function.
  locations if they are stuck under a low ceiling.
 
- Fixed #1085: MAXBASESKILL in sphere.ini applying to skills that players are
 
  unable to see in their skill menu. An INITHIDDENSKILLS setting has been added
 
   to sphere.ini so that this behaviour can be toggled.
 
- Fixed #1084: Vendor's constantly restocking goods instantly after selling them.
 
- Fixed: Players able to create characters with skill in undefined skills.
 
  
01-03-2007, MrSugarCube (Script pack)
+
08-05-2007, Ellessar
- Updated: sphere_skills.scp (Missing skill cap for Animal Lore in SKILLCLASS 0)
+
- Fixed: POW (@) does not work when using inside 'floatval'.
  
02-03-2007, Ellessar
+
10-05-2007, MrSugarCube
- Fixed #1093: serv.restock not working. Now it updates all vendor boxes and
+
- Fixed #1176: RANGE property on items returning 0 when the minimum range is 0,
   world gem bits.
+
   when in this case it should return the maximum range.
- Fixed: NPCs sometimes not spawning with EF_NewPositionChecks on.
+
- Fixed #1178: Automatic loading of backup saves not unloading all of the data
- Modified: Trigger @CallGuards now have a reference "REF1", which refers to
+
  from the previous save.
  the target of the guard.
 
- Modified: NPCs now won't 'talk and follow' you, if your distance from their
 
  spawn bit is greater than their homedist.
 
  
02-03-2007, Vjaka
+
17-05-2007, Sir Dwayne (Script pack)
- Fixed: red NPCs spawning in cities from spawns at the edges of the town.
+
- Updated: sphere_item_building_fence.scp, sphere_item_building_stairs.scp,
- Modified: now clients which spawns too many exceptions are disconnected.
+
   sphere_item_building_walls.scp (Reordering of some fences, stairs and walls)
- Added: GOLD property for character. It counts all gold coins on character
 
   and return them. Or, if used with argument, sets a new amount of gold, adding
 
  gold coins to reach the new sum. The most common usage would be similar to
 
  GOLD += 5000 and so on.
 
- Fixed: NPCs not being able to stumble upon hidden player character.
 
  
05-03-2007, Furio
+
17-05-2007, MrSugarCube
- Fixed #1098: Explosion potion activate with decay timer also if not activated.
+
- Fixed: SPELLFLAG_NOUNPARALYZE doing the opposite of its description.
 +
- Fixed #1181: Casting field spells on players not giving criminal status even
 +
  when SPELLFLAG_HARM is set.
 +
- Fixed #1182: Crash when opening the .edit menu on a player with too many
 +
  equipped items.
  
06-03-2007, Ellessar
+
17-05-2007, Furio
- Added: ATTACKER.LAST, which works like ATTACKER.MAX, but returns the char which
+
- Added: DSPEECH prop to players. Its purpose is to intercept player speech
   hit the victim for the last time.
+
  like SpeechSelf, but it allows multiple speech block (DSPEECH +spk_lol add spk_lol,
 +
  DSPEECH -spk_lol removes it). Return 1 on the speech block interrupt execution and
 +
   prevent the player from speaking, Return 4 blocks the execution while allowing the
 +
  player to speech.
 +
- Added: ISDSPEECH prop to players. Its purpose is to chech if a speech block is in
 +
  DSPEECH in a similar way of ISEVENT.
  
10-03-2007, Ellessar
+
18-05-2007, MrSugarCube
- Added: Experimental flag EF_AllowTelnetPacketFilter, which allows telnet
+
- Modified #1155: The COMPONENT property of multi definitions can now be given
   connections to fire a PACKETx function.
+
   the ID of any scripted item.
- Updated: sphere.ini
+
 
 +
20-05-2007, Furio
 +
- Fixed: Trade windows not bouncing correctly some of the items.
  
12-03-2007, MrSugarCube
+
20-05-2007, MrSugarCube
- Fixed #1062: "RETURN x" not always halting script execution or even returning
+
- Fixed: Sphere running slowly, due to new threading not ticking as much as
  the correct value.
+
   old threading.
- Fixed: Exceptions that are sometimes caused when attempting to use/take an item
 
   that cannot be reached.
 
  
13-03-2007, Nazghul
+
22-05-2007, ShadowDragon
- Added: keyword VISUALRANGE, parameter 1..18 to limit the visualrange of a client.
+
- Added: Support for Int and Color options to CHARDEF.
  After changing the visual range you should update the character in question once.
 
  
13-03-2007, Ellessar
+
22-05-2007, Camelotten (Script pack)
- Fixed #1106: PACKETx sometimes caused errors in console.
+
- Fixed: jobvet.scp - an excessive '<' in "<SRC.SEX <Mi'Lord/Mi'Lady>".
  
16-03-2007, MrSugarCube
+
26-05-2007, MrSugarCube
- Fixed #1113: Exception caused when an online player character is deleted.
+
- Fixed #1194: Polymorph becoming a permanent effect during worldsaves.
- Fixed: ATTACKER.LAST only working when the last attack was within the last second.
+
 
 +
27-05-2007, Nazghul
 +
- Added: MODAR on weapons should modify the DAM effect of a weapon
  
17-03-2007, Beyonder (Script pack)
+
28-05-2007, Furio
- Updated: sphere_item_treasure_maps.scp (Updated to use 0.56b features)
+
- Fixed #1201: DB.EXECUTE executing commands also when not connected.
  
17-03-2007, Ellessar
+
29-05-2007, MrSugarCube
- Added: Function SKILLTEST, which tests values of skills sent as arguments
+
- Fixed #1203: Multis not being visible from a distance.
  on the default character. Usage: <skilltest carpentry 68.9>
 
- Fixed: SKILLMAKE replacing types with item names.
 
  
17-03-2007, Furio
+
31-05-2007, Nazghul
- Fixed #1117: Unable to access subcontainers on the ground.
+
- Fixed #1206: using character function ".gold" with negative numbers crashed
 +
  the server.
  
17-03-2007, MrSugarCube
+
02-06-2007, Furio
- Fixed #1118: Ship functions being reported as invalid commands.
+
- Fixed #1208: If modstat is negative and > ostat, all skills affected by
 +
  that stat become 65535.
 +
- Fixed #1186: Starvation incorrectly damages affected player's equipment
  
18-03-2007, Ellessar
+
02-06-2007, Almost all the dev team
- Added: ++/-- operators, which are in C languages.
+
- Fixed #1188: Incorrect save output.
- Fixed: RESENERGY is saved only if RESPOISON doesn't equal 0.
+
- Fixed #1191: Sphere closing when using crafting skills (related to #1188).
- Fixed: Possibility of double definition of events (sphere.ini + events +e...)
 
  
24-03-2007, Furio
+
02-06-2007, MrSugarCube
- Updated: sphereCrypt.ini with 5.0.9.0 keys.
+
- Fixed: Unable to gain musicianship past 30%.
- Removed: MEMORY_GUMPRECORD to track open dialogs. It now uses an internal system.
 
- Updated: sphere_defs.scp
 
- Added: ISDIALOGOPEN $dialogId. It returns the number of the opened $dialogId
 
  on the client.
 
- Fixed #1127: Items of the hatch can't be moved.
 
- Fixed #1129: GumpPicTiled don't work with dynamic origin.
 
  
24-03-2007, ShiryuX (Script pack)
+
06-06-2007, Furio (Script Pack)
- Updated: sphere_dialog.scp (Reference at top)
+
- Fixed #1213: "admin" in console (sphere_admin.scp)
  
24-03-2007, RanXerox (Script pack)
+
08-06-2007, MrSugarCube
- Updated: sphere_map_points0_ml.scp (Updated teleports)
+
- Fixed #1211: FORCONTID and FORCONTTYPE not working.
 +
- Fixed #1212: Reactive Armor causing a server crash when damaging self.
  
26-03-2007, Nazghul
+
11-06-2007, MrSugarCube
- Added: Teleport effect and sound config keywords for Sphere.ini.
+
- Fixed: Vendor menus on clients later than 4.0.0 not showing correctly for
   Setting it to 0 disables the effect. Defaults are
+
   renamed items when ACCOUNT.RESDISP is not correctly set to AOS+.
  TeleportEffectNPC=0372a
 
  TeleportEffectPlayers=0372a
 
  TeleportEffectStaff=03709
 
  TeleportSoundNPC=01fe
 
  TeleportSoundPlayers=01fe
 
  TeleportSoundStaff=01f3
 
  
27-03-2007, Vjaka
+
14-06-2007, Fire-Dragon-DoL
- Fixed: Allowed to cast spells without reagents.
+
- Fixed #1220: typos in sphere_guild_functions.scp
  
29-03-2007, MrSugarCube
+
26-06-2007, Nazghul
- Fixed #1122: Exception when fighting with -100 dexterity.
+
- Added: Character trigger @SkillChange. Fires whenever the skill raises due
- Fixed #1137: Containers closing when targeting them with .x/set.
+
  to a gain. ARGN1 is the skill number (e.g. 43 for wrestling), ARGN2 is the
 +
  skill value AFTER the change happens. RETURN 1 (or 2, or 666) means that the
 +
  skill will NOT change.
  
04-03-2007, MrSugarCube
+
29-06-2007, Torfo
- Fixed #1126: Creatures with neutral karma not spawning in guard zones.
+
- Added: ADDMD5. If md5 is enabled in the sphere.ini you can use ADDMD5 to
 +
  bypass the hashing algorithm, if MD5 isn't enabled it's the same as ADD.
 +
  Usage: "ACCOUNT ADDMD5 name hash"
  
04-03-2007, Furio
+
06-07-2007, Nazghul
- Added: PARTY.ISSAMEPARTYOF $uid, checking if the current party is the
+
- Fixed: RETURN 1 in region triggers @exit, @enter did not tell the client that
   same of the char with $uid.
+
  the movement was stopped what led to some weird rubberband effects.
 +
  (thx. to MrSugarCube for help)
 +
- Added: Character triggers @RegionEnter, @RegionLeave. ARGO is the region in
 +
   question, RETURN 1 works like in region triggers @exit, @enter.
  
06-04-2007, Nazghul
+
12-07-2007, Nazghul
- Added: More defmessages
+
- Fixed: #1222 MAGICF_IGNOREAR rendered armor useless even on non magic damage
- Updated: sphere_msgs.scp
+
- some cleanups regarding NPC accepting/rejecting items
 +
- Added: Hungry NPC try to pick ripe crops if available
 +
- Added: ACTP character property (like ACTDIFF, ACTARG etc.) to work with for
 +
  example ACTION 102
 +
- Added: Poisoned Food (MOREz = poison strength [0..100]) will poison whoever
 +
  eats it; NPC might refuse eating poisoned food depending on their TasteID skill
  
14-04-2007, Sir Dwayne (Script pack)
+
15-07-2007, Ellessar
- Fixed: Various flaws in npc scripts and sphere_item_unsorted.
+
- Modified: Now you can get AREADEF regions from inside a multi with the help
 +
  of an additional "region" keyword (e.g. region.region.name).
  
21-04-2007, coruja747 (Script pack)
+
17-07-2007, MrSugarCube
- Updated: sphere_map2.scp (Corrected a_shrine_virtues area definition)
+
- Fixed: Multis from newer expansions not loading correctly.
  
27-04-2007, Ellessar
+
17-07-2007, Admin BladeCraft (Script pack)
- Added: Character trigger @TradeAccepted (+@charTradeAccepted), which is called
+
- Updated #1236: sphere_item_magic_weapon.scp, sphere_template.scp,
  after both trade sides tick Accept Trade button. Default, ARGO - the first
+
   sphere_backward_compatibility.scp (Changed misspelled defname
   trader, SRC - the second one, ARGN1 - the number of items the first trader gets,
+
   i_axe_war_VANQUISIHNG to i_axe_war_VANQ)
  ARGN2 - the number of items the second trader gets, REF1...REF<argn1> -
+
- Updated #1237: sphere_defs.scp (Fixed broken random templates)
   references to items the first trader gets. Return 1 prevents the trade.
 
- Fixed: CTAGs deleted before calling @LogOut
 
  
30-04-2007, MrSugarCube
+
18-07-2007, Nazghul
- Modified #1162: A comma ',' can be used under the NOTOTITLES section to
+
- Changed Ping Attack detection so that it only issues a warning if the "attack"
   optionally specify seperate titles for female characters.
+
   comes from LocalAddress and/or 127.0.0.1
- Modified: EF_MapDiff_Support has been removed, and map diffs are now enabled
 
  via the USEMAPDIFFS setting in sphere.ini.
 
  
02-05-2007, MrSugarCube
+
19-07-2007, MrSugarCube
- Fixed: Exception when using ACCOUNT.CHAR.x.KEY when the index 'x' does not exist.
+
- Added: Support for packet changes in client 6.0.1.7. With clients running
 +
  on slower connections there may still be issues as Sphere cannot identify
 +
  the 4th digit of the client version until after the client has logged in.
 +
  If you want to override all 6.0.1.* clients to use the 6.0.1.7 packet
 +
  changes (and thus correct the issue with slower connections, but at the
 +
  same time remove support for 6.0.1.0-6 clients), find the following line
 +
  in sphereCrypt.ini:
 +
    0600010 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.10
 +
  and change it to:
 +
    0600018 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.18
 +
- Added: FIXWEIGHT function for characters, which acts the same as FIXWEIGHT
 +
  does on containers (recalculates the total weight of the items in their
 +
  possession).
  
03-05-2007, MrSugarCube
+
29-07-2007, Nazghul
- Fixed: Server IPs on the server list being sent incorrectly to older clients.
+
- Just a fix in writing: Item tag.override_SKILL can also be written as
 +
  tag.override.skill (as the other OVERRIDE tags)
  
05-05-2007, MrSugarCube
+
04-08-2007, Ellessar
- Added: Experimental flag EF_UsePingServer. This will enable a server for
+
- Fixed #1239: Lumberjacking caused Sphere to crash, when failed.
   receiving pings from clients viewing the server list. Uses UDP port 12000.
+
- Fixed: ISNEARTYPETOP did not work as intented (also changes some hardcoded
 +
  gathering related behavior.)
 +
- Modified #1238: Sphere now tells you that you do not use SERV.MAP correctly
 +
   and does not throw an exception.
 +
- Fixed #1197: RANGE property was not inherited through ID property.
  
06-05-2007, Ellessar
+
09-08-2007, MrSugarCube
- Added: Missing character trigger @SpellFail (called before @Fail in a  
+
- Fixed #1153: House placement checking a larger area than the multi region
   SPELL section)
+
   specifies.
 +
- Fixed: Guards being attacked and calling new guards instead of fighting
 +
  back properly.
 +
- Fixed: Incorrect client version detection for client 6.0.1.10.
  
06-05-2007, MrSugarCube
+
10-08-2007, MrSugarCube
- Fixed #1169: Exception caused by the count parameter being negative in the  
+
- Fixed #753: Crafting skills no longer consume items that match the one
   STRSUB function.
+
  you're attempting to create (unless the resources property specifically
 +
  states that the item can be crafted from itself).
 +
- Fixed #1138: Scripts could be loaded multiple times if the file extension
 +
   was not provided.
  
08-05-2007, Ellessar
+
10-08-2007, MrSugarCube
- Fixed: POW (@) does not work when using inside 'floatval'.
+
- Added: Support for AOS Custom Housing through a new item type 't_multi_custom'.
 
+
> See the sphere_item_multis_foundations.scp and add-on/House_Placement
10-05-2007, MrSugarCube
+
  scripts for examples of it's use.
- Fixed #1176: RANGE property on items returning 0 when the minimum range is 0,
+
> Custom houses (t_multi_custom) will be saved to a new save file named
  when in this case it should return the maximum range.
+
  spheremultis.scp.
- Fixed #1178: Automatic loading of backup saves not unloading all of the data
+
> Note that Sphere will require access to doors.txt, misc.txt, floors.txt,
  from the previous save.
+
  teleprts.txt, roof.txt, and  walls.txt from the UO folder as these provide
 
+
  lists of valid items. Also, all these items should exist in scripts for them
17-05-2007, Sir Dwayne (Script pack)
+
  to be added to a building - note that the default script pack is currently
- Updated: sphere_item_building_fence.scp, sphere_item_building_stairs.scp,
+
  missing several sets of floors and walls.
  sphere_item_building_walls.scp (Reordering of some fences, stairs and walls)
+
> New functions and properties have been added that can be used with items of
 
+
  the type t_multi_custom. These are:
17-05-2007, MrSugarCube
+
  -- References --
- Fixed: SPELLFLAG_NOUNPARALYZE doing the opposite of its description.
+
    "DESIGNER"            The player currently designing the building.
- Fixed #1181: Casting field spells on players not giving criminal status even
+
  -- Properties --
  when SPELLFLAG_HARM is set.
+
    "COMPONENTS"  (r)   The number of components in the building design.
- Fixed #1182: Crash when opening the .edit menu on a player with too many
+
    "FIXTURES"    (r)    The number of fixtures in the building design (doors
  equipped items.
+
                          and teleporters/t_door and t_telepad).
 
+
    "DESIGN.x.KEY" (r)    Accesses component x in the building design and
17-05-2007, Furio
+
                          returns the given property. Possible properties are:
- Added: DSPEECH prop to players. Its purpose is to intercept player speech
+
                            ID: The ID of the component.
  like SpeechSelf, but it allows multiple speech block (DSPEECH +spk_lol add spk_lol,
+
                            DX: The x offset of the component.
  DSPEECH -spk_lol removes it). Return 1 on the speech block interrupt execution and  
+
                            DY: The y offset of the component.
  prevent the player from speaking, Return 4 blocks the execution while allowing the  
+
                            DZ: The z offset of the component.
  player to speech.
+
                            D: The x,y,z offset of the component.
- Added: ISDSPEECH prop to players. Its purpose is to chech if a speech block is in
+
                            FIXTURE:  Returns 1 if the component is a fixture.
  DSPEECH in a similar way of ISEVENT.
+
    "DESIGNER"    (r)    The uid of the player designing the building (or 0).
 +
    "EDITAREA"    (r)    The editable range of coordinates when in design
 +
                          mode (TopLeftX,TopLeftY,BottomRightX,BottomRightY).
 +
    "REVISION"    (r)    The revision number of the building design.
 +
  -- Functions --
 +
    "ADDITEM id,x,y,z"    Adds an item to the building design (see COMMIT).
 +
    "ADDMULTI id,x,y,z"  Adds a multi to the building design (see COMMIT).
 +
    "CLEAR"              Wipes the building of all components (see COMMIT).
 +
    "COMMIT"              Commits changes made to the building design.
 +
    "CUSTOMIZE [uid]"    Enters the given player (or SRC) into design mode.
 +
    "ENDCUSTOMIZE"        Forces the player to exit design mode.
 +
    "REMOVEITEM id,x,y,z" Removes an item from the building design (see
 +
                          COMMIT). If the given id is 0 then any items found
 +
                          at the location will be removed.
 +
    "RESET"              Resets the building to it's default state (see
 +
                          COMMIT).
 +
    "RESYNC [uid]"        Resends the building structure to the given player
 +
                          (or SRC)
 +
> Players also have some new house design-related properties and triggers.
 +
  These are:
 +
  -- References --
 +
    "HOUSEDESIGN"        The building this player is currently designing.
 +
  -- Properties --
 +
    "HOUSEDESIGN"(r)      The uid of the building this player is designing (or
 +
                          0).
 +
  -- Triggers --
 +
    @HouseDesignCommit    Called on a character when they commit a new design.
 +
                            ARGN1:    Number of components in the old design.
 +
                            ARGN2:    Number of components in the new design.
 +
                            ARGN3:    The revision number of the new design.
 +
                            ARGO:     The building being designed.
 +
                            LOCAL.FIXTURES.OLD:    Number of fixtures in the
 +
                                                  old design.
 +
                            LOCAL.FIXTURES.NEW:    Number of fixtures in the
 +
                                                  new design.
 +
                            RETURN 1: Block the commit.
 +
    @HouseDesignExit      Called on a character when they exit design mode.
 +
                            ARGN1:    Is set to 1 if the character being forced
 +
                                      out of house design mode (ie. they're
 +
                                      logging out).
 +
                            ARGO:    The building being designed.
 +
                            RETURN 1: Keeps the client in design mode (if ARGN1
 +
                                      was 0).
  
18-05-2007, MrSugarCube
+
10-08-2007, MrSugarCube (Script pack)
- Modified #1155: The COMPONENT property of multi definitions can now be given
+
- Updated: sphere_defs.scp (Updated type defnames)
  the ID of any scripted item.
+
- Updated: sphere_item_building_walls.scp (Split i_wall_stone_4's DUPELIST into
 
+
  different defnames for different wall heights)
20-05-2007, Furio
+
- Updated: sphere_item_ground_tiles.scp (Added a few missing water tiles and split the
- Fixed: Trade windows not bouncing correctly some of the items.
+
  waterfall DUPELIST into different defnames for different waterfall heights)
 +
- Updated: sphere_item_profession_alchemist_mage.scp (Set the types of i_rune_alchem_*
 +
  items to t_telepad)
 +
- Added: sphere_item_multis_foundations.scp (Added foundation multi definitions)
 +
- Added: sphere_item_multis_stairs.scp (Added stair multi definitions)
 +
- Added: sphere_item_building_roofs_aos.scp (Added AOS roof definitions)
 +
- Added: sphere_item_building_roofs_ml.scp (Added ML roof definitions)
 +
- Added: sphere_item_building_stairs_ml.scp (Added ML stair definitions)
 +
- Added: add-on/House_Placement.zip (Added a sample script that allows custom houses
 +
  to be design by players)
  
20-05-2007, MrSugarCube
+
14-08-2007, Nazghul
- Fixed: Sphere running slowly, due to new threading not ticking as much as
+
- Modified: sphere_defs.scp, added DEATHFLAG_HASCORPSE (010) to deathflags. If set on
   old threading.
+
   a character like water elemental it will leave a corpse. Caveat: If DEATHFLAG_NOCORPSE
 +
  and DEATHFLAG_HASCORPSE are set, the NOCORPSE takes precedence!
  
22-05-2007, ShadowDragon
+
17-08-2007, Nazghul
- Added: Support for Int and Color options to CHARDEF.
+
- Added: Item CAN flag CAN_I_BLOCKLOS (see sphere_defs.scp). Works only if
 +
  INI option AdvancedLOS is != 0.
  
22-05-2007, Camelotten (Script pack)
+
18-08-2007, Nazghul
- Fixed: jobvet.scp - an excessive '<' in "<SRC.SEX <Mi'Lord/Mi'Lady>".
+
- Added: Spellflags TARG_NO_PLAYER and TARG_NO_NPC
 +
- Updated: sphere_msgs.scp and sphere_defs.scp
  
26-05-2007, MrSugarCube
+
19-08-2007, MrSugarCube
- Fixed #1194: Polymorph becoming a permanent effect during worldsaves.
+
- Fixed #1242: TAT_AS_ARGO Triggers not working with hexadecimal uids.
 +
- Fixed #1243: MODAR on weapons not showing the correct minimum damage on the
 +
  status window and tooltips.
 +
- Fixed #1244: TAGAT.x.KEY and TAGAT.x.VAL returning the opposite properties.
  
27-05-2007, Nazghul
+
21-08-2007, MrSugarCube
- Added: MODAR on weapons should modify the DAM effect of a weapon
+
- Fixed #1246: Exception caused by using EQUIPWEAPON function on a character
 +
  with no backpack.
 +
- Fixed #1247: NPCs not moving closer to their targets when they're using a
 +
  bow with a shorter range than the ini's archery range settings.
  
28-05-2007, Furio
+
25-08-2007, Beyonder (Script pack)
- Fixed #1201: DB.EXECUTE executing commands also when not connected.
+
- Fixed #815: sphere_item_resources.scp (i_blood_2 not decaying: Changed the
 +
  definition so that i_blood_2 now has a weight)
  
29-05-2007, MrSugarCube
+
30-08-2007, MrSugarCube
- Fixed #1203: Multis not being visible from a distance.
+
- Fixed #1248: Incorrect container weight shown on tooltips.
  
31-05-2007, Nazghul
+
04-09-2007, coruja747 (Script pack)
- Fixed #1206: using character function ".gold" with negative numbers crashed
+
- Updated #1251: sphere_map_points2.scp (Missing teleports in Wisp Dungeon)
  the server.
 
  
02-06-2007, Furio
+
05-09-2007, Furio
- Fixed #1208: If modstat is negative and > ostat, all skills affected by
+
- Fixed #1254: Console error when guild member delete char.
  that stat become 65535.
+
- Fixed: Login relay problems from localhost.
- Fixed #1186: Starvation incorrectly damages affected player's equipment
+
- Added #1260: "Setup_Start acct" with IP on the same LOG line.
 +
- Added #1261: Incognito names in kill logs.
 +
- Added: CLEARCTAGS (working like cleartags for ctags).
  
02-06-2007, Almost all the dev team
+
06-09-2007, MrSugarCube
- Fixed #1188: Incorrect save output.
+
- Fixed: "GetMapBlock failed at x" errors when logging in or placing a multi
- Fixed #1191: Sphere closing when using crafting skills (related to #1188).
+
  over the edge of the map.
  
02-06-2007, MrSugarCube
+
07-09-2007, Ellessar
- Fixed: Unable to gain musicianship past 30%.
+
- Fixed #1252: FloatVal not behaving correctly with negative numbers.
 +
- Updated: sphere_msgs.scp (added login_lastlogged key)
  
06-06-2007, Furio (Script Pack)
+
08-09-2007, MrSugarCube
- Fixed #1213: "admin" in console (sphere_admin.scp)
+
- Fixed: Character creation allowed whilst another character is still idling
 +
  in the world.
  
08-06-2007, MrSugarCube
+
11-09-2007, MrSugarCube
- Fixed #1211: FORCONTID and FORCONTTYPE not working.
+
- Fixed #1256: Ship plank exit allowing players to pass over blocked paths,
- Fixed #1212: Reactive Armor causing a server crash when damaging self.
+
  such as walls or fences.
 +
- Modified: Added more "Bad Login x" codes along with expanded descriptions
 +
  to assist in identifying login issues.
  
11-06-2007, MrSugarCube
+
16-09-2007, coruja747 (Script pack)
- Fixed: Vendor menus on clients later than 4.0.0 not showing correctly for
+
- Fixed #1258: ctags will be cleared when leaving admin menu
  renamed items when ACCOUNT.RESDISP is not correctly set to AOS+.
 
  
14-06-2007, Fire-Dragon-DoL
+
16-09-2007, nazghul
- Fixed #1220: typos in sphere_guild_functions.scp
+
- Fixed #1257: Custom damage type didn´t work with COMBAT_USE_RESISTANCE
  
26-06-2007, Nazghul
+
22-09-2007, nazghul
- Added: Character trigger @SkillChange. Fires whenever the skill raises due
+
- Added: TAG.OVERRIDE.RANGE on items and/or characters overriding the RANGE
  to a gain. ARGN1 is the skill number (e.g. 43 for wrestling), ARGN2 is the  
+
   property of the itemdef/chardef.
   skill value AFTER the change happens. RETURN 1 (or 2, or 666) means that the
 
  skill will NOT change.
 
  
29-06-2007, Torfo
+
30-09-2007, nazghul
- Added: ADDMD5. If md5 is enabled in the sphere.ini you can use ADDMD5 to
+
- Fixed: not-working tag override of SkillPracticeMax what may have caused
   bypass the hashing algorithm, if MD5 isn't enabled it's the same as ADD.
+
  problems with Linux builds. Now TAG.OVERRIDE.PRACTICEMAX.SKILL_#
   Usage: "ACCOUNT ADDMD5 name hash"
+
   (with "#" == "40" for swordsmanship, "42" for fencing, etc.) on a training
 +
  dummy can override the INI default upto what skill value one can practice
 +
   with it.
  
06-07-2007, Nazghul
+
02-10-2007, coruja747 (Script pack)
- Fixed: RETURN 1 in region triggers @exit, @enter did not tell the client that
+
- Updated #1224: sphere_admin.scp (Added char updates when modifying flags)
  the movement was stopped what led to some weird rubberband effects.
+
 
  (thx. to MrSugarCube for help)
+
03-10-2007, MrSugarCube
- Added: Character triggers @RegionEnter, @RegionLeave. ARGO is the region in
+
- Fixed #1269: Fixed house design commit issues on alternate maps.
  question, RETURN 1 works like in region triggers @exit, @enter.
+
- Fixed #1270: Fixed ISEVENT not working on regions.
  
12-07-2007, Nazghul
+
04-10-2007, MrSugarCube
- Fixed: #1222 MAGICF_IGNOREAR rendered armor useless even on non magic damage
+
- Fixed: House components being affected by OF_OSIMultiSight.
- some cleanups regarding NPC accepting/rejecting items
+
- Fixed: DESIGN.x.KEY not working on custom housing.
- Added: Hungry NPC try to pick ripe crops if available
 
- Added: ACTP character property (like ACTDIFF, ACTARG etc.) to work with for
 
  example ACTION 102
 
- Added: Poisoned Food (MOREz = poison strength [0..100]) will poison whoever
 
  eats it; NPC might refuse eating poisoned food depending on their TasteID skill
 
  
15-07-2007, Ellessar
+
06-10-2007, Fire-Dragon-Dol (Script pack)
- Modified: Now you can get AREADEF regions from inside a multi with the help
+
- Updated #1274: sphere_map2.scp (Removed reference to non-existant resource)
  of an additional "region" keyword (e.g. region.region.name).
 
  
17-07-2007, MrSugarCube
+
15-10-2007, MrSugarCube
- Fixed: Multis from newer expansions not loading correctly.
+
- Added #1283: FEATURE_ML_NINTHAGE feature flag in sphere.ini. Setting this
 +
  enables the crystal and shadow components in custom houses.
 +
- Fixed #1281: Unable to disembark ships on west-facing planks.
 +
- Fixed #1278: Unable to craft crafting tools.
  
17-07-2007, Admin BladeCraft (Script pack)
+
17-10-2007, Nazghul
- Updated #1236: sphere_item_magic_weapon.scp, sphere_template.scp,
+
- Changed: Behaviour of TAG.OVERRIDE.RANGE. Now the largest TAG value (on weapon
  sphere_backward_compatibility.scp (Changed misspelled defname
+
   and/or char) takes precedence over the other.
   i_axe_war_VANQUISIHNG to i_axe_war_VANQ)
 
- Updated #1237: sphere_defs.scp (Fixed broken random templates)
 
  
18-07-2007, Nazghul
+
18-10-2007, Nazghul
- Changed Ping Attack detection so that it only issues a warning if the "attack"
+
- Added: TAG.OVERRIDE.TRAINSKILLMAX and TAG.OVERRIDE.TRAINSKILLMAXPERCENT
   comes from LocalAddress and/or 127.0.0.1
+
   overriding the respective defaults from Sphere.INI based on an individual
 +
  trainer (NPC).
  
19-07-2007, MrSugarCube
+
19-10-2007, MrSugarCube
- Added: Support for packet changes in client 6.0.1.7. With clients running
+
- Fixed #1293: Checkbox positions in dialogs not working with dorigin.
  on slower connections there may still be issues as Sphere cannot identify
+
- Fixed #1292: House designer not working with RESDISP less than 3, a minimum
   the 4th digit of the client version until after the client has logged in.
+
   client version of 4.0.0 is still required though.
  If you want to override all 6.0.1.* clients to use the 6.0.1.7 packet
+
- Fixed #511: Character spawn tooltip modified to avoid bad token ID messages
  changes (and thus correct the issue with slower connections, but at the
+
   with characters using random names (#NAMES_xxx).
  same time remove support for 6.0.1.0-6 clients), find the following line
+
- Fixed: Quest and Guild buttons on the paperdoll not working with RESDISP less
  in sphereCrypt.ini:
+
   than 3.
    0600010 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.10
 
   and change it to:
 
    0600018 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.18
 
- Added: FIXWEIGHT function for characters, which acts the same as FIXWEIGHT
 
  does on containers (recalculates the total weight of the items in their
 
   possession).
 
  
29-07-2007, Nazghul
+
20-10-2007, MrSugarCube
- Just a fix in writing: Item tag.override_SKILL can also be written as
+
- Fixed #1295: Radio positions in dialogs not working with dorigin.
   tag.override.skill (as the other OVERRIDE tags)
+
- Modified: MAXCHARSPERACCOUNT limit has been raised to 7. Note that the client
 +
  must support extra character slot(s) for them to be visible at the character
 +
   selection menu, older clients can only display 5 or 6.
 +
- Added: MAXCHARS property to accounts. Setting it to 0 will link it to
 +
  MAXCHARSPERACCOUNT in the ini (default behaviour).
  
04-08-2007, Ellessar
+
21-10-2007, MrSugarCube
- Fixed #1239: Lumberjacking caused Sphere to crash, when failed.
+
- Fixed #1297: No resources lost when failing to craft.
- Fixed: ISNEARTYPETOP did not work as intented (also changes some hardcoded
 
  gathering related behavior.)
 
- Modified #1238: Sphere now tells you that you do not use SERV.MAP correctly
 
  and does not throw an exception.
 
- Fixed #1197: RANGE property was not inherited through ID property.
 
  
09-08-2007, MrSugarCube
+
26-10-2007, MrSugarCube
- Fixed #1153: House placement checking a larger area than the multi region
+
- Fixed #1304: Being able to light kindling whilst it is being dragged.
   specifies.
+
- Fixed #1300: Polymorphing whilst incognito'ed not updating the character's
- Fixed: Guards being attacked and calling new guards instead of fighting
+
   name correctly with creatures using random names (#NAMES_xxx).
  back properly.
+
- Fixed: Various means of removing game board pieces from their game boards.
- Fixed: Incorrect client version detection for client 6.0.1.10.
+
- Modified #1303: ISTEVENT now works on items, exactly the same as it does with
 +
  characters.
  
10-08-2007, MrSugarCube
+
30-10-2007, MrSugarCube
- Fixed #753: Crafting skills no longer consume items that match the one
+
- Fixed #1306: NPCs accepting every item given to them.
  you're attempting to create (unless the resources property specifically
+
- Fixed #1298: Infinite loop caused by combat between two characters with the
  states that the item can be crafted from itself).
+
  statf_reactive flag set and the reflected damage being greater than the
- Fixed #1138: Scripts could be loaded multiple times if the file extension
+
   original damage.
   was not provided.
 
  
10-08-2007, MrSugarCube
+
30-10-2007, Furio
- Added: Support for AOS Custom Housing through a new item type 't_multi_custom'.
+
- Fixed #1307: MySQL client running out of memory.
> See the sphere_item_multis_foundations.scp and add-on/House_Placement
+
 
  scripts for examples of it's use.
+
24-11-2007, Furio
> Custom houses (t_multi_custom) will be saved to a new save file named
+
- Fixed #1294: Error with the third parameter of "spelleffect". Now the third
  spheremultis.scp.
+
  parameter refer to the current source if is -1.
> Note that Sphere will require access to doors.txt, misc.txt, floors.txt,
+
- Fixed #1318: Owned NPC's names and NPC's vendors commands.
  teleprts.txt, roof.txt, and  walls.txt from the UO folder as these provide
+
- Fixed #1330: Problems with client and accounts with 16 characters.
  lists of valid items. Also, all these items should exist in scripts for them
+
- Fixed #1345: Clear Party TAG's.
  to be added to a building - note that the default script pack is currently
+
- Added: Support for login protocol in 6.0.5.0+ clients.
  missing several sets of floors and walls.
+
- Added #1329: Max dist to park boats (see sphere.ini MaxShipPlankTeleport).
> New functions and properties have been added that can be used with items of
+
- Added #1296: "trigger" function returning the values returned by @CustomTrigger.
  the type t_multi_custom. These are:
+
 
  -- References --
+
25-11-2007, MrSugarCube
    "DESIGNER"            The player currently designing the building.
+
- Fixed #1284: Multi regions being overlapped by area regions when map files are
  -- Properties --
+
  resynced.
    "COMPONENTS"  (r)    The number of components in the building design.
+
- Fixed: Mount items are now adjusted using the RES* settings on the ride
    "FIXTURES"    (r)    The number of fixtures in the building design (doors
+
  itself, to display themselves appropriately to lower RESDISP clients.
                          and teleporters/t_door and t_telepad).
+
 
    "DESIGN.x.KEY" (r)   Accesses component x in the building design and
+
25-11-2007, Elric (Script pack)
                          returns the given property. Possible properties are:
+
- Updated: sphere_item_aos_se.scp (Removed duplicate item definitions)
                            ID: The ID of the component.
+
- Updated: sphere_item_building_walls_se.scp (Removed duplicate item
                            DX: The x offset of the component.
+
  definitions)
                            DY: The y offset of the component.
+
- Updated: sphere_item_misc_se.scp (Removed duplicate item definitions)
                            DZ: The z offset of the component.
+
- Updated: sphere_item_ml_floor_wall.scp (Removed duplicate item definition)
                            D:  The x,y,z offset of the component.
+
- Updated: sphere_item_provisions_armor_ml.scp (Corrected Vulture Helm item
                            FIXTURE: Returns 1 if the component is a fixture.
+
  definition)
    "DESIGNER"    (r)    The uid of the player designing the building (or 0).
+
- Updated: sphere_item_unsorted.scp (Removed duplicate item definitions)
    "EDITAREA"    (r)    The editable range of coordinates when in design
+
 
                          mode (TopLeftX,TopLeftY,BottomRightX,BottomRightY).
+
27-11-2007, MrSugarCube
    "REVISION"    (r)    The revision number of the building design.
+
- Fixed #1323: Criminal status for attacking dead players.
  -- Functions --
+
- Fixed #1250: Exception with region triggers.
    "ADDITEM id,x,y,z"    Adds an item to the building design (see COMMIT).
+
- Fixed #1017: Magery skill being used for all spells. Now the first skill listed
    "ADDMULTI id,x,y,z"  Adds a multi to the building design (see COMMIT).
+
  in the spell's SKILLREQ line will be the action used when casting. Note that
    "CLEAR"              Wipes the building of all components (see COMMIT).
+
  unexpected things will happen if you've set this to be a non-magic skill (for
    "COMMIT"              Commits changes made to the building design.
+
  example, Begging), so make sure the SKF_MAGIC flag is set on such skills.
    "CUSTOMIZE [uid]"    Enters the given player (or SRC) into design mode.
+
 
    "ENDCUSTOMIZE"        Forces the player to exit design mode.
+
14-12-2007, coruja747 (Script pack)
    "REMOVEITEM id,x,y,z" Removes an item from the building design (see
+
- Updated: sphere_item_building_walls_se.scp (Missing item 02753)
                          COMMIT). If the given id is 0 then any items found
+
- Updated: sphere_item_deco_evilitem.scp (Incorrect dupeitem on itemdef 02a59)
                          at the location will be removed.
+
- Updated: sphere_item_christimas.scp (Incorrect RESDISPx settings on i_Sleigh)
    "RESET"              Resets the building to it's default state (see
+
- Updated: sphere_map_points2.scp (Inaccessible teleports on Exodus Dungeon)
                          COMMIT).
 
    "RESYNC [uid]"        Resends the building structure to the given player
 
                          (or SRC)
 
> Players also have some new house design-related properties and triggers.
 
  These are:
 
  -- References --
 
    "HOUSEDESIGN"        The building this player is currently designing.
 
  -- Properties --
 
    "HOUSEDESIGN"(r)     The uid of the building this player is designing (or
 
                          0).
 
  -- Triggers --
 
    @HouseDesignCommit    Called on a character when they commit a new design.
 
                            ARGN1:   Number of components in the old design.
 
                            ARGN2:   Number of components in the new design.
 
                            ARGN3:    The revision number of the new design.
 
                            ARGO:     The building being designed.
 
                            LOCAL.FIXTURES.OLD:    Number of fixtures in the
 
                                                  old design.
 
                            LOCAL.FIXTURES.NEW:    Number of fixtures in the
 
                                                  new design.
 
                            RETURN 1: Block the commit.
 
    @HouseDesignExit      Called on a character when they exit design mode.
 
                            ARGN1:    Is set to 1 if the character being forced
 
                                      out of house design mode (ie. they're
 
                                      logging out).
 
                            ARGO:     The building being designed.
 
                            RETURN 1: Keeps the client in design mode (if ARGN1
 
                                      was 0).
 
  
10-08-2007, MrSugarCube (Script pack)
+
21-12-2007, MrSugarCube
- Updated: sphere_defs.scp (Updated type defnames)
+
- Modified: Ships now move 2 spaces at a time instead of 1. This reduces a lot
- Updated: sphere_item_building_walls.scp (Split i_wall_stone_4's DUPELIST into
+
  of lag caused by ship movement and also fixes overhead messages disappearing
   different defnames for different wall heights)
+
  whilst the ship is in motion.
- Updated: sphere_item_ground_tiles.scp (Added a few missing water tiles and split the
+
- Added: SHIPSPEED property to ship ITEMDEFs. This controls how often and how far
   waterfall DUPELIST into different defnames for different waterfall heights)
+
   the ship will move. SHIPSPEED.PERIOD and SHIPSPEED.TILES can be used to return
- Updated: sphere_item_profession_alchemist_mage.scp (Set the types of i_rune_alchem_*
+
  the separate values. Usage:
   items to t_telepad)
+
    "SHIPSPEED=5,3"    Ship will move 3 tiles every half a second.
- Added: sphere_item_multis_foundations.scp (Added foundation multi definitions)
+
    "SHIPSPEED=1,5"    Ship will move 5 tiles every tenth of a second.
- Added: sphere_item_multis_stairs.scp (Added stair multi definitions)
+
    "SHIPSPEED=20,2"    Ship will move 2 tiles every 2 seconds.
- Added: sphere_item_building_roofs_aos.scp (Added AOS roof definitions)
+
   Note 1: If there is less space available than specified by SHIPSPEED.TILES,
- Added: sphere_item_building_roofs_ml.scp (Added ML roof definitions)
+
  the ship will still move as far as possible before stopping (so if a ship is
- Added: sphere_item_building_stairs_ml.scp (Added ML stair definitions)
+
   set to move 10 tiles and is heading towards a coast that is 16 tiles away, the
- Added: add-on/House_Placement.zip (Added a sample script that allows custom houses
+
  ship will move 10 tiles, then 6 tiles, and then stop.
   to be design by players)
+
  Note 2: TAG.OVERRIDE.SHIPSPEED.PERIOD and TAG.OVERRIDE.SHIPSPEED.TILES can also
 +
   be set on the ships themselves to override their speed on an individual basis.
  
14-08-2007, Nazghul
+
22-12-2007, Nazghul
- Modified: sphere_defs.scp, added DEATHFLAG_HASCORPSE (010) to deathflags. If set on
+
- Added: Triggers @NPCAction and @NPCSpecialAction
   a character like water elemental it will leave a corpse. Caveat: If DEATHFLAG_NOCORPSE
+
  @NPCSpecialAction
   and DEATHFLAG_HASCORPSE are set, the NOCORPSE takes precedence!
+
  If the NPC has a lot of spare time (i.e., nothing else to do) it
 +
  looks for some special action. For example, giant spiders lay webs,
 +
  and fire elems leave fire patches. This trigger fires on ANY type
 +
  of creature. If you return 1, it will not do it's special action,
 +
   on return 0 it will (what, as said above, will only be true with
 +
   giant spiders and fire elems; you can script other NPC special
 +
  events yourself).
  
17-08-2007, Nazghul
+
  @NPCAction
- Added: Item CAN flag CAN_I_BLOCKLOS (see sphere_defs.scp). Works only if
+
  AI-related trigger. If the situation is so the NPC will do something
   INI option AdvancedLOS is != 0.
+
  due to it's AI - things like animals pooping the ground, vendors
 +
  going off/on duty, (un)equipping a lightsource when it's dark,  
 +
  (un)equipping a weapon when fighting, stabler feeding animals or
 +
  giving players food for their animals etc. - (once hardcoded behaviour
 +
  was planned also for beggars who should sleep at night, for thieves,
 +
  undead mages, healers, and more, but never realized. Now you can script
 +
  this yourself) this trigger will be fired. On RETURN 0
 +
   the NPC will continue with what it wants to do, RETURN 1 will abort it.
  
18-08-2007, Nazghul
+
  Both triggers will fire only if EF_NPCAct_Triggers is SET and  
- Added: Spellflags TARG_NO_PLAYER and TARG_NO_NPC
+
  EF_Minimize_Triggers is NOT SET in the sphere.INI. SO if you don't
- Updated: sphere_msgs.scp and sphere_defs.scp
+
  change your INI, everything will stay as it was before.
  
19-08-2007, MrSugarCube
+
22-12-2007, MrSugarCube
- Fixed #1242: TAT_AS_ARGO Triggers not working with hexadecimal uids.
+
- Fixed #1341: Arguments not being parsed correctly for commands entered
- Fixed #1243: MODAR on weapons not showing the correct minimum damage on the
+
  on the console.
   status window and tooltips.
+
- Fixed #1331: Script verbs not being parsed correctly when there is a
- Fixed #1244: TAGAT.x.KEY and TAGAT.x.VAL returning the opposite properties.
+
   space in them (ie. TAG.xxx_<EVAL yyy> = zzz).
  
21-08-2007, MrSugarCube
+
04-01-2008, Nazghul
- Fixed #1246: Exception caused by using EQUIPWEAPON function on a character
+
- Added: Triggers @Mount and @Dismount, both are character trigger, firing
   with no backpack.
+
when a character tries to mount/dismout it's ride (and will be able to).
- Fixed #1247: NPCs not moving closer to their targets when they're using a
+
   @DISMOUNT
  bow with a shorter range than the ini's archery range settings.
+
    ARGO is the UID of the (still disconnected!) pet.
 +
    RETURN 1 stops the dismount process.
 +
  @MOUNT
 +
    ARGO is the UID of the NPC bound to be ridden.
 +
    RETURN 1 stops the mounting process.
  
25-08-2007, Beyonder (Script pack)
+
19-01-2008, MrSugarCube
- Fixed #815: sphere_item_resources.scp (i_blood_2 not decaying: Changed the
+
- Fixed #1351: Gaining tactics when fighting players in no-pvp regions.
   definition so that i_blood_2 now has a weight)
+
- Fixed #1337: Foundations of custom housing deletable by players.
 +
- Fixed #1132: Maps other than #0 not showing up when logging in.
 +
- Added #1003: ACTPRV property to characters. This is used in some skills,
 +
  for example with magery to hold the source of the spell (character, wand,
 +
   scroll, etc).
 +
- Fixed: CALL not working with object references. (eg. "CALL src.myfunction")
 +
- Fixed: ++/-- in scripts being parsed as +=1 when not being used as operators.
  
30-08-2007, MrSugarCube
+
19-01-2008, MrSugarCube (Script pack)
- Fixed #1248: Incorrect container weight shown on tooltips.
+
- Updated #1360: sphere_admin.scp (Fixed blank client list when using .admin twice)
 +
- Updated: sphere_backward_compatibility.scp (Added NpcCast function, which can be
 +
  used to make a character start casting a spell)
  
04-09-2007, coruja747 (Script pack)
+
19-01-2008, Furio
- Updated #1251: sphere_map_points2.scp (Missing teleports in Wisp Dungeon)
+
- Fixed #1324: Undefined Symbols on attacker when accessing a bad attacker #
 
+
- Fixed: isneartype not searching through all statics.
05-09-2007, Furio
+
- Updated: sphere.ini with missing values.
- Fixed #1254: Console error when guild member delete char.
+
- Added #1358: now serv.newitem has a 4th argument if set to 1 trigger @Equip will
- Fixed: Login relay problems from localhost.
+
  be called upon item equipping.
- Added #1260: "Setup_Start acct" with IP on the same LOG line.
+
- Added: SERV.MAPLIST.$mapid.$prop to cycle through maps to get props. The list of
- Added #1261: Incognito names in kill logs.
+
  properties that can be accessed (read only) are:
- Added: CLEARCTAGS (working like cleartags for ctags).
+
  BOUND.X = maximum x for the map
 +
BOUND.Y = maximum y for the map
 +
CENTER.X = x coord of map center
 +
  CENTER.Y = y coord of map center
 +
SECTOR.SIZE = size of sectors
 +
SECTOR.ROWS = qty of sector rows for the map
 +
  SECTOR.COLS = qty of sector columns for the map
 +
  SECTOR.QTY = total number of sectors for the map
 +
- Added: FeatureKR and Kr reslevel (6). Guess what they do (it's a wip).
 +
- Added: EF_UseNetworkMulti (00800000) to experimental flags. Tired of crashing due
 +
  too many items/npcs, try it. Don't change it while the server is running.
 +
  (Thx to Z. for the windows version)
  
06-09-2007, MrSugarCube
+
21-01-2008, MrSugarCube
- Fixed: "GetMapBlock failed at x" errors when logging in or placing a multi
+
- Fixed #1311: NPC Pathfinding failing when EF_DiagonalWalkCheck is enabled.
   over the edge of the map.
+
- Added #738: Combat flag COMBAT_STAYINRANGE. Causes out-of-range attacks to fail
 +
   at the end of the swing instead of waiting until the target is in range.
 +
- Added: WEATHER property to sectors, sets or gets the current weather.
  
07-09-2007, Ellessar
+
22-01-2008, MrSugarCube (Script pack)
- Fixed #1252: FloatVal not behaving correctly with negative numbers.
+
- Updated #1107: sphere_genericstone_functions.scp (added function to control or
- Updated: sphere_msgs.scp (added login_lastlogged key)
+
  override ally status between guilds (f_stonesys_internal_isalliedwith), see
 +
  comments for details)
  
08-09-2007, MrSugarCube
+
24-01-2008, MrSugarCube
- Fixed: Character creation allowed whilst another character is still idling
+
- Fixed #1363: Players unable to pick up single items from heavy stacks.
  in the world.
 
  
11-09-2007, MrSugarCube
+
31-01-2008, Nazghul
- Fixed #1256: Ship plank exit allowing players to pass over blocked paths,
+
- Fixed #989: Fame-titles will not be shown on NPC anymore if INI option NPCNoFameTitle
  such as walls or fences.
+
   is set.
- Modified: Added more "Bad Login x" codes along with expanded descriptions
 
   to assist in identifying login issues.
 
  
16-09-2007, coruja747 (Script pack)
+
31-01-2008, MrSugarCube
- Fixed #1258: ctags will be cleared when leaving admin menu
+
- Fixed #1372: EF_NewPositionChecks causing fishing to fail from boats when
 +
  AdvancedLos is disabled.
 +
- Fixed: ADVANCEDLOS_PLAYER enabling AdvancedLos for all characters including
 +
  NPCs (ADVANCEDLOS_NPC being ignored).
  
16-09-2007, nazghul
+
02-02-2008, Furio
- Fixed #1257: Custom damage type didn´t work with COMBAT_USE_RESISTANCE
+
- Added DIALOGLIST keyword. DIALOGLIST.COUNT gives the number of open gump dialogs,
 +
  DIALOGLIST.$x.ID ($x = a number between 0 and DIALOGLIST.COUNT-1) the ID of the
 +
  respective gump dialog, and DIALOGLIST.$x.COUNT the number of active instances of
 +
  this dialog. So to close a specified gump, DIALOGCLOSE <DIALOGLIST.$n.ID> should do.
 +
- Added KRTOOLBARSTATUS (prop/verb) and @UserKRToolbar (ARGN1 type, ARGN2 arg) to
 +
  interact with the hotbar in the KR client.
  
22-09-2007, nazghul
+
03-02-2008, Shadow Dragon
- Added: TAG.OVERRIDE.RANGE on items and/or characters overriding the RANGE
+
- added @KarmaChange, @FameChange. Called when Karma/Fame adjusting.
   property of the itemdef/chardef.
+
  ARGN1 = Karma/Fame modifier, it's writable.
 +
  return 0 will use Argn1 value in adjusting.
 +
  return 1 will break adjusting.
 +
  return 2 will ignore Argn1 and continue default adjusting.
 +
   Both triggers work only when EF_Minimize_Triggers isn't set.
  
30-09-2007, nazghul
+
07-02-2008, MrSugarCube
- Fixed: not-working tag override of SkillPracticeMax what may have caused
+
- Fixed #718: Ships unable to travel over static water tiles.
  problems with Linux builds. Now TAG.OVERRIDE.PRACTICEMAX.SKILL_#
+
- Fixed #1378: Armour rating being factored in twice during damage calculations.
  (with "#" == "40" for swordsmanship, "42" for fencing, etc.) on a training
 
  dummy can override the INI default upto what skill value one can practice
 
  with it.
 
  
02-10-2007, coruja747 (Script pack)
+
11-02-2008, MrSugarCube
- Updated #1224: sphere_admin.scp (Added char updates when modifying flags)
+
- Fixed #1406: Newly created characters not starting with the MALE_DEFAULT / FEMALE_DEFAULT
 +
  newbie templates.
 +
- Fixed: Exception caused by using ARGO.Verb when argo is not set.
 +
- Modified: "Vendor uid=xxx selling unmovable item" message no longer shown when
 +
  listing the items that a player can sell to a vendor.
  
03-10-2007, MrSugarCube
+
27-04-2008, MrSugarCube
- Fixed #1269: Fixed house design commit issues on alternate maps.
+
- Fixed #1404: Restoring custom house design without first making a backup allowing players
- Fixed #1270: Fixed ISEVENT not working on regions.
+
  to remove the entire house foundation.
 +
- Fixed #1398: Lightning spells causing @EnvironChange to be called on nearby characters.
 +
- Fixed #1381: Maps with non-matching courses plotted can be stacked.
 +
- Modified #1389: Character list to show filled character slots that are over the account's
 +
  limit (eg. account containing 7 characters shows all 7 even when the limit is 5 ,assuming
 +
  the client is capable of displaying all 7).
  
04-10-2007, MrSugarCube
+
27-04-2008, coruja747 (Script pack)
- Fixed: House components being affected by OF_OSIMultiSight.
+
- Updated #1402: sphere_item_building_walls_se.scp (Fixed empty dupelist property)
- Fixed: DESIGN.x.KEY not working on custom housing.
 
  
06-10-2007, Fire-Dragon-Dol (Script pack)
+
27-04-2008, Mordaunt (Script pack)
- Updated #1274: sphere_map2.scp (Removed reference to non-existant resource)
+
- Updated: sphere_item_multis_foundations.scp (Added the remaining house foundation sizes)
  
15-10-2007, MrSugarCube
+
28-04-2008, MrSugarCube
- Added #1283: FEATURE_ML_NINTHAGE feature flag in sphere.ini. Setting this
+
- Fixed #1394: Advanced pathfinding (NPC_AI_PATH) allowing NPCs to make invalid movements
   enables the crystal and shadow components in custom houses.
+
  (for example walking whilst paralyzed). Some other adjustments have also been made,
- Fixed #1281: Unable to disembark ships on west-facing planks.
+
   allowing NPCs to properly assess characters that may be blocking the way (to walk around
- Fixed #1278: Unable to craft crafting tools.
+
  them), negotiate corners with EF_DiagonalWalkCheck enabled, and attempt to compensate
 +
  when new obstacles block a previously valid path.
 +
- Fixed #1390: Locals not working in SKILLMENUs.
  
17-10-2007, Nazghul
+
28-04-2008, coruja747 (Script pack)
- Changed: Behaviour of TAG.OVERRIDE.RANGE. Now the largest TAG value (on weapon
+
- Updated #1392: spherechar_new_mounts.scp, spherechar_mondains_legacy.scp (Updated
   and/or char) takes precedence over the other.
+
   RESDISPDNHUE property on rides)
  
18-10-2007, Nazghul
+
02-05-2008, MrSugarCube
- Added: TAG.OVERRIDE.TRAINSKILLMAX and TAG.OVERRIDE.TRAINSKILLMAXPERCENT
+
- Fixed #1348: Problem where <SERV.ResourceType.Id> returns 1 when the id is a different
  overriding the respective defaults from Sphere.INI based on an individual
+
  resource type (e.g. <SERV.TEMPLATE.i_dagger> (dagger being an item not a template)).
  trainer (NPC).
 
  
19-10-2007, MrSugarCube
+
15-05-2008, Shadow Dragon
- Fixed #1293: Checkbox positions in dialogs not working with dorigin.
+
- Added LAYER_AUCTION that can contain container on character for script purposes, like
- Fixed #1292: House designer not working with RESDISP less than 3, a minimum
+
   auction system.
  client version of 4.0.0 is still required though.
 
- Fixed #511: Character spawn tooltip modified to avoid bad token ID messages
 
  with characters using random names (#NAMES_xxx).
 
- Fixed: Quest and Guild buttons on the paperdoll not working with RESDISP less
 
   than 3.
 
  
20-10-2007, MrSugarCube
+
19-05-2008, Shadow Dragon
- Fixed #1295: Radio positions in dialogs not working with dorigin.
+
- Modified: GOLD property adds new gold stacks to bankbox.
- Modified: MAXCHARSPERACCOUNT limit has been raised to 7. Note that the client
 
  must support extra character slot(s) for them to be visible at the character
 
  selection menu, older clients can only display 5 or 6.
 
- Added: MAXCHARS property to accounts. Setting it to 0 will link it to
 
  MAXCHARSPERACCOUNT in the ini (default behaviour).
 
  
21-10-2007, MrSugarCube
+
21-05-2008, Nazghul
- Fixed #1297: No resources lost when failing to craft.
+
- Added: Combat flags to Sphere.ini to allow stacking armor and aimed hits. Example of usage
 +
  is in scripts/AddOns.
 +
  Aimed hits are controlled by tags on the "hitter": TAG.HITPREFERENCE holds the targetted
 +
  zone: 1=head, 2=neck/throat, 3=back, 4=chest, 5=arms, 6=hands, 7=legs, 8=feet (if the value
 +
  is out of this range it will be changed by %9; "0" means: no preference set);
 +
  TAG.HITPREFERENCE_CHANCE (0..1000) is the chance to really hit the desired area;
 +
  TAG.HITPREFERENCE.BONUS is the percent the damage is raised when hit where desired,
 +
  TAG.HITPREFERENCE.PENALTY is the percent the damage is lowered if the area was missed.
 +
  The last two values are defaulting to "30".
 +
  The system is perhaps useful to script a system where a player can look for weak armored
 +
  bodyparts of his opponent and try to hit him there; could be essential if armor stacking
 +
  is used.
  
26-10-2007, MrSugarCube
+
23-05-2008, MrSugarCube
- Fixed #1304: Being able to light kindling whilst it is being dragged.
+
- Fixed #1418: Tracking being used to reveal the location of invisible staff members.
- Fixed #1300: Polymorphing whilst incognito'ed not updating the character's
+
- Fixed #1417: Unable to access account properties using [SERV.]ACCOUNT.x.KEY where account
   name correctly with creatures using random names (#NAMES_xxx).
+
   x begins with a number.
- Fixed: Various means of removing game board pieces from their game boards.
+
- Fixed: Characters "drifting to shore" when logging in on a ship.
- Modified #1303: ISTEVENT now works on items, exactly the same as it does with
+
- Fixed: Variety of exceptions caused when items are being set to type t_eq_memory_obj after
   characters.
+
  after creation.
 +
- Modified: RESTOCK function on vendors now accepts a parameter to specify whether or not
 +
  new stock should be spawned immediately (0=empty existing stock (default), 1=empty stock
 +
   and spawn next set).
  
30-10-2007, MrSugarCube
+
26-05-2008, MrSugarCube
- Fixed #1306: NPCs accepting every item given to them.
+
- Fixed: Code not being skipped properly when incorrect loop syntax is used.
- Fixed #1298: Infinite loop caused by combat between two characters with the
+
- Modified: @UserVirtue trigger now has 2 arguments:
  statf_reactive flag set and the reflected damage being greater than the
+
  ARGO  = The character whose virtue button has been pressed
  original damage.
+
  ARGN1 = The button ID pressed (1=virtue button (on paperdoll), 105-112=icons within the
 +
          menu)
 +
          Note: Clients only specify the character they're viewing (ARGO) when pressing the
 +
          paperdoll button (ARGN1=1)
 +
- Added: @UserVirtueInvoke trigger, called when a virtue is invoked through client macros.
 +
  ARGN1 = The virtue ID (1=Honor, 2=Sacrifice, 3=Valor)
  
30-10-2007, Furio
+
27-05-2008, MrSugarCube
- Fixed #1307: MySQL client running out of memory.
+
- Modified: ARGN2 in @SkillChange trigger is now writeable.
  
24-11-2007, Furio
+
27-05-2008, MrSugarCube (Script pack)
- Fixed #1294: Error with the third parameter of "spelleffect". Now the third
+
- Updated: sphere_msgs.scp (Added 2 more "tracking_*" defmessages)
  parameter refer to the current source if is -1.
 
- Fixed #1318: Owned NPC's names and NPC's vendors commands.
 
- Fixed #1330: Problems with client and accounts with 16 characters.
 
- Fixed #1345: Clear Party TAG's.
 
- Added: Support for login protocol in 6.0.5.0+ clients.
 
- Added #1329: Max dist to park boats (see sphere.ini MaxShipPlankTeleport).
 
- Added #1296: "trigger" function returning the values returned by @CustomTrigger.
 
  
25-11-2007, MrSugarCube
+
25-06-2008, MrSugarCube
- Fixed #1284: Multi regions being overlapped by area regions when map files are
+
- Modified: Installing Sphere as a Windows service (using "-k install" with NTService=1) will
   resynced.
+
   now configure the service with an automatic restart configuration.
- Fixed: Mount items are now adjusted using the RES* settings on the ride
 
  itself, to display themselves appropriately to lower RESDISP clients.
 
  
25-11-2007, Elric (Script pack)
+
02-07-2008, MrSugarCube
- Updated: sphere_item_aos_se.scp (Removed duplicate item definitions)
+
- Fixed #1439: NPC_AI_MOVEOBSTACLES allowing NPCs to move items whilst paralyzed.
- Updated: sphere_item_building_walls_se.scp (Removed duplicate item
+
- Added #850: @SpellSuccess trigger, fires on the caster just before the @Success trigger is
   definitions)
+
   fired on spell blocks.
- Updated: sphere_item_misc_se.scp (Removed duplicate item definitions)
 
- Updated: sphere_item_ml_floor_wall.scp (Removed duplicate item definition)
 
- Updated: sphere_item_provisions_armor_ml.scp (Corrected Vulture Helm item
 
  definition)
 
- Updated: sphere_item_unsorted.scp (Removed duplicate item definitions)
 
  
27-11-2007, MrSugarCube
+
04-07-2008, MrSugarCube
- Fixed #1323: Criminal status for attacking dead players.
+
- Fixed #1177: Client command parsing using brackets as argument separators.
- Fixed #1250: Exception with region triggers.
+
- Fixed #1097: Possible infinite loop involving circular ownership (e.g. two characters set as
- Fixed #1017: Magery skill being used for all spells. Now the first skill listed
+
   owners of each other).
  in the spell's SKILLREQ line will be the action used when casting. Note that
+
 
  unexpected things will happen if you've set this to be a non-magic skill (for
+
04-07-2008, MrSugarCube (Script pack)
   example, Begging), so make sure the SKF_MAGIC flag is set on such skills.
+
- Updated #1443: sphere_guild_dlg_charlist.scp, sphere_guild_promptconsole.scp,
 
+
  sphere_town_dlg_charlist.scp, sphere_town_promptconsole.scp (Fixed guild and town stones
14-12-2007, coruja747 (Script pack)
+
  using TITLE property instead of GUILDTITLE)
- Updated: sphere_item_building_walls_se.scp (Missing item 02753)
 
- Updated: sphere_item_deco_evilitem.scp (Incorrect dupeitem on itemdef 02a59)
 
- Updated: sphere_item_christimas.scp (Incorrect RESDISPx settings on i_Sleigh)
 
- Updated: sphere_map_points2.scp (Inaccessible teleports on Exodus Dungeon)
 
  
21-12-2007, MrSugarCube
+
04-07-2008, Nazghul
- Modified: Ships now move 2 spaces at a time instead of 1. This reduces a lot
+
- Added: skilltitles "Elder" and "Legendary"
  of lag caused by ship movement and also fixes overhead messages disappearing
 
  whilst the ship is in motion.
 
- Added: SHIPSPEED property to ship ITEMDEFs. This controls how often and how far
 
  the ship will move. SHIPSPEED.PERIOD and SHIPSPEED.TILES can be used to return
 
  the separate values. Usage:
 
    "SHIPSPEED=5,3"     Ship will move 3 tiles every half a second.
 
    "SHIPSPEED=1,5"     Ship will move 5 tiles every tenth of a second.
 
    "SHIPSPEED=20,2"    Ship will move 2 tiles every 2 seconds.
 
  Note 1: If there is less space available than specified by SHIPSPEED.TILES,
 
  the ship will still move as far as possible before stopping (so if a ship is
 
  set to move 10 tiles and is heading towards a coast that is 16 tiles away, the
 
  ship will move 10 tiles, then 6 tiles, and then stop.
 
  Note 2: TAG.OVERRIDE.SHIPSPEED.PERIOD and TAG.OVERRIDE.SHIPSPEED.TILES can also
 
  be set on the ships themselves to override their speed on an individual basis.
 
  
22-12-2007, Nazghul
+
05-07-2008, MrSugarCube (Script pack)
- Added: Triggers @NPCAction and @NPCSpecialAction
+
- Updated #1130: sphere_msgs.scp (Removed tracking_dis* defmessages and replaced them with
  @NPCSpecialAction
+
   simpler tracking_result* defmessages)
  If the NPC has a lot of spare time (i.e., nothing else to do) it
 
  looks for some special action. For example, giant spiders lay webs,
 
  and fire elems leave fire patches. This trigger fires on ANY type
 
  of creature. If you return 1, it will not do it's special action,
 
  on return 0 it will (what, as said above, will only be true with
 
   giant spiders and fire elems; you can script other NPC special
 
  events yourself).
 
  
  @NPCAction
+
06-07-2008, Nazghul
  AI-related trigger. If the situation is so the NPC will do something
+
- Added: SPELLFLAG_NOPRECAST what disbles PRECASTING on a per-spell-base.
  due to it's AI - things like animals pooping the ground, vendors
+
   Only valid if PRECAST is activated by Sphere.ini
  going off/on duty, (un)equipping a lightsource when it's dark,
 
  (un)equipping a weapon when fighting, stabler feeding animals or
 
  giving players food for their animals etc. - (once hardcoded behaviour
 
  was planned also for beggars who should sleep at night, for thieves,
 
  undead mages, healers, and more, but never realized. Now you can script
 
   this yourself) this trigger will be fired. On RETURN 0
 
  the NPC will continue with what it wants to do, RETURN 1 will abort it.
 
  
   Both triggers will fire only if EF_NPCAct_Triggers is SET and
+
08-07-2008, MrSugarCube
   EF_Minimize_Triggers is NOT SET in the sphere.INI. SO if you don't
+
- Fixed #1446: GM/MT_FLY enabled characters walking through stairs when EF_WalkCheck is not
   change your INI, everything will stay as it was before.
+
   enabled. [Note: Due to potentially negative side-effects of this fix a temporary EF flag
 +
   (EF_NoWalkingThroughStairsFix) has been added to sphere.ini which disables the fix just in
 +
  case something bad happens (if no issues are reported that are caused by this fix then you
 +
   can expect it to disappear very soon)]
  
22-12-2007, MrSugarCube
+
10-07-2008, MrSugarCube
- Fixed #1341: Arguments not being parsed correctly for commands entered
+
- Fixed ##3: Unstackable items becoming stacked after being bought off a player-owned vendor,
   on the console.
+
   when the buyer cannot carry the items.
- Fixed #1331: Script verbs not being parsed correctly when there is a
+
- Fixed ##2: NPC_AI_FOOD causing NPCs to get stuck whilst they attempt to eat grass from a
   space in them (ie. TAG.xxx_<EVAL yyy> = zzz).
+
   tile where grass has already been eaten from recently.
  
04-01-2008, Nazghul
+
13-07-2008, Beyonder
- Added: Triggers @Mount and @Dismount, both are character trigger, firing
+
- Fixed ##1: Sphere crashes with Experimental Flag UseNetworkMulti.
when a character tries to mount/dismout it's ride (and will be able to).
+
- Added: LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE to @SpellSuccess and @Success
   @DISMOUNT
+
  triggers.
    ARGO is the UID of the (still disconnected!) pet.
+
   LOCAL.FIELDWIDTH sets the width of the field from character point of view.
    RETURN 1 stops the dismount process.
+
  LOCAL.FIELDGAUGE sets the thickness of the field.
  @MOUNT
+
- Fixed #1449: Damage spells backfire when selecting summon while casting.
    ARGO is the UID of the NPC bound to be ridden.
 
    RETURN 1 stops the mounting process.
 
  
19-01-2008, MrSugarCube
+
15-07-2008, Beyonder
- Fixed #1351: Gaining tactics when fighting players in no-pvp regions.
+
- Added: Extra local arguments to @SkillStart and @Start (skill section) triggers for crafting
- Fixed #1337: Foundations of custom housing deletable by players.
+
  skills:
- Fixed #1132: Maps other than #0 not showing up when logging in.
+
  LOCAL.CRAFTITEMDEF - the UID of defname of the item we are currently crafting. Readable/Writable.
- Added #1003: ACTPRV property to characters. This is used in some skills,
+
  Accepts ONLY UIDs of ITEMDEFs, for example:
   for example with magery to hold the source of the spell (character, wand,  
+
if (<LOCAL.CRAFTITEMDEF> == <DEF.i_katana>)
   scroll, etc).
+
LOCAL.CRAFTITEMDEF = <DEF.i_sword_long>
- Fixed: CALL not working with object references. (eg. "CALL src.myfunction")
+
endif
- Fixed: ++/-- in scripts being parsed as +=1 when not being used as operators.
+
  LOCAL.CRAFTSTROKECNT - amount of strokes character makes while creating the item. Each stroke
 +
  has DELAY specified in SKILL section. Readable/Writable.
 +
   LOCAL.CRAFTAMOUNT - amount of items that will be created. Only usable for REPLICATable items,
 +
   otherwise will make no effect. Readable/Writable.
 +
- Modified: @Destroy on items and characters is triggered before deletion, not after. This way
 +
  all of the item/character properties are fully accessible.
 +
  "return 1" forbids deletion. WARNING! putting return 1 in this trigger means it won't be deleted
 +
  in any possible way! Use it with caution.
  
19-01-2008, MrSugarCube (Script pack)
+
15-07-2008, MrSugarCube
- Updated #1360: sphere_admin.scp (Fixed blank client list when using .admin twice)
+
- Fixed: World saves being aborted when they are taking a long time to complete.
- Updated: sphere_backward_compatibility.scp (Added NpcCast function, which can be
 
  used to make a character start casting a spell)
 
  
19-01-2008, Furio
+
20-07-2008, MrSugarCube
- Fixed #1324: Undefined Symbols on attacker when accessing a bad attacker #
+
- Fixed #1459: Weather effects not being updated when walking in/outdoors.
- Fixed: isneartype not searching through all statics.
+
- Fixed #1458: ARGV[x] not being updated when ARGS is set to a new value.
- Updated: sphere.ini with missing values.
 
- Added #1358: now serv.newitem has a 4th argument if set to 1 trigger @Equip will
 
  be called upon item equipping.
 
- Added: SERV.MAPLIST.$mapid.$prop to cycle through maps to get props. The list of
 
  properties that can be accessed (read only) are:
 
  BOUND.X = maximum x for the map
 
BOUND.Y = maximum y for the map
 
CENTER.X = x coord of map center
 
  CENTER.Y = y coord of map center
 
SECTOR.SIZE = size of sectors
 
SECTOR.ROWS = qty of sector rows for the map
 
  SECTOR.COLS = qty of sector columns for the map
 
  SECTOR.QTY = total number of sectors for the map
 
- Added: FeatureKR and Kr reslevel (6). Guess what they do (it's a wip).
 
- Added: EF_UseNetworkMulti (00800000) to experimental flags. Tired of crashing due
 
  too many items/npcs, try it. Don't change it while the server is running.
 
  (Thx to Z. for the windows version)
 
  
21-01-2008, MrSugarCube
+
20-07-2008, Coruja (Script pack)
- Fixed #1311: NPC Pathfinding failing when EF_DiagonalWalkCheck is enabled.
+
- Updated #1457: sphere_items_multis_houses_ships.scp (Corrected sign height and door type for the
- Added #738: Combat flag COMBAT_STAYINRANGE. Causes out-of-range attacks to fail
+
  stone and marble shops)
  at the end of the swing instead of waiting until the target is in range.
+
- Updated #1456: spherechar_new_mounts.scp (Added FOODTYPE for c_giant_beetle)
- Added: WEATHER property to sectors, sets or gets the current weather.
 
  
22-01-2008, MrSugarCube (Script pack)
+
24-07-2008, Coruja (Script pack)
- Updated #1107: sphere_genericstone_functions.scp (added function to control or
+
- Updated #1465: sphere_spells.scp (Wrong spellflag for MARK spell)
  override ally status between guilds (f_stonesys_internal_isalliedwith), see
 
  comments for details)
 
  
24-01-2008, MrSugarCube
+
02-08-2008, MrSugarCube
- Fixed #1363: Players unable to pick up single items from heavy stacks.
+
- Fixed #1475: Undefined keyword error when using 'REGION.ALLCLIENTS' in a region with no clients.
  
31-01-2008, Nazghul
+
08-08-2008, MrSugarCube
- Fixed #989: Fame-titles will not be shown on NPC anymore if INI option NPCNoFameTitle
+
- Fixed #1479: Custom layer values not being restored correctly when loading from world save.
   is set.
+
- Fixed #1470: Entering house customization with open dialogs causing the sphere to lose track of
 +
  which dialogs are still open on the client.
 +
- Fixed #1468: Exiting house customization mode sending characters to the house sign's height
 +
   instead of ground level.
  
31-01-2008, MrSugarCube
+
09-08-2008, MrSugarCube
- Fixed #1372: EF_NewPositionChecks causing fishing to fail from boats when
+
- Fixed #1476: Players under the incognito spell being unable to read other players' profile
   AdvancedLos is disabled.
+
   scrolls.
- Fixed: ADVANCEDLOS_PLAYER enabling AdvancedLos for all characters including
+
- Fixed #1033: Mass Curse spell not affecting character stats.
   NPCs (ADVANCEDLOS_NPC being ignored).
+
- Modified #963: ARGN1 in @[item]DropOn_Ground can now be used to read/write the decay time (in
 +
   tenths of a second) that will be set on the dropped item.
  
02-02-2008, Furio
+
10-08-2008, Coruja (Script pack)
- Added DIALOGLIST keyword. DIALOGLIST.COUNT gives the number of open gump dialogs,
+
- Updated #1486: sphere_map_points4.scp (Added teleports for Yomotsu Mines and Fan Dancer's Dojo)
  DIALOGLIST.$x.ID ($x = a number between 0 and DIALOGLIST.COUNT-1) the ID of the
+
- Updated #1485: sphere_map3.scp (Added missing Malas locations)
  respective gump dialog, and DIALOGLIST.$x.COUNT the number of active instances of
+
- Updated #1480: sphere_map_points0.scp, sphere_map_points1.scp (Incorrect teleports for Ice
  this dialog. So to close a specified gump, DIALOGCLOSE <DIALOGLIST.$n.ID> should do.
+
   Dungeon)
- Added KRTOOLBARSTATUS (prop/verb) and @UserKRToolbar (ARGN1 type, ARGN2 arg) to
 
   interact with the hotbar in the KR client.
 
  
03-02-2008, Shadow Dragon
+
11-08-2008, MrSugarCube
- added @KarmaChange, @FameChange. Called when Karma/Fame adjusting.
+
- Fixed #1483: Issues with trying to load scripts from directories outside of where the Sphere
  ARGN1 = Karma/Fame modifier, it's writable.
+
   executable is located.
  return 0 will use Argn1 value in adjusting.
 
  return 1 will break adjusting.
 
  return 2 will ignore Argn1 and continue default adjusting.
 
   Both triggers work only when EF_Minimize_Triggers isn't set.
 
  
07-02-2008, MrSugarCube
+
12-08-2008, MrSugarCube
- Fixed #718: Ships unable to travel over static water tiles.
+
- Fixed #1489: Longer ships being able to manoeuvre themselves into invalid positions.
- Fixed #1378: Armour rating being factored in twice during damage calculations.
 
  
11-02-2008, MrSugarCube
+
13-08-2008, MrSugarCube
- Fixed #1406: Newly created characters not starting with the MALE_DEFAULT / FEMALE_DEFAULT
+
- Fixed #1490: Formatting error when showing murderer/criminal title on the paperdoll.
  newbie templates.
 
- Fixed: Exception caused by using ARGO.Verb when argo is not set.
 
- Modified: "Vendor uid=xxx selling unmovable item" message no longer shown when
 
  listing the items that a player can sell to a vendor.
 
  
27-04-2008, MrSugarCube
+
14-08-2008, MrSugarCube
- Fixed #1404: Restoring custom house design without first making a backup allowing players
+
- Fixed #1484: Client showing the wrong season and light level upon login.
  to remove the entire house foundation.
 
- Fixed #1398: Lightning spells causing @EnvironChange to be called on nearby characters.
 
- Fixed #1381: Maps with non-matching courses plotted can be stacked.
 
- Modified #1389: Character list to show filled character slots that are over the account's
 
  limit (eg. account containing 7 characters shows all 7 even when the limit is 5 ,assuming
 
  the client is capable of displaying all 7).
 
  
27-04-2008, coruja747 (Script pack)
+
16-08-2008, Nazghul
- Updated #1402: sphere_item_building_walls_se.scp (Fixed empty dupelist property)
+
- Added: Character Trigger @UserQuestArrowClick what fires if the user clicks on the quest arrow.
 +
  No RETURN value checks, ARGN1 is the mouse button used (0=left, 1=right). Trigger works only
 +
  with EF_MinimizeTriggers disabled.
  
27-04-2008, Mordaunt (Script pack)
+
22-08-2008, MrSugarCube
- Updated: sphere_item_multis_foundations.scp (Added the remaining house foundation sizes)
+
- Fixed #1496: Female NotoTitles not always being shown on the paperdoll.
  
28-04-2008, MrSugarCube
+
25-08-2008, MrSugarCube
- Fixed #1394: Advanced pathfinding (NPC_AI_PATH) allowing NPCs to make invalid movements
+
- Fixed: @Dismount trigger being fired multiple times under certain circumstances.
  (for example walking whilst paralyzed). Some other adjustments have also been made,
 
  allowing NPCs to properly assess characters that may be blocking the way (to walk around
 
  them), negotiate corners with EF_DiagonalWalkCheck enabled, and attempt to compensate
 
  when new obstacles block a previously valid path.
 
- Fixed #1390: Locals not working in SKILLMENUs.
 
  
28-04-2008, coruja747 (Script pack)
+
26-08-2008, Shadow Dragon
- Updated #1392: spherechar_new_mounts.scp, spherechar_mondains_legacy.scp (Updated
+
- Fixed: Skills doesn't gain when lower than 1.8
   RESDISPDNHUE property on rides)
+
- Added: New trigger @AfterClick and @ItemAfterClick. LOCAL.ClickMsgText will contain text, that
 +
  will be shown after click on object, LOCAL.ClickMsgHue will contain color of the message. Both
 +
  locals are writable. RETURN 1 - will cancel showing text. Requires EF_New_Triggers to be
 +
   enabled.
 +
- Fixed: Mounts removing when world save (error: Ridden NPC without a mount item).
  
02-05-2008, MrSugarCube
+
31-08-2008, MrSugarCube
- Fixed #1348: Problem where <SERV.ResourceType.Id> returns 1 when the id is a different
+
- Added #1507: REVERT function to custom housing (t_multi_custom), calling this will clear any
   resource type (e.g. <SERV.TEMPLATE.i_dagger> (dagger being an item not a template)).
+
   uncommitted changes that have been made to the building design.
  
15-05-2008, Shadow Dragon
+
03-09-2008, Nazghul
- Added LAYER_AUCTION that can contain container on character for script purposes, like
+
- Added #1504: Optional second parameter "amount" to MAKEITEM. Please understand that the
   auction system.
+
  "additional" items crafted will neither fire any trigger, nor give experience or skill. So,
 +
  from that point of view there's no difference between "MAKEITEM i_dagger" and "MAKEITEM i_dagger,10"
 +
  (except for the number of daggers created). If the resources you have are insufficiant for
 +
   the amount, it will be shortened respectively.
  
19-05-2008, Shadow Dragon
+
08-09-2008, MrSugarCube
- Modified: GOLD property adds new gold stacks to bankbox.
+
- Fixed #1514: Players and NPCs unable to cast spells.
 +
- Fixed #1508: Dropped items stacking regardless of their difference in height.
  
21-05-2008, Nazghul
+
09-09-2008, MrSugarCube
- Added: Combat flags to Sphere.ini to allow stacking armor and aimed hits. Example of usage
+
- Fixed #1516: NPCs unable to use pathfinding when trying to follow or walk up to another character.
   is in scripts/AddOns.  
+
 
   Aimed hits are controlled by tags on the "hitter": TAG.HITPREFERENCE holds the targetted
+
13-09-2008, MrSugarCube
  zone: 1=head, 2=neck/throat, 3=back, 4=chest, 5=arms, 6=hands, 7=legs, 8=feet (if the value
+
- Added: BASECOMPONENT property to multis. Usage is similar to COMPONENT except it returns
  is out of this range it will be changed by %9; "0" means: no preference set);
+
  information for the components specified in the mul files, and when accessing
   TAG.HITPREFERENCE_CHANCE (0..1000) is the chance to really hit the desired area;
+
  individual components (BASECOMPONENT.n.[ID/DX/DY/DZ/D] there is an additional "VISIBLE"
   TAG.HITPREFERENCE.BONUS is the percent the damage is raised when hit where desired,
+
   property which returns 0 if the component is invisible (usually applies to doors and signs).
   TAG.HITPREFERENCE.PENALTY is the percent the damage is lowered if the area was missed.
+
 
   The last two values are defaulting to "30".
+
16-09-2008, Nazghul
  The system is perhaps useful to script a system where a player can look for weak armored
+
- Added: Override Tags for item/action related sound.
   bodyparts of his opponent and try to hit him there; could be essential if armor stacking
+
   TAG.OVERRIDE.DOORSOUND_CLOSE / TAG.OVERRIDE.DOORSOUND_OPEN
   is used.
+
    (what it does should be obvious)
 +
   TAG.OVERRIDE.PORTCULISSOUND - holds an sfx number played when
 +
    opening/closing a portculis
 +
  TAG.OVERRIDE.DROPSOUND - sfx an items makes when dropped. Att:
 +
    system default sounds sometimes change due to the amount dropped
 +
    (gold, ingots), or on what surface/item the item is dropped. All
 +
    this will be overridden!
 +
   TAG.OVERRIDE.SOUND_HIT - on weapons holds the sound when it hits,
 +
    regardless of WHAT it hits!
 +
   TAG.OVERRIDE.SOUND_MISS - on weapons, sound they make when missing
 +
 
 +
   all TAGs need to hold a number (defname MAY be possible -> test!),
 +
  what also can be "0" (zero) with the meaning: don't play any sound.
 +
 
 +
17-09-2008, Nazghul
 +
- Added: Trigger @PICKUP_STACK what fires only if an item was picked up from a pile.
 +
   ARGO is the remaining part of the stack. (There's a char trigger itemPICKUP_STACK
 +
   also)
  
23-05-2008, MrSugarCube
+
18-09-2008, Nazghul
- Fixed #1418: Tracking being used to reveal the location of invisible staff members.
+
- Added: TAG.OVERRIDE.RUNNINGPENALTY and TAG.OVERRIDE.STAMINALOSSATWEIGHT to
- Fixed #1417: Unable to access account properties using [SERV.]ACCOUNT.x.KEY where account
+
   override the respective INI settings on a per character base
  x begins with a number.
 
- Fixed: Characters "drifting to shore" when logging in on a ship.
 
- Fixed: Variety of exceptions caused when items are being set to type t_eq_memory_obj after
 
   after creation.
 
- Modified: RESTOCK function on vendors now accepts a parameter to specify whether or not
 
  new stock should be spawned immediately (0=empty existing stock (default), 1=empty stock
 
  and spawn next set).
 
  
26-05-2008, MrSugarCube
+
28-09-2008, Shadow Dragon
- Fixed: Code not being skipped properly when incorrect loop syntax is used.
+
- Fixed: Sphere crashing when injection tries to add one item to another non-container item
- Modified: @UserVirtue trigger now has 2 arguments:
+
  (errors in injection script and so).
  ARGO  = The character whose virtue button has been pressed
+
 
  ARGN1 = The button ID pressed (1=virtue button (on paperdoll), 105-112=icons within the
+
26-10-2008, MrSugarCube
          menu)
+
- Fixed #1540: Server crash when invalid parameters are passed into RTIME.FORMAT.
          Note: Clients only specify the character they're viewing (ARGO) when pressing the
+
- Fixed #1539: Infinite loop caused by "back" options on SKILLMENUs leading to a server crash.
          paperdoll button (ARGN1=1)
+
- Fixed #1538: Possibility of quickly gaining arms lore skill through repairing, by repeatedly
- Added: @UserVirtueInvoke trigger, called when a virtue is invoked through client macros.
+
  attempting to repair an item that cannot be repaired.
  ARGN1 = The virtue ID (1=Honor, 2=Sacrifice, 3=Valor)
+
- Fixed #1518: Possibility of world save notification not being broadcasted.
 
+
- Fixed #1510: IsNum not working with negative numbers.
27-05-2008, MrSugarCube
+
- Fixed #1158: Possibility of the statf_fly flag not being removed from players who have been stood
- Modified: ARGN2 in @SkillChange trigger is now writeable.
+
  still for some time.
 
+
- Fixed: "You can't think of a way to use that item." when failing to repair an item.
27-05-2008, MrSugarCube (Script pack)
+
- Modified: EVENTSPLAYER, EVENTSPET and EVENTSREGION settings now accept a comma-delimited list of
- Updated: sphere_msgs.scp (Added 2 more "tracking_*" defmessages)
+
  events.
 
+
 
25-06-2008, MrSugarCube
+
26-10-2008, MrSugarCube (Script pack)
- Modified: Installing Sphere as a Windows service (using "-k install" with NTService=1) will
+
- Updated #1535: sphere_defs.scp (Corrected sounds for snd_rune_beetle through to snd_hiryu)
   now configure the service with an automatic restart configuration.
+
 
 
+
02-11-2008, MrSugarCube
02-07-2008, MrSugarCube
+
- Added #1499: CanUndressPets setting to sphere.ini. Setting this to 1 will enable players to
- Fixed #1439: NPC_AI_MOVEOBSTACLES allowing NPCs to move items whilst paralyzed.
+
   take equipment from their pets' paperdolls.
- Added #850: @SpellSuccess trigger, fires on the caster just before the @Success trigger is
+
 
   fired on spell blocks.
+
29-11-2008, MrSugarCube
 
+
- Fixed #1553: Repairing an item does not update its tooltip.
04-07-2008, MrSugarCube
+
- Modified: IsNearType (including IsNearType.P) now accepts a third parameter, which when set to 1
- Fixed #1177: Client command parsing using brackets as argument separators.
+
  will cause the function to include multi components in the search.
- Fixed #1097: Possible infinite loop involving circular ownership (e.g. two characters set as
+
- Added: New mt_mount flag (00400) which will allow character bodies to become capable of mounting
  owners of each other).
+
  rides. Note that this flag is not required for the bodies that could already mount rides prior
 
+
  to this flag's existence (c_man/c_woman/c_man_gm/c_elf_man/c_elf_woman). Also be aware that not
04-07-2008, MrSugarCube (Script pack)
+
  all character bodies are intended to be used for mounting rides and won't have proper riding
- Updated #1443: sphere_guild_dlg_charlist.scp, sphere_guild_promptconsole.scp,
+
   animations.
  sphere_town_dlg_charlist.scp, sphere_town_promptconsole.scp (Fixed guild and town stones
+
 
   using TITLE property instead of GUILDTITLE)
+
29-11-2008, MrSugarCube (Script pack)
 
+
- Updated: sphere_defs.scp (Added mt_mount to the can_flags defname section)
04-07-2008, Nazghul
+
 
- Added: skilltitles "Elder" and "Legendary"
+
05-12-2008, MrSugarCube
 
+
- Fixed: Server crash caused by exceedingly large dialogs being sent to clients.
05-07-2008, MrSugarCube (Script pack)
+
 
- Updated #1130: sphere_msgs.scp (Removed tracking_dis* defmessages and replaced them with
+
06-12-2008, jeem (Script pack)
   simpler tracking_result* defmessages)
+
- Updated #1555: sphere_guild_dlg_charlist.scp, sphere_town_dlg_charlist.scp (Fixed script error
 +
   when showing guild member titles)
 +
 
 +
07-12-2008, MrSugarCube
 +
- Added #1086: Skill degradation for skills that have been set to decrease. @SkillChange trigger
 +
  is called for decaying skills just as it does when they gain (compare <ARGN2> to <<ARGN1>> to
 +
  determine if the skill is being increased or lowered).
 +
- Added: Experimental flag EF_UseNetworkMultiVersionMod. This modifies the behaviour of the
 +
  EF_UseNetworkMulti flag (don't forget to set this too) so that clients older than 4.0.0 will
 +
  be unaffected and continue to use the original networking code as if the EF_UseNetworkMulti
 +
  flag was never set.
 +
 
 +
03-01-2009, Dwayne1988 (Script pack)
 +
- Updated: spherechar_human.scp, spherechar_evil.scp (Axis Tags were messed up, came after
 +
   @NPCRESTOCK _and_ had a leading TAB so Axis won't find them)
 +
 
 +
24-01-2009, MrSugarCube
 +
- Fixed #1572: Exception on Linux builds when mounting a horse.
 +
- Fixed #1569: @UserWarmode trigger not being fired.
 +
- Fixed #1568: Default webpage paths in Sphere.ini not valid for Linux.
 +
- Fixed #1532: Added log message to indicate the account name being referred to when an account
 +
  is already in use, blocked, or cannot log in due to CLIENTMAX setting.
 +
 
 +
28-01-2009, Shadow Dragon
 +
- Added: SERV.RTicks for reading purposes. Returns real system time in ticks as unsigned value (0..4294967295).
 +
- Added: UVAL, which works like EVAL, but for unsigned values.
 +
 
 +
01-02-2009, Shadow Dragon
 +
- Added: Basic LIST support.
 +
  LIST.xxx to show elements in list. Also, can be used like LIST.xxx=value to clear list and add a value
 +
  LIST.xxx.ADD to add new element to list, can be number or string
 +
  LIST.xxx.CLEAR to clear list
 +
  LIST.xxx.index to read/write value on element in list
 +
  LIST.xxx.COUNT to get count of elements in list
 +
  LIST.xxx.index.REMOVE to remove element at specified index in list
 +
  LIST.xxx.index.INSERT to insert element at specified index in list
 +
  LIST.xxx.FINDELEM search_value returns index of first found element in list. Search starting from begin
 +
  LIST.xxx.index.FINDELEM search_value returns index of first found element in list. Search starting from index
 +
  SERV.PRINTLISTS to print all lists and their elements
 +
  SERV.CLEARLISTS to clear all lists. If used with mask parameter, then clear all lists, which name countains specified mask
 +
- Added: SERV.Map.x.AllSectors some_verb_to_use
 +
  If used not in this syntax, then gives old error about MAP is readonly.
 +
 
 +
08-02-2009, MrSugarCube
 +
- Fixed #1517: Unable to cast polymorph spell.
 +
- Fixed: Possible infinite loop when creating fight memories in scripts.
 +
 
 +
09-02-2009, Coruja (Script pack)
 +
- Updated #1576: sphere_item_profession.scp, sphere_item_deco_dungeons_traps_dead.scp (Corrected
 +
  portrait DUPELISTs)
 +
 
 +
15-02-2009, MrSugarCube
 +
- Modified #1545: JOINASMEMBER function no longer requires that the new member be online.
 +
- Fixed: Unable to connect to local server with an encrypted client when it decides to reuse its
 +
  login server connection instead of open a new one.
 +
 
 +
21-02-2009, MrSugarCube
 +
- Fixed #1571: Creating a player with a hyphen or period in its name causing a random name to be
 +
  generated.
 +
- Fixed #1548: Armor MODAR being factored in twice when calculating total armour value, and sometimes
 +
  character MODAR being factored in twice when calculating damage.
 +
- Fixed: Messages such as "You can't reach anything in your state." and "You can't think of a way to
 +
  use that item." being sent to players as they try to free themselves from spider webs.
 +
- Added #1564: PetsInheritNotoriety setting to sphere.ini. This can be used to specify which
 +
  notoriety flags a pet will inherit from its master (so if for example a pet has an evil owner
 +
  and the NotoEvil flag is set then the pet will also show as evil regardless of its real notoriety).
 +
 
 +
22-02-2009, MrSugarCube
 +
- Fixed #1575: Improved handling of unicode speech in Linux build.
 +
- Fixed #1537: TEST in skillmenus not being parsed in the same way as TESTIF.
 +
 
 +
26-02-2009, MrSugarCube
 +
- Modified #1560: Separated PROMPTCONSOLE from the targeting system. Targeting no longer interferes
 +
  with prompts and vice-versa.
 +
 
 +
14-03-2009, MrSugarCube
 +
- Fixed #1585: Multiple arguments not being passed into commands when using the syntax
 +
  [SERV.]ACCOUNT <name> <command> <args>
 +
 
 +
20-03-2009, MrSugarCube
 +
- Fixed #1586: Exception in Linux build when using the ADDCLILOC function with DEBUGF_SCRIPTS enabled.
 +
- Fixed: Exception when passing an invalid object uid into the NEWDUPE function.
 +
 
 +
21-03-2009, MrSugarCube
 +
- Fixed: Crashes with EF_Unicode enabled on Linux builds.
 +
- Fixed: SuppressCapitals causing speech to be blanked out.
 +
 
 +
22-03-2009, MrSugarCube
 +
- Fixed #1557: Sphere only sending partial webpages to certain browsers such as FireFox.
 +
- Fixed: Sphere only sending partial webpages to all browsers when EF_UseNetworkMulti is used.
 +
- Modified: EF_UseNetworkMultiVersionMod now also disables the effects of EF_UseNetworkMulti for HTTP
 +
  clients.
 +
 
 +
29-03-2009, MrSugarCube
 +
- Fixed #1589: TWOHANDS returning 1 with items that are equipped in the second hand but aren't
 +
  two-handed, such as shields and lanterns.
 +
 
 +
04-04-2009, MrSugarCube
 +
- Fixed #1588: Possibility of overflow when applying markups to vendor prices (note that prices are
 +
  limited to a maximum of 2,147,483,647gp inclusive of markup).
 +
 
 +
10-04-2009, MrSugarCube
 +
- Fixed: Server crash caused by deeply nested SKILLMENUs.
 +
- Modified: Menu options are no longer hidden from SKILLMENUs when Sphere is unable to fully search
 +
  within them.
 +
 
 +
13-04-2009, MrSugarCube
 +
- Added: SERV.RTICKS.FROMTIME year,month,day,hour,minute,second. Returns the timestamp for the given
 +
  date.
 +
- Added: SERV.RTICKS.FORMAT timestamp[,format]. Converts the given timestamp into a formatted date
 +
  string (similar to SERV.RTIME.FORMAT).
 +
 
 +
14-04-2009, MrSugarCube (Script pack)
 +
- Updated #1497: sphere_item_multis_houses_ships.scp (Fixed ship masts not blocking line of sight)
 +
 
 +
19-04-2009, MrSugarCube
 +
- Fixed #1586: Possible exception when checking line of sight near multis when AdvancedLos is enabled.
 +
- Fixed #1495: Ghosts able to teleport through walls when resurrecting. Line of sight is now required
 +
  for a ghost to resurrect with their corpse.
 +
- Fixed: Exception when EF_NewPositionChecks is enabled and there are statics placed on the map which
 +
  don't have scripts.
 +
 
 +
19-04-2009, MrSugarCube (Script pack)
 +
- Updated #1469: sphere_item_ground_tiles.scp (Corrected height of i_waterfall_low)
 +
 
 +
25-04-2009, MrSugarCube
 +
- Modified: Jailing players (".JAIL cell#" command) now remembers the cell number that was specified,
 +
  stored in Tag.JailCell on the account and used when returning players to jail.
 +
- Modified: Jailed players are no longer blocked from being teleported within the jail region.
 +
 
 +
25-04-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_map0.scp (Renamed individual jail AREADEFs to jail cell ROOMDEFs)
 +
 
 +
02-05-2009, MrSugarCube
 +
- Fixed #1581: Characters unable to see objects that are in the corners of their visual range.
 +
 
 +
03-05-2009, MrSugarCube
 +
- Fixed #1526: No decay timer set on lights after they become unlit.
 +
 
 +
04-05-2009, MrSugarCube
 +
- Fixed: Objects on the corners of .EXTRACT, .NUKE, .NUKECHAR areas not being affected by the command.
 +
 
 +
05-05-2009, MrSugarCube
 +
- Fixed #1451: Missing mana checks, skill checks and @Select triggers not being fired before casting,
 +
  when precasting is enabled.
 +
- Modified: Separated the movement behaviour of the MAGICF_PRECAST flag into a new MAGIC_FREEZEONCAST
 +
  flag. Enable MAGICF_PRECAST to enable casting before targeting, and enable MAGICF_FREEZEONCAST to
 +
  prevent characters from moving whilst casting (enable both to retain the previous behaviour of
 +
  MAGICF_PRECAST). Also added SPELLFLAG_NOFREEZEONCAST to disable the effects of MAGICF_FREEZEONCAST
 +
  for individual spells.
 +
 
 +
06-05-2009, MrSugarCube
 +
- Added #1599: SpellTimeout setting to Sphere.ini. If set to a value greater than zero then when
 +
  casting a spell the player is given this many seconds to choose a target before the spell is
 +
  automatically cancelled.
 +
 
 +
16-05-2009, MrSugarCube
 +
- Modified #1610: Cure spell just sends the packet needed to update the health bar rather than sending
 +
  a full refresh of the entire screen.
 +
- Added #1609: MAGICF_SUMMONWALKCHECK flag to ensure that summoned creatures can only be successfully
 +
  summoned on tiles that are walkable for them (i.e. a sea creature can only be summoned on water).
 +
 
 +
16-05-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_msgs.scp (Added msg_summon_invalidtarg defmessage)
 +
 
 +
18-05-2009, MrSugarCube
 +
- Added #1466: MAGICF_NOFIELDSOVERWALLS flag to enable additional checks when casting field spells to
 +
  prevent them from passing through blocking objects (CAN_I_BLOCK and/or CAN_I_DOOR).
 +
 
 +
20-05-2009, MrSugarCube
 +
- Added #1604: PROMPTCONSOLEU function. This is an alternative to the PROMPTCONSOLE which enables the
 +
  client to respond with unicode text.
 +
- Added: SYSMESSAGELOCEX, an extended version of SYSMESSAGELOC which can be used for sending localized
 +
  messages to clients with a non-localized string attached to the start or end of the message. SMSGLEX
 +
  can also be used as a shortcut.
 +
  Syntax is: "SYSMESSAGELOCEX color,clilocid,flags,affix[,arguments]"
 +
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override
 +
  it. Known possible values for flags are:
 +
    0x00 = Append text to message
 +
    0x01 = Prepend text to message
 +
    0x02 = Forces message to show as a system message
 +
  A couple of examples of this being used (latest clilocs) are:
 +
  "SYSMESSAGELOCEX -1,1008078,01,MrSugarCube"                    - Displays "MrSugarCube : Attempting to heal you."
 +
  "SYSMESSAGELOCEX -1,3002003,00,Smoking is bad for your health" - Displays "Note to self:  Smoking is bad for your health"
 +
  For overriding messages in sphere_msgs.scp (or other message functions such as SAY and MESSAGE) the
 +
  syntax "@hue,font,3 clilocid,flags,affix[,arguments]" can be used, for example:
 +
  "SAY @022,,3 1008097,01,MrSugarCube"                          - Object says "MrSugarCube : poisoned you!" in red
 +
 
 +
30-05-2009, Nazghul
 +
- Fixed: @GetHit always gave damagetype type (argn2) 0C02 (physical | slash | pierce). Now the type is set
 +
  to dam_physical, dam_slash or dam_pierce is added depending on weapon type (wrestling and mace weapons
 +
  don't set extra flags).
 +
- Added: TAG.OVERRIDE.DAMAGETYPE for weapon type items. Holds a numerical value and overrides the
 +
  type specific damage type.
 +
 
 +
20-06-2009, MrSugarCube
 +
- Fixed #1617: Dispel and Mass Dispel spells sending an unnecessary full client update to all players
 +
  touched by the spell.
 +
 
 +
21-06-2009, MrSugarCube
 +
- Added #1627: PlayerEvil setting to Sphere.ini. Similar to the PlayerNeutral setting, this
 +
  will control the karma level at which a player will be considered evil.
 +
 
 +
25-07-2009, MrSugarCube
 +
- Added: Support for packet changes found in client 6.0.14.2.
 +
 
 +
02-08-2009, MrSugarCube
 +
- Fixed #1636: Exception caused when an online player character is deleted.
 +
- Fixed #1639: Tooltips not being sent for objects on the edge of the client's screen.
 +
 
 +
29-08-2009, MrSugarCube
 +
- Fixed: Unable to drop 'new' spell scrolls (necro+) into spellbooks even when MOREZ has
 +
  been correctly set on the book.
 +
- Fixed: Incorrect character race being sent to clients.
 +
 
 +
30-08-2009, MrSugarCube
 +
- Fixed #1625: Extremely high vendor prices on Linux build.
 +
- Fixed: Archery buttes not checking for OVERRIDE.AMMOTYPE and OVERRIDE.ANIM* tags on the
 +
  character's weapon.
 +
- Modified #1642: Reduced delay between asynchronous database query callbacks.
 +
- Added: Skill flag SKF_RANGED. Combine this with the SKF_FIGHT flag to create ranged
 +
  (i.e. archery) combat skills.
 +
 
 +
30-08-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_defs.scp (Added SKF_RANGED definition)
 +
 
 +
07-09-2009, MrSugarCube
 +
- Added: Console command "d ui" to generate a file named "unscripted_items.scp" that
 +
  contains *basic* definitions for items in tiledata.mul that have no corresponding
 +
  Sphere script.
 +
 
 +
12-09-2009, MrSugarCube
 +
- Fixed #1623: RESTEST requiring 1 of an item when checking for a quantity of 0. This also
 +
  affects other resource-list-based functions and properties such as CONSUME, FOODTYPE,
 +
  RESOURCES, SKILLMAKE, SKILLTEST, etc.
 +
- Fixed #1655: Setting RAINCHANCE and COLDCHANCE to zero does did not disable rain or snow.
 +
- Modified: When loading a WORLD* block from a save Sphere can resolve defnames to find the
 +
  object being loaded (like the ones in sphere_backward_compatibility.scp, for example).
 +
 
 +
12-09-2009, Coruja (Script pack)
 +
- Updated #1645: sphere_template_vend.scp, sphere_item_resources.scp, spherechar_human.scp,
 +
  sphere_item_provisions_potions.scp, sphere_backward_compatibility.scp (Corrected spelling
 +
  of the wyrm heart defname (i_reag_worm_heart->i_reag_wyrm_heart))
 +
- Updated #1654: sphere_defs.scp (Adjusted height of the Meer characters)
 +
 
 +
13-09-2009, MrSugarCube
 +
- Fixed #1595: @Destroy trigger not being fired for items inside removed containers. When
 +
  returning 1 in @Destroy on an item inside a container about to be deleted, the item will
 +
  be dropped to the ground (unless the item has already been moved elsewhere).
 +
- Fixed #1656: Exception when players trade and item 01e5e has not been set as a container
 +
  type.
 +
 
 +
05-12-2009, MrSugarCube
 +
- Fixed: Unable to connect to remoteadmin from telnet clients that operate in 'line mode'
 +
  and need the enter key to be pressed after CTRL+A/Space (the one in Ubuntu, for example).
 +
- Modified: Rewritten networking system, based on the code Vjaka wrote for 0.57 combined
 +
  with updates added since such as EF_UseNetworkMulti. This new system introduces features
 +
  such as packet prioritisation which should help to keep clients responsive even in areas
 +
  with a large number of objects.
 +
  The EF_UseNetworkMulti and EF_UseNetworkMultiVersion experimental flags have been removed
 +
  from the ini and different settings have been added to a new "Network Behaviour" section.
 +
  The default settings should suit most users, but in some cases it may help to tweak the
 +
  MaxPacketsPerTick and MaxQueueSize settings.
 +
 
 +
06-12-2009, MrSugarCube
 +
- Added: Support for gargoyle character creation. For the option to be available the player
 +
  must have a RESDISP of 7+ and the FEATURE_SA_UPDATE flag needs to be enabled in Sphere.ini.
 +
  ARGN3 in the f_onchar_create (sphere_serv_trigger.scp) is now the character race (1=human,
 +
  2=elf, 3=gargoyle).
 +
- Added: Basic support for mysticism spellbook and skill (the actual spell effects need to be
 +
  scripted).
 +
- Added #1657: Support for the increased tiledata size in client 7.0.0+. As a consequence,
 +
  multis must now start from 08000 instead of 04000 and scripts must be adjusted accordingly
 +
  (the default script pack has been updated). If an older client encounters an item within the
 +
  04000-07fff range they will only see a worldgem bit (01ea7).
 +
- Fixed #1661: Status bar not correctly showing green or yellow in 7.0.0+ clients.
 +
- Modified: The size of Map5.mul is now automatically detected.
 +
 
 +
06-12-2009, MrSugarCube (Script pack)
 +
- Added: spherechar_sa.scp (Added gargoyle character definitions)
 +
- Added: sphere_item_provisions_alchemy_magic_sa.scp (Added mysticism spellbook and scrolls)
 +
- Added: sphere_map5.scp, sphere_map_points5.scp (Added SA map areas)
 +
- Updated: sphere_defs.scp (Added defnames for RDS_SA RESDISP, t_spellbook_mystic)
 +
- Updated: sphere_serv_triggers.scp (Updated description for f_onchar_create)
 +
- Updated: sphere_skills.scp (Added base definitions for mysticism, imbuing and throwing skills)
 +
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
 +
  sphere_item_multis_stairs.scp (Increased multi IDs by 04000)
 +
- Updated: spheretables.scp (Added sphere_map5.scp and sphere_map_points5.scp to resources,
 +
  commented out by default)
 +
 
 +
12-12-2009, MrSugarCube
 +
- Added: Support for gargoyle flying ability. Flying characters will have statf_hovering set
 +
  on their FLAGS property and will be allowed to pass over items that have the CAN_I_HOVER
 +
  flag set.
 +
  The exact effects of the statf_hovering flag are:
 +
  - Can pass over hidden 'hover over' tiles to get to special areas
 +
  - Can move at the same speed as a mounted player
 +
  - Height is increased by 4 in LOS/movement checks (same effects as when mounted)
 +
  - When stamina is lost on movement, the running penalty is always applied
 +
  - Always revealed when moving whilst hidden
 +
  - Will not teleport off ships when moving on to a ship plank
 +
- Added: MULTIDEF block. This can be used to safeguard against any future changes to the size
 +
  of tiledata.mul. This basically acts as a 'shortcut' for ITEMDEF, except the ID will
 +
  automatically be increased by 08000. Items defined with this are still accessible as normal
 +
  via SERV.ITEMDEF.id(+08000)/defname, or SERV.MULTIDEF.id/defname can be used if you prefer
 +
  for consistency.
 +
- Added #1674: PINS property to maps, to return the number of pins on the map.
 +
- Fixed #1672: Situations where returning 0 in a trigger would return as 2.
 +
 
 +
12-12-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_defs.scp (Added defnames for statf_hovering, mt_hover, can_i_hover,
 +
  tilef_hoverover, t_hoverover)
 +
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
 +
  sphere_item_multis_stairs.scp (Replaced multi ITEMDEFs with MULTIDEFs)
 +
- Added: sphere_item_ground_tiles_sa.scp (Added hover-over item definitions)
 +
- Updated #1684: sphere_item_magic_armor.scp, sphere_item_magic_leather.scp,
 +
  sphere_item_magic_weapon.scp, sphere_item_misc.scp, sphere_item_profession_cartographer.scp,
 +
  sphere_item_provisions_armor_color.scp, sphere_item_provisions_deed.scp,
 +
  sphere_item_provisions_ore.scp (Replaced custom script IDs with defnames to fix conflicts
 +
  with new tiledata size -- some items did not have a defname so watch out if you have any of
 +
  these in an existing world save)
 +
 
 +
13-12-2009, MrSugarCube
 +
- Fixed #1683: Hiding skill not properly updating clients to show the character is gray.
 +
- Added #1678: Logging for commands issued via telnet. "TelnetLog" setting can be used
 +
  to enable or disable this feature.
 +
- Modified: The -E switch now shows a message in the console to indicate that is has been
 +
  successfully enabled.
 +
 
 +
13-12-2009, Coruja (Script pack)
 +
- Updated #1659: sphere_map2 (Renamed "Blood Dungeon Level 1" to "Blood Dungeon")
 +
- Updated #1665: sphere_item_profession_tailor_tanner.scp (Adjusted flipping behaviour of
 +
  spinning wheel)
 +
 
 +
13-12-2009, MrSugarCube (Script pack)
 +
- Updated #1685: sphere_admin.scp (Updated hover flag description, added ability to hide
 +
  status flags by blanking their description)
 +
 
 +
16-12-2009, MrSugarCube
 +
- Fixed: Crash dumps not being created at all.
 +
- Fixed: Wrong packets being sent to pre-7.0.0.0 clients whose encryption had been removed.
 +
- Fixed: Summon and field spells not working correctly with EF_MinimiseTriggers set.
 +
 
 +
16-12-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_admins.scp (Added admin_resdisp_6 and admin_resdisp_7 defnames)
 +
 
 +
17-12-2009, MrSugarCube
 +
- Fixed #1689: Unable to move with FEATURE_SA_MOVEMENT enabled.
 +
- Fixed #1688: Characters not being logged out properly when clients disconnect.
 +
 
 +
18-12-2009, MrSugarCube
 +
- Fixed #1663: Human characters being created as elves with the SA client and with a RESDISP
 +
  less than 7.
 +
- Fixed: @UserVirtue trigger not being fired.
 +
 
 +
18-12-2009, MrSugarCube (Script pack)
 +
- Added: sphere_item_profession_barber_sa.scp (Added gargoyle horn definitions)
 +
 
 +
19-12-2009, MrSugarCube
 +
- Fixed #1669: Maximum weight not being checked when a client equips an item.
 +
- Fixed #1690: CheckerTrans positions in dialogs not working with dorigin.
 +
- Fixed #1692: DIALOGCLOSE immediately after DIALOG not working due to packet priorities.
 +
- Modified #1681: Swapped the situations where cartography_nomap and cartography_fail
 +
  defmessages are displayed.
 +
- Fixed: FLUSH command on clients claiming to be undefined.
 +
- Fixed: Previous page handlers not being removed when assigning pages via GMPAGE.x.HANDLE,
 +
  leading to possible exceptions.
 +
 
 +
19-12-2009, MrSugarCube (Script pack)
 +
- Updated: sphere_item_profession_barber_sa.scp (Fixed defname conflicts)
 +
 
 +
20-12-2009, MrSugarCube
 +
- Added #1667: PARTY.SETMASTER, accepts either a character uid or @<N> for the Nth party
 +
  member, to change who the party master is. The character must be an existing member of the
 +
  party and cannot already be the master.
 +
- Added #1658: @TargetCancel trigger to spells (and @SpellTargetCancel to characters). This
 +
  is called when a player cancels targeting with a spell.
 +
    ARGN1 = the spell that was being cast
 +
    ARGO  = the item used to cast the spell (e.g. a wand or scroll)
 +
    RETURN 1 = suppress the cancellation message
 +
- Added: @Wait trigger to skills (and @SkillWait to characters). This is called whenever
 +
  Sphere wants to check if a character must wait before starting a skill. Normally this
 +
  will be when a skill is selected from the skill menu (before @Select), but also when
 +
  snooping a container or using a musical instrument.
 +
    ARGN1 = the skill the character is attempting
 +
    ARGN2 = the skill that is currently being used
 +
    RETURN 0 = The character can start the other skill (bypasses default checks)
 +
    RETURN 1 = The character must wait (bypasses default checks)
 +
    RETURN 2 = Perform default checks
 +
- Fixed: Return 0 not working in @UseQuick trigger.
 +
- Fixed: @TargOn_Cancel trigger not being fired.
 +
- Modified #1687: Clients are now listed in order of newest to oldest.
 +
- Modified: TDATA1 and TDATA2 can be set on maps to specify the width and height of the gump.
 +
 
 +
21-12-2009, MrSugarCube
 +
- Fixed #1693: CANSEELOSFLAG always returning 0.
 +
 
 +
02-01-2010, MrSugarCube
 +
- Fixed #1691: Older clients freezing when single-clicking an item or NPC with a long name.
 +
- Fixed #1695: "You can't think of a way to use that item." message being shown when failing
 +
  to use a training dummy.
 +
- Fixed #1693: CANSEELOSFLAG not working when a uid is specified.
 +
 
 +
03-01-2010, MrSugarCube
 +
- Fixed #1700: Armor rating not updated when being resurrected.
 +
- Added #1701: @TargetCancel trigger to skills (and @SkillTargetCancel to characters). This
 +
  is called when a player cancels targeting with a skill.
 +
    ARGN1 = the skill that was being used
 +
    RETURN 1 = suppress the cancellation message
 +
 
 +
10-01-2010, MrSugarCube
 +
- Added #1705: @RegionResourceFound trigger, fires on characters just before @ResourceFound
 +
  is fired on a region resource (shares the same arguments and return values).
 +
- Fixed #1706: Light sources not showing correctly on 7.0.0+ clients.
 +
- Fixed: Guard command not working with pets.
 +
- Modified: Pets default to guarding their master instead of following, and no longer attack
 +
  the same target as their master when in "follow" mode.
 +
 
 +
17-01-2010, MrSugarCube
 +
- Added: Experimental flag "EF_NetworkOutThread". If this is enabled then outgoing data will
 +
  be sent in a separate background thread.
 +
- Added: UsePacketPriority setting in sphere.ini. Leaving it at 1 (default) should be best
 +
  but if this is set to 0 then [most] packets won't be prioritised.
 +
 
 +
24-01-2010, MrSugarCube
 +
- Fixed #1713: Strange characters in the tip of the day window.
 +
- Fixed: Previous and Next buttons not working on the tip of the day window.
 +
 
 +
25-01-2010, MrSugarCube
 +
- Fixed: Figurines using TDATA3 from the item's DISPID instead of BASEID, when a new pet is
 +
  spawned.
 +
 
 +
27-01-2010, MrSugarCube
 +
- Fixed #1714: Unicode string corruption in dialogs.
 +
- Modified: Exceptions that occur in background threads should now be recorded in logs.
 +
 
 +
20-02-2010, MrSugarCube
 +
- Modified #1720: SERV.EXPORT now exports in a square rather than a circle.
 +
 
 +
21-02-2010, MrSugarCube
 +
- Modified: Network thread (used by EF_NetworkOutThread) will now lower its own priority
 +
  when there is no data to send (and raise again when needed)
 +
 
 +
15-03-2010, MrSugarCube
 +
- Fixed: UseAsyncNetwork not working as it should on windows build.
 +
 
 +
21-03-2010, MrSugarCube
 +
- Added: MINKARMA, MAXKARMA and MAXFAME settings in sphere.ini.
 +
- Modified: First two lines of NOTOTITLES section are used to define the levels of karma and
 +
  fame needed for each title.
 +
 
 +
21-03-2010, MrSugarCube (Script pack)
 +
- Updated: spheretables.scp (Added default karma and fame levels to NOTOTITLES section)
 +
 
 +
04-04-2010, MrSugarCube
 +
- Fixed #1734: No response sent for UOG and CUO status requests.
 +
- Modified: (Windows) Status window now uses a courier font so that data is aligned like it
 +
  is when using 'p' in the console.
 +
- Modified: Improved accuracy of profile data ('p' in console, or status window in Windows)
 +
  by recording and displaying it for each thread.
 +
 
 +
17-04-2010, MrSugarCube
 +
- Fixed: Wrong mapdif*.mul and stadif*.mul files being used with custom maps.
 +
- Modified: If Map1.mul is present then it will automatically be used.
 +
- Modified: The larger ML map sizes are now automatically detected, so there should be no
 +
  need to specify it in the ini file.
 +
 
 +
25-04-2010, MrSugarCube
 +
- Fixed #1725: Friends stealing ownership of a pet when mounting it.
 +
 
 +
25-04-2010, MrSugarCube (Script pack)
 +
- Updated #1733: sphere_map0.scp (Added r_brit to events list for a_townBritain)
 +
 
 +
01-05-2010, MrSugarCube
 +
- Fixed #1738: Players calling guards on invisible staff members.
 +
- Fixed #1740: @Abort being called when failing alchemy instead of @Fail.
 +
- Fixed: 'msg_tingling' defmessage not being shown under the correct circumstances.
 +
 
 +
02-05-2010, MrSugarCube
 +
- Fixed #1742: DIALOGCLOSE function not obeying the UsePacketPriority setting.
 +
 
 +
03-05-2010, MrSugarCube
 +
- Fixed: Database connection lost when using DB.EXECUTE with a query that returns results.
 +
 
 +
09-05-2010, MrSugarCube
 +
- Fixed #1710,#1731: Numerous causes of instability when using EF_NetworkOutThread.
 +
 
 +
13-05-2010, MrSugarCube
 +
- Fixed #1748: Exception when dropping an item onto a non-container.
 +
 
 +
15-05-2010, MrSugarCube
 +
- Fixed #1747: Container contents near the boundaries showing in wrong position when
 +
  UsePacketPriority is enabled.
 +
- Fixed #1746: Damage showing in the corner of the screen instead of above an enemy when
 +
  UsePacketPriority is enabled.
 +
 
 +
23-05-2010, MrSugarCube
 +
- Fixed #1751: Movement/sight checks fail when an item is too tall to fit within the Z
 +
  boundaries.
 +
 
 +
24-05-2010, MrSugarCube
 +
- Fixed #1756: Packets being sent for items in containers the client cannot see inside (A
 +
  side-effect of this is that CANSEE/LOS will return 0 for such items, until the client
 +
  opens/snoops the container).
 +
 
 +
25-05-2010, MrSugarCube
 +
- Fixed #1754: Armor rating in status window not updated when equipped armor pieces receive
 +
  damage.
 +
 
 +
29-05-2010, MrSugarCube
 +
- Fixed #1759: Client not always notified about login failure when EF_NetworkOutThread is
 +
  enabled.
 +
 
 +
31-05-2010, MrSugarCube
 +
- Fixed #1753: Client crash when moving into view of a character sitting on a chair.
 +
- Fixed #1760: Players unable to see items in the other player's trade window.
 +
 
 +
13-06-2010, MrSugarCube
 +
- Added: 'TooltipMode' setting to sphere.ini. When this is set to '1', instead of always
 +
  sending a full tooltip packet for every item, Sphere will send a smaller 'header' packet
 +
  and wait for the client to request the full information (for unchanged tooltips, clients
 +
  can use a local cache and less data will need to be sent).
 +
  Note: Since the header packet requires knowledge of what the tooltip will contain,
 +
  @ClientTooltip should be expected to fire twice in this mode (once for the header, once
 +
  for the full data). ARGN1 can be used to determine if the client asked for the tooltip,
 +
  but it is important that you do not use it to change the tooltip content.
 +
- Added: Support for caching tooltip data for characters and items. Whilst a tooltip is
 +
  cached, @ClientTooltip won't be fired. A new 'TooltipCache' setting is provided in
 +
  sphere.ini to control how long a cached tooltip will be valid for (set to 0 to disable
 +
  caching). If the new tooltip mode is being used then enabling this would be advisable
 +
  to avoid having @ClientTooltip fired twice for each client.
 +
- Modified: RESENDTOOLTIP now accepts parameters to control how the tooltip should be
 +
  sent.
 +
  The syntax is now: "RESENDTOOLTIP [sendfull=0,usecache=0]"
 +
  'sendfull' - 1 to force the full tooltip to be sent, or 0 to send just the header (when
 +
                TooltipMode=1, otherwise the full data will be sent anyway)
 +
  'usecache' = 1 to use cached tooltip if available, or 0 to clear the cache and force
 +
                @ClientTooltip to fire
 +
 
 +
02-07-2010, MrSugarCube
 +
- Fixed: Possible exception on Linux builds when an NPC moves.
 +
 
 +
03-07-2010, MrSugarCube
 +
- Modified #1761: The fix for issue #1756 (sending packets for items inside unopened
 +
  containers) must now be activated using the EF_FixCanSeeInClosedConts experimental flags,
 +
  since it has been reported to cause client crashes.
 +
 
 +
28-07-2010, MrSugarCube
 +
- Added #1776: P.COMPONENTS to access multi components at a location in the same way as with
 +
  P.STATICS. Usage is identical to P.STATICS, except that the COLOR property does not exist
 +
  for multi components. P.COMPONENTS.n.MULTI can be used as a reference to the multi that
 +
  contains the nth component at a location.
 +
 
 +
06-08-2010, ShiryuX
 +
- Added #1790: TAG.NOTO.PERMAGREY which sets the player's notoriety to neutral/grey.
 +
  This will only happen if the character is blue, everything else will override it.
 +
 
 +
07-08-2010, ShiryuX
 +
- Fixed #1772: Cooking skill wasn't counted as a crafting skill.
 +
 
 +
07-08-2010, ShiryuX (Script pack)
 +
- Fixed #1774: sphere_map0.scp (Renamed Occlo to Ocllo, correct spelling)
 +
 
 +
10-08-2010, ShiryuX
 +
- Fixed #1781: Walk buffer protection was counting steps even when step wasn't possible,
 +
  because of freeze status in the character.
 +
 
 +
12-08-2010, ShiryuX
 +
- Fixed #1793: OpenDoor Macro now won't ignore LOS and Distance is 3 (max).
 +
 
 +
15-08-2010, MrSugarCube
 +
- Fixed #1722: Game clients unable to connect when the server IP is set to 127.0.0.1.
 +
 
 +
17-08-2010, ShiryuX
 +
- Added #1566: MD5PASSWORD account function/property to instert or change a MD5 hash as password.
 +
  This way you can call: "SERV.ACCOUNT foobar MD5PASSWORD f4d9ff51c527e8ef67d924d4f0a6db66"
 +
- Fixed #1799: Accounts created using ADDMD5 won't cut the hash anymore.
 +
- Fixed: Dialog properties xmfhtmlgump and xmfhtmlgumpcolor not working correctly with dorigin.
 +
 
 +
19-08-2010, ShiryuX
 +
- Modified #1786: Disabled 'r' console command to be used by remote telnet, use 'resync' instead.
 +
  Any other way to access the console (physical or remote desktop) can still use it.
 +
 
 +
21-08-2010, ShiryuX
 +
- Added: Basic support for bard spellbook and skill (the actual spell effects need to be scripted).
 +
- Modified #1800: @UserWarMode will now have ARGN2 parameter, which by default is 1.
 +
  ARGN2 = 1 --> Will abort the skill action
 +
          0 --> Will _NOT_ abort the skill action
 +
- Fixed: SA Clients wasn't considered for Async connections.
 +
 
 +
21-08-2010, ShiryuX (Script pack)
 +
- Updated: sphere_defs.scp (Added 't_spellbook_bard' definition)
 +
 
 +
21-08-2010, khaos (Script pack)
 +
- Updated: sphere_spells.scp (Added new bards spells from SA, no functionality though)
 +
 
 +
22-08-2010, MrSugarCube
 +
- Fixed #1803: Items with a default value of 2147483647 on linux builds.
 +
 
 +
23-08-2010, MrSugarCube
 +
- Fixed #1796: Vendor speech containing the text "(null)".
 +
- Modified: MOREM on t_map items is now used to indicate which map has been drawn. Recent client
 +
  versions (7.0.8.0+) are able to use this value to view maps other than map0.mul.
 +
 
 +
23-08-2010, MrSugarCube (Script pack)
 +
- Updated: sphere_msgs.scp (Updated npc_vendor_s1 and npc_vendor_b1 defmessages)
 +
 
 +
25-08-2010, ShiryuX
 +
- Fixed #1795: Characters were able to dclick equipable items with attr_move_never.
 +
 
 +
05-09-2010, Khaos (Script pack)
 +
- Added: sphere_item_provisions_clothing_sa.scp, sphere_item_provisions_armor_sa.scp,
 +
  sphere_item_provisions_weapons_sa.scp (These files now contain all the default scripts
 +
  for Stygian Abyss weapons, armor, clothing, jewelry, and other miscellaneous items.
 +
  As a note: all throwing weapons use the t_weapon_sword type. There is no archery
 +
  animations for gargoyles)
 +
- Updated: sphere_skills.scp (Added FLAGS=skf_ranged|skf_fight to the throwing skill (Skill 57))
 +
 
 +
09-09-2010, MrSugarCube
 +
- Fixed #1806: Possible causes of a critical "timer expired" error on Linux builds.
 +
 
 +
11-09-2010, ShiryuX
 +
- Fixed: 'group' keyword not being stripped with tngstrip command (used for locations tab).
 +
 
 +
13-09-2010, MrSugarCube
 +
- Removed: EF_Unicode; its behaviour is always enabled.
 +
 
 +
14-09-2010, MrSugarCube
 +
- Fixed #1744,#1752: Desynchronisation of players' position between client and server.
 +
 
 +
20-09-2010, Khaos (Script pack)
 +
- Updated: sphere_item_provisions_armor_sa.scp (added layers to the wearable armor -shields.
 +
  Skirts were being treated as gloves)
 +
- Updated: sphere_item_ground_tiles_sa.scp (added the sparkle dupeitems for the hover over
 +
  animation)
 +
- Added: sphere_item_building_floors_sa.scp (contains all the new SA floor tiles, even the
 +
  runed items)
 +
- Added: sphere_item_building_doors_sa.scp (this file contains all the proper doors for the
 +
  SA expansion)
 +
 
 +
21-09-2010, Khaos (Script pack)
 +
- Updated: sphere_item_building_doors_sa.scp (added in ruined doors (Should be the last set))
 +
 
 +
27-09-2010, MrSugarCube
 +
- Fixed #1819: "World save has been initiated" messages not being sent until after the save
 +
  completes.
 +
- Fixed: Large packets sent by the client sometimes not parsed correctly, leading to strange
 +
  behaviours or console errors.
 +
 
 +
30-09-2010, ShiryuX
 +
- Fixed #1825: not writable books not displaying content for 5.0.0+ clients.
 +
- Modified: Axis strip to use only ONE file to dump the stripped scripts (like TNG strip does)
 +
  Commands are = TNG: "strip tng" or "tngstrip" (dump file sphere_strip_tng.scp)
 +
                Axis: "strip axis" or "strip" (dump file sphere_strip_axis.scp)
 +
 
 +
04-10-2010, MrSugarCube
 +
- Fixed: Editing a book page can cause the following page to be deleted.
 +
 
 +
07-10-2010, MrSugarCube
 +
- Fixed #1826: Male characters unable to walk over items with CAN_I_LIGHT set.
 +
 
 +
09-10-2010, ShiryuX
 +
- Added: "TAG.OVERRIDE.NOTO" and "TAG.OVERRIDE.NOTO.$uid" as notoriety flag overrides.
 +
  TAG.OVERRIDE.NOTO is a general override for the notoriety flag.
 +
  TAG.OVERRIDE.NOTO.$uid overrides the noto flag according to the viewer $uid.
 +
  * NOTE: The general override is applied before the viewer tag. So it will override EVERYTHING.
 +
          Usable flags can be found on sphere_defs.scp
 +
 
 +
09-10-2010, ShiryuX (Script pack)
 +
- Updated: sphere_defs.scp (added noto_types defintion)
 +
 
 +
11-10-2010, Khaos (Script pack)
 +
- Updated: sphere_item_provisions_weapons_sa.scp (fixed some typos)
 +
- Updated: spherechar_human.scp (Female barber was using male barber names instead of
 +
  the female name list)
 +
 
 +
13-10-2010, MrSugarCube
 +
- Added: Support for packet changes found in client 7.0.9.0.
 +
- Added: Support for new tiledata.mul and multi.mul formats found with client 7.0.9.0.
 +
  Since the tiledata size has increased again (supporting a maximum slot of 0FFFF),
 +
  multis must now start from 010000. If multi scripts are already using the new MULTIDEF
 +
  syntax then everything should work without any change to scripts.
 +
 
 +
14-10-2010, MrSugarCube
 +
- Fixed #1832: Exception on Linux build when logging in.
 +
 
 +
18-10-2010, MrSugarCube
 +
- Modified: Ships use their HEIGHT property to detect objects that are on the deck,
 +
  rather than assuming a value of 3.
 +
 
 +
22-10-2010, MrSugarCube
 +
- Fixed #1828: Instability when receiving large amounts of data from a client.
 +
- Fixed #1838: Fixed "Bad MENU item id" error when trying to display a custom item in a
 +
  menu or skill menu.
 +
- Fixed #1839: Exception when showing the edit menu for a container containing more than
 +
  64 items.
 +
 
 +
23-10-2010, MrSugarCube
 +
- Fixed #1835: @Destroy incorrectly firing on trade window contents when the container
 +
  is removed.
 +
 
 +
25-10-2010, MrSugarCube
 +
- Fixed #1822: Exception when a client sends a malformed skill lock packet.
 +
- Fixed #1782: Exception on linux build leading to sphere.pid file never being removed
 +
  when shutting down Sphere.
 +
 
 +
27-10-2010, Khaos
 +
- Added: Race selectors to newbie templates. Code works as follows: [newbie xxx <race>] Races
 +
  that can be set are "human", "elf", "gargoyle", or leave it default for normal functionality.
 +
  This works for the male_default, female_default, and all the skills defined in Newbie sections.
 +
- Added #1598: All max* stat values (Hits, stam, mana, food) can be _safely_ set up to 1 million.
 +
  Though you can go past this, we don't recommend it. Note: This should not be used on players
 +
  max values, and we _highly_ don't recommend it.
 +
 
 +
03-11-2010, MrSugarCube
 +
- Fixed: Exception on linux build when accessing guild functions without an SRC.
 +
 
 +
14-11-2010, MrSugarCube
 +
- Fixed #1847: Crash on 7.0.0+ clients when other clients are picking up and dropping
 +
  items.
 +
 
 +
21-11-2010, MrSugarCube
 +
- Fixed: Unable to access basic properties for non-game clients through SERV.CLIENT.x.
 +
 
 +
22-11-2010, Coruja (Script pack)
 +
- Updated #1851: sphere_map0.scp (renamed Trinsic Passage to Delucia Passage)
 +
 
 +
02-12-2010, MrSugarCube
 +
- Fixed #1861: Elven players turning into gargoyle ghosts when dead.
 +
- Fixed: Mana Vampire spell always gives mana to the caster even when the spell is blocked in
 +
  an @Effect trigger.
 +
 
 +
03-12-2010, MrSugarCube
 +
- Fixed #1770: Exception when NPC_AI_PATH is enabled and an NPC cannot find a route to its
 +
  destination.
 +
 
 +
10-12-2010, MrSugarCube
 +
- Fixed #1854: LogMask setting not have any effect on the messages being logged.
 +
 
 +
12-12-2010, MrSugarCube
 +
- Added #1865: ARROWQUEST function now accepts a third parameter to specify the arrow's id
 +
  (defaults to 0). This can be used to display more than one arrow at once on newer clients,
 +
  but bear in mind that older clients can still only show one arrow at a time and so the id
 +
  will effectively be ignored in their case.
 +
  If an id has been specified when showing the arrow, then you will also need to specify it
 +
  again when you want to remove it ("ARROWQUEST" with no arguments will only remove the arrow
 +
  with id 0).
 +
    ARROWQUEST 1000,1000,0 // show an arrow pointing to 1000,1000, id=0
 +
    ARROWQUEST 1020,1000,1 // show an arrow pointing to 1020,1000, id=1
 +
    ARROWQUEST 1000,1020,2 // show an arrow pointing to 1000,1020, id=2
 +
    ARROWQUEST 0,0,1      // remove the arrow pointing to 1020,1000
 +
 
 +
21-12-2010, MrSugarCube
 +
- Fixed #1869: Older clients freezing when an item or character with a long name speaks.
 +
 
 +
22-12-2010, MrSugarCube
 +
- Fixed #1843: Connections sometimes remaining open long after the client has disconnected.
 +
- Fixed #1848: Container contents slow to show when TooltipMode is set to 0.
 +
 
 +
23-12-2010, MrSugarCube
 +
- Fixed #1874: 7.0.0.0 - 7.0.8.2 clients freezing when using ARROWQUEST function.
 +
 
 +
26-12-2010, ShiryuX
 +
- Fixed #1729: NPC now teaches you if there's a skill to decrease and room for the new skill.
 +
  In before, if you were near the skillcap, the npc just rejected your train request.
 +
- Fixed #1873: Shop list tooltips are now being fully sent to the players.
 +
 
 +
26-12-2010, Coruja (Script pack)
 +
- Updated #1876: sphere_item_deco_lightsources.scp and sphere_item_deco_furniture.scp
 +
  (changed typo in candelabra's defnames, was using candleabra instead)
 +
 
 +
28-12-2010, ShiryuX
 +
- Fixed #1879: 'nightsight' function now sends light level update instead of full client update.
 +
 
 +
28-12-2010, Coruja (Script pack)
 +
- Updated #1877: sphere_item_deco_furniture.scp (fixed dupelist of items 0a2b and 0b5e)
 +
 
 +
02-01-2011, MrSugarCube
 +
- Added: UseExtraBuffer setting to sphere.ini to enable an additional data buffer for outgoing
 +
  network data.
 +
- Fixed #1858: Linux build considering connections lost when a non-critical error occurs during
 +
  data sending.
 +
 
 +
02-01-2011, MrSugarCube (Script pack)
 +
- Updated #1876: sphere_backward_compatibility.scp (Added backward compatibility defnames for
 +
  candelabras)
 +
 
 +
08-01-2011, MrSugarCube
 +
- Added #1845: Support to automatically invalidate and resend tooltips when certain properties
 +
  change on items or characters, via new AUTOTOOLTIPRESEND setting. See Sphere.ini for
 +
  available flags that can be used to control which properties are monitored. Note that some
 +
  scripts won't trigger the tooltips to resend (for example the 0008 flag won't detect a script
 +
  that sets MORE1 on armour, so a manual RESENDTOOLTIP would still be needed).
 +
- Fixed: Possible delay between sending packets required to display buy/sell menus.
 +
 
 +
09-01-2011, ShiryuX
 +
- Added #1881: TAT_AS_FULL trigger type to TRIGGER function to set ARGO, ARGN and ARGS.
 +
  Example: TRIGGER @MyTest,<def.TAT_AS_FULL>,01,100,200,300,here,start,my,args
 +
          will call @MyTest with ARGO.UID=01, ARGN1=100, ARGN2=200, ARGN3=300
 +
          and ARGS=here,start,my,args (this supports ARGV[].)
 +
- Modified: Now sphere reads registry keys from lastest clients (no need to manually set them)
 +
 
 +
09-01-2011, ShiryuX (Script pack)
 +
- Updated: sphere_defs.scp (added tat_as_full definition)
 +
 
 +
09-01-2011, MrSugarCube
 +
- Fixed #1886: Exception caused by an infinite loop when AutoTooltipResend detects a property
 +
  value being changed from within an @ClientTooltip trigger. Now, AutoTooltipResend won't
 +
  trigger another tooltip resend if a monitored property changes during the resend.
 +
- Fixed #1814: AutoResendTooltip setting not working when an item property is changed just
 +
  before it is placed in a container (e.g. when the item amount changes during stacking).
 +
 
 +
10-01-2011, MrSugarCube
 +
- Added #1872: Support for setting SPEEDMODE to 4, as handled by newer clients. This can be
 +
  used to prevent a player from moving. Movement checks have been adjusted accordingly so
 +
  whilst older clients won't understand this speed mode, Sphere will still block their
 +
  movement attempts (with a slight 'rubber banding' effect as you'd normally get when freezing
 +
  a player by other means).
 +
 
 +
11-01-2011, MrSugarCube
 +
- Fixed #1888: Exception caused by AutoTooltipResend attempting to send tooltips for deleted
 +
  items.
 +
 
 +
21-01-2011, MrSugarCube
 +
- Fixed #1894: Explode function placing a comma at the beginning of the result.
 +
 
 +
21-01-2011, Coruja (Script pack)
 +
- Updated #1893: sphere_map2.scp (Renamed "Shrine of the Virtues" to "Gargoyle Shrine", and
 +
  "Gargoyle City" to "Vel Lor Reg").
 +
 
 +
22-01-2011, MrSugarCube
 +
- Fixed #1868: Memory leak when TooltipCache setting is disabled (thanks Torfo).
 +
 
 +
25-01-2011, MrSugarCube
 +
- Fixed: Wage amount not being passed through to the 'npc_pet_wage_cost' defmessage.
 +
- Fixed: Spyglasses not searching properly for the nearest land tile.
 +
- Fixed: Optimised UID allocation not working as expected or sometimes not functioning at all.
 +
- Fixed: SuppressCapitals replaces unicode speech with blank text.
 +
- Fixed: Possible exception when importing from a WSC file where item properties are listed
 +
  in an unexpected order.
 +
 
 +
29-01-2011, MrSugarCube
 +
- Fixed #1901: Some targeting items (bloody bandages, carpentry tools, cotton, lockpicks,
 +
  thread, yarn, wool) using 'itemuse_weapon_promt' defmessage as their prompt instead of
 +
  'target_promt'.
 +
 
 +
11-02-2011, MrSugarCube
 +
- Fixed #1909: Exception when using the "d ui" command against older tiledata sizes.
 +
 
 +
12-02-2011, MrSugarCube
 +
- Fixed #1911: Ping history not decaying over time, causing an IP to be permanently blocked
 +
  when it exceeds the MAXPINGS setting.
 +
 
 +
13-02-2011, MrSugarCube
 +
- Modified #1912: Teleporting clients no longer receive unnecessary item packet for the smoke
 +
  effect they leave behind.
 +
 
 +
17-02-2011, MrSugarCube
 +
- Fixed: Client connections being blocked for connecting too often, even though they aren't.
 +
 
 +
19-02-2011, MrSugarCube
 +
- Modified: Profiling statistics now include number of faults that occurred in each thread.
 +
 
 +
22-02-2011, MrSugarCube
 +
- Fixed #1821: Exception when talking to an NPC who is having a conversation with another
 +
  player.
 +
 
 +
12-03-2011, Khaos (Script pack)
 +
- Added: Script support of all the new High Seas ship multis (sphere_item_multi_houses_ships.scp)
 +
  and parts (sphere_item_ship_parts_britannian.scp, sphere_item_ship_parts_gargish.scp,
 +
  sphere_item_ship_parts_orcish.scp, sphere_item_ship_parts_tokuno.scp).
 +
- Updated: Updated some of the axis cats in the sphere_item_multi_houses_ships.scp file.
 +
- Updated:sphere_item_unsorted.scp with noname tiles that were with the ships. Possible
 +
  ship component pieces.
 +
- Updated: sphere_item_ship_parts_britannian.scp; added more parts.
 +
 
 +
13-03-2011, MrSugarCube
 +
- Fixed #1925: SKILLBEST.n not working correctly.
 +
- Fixed #1922: Exception caused by Sphere trying to send character position to a client
 +
  before a character has been selected.
 +
 
 +
13-03-2011, Coruja (Script pack)
 +
- Updated #1893: sphere_map2.scp (Add guarded and global flags to Ver Lor
 +
  Reg).
 +
 
 +
13-03-2011, Khaos
 +
- Fixed: Advanced Line of Sight. Couldn't shoot or cast with any intervening
 +
  water files.
 +
- Added #1916: sphere.ini now contains "DefaultCommandLevel". It takes a level
 +
  of 0 - 7 (# corresponds to plevel). Default is 7. Whatever you set the value
 +
  to will be the min plevel for a char to use all commands not in a [plevel xxx].
 +
 
 +
13-03-2011, Khaos (Script pack)
 +
- Updated: sphere_defs.scp (added los_nc_water to los flags section. If you use
 +
  with CANSEELOSFLAG, it will stop LOS across water (i.e. Firing from a ship to
 +
  another ship)).
 +
 
 +
21-03-2011, MrSugarCube
 +
- Added: Support for packet changes found in client 7.0.13.0.
 +
 
 +
07-04-2011, MrSugarCube
 +
- Fixed #1935: Exception when using "d a" command on Linux build.
 +
- Fixed #1940: Exception on Windows build when an invalid format string is passed
 +
  to RTIME.FORMAT.
 +
 
 +
09-04-2011, MrSugarCube
 +
- Modified #1941: Custom houses (t_multi_custom) display as worldgem pieces in
 +
  debug mode.
 +
 
 +
11-04-2011, MrSugarCube
 +
- Fixed #1942: Exception when using MD5HASH with certain lengths of text.
 +
 
 +
23-04-2011, MrSugarCube
 +
- Fixed #1919: Exception when a client sends an incomplete handshake packet.
 +
 
 +
10-05-2011, MrSugarCube
 +
- Fixed: Exception when trying to set REGENx and 'x' is an invalid stat id.
 +
 
 +
12-05-2011, MrSugarCube
 +
- Modified #1954: Unplaced object details are now listed during garbage
 +
  collection, under code 3202.
 +
 
 +
12-05-2011, MrSugarCube (Script pack)
 +
- Updated: sphere_map_points4.scp (Corrected z-level of the moongate locations)
 +
 
 +
17-05-2011, MrSugarCube
 +
- Added: FeatureExtra setting to sphere.ini with flags to enable new gothic
 +
  and rustic themed items in the house designer.
 +
 
 +
18-05-2011, MrSugarCube
 +
- Fixed #1958: Unable to pass variables as arguments to FORCHARLAYER and
 +
  FORCHARMEMORYTYPE loops.
 +
- Fixed #1959: Possible exception when Sphere tries to load verdata.mul file.
 +
 
 +
09-06-2011, MrSugarCube
 +
- Fixed #1969: Timer being set to abnormally high values when attempting skills.
 +
- Fixed #1967: Comments in sphereaccu.scp using the wrong slash direction.
 +
- Fixed: Backspace key not working in the Linux build's console.
 +
- Modified: Console output on Linux build will automatically have colour enabled
 +
  for certain terminal types that support colour codes.
 +
 
 +
09-06-2011, babidi (Script pack)
 +
- Updated #1970: sphere_map_points0.scp (Fixed start locations all using coordinates
 +
  for Britain)
 +
 
 +
12-06-2011, MrSugarCube
 +
- Fixed #1955: Exception when DB.QUERY/EXECUTE is used whilst a previous
 +
  DB.AQUERY/AEXECUTE operation is still running in the background.
 +
 
 +
18-06-2011, MrSugarCube
 +
- Fixed #1980: Unable to handle @Rename trigger at character creation using EventsPlayer.
 +
- Fixed #1977: New player characters starting at the wrong location.
 +
- Fixed: Possible exception when a character doesn't have enough strength to equip an item.
 +
 
 +
18-06-2011, babidi (Script pack)
 +
- Updated #1975: sphere_map0.scp, sphere_map0_ml.scp, sphere_map1.scp, sphere_map2.scp,
 +
  sphere_map4.scp (Updated region flags to use defnames)
 +
 
 +
18-06-2011, Coruja (Script pack)
 +
- Updated #1966: sphere_map2.scp (Added region flags to a_lbr)
 +
 
 +
18-06-2011, MrSugarCube (Script pack)
 +
- Updated #1983: spherechar_sa.scp (Fixed female gargoyles not having MT_FEMALE set)
 +
 
 +
19-06-2011, MrSugarCube
 +
- Fixed #1976: Aggressor memories being removed when leaving war mode.
 +
- Fixed #1965: SKF_IMMOBILE causing clients to become unable to move if skill is used too
 +
  often.
 +
 
 +
20-06-2011, MrSugarCube
 +
- Fixed #1956: Region's @Enter trigger firing when a creature is summoned, before the
 +
  creature's @Create trigger fires.
 +
 
 +
21-06-2011, MrSugarCube
 +
- Fixed #1986: Exception when evaluating intelligence skill is used and either one of the
 +
  magery or necromancy SKILL sections don't exist.
 +
 
 +
01-07-2011, ShiryuX
 +
- Fixed #1981: Now you will be able to cast spells with 'spellflag_field' flag on chars
 +
  if 'spellflag_targ_char' is enabled.
 +
 
 +
02-07-2011, MrSugarCube
 +
- Added: 'NetworkThreads' and 'NetworkThreadPriority' settings to Sphere.ini. These can be
 +
  used to enable client connections to be handled by separate threads. The NETWORKTHREADS
 +
  setting controls how many threads should be used to handle networking (setting this to 0
 +
  will cause networking to be handled in the main thread, like before). NETWORKTHREADPRIORITY
 +
  can be used to control the priority of the networking threads (the default value of 255
 +
  should be the best option to use).
 +
  The EF_NetworkOutThread experimental flag has been removed.
 +
 
 +
08-07-2011, MrSugarCube
 +
- Fixed #1991: Custom packet handling functions causing clients to freeze.
 +
 
 +
21-07-2011, ShiryuX
 +
- Added #1963: OF_DClickNoTurn, if enabled players won't turn when dclick or target an item.
 +
 
 +
31-07-2011, MrSugarCube
 +
- Fixed #1998: @Destroy not firing on player characters or their items, when deleted via the
 +
  character selection screen or their account is deleted.
 +
- Fixed #1997: "World save has been initiated" messages not being sent until after the save
 +
  completes, when NetworkThreads is set to 0.
 +
 
 +
02-08-2011, ShiryuX
 +
- Modified #2011: Enabled spells with SPELLFLAG_SCRIPTED to use LOCAL.CREATEOBJECT1,
 +
  LOCAL.CREATEOBJECT2, LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE for spells with SPELLFLAG_FIELD
 +
  or with SPELLFLAG_SUMMON. If width/gauge is not set, default is 7/1.
 +
 
 +
02-08-2011, ShiryuX (Script pack)
 +
- Updated: sphere_defs.scp (A few more buff icons in the buff_icons defname)
 +
 
 +
05-08-2011, ShiryuX
 +
- Fixed #2008: RANGEH now displays the longest range and RANGEL the shortest (High/Low)
 +
 
 +
27-08-2011, ShiryuX
 +
- Added #2020: CUOSTATUS and UOGSTATUS, which enable/disable the response to UOGateway/ConnectUO
 +
              Default for both is: 1 (see sphere.ini also)
 +
- Added: SPELLFLAG_AREA to create custom area spells (you must use SPELLFLAG_SCRIPTED).
 +
- Added: LOCAL.AREARADIUS, which let you change the radius of the hardcoded area spells
 +
        and let you set the radius of scripted skills (if not set, default is 4).
 +
Example:
 +
[SPELL s_new_spell]
 +
FLAGS=SPELLFLAG_SCRIPTED|SPELLFLAG_AREA|SPELLFLAG_TARG_XYZ
 +
....
 +
ON=@SUCCESS
 +
LOCAL.AREARADIUS = 5
 +
- Added: Function 'attacker.clear' to clear the attackers. Use it with caution.
 +
 
 +
27-08-2011, ShiryuX (Script pack)
 +
- Updated: sphere_defs.scp (added new spellflag definition)
 +
 
 +
31-08-2011, ShiryuX
 +
- Fixed #2023: Now you can use custom items on LOCAL.CREATEOBJECT1/2 with SPELLFLAG_FIELD.
 +
 
 +
01-09-2011, ShiryuX
 +
- Added #2021: Settings to edit default color and font for SysMessage/Message/Click.
 +
  Don't forget to update your scripts. Settings are included in sphere_msgs.scp
 +
 
 +
01-09-2011, ShiryuX (Script pack)
 +
- Updated: sphere_msgs.scp (added SMSG_DEF_COLOR, SMSG_DEF_FONT, MSG_DEF_COLOR, MSG_DEF_FONT
 +
            IMSG_DEF_COLOR and IMSG_DEF_FONT settings)
 +
 
 +
02-09-2011, ShiryuX
 +
- Fixed #2025: Removed any kind of internal effect for spells with SPELLFLAG_SCRIPTED.
 +
  Since it's supposed to have a scripted effect!
 +
- Modified: SPELLFLAG_FX_BOLT to work with SPELLFLAG_SCRIPTED.  It will fire a bolt from
 +
            caster to target. If SPELLFLAG_GOOD is used the effect won't explode.
 +
            ID of the effect is 'EFFECT_ID' spell's property.
 +
 
 +
02-09-2011, ShiryuX (Script pack)
 +
- Fixed #2006: sphere_spells.scp (commented out RUNES for Mysticism spells & changed Discordance)
 +
 
 +
03-09-2011, ShiryuX
 +
- Fixed #2027: Wrong internal clilocs for Cunning and Agility Buffs.
 +
- Added: Buff for Gargoyle Fly ability.
 +
- Fixed: LOGARITHM(), TAN, SIN and COS function were returning wrong values.
 +
 
 +
03-09-2011, ShiryuX (Script pack)
 +
- Modified: sphere_defs.scp (added buff clilocs for gargoyle fly)
 +
 
 +
03-09-2011, Coruja (Script pack)
 +
- Updated #2028: sphere_item_misc_se.scp (wrong DUPELIST for 02417)
 +
 
 +
13-03-2012, Coruja (Script pack)
 +
- Updated #2056: sphere_map0.scp (fixed despise and covetous levels)
 +
 
 +
20-03-2012, Coruja (Script pack)
 +
- Updated #2057: sphere_map2.scp (fixed ilshenar regions)
 +
 
 +
23-03-2012, ShiryuX
 +
- Added: 'AttackerTimeout' modifies how long a NPC can remember a player since his last attack,
 +
        that a NPC forgets his attacker. You can play with this and attacker.#.ELAPSED.
 +
        See sphere.ini. Default value is 300 (5 minutes).
 +
- Fixed #2034: Disabled timeout check for TELNET connections.
 +
- Fixed #2050: Now if you set BankMaxWeight/Items to something less than 0
 +
              will avoid the weight/item amount check.
 +
 
 +
26-03-2012, RanXerox
 +
- Updated #2036: sphere_map0.scp, sphere_map3.scp, sphere_map4.scp (added some missing locations)
 +
 
 +
26-03-2012, MrSugarCube
 +
- Modified #2040: MT_EQUIP, MT_USEHANDS and MT_MOUNT flags are respected when a character's body
 +
  changes. Characters won't be dismount or have their items unequipped if the new body has the
 +
  relevant flags.
 +
 
 +
27-03-2012, MrSugarCube
 +
- Added: Support for reading map data from mapXLegacyMUL.uop files found in client 7.0.24.0
 +
  onwards. Sphere looks for the old mapX.mul file(s) first and will continue to use these if
 +
  both file formats exist alongside each other.
 +
 
 +
31-03-2012, ShiryuX
 +
- Fixed #2052: Players trying to move during a resync pause caused exceptions on console.
 +
 
 +
24-04-2012, MrSugarCube
 +
- Fixed: Unable to double click console in Windows to open scripts when forward slashes are used
 +
  in script paths.
 +
 
 +
25-07-2012, ShiryuX
 +
- Added: SPELLFLAG_TARG_DEAD so you can create spells for dead people.
 +
- Added: SPELLFLAG_DAMAGE for damage spells, along with HARM effect.
 +
        You can override the Damage Type under @(Spell)Effect with LOCAL.DamageType.
 +
- Added: MAGICF_NOANIM so you can disable animation/direction update of the character in every spell.
 +
- Modified: SPELLFLAG_SCRIPTED changes behavoir and allows to mixed with other flags.
 +
- Modified: SPELLFLAG_FX_BOLT will totally work now. EFFECT_ID can be overrided with LOCAL.CreateObject1.
 +
- Modified: SPELLFLAG_AREA can be used and altered. If no specified radius, default is 4.
 +
            The effect of course, if it's a custom spell, must be scripted.
 +
- Modified: Spell Summon Creature can be overrided with LOCAL.CreateObject1.
 +
- Modified: Limit for ANIM function, so you can play the new Gargoyle Anims now.
 +
- Fixed: Can modify Flamestrike EFFECT_ID now.
 +
- Fixed: WOPPlayer to 0 overrided the EquippedCast check and players could cast while equipped.
 +
 
 +
25-07-2012, ShiryuX
 +
- Updated: sphere_spells.scp, sphere_defs.scp with the new spells changes
 +
 
 +
25-07-2012, Coruja (script pack)
 +
- Updated #2069: sphere_map_points3.scp (added missing teleports in Doom)
 +
 
 +
31-07-2012, Ben
 +
- Fixed #2085: RESURRECT not working.
 +
 
 +
30-08-2012, Ben
 +
- Fixed #2093: Animation above 400 not showing all frames.
 +
 
 +
04-09-2012, Ben (script pack)
 +
- Updated: sphere_spells.scp with missing SPELLFLAG_AREA.
 +
 
 +
04-09-2012, Ben
 +
- Fixed #2096: Sommon spells not making creatures your pet.
 +
- Fixed #2097: area spells requiring spellflag_scripted to work
 +
- Updated: sphereCrypt.ini with keys up to 7.00.270
 +
 
 +
16-09-2012, Ben
 +
- Fixed #2094: double @Destroy trigger on summoned char.
 +
 
 +
17-09-2012, Terrikate
 +
- Fixed #1831: Trigger @PERSONALSPACE did not fire on NPCs
 +
- Fixed #1651: LastLogged message always sent current time
 +
- Fixed #1944: Some combination of stairs and delete function can remove the dirt on floor of the house
 +
- Modified #1749: Error messages 'Bad Login' become warnings to facilitate analysis of the logs
 +
- Modified: Resync forced to create or delete items in custom houses to update correctly on all clients
 +
 
 +
20-09-2012, Terrikate
 +
- Added #1542: Implemented CTAGCOUNT like TAGCOUNT for clients
 +
- Fixed #1590: Attacker list contains self uid
 +
 
 +
22-09-2012, Ben
 +
- Added: TAG.OVERRIDE.ROCK.DAM to override the damage done by rock throwing
 +
Note: TAG.OVERRIDE.ROCK was already implemented with the ability to change rock to other items.
 +
It can also add the throwing ability to other NPCs that have the tag. (never reported in changelog)
 +
- Added: TAG.OVERRIDE.BREATH.DAM to override Damage done from fire breathing.
 +
 
 +
22-09-2012, Ben (Script pack)
 +
- Fixed #2086: added SERV.MYSQLPASSWORD to plevel 7 group in spheretables.scp
 +
 
 +
24-09-2012, Terrikate
 +
- Fixed #2078: t_multi_custom causes memory leak in client
 +
 
 +
06-10-2012, Ben
 +
- Fixed #2101: Added a value to i_staff_black in default pack to prevent possible crash in vendor menu.
 +
- Fixed #2088: Char hue returning to OSKIN on reveal from invis spell.
 +
 
 +
12-10-2012, Terrikate
 +
- Fixed: ATTACKER.n.ELAPSED: not increased the timer correctly, always returned 0
 +
- Fixed: ATTACKER.LAST: returned one of the attackers randomly, no the last
 +
 
 +
12-10-2012, Ben
 +
-Added: Party triggers.
 +
        @PartyInvite(def=recipient, src=sender, return 1=stop default)
 +
@PartyRemove(def=char getting kicked, src= the one kicking, no return, ARGN=1 if triggered by disband)
 +
@PartyDisband(def=master, src=master, no return)
 +
 
 +
17-10-2012, Terrikate
 +
- Added #1987: More information when fails to delete a character. (account, character name and ip)
 +
      Now will be a message of type LOG_WARNING rather than LOG_ERROR
 +
- Added #1854: TAG.NOMUTESPEECH=1 to unmute specific areas created by items.
 +
      Only makes sense to use it if the optional flag OF_NoHouseMuteSpeech is disabled
 +
- Added #1816: f_onaccount_create function to be called when create an account by script or console
 +
- Modified: GMs can now listen to every player without any restriction.
 +
 
 +
17-10-2012, Terrikate (Script pack)
 +
- Updated #1816: sphere_serv_triggers.scp (added function f_onaccount_create)
 +
 
 +
22-10-2012, Terrikate
 +
- Fixed #2104: functions UPDATE and REVEAL forced an update unnecessary of the client
 +
 
 +
22-10-2012, Ben
 +
- Fixed: .UOP file support. It should now be able to handle future updates.
 +
- Updated: ML map size detection to allow for new .uop file format.
 +
 
 +
28-10-2012, Ben
 +
- Fixed #2107: Trying to open and use .uop files even if non existant.
 +
 
 +
03-11-2012, Mordant (Script Pack)
 +
- Added: t_forest and t_jungle TERRAIN types in sphere_types.scp
 +
 
 +
11-11-2012, Ben
 +
- Fixed #2106: MAGICF_STACKSTATS causing crash.
 +
 
 +
23-11-2012, Ben
 +
-Fixed #2115: Cutting custom hides producing default leather.
 +
Now TDATA1 of type t_hide can hold ID or DEFNAME of custom cut leather (or any item).
 +
 
 +
27-12-2012, Ben
 +
-Fixed #2112: Added ini setting NPCSkillSave with a default value of 10 to keep normal behaviour.
 +
Any NPC skills below this value will not be saved and will be reseted to 0.
 +
 
 +
04-01-2013, Ben
 +
-Changed: OVERRIDE.REGENVAL so that it is the tagvalue or 1 instead of 1+tagvalue.
 +
-Fixed 2123: REGEN VAL not being accurate on mounted horses.
 +
 
 +
18-1-2013, Ben
 +
-Added: <ASCPAD size,text> Does the same as <ASC text>, but padds with 0s untill size is reached.
 +
Will also truncate the text if longer then size
 +
 
 +
2-02-2013, Ben
 +
-Fixed #2128: IMSG_DEF_COLOR overriding Chars noto colors.
 +
-Fixed #2131: Too many packets sent from multis.
 +
 
 +
10-02-2013, Ben
 +
-Fixed: EQUIPPEDCAST in sphere.ini not working properly.
 +
 
 +
13-02-2013, shaklaban
 +
-Fixed #2134: COMPONENTS of the point not working, if MAP not 0.
 +
 
 +
16-02-2013, shaklaban
 +
Modified: sphere.ini modified to stable settings (NetworkThreads=0 and UseAsyncNetwork=0).
 +
 
 +
16-02-2013, Ben
 +
-Fixed: small typo in sphere.ini
 +
-Added: Support for new UOGateway status request.
 +
 
 +
20-02-2013, Ben
 +
-Added: sphere.ini option ALLOWNEWBTRANSFER. When set to 1, will allow newbi items to stay newbied after tranfer to an NPC.
 +
-Fixed #2139: All dung being named Horse Dung. Now it's  "animal name" dung
 +
-Added: Read/Write (SERV.MAP.map_num.SECTOR.sec_num function) to have access to individual sectors.
 +
 
 +
23-02-2013, Ben
 +
-Fixed #2133: <Dsomeval> returning 0 if <someval> is negative.
 +
-Fixed #2120: Some server properties are no longer writable (ACCOUNTS, CHARS, ITEMS, SAVECOUNT, TIME)
 +
 
 +
24-02-2013, Ben
 +
-Fixed #1494: (script pack) possible exploit with arrow value
 +
-Fixed #1544: qval returning " " instead of "" (now returns true empty string)
 +
-Fixed: Timezones not being calculated properly when ALLOWLIGHTOVERRIDE is on.
 +
-Fixed #2140: Vendors are now closing shop when ISNIGHTTIME and not ISDARK.
 +
 
 +
02-03-2013, Ben
 +
-Fixed: ascpad throwing out an error for no reason.
 +
 
 +
03-03-2013, Ben
 +
-Fixed #2043: For loops last loop executed two times.
 +
 
 +
04-03-2013, Ben
 +
-Fixed: COMBAT_OSIDAMAGEMOD not applying the proper bonus calculations
 +
 
 +
06-03-2013, Ben
 +
-Fixed #2127: EF_FixCanSeeInClosedConts not updating unequiped items.
 +
-Fixed: More COMBAT_OSIDAMAGEMOD calculation errors
 +
 
 +
20-03-2013, Shaklaban
 +
-Added: TAG.OVERRIDE.SPEED for weapons.
 +
 
 +
23-03-2013, Shaklaban
 +
-Added #2146: SECTOR.NUMBER for accessing index of the sector.
 +
 
 +
31-03-2013, Ben
 +
-Fixed: LIST.xxx.num.INSERT returning an error when the list doesn't exist. It will now create it and place the item at index 0.
 +
-Added: LOCAL.PASSWORD to f_onaccount_create as a readable variable only for now.
 +
-Fixed: Quoted numbers inside a variable will now be properly saved as a string, and returned as a string.
 +
 
 +
23-04-2013, Shaklaban
 +
-Added: DeadCannotSeeLiving option for sphere ini.
 +
DeadCannotSeeLiving=1: Dead players cannot see npcs (except healers and their own pets).
 +
DeadCannotSeeLiving=2: Dead players cannot see players and npcs.
 +
DeadCannotSeeLiving=0: Old behaviour.
 +
 
 +
04-05-2013, Shaklaban
 +
-Fixed: Begging animation cannot disabled with return 1 @prestart.
 +
</pre>
 +
==0.56c==
 +
<pre>
 +
---- 0.56c --------------------------------------------------------------------
 +
---- 16/06/2013
 +
 
 +
12-07-2013, Coruja (Script pack)
 +
- Updated #2171: sphere_defs.scp (added missing midis SE/ML/HS)
 +
 +
19-07-2013, Ben
 +
-Added: Triggers @Enter, @Exit, and @Step to ROOMDEFs
 +
(Script pack)
 +
-Updated #2173: some components in sphere_item_multis_houses_ships.scp
 +
-Removed: region_flag_globalname in sphere_def.scp since it's no longer in use
 +
-Removed: region_flag_globalname from sphere_map0.scp and sphere_map2.scp
 +
-Added: REGION_FLAG_ANNOUNCE to regions that have a TAG.ANNOUNCEMNT in sphere_map0.scp
 +
 
 +
20-07-2013, Ben
 +
-Added: Tags functions to ROOMDEF. (TAG, TAG0, TAGAT, TAGCOUNT, TAGLIST, CLEARTAGS)
 +
-Fixed: Setting region/room tags in game (ex: .region.tag.test 1) not setting properly.
 +
 
 +
05-08-2013, Ben
 +
-Added #2175: local.CreateObject1 <itemdef> to create food spell. If set, it will produce this item when the spell if done.
 +
-Modified #2181:(script pack) Incorrect DUPELIST on i_keg_wood
 +
-Added #2148: tag.NoRestock on vendors and regions. Setting either one to 1 will stop routine restocking of vendors
 +
-Fixed: Error in ISTEVENT.
 +
-Added #2177: - <ISTIMERF.functionname> to check if a timerf exists. Returns the time left in sec if it exists or 0 if not.
 +
  - TIMERF STOP,functionname to stop a specific timerf.
 +
-Removed #2180:(script pack) i_orb and i_minion_leather from spherechar_lbr.scp
 +
-Added #2183: EF_FixKillTrigger 0x02 to possibly fix Exp system and @Kill trigger
 +
-Fixed #2159: Items with ATTR attr_newbie should not be stuck on NPCs with ALLOWNEWBTRANSFER on.
 +
-Fixed #2172: (script pack) Magery spell sound def adjusted.
 +
 
 +
13-08-2013, Ben
 +
-Fixed #2189: Changed ATTACKER.CLEAR from readable to writable.
 +
 
 +
25-08-2013, Ben
 +
-Added: Auto detection of in use triggers (Vjaka's code from 0.57 source)
 +
-Removed: ExperienceMode 0x20 and 0x40 since Auto trigger detection is enabled.
 +
-Removed: EF_New_Triggers, EF_Minimize_Triggers, and EF_NPCAct_Triggers since Auto trigger detection is enabled.
 +
-Removed: @NPCHearNeed trigger in sphere_events_human.scp since this trigger doesn't exist!
 +
 
 +
27-08-2013, RanXerox
 +
-Correction to i_keg_wood_2 (it is not a container)
 +
-Corrected spelling mistakes ("entrance" not "entrace") in sphere_map2.scp
 +
-Added Armored Boura to mount defs in sphere_defs.scp
 +
-Added more random sets in sphere_defs.scp
 +
-Added more sounds in sphere_defs.scp
 +
-Renamed some ITEMDEFs (noted in sphere_backward_compatibility.scp)
 +
-Formatted scripts and updated syntax in numerous files
 +
-Added t_acid terrain type to sphere_types.scp (not used yet)
 +
-Moved numerous ITEMDEFs from one file to another
 +
-Added numerous new ITEMDEFs
 +
-Added more sphereCrypt.ini entries
 +
-Differentiate mod* and max* in the info dialog
 +
-Added placeholders for new spells
 +
-Magery Spell flags made consistent
 +
-Magery spell resources modified to match the spellbook in modern clients
 +
-Numerous additions to creature height table in sphere.defs
 +
-Replaced hardcoded magic resistance string
 +
 
 +
28-08-2013, RanXerox
 +
-Added more ITEMDEFs
 +
-Fixed DUPELIST entries
 +
-Changed some Axis categories, subsections and descriptions
 +
-Moved ITEMDEFs from one file to another
 +
-Major changes to doors script file in preparation for making new doors work
 +
 
 +
31-08-2013, Ben
 +
-Fixed #2193: Mounts will die instantly when killed while mounted.
 +
 
 +
01-09-2013, RanXerox
 +
-Moved numerous ITEMDEFs
 +
-Added numerous ITEMDEFs
 +
-Changed some DEFNAMEs
 +
-Fixed some spelling errors
 +
-Affected files:
 +
  items/sphere_item_aos_se.scp
 +
  items/sphere_item_building_doors.scp
 +
  items/sphere_item_building_doors_sa.scp
 +
  items/sphere_item_building_floors.scp
 +
  items/sphere_item_building_floors_sa.scp
 +
  items/sphere_item_building_floors_se.scp
 +
  items/sphere_item_building_roofs.scp
 +
  items/sphere_item_deco_dungeons_traps_dead.scp
 +
  items/sphere_item_deco_misc.scp
 +
  items/sphere_item_deco_virtues.scp
 +
  items/sphere_item_ground_tiles.scp
 +
  items/sphere_item_magic_ninjitsu_bushido.scp
 +
  items/sphere_item_magic_spellweaving.scp
 +
  items/sphere_item_misc.scp
 +
  items/sphere_item_ml_floor_wall.scp
 +
  items/sphere_item_profession.scp
 +
  items/sphere_item_provisions_weapons.scp
 +
  items/sphere_item_resources.scp
 +
  items/sphere_item_unsorted.scp
 +
  npcs/spherechar.scp
 +
  npcs/spherechar_mondains_legacy.scp
 +
  npcs/spherechar_sa.scp
 +
  sphere_backward_compatibility.scp
 +
  sphere_menu.scp
 +
  sphere_newb.scp
 +
  sphere_skillmenu.scp
 +
  sphere_template_vend.scp
 +
 
 +
02-09-2013, Ben
 +
-Added: 04e and 052 tiles to t_water in sphere_types.scp
 +
-Fixed #2200: Custom trigger not working with new automated trigger detection
 +
-Fixed #2199: Resource gembits being set to 0 everytime.
 +
 
 +
03-09-2013, Ben
 +
-Fixed #2201: @itemXXX triggers not all working.
 +
 
 +
04-09-2013, RanXerox
 +
-Fixed a bug in @kill trigger where, if enabled, a killer would not get credit
 +
(karma, fame, experience) for the kill.
 +
 
 +
07-09-2013, Ben
 +
-Added #1805: ColorNotoInvul with default value of 0x35 and NotoInvul 0x40 flag for PetsInheritNotoriety.
 +
-Fixed #2186: Dialoglist not being updated when closing dialogs.
 +
 
 +
08-09-2013, RanXerox
 +
-Fixed #2203: Added missing Action values to sphere_dialog.scp
 +
-Fixed #2204: Cooking and Crafting skills now behave like proper crafting skills
 +
 
 +
08-09-2013, Ben
 +
-Fixed #2191: Turning at the map edge with boats will not trow a console error.
 +
-Fixed #2192: Should not be able to turn on another boat.
 +
 
 +
10-09-2013, Ben
 +
-Fixed #2141: WorldGem Bits should now recognise map edge properly.
 +
 
 +
11-09-2013, RanXerox
 +
-Default DISPID for creation of T_SEED items now configured in Sphere_Defs.scp
 +
-New SphereCrypt.ini key
 +
 
 +
15-09-2913, Ben
 +
-Fixed: @ResourceFound trigger not working.
 +
-Fixed: Error caused by chars spawning when a GM is standing close to point 0,0
 +
-Fixed #2207: ARGN1 in @SELL and @ITEMSELL is now the sold amount and not the total amount.
 +
-Added: ARGN2 in @SELL and @ITEMSELL is the price of the items sold after vendermarkup (ARGN2 / ARGN1 = price per unit)
 +
-Fixed #2205: Changed Noto colors to match OSI default.
 +
-Fixed #2194: Functions starting with any hardcoded functions like LIST and followed with _ should now work as intended.
 +
 
 +
17-09-2913, Ben
 +
-Added: Runto npc command. Accepts a point or region name as argument.
 +
-Changed: Goto npc command to accept region name as argument.
 +
-Added: NPC_AI_PERSISTENTPATH 0x0400 to the NPCAI setting in sphere.ini. (NPC will retry multiple times to find it's path)
 +
-Updated: Sphere.ini and sphere_msg.scp with new settings
 +
 
 +
22-09-2013, Ben
 +
-Fixed #2076: Picking up corpse crashing server (not tested)
 +
 
 +
01-10-2013, Ben
 +
-Fixed #2211: Corpse having wrong MORE values.
 +
 
 +
02-10-2013, Ben
 +
-Fixed #2214: IsTimerF.function and TIMERF STOP,function not working properly
 +
 
 +
06-10-2013, Ben
 +
-Fixed #2080: Items with different tags will no longer stack
 +
-Added #2210: Support for item stacking with EF_ItemStacking 0x04(probably not 100% OSI style but should do the trick (maybe even better))
 +
 
 +
12-10-2013, Ben
 +
-Fixed #2219: P.COMPONENTS.x always returning 0 on maps bigger then 0
 +
-Remove GM check in Item stacking
 +
 
 +
15-10-2013, RanXerox
 +
- Removed 0x from flag explanations in sphere.ini since spherescript does not use 0x to indicate hex
 +
- More changes to script pack than can be counted!
 +
- Dozens of files deleted, split, added, renamed, etc.
 +
- Many hundreds of ITEMDEFs and CHARDEFs shuffled from one place to another.
 +
- Lots of modifications to DUPELIST and DUPEITEM, etc.
 +
 
 +
16-10-2013, RanXerox (Script Pack)
 +
- Converted Unix files to DOS format
 +
- Replaced: references to the missing MESSAGELOC function
 +
- Added: i_canal ITEMDEF (now all items can be used in custom foundation multi's)
 +
- Fixed #2212: renamed Horde Demons
 +
- Fixed #2215: modified WEIGHT on i_dragonscale
 +
- Removed: bad reference to i_bear_skull
 +
- Added: some useful NPC functions
 +
- Renamed: sphere_items_seige.scp (...it's spelled Siege)
 +
- Finished scripting more lightsources
 +
 
 +
17-10-2013, RanXerox (Script Pack)
 +
- Switched: 0f3e and 0f3f (i_arrow) because older clients have a rock as ITEMDEF 0f3e
 +
- Removed: the name and title coloration from vendors, citizens, and guildmasters
 +
- Fixed: a bad reference to random_skirts
 +
- Fixed: broken SYSMESSAGELOC (they were all missing color)
 +
- Improved: corrosive slime now drops acid pool when threatened
 +
- Added: missing stair multi's
 +
- Added: HIREDAYWAGE back to sailors and mercenaries
 +
- Added: deed's for all the house foundations
 +
- Added: some missing NPC functions (is cursed)
 +
- Added: some missing combat timers (paralyzing blow and block healing)
 +
 
 +
18-10-2013, RanXerox (Script Pack)
 +
- Fixed: armored steed figurine
 +
- Fixed: syntax (SERV.NEWITEM instead of SRC.NEWITEM and NEW. instead of SRC.ACT.)
 +
- Fixed: fukiya (dart shooter)
 +
- Fixed: various mounts that had errors with the mounted animation
 +
- Fixed: some entries in sphere_typedefs.scp
 +
- Fixed: implementation of monsters that "summon" other monsters is now consistent
 +
- Fixed: console errors in some NPC events
 +
- Fixed: Paroxysmus loot (he dropped himself as an icon instead of his pet dragon)
 +
- Fixed #1536: Pack animals with wrong maxweight
 +
 
 +
18-10-2013, Ben
 +
-Fixed #2222: Shrink not working anymore.
 +
-Added: UID of shrunken pet is now accessible in ACT of the player.
 +
 
 +
19-10-2013, Ben
 +
-Fixed #2218: Client crash caused by removefromview when bank is open.
 +
-Added: CLOSE function to container items
 +
-Added: CLOSEPROFILE, CLOSESTATUS, and CLOSEPAPERDOLL functions to characters.
 +
Can take a UID as argument of the char's window you whish to close.
 +
-Fixed #2221,#1933,#1618: EF_Walkcheck blocking some stairs.
 +
 
 +
20-10-2013, RanXerox
 +
- Changed: animation frames removed from DUPELIST on i_mongbat_dartboard
 +
- Changed: value for color_o_silver
 +
- Added: new CHARDEF placeholder for tiger animations- Changed: the value of color_o_silver
 +
- Added: 7.0.33 encryption key
 +
 
 +
21-10-2013, RanXerox (Script Pack)
 +
- Separated FOODTYPE and MAXFOOD in the monster files
 +
 
 +
23-10-2013, RanXerox (Script Pack)
 +
- Added: more candy and chocolate related ITEMDEFs
 +
- Fixed: standing lamps
 +
- Added: Charybdis (and tentacle), Tiger, and Killer Pumpkin CHARDEFs
 +
 
 +
24-10-2013, RanXerox (Script Pack)
 +
- Fixed: bad defname reference in loot (should be i_mask_daemon)
 +
- Fixed: tall jack-o-lanterns
 +
- Added: spawn groups for Hythloth
 +
- Moved: t_equipitem moved to its own file (since it will eventually be quite large)
 +
- Modified: t_equipitem now implements:
 +
            TAG.ElfOnly
 +
            TAG.GargoyleOnly
 +
            TAG.RareItem
 +
            TAG.Stolen
 +
            TAG.Exceptional
 +
            TAG.CraftedBy
 +
            TAG.DoNotEquip
 +
            TAG.NightSight
 +
            TAG.RESCOLD
 +
            TAG.RESENERGY
 +
            TAG.RESFIRE
 +
            TAG.RESPOISON
 +
            TAG.RESPhysical
 +
            TAG.LowerRequirements
 +
            TAG.LUCK
 +
            TAG.STR
 +
            TAG.DEX
 +
            TAG.INT
 +
            TAG.HITS
 +
            TAG.STAMINA
 +
            TAG.MANA
 +
            TAG.HitpointRegen
 +
            TAG.StaminaRegen
 +
            TAG.ManaRegen
 +
            TAG.FasterCastRecovery
 +
            TAG.SelfRepair
 +
            TAG.ExtraSkill1
 +
            TAG.ExtraSkill2
 +
            TAG.ExtraSkill3
 +
            TAG.ExtraSkill4
 +
            TAG.ExtraSkill5
 +
  WARNING: Because many of the equipable items already had these TAGs, anyone
 +
          using those items on a live shard should make sure all those items
 +
          in-game are unequipped before installing this change!
 +
 
 +
25-10-2013, RanXerox (Script Pack)
 +
- Minor updates to maps 2-5
 +
 
 +
27-10-2013, Ben
 +
- Fixed #2227: Region.ISEVENT not working.
 +
- Fixed #2229: STRREVERSE doesnt invert the entire string. (This was also the case for STRTOLOWER and STRTOUPPER)
 +
- Added: DEFLIST which acts like LIST but readable only (Filled by server at loading time with lists of resources)
 +
- Added: new Section to Sphere.ini [RESOURCELIST] with a list of resource blocks to be loaded into DEFLISTs
 +
        Ex: Adding ITEMDEF in the RESOURCELIST will create a DEFLIST.ITEMDEF with all itemdefs loaded by the server.
 +
- Added: Category, Subsection, and Description to ITEMDEF and CHARDEF (now the server can read them if directly in the DEF section and not under @create)
 +
 
 +
28-10-2013, Ben
 +
- Fixed #2164: NPCs attacking from different floors
 +
- Fixed: Issue with Client 7.0.33.1+ packet change
 +
 
 +
29-10-2013, RanXerox (Script Pack)
 +
- Fixed: CHARDEFs in sphere_monsters.scp that were missing NAME or CAN
 +
- Fixed: Bad reference to c_sea_monster in sphere_monsters.scp
 +
- Fixed: Bad reference to e_equipitem in sphere_item_provisions_clothing.scp
 +
 
 +
29-10-2013, Ben
 +
- Added: Cliloc support for start location in clients 7.00.13+
 +
- Updated: Sphere_map_points0.scp with new STARTS information ([STARTS 2] includes a cliloc line as the 4th argument)
 +
- Tweaked: Stacked items should no longer flip.
 +
 
 +
30-10-2013, RanXerox (Script Pack)
 +
- Fixed: Improved TAG management related to TAG.OVERRIDE.REGEN* in sphere_item_typedef_equipitem.scp
 +
- Fixed: Removed reference to jobNecromancer event from sphere_citizens.scp
 +
 
 +
31-10-2013, RanXerox (Script Pack)
 +
- Noted: Comments in the sphere_item_typedef_equipitem.scp file were improved
 +
- Added: HTML_REDTEXT and HTML_WHITETEXT to sphere_defs.scp
 +
- Added: TAG.GargoyleOnly to i_gargish* weapons in sphere_item_provisions_weapons.scp
 +
 
 +
1-11-2013, RanXerox
 +
- Modified: The weather algorithm so that if you set a sector's rainchance to 100, it will always rain
 +
  Note: rainchance actually means "precipitation chance". If the coldchance is high enough, the precipitation will be snow.
 +
 
 +
9-11-2013, Ben
 +
-Fixed #2238: Muldiv returning different values on linux.
 +
-Added #2226: Dupeitem is now readable. Return 0 if not a dupeitem.
 +
-Added #2232: Made @Rename trigger when a player changes his name
 +
  ARGS IN as the proposes char name
 +
  ARGS OUT as new char name
 +
  ARGO is the char getting his name changed.
 +
 +
10-11-2013, Ben
 +
-Added #2210: Picking up an item in a stack will cause above items to fall unless they have attr_static or attr_move_never
 +
-Fixed #1764: LOS issue with stacked items
 +
-Fixed: crashed caused by items stacking too high.
 +
-Possible fix for Pathfinding on maps other then 0. (Needs testing)
 +
 
 +
11-11-2013, Ben
 +
-Fixed: Error with @Rename trigger causing names to have random characters
 +
-Fixed #2010: Pathfinding now works on maps other then 0 (Been tested this time)
 +
 
 +
12-11-2013, Ben
 +
-Fixed #2240: Time running at double speed caused by new Muldiv calculation
 +
-Tweak: Split EF_ItemStacking into 2 setting. EF_ItemStackDrop 0x08 will take care of the item dropping part.(for debuging purposes)
 +
 
 +
17-11-2013, RanXerox (script pack)
 +
-Fixed: all typo's of the word Axel
 +
-Fixed: arcane clothing items
 +
-Fixed: Gargish maul and war hammer TAGs
 +
 
 +
17-11-2013, Ben
 +
-Added: Destroy function which is like Remove, but will not be stoped by a return 1 in @Destroy
 +
 
 +
23-11-2013, Khaos
 +
-Added: New Character and Item variables for use with EA iprops and other support. These function as TAGs and are made for static naming.
 +
A manual is in the works. Some of these might change as we bind them into the hard code with further support.
 +
 
 +
24-11-2013, Khaos
 +
-Added: New Item can flags added:
 +
can_i_enchant
 +
can_i_retaincolor
 +
can_i_imbue
 +
can_i_exceptional
 +
can_i_makersmark
 +
This also allows for enchant=<bool>, etc. for each on items.
 +
-Added: New attr_flags added.
 +
attr_imbued
 +
attr_exceptional
 +
attr_enchanted
 +
attr_questitem
 +
attr_insured
 +
attr_nodrop
 +
attr_notrade
 +
-Added: sphere_defs.scp; new can_i_* and attr_* flags are now added to the files.
 +
 
 +
24-11-2013, Ben (script pack)
 +
-Tweaked: sphere_dialog.scp to allow ATTR in .info dialog to use 8 chars instead of 4
 +
 
 +
25-11-2013, Khaos
 +
-Added: can_i_recycle has been added to the core. As above; can be set with the CAN flags or as recycle=1/0.
 +
-Added: attr_lockeddown and attr_secured. I removed these from the variables.
 +
 
 +
26-11-2013, Khaos
 +
-Fixed: Variable typo for Dammodifier.
 +
-Removed: removed NEWBIE behavior from attr_blessed2 and attr_cursed2.
 +
-Modified: attr_blessed, attr_nodrop, attr_notrade, and attr_insured were added to this drop behavior and should
 +
by default not got to a corpse on death now if it is a player item.
 +
-Added: Cliloc handling for ATTR_SECURE -> "locked down and secure" and ATTR_LOCKEDDOWN -> "locked down"
 +
-Modified: AI Behavior now checks for not only attr_newbie items when looting, but now testes for the following:
 +
attr_insured, attr_blessed, attr_notrade, and attr_nodrop. These won't be looted by NPCs.
 +
-Added: VARIABLES: SOULCHARGECOLD, SOULCHARGEENERGY, SOULCHARGEFIRE, SOULCHARGEKINETIC, SOULCHARGEPOISON, and
 +
INCREASEGOLD to both item and character variables.
 +
 
 +
26-11-2013, Khaos (Script Pack)
 +
-Added: Mordaunts_House_System.zip was added to the ADDON folder containing an up-to-date version of Mordaunt's
 +
housing system using the new attr_flags that were added.
 +
 
 +
27-11-2013, Khaos (Script Pack)
 +
-Changed: Spheretables.scp;
 +
- Commented out HELP and TOME. No function was found when tested.
 +
- Uncommented the maps, map points, and guild stones. Left scripts/custom commented since not everyone has this folder.
 +
- Moved some plevel1 functions to plevel2. They shouldn't have been in plevel1.
 +
-Changed: sphere.ini;
 +
- Uncommented the maps and changed instructions for non-ml compliance.
 +
- Resdisp is now 7 for auto SA compliance. (I didn't touch expansion code though within the ini otherwise).
 +
- Uncommented ZEROPOINT for use with ML map0 and map1. Comment it out if you aren't using the newer maps.
 +
-Changed: sphere_region.scp;
 +
- All regiontypes resources now add up to 100.0.
 +
 
 +
28-11-2013, XuN (Script Pack)
 +
-Added: def.STONECONFIG_MISC_RECRUIT_MAXDISTANCE to do a control check of max distance allowed for the player being recruited.
 +
 
 +
30-11-2013, Khaos (Script Pack)
 +
-Added: sphere_genericstone_config.scp; missing check. Sorry. XuN sent it to me after the last update.
 +
-Modified: sphere_region.scp; it was missing the REAPAMOUNT lines from every resource. This is corrected now.
 +
 
 +
30-11-2013, Khaos
 +
-Added: can_i_reforge/REFORGE=1/0 and attr_reforged to sphere. EA Seems to check these for reforging runic items.
 +
 
 +
-Added: PERMITTEDUSE variable on chars and items.
 +
 
 +
-Removed: ONLY* variables in favor of PERMITTEDUSE.
 +
 
 +
-Added: Permitted Player Use Event to the addon's folder in the scripts to directory; full soft code use of the new variable is
 +
used in that script. sphere_defs.scp now contains the soft code flag system for use with this script.
 +
 +
01-12-2013, XuN
 +
Added NameLoc variable for items so you can set a ClilocID for using it as name and show up by script by showing NameLoc instead of Name.
 +
 
 +
02-12-2013, Khaos
 +
-CHANGED: PERMITTEDUSE to CANUSE variable on chars and items. (This was done on the empty variables for help with the base packs
 +
and to allow more free change usage. Binding this internally would have left out customization for others).
 +
 
 +
-CHANGED: Switched out Permitted use code in the scripts to CANUSE flagged code. Cleaner look and better wording.
 +
 
 +
-ADDED: Followerslots to Chars
 +
 
 +
03-12-2013, XuN
 +
-Removed duplicated entry 'height_0c8 16 //DEFNAME=c_horse_tan' from sphere_defs.scp
 +
 
 +
03-12-2013, Ben (script pack)
 +
-Added: NAMELOC functionality. It can be set for items and chars, in the *DEF sections or in scripts (not directly in game)
 +
If used, it will display this cliloc instead of the default name (where clilocs are shown)
 +
When used on chars, cliloc 1116690 is used instead of the original 1050045 to preserve prefix and suffix
 +
 +
04-12-2013, XuN
 +
-Added @ResourceGather for RegionResources and @RegionResourceGather for Players:
 +
This trigger is being fired just before gathering skill has finished (after all animations and timings)
 +
Local.ResourceID is the ID of the item being gathered (Writable)
 +
Argn1 is the amount of local.ResourceID being gathered (Writable too)
 +
Return 1 cancels Gathering
 +
05-12-2013, Khaos (Script Pack)
 +
-Fixed the &= in the new CANUSE flags in Addons from processing an undefined symbol error.
 +
-Added Expansion_Player_Event.rar to ADDON section for the suggested usage of EXPANSION Variable on Items and Characters.
 +
 
 +
08-12-2013, Khaos
 +
-Fixed: Throwing is now working internally as any other ranged fight skill. It now processes gains, skilluse, etc.
 +
Anims were fixed for this as well. (still haven't set flying anims yet, be patient)
 +
-Added: T_WEAPON_THROWING: Treated as a bow type with RANGE Parsing, TData3/4 values.
 +
-Added: T_WEAPON_THROWING to sphere_defs.scp. Also added T_SOUL_FORGE and T_FURNITURE to sphere_def.scp for base pack.
 +
 
 +
13-12-2013, Khaos
 +
-Added: EventsItem=e_youreventhere; was added to the sphere.ini and hard code. Functions as eventsplayers/pets/regions.
 +
This code fires on ALL items if something is in the global event and fires after tevents and before typedef. Don't overuse
 +
this. We found legitimacy in this addition with a few ideas it would be needed for.
 +
-Changed: attr_nodrop and attr_notrade combined in one as Attr_NoDropTrade. Same with the two variables are now NODROPTRADE on items.
 +
-Added: attr_artifact now takes the spot of attr_notrade
 +
-Changed: attr_artifact items won't take fire damage on clothing unless scripted otherwise.
 +
-Changed: sphere_defs.scp to reflect new attr_* edits.
 +
-Changed: REQEXPANSION -> EXPANSION in the Variables on Items and Chars.
 +
 
 +
14-12-2013, Khaos
 +
-Added: Char and Item variables for Bane and SpellConsumption
 +
-Fixed: Possible fix for dismount trigger not being called first when mounting a mount while on a mount.
 +
 
 +
15-12-2013, Ben
 +
-Moved: TAG.OVERRIDE.AMMOANIM , AMMOANIMHUE , AMMOANIMRENDER, AMMOTYPE to permanent variables. (ex:TAG.OVERRIDE.AMMOANIM -> AMMOANIM)
 +
These can be set on Items in game or in the ITEMDEF section. (They can be set on all items but only in use on archery types)
 +
-Added: AMMOCONT to Items and ITEMDEF which can take the UID of a container (for specific container) or an ID (for a type of container)
 +
 
 +
15-12-2013, XuN
 +
-Added: Spellflag_bless and Spellflag_curse for blessing spells like Agility, Blessing,etc and for Weaken,Curse, etc.
 +
-Modified: sphere_defs.scp and sphere_spells.scp to add these spellflags.
 +
 
 +
15-12-2013, Khaos
 +
-Added: BONUSHITSMAX, BONUSMANAMAX, BONUSSTAMMAX, and REGENFOOD variables to prepare for a huge overhaul of the internal overrides and status
 +
bar packet.
 +
-Added: INCREASEDEFCHANCEMAX, RESPHYSICALMAX, RESFIREMAX, RESCOLDMAX, RESENERGYMAX, AND RESPOISONMAX variables for CHARACTERS ONLY. The
 +
new status bar packets checks for client >= 7.0.3. Full functional now with THOSE variables and those on it. Ones added earlier for the mis-
 +
informed information won't be leaving the servers since they might be for EC.
 +
-Changed: PlayerStatusUpdate Packet now processes the variables it uses.
 +
 
 +
16-12-2013, Khaos (Script Pack)
 +
-Changed: Changed colors_neutral range from { 1801 1887 } to { 1801 1908 } as noted on bugtracker.
 +
 
 +
22-12-2013, Ben
 +
-Changed: LUCK, CURFOLLOWER, MAXFOLLOWER, and TITHING to work on all chars, not just players.
 +
-Added: Support for local database (SQLite) through LDB. reference. (No External programs required!)
 +
-Syntax is similar to MySQL, but slightly different http://sqlite.org/lang.html
 +
-Functions are almost the same as DB. with a few changes.
 +
LDB.CONNECT "filename" to open a database file
 +
LDB.AEXECUTE and LDB.AQUERY are non existent
 +
-SQLite database manipulation program can be found here http://sqliteexpert.com/download.html
 +
 
 +
02-01-2014, Khaos (Script pack)
 +
-Changed: This upload is containing the rework of multidef files with new naming conventions, price adjustments, etc. spheretables.scp
 +
has been updated to reflect loading of the multis folder. New syntax is m_* instead of i_multi_*.
 +
-Added: Added variant versions of tents and evil compound with doors and signs. Wheat Cottage got doors and a sign as well.
 +
-Added: sphere_defs_2.scp This will now be loaded after sphere_defs.scp containing any backwards compatibility I do.
 +
-Fixed: Broken treasure multis should be fixed based on some old revisions I saw in an old script I had.
 +
-Changed: Mordaunt sent me an updated housing system to match the new house and foundation defnames.
 +
-TODO: Add in the new multidef info to deeds and vendors.
 +
-Moved: spk_ship_cmds to speech folder.
 +
-Fixed: New ships were using t_multi and not t_ship. I assume this might have been causing some of the alleged "bugs" with them. They
 +
are now all using t_ship.
 +
 
 +
03-01-2014, Ben
 +
Fixed #2256: Reworked NPC object throwing..
 +
->canseelos checks now applies to overrides
 +
->changed tag.override.rock to NPC variable THROWOBJ (can take numerical or string ID now)
 +
->changed tag.override.dam to NPC varialbe THROWDAM min,max (can also be "THROWDAM max" for non variating damage)
 +
->added THROWRANGE min,max  (can also be "THROWRANGE max" with a min of 2 by default)
 +
->All 3 variables are available on dynamic npc or in CHARDEF
 +
Fixed: AMMOANIM,AMMOANIMHUE,AMMOANIMRENDER,AMMOCONT, and AMMOTYPE no able to be read directly from SERV.ITEMDEF...
 +
 
 +
04-01-2014, Ben
 +
Fixed #1904: EF_WalkCheck causing some NPCs to climb impassable terrain.
 +
 
 +
05-01-2014, Ben
 +
Added #1638: Defmessages are accessible with <DEFMSG.msg_name>
 +
->Also not documented but available before: Defmessages can be set with "DEFMSG.msg_name new_msg"
 +
 
 +
09-01-2014, RanXerox (Script pack)
 +
-Fixed some duplicate itemdef and defnames
 +
 
 +
10-01-2014, XuN
 +
Changed: MaxFood is now writable.
 +
Added @TradeCreate trigger for chars, fired after trade windows are created:
 +
SRC=The other player.
 +
Argo=Item wich starts the trade.
 +
return 1 stops the trade.
 +
Added @DropOn_Trade trigger for items:
 +
Act=item adding to trade window.
 +
Argo=Other player.
 +
return 1 blocks the placement.
 +
Added @TradeClose trigger for chars, fired before a trade window is being closed (Opossed to @TradeAccepted).
 +
SRC=The char closing the trade window.
 +
Fixed: Players can now open their containers while placed on trade windows (still cannot pickup items from them, nor them).
 +
Change: Players used to be able to open the containers of other players while they were inside a trade window, these behaviour is now controled in sphere.ini.
 +
Added: Ini option 'TradeWindowSnooping' to handle this behaviour: 0 will open the bags, 1 will call for snooping (or deny it by your scripts).
 +
Notes: -For now there's still a issue causing the client to crash while someone with a trade window open closes his client or just logs off.
 +
-invisible (hidden) players can open trade windows to another players (but only first player will see it, this behaviour will remain, it can be fixed with @TradeCreate).
 +
 
 +
11-01-2014, Ben
 +
Fixed #2258: Some properties returning as hex instead of decimal.
 +
 
 +
12-01-2014, XuN
 +
Change in @TradeClose:
 +
Src is the player closing the window.
 +
Argo is the other player.
 +
Fixed: Items being able to move while inside a container inside a trade window.
 +
Fixed: Containers on the ground not being able to open.
 +
Changed: Ships work again in Lost Lands.
 +
Fixed: Disconnect not working correctly with trysrv in high privileged characters.
 +
Added: return 1 to f_onchar_create, it blocks the creation and disconnects the client.
 +
 
 +
13-01-2014, XuN
 +
Removed: tag.override.noto.$uid, having one tag per 1 character viewing this is insane.
 +
Added: @NotoSend, this trigger will override the default color for status bar and character 'mouse hovering' color (Replacement for tag.override.noto.$uid)
 +
src=The player viewing this char
 +
argn1=bar/char color (0 will let the default system run)
 +
Note: The first 7 colors are the same as NOTO_* definitions, but you can use all your hues range (however the colors does not display like in items/chars)
 +
 
 +
15-01-2014, XuN
 +
Fixed: Items being able to move inside containers placed in trade windows (semi-fixed before)
 +
Fixed: Gold function now updates automatically the status bar.
 +
Fixed: Move back the character data before f_onchar_create to be able to read it again.
 +
Added: @SeeHidden trigger (Heavy load, keep it clean) fired when a char is going to see (or not) an invisible character (just like staff see other staff members while invisible)
 +
argn1=Invisible/Visible (but grayed out)
 +
No returns for this trigger.
 +
 
 +
17-01-2014, Ben
 +
Fixed #2244: SERV.ACCOUNT UNUSED xxx can now take any functions with the account being the default in the function.
 +
 
 +
19-01-2014, Ben
 +
-Added #1607: "LIST.XXX.SET args,..." This will clear the list and set each arguments (separated by a ,) as an element of the specified LIST
 +
-Added: "LIST.XXX.APPEND args,..." This acts the same as SET, but will not clear the LIST. It will add to the LIST
 +
-Change: String parsing should now respect commas(,) as a character inside double quotes ("") instead of treating it as a separator (for most places anyways)
 +
This allows situations like this:  LIST.XXX.SET value1,"value2,value3",value4  to have a result of:
 +
LIST.XXX.0 = value1
 +
LIST.XXX.1 = value2,value3
 +
LIST.XXX.2 = value4
 +
-Added #1787,#2142: "LIST.XXX.SORT args"  This will re-order the the list using 'args' as order method.
 +
'No args' or 'asc' - sorts case sensitive ascending
 +
'i' or 'iasc' - sorts case insensitive ascending
 +
'desc' - sorts case sensitive descending
 +
'idesc' - sorts case insensitive descending
 +
 
 +
23-01-2014, XuN
 +
Fixed #2257: Weapons now doesn't hit from Range+1
 +
Added tag.override.SpellTimeout to alter default .ini setting to individual players.
 +
 
 +
25-01-2014, XuN
 +
Added BUILD function to server, wich returns the svn's build number via <serv.build>, can be used on scripts to keep up versioning and stop the code or do different things between versions in example. (Ok, caught, Ben did it!)
 +
 
 +
25-01-2014, Script-Pack (Coruja)
 +
Updated sphere_defs.scp (#2255)
 +
colors_skin {1002 1058}
 +
colors_hair {1102 1149}
 +
colors_pink {1201 1254}
 +
colors_blue {1301 1354}
 +
colors_green {1401 1454}
 +
colors_orange {1501 1554}
 +
colors_red {1601 1654}
 +
colors_yellow {1701 1754}
 +
colors_neutral {1801 1908}
 +
colors_snake {2001 2018}
 +
colors_bird {2101 2130}
 +
colors_slime {2201 2224}
 +
colors_animal {2301 2318}
 +
 
 +
25-01-2014, Ben
 +
-Fixed #2266: Trade Window memory not being removed.
 +
-Change: LIST.xxx.FINDELEM args will now search as a string if 'args' is not a number regardless if it's inside double quotes "".
 +
 
 +
04-02-2014, XuN
 +
Fixed #2273: Crafting skills with skf_craft not working like they should (Note: skf_scripted means the script is totally custom, for everything, so skf_craft won't work with skf_scripted).
 +
Fixed #2267: Items in the cursor (layer_dragging) are now bounced if a target is opened to the player.
 +
 
 +
05-02-2014, XuN (Script Pack)
 +
Fixed: changed back i_multi to the new m_ naming style in sphere_item_provisions_deed.scp.
 +
Updated Mordaunt's House System to version 2.3.4.
 +
 
 +
09-02-2014, Ben
 +
-Added: New variable TIMESTAMP to dynamic items and characters. (To allow for server time to upgrade to INT64)
 +
-Moved: t_corpse.more1, t_book.more2, t_message.more2, t_eq_memory_obj.more2 to new TIMESTAMP
 +
-Added: t_forest and t_jungle to sphere_defs.scp to fix ISNEARTYPE problems
 +
-Fixed: <SERV.BUILD> returning date instead of revision number even though revision number is available.
 +
-Changed: Most Interger types to INT64 for higher time support. Tags and Vars also can hold 64bit numbers. This fixes #1447
 +
 
 +
13-02-2014, XuN
 +
Fixed: Players now become instantly GuildMasters when placing a Guild Stone instead of waiting until first DClick.
 +
Added functionality to the ATTR_LOCKEDDOWN and ATTR_SECURED flags: locked down items should not be able to be moved, decay and be eaten by npcs (and some more default behaviour), secured items have all this checks but not the ones related to pick up and use.
 +
 
 +
Script Pack:
 +
Modified: Iron ore now requires 0.0 Mining instead of 20.0.
 +
Updated: New update of Mordaunt's house system.
 +
Updated sphere_msgs.scp: Added ITEMUSE_SECURED, ITEMUSE_SECURE_ON and ITEMUSE_SECURE_OFF
 +
 
 +
15-02-2014, Ben
 +
-Fixed #2275: NPCs walking through multi doors
 +
-Fixed: Targets not removing when using SELF and LAST
 +
 
 +
16-02-2014, XuN
 +
Modified @StatChange: now is working properly in EVERY stat change, and not only in the stat gain/loses
 +
argn1=statid (maxhits,maxmana,maxstam and maxfood are checked now too)
 +
argn2=the current stat value
 +
argn3=the new value
 +
Fixed some new variables not working.
 +
 
 +
ScriptPack:
 +
updated sphere_events_npcs.scp: Functions ModMaxHits/Stam/Mana to work better, they also accept += and the rest of operators.
 +
added: sphere_attr.rar to Custom folder containing some basic behaviour for attr_secure and attr_nodroptrade (for now).
 +
Updated Mordaunt's house system to version 2.3.7
 +
 
 +
16-02-2014, Ben
 +
-Added #2270: summoned tag added to summoned creatures if CHARTAGS=1 in sphere.ini
 +
Script Pack:
 +
Corrected some defnames - i_fruit_cantelope -> i_fruit_canteloupe
 +
i_fruit_gourd1 -> i_fruit_gourd_yellow
 +
i_fruit_gourd2 -> i_fruit_gourd_green
 +
 
 +
17-02-2014, XuN
 +
Added targetcancel function to force closing a target.
 +
Fixed some new variables returning hex values.
 +
Added functionality to RegenHits/Mana/Stam, they use the current tag.override.regen_x values
 +
 
 +
Moved all @SkillChange triggers to CChar::Skill_SetBase, now every skill change is calling this trigger (as it should), no matter of .skill_name, .allskills, skillgains/loses and skill trains.
 +
Fixed serv.Regenx returning value*10
 +
 
 +
18-02-2014, XuN
 +
Regeneration Tweaks:
 +
-Moved up a check to force stop in this stat, so useless checks are avoided in a function fired in each tick (each lil improve is a win!).
 +
-Added FOOD as a regen stat (RegenFood or tag.override.regen_3)
 +
-ADDED RegenValStat variables (RegenValHits, etc) to work as the RegenStat variables but with tag.override.regenval_x.
 +
-Removed @Hunger
 +
-Removed weird check that multiplied the regen time *2 if the stat was not food, it now works with the time specified in sphere.ini
 +
-Removed weird "Bonus" in HITS giving more delay than the default one, it should sustract it to be a real bonus? however, timers are handled in the trigger now and following the default ini settings.
 +
-Removed tag.override.regen(val)_x: RegenValStat is now readed inside @RegenStat and RegenStat is readed before it, cannot be modified inside without the trigger bein fired in each serv.tick. RegenStat overrides ini setting now (wich is more intuitive when scripting)
 +
-Added @RegenStat trigger fired after
 +
-local.StatID=(0=Hits,1=Mana,2=Stam,3=Food). Writable, never higher than 3.
 +
-local.Value=The amount of points being regenerated (or decreased in food's case). Writable, can be negative but 0 works like return 1
 +
-local.StatLimit=by default=<MaxStat>, allow this stat to pass the limit when regenerating, or limit it lower. Stats over this value will go down in each tick until they reach their limit. This does not work with food as food shouldn't ignore its limit (0).
 +
-return 1 Stop de regeneration of this stat, but not preventing future checks, to do that set the RegenHits to a very high value.
 +
 +
Added f_onaccount_connect to sphere_serv_triggers.scp, READ IT CAREFULLY, I switched the default return procedure here for safety, return 1 will allow the account connecting no matter you have checks or not.
 +
Added LowerReq to the ReqSTR check when trying to equip items for both items and chars (It checks for LowerReqs on the item and in the character too to substract to the real ReqSTR)
 +
 
 +
23-02-2014, XuN
 +
-Modified: CanUse is now only an item property, it also returns now values in hex format to work with it as a flag variable.
 +
-Sphere.ini: Added the maps 2-5 but commented out, added a few missing comments in some flags.
 +
-Added a check to IsTrigUsed to avoid trigger calls while serv is loading, this will improve load times and avoid several unexpected errors.
 +
-Removed SKTRIG_STROKE's checks from skills and moved to a new function to keep together all the checks giving more control to skills.
 +
-Added skill_stroke() wich handles the strokes left and sound for craft and gathering skills and also a new trigger.
 +
-Fixed amount of strokes to each crafting skill, they were random, now they have 2 strokes by default.
 +
-Added @SkillStroke trigger:
 +
        Local.Skill=Skill ID. (Read only).
 +
        Local.strokes=Strokes left*    (Read/Write).
 +
        Local.Sound=Sound to make in this stroke if any (Read/Write).
 +
        Local.Delay=Delay until next stroke (10 = 1 second).
 +
        return 1 Abort the skill.
 +
        return 2* Abort the consumption of resources in this stroke.
 +
 +
        *Alchemy works different so its working with some exceptions:
 +
                -Local.Strokes instead of going down it's going up until it reach the total strokes count, wich are equal to the amount of resources. In each stroke if no return is given resources are consumed.
 +
                return 2 Its only allowed in alchemy skill, returning this will let the skill continue to next step (stroke, finish...) without consuming anything in this stroke.
 +
-Modified @SkillStart: Local.CraftStrokeCnt is NOT writable for alchemy, since the skill works different and cannot be overriden this way, use @SkillStroke to add more Strokes if you want.
 +
-Fixed #2267: MakeItem function now bounces any item in layer_dragging.
 +
-Moved some new variables to return decimal numbers instead of strings.
 +
 
 +
23-02-2014, Mordaunt (Script Pack):
 +
Another update to sphere_item_provisions_deed.scp, adding new ships and moving their names to m_ too.
 +
 
 +
24-02-2014, XuN
 +
-Fixed #2267: MakeItem function now bounces any item in layer_dragging.
 +
 
 +
25-02-2014, XuN
 +
Actual crafting skills (Blacksmithing, Tailoring...) now are not handled as crafting skills by the source, instead of that a SKF_CRAFT is required in their [Skill ] (Excepting Alchemy by the moment)
 +
WARNING: From this version a update of sphere_skills is needed (read below) or crafting skills will not work.
 +
Script pack:
 +
-sphere_skills.scp: Added FLAGS=SKF_CRAFT to blacksmithing,tailoring,tinkering,carpentry, cooking, bowcraft and inscription.
 +
 
 +
02-03-2014, Ben
 +
-Fixed #2261: (script pack) Hairs/beards using wrong names (multiple scripts updated for this)
 +
 
 +
03-03-2014, XuN
 +
Added local.Anim to @SkillStroke trigger.
 +
Fixed wrong animations sent in each Stroke (Some are missing?).
 +
 
 +
14-03-2014, XuN
 +
Fixed #2289:
 +
-Added local.HitsHungerLoss for StatID 3 (Food) in the @RegenStat trigger, this value is still a percentaje and NOT the hitpoints to lose, but setting it to 0 will disable the loss of hitpoints for this character.
 +
-Update: Damage received via Hunger have flags DAM_GOD|DAM_GENERAL|DAM_NOUNPARALYZE, if you want to change it just set Local.HitsHungerLoss to 0 and create your own damage there.
 +
 
 +
15-03-2014, Xun & Ben
 +
Added support for packet 0xE2 (NewPacketAnimation), wich involves on updating some animations to a new packet and fixes most of the bugs on the gargoyles animations
 +
(Throwing still needs some more updates to see the weapons coming back).
 +
 
 +
16-03-2014, Ben
 +
Fixed #2285: FVAL returning wrong values in linux.
 +
 
 +
17-03-2014, XuN
 +
Added @StatChange to ModStr/dex/int/food.
 +
 
 +
21-03-2014, Ben
 +
Changed: Character creation to process 4th skill properly
 +
Removed: EXTRASKILL.KEY and EXTRASKILL.VAL from f_onchar_create as they are being properly processed.
 +
 
 +
23-03-2014, matex
 +
1. Fixed a crashbug in the nighly build.
 +
2. @StatChange now receives argn1 for changes like:
 +
0=OStr, 1=OInt, 2=ODex, 3=Food, 4=MaxHits, 5=MaxMana, 6=MaxStam, 7=MaxFood, 8=ModStr, 9=ModInt, 10=ModDex.
 +
 
 +
24-03-2014, matex
 +
Fixed a calculation bug in Linux that e.g. had influence on Skilldelays
 +
 
 +
25-03-2014, matex
 +
1. Fixed INT64 Expression handling.
 +
2. Fixed a bug that occured when DIALOGCLOSE/DIALOG was sent to older clients
 +
3. Fixed a minor bug in @StatChange
 +
 
 +
26-03-2014, matex
 +
1. Fixed Cooking
 +
 
 +
26-03-2014, matex
 +
1. Fixed a bug in ASC and ASCPAD with negative hex values
 +
2. Fixed StatChange triggering for Food
 +
3. Fixed a bug in the movement code, when climbing stairs with (BRIDGE|PLATFORM flags)
 +
4. Updating logged out characters does'nt send a packet unless ALLSHOW is on
 +
 
 +
28-03-2014, Ben
 +
Fixed #2296: Quality property not working.
 +
 
 +
28-03-2014, matex
 +
1. Some internal values are still stored as 32bit (e.g. MORE1, ...). If they are negative their value
 +
is now given as 64bit hex number so calculations,comparisions etc.. work on these values now.
 +
2. Fixed an issue with MaxFood/Food. If MaxFood is set to 0, when read it will return the MaxFood level
 +
of the chardefinition
 +
3. Fixed: The server now only loads 1 Map, if you only use 1 Map.
 +
4. Fixed: NPCs moving over obstacles when EF_WALKCHECK is disabled
 +
 
 +
29-03-2014, Ben
 +
1. Uptaded Sphere.ini description for MAPx settings (These are now mandatory as of revision 1834)
 +
2. Created an exception for MAP0 to load automatically even if not specified in sphere.ini (need at least 1 map to load)
 +
3. Fixed another instance of 64 bit handling.
 +
  (Script pack)
 +
4. Fixed #2292: small change in teleport points for sphere_map_points0.scp and sphere_map_points1.scp
 +
5. #2301 Few flag and typo changes done to sphere_map(2,3,5).scp
 +
 
 +
30-03-2014, Ben
 +
Fixed system tray icon not removing on exit.
 +
 
 +
02-04-2014, matex
 +
1. Introduced EF_NoContextMenuLOS => Will disable LOS checks for ContextMenu Use of npcs
 +
2. Improved the standard Walkcheck stuff a bit (especially when dealing with landtiles)
 +
3. Improved the placement code when items are dropped to ground
 +
4. Increased standard LOS Zcheck treshold to 20
 +
5. Changed the meaning of MOVERATE and TAG.OVERRIDE.MOVERATE. It is now a factor that scales the amount of DEX value
 +
  that should be taken into consideration for walking speed. E.g. if you only want 75% of the characters DEX value
 +
  to be used in walkspeed calculations, you specify MOVERATE=75. Setting this to 100 has no effect.
 +
6. Fixed: Backpack closing when items are dropped to corpse. (You can softscript this if you need it!)
 +
7. Fixed: Use 1-Unit comparisons in Distance Checking. We can't use the axiom of pythagoras here because one tile has
 +
  the same diagonal width as vertical and horizontal width. Doing real-world distance checkings messes up everything here!
 +
 
 +
08-04-2014, matex
 +
1. Fixed HitsHungerloss.
 +
2. Modified behaviour of DiagonalWalkChecks when dclicking items in reach
 +
3. If GM's add players to a party, the player is now added forcibly.
 +
4. Fixed a possible itemleak when dropping too many items to the ground. (e.g. via newitem)
 +
5. Fixed a null reference exception when DISPID of an item is set to something that wasnt defined via ITEMDEF. (e.g. change an item via set dispid)
 +
6. Fixed an exception when you type 'c' in the serverconsole and have more than 100 players online ;)
 +
7. Fixed a possible crash bug when players disconnect. Fixed players not logging out sometimes too. (this did only occur on VERY rare circumstances)
 +
 
 +
09-04-2014, XuN
 +
-Added f_onaccount_pwchange to sphere_serv_triggers.scp
 +
-Modified f_onaccount_create.
 +
Both are fire now in each account creation / password change, no matter the source (serv.account xx ingame, via console, .set password...).
 +
 
 +
13-04-2014, Feeh
 +
Fixed #2306: No lag should be noticeable after f_onserver_save call
 +
Fixed #2293: Sphere should now read packets correctly from 6.0.1.7 clients
 +
 
 +
14/15/16-04-2014, Coruja (Script Pack)
 +
sphere_map0.scp:
 +
-Removed: more generic non-OSI ROOMDEFs (huge cleanout)
 +
-Removed: some more weird ROOMDEFs
 +
-Added: missing regions for some islands
 +
-Fixed: incorrect GROUP set on Fire Temple, Ice Isle
 +
-Fixed: incorrect FLAGS set on Moonglow Zoo, Jail, Green Acres, shrine regions
 +
-Fixed: incorrect RECT set on Lord Britsh/Blackthorne Castle
 +
-Fixed: added missing 'region_flag_guarded' on Delucia
 +
-Fixed: added missing RECT tile on Cove, Green Acres 3
 +
-Small improvement on Britain and Mt Kendall RECT
 +
-Checkmate. Revised the entire script, everything is clean, fixed and categorized now
 +
 
 +
sphere_map1.scp:
 +
-Moved: Solen Hive region from map0 to map1 (apparently Solen Hive exists only on Trammel)
 +
 
 +
sphere_map_points0.scp:
 +
-Fixed: Delucia Passage teleporting to incorrect position
 +
 
 +
sphere_map_points1.scp:
 +
-Updated to match changes of previous sphere_map_points0.scp commit
 +
 
 +
sphere_map0_ml.scp:
 +
-Moved: temp moved all SE/ML/HS regions to this file. Since it have only a few regions, maybe it's better disband this file and move all regions to their correct map file (map0, map3 and map4)
 +
sphere_map4.scp:
 +
-Small update on Tokuno Islands regions
 +
 
 +
sphere_newb.scp:
 +
-Updated all skill to match OSI default starting items and colors.
 +
PS: Still need a few more additional items for professions (Warrior, Necromancer, Paladin, Samurai, Ninja) -> I can't update this for now, sphere only have support to skills on sphere_newb.scp,
 +
but not for professions (it would be great if someone give a little help with this on the source :D)
 +
 
 +
17-04-2014, XuN
 +
Moved tag.override.SpellTimeOut to SpellTimeOut.
 +
Changed: Now @Create trigger can be fired on EVENTS too. Note: be aware of the calls order (SkillClass -> added events -> ini -> chardef (for chars)),
 +
you can't retrieve the <str> ie in a custom event because it's fired before the @Create in the CHARDEF (which is the one setting it), this trigger
 +
doesn't have return 1 so if you set str=15 in your event it will be overwrited with the stat given in the chardef.
 +
 
 +
Changed all the variables in the 'New Variables' thread to make them readable not only from items/chars but from their BaseDef. That means, no need of IncreaseSwingSpeed
 +
under the @Create, you can set them like the NAME property. Added some variables too, read the post.
 +
 
 +
Script Pack:
 +
Updated some scripts to reflect the variable's changes:
 +
-items/sphere_item_artifacts.scp
 +
-items/sphere_item_artifacts_minor.scp
 +
-items/sphere_item_artifacts_tokuno.scp
 +
-items/sphere_item_magic_jewelry.scp
 +
-items/sphere_item_provisions_armor.scp
 +
-items/sphere_item_provisions_clothing.scp
 +
-items/sphere_item_provisions_jewelry.scp
 +
-items/sphere_item_provisions_shields.scp
 +
-items/sphere_item_resources.scp
 +
-items/sphere_item_typedef_equipitem.scp
 +
-npcs/sphere_monsters.scp
 +
-npcs/sphere_monsters_custom.scp
 +
 
 +
sphere_item_vegetation.scp: Commented out TDATA3=i_vanilla_bean since it does not exist.
 +
 
 +
sphere_item_provisions_deeds.scp:
 +
-Fixed line 64: RESOURCES=i_deed,m_stone_and_plaster_house.
 +
-Changed all of the remaining i_multi_foundation_* to m_foundation_*.
 +
 
 +
sphere_item_provisions_armor.scp: changed all i_leather from gargoyle leather armor to i_hides_cut (lines 4704 - 5000).
 +
 
 +
For a complete change's track visit http://scripts.spherecommunity.net/
 +
 
 +
18-04-2014, XuN
 +
-Fixed a Typo in sphere_item_typedef_equipitem.scp (SeldRepair -> SelfRepair)
 +
-Updated sphere_monsters.scp to add stats to c_tiger and changed changed actual c_tiger to c_tigress
 +
-Added item 03ec7 to sphere_item_ship_parts.scp to link it with c_tiger
 +
-Updated sphere_defs.scp to reflect c_tiger and c_tigress as mounts.
 +
 
 +
19-04-2014, Ben
 +
Changed: CANUSE flags can now be properly set on ITEMDEF and dynamic items (ITEMDEFs value is given to dynamic items on creation)
 +
Fixed 1565: Removed TAG.OVERRIDE.RANGE from items and chars.
 +
Changed RANGE so it can be read/write on items and char (Dynamic object value overrides basedef value. Highest value between weapon and char is used in combat)
 +
RANGEH and RANGEL are also available as readonly variables for dynamic items and char now
 +
Added FIGHTRANGE to chars to replace old RANGE (readonly and returns the highest value used for combat)
 +
 
 +
19-04-2014, XuN
 +
-Fixed 0002310: Changed t_weapon_bow in Throwing Items (sphere_item_provisions_weapons.scp) to t_weapon_throwing.
 +
-Fixed 0002309: Mounted characters (humans & elfs) are not sending New Animation packet anymore.
 +
-Fixed 0002294: Every CAN-related property (dye, enchant, flip...) is now working in base items instead of inheriting from DispID.
 +
-Some internal changes related to IsHuman: changed it to IsPlayableCharacter and splitted it into IsHuman || IsElf || IsGargoyle and changed its calls.
 +
-Same for IsHumanID -> IsPlayableID = (IsHumanID || IsElfID || IsGargoyleID)
 +
-Fixed: Gargoyles are no longer able to ride anything.
 +
 
 +
21-04-2014, Ben
 +
Fixed #2014: memory_aggreived not being set on players
 +
Fixed #2311: t_light_lit not decaying as normal
 +
 
 +
23-04-2014, Ben
 +
Fixed #1500: Quote causing problems for ARGS and ARGV. This is how is will work now in a simple function called TEST...
 +
-.TEST "a", b, "c,d" Output: ARGS = a ARGV[0] = a ARGV[1] = b ARGV[2] = c,d
 +
-.TEST "a"e, b, "c,d" Output: ARGS = a ARGV[0] = a ARGV[1] = b ARGV[2] = c,d
 +
-.TEST e"a", b, "c,d"f Output: ARGS = e"a", b, "c,d"f ARGV[0] = e"a" ARGV[1] = b ARGV[2] = c,d
 +
-.TEST f"a"g"h,i",b,e"c,d" Output: ARGS = f"a"g"h,i",b,e"c,d" ARGV[0] = f"a"g"h,i" ARGV[1] = b ARGV[2] = e"c,d"
 +
*All ARGV will now show even if quotes are found in first argument.
 +
*if quotes are found as the first character of an argument, what is found in the quote is the argument
 +
*if a quote is found but not at the beginning, or no quote is found, whole string is used as argument.
 +
 
 +
24-04-2014, Ben
 +
Fixed #1739: ">" in QVAL's condition is now processed properly as "bigger than" instead of the end of QVAL
 +
 
 +
26-04-2014, Ben
 +
Changed: TAG.OVERRIDE.DOORSOUND_CLOSE for DOORCLOSESOUND
 +
TAG.OVERRIDE.DOORSOUND_OPEN for DOOROPENSOUND
 +
TAG.OVERRIDE.PORTCULISSOUND for PORTCULISSOUND
 +
Added: DOOROPENID to Items for new door system.
 +
Fixed #2054: Should now be able to make any door work with new scripting options (default still works if no new data is found)
 +
-Game Item: (if no info here, use ITEMDEF info)
 +
-DOOROPENID=0676 //ID to change into (no DEFNAME as it's only used for dispid)
 +
-MOREX=-1 // X position change
 +
-MOREY=1  // Y position change
 +
-DOORCLOSESOUND=00f3 closing sound
 +
-DOOROPENSOUND=00eb opening sound
 +
-ITEMDEF: (if no info here and on game item, use default system)
 +
-TDATA1=00eb00f3 //WORD open | WORD close (sounds)
 +
-TDATA2=0676 //ID to change into (no DEFNAME as it's only used for dispid)
 +
-TDATA3=-1 // X position change
 +
-TDATA4=1  // Y position change
 +
 
 +
29-04-2014, Ben
 +
-Fixed: VAR,TAG and LOCAL causing instability in the server with huge amount of data. Limit of 2048 caracters has been set.
 +
 
 +
30-04-2014, XuN
 +
-Added SpellCount function for Spellbooks (Read Only).
 +
-Tweaked Attacker system:
 +
Added attacker.add uid / attacker.delete uid. Self explanatory
 +
Changed: attacker.elapsed/dam are now writable
 +
 
 +
02-05-2014, XuN
 +
Updated house deeds in sphere_template_vend.scp (Thx azmanomer).
 +
Fixed: local.anim in @SkillStroke was readable but not writable. Fixed also alchemy skill sending anim 0 instead of no anim.
 +
Rewrote totally the combat system for npcs ( I may have missed something but it's mostly done ):
 +
memory_war_targ is no longer used for npc combats (in the source) but is still present for scripting backwards, Sphere now uses the 'Attacker' system and a new variable added to it 'Threat'.
 +
added @CombatStart, @CombatEnd, @CombatAdd triggers, return 1 stops actions. (not recomendable, the actions will be called over and over obviously trying to start/add or end the combat).
 +
Attacker system (Added/Changed):
 +
NPC_AI_THREAT flag variable to ini enabling the use of the threat variable for choosing targets in combat (for npcs).
 +
General: Attacker.add uid (Write) Adds the given UID as new enemy in the attacker list for this char.
 +
Attacker.Delete uid (Write) Remove UID from the attacker list.
 +
Attacker.Target (Read) Returns the current best target, these are the priorities: Threat -> Distance -> LOS.
 +
Attacker.ID uid (Read) Returns the 'n' id of the given uid (if in the attacker list, returns -1 if not).
 +
From ID: Attacker.n.Threat (Read/Write)Gets or Sets the Threat of this character against me, Threat is most important factor to select a target. (this gets updated even if npc_ai_threat is disabled, but its not used)
 +
Attacker.n.Dam (Read/Write)Made it writable.
 +
Attacker.n.Elapsed (Read/Write)Made it writable.
 +
I'm updating the wiki with this new information also.
 +
 
 +
03-05-2014, Ben
 +
-Fixed #2325: Corpse with morez > 0 were able to be draged
 +
-Fixed #1781: Rejected moves should not count as a move for fast walk detection.
 +
 
 +
06-05-2014, Feeh
 +
-Modified #2328: Dye tub now call @Dye on the dyed item
 +
ARGN1 = the hue value (r/w)
 +
ARGN2 = sound effect (r/w) (default 023e)
 +
ARGO = the item that originated the dye target
 +
SRC = who is dying the item
 +
RETURN 1 = stop internal dying/sound. hue changes made from script will take place
 +
This will allow to change Dye behaviour for specific items without having to track the item id from other methods/scripts
 +
 +
07-05-2014, XuN
 +
-Updated 'guards' defname in sphere_defs.scp, guards have other ID since long time ago.
 +
-Added exception lines to the new Attacker_* functions so if something goes wrong... errors are more descriptive. Also fixed some exceptions appearing now.
 +
-Attacker.elapsed -1 means no attacker decay.
 +
-Fixed #2332: Range, also RangeL/RangeH not working as it should after the variables changes. Also made them return in decimal values instead of hexadecimal.
 +
-Made BloodColor writable.
 +
-Modified Guards system:
 +
Modified @CallGuards trigger for players calling separatelly than NPCs.
 +
This trigger will fire one time on the Player calling guards per each possible target, argn3 is set to 1 if the target is hostile, however if set to 0 nothing will happen, if this is set to 1 the character will be attacked by guards.
 +
-Fixed guards dissapearing after calling them. They also stick now to the attacker system (if defined) being easier to create custom guards (changing how and when are they called will come in next commits)
 +
-Added ini setting GuardsOnMurderers (1 by default), if set to 0 will only attack criminals, if set to 1 will attack criminals and murderers.
 +
-Fixed: GuardsInstantKill now set hits to 1 before hit to ensure the kill, it was acting as instant hit instead of instant kill
 +
-Changed: Moved the instant kill ouside the 'teleport' check, to ensure its using it everytime and not only if target.distance > 1
 +
-Switched 2 checks to ensure that guards are not called on guards.
 +
-Added a check in OnNoticeCrime() to avoid guards becoming criminals if send to attack any good character.
 +
 
 +
08-05-2014, XuN
 +
Changed @Criminal trigger, now it's being called in every criminal call instead of in OnNoticeCrime(), return 1 prevents the criminal action, argn1 is how many time will the criminal status last.
 +
Fixed CanUse returning weird values when ITEMDEF didn't have any value.
 +
Added WeightReduction to item's weight calculations, so a item with 5.0 weight and 10 Weight Reduction will result in 4.5 weight stones.
 +
 
 +
09-05-2014, XuN
 +
-Fixed an exception when attacking blue characters.
 +
-Created a new vector-list to handle Notoriety: instead of having 2-5+ checks per second (and nearby character), the notoriety will be saved in this list to reduce a lot the loading related to this function.
 +
-Added NotoTimeout to ini (default 30) to set the 'decay' for notoriety in each character for another one. However the list will be reseted in each criminal/murderer action/karma change/incognito cast.
 +
-Fixed some Karma messages being shown even if the trigger returned 1. Fixed #2297: Trigger's returns were working wrong and any value given to argn1 was not really being considered by sphere unless return != 0.
 +
-Fixed #2290: Now crafting skills cast animations and sounds when starting and in every Skill_Stroke > 1 (1 is the last, note that skill_stroke is called before the stroke ends, not before starting it).
 +
-Removed SKF_NOANIM check after the @SKillStroke trigger, so even if the skill have this flag, it won't pass any value to local.anim, but if you want to have animation for a specific character, then you can write it.
 +
 
 +
09-05-2014, Ben
 +
-Improved how RangeH/L 'fix' work and making them readable by dynamic items in every situation.
 +
 
 +
09-05-2014, Feeh
 +
-Fixed #2326: Some mt_* CAN flags were not allowed to be assigned after char/npc creation. It should be assignable anytime from now
 +
 
 +
10-05-2014, XuN
 +
Fixed #2334. Also forced that any character called to be a guard ( Argn1 in @CallGuards ) have brain_guard no matter what it is really.
 +
Fixed #2333. Also fixing @Attack trigger blocking any other actions too when returning 1.
 +
Added #1765 :New ini setting: AttackingIsaCrime making criminal any character without any damage, only attacking.
 +
 
 +
10-05-2014, Feeh (thanks to Ben)
 +
Modified: @Dye is now called on more situations on both Items and Chars:
 +
-Script color changes (SRC/ARGO = Server)
 +
-Dye tubs (t_dye_vat) color changes
 +
-@Create color assignment (SRC/ARGO = Server)
 +
-Staff .xcolor command (SRC/ARGO = Server)
 +
 
 +
22-05-2014, Ben
 +
Changed: char's AGE property now returns in days instead of seconds (CREATE is already in seconds)
 +
 
 +
23-05-2014, Feeh
 +
Changed: Harvesting skills (Fishing/Mining/Lumberjacking) can now pack or place the harvested resource at feet
 +
Override ACTARG2 on either @SkillSuccess and @Success (remember that @SkillSuccess is called first)
 +
ACTARG2 = 0 -> Put the resource at feet
 +
ACTARG2 = 1 -> Pack the resource
 +
 
 +
26-05-2014, Ben
 +
Removed and made permanent EF_FixKillTrigger, EF_WalkCheck, EF_NewPositionCheck, and EF_DiagonalWalkCheck
 +
 
 +
26-05-2014, matex
 +
Fixed a small bug in the code that adds a player forcibly when GM's add to party.
 +
 
 +
27-05-2014, XuN
 +
Changed: new order for @Create trigger in items, now the order is this; Itemdef, @ItemCreate for characters ( if proceed ), TEvents, EventsItem and Typedef
 +
Fixed #2350: Guards working in non-guarded areas when GuardsOnMurderes=1
 +
Fixed #2352: AttackingIsACrime checks making criminal when it shouldn't
 +
Fixed #2351: Murderers never becoming criminal (didn't need before GuardsOnMurderers).
 +
Fixed #2353: Wrong speech color for tillerman.
 +
Fixed #2349. Also improved the Attacker_GetID() functions a bit.
 +
Fixed #1491: region_flag_no_pvp not working fine. Also a wrong SkillUseQuick(tactics) related to it.
 +
Added a new function to removed chars so they are being removed from attacker list's characters of their attacker's list. There's no reason to keep a not existing character.
 +
Added ContextMenuLimit option to sphere.ini defining the maximum amount of options in each menu.
 +
 
 +
29-05-2014, XuN
 +
Combat target for players will be 'reseted' after attacking a character, instead of checking for the best target ... so it now gives priority to player's choices.
 +
Changed attacker.target also to reflect the changes and return the direct value instead of calling Fight_FindBestTarget().
 +
Changed the way t_spawn_char creates the characters, they are now placed and the spawnitem is asigned before calling NPC_LoadScript() so, both spawn and regions can be read in the @Create (this can simulate a @CharCreate for spawns but on the character instead of the item.)
 +
Changed summon to be placed also before the @Create.
 +
 
 +
01-16-2014, XuN
 +
Changed @Attack: added Argn1 for npcs to allow modifying the initial 'Threat'.
 +
Changed: Pets forced to attack (kill and attack commands) now adds 1000( plus the actual highest threat amount) to argn1 in the @Attack trigger.
 +
Changed: Pets changes target instantly when attack is called always if NPC_AI_THREAT is off.
 +
Updated sphere_defs_2.scp with m_keep.
 +
 
 +
06-06-2014, Feeh
 +
Added: #2340 Sectors now do have flags, look at sphere_defs.scp for more info
 +
Fixed: #2360
 +
Fixed: BADSPAWN command was not stopping when the first bad spawn was found
 +
 
 +
11-06-2014, Ben
 +
Added #2359: REGEN in REGIONRESOURCE can now have a range as argument.
 +
Fixed #1827: Axis strip now works as case insensitive.
 +
Fixed #2307: REGION_FLAG_INSTA_LOGOUT will now work in ROOMDEFs
 +
 
 +
23-06-2014, Feeh
 +
Fixed #2366
 +
Added: SERV.FUNCTIONS.x, it can display every available function and its access plevel
 +
Usage:
 +
SERV.FUNCTIONS.COUNT - Return how many functions are available in your server
 +
SERV.FUNCTIONS.32 - Return the 33th function (zero-based)
 +
SERV.FUNCTIONS.32.PLEVEL - Return the minimum access plevel to use this function
 +
SERV.FUNCTIONS.add1 - Return the minimum access plevel to use 'add1' function
 +
 
 +
1-07-2014, Ben
 +
Updated: spherecrypt.ini with client 7.0.35
 +
Changed: gold will now be taken from pack first and then from bank in a purchase
 +
Fixed #2370: Not being able to walk up some stairs AGAIN!
 +
Fixed #2371: Vendor buy/sell dialogs will now display in the same order as their templates
 +
 
 +
08-07-2014, XuN
 +
Fixed, Updated and Improved the .dupe on both items and characters:
 +
- Added new variable's copy for both items and chars.
 +
- Duping characters now works fine: Stats, Skills, Tags, Items is copied now, by default every copied item have attr |= attr_newbie for security, using .dupe 1 will copy the items 'as they are' without mods.
 +
- Using .dupe 0 will create the mount's memory (if any) empty, so when npc dies... no mount appears, .dupe 1 will create another new duped mount character.
 +
 
 +
12-07-2014, Ben
 +
Fixed #2372: Weightreduction causing errors when calculating weight.
 +
Fixed a small issue with updating amount on items.
 +
 
 +
17-07-2014, XuN
 +
Fixed #2345: Wrong titles for Elder/Legendary Bushido and Ninjitsu skills, updated sphere_msgs.scp.
 +
Readjusted the skill ranges for skill titles according to http://www.uoguide.com/Skill_Title .
 +
Added SKILL_TITLES to sphere_defs.scp to adjust the range for the skill's titles.
 +
 
 +
19-07-2014, XuN
 +
SKF_GATHER enabled, only fishing will have this flag in sphere_skills.scp, so now @Stroke and @SkillStroke can be used.
 +
@(Skill)Start and @(Skill)Stroke now use ACT as a reference for the worldgem.
 +
@(Skill)Start have local.GatherStrokeCnt ONLY for gathering skills.
 +
Fishing delay is now 8.0 (1 stroke), the splash animation is softcoded in sphere_skills.scp since working with timerf in the source will complicate things a little.
 +
In the 'long and not even started' proccess of softcoding skills ... the sounds/animations (for fishing!) will be added in the skill's triggers.
 +
Return 1 in @Stroke will fire @Abort.
 +
Added RANGE for gathering skills determining the max distance for the proccess (added RANGE=4 for fishing in sphere_skills.scp)
 +
 
 +
22-07-2014, XuN
 +
Removed default sysmessage when reading / writing Experimental and Option Flags directly ingame or from script.
 +
SKF_GATHER is a generic flag now: Skills with this flag will automatically call for @Stroke and override default behaviour (no more calls to STAGE == SKTRIG_STROKE in the skill's function).
 +
Added Range and SKF_GATHER to mining and lumberjacking, softcoded some code related to SKILL_STROKES of them (and fishing also) in sphere_skills.scp.
 +
 
 +
02-08-2014, XuN
 +
Changed tag.override.breath.dam to Breath.Dam
 +
Added Breath.Hue overriding the default explosion color for breaths.
 +
Added @PartyLeave: return 1 stops the action
 +
Modified Dir function, <DIR <src>> will return the dir you should have to face <src> (Same as FACE <SRC> but not turning you, just returning the DIR value).
 +
Added Reveal (flags): Reveal statf_hidden will reveal player if has statf_hidden, same for sleeping, insubstantial and invisible.
 +
Sum this flags to reveal more than 1 invis state (ie: statf_invisible|statf_sleeping will reveal player if any of these flags is present on him).
 +
Reveal -1 will reveal everything (Even invis staff).
 +
 
 +
Changed: SpellFlag_NoUnparalyze flag in s_explosion will affect explosion potions.
 +
Changed: Argo is now writable ( Remember that Argo can only be accessed via script and not ingame ).
 +
Added SysMessagef function accepting text with strings and limited to 3 args. Example: sysmessagef "Hello %s, I have a %s and %s, be aware of me!",<src.name>,<findlayer.1.name>,<findlayer.2.name>
 +
It needs the text to be inside " " to create the first arg with it, but first and last quotes will be removed (only these 2).
 +
Changed: SkillUseQuick is now RW and not only Read because not always need a return.
 +
SpellEffect ( CChar::Spell_Effect_Create() ) now set as NEW the UID of the spell's rune, IE: 'spelleffect s_poison,2000,<src>' ... 'new.remove ' will remove the poison rune.
 +
Added @(item)MemoryEquip firing when equiping any item in memory layers (Not normal @Equip-able items), in example: paralyze rune, criminal memory ...
 +
argn1 = layer on which the item will be equiped.
 +
return 1 deletes the item and prevents default actions.
 +
Fixed 'Range' not being properly defaulted to skill's defaults when no value is in the skill.
 +
Fixed SKF_GATHER skills going to negative values when local.gatherstrokecnt=1.
 +
 
 +
Added SKF_FIGHT to fighting skills in sphere_skills.scp.
 +
Fixed ADV_RATEs for parrying being too high and causing the skill to not gain.
 +
 
 +
Minor changes to 0x20 packet.
 +
 
 +
Modified ResPhysical to work like armor.lo. Modified Armor to be writable (only for items) and also Dam (for items and chars) and changed them from BYTE to WORD.
 +
Moved Weight to dynamic items too.
 +
Fixed bad definition of t_stone_town type in the f_stonesys_gettypename function inside sphere_genericstone_functions, should be <DEF.STONECONFIG_TYPENAME_TOWN>.
 +
Added ColorInvis, ColorHidden and ColorInvisSpell to sphere.ini overriding (if specified) the default color for .invis, hidding or the invis spell/potion.
 +
 
 +
Fixed items remaining on the ground on Enhanced Client when equipping them via double click.
 +
Fixed PacketMapChange being fired when DClicking an item and turning around (without OF_DClickNoTurn enabled). This should decrease the amount of rubberband effects.
 +
 
 +
NOTE: The following changes are supossed to be usefull to redo the default combat system, but not using the new trigger will make the new script and the following code useless so this is not forced,
 +
just a help to rewrite the actual sys without doing a whole new combat system allowing to tweak each check.
 +
NOTE2: These changes are in 'beta' proccess, please report any problem to bugtracker.
 +
NOTE3: If I was not clear enough... this makes no difference with current systems if the new trigger and dam_flag are not used.
 +
 
 +
Added DAM_FIXED to sphere_defs.scp: this flag will make sphere asume that the argn1 value in @gethit is the final damage and will not do any formula calculations over it,
 +
will only cast sounds,animations, blood, memories, attacker.n.% update and @GetHit trigger.
 +
It also have some effects in the hit proccess (explained under).
 +
Changed: combat functions (hit & gethit ) to allow easy override via script with DAM_FIXED giving a better way to override the default combat system while knowing also the resulting damage
 +
Added sphere_combat.scp with the override of the default combat system and explanations of the new changes also.
 +
Added Swing Types in sphere_defs.scp for combat compatibility.
 +
//  SWING_INVALID = target is invalid, searching another one.
 +
//  SWING_EQUIPPING = swing made.
 +
//  SWING_READY = can't take my swing right now. but i'm ready
 +
//  SWING_SWINGING = taking my swing now.
 +
Added Swing variable for characters setting or retrieving the SWING_TYPE they currently have.
 +
Added FullTrigger function working like 'call' to call triggers with full support with old args and locals making possible to override default triggers with your parameters.
 +
FullTrigger must be write only to avoid some problems so I added the return value in local.return, which can be readed after the trigger call.
 +
Usage: FullTrigger @DClick
 +
Added @HitCheck trigger just in the beggining of the hit allowing to use only custom combat checks (default ones are in the supplied script) or to override the whole combat formulas.
 +
- Args
 +
Argn1 = SWING_TYPE. Swing will be set to this value after the trigger so you can 'jump' between swings with or without default checks.
 +
Argn2 = DAM_FLAGS
 +
- Returns
 +
return -1 SWING_INVALID
 +
return 0 default checks
 +
return 1 will make Sphere return the SWING_TYPE applied in argn1, so if you are in SWING_SWINGING and you set argn1 to SWING_EQUIPPING you'll have to start the hit proccess again.
 +
(Note, argn1 there will NOT set SWING to it's value).
 +
- Special returns will be fired when SWING_TYPE = SWING_SWINGING & FLAGS & DAM_FIXED
 +
return 0 will generate the default damage formula and flags (if not set via argn2) and then call the gethit function without DAM_FIXED applied.
 +
return 2 will finish the hit function AS IT IS and will NOT call the gethit function (this asume you are creating the damage, formulas and calling .damage function).
 +
Note: Using new DAM_FIXED or return 1, -1 will obviously NOT call any skillgain, memory change, exp, attacker update, notoriety, actions, etc. Using this will (almost) make you to rewrite the whole system as shown in the given script.
 +
 
 +
03-08-2014, XuN
 +
Modified Dir and Face functions (and the not soft-coded functions) to prevent loading all items in each dir change, even if they were not send to clients they were consuming resources in the serve
 +
 
 +
04-08-2014, Ben
 +
Fixed #2362: Old attacker code interfering with new code.
 +
Added: BREAK and CONTINUE to script loops. (CONTINUE will skip to the next iteration, BREAK will exit the loop)
 +
 
 +
06-08-2014, XuN
 +
Fixed a problem causing Staff with gm body (03db) to stick with this corpse and blocking following commands because of the '=' automatically appearing, Update is called when setting the body value.
 +
Added party.create msg,uid(s) where msg is 0/1 sending default sysmessages or not (usefull when forcing groups 0 = disable ), the following args (up to 9 more) is/are the players to add to this party.
 +
Changed all party triggers (Except the @PartyRemove when argn1=1, which means informative remove when a @PartyDisband has been fired before and is in proccess now) returnable to stop their following code.
 +
Fixed crash bug introduced in last patch.
 +
 
 +
08-08-2014, XuN
 +
Multiples items overplaced not doing their 'effects', ie: spell fields, because of returning the code after finding the first item. All of the changes related to this can be overriden in @Step and @itemStep.
 +
- Paralyzed characters won't move to any t_telepad or t_moongate location if they are freezed or stoned.
 +
- t_shrine was blocking the effect of any other items in its location, so now if players place any field or explotion or whatever upon it = free reskill.
 +
Added #2380: Spell Fields check now the Z when creating, adjusting their position to it.
 +
Moved the FIX: code to FixZ() for CItem and CChar.
 +
Added also a bool bForceFix to MoveTo forcing a FixZ() after the Object positioning, updated the whole pack of *::MoveTo() to accept the new bool.
 +
Fixed #2381: Reveal not removing the memory when spell s_invisibility was casted (layer 39) (only removing potion effect (layer 44)).
 +
Added m_defenseBase and m_defenseRange splitting up the m_attackBase/Ranged properly between armor and damage instead of using it for everything.
 +
Enabled some disabled variables for KR client status bar.
 +
 
 +
09-08-2014, Ben
 +
Fixed: Another issue with stairs...
 +
 
 +
10-08-2014, Ben
 +
Fixed #2383: Weight not changing after a baseid change resulting in weird weight calculations.
 +
Fixed #2382: Reveal causing server freeze.
 +
Fixed: Paperdoll not updating body color when using invis spell
 +
 
 +
11-08-2014, matex
 +
Added EF_NoDiagonalCheckLOS = 00000001. Disables Diagonal Passage checks for legacy LOS. (Not advanced LOS)
 +
Added FACING function to objects which will give you the direction the object/npc would turn to if it looks towards SRC.
 +
Optionally FACING takes a location or uid as argument. This UID/location replaces SRC in that context.
 +
 
 +
16-08-2014, Ben
 +
Fixed #2386: Ghosts can't pass through doors anymore
 +
Fixed #2385: No swing animation during combat, @HitTry doesn't fire.
 +
Fixed #2387: Hunger/starving causing wrong damage.
 +
Fixed #2380: Field spells creating items on incorrect Z. (Caused by the Fix funtion. Fix should now work better in all places)
 +
 
 +
18-08-2014, XuN
 +
Fixed some problems with ResPhysical.
 +
Added @Resurrect trigger:
 +
- argn1 is the hitpoints value the char will have when resurrected (RW).
 +
- argo is the corpse (if any near) (R).
 +
Fixed some items removed from view in some circumstances.
 +
 
 +
26-08-2014, Ben
 +
Fixed: SLEEP causing NPCs to die with double corpse.
 +
 
 +
04-09-2014, matex
 +
Fixed: character hue not updating when Char is revealed.
 +
 
 +
04-09-2014, matex
 +
Xun made the WEIGHT property on writable on items. I renamed it BASEWEIGHT because we need
 +
WEIGHT not to return the weight of a single instance but also of the whole stack in scripts.
 +
So WEIGHT is read-only again. If you want to change the base weight, use BASEWEIGHT.
 +
 
 +
07-09-2014, matex
 +
Fixed: Armor not updating when BaseID is changed on an Item.
 +
Fixed: EF_FixCanSeeInClosedConts always enabled in Debug builds
 +
Fixed: Walking code. Only stair statictiles are priorized now near the map-surface. Platform tiles not. (players were falling through map surface)
 +
Fixed: Order in which NPCvendor boxes are sent to the player (display bug)
 +
 
 +
10-09-2014, matex
 +
Refactored some of the walking code. You now need NPC's and Players to have MT_INDOORS definitely for them to be able
 +
to go under static tiles.
 +
Changed MT_INDOORS to MT_NOINDOORS. Think that makes more sense.
 +
 
 +
13-09-2014, matex
 +
Built in LOCAL.ArrowHandled for @HIT, @HITMISS
 +
so if you set this to something different from 0 in the triggers
 +
the server will not BOUNCE drop the arrow to the Target's feet on MISS
 +
or bounce it to the Targets BP on hit. You can handle this yourself.
 +
If you do nothing, the arrow will be deleted if Local.ArrowHandled != 0
 +
You can prevent it from being deleted by moving it in the Trigger.
 +
 
 +
13-09-2014, Ben
 +
Fixed #2397: Return 1 should now prevent the guards from coming under @callguards in all instances
 +
 
 +
01-10-2014, Coruja
 +
- Fixed: Strange walk animation when using Alchemy skill.
 +
- Fixed: MAKEITEM refusing to craft items on Cooking skill.
 +
- Fixed: The pet poop now comes with ATTR=attr_move_never by default.
 +
 
 +
- Changed: Improved sound of pets pooping on the ground.
 +
- Changed: A little sound/anim tweak on some crafting/harvesting skills.
 +
- Changed: Reduced default RANGE on Blacksmithing and Lumberjacking skills (3 -> 2 tiles).
 +
- Changed: Alchemy skill is now a craft skill like any other. No more exclusive behaviors.
 +
  The skill is now used clicking on it's tool (mortar & pestle) instead click on the reagent or empty bottle.
 +
  EFFECT now can be used to control the % of lost resources on skill fail.
 +
  Skill stroke behavior now works fine on alchemy (LOCAL.CraftStrokeCnt on skill @Start, and @SkillStroke on chars).
 +
  [sphere_skills.scp] Added FLAGS=skf_craft to alchemy skill
 +
  [sphere_item_provisions_potions.scp] Added missing 't_mortar' on potions SKILLMAKE
 +
  [sphere_msgs.scp] Removed some alchemy internal messages
 +
  WARNING: Make sure to update your scripts following these changes, otherwise alchemy skill will not work anymore.
 +
 
 +
02-10-2014, Coruja
 +
- Changed: Cartography skill is now a craft skill too. The craft now uses default MAKEITEM instead the hardcoded DRAWMAP.
 +
  The skill is now used clicking on it's tool (mapmaker's pen) instead click on the skill button or blank map.
 +
  Removed obsolete DRAWMAP hardcoded function. The behavior is now softcoded using @Create on map items.
 +
  [sphere_skills.scp] Softcoded the client skill button behavior, it comes disabled by default
 +
  [sphere_item_profession_cartographer.scp] Added new items for maps and mapmaker's pen
 +
  [sphere_defs.scp] Added new hardcoded typedef 't_carpentry' used on the tool to open the skill menu
 +
  [sphere_template_vend.scp] Updated NPC Mapmaker vendor buy/sell template list
 +
  [sphere_skillmenu.scp] Updated cartography skillmenu
 +
  [sphere_msgs.scp] Removed some cartography internal messages
 +
  WARNING: Make sure to update your scripts following these changes, otherwise cartography skill will not work anymore.
 +
 
 +
07-10-2014, Coruja
 +
- Added: New formula for dragon breath damage on NPCs brain_dragon, it's now NPC_CurrentHitpoints * 0.16 (if BREATH.DAM property is set, it will override the internal damage).
 +
- Fixed #2405: Players becoming criminal when attack someone on the same guild.
 +
- Changed: Increased NPCs view range from 12 to 14 tiles. This also affects the range to call guards.
 +
- Changed: Cooking skill is now a craft skill.
 +
  The skill is now used clicking on it's tool instead click on the raw food and select a fire source (but the fire source still needed in range).
 +
  [sphere_defs.scp] Added new hardcoded typedef 't_cooking' used on the tool to open the skill menu.
 +
  [sphere_item_profession_cooking_barkeep_baker.scp] Added typedef t_cooking on i_fry_pan, i_flour_sifter, i_rolling_pin. Also fixed many food items using wrong MOREZ
 +
  [sphere_msgs.scp] Added/Removed some cooking internal messages
 +
  [sphere_skillmenu.scp] Added missing sm_cooking skillmenu
 +
  WARNING: Make sure to update your scripts following these changes, otherwise cooking skill will not work anymore.
 +
 
 +
08-10-2014, XuN
 +
- Added Argn3 value in @UserWarMode telling Sphere to remove Attacker list after execution.
 +
- Added a description of deletion in argn1 for @CombatDelete:
 +
  0 = Forced (Blocked attack, default uncategorized actions...)
 +
  1 = Max fight time has reached (Elapsed)
 +
  2 = Distance/LOS
 +
  3 = The character is no longer existing
 +
  4 = Forced via attacker.delete methods (ingame/script)
 +
 
 +
- Fixed ResPhysical no showing the correct values in the Status gump.
 +
- Fixed Stoned players being able to dismount.
 +
 
 +
09-10-2014, Ben
 +
- Fixed: RETURN 6 not halting scripts when inside an IF statement.
 +
- Fixed: .fix will now default to the first terrain elevation instead of lowest Z possible.
 +
 
 +
10-10-2014, XuN
 +
- Added local.anim and local.animDelay (this last one only working for classic clients) to @HitTry, so animations can be disabled and fired later in @hit (to remove the odd behaviour with new animation packets, which doesn't have delay).
 +
- Added OF_NODClickTarget to ini, enabling this will not make the cursor appear as a target when double clicking weapons to equip them.
 +
 
 +
11-10-2014, Ben
 +
- Added #2394: SMSG_DEF_UNICODE, MSG_DEF_UNICODE, IMSG_DEF_UNICODE to sphere_msgs.scp. If set to 1, messages will be sent in unicode unless overwriten with the the mode in @hue,font,mode.
 +
 
 +
11-10-2014, Coruja
 +
- [sphere_defs.scp] Added new BFONT_* colors to use on HTML texts. Values already match most colors used on OSI dialogs.
 +
- [sphere_map0.scp] Fixed duplicated a_dungeon_10 AREADEF (the last one was renamed to a_dungeon_19).
 +
- [sphere_map_points0/1.scp] Fixed Hythloth entrance teleport.
 +
 
 +
12-10-2014, Ben
 +
- Fixed #2416: @Enter region trigger will now fire after NPC stats are set in all instances.
 +
- Fixed: local.return not being set in FULLTRIGGER if no args were specified.
 +
 
 +
14-10-2014, Coruja
 +
- Added: New MAGICF_NOCASTFROZENHANDS setting on sphere.ini. If enabled, this will prevent cast spells if the char got paralyzed holding something on hands.
 +
- Added: Missing behavior for SPELLCHANNELING item property. It's now working fine, items using this property won't get unequiped when casting spells.
 +
- Fixed: Triggers @Start (spell trigger) and @SpellCast (char trigger) unequiping weapons and playing the spell cast animation even when the cast got denied using 'return 1'.
 +
- Changed: Updated width/radius internal values for area/field spells (nothing really changed, just hardcoded values already set on sphere_spells.scp to be the default internal value if there's no value defined on scripts to override it).
 +
- Changed: Create Food spell is now target-based. Using SPELLFLAG_TARG_* the food will be created on ground at target location, otherwise it will be created on caster backpack.
 +
  [sphere_msgs.scp]: Added new messages for 'spell_create_food' and 'spell_try_frozenhands'.
 +
  [sphere_spells.scp]: Removed target flags on Create Food spell. It will now create the item on backpack by default.
 +
  [sphere_dialog.scp]: Added missing description for 'nodispose' on help guide.
 +
 
 +
16-10-2014, Coruja
 +
- Fixed #1860: Spell cast behavior now check for spellbook/mana/reags before check for anti-magic region.
 +
- Changed: return 6 on @SpellCast trigger now will skip anti-magic region check too.
 +
- Changed: Polymorph spell now doesn't change char status anymore. If needed, this behavior can be softcoded using @Success on Polymorph spell (ACTARG2 [read/write] is the new body ID)
 +
  [sphere_spells.scp]: Added missing spellflag_noprecast and cancel functionality for polymorph spell. If used while already polymorphed, it will remove the polymorph effect.
 +
 
 +
17-10-2014, Coruja
 +
- Added: New MediumCanHearGhosts feature on sphere.ini (default value: 100.0). At this Spirit Speak skill level players can understand ghosts speech instead hear 'oOOoO ooO'.
 +
- Fixed: Functions GM, PRIVSET and TOGGLEABBREVIATION not updating the char tooltip correctly.
 +
- Fixed: MSG_DEF_COLOR def on sphere_msgs.scp not working when the char click on itself.
 +
- Fixed: Char flag [stone] overriding [frozen] and [tame] overriding [npc]. Also fixed [tame] only showing inside guarded regions.
 +
- [sphere_msgs.scp]: Added new defs to customize EMOTE color/font/unicode. These changes are global, and EMOTE still not support @color,font,unicode on individual messages yet.
 +
- [sphere_map_points[0/1].scp]: Fixed 'Lighthouse' teleport not working.
 +
 
 +
18-10-2014, Coruja
 +
- Added: New VendorTradeTitle feature on sphere.ini. If enabled, it will show the job title on vendor names (eg: Alan the Carpenter).
 +
- Changed: Corpses now will be created with TAG.OVERRIDE.MAXWEIGHT already set (value is always the same as char MAXWEIGHT). This will prevent overweight problems if someone drop many heavy items on a player corpse and then resurrect the player just to make him get stuck.
 +
 
 +
20-10-2014, Coruja
 +
- Changed: Scissors won't cut hair/beard anymore. Now proper items are needed to do it, like items usually found on NPC Barber (hair restyling, hair dye, etc).
 +
- Changed: Sewing Kit can't be used directly on bolts of cloth anymore. To use the bolts of cloth we must cut it using scissors first.
 +
- Fixed #2421: Using scissors on bolts of cloth now will convert it properly to cloth.
 +
- [sphere_msgs.scp]: Added new message 'loot_criminal_act' when opening corpses to warn that looting items will be a criminal action.
 +
 
 +
22-10-2014, Coruja
 +
- Added: Missing functionality of EF_PetSlots feature on sphere.ini. It's working now, but still need some testing and final tweaks.
 +
  [sphere_msgs.scp]: Added new messages for petslots_try_*
 +
 
 +
23-10-2014, Coruja
 +
- Fixed: Minor EF_PetSlots issues. Now everything is working fine and it's ready to use.
 +
- Changed: NPCs using BRAIN=brain_animal_trainer won't give food to players anymore (but still able to feed pets nearby).
 +
 
 +
23-10-2014, XuN
 +
- Changed Argn3 in @UserWarMode to force a war/peace status ( 0 = do nothing, 1 = force peace, 2 = force war).
 +
  NOTE: Argn3 is no longer deleting Attacker's lists, to do so use attacker.clear.
 +
 
 +
26-10-2014, Coruja
 +
- Changed: Many improvements on pet stables behavior.
 +
  Also the max limit of pets that the NPC can hold for a player now is based on player skills (Animal Taming + Animal Lore + Veterinary). Usually it can hold 2~8 pets.
 +
  If TAG.MAXPLAYERPETS is set on the NPC, it will override the formula and will be default value for all players.
 +
 
 +
- Added: Account character creation now will create characters with MAXFOLLOWERS=5 already set.
 +
- Fixed: House customization engine creating doors using wrong type 't_door' instead 't_door_locked'.
 +
- Fixed: EMOTE_DEF_* defs not working on attack messages (*Someone is attacking you!*).
 +
- [sphere_msgs.scp] Changed 'stablemaster_*' defmsg to new defs/texts. I HIGHLY recommend update it, since the old 'stablemaster_*' defmsgs won't be used anymore.
 +
 
 +
27-10-2014, XuN
 +
- Attacker.clear can be used now even if character doesn't have a Attacker list, so no error is log in console.
 +
 
 +
28-10-2014, Coruja
 +
- Fixed: Function REGION.REGION.* returning wrong parent region if used on regions which is already the parent region.
 +
- Fixed: Function MAKEITEM and some crafting skills always crafting itens using amount=1 instead follow the item replication rule.
 +
- [sphere_defs.scp] Added html color defs for BFONT_LRED, BFONT_LYELLOW and BFONT_LCYAN.
 +
- [sphere_monsters.scp] Changed human/elf/gargoyle MAXFOOD to 20 (OSI default value).
 +
 
 +
28-10-2014, XuN
 +
- Fixed #2396: Attacking aborted when target is out of range, even if COMBAT_StayInRange is disabled.
 +
- Changed Read mode for 'Title', now giving it a parameter will return the 'Trade Title' (Grandmaster Swordsmanship, Journeyman bowcraft, etc) instead of the custom title. (Example of usage: <title 1>).
 +
 
 +
29-10-2014, XuN
 +
- Added can_i_forcedc (sphere_defs.scp), adding this flag to an item will allow it to be DClickable in every situation: from one side of the map to another, or even in another map, weared by another character, or GMs too, no checks at all.
 +
  NOTE: Player's cant DClick what they don't see but they will be able to do it with the LastObject macro, or by knowing the UID and using 3rd party programs, be aware of that.
 +
 
 +
02-11-2014, XuN
 +
- Fixed GetNPCBrain() not working as it should and returning wrong brain (in internal usages) and ignoring the Brain used in CHARDEFS in some cases.
 +
- Added Ignore value to Attackers: Setting it to 1 will make the character ignore this target (mostly used by NPCs), when looking for target.
 +
  @CombatAdd has now 2 arguments:
 +
    Argn1 = Initial Threat (If used).
 +
    Argn2 = Setting it to 1 make this enemy to be added as Ignored. (Setting it to 1 for a player in every NPCs will make this player be 'invisible' for them, good to create a faction system and such things).
 +
 
 +
02-11-2014, XuN, Ben, Feeh (and tons of help from Karma).
 +
- Ship's patch:
 +
  Added Packet 0xF6 (New Ship's Movement): This packet is affecting ships on client > 7.0.8d (High Seas ones), regardless of the multi files, patched ship's or not patched ones... it's a client's packet.
 +
  Added Packet 0xF3 (Packet Container): Used to send tons of items/chars at once in one only packet, used to send items and chars inside multis (Houses and Ships). Clients > 7.0.0 (Stygian Abyss).
 +
  Added ShipSpeed and SpeedMode for [Multidef ] definitions:
 +
    ShipSpeed=2,1 (Period,Tiles): Period (in Tenths of second) tell the ship the delay until it moves again, tiles means the tiles moving (Default and suggested is 1, others won't work because of ... (read next line)).
 +
    SpeedMode=(0x01 = one tile, 0x02 = rowboat, 0x03 = slow, 0x04 = fast). This modes have no sense until we have MultiThreading and can change the ticks per sec from 10 to 100 to make ships to move each 0.25seconds (which we cannot now).
 +
 
 +
  Updated multis_ships.scp with these new values.
 +
  Fixed ship's planks not working.
 +
  Updated the Update and Move (and their related functions) to send the minimal updates required, hence making less rubberband effects.
 +
  Fixed some issues with EC and ships making visual strange effects, items staying behind the ship.
 +
  Fixed some problems when turning the ships.
 +
  Some more minor tweaks related to ships.
 +
 
 +
  NOTE: Mouse Wheel Movement packet is NOT included in this commit.
 +
 
 +
02-11-2014, Ben
 +
- Changed: ARGN2 in @Abort and @SkillAbort (and other Skill triggers) will be the spell number if magery is used
 +
 
 +
03-11-2014, XuN
 +
- Fixed #1820: Combat_PreHit not working with Archery.
 +
- Fixed #1621: StatLocks not working, fixed and improved the whole statgain system.
 +
- Updated spherecrypt.ini
 +
- Changed .shrink now can have a value which will automatically bounce the figurine.
 +
 
 +
05-11-2014, Ben
 +
- Removed previous changes: (ARGN2 in @Abort and @SkillAbort (and other Skill triggers) will be the spell number if magery is used)
 +
- Replaced with LOCAL.SPELL (read only) as ARGN2 was already in use by some of the skill triggers.
 +
 
 +
09-11-2014, Ben
 +
- Fixed #1644: Corpses will now move with ships.
 +
 
 +
10-11-2014, Coruja
 +
- Fixed: SPELLTIMEOUT char property not working correctly.
 +
- Added: support for some human/elf racial traits (only used if FeatureML is enabled on sphere.ini)
 +
    Tracking skill: humans always have a minimum of 20.0 tracking skill, and elves are more difficult to be tracked.
 +
    Max weight: humans can always carry an aditional 60 stones of max weight.
 +
    Nightsight: elves always have nightsight enabled by default.
 +
 
 +
- Changed: Some internal improvements on Tracking skill
 +
  Improved search distance.
 +
  Ghosts can't be tracked anymore.
 +
  Spyglass item is no longer required to use Tracking skill inside ships/boats.
 +
  Triggers @Stroke / @SkillStroke now are called at each tracking stroke.
 +
  Removed redundant skillmenu button "Track anything that moves".
 +
  New OSI formula to check tracking difficulty when trying to track players. It will use the char skills (Tracking, Detecting Hidden) vs target skills (Hiding, Stealth).
 +
  [sphere_msgs.scp]: Updated some 'tracking_*' messages. Also merged all 'skillmenu_text_*' (only used on tracking skillmenu) into 'tracking_*'.
 +
  [sphere_skills.scp]: Added OSI-like support for ARROWQUESTS on tracking skill (softcoded). OSI uses only the arrow to track (with no messages) but I will leave the old messages as it is for compatibility purposes with old clients.
 +
 
 +
16-11-2014, Ben
 +
- Fixed: Added Items on ships with .add will now move with the ship.
 +
- Fixed: Ships should now move alot smoother with SA+ clients and back to normal with older clients
 +
 
 +
18-11-2014, Coruja
 +
- Fixed: Pet tooltip menu showing to dead players.
 +
- Fixed: Pet tooltip menu showing 'Drop' button when the pet has no backpack access.
 +
- Fixed: Added missing 'Release' button on pet tooltip menu.
 +
- Changed: Pet friends now have limited access to pets commands instead full access. Friends now can only use follow / stop / stay commands and open the pet backpack (if avaible).
 +
 
 +
18-11-2014, Ben
 +
- Changed evelation at which items are considered to be part of a ship. (-2 to +15 from top of deck).
 +
- Fixed: party_add_notleader defmessage was wrong -> party_notleader is correct.
 +
 
 +
22-11-2014, Coruja
 +
- Added: Wisdom racial trait on elves (they always have +20 max mana). It works only if FEATURE_ML_UPDATE is enabled on sphere.ini
 +
- Changed: 'Open Bankbox' / 'Check Balance' context menu buttons on NPC Banker (brain_banker) now will make the NPC hear 'bank'/'balance' words instead call hardcoded functions to open bank or check balance. In other words: now both context menu buttons and spoken commands are consistent and can be softcoded.
 +
 
 +
23-11-2014, Coruja
 +
- Added: Tough racial trait on humans (they always have +2 hitpoint regeneration)
 +
- Fixed: @GetHit trigger not returning some ARGN2 values (like dam_fixed).
 +
- Changed: Updated some damage flags used internally on spells.
 +
- Changed: RegenHits/RegenMana/RegenStam char properties now will override default Regen[0/1/2] values on sphere.ini instead decrease it.
 +
- Changed: Optimized hunger/starving engine
 +
  Fixed FOOD property returning to 1 after reach 0.
 +
  Fixed hunger message not showing on mounted pets.
 +
  Fixed @PetDesert trigger showing the pet desert message even if the trigger is using return 1 to prevent the action.
 +
  Changed starving damage flags (dam_god|dam_general|dam_nounparalyze to dam_fixed)
 +
 
 +
- [sphere_defs.scp]: Updated [DEFNAME dam_flags] section to match the correct internal flag list.
 +
 
 +
29-11-2014, Coruja
 +
- Added: FEATURE_AOS_DAMAGE on sphere.ini now will display to pet owners the damage caused by pets.
 +
- Fixed: .DUPE function on items not duping the item timer.
 +
- Fixed: NPCs showing wrong color on chars on some specific cases.
 +
- Fixed: Paperdolls showing the "," after the char name even when there's no title to display.
 +
- Changed: only players can have skill titles on paperdoll now.
 +
 
 +
04-12-2014, Ben
 +
- Added: OF_NoSmoothSailing in sphere.ini to disable smooth sailing and keep old behaviour
 +
 
 +
06-12-2014, Ben
 +
- Fixed: Crash caused by 2 handed weapons no updating properly
 +
- Fixed: EF_PetSlots not checking chardef for FOLLOWERSLOTS
 +
- Fixed: possible more ship errors...
 +
 
 +
07-12-2014, Coruja
 +
- Added: Eating foods now will recover stamina too (OSI default gain: rand(3,6) + FoodRestoredByItem/5)
 +
- Fixed: Console error when ridden pets get hunger.
 +
 
 +
14-12-2014, Ben
 +
- Fixed #2437: Ships were able to turn onto other ships in certain conditions.
 +
- Added #2429: TAG.SpawnItem will now contain the spawngem's uid for items that are spawned.
 +
 
 +
14-12-2014, Feeh
 +
- Added: SERV.RTIME.GMTFORMAT. Works exactly like RTIME.FORMAT but returns GMT time
 +
 
 +
17-12-2014, Ben
 +
- Fixed #2437 & #2440: More ship movement issues.
 +
 
 +
21-12-2014, Ben
 +
- Fixed #2442: More Ship errors.
 +
- Fixed #2444: better detection of valid .add arguments.
 +
- Added: d_add dialog will now be used, if it exist, for .add instead of menu_additem
 +
- Fixed #2441: Gargoyle horn color not bing set properly.
 +
 
 +
23-12-2014, Ben
 +
- Fixed: Minor bug in .add command since the last update that didn't allow numeric arguments.
 +
- Fixed #2450: when COMBAT_ALLOWHITFROMSHIP is disabled, you can no longer attack someone inside a ship while outside.
 +
- Fixed #2447: Ships not updating properly when leaving the screen.
 +
 
 +
24-12-2014, Coruja
 +
- Fixed: Added missing 'invalid command/format' message when type '.add' command using invalid arguments.
 +
- Fixed: Weapons wrongly using DAM property from the ITEMDEF even when it have a custom DAM property set on the created item.
 +
- Added: New tooltips on weapons/armors to show many item properties like DAM[physical/fire/...], RES[physical/fire/...], BONUS[str/dex/int/hits/stam/mana], LUCK, etc.
 +
- Changed: Weapons/armors won't decrease their damage/armor value based on item durability anymore (if someone still need it, this can be softcoded using @Damage trigger on weapons/armors to change their DAM/ARMOR values).
 +
- Changed: Tooltips now will auto update when item/char properties got changed.
 +
 
 +
25-12-2014, Ben
 +
- Fixed #2447: Again...  Ships not updating characters properly when leaving the screen.
 +
 
 +
31-12-2014, Ben
 +
- Added: "BREAK" function under @create and @npcrestock to return to normal script interpratation after an ITEM= line since any lines under it was designed to modify the item. (any BUY or SELL line will also break ITEM loop)
 +
- Changed #2451: Items will now be allowed to be "locked down" to ships and still move with the ship.
 +
- Added: new .ADD dialog to replace old add menu. (old menu still available in the scripts by removing d_add dialog, but it is full of errors)
 +
 
 +
09-01-2015, Ben
 +
- Added: Item trigger @Ship_turn with ARGN being the direction the ship is turning. It fires on all items on a ship, including the ship itself.
 +
 
 +
16-01-2015, Coruja
 +
- Added: Support for NIGHTSIGHT property on items. Items with NIGHTSIGHT=1 will automatically enable/disable a permanent nightsight effect on equip/unequip
 +
- Added: New optional flag OF_ScaleDamageByDurability on sphere.ini to make weapons/armors lose DAM/AR if the item get damaged. The value is based on current item durability, so the damage can be reverted if the item get repaired.
 +
- Fixed: Tooltips not updating when some char properties (criminal/kills/flags/invul) are changed
 +
- Fixed: Guards on 'red regions' (regions with TAG.RED=1 set) always using name hue 021 instead ColorNotoEvil set on sphere.ini
 +
- Fixed: All item memories different from spells/potions getting wrongly named as 'Potion Cooldown'
 +
- Fixed: Function BADSPAWN not looping through inactive spawns (spawn item with TIMER=-1 set)
 +
- Changed: Item tooltips now can read properties set directly on ITEMDEF too
 +
 
 +
[sphere_msgs.scp]: Updated some messages (magery_6, msg_corpse_of, npc_pet_decide_master, spell_try_am)
 +
[sphere_combat.scp]: Updated obsolete 'dam_lightning' to 'dam_energy'
 +
[sphere_skills.scp]: Improved ARROWQUEST position on Tracking skill
 +
[sphere_map_points5.scp]: Updated Ter Mur moongate list
 +
[sphere_monsters.scp]:
 +
  Added missing DAM on c_man, c_woman, c_elf_male, c_elf_female, c_gargoyle_male, c_gargoyle_female, c_man_gm
 +
  Fixed COLOR on c_cat, c_dog
 +
 
 +
16-01-2015, Ben
 +
- Fixed: MULDIV rounding up negative numbers when they should be rounding down.
 +
- Fixed #2457: TAG.ALWAYSSEND will now be checked on ITEMDEF too.
 +
- Fixed #2458: Made attr_static not movable with ships.
 +
- Fixed #2456: Archery Butte not working properly.
 +
- Some changes to FEATURE_SA_MOVEMENT (This seems to affect speedhacking, would require some more testing) (possible fix for #2435 for SA+ clients)
 +
 
 +
24-01-2015, Ben
 +
- Fixed: Undefined keyword 'ITEM' error when restocking vendors.
 +
- Modified: Order of @Create triggers to satify all situations.
 +
    1 - CHARDEF's @Create runs first with @NPCRestock that follows (character does not have a position yet)
 +
    2 - The character is placed in the world (This should fire @Enter in the appropriate region, and unlike before, the character is fully created)
 +
    3 - TEVENTS @Create is fired (character now has a position)
 +
    4 - EVENTSPET @Create is fired
 +
 
 +
24-01-2015, XuN
 +
- Stackable items with different 'new variables' like ResPoison, UsesCur, etc cannot be stacked anymore.
 +
- Added MaxAmount variable to stackable items with a default value of 65535 (not using this means no changes). This affect both Itemdefs and already created items (which can differ if you set to).
 +
- Droping on self/backpack and bouncing stackable items now makes Sphere trying to reach MaxAmount,
 +
    so if you have one pile of 50k of gold and you drop another 50k you'll end with one stack with 65535 coins and another one with 34465,
 +
    obviously, if you set [itemdef i_gold] to MaxAmount=50000 this will not happen.
 +
- Maximum value of MaxAmount keeps being unsigned short, the same, 65535 because of client limitation.
 +
  Non stackable items doesn't have MaxAmount
 +
 
 +
 
 +
26-01-2015, XuN
 +
- Added 'click' function, doesn't need explanation I think.
 +
- Setting UsesMax will raise UsesCur too if UsesCur is 0.
 +
- Added UsesMax to tools from sphere_item_profession.scp and lumberjacking items (axes/polearms) in sphere_item_provisions_weapons.scp
 +
- Using Destroy 1 will make the item emote it's destruction.
 +
- Updated Lumberjacking,Fishing and Mining in sphere_skills.scp reflecthing Destroy changes.
 +
 
 +
27-01-2015, XuN
 +
- Updated @CombatDelete trigger with a new argn1 value, now it's telling Sphere to remove or keep 1/0 the attacker's memories when removing him from the list.
 +
- Added @HitIgnore trigger firing when one character is going to avoid an ignored target in the target selection: argn1=1 keep him ignored, argn2= un-ignore target (so character can attack him again).
 +
- Added @Eat trigger, read wiki for more info: http://wiki.sphere.torfo.org/index.php/@Eat
 +
 
 +
28-01-2015, Coruja
 +
- Added: Support for packet 02c to display char death animation (the famous "You are dead" black screen)
 +
- Changed: Min account plevel to bypass MinCharDeleteTime setting on sphere.ini changed from 3 (Seer) to 2 (Counselor)
 +
- Changed: return 1 on f_onchar_delete function (sphere_serv_triggers.scp) to deny char exclusion now will show a proper message ("couldn't carry out the request" instead "character is not old enough")
 +
- Changed: Some tooltips behavior below
 +
    Items amount value now will show directly on item name instead a new tooltip line
 +
    Added missing tooltips for Insured (attr_insured), Quest Item (attr_questitem) and Crafted by [CharName] (CRAFTEDBY property)
 +
    Added weight tooltip on all movable items if FEATURE_ML_UPDATE feature is enabled on sphere.ini (although it's not a ML feature, OSI started using this tooltip only on ML)
 +
    [sphere_msgs.scp]: Removed 'tooltip_tag_amount' text
 +
 
 +
29-01-2015, Coruja
 +
- Changed: Major improvement on combat engine (damage/resist calculations)
 +
    COMBAT_SPECIALDAMAGE and COMBAT_USE_RESISTANCE settings on sphere.ini are now a single COMBAT_ELEMENTAL_ENGINE which does the same thing (but now unified).
 +
    COMBAT_ELEMENTAL_ENGINE now totally overrides pre-AOS AR calculations with AOS damage/resist types instead use both at the same time.
 +
    Fixed formula for AR calculation
 +
    Fixed formula for char damage calculation. If unarmed (wrestling) the base damage will be the char DAM (usually 1-4), and using weapons the base damage will be the weapon damage. This base damage can be increased with some bonuses (if COMBAT_OSIDAMAGEMOD is enabled, it will use OSI bonus calculation, otherwise it will use sphere default bonus [STR/10]).
 +
    On AOS+ clients, the char status menu now will show exactly the damage range that the char can deal (including all bonuses)
 +
    New blood effects
 +
    Old [Physical/Fire/Cold/Poison/Energy]Damage properties got removed and replaced with the new DAM[Physical/Fire/Cold/Poison/Energy].
 +
[Sphere.ini]: Removed COMBAT_TARGETTEDHIT, COMBAT_SPECIALDAMAGE and COMBAT_USE_RESISTANCE settings, and added COMBAT_ELEMENTAL_ENGINE
 +
[sphere_msgs.scp]: Removed all "combat_hit_*" messages.
 +
 
 +
30-01-2015, XuN
 +
- Improved how Notoriety is checked for pets with PetsInheritNotoriety flags in the ini, now the notoriety is redirected instantly to pet's owner to avoid some checks and speed up the code. (Nothing has changed, it's just an improvement)
 +
- Updated fonts on sphere_item_typedef_equipitem.scp for 'unidentified' value on tooltips.
 +
- Splitted stats regens from CChar::OnTick() to CChar::Stats_Regen()
 +
- Re-Added old polymorph stats boost under MAGICF_POLYMORPHSTATS (0800) in sphere.ini.
 +
- Added MaxPolyStats to ini to override old hardcoded value, this limits the amount of stats gained through polymorph spell (default 150).
 +
 
 +
30-01-2015, Coruja
 +
- Added: 5 new optional arguments on DAMAGE function to make it compatible with COMBAT_ELEMENTAL_ENGINE feature
 +
    Sintax: DAMAGE value, dam_flag, source, physical(%), fire(%), cold(%), poison(%), energy(%)
 +
    Example: DAMAGE 50,dam_general,012345,70,30,0,0,0 will split 50 damage into 70% physical damage + 30% fire damage
 +
- Added: Internal support for COMBAT_ELEMENTAL_ENGINE on spells, explosion potion, etc
 +
- Added: New OSI formula to calculate spell damage if MAGICF_OSIFORMULAS feature is enabled
 +
 
 +
04-02-2015, Ben
 +
- Added: guardcall defname to sphere_def.scp in the [DEFNAME HARDCODED] section to allow an override of the words used to call guards. (multiple words can be defined)
 +
- Fixed #2473: Can't get on other ships from your ship anymore.
 +
- Fixed #2467: Orc ship north missing 1 component.
 +
 
 +
07-02-2015, Ben
 +
- Added: Outgoing Packet Filtering using keyword OUTPACKETx=function_name in sphere.ini (works exactly like PACKETx=function_name but for outgoing packets)
 +
 
 +
13-02-2015, Coruja
 +
- Changed: Increased the area radius to call guards [14 -> 18 tiles].
 +
- Changed: RESPHYSICAL won't be merged with AR anymore, now both properties can have independent values. Sphere will choose the property to display on client status gump based on COMBAT_ELEMENTAL_ENGINE setting on sphere.ini (enabled = RESPHYSICAL / disabled = AR).
 +
- Added: Weapons and armors now will automatically set DAM*/RES* char properties on equip/unequip.
 +
- Fixed: Login internal behavior adding TAG.LastHit=0 on chars even when COMBAT_PREHIT is disabled. This tag is only used by COMBAT_PREHIT, so if it's disabled the tag won't be added anymore.
 +
- Fixed #2391: Nearby char names showing wrong notoriety color on client login.
 +
 
 +
15-02-2015, Coruja
 +
- [sphere_defs.scp]: Added missing defs for 'colors_metal' and 'colors_bright'
 +
- [sphere_template.scp]: Added missing 'random_talisman' template
 +
- [sphere_skills.scp]: Removed USESMAX behavior from Fishing skill (I dont know why, but OSI doesn't seems to use the 'Uses Remaining' behavior on this skill)
 +
- [items/*]: Added missing USESMAX property on skill tools items (and removed from i_pole_fishing)
 +
- [towns/sphere_town_dlg_master.scp]: Fixed console error [replaced function f_stonesys_iswarring -> f_townsys_iswarring]
 +
- [towns/sphere_town_functions.scp]: Fixed console error [replaced typedef t_town_town -> t_stone_town]
 +
 
 +
18-02-2015, Coruja
 +
- Fixed: Added missing newline break (\n) on some console error messages.
 +
- Fixed: Bulletin Board showing wrong author name on messages when the reader have GM=1 privileges.
 +
- Added: Items with LUCK property now will set char LUCK on equip/unequip.
 +
- Added: Missing tooltip info for recall runes.
 +
- [sphere_msgs.scp]:
 +
    Added new messages 'msg_targ_unexpected', 'rune_location_unk'
 +
    Updated texts for 'itemuse_rune_name', 'rune_to'
 +
- [sphere_skills.scp]:
 +
    Added missing SKF_RANGED flag on Archery and Throwing skills.
 +
    WARNING: Make sure to update your scripts following this change to prevent some problems on these skills. Previously sphere was internally setting SKF_RANGED on these skills, but now it's 100% on script-side.
 +
 
 +
21-02-2015, Coruja
 +
- Fixed: NPCs flagging their owner criminal when attack an innocent only if the NPC can speak or have NPC=brain_berserk set.
 +
- [sphere_item_profession_cook_barkeep_baker.scp]: Added missing t_cooking on all SKILLMAKE=Cooking lines.
 +
- [sphere_skillmenu.scp]: Added missing title on skillmenu sm_cook_ingredients, sm_cook_baking, sm_cook_barbecue
 +
 
 +
22-02-2015, Coruja
 +
- Fixed #2479: Combat damage bonus not being calculated correctly when COMBAT_OSIDAMAGEMOD is disabled.
 +
 
 +
23-02-2015, Coruja
 +
- Changed: Now only players can have damage bonus. NPCs will always use the damage value set on DAM property.
 +
- Fixed: Summoned NPCs incorrectly giving karma gain/loss on death.
 +
- Fixed: @GetHit not inheriting ARGN2 value from @Hit.
 +
- Fixed: Parrying skill not calling @UseQuick / @SkillUseQuick triggers.
 +
- Fixed #2478: Some weapons using wrong swing animation.
 +
- [sphere_msgs.scp]: Updated 'combat_parry' message.
 +
 
 +
25-02-2015, Ben
 +
- Fixed #2477: PacketDeathAnimation causing errors.
 +
- Fixed: New ARGN2 in @Hit not being set to the proper value.
 +
- Fixed #2484: GMs not always succeeding at skills.
 +
- Fixed: Unlock spell using spell level as difficulty.
 +
 
 +
02-03-2015, Coruja
 +
Added: Internal support for SELFREPAIR property os items.
 +
Fixed: Some internal messages using wrong message type (eg: items names incorrectly using 'talkmode_obj' instead 'talkmode_item', etc).
 +
[sphere_msgs.scp]: Updated 'messages_settings' header, added new message 'cont_items'.
 +
 
 +
05-03-2015, XuN
 +
Fixed Packet 0xBF.0x1C (Cast Spell) crashing server when spell does not exists (prevents crashing shard when casting packet sent directly from injection, etc and there's no spell).
 +
Updated sphereCrypt.ini with clients up to 7.0.43.
 +
Added 'stacking' behaviour to NightSight property to allow more than 1 item apply it's value and not removing the nightsight effect when unequipping (this will fix #2475),
 +
old behaviour (.nightsight (no value) to switch from 0 to 1 and viceversa) keeps working, be aware of not using both methods or problems will come.
 +
Fixed #02488: Pets inheriting Notoriety from Masters even if .ini's value say to not do.
 +
 
 +
05-03-2015, Coruja
 +
Changed: Internal improvements on how account characters are created.
 +
Changed: Some minor optimizations on char notoriety checks.
 +
Fixed: Players on the same party incorrectly using ally (green) notoriety if it choose "Party CANNOT loot me" on party menu.
 +
Fixed: Ally/enemy notoriety not working on townstones.
 +
Fixed: DAMAGE function making the char parry damages caused by itself.
 +
Fixed: Console error when using SPELLEFFECT function without a valid SRC.
 +
[sphere_newb.scp]: Added new templates for professions and race variants on skills.
 +
 
 +
06-03-2015, Coruja
 +
Fixed: DAMAGE function not causing any damage on items when the function is called without a valid damage flag set (ARGN2).
 +
Fixed: Roofs not working properly on AOS house customization menu.
 +
 
 +
06-03-2015, XuN
 +
Added IsTriggerActive() and SetTriggerActive() functions to CObjBase keeping track of the running trigger.
 +
Fixed using Remove in @UnEquip triggers crashing the server.
 +
Fixed #2481: Usage of ResendToolTip in the @*ToolTip triggers crashing server.
 +
Fixed CanUse receiving wrong value when value = 0 or no value.
 +
 
 +
07-03-2015, Coruja
 +
Fixed: Fame/Karma gain/loss not working on some specific cases.
 +
Fixed: SnoopCriminal setting on sphere.ini not working correctly. Now it works using a 0%~100% chance instead random values.
 +
Fixed: Parrying skill blocking magic damages.
 +
Fixed: MAGICF_OSIFORMULAS incorrectly using MANA instead INT value on spell damage calculation.
 +
Changed: Armor/Weapons with ATTR=attr_magic set will not show +5,+10,+15,... on names anymore. Now users are able to softcode custom names on magic items without problems.
 +
Changed: Some internal improvements on Snooping skill.
 +
[Sphere.ini]: Updated SnoopCriminal description/value.
 +
[sphere_msgs.scp]: Updated 'snooping_*' messages.
 +
 
 +
08-03-2015, Coruja
 +
Added: Items with INCREASEDAM / INCREASEDEFCHANCE / INCREASEHITCHANCE now will set these properties on char on equip/unequip.
 +
Fixed: NPCs (monsters) being flagged criminal when they attack an innocent player.
 +
Changed: Updated minimum client version required to use some new packets.
 +
 
 +
09-03-2015, Staff_Stanic
 +
Fixed: if the value of ExperienceKoefPVM or ExperienceKoefPVP is 0, not just the gain of experience will be disabled, but also the loss (if is allowed experience to go down).
 +
Suppose a case that ExperienceKoefPVP=0, players will not gain experience killing npcs, consequently players will not lose experience when killed by npcs.
 +
Fixed: not allow experience or level go to negative.
 +
 
 +
13-03-2015, Coruja
 +
Fixed: Infinite loop when someone with Reactive Armor hit itself.
 +
Fixed: Some items properties being saved as 0 value (when set it to 0) instead remove it at all.
 +
Added: FASTERCASTING, INCREASESPELLDAM, INCREASESWINGSPEED gain/loss when equip/unequip items.
 +
 
 +
14-03-2015, Coruja
 +
Fixed: 'GetDist::InvalidPoint' console error when function ISNEARTYPE try search something out of the map bounds.
 +
Fixed: Spells with SPELLFLAG_AREA + SPELLFLAG_DAMAGE flags causing damage to nearby items on ground.
 +
Added: LOWERREAGENTCOST / FASTERCASTING behavior when casting spells.
 +
Added: New Reactive Armor spell behavior if COMBAT_ELEMENTAL_ENGINE feature is enabled, now it will increase RESPHYSICAL and decrease RESFIRE/RESCOLD/RESPOISON/RESENERGY.
 +
Added: New Mana Drain / Mana Vampire spell effect if MAGICF_OSIFORMULAS feature is enabled.
 +
[sphere_spells]: Updated FLAGS/EFFECT/EFFECT_ID values on Mana Drain / Mana Vampire / Enchantment spells.
 +
[sphere_defs.scp]: Updated 'snd_spell_reactive_armor' value.
 +
[sphere_skills.scp]: Removed duplicated @Fail message on Magery skill.
 +
[sphere_item_magic_weapon.scp]: Updated all magic weapons properties to the correct values.
 +
 
 +
15-03-2015, Staff_Stanic
 +
Added: ARGN2=0 ARGN2=0 will disable automatic message when @ExpLevelChange.
 +
 
 +
17-03-2015, XuN
 +
Fixed #2493: Reverted MINCLIVER_NEWMOBINCOMING back to 0x700331.
 +
Fixed items with Res* and DMG* giving values again when save+restart, stat's additions should be placed on ItemEquip and not in LayerAdd.
 +
Fixed items being 'dropped' on player's characters when they are created instead of equipping (changed LayerAdd to ItemEquip in CChar::ContentAdd(), may cause some other issues?)
 +
 
 +
17-03-2015, Staff_Stanic
 +
[Sphere.ini] Added: ItemDamageCombat - chance of a item be damaged during a combat (PvP or PvM).
 +
[Sphere.ini] Added: ItemDamageCombatIncrease - the difference of total and current durability of a item will increase the probability of this same item be damaged? If yes, the probability of a item be damaged during a combat will be given by: (ItemDamageCombat + Item_Total_Durability - Item_Current_Durability)%
 +
 
 +
18-03-2015, XuN
 +
[add-on\mordaunts_housing_system]
 +
Added to [REGIONTYPE r_houses] the following code to prevent the dialog being used in other houses skipping permissions:
 +
ON=@Exit
 +
src.dialogclose d_house_menu
 +
src.events -e_house_player_events
 +
 
 +
19-03-2015, XuN
 +
Added CombatBonusStat and CombatBonusPercent properties for weapons and chars changing the default formula for damage ( having weapon equipped will override char settings, regardless of weapon having them or not)
 +
CombatBonusStat stores the stat id. STR = 0, INT = 1, DEX = 2
 +
CombatBonusPercent stores the percentaje of stat applied onto the bonus calculations, value can be negative but total bonus cannot be lower than 1.
 +
[sphere_msgs.scp]
 +
Added these lines:
 +
//msg_acc_passclear "Password has been cleared."
 +
//msg_acc_passclear_relog "Log out, then back in to set the new password.""
 +
//msg_acc_acceptpass "Password has been set."
 +
//msg_acc_invalidpass "Invalid password."
 +
//msg_acc_guesthit "The guest curse strikes you."
 +
//msg_region_reddef "You have %s the red region."
 +
//msg_region_redenter "entered"
 +
//msg_region_redleft "left"
 +
//itemuse_dye_reach1 "You can't reach it."
 +
//msg_gmpages_none "No GM pages queued. Use .page ?"
 +
//msg_gmpages_current "Current GM .PAGE Account=%s (%s) Reason='%s' Time=%lld."
 +
//npc_vendor_cantbuy "You cannot buy that."
 +
//npc_vendor_cantsell "You cannot sell that."
 +
//msg_targ_dynamic "Must select a dynamic object."
 +
//msg_targ_moved "Targetted item moved?"
 +
//msg_targ_gone "Targetted item is gone?"
 +
//spell_mark_cont "The rune must be on your person to mark."
 +
//npc_vendor_sellfast "You are selling too fast."
 +
//npc_vendor_sellmuch "You cannot sell so much."
 +
 
 +
Fixed StatCap not allowing stats to go to the statcap itself, but 1 point lesser (STATCAP=255 allowed only 254 stat points).
 +
Added few more msgs to sphere_msgs.scp:
 +
//npc_vendor_nomoney1 "Begging thy pardon, but thou canst not afford that."
 +
//target_command "Select object to set/command '%s'."
 +
 
 +
20-03-2015, Coruja
 +
Fixed: Console error / client crash when opening some specific gump types on HS clients >= 7.0.9.0.
 +
Fixed: Vendor menu not working on enhanced clients.
 +
Fixed: Added missing buff icon on Meditation skill.
 +
Fixed: Minimum client version required to use some new packets.
 +
Fixed: Reactive Armor spell changing RESPHYSICAL to an incorrect value when COMBAT_ELEMENTAL_ENGINE is enabled.
 +
Added: ADDBUFF function now can handle up to 5 args to support newest clilocs.
 +
Changed: Some improvements on buff packets (now it can handle more args correctly).
 +
Changed: Some improvements on exp/level gain/loss code.
 +
Changed: Softcoded ItemDamageCombat / ItemDamageCombatIncrease .ini settings, the chance to get items damaged on combat now can be fully scripted using LOCAL.ItemDamageChance (value range: 0~100) on triggers @Hit (weapon) / @GetHit (armor).
 +
[sphere_defs.scp] Updated 'buffcliloc_reactivearmor_2' value.
 +
 
 +
21-03-2015, XuN
 +
Now skill changes (on lumberjacking,tactics and anatomy when COMBATF_OSIDAMAGEMOD is enabled) and DAM value applied on weapons and the new CombatBonusStat and CombatBonusPercente are updating the status window to reflect the dam changes.
 +
Added to sphere_msgs.scp:
 +
//menu_unexpected "Unexpected menu info."
 +
 
 +
Changed variable times in world time handler to avoid some overflow-recycle messages.
 +
 
 +
22-03-2015, Coruja
 +
Changed: ADDBUFF function now can handle up to 7 args.
 +
Changed: Minor changes on COMBATBONUSSTAT / COMBATBONUSPERCENT formulas to better compatibility with damage calculation formulas.
 +
[sphere_dialog.scp] Huge optimization on dialog d_hair_dye
 +
 
 +
23-03-2015, XuN
 +
Changed everything related to spawns to new class CItemSpawn having everything from spawns more concentrated and prepared for future improvements.
 +
Increased BuffIcons limit up to 1126
 +
 
 +
[sphere_defs.scp]
 +
Added new buff definitions.
 +
To have it a bit more organizated keept buffs as bufficon_*, changed debuffs to debufficon_* and passives to passivebufficon_*
 +
 
 +
[sphere_backwards_compatibility.scp]
 +
Added definitions for old bufficon_* entries that have been changed to new debufficon_* or passivebufficon_*
 +
 
 +
23-03-2015, Coruja
 +
Fixed: HS clients not parsing correctly text lists like TAGLIST/CTAGLIST/VARLIST/etc.
 +
Fixed: Sphere crashing when COMBAT_ELEMENTAL_ENGINE is disabled and 2 chars with Reactive Armor attack each other causing an infinite loop when reflect the damage.
 +
Added: New Magic Reflection and Protection spell behavior if COMBAT_ELEMENTAL_ENGINE feature is enabled.
 +
Added: Support for RESDISP/RESLEVEL 8 on accounts, it's the default RESDISP for High Seas expansion (clients >= 7.0.9.0).
 +
 
 +
24-03-2015, XuN
 +
Fixed some code from PacketWheelBoatMove (Move ships with mouse) and enabled it via 'Pilot' variable in ships holding the value of character and one memory item (acting like a horse)
 +
Added few checks for Combat_NoDirChange
 +
 
 +
Scripts:
 +
Added t_pilot to sphere_defs.scp
 +
Updated \items\sphere_item_ship_parts_*.scp adding t_pilot. //It seems that britannian and orcish ships got their items changed and they look empty now, i did not change this atm.
 +
Added \Add-On\HighSeas\Ships\HS_Pilot.scp with behaviour for t_pilot and memory item for mouse sailing.
 +
Added //itemuse_crook_target "Where do you want them to go ?" to sphere_msgs.scp
 +
 
 +
26-03-2015, Coruja
 +
Fixed: IDLE clients on login / character selection screen being disconnect on the server-side without display any feedback to client, making it freeze on a infinite 'Connecting...' screen. Now IDLE clients will get an 'timeout' message and will be able to press ok and try again without get stuck.
 +
Fixed: PacketDeathAnimation feature not working correctly on some specific clients.
 +
Fixed: Dispel, Dispel Field and Mass Dispell spells incorrectly removing nearby items with typedef t_fire / t_campfire set.
 +
Fixed: Flamestrike spell missing some animation frames.
 +
Added: Missing Protection spell behavior (spell disturb chance) if COMBAT_ELEMENTAL_ENGINE is enabled.
 +
Added: New effect calculation on buff (Agility, Cunning, Strength, Bless) and debuff (Clumsy, Feeblemind, Weaken, Curse) spells if MAGICF_OSIFORMULAS is enabled.
 +
 
 +
 
 +
26-03-2015, XuN
 +
Added 5 more args to .effect function to give support to packet 0c7, new values are: EffectID,ExplodeID,SoundID,UID,Type. Seems to work only on EC.
 +
Added Bonded property for npcs with very basic functionality, setting it to 1 doesn't let NPCs die.
 +
Removed some debug msgs.
 +
Changed some more m_Act_Targ to m_Fight_Targ.
 +
Corpses retrieve killer's uid now from Attacker_GetLast() instead of on ACT.
 +
 
 +
27-03-2015, XuN
 +
Changed DClick of t_ship_plank using SetDispID() instead of SetID() so they are threated as ship parts and 'fliped' with the rest of the ship.
 +
Changed the 'Undefined symbol '' ' output format, now also prints what was the problem exactly in some situations. IE: if (<local.hello==1) // missing '>' will print 21:15:ERROR:(s_add.scp,21)Undefined symbol '' ['<local.hello==)']
 +
[sphere_spells.scp]: Added missing '>' to local.damagetype in s_explosion.
 +
Added another block of code for @SeeCrime, now it fires also when a 3rd part sees a crime (I'm seeing Player X attacking Player Y while Y is 'good'), to decide if mark as 'bad guy' the aggresor for this character.
 +
argn1 = attacker
 +
argn2 = victim
 +
argn3 = 1=criminal / 0='turn eyes away'
 +
Fighting Memory will also remove flag MEMORY_AGGREIVED when expiring (NEED feedback on this) to avoid blue-innocent player becoming criminal when the fight memory of the attacker expires (if he attacked back).
 +
Being attacked is not giving MEMORY_AGGREIVED to memory item, I might be attacked but it may not have to do anything with me being aggreived ... they may have been attacked by me first (Need feedback on this too).
 +
 
 +
28-03-2015, XuN
 +
[sphere_defs.scp]:
 +
Added Expansion definitions.
 +
Added t_rope
 +
[items/sphere_item_unsorted]:
 +
Added t_rope to i_rope
 +
[multis_ships.scp]:
 +
Changed Height from all Tokuno ships from 7 to 17.
 +
Added Expansion=EXPANSION_HS to all HS ships.
 +
[add-on/HighSeas/Ships/HS_pilot.scp]:
 +
Added mount check to t_pilot to prevent the memory item being bounced to pack.
 +
 
 +
Added t_rope working like t_ship_plank but making no changes on ID, by default it doesn't have any 'I'm in ship' checks when steping them for two reasons, ropes should be in ships and this way they can be used in houses to go out?
 +
Added <TEXTF > function returning formatted text, example:
 +
[defname exampledef]
 +
test=Hello %s, I'll teach you for %d coins.
 +
message=<textf "<def.test>",<src.name>,15> // Quotes are A MUST.
 +
 
 +
29-03-2015, XuN
 +
Fixed humans not regenerating hitpoints
 +
Changed Stats Regens to automatically update the timer of next tick instead of waiting for old value when changing it via RegenHits/Stam/Mana.
 +
Fixed CanUse not inheriting from itemdefs to items
 +
 
 +
31-03-2015, Coruja
 +
Fixed: Arch Protection spell not working correctly with COMBAT_ELEMENTAL_ENGINE enabled.
 +
Fixed: Resurrection spell not displaying correct EFFECT_ID / SOUND.
 +
Added: MAGICF_OSIFORMULAS behavior on more spells.
 +
Changed: Small improvements on drunkness effect (ale, wine, liquor).
 +
[sphere.ini]: Moved EF_PetSlots setting (experimental flag) to OF_PetSlots (optional flag).
 +
[sphere_admin.scp]: Added missing 'admin_resdisp_8' def.
 +
[sphere_msgs.scp]:
 +
-Changed IMSG_DEF_UNICODE to 1 (to match internal client behavior, which always show item/char names using unicode by default).
 +
-Removed useless 'spell_alcohol_sober' msg.
 +
 
 +
01-04-2015, matex
 +
Fixed: SYSCMD never could return an exit value and was hanging sometimes.
 +
 
 +
01-04-2015, XuN
 +
Fixed NPCs not moving to current fight target.
 +
Added scripts/items/sphere_item_provisions_logs.scp with different log types.
 +
Changed scripts/items/sphere_item_provisions.scp: Moved i_log(s) / i_board(s) to scripts/items/sphere_item_provisions_logs.scp
 +
 
 +
01-04-2015, Coruja
 +
Fixed: Buff/Debuff spells not working correctly when MAGICF_OSIFORMULAS is disabled.
 +
[sphere_item_provisions_logs.scp]: Fixed some boards using wrong itemdef.
 +
 
 +
02-04-2015, XuN
 +
Added Repair function (Called on Repareid item, must be called with a character as SRC, who is going to perform the repair action).
 +
Added Smelt function ( called on Smelted item, must be called with a character as SRC. ARGS=forge or another ore pile to smelt, if no ARGS is given it will search automatically for nearest forge if any ).
 +
Changed @StatGain trigger is not being fired anymore with any stat changes from the @Create trigger.
 +
Fixed local.CreateObject1 & 2 in @Success trigger for field spells causing the new items to do not use the same placement checks as default items.
 +
Updated behaviour of Bonded Pets ONLY when they are DEAD:
 +
-They act as normal for everything, excepting they cannot die.
 +
-Follow any master's command, excepting fighting ones.
 +
-Doesn't regenerate stats.
 +
-NPCs won't die if they have bonded=1, if they are dead already and bonded is set to 0 they will die in next ticks.
 +
-Stam required to step over them is 0.
 +
-Food doesn't decay.
 +
Fixed: Pets following when recalling/teleporting/gate travelling should be more consistent.
 +
Changed: Mounted items calls now CChar::OnTick() on the mounted character instead of doing the tick on it's own, so they regenerate stats and everything like any other character in a more realistic way.
 +
Fixed STATSUM and STAT_STR/DEX/INT from SkillClasses not being readed correctly (or at all) in some cases, this should permanently stop the need of custom statcaps. This is how StatGain works today (** = what was fixed):
 +
-Only INT can be gained when Polymorphed.
 +
-Stats with any StatLock different than UP can't increase.
 +
-StatCap <= StatSum stops the execution. **
 +
-STAT_* > STAT_VALUE from SkillClass = ignore this stat **
 +
-STAT_* > STAT_VALUE for this Stat in the performed Skill = ignore this stat.
 +
-Then the checks for %chances are made.
 +
[sphere_msgs.scp]:
 +
Added //msg_bonded_dead_cantmount "The creature is dead and cannot be mounted."
 +
 
 +
03-04-2015, Coruja
 +
Fixed: EXP/LEVEL going < 0 on chars when the property value is changed by scripts using @ExpChange / @ExpLevelChange triggers.
 +
Fixed: CUSTOMIZE function not hiding correctly all dynamic items on multi when entering on customization mode.
 +
 
 +
06-04-2015, Coruja
 +
Fixed: NPC Guards (brain_guard) incorrectly teaching skills to players.
 +
Fixed: Protection spell not returning the Magic Resistance skill to correct value if this skill was set to lock/down on the skill menu (when COMBAT_ELEMENTAL_ENGINE is enabled).
 +
Fixed: Mana Drain, Wall of Stone and Energy Vortex spells using wrong EFFECT / DURATION if MAGICF_OSIFORMULAS is enabled.
 +
 
 +
08-04-2015, XuN
 +
Changes in @Effect/@SpellEffect triggers for spells:
 +
Local.CreateObject1 overrides the effect id.
 +
Added Local.EffectColor, local.EffectRender and local.EffectExplode allowing to override the values of the sent effect.
 +
 
 +
Added Local.EffectColor to @Success/@SpellSuccess to change the color of field spells.
 +
 
 +
Reordered how effects are called (now they are all together inside SpellEffect()) to have better access to them.
 +
Removed some Effect() calls to prevent two effects being sent in some spells.
 +
Removed Effect_Bolt(), its now handled by SPELLFLAG_FX_BOLT inside SpellEffect().
 +
*Any of this changes are affecting lightning spells, since client ignores everything related to lightnings (.effect 1,1).
 +
 
 +
Changed @SpellCast / @Start trigger for characters / spells:
 +
- Added local.WOP=0/1 to disable/enable WOP for this character / spell.
 +
- Added local.WOPColor (default = SERV.WOPColor) to change Word of Power's color for this character / spell .
 +
- Added local.WOPFont (default = SERV.WOPFont) to change WOP's font for this character / spell .
 +
 
 +
11-04-2015, Coruja
 +
Fixed: Some spell formulas incorrectly using the skill value from target instead caster.
 +
 
 +
11-04-2015, XuN
 +
Added char* definitions for both ContextMenuRequest and ContextMenuSelect (@charContextMenuSelect/Request).
 +
Fixed NewGold not calling @Create if any new pile was created.
 +
Fixed NewGold not taking care of MaxAmount.
 +
 
 +
15-04-2015, XuN
 +
Added to sphere_msgs.scp: (emotes for poison seems to have different values for poisoned character and the other ones)
 +
for poisoned characters:
 +
//spell_osipoison_lesser "feel a bit nauseous"
 +
//spell_osipoison_standard "feel disorientated and nauseous!"
 +
//spell_osipoison_greater "begin to feel pain throughout your body!"
 +
//spell_osipoison_deadly "feel extremely weak and are in severe pain!"
 +
//spell_osipoison_lethal "are in extreme pain, and require immediate aid!"
 +
for viewers:
 +
//spell_osipoison_lesser1 "looks ill."
 +
//spell_osipoison_standard1 "looks extremely ill."
 +
//spell_osipoison_greater1 "stumbles around in confusion and pain."
 +
//spell_osipoison_deadly1 "is wracked with extreme pain."
 +
//spell_osipoison_lethal1 "begins to spasm uncontrollably."
 +
 
 +
CHANGED Poison function:
 +
By default it accepts 1 parameter (skill level)
 +
It can now have a second parameter for duration ticks (If not given, ticks are calculated as always = SkillLevel /50 ).
 +
 
 +
Added new behaviour for poison spell under MAGIFC_OSIFORMULAS:
 +
Poison Level = (Magery + Poisoning) /2: (Stored in MoreY)
 +
Lesser (0): Level <= 65.0
 +
Standard (1): Level <= 85.0
 +
Greater (2): Level < 100.0
 +
Deadly (3): Level > 100.0
 +
Poison can be Lethal also with a 10% chances if the magery and poisoning of the poisoner are greather than 100.0 and distance < 3 tiles.
 +
Tick Period:
 +
Lesser = 2 seconds.
 +
Standard = 3 seconds.
 +
Greater = 4 seconds
 +
Deadly/Lethal = 5 seconds.
 +
Duration:(More2) (if poison spell is called from POISON function, this values will be applied only if argn2 == 0, if set to another value then the given value will be used)
 +
Lesser = 30 seconds.
 +
Standard = 30 seconds.
 +
Greather = 60 seconds.
 +
Deadly = 60 seconds.
 +
Lethal = 80 seconds.
 +
Damage:(Currently values for poisons > Lesser are calculated on SpellEffect (MoreZ), so the same damage is dealed in each tick, AFAIK this is how it works)
 +
Lesser = 4-7% current hp.
 +
Standard = 5-10% max hp.
 +
Greater = 7-15% max hp.
 +
Deadly = 15-30% max hp.
 +
Lethal = 16-33% max hp
 +
 
 +
Added new ini flag COMBAT_NOPOISONHIT :Disables old (55i like) poisoning style: Poisoning > 30.0 && (RAND(100.0)> Poisoning) for monsters OR weapon.morez && (RAND(100) < weapon.morez ) for poisoned weapons.
 +
INFORMATION: These have been unchanged, i'm writing here however for information of how is the poison's strenght calculated.
 +
Poison applied using weapon: src.poison <eval <weapon.morez>*10>,<eval <weapon.morez>/5> (so morez*10 = poison damage and morez/5 = ticks)
 +
Poison applied by monsters: src.poison <eval <r<Poisoning>>>, <r<eval <Poisoning>/50>> (so strength is a rand of the poisoning skill and ticks are poisoning skill / 50
 +
Poisoned food has not been altered either, but here is the formula too: src.poison <eval <morez>*10>,1+<eval <morez>/50> (so the food's morez*10 is the strenght and ticks = morez /50 too).
 +
 
 +
15-04-2015, Coruja
 +
Fixed: Some skills only rising until 30.0% on specific situations.
 +
Changed: Some small changes on Magic Reflection spell.
 +
 
 +
27-04-2015, Coruja
 +
Fixed: Guilds not display notoriety correctly on players with recruit access level.
 +
Fixed: Magic Reflection effect only working on spells with SPELLFLAG_RESIST set. Now only spells with direct target (SPELLFLAG_TARG_CHAR) can be reflected.
 +
Fixed: Spells with SPELLFLAG_HARM flag not flagging the caster criminal when it got resisted/reflected by the target.
 +
Changed: Some improvements on Magic Resistance (skill) effect.
 +
[Sphere.ini]: Added new ColorNotoInvulGameMaster setting to tweak the name notoriety color on invul Game Master chars (purple by default).
 +
[sphere_spells.scp]:
 +
-Added missing DURATION on Mana Drain spell.
 +
-Updated SPELLFLAG_RESIST / SPELLFLAG_TARG_NOSELF on some spells.
 +
 
 +
28-04-2015, Coruja
 +
Fixed: Mounts not creating the corpse when it die while ridden.
 +
Fixed: Corpses not setting MORE2 (last attacker UID) correctly when created.
 +
Fixed: NPCs only showing [npc] tag on name when inside an region with guards.
 +
Changed: Removed max limit of CURFOLLOWER=255 on OF_PetSlots feature.
 +
[sphere_msgs.scp]: Added new 'charinfo_bonded' message to show [bonded] tag on chars with BONDED=1 set (it will override the [tame] tag by default).
 +
 
 +
02-05-2015, XuN
 +
REMOVED tag.override.noto completely now, @NotoSend was made as an enhanced version of this tag.
 +
Added: argn2 in @NotoSend trigger forcing the character's packet to use this value as character's color but not modifying the real notoriety.
 +
Changed: @NotoSend argn1 value now only can have values between 1 (NOTO_GOOD) and 7 (NOTO_INVUL) if other value is given it will be ignored and default checks will be made, color will still be used (if value >= 0)
 +
Updated http://wiki.sphere.torfo.org/index.php/@NotoSend information.
 +
 
 +
Fixed some cases in which victims of a crime (attacked characters) became criminals. Also, but not always related to the same scenario, Notoriety not checking flags for MEMORY_HARMEDBY, which was causing the 'criminal issue' and also a bunch of unnecessary checks.
 +
Fixed Guards being able to be flagged as criminals and doing the whole checks: Guards always acts for the law and they will never be criminal (this has been this way always but checks were performed anyway).
 +
All of this fixed too @SeeCrime from combat not always working.
 +
CHANGED: Old @SeeCrime is now @SeeSnoop http://wiki.sphere.torfo.org/index.php/@SeeSnoop
 +
ADDED: New @SeeCrime trigger for every crime unrelated to Snooping: http://wiki.sphere.torfo.org/index.php/@SeeCrime
 +
Updated: http://wiki.sphere.torfo.org/index.php/Override_TAGs
 +
Fixed some compiling warnings.
 +
 
 +
03-05-2015, XuN
 +
When a thread is hang it will now release the stack trace to be able to follow what caused the freeze.
 +
Some fixes on experience and level system blocking changes on some circunstances and an infinite loop freezing server.
 +
Updated sphere_item_typedef_equipitem.scp commenting from @Equip and @UnEquip the variables we are already setting from the source.
 +
 
 +
05-05-2015, XuN
 +
Removed 'glow effect' from parrying in the source and added it under @UseQuick in parrying skill in sphere_skills.scp
 +
Fixed @Eat not setting values correctly in some cases.
 +
Fixed argn2 on @NotoSend not working as intended (notice that PetsInheritNotoriety may affect and block this).
 +
 
 +
07-05-2015, XuN
 +
Updated sphere_serv_triggers.scp with some information/comments and values for newly created characters.
 +
Added Notoriety values changed via @NotoSend to be sent in character's names:
 +
-argn2 has priority over anything else, if it's value is 0, lesser or not present at all then argn1 will be used, if there's no argn1 either then default checks will be made.
 +
-argn2 values from 1 to 7 will read color hues from ini ones (NOTO_GOOD,NOTO_CRIMINAL...NOTO_INVUL,etc).
 +
Poison spell and habilities based on it are now affected by SPELLFLAG_NoUnparalyze (if set).
 +
Fixed some errors appearing when a character dies while poisoned conflicting with PacketDeathAnimation.
 +
Poison damage has now DAM_MAGIC flag set.
 +
Uncommented EFFECT value for Poison spell in sphere_spells.scp
 +
 
 +
08-05-2015, Coruja
 +
Added: New 'Add/Remove Party Member' missing popup button when click on another player to invite/remove him from an party.
 +
Changed: Some updates/optimizations on party engine.
 +
[sphere_msgs.scp]: Updated 'party_*' messages.
 +
[sphere_defs.scp]: Added missing 'attr_opened' value on [DEFNAME attr_flags] list.
 +
 
 +
09-05-2015, XuN
 +
Fixed: Ignored 'attackers' will not be chosen as targets anymore, even if they are the only enemies on the list.
 +
Added: Field spells will fire @Create for their itemdefs/events, also @ItemCreate for characters with a 'tag.BadLoc' which will be true if they are going to be placed above any character.
 +
If tag keeps at 1 after the @Create trigger the field will be removed like it's been doing recently.
 +
Since fields will not be placed until they are allowed to (to avoid 'ghost' walls dissapearing), items will have a 'tag.pos' with the placement position.
 +
 
 +
09-05-2015, Coruja
 +
Added: New updated Swing Speed combat formula. It's almost the same as the previous formula (pre-AOS) but more accurate and with support to Swing Speed Increase property (INCREASESWINGSPEED).
 +
[sphere.ini]: Updated 'SpeedScaleFactor' setting to the recommended value for the new Swing Speed formula [15000 -> 80000]. Although the old (or any other value) can be used, it's HIGHLY recommended update it to get better results.
 +
[npcs/sphere_monsters.scp]: Added MAXFOLLOWER, RESPHYSICALMAX, RESFIREMAX, RESCOLDMAX, RESPOISONMAX, RESENERGYMAX properties on playable chars (c_man, c_woman, c_elf_male, c_elf_female, c_gargoyle_male, c_gargoyle_female).
 +
[sphere_serv_triggers.scp]: Removed RES*MAX from f_onchar_create (it was moved directly to chardefs).
 +
 
 +
10-05-2015, Ben
 +
Added: ABS() intrinsic function wich returns the absolute of any number ( <eval abs(5)> = 5, <eval abs(-5)> = 5 )
 +
 
 +
13-05-2015, XuN
 +
  Receiving 0 damage will not generate blood anymore.
 +
  Improved the code for 'Attacker'.
 +
 
 +
  Updated/improved/cleaned Spells:
 +
    - Added internal definitions for all spells
 +
    - Added support for spells with id 1000 to 1055 for custom spells and other old spells, reflected changes in sphere_spells.scp*
 +
    - t_spellbook_extra works with values 1000+
 +
    - Changed NPCs formulas to make them able to cast spells from other books than MAGERY one, selected from skills with SKF_MAGIC**:
 +
    - Fixed the formula to select the maximum spell NPCs can cast because any npc with magery > 10.0 could cast all spells, now maxspell is calculated like this (using magery as example):
 +
      maxspell = MULDIV(Skill_GetValue(magery),Spells_GetMax(magery),Skill_GetMax(magery)). To get a real progression for skill's capabilities this adjusts automatically to each skill's max spells, so 78.2 necromancy will let npcs cast up to spell 12 and 71.4 magery will let npc cast up to spell 37 for example.
 +
      Skill_GetValue() returns the current value for this skill,
 +
      Spells_GetMax() returns the total amount of spells for this skill (64 for magery, 17 for necromancy...),
 +
      SkillGetMax() returns the maximum amount of this skill (Based on skillclass for players and 100.0 (or tag.override.skillcap_&skill if present) for NPCs)
 +
    - NOTE: This has not been changed, and it's ONLY for magery as it was before (since other skills was not being checked): spells are selected in a FOR loop so, for magery and to avoid big loops each time a spell must be selected, first spell being checked is <r<maxspell>>. So if maxspell = 50 it will choose spells between <r50> and 50.
 +
 
 +
  [sphere_defs.scp]:
 +
    - added spellflag_heal            040000000  // spell used to heal hitpoints or resurrect
 +
    - added LAYER_* definitions for all spells that need a layer item to handle their behaviour (behaviours not added).
 +
 
 +
  * [sphere_spells.scp]:
 +
    - Changed ID for spell number 64 to 1000 and so on with the next ones until spell 99.
 +
    - Added spellflag_heal to s_heal,s_greater_heal,s_close_wounds,s_noble_sacrifice,s_gift_of_life,
 +
    - Added flags to Spellweaving spells.
 +
  ** [sphere_skills]: Added SKF_MAGIC to MAGERY,NECROMANCY,SPELLWEAVING,MYSTICISM and CHIVALRY
 +
    - Added NPC_AI setting:
 +
      // NPC_AI_STRICTCAST    01000 NPC's will only select spells they really have in their spellbook. Old behaviour let them to select any spell with SPELLFLAG_HARM if they have magery enough to cast it regardless of spellbook.
 +
      FIXED i_spellbook_spellweaving was MOREZ=0600, it should be 600
 +
      FIXED argn2 for @SpellSelect couldn't be overriden for spells casted from T_WAND or T_SCROLL. ARGN2 is also set to the proper mana value (0 for T_WAND and RequiredMana /2 for I_SCROLL) for reading purposes.
 +
      Updated comment for t_spellbook_extra      186  // some spellbook for script purposes (MOREZ=basic offset, should 1000 or more) in sphere_defs.scp
 +
      Added morex for t_spellbook_extra to set the max amount of spells for this book, so morez = first spell and morex = last spell , for example morey=1000, morez=1016 will hold spells from 1000 to 1016
 +
 
 +
16-05-2015, Ben
 +
- Fixed #2510: deathshroud not removing on resurrection in all cases.
 +
 
 +
17-05-2015, XuN
 +
Updated @NPCActFight:
 +
Added - local.skill // Setting this to any skill will make the NPC begin this skill
 +
Added - local.spell // For magic skills this will be the casted spell
 +
Added - ACT // This will refer to the target, must be set since the trigger is using SRC for the first enemy
 +
Added - return 2 // The code above will only work when return = 2
 +
Removed NPC_AI_STRICTCAST and all the invented casts from npcs.This can be reverted applying a trigger for npcs like this:
 +
ON=@NPCActFight
 +
if (<magery> > 0)
 +
local.spell=<r1,64>
 +
while (<local.spell> < 64)
 +
if (<CanCast <local.spell>>)
 +
local.skill=magery
 +
return 2
 +
else
 +
local.spell ++
 +
endif
 +
endwhile
 +
endif //same for the other magic skills.
 +
 
 +
Added vector list storing all spells that npcs can cast and removed tons of lines of code to increase the performance of CPU when NPCs cast some spells.
 +
WARNING:
 +
Added LAYER variable to spells, ALL SPHERE_SPELLS.SCP MUST BE UPDATED or spells with some effect, like polymorphs, summons, stat spells, and all that have a determinated duration will stop working
 +
[sphere_spells.scp] //Seriously, this script must be updated.
 +
-Added LAYER=layer_spell_* to all magery, necromancy, spellweaving,chivalry and mysticism spells, ie LAYER=layer_spell_stats for s_bless,s_cunning, etc
 +
Changed default formulas to make spells work with LAYER instead of hardcoded checks, this will help making custom spells by giving the customization enough to handle every possible effect.
 +
 
 +
Changed: MemoryEquip won't be called anymore for the memories of spell's effects.
 +
Added character trigger @EffectAdd: This will be called when any type of effect memory is being added, like stat changes for s_bless, s_cunning... s_weaken ...
 +
Argo = memory item
 +
argn1 = spellid
 +
returns:
 +
return 0: Let default checks to happen.
 +
return 1: Blocks any action and stops everything, also deletes the memory (Blocking any changes, this will cause also the effect to do not have duration)
 +
return 2: Let the memory exist but block default checks, perfect to override default effects and do some custom stuff.
 +
To simulate something like '@EffectEnd' just apply an event with @Timer to the memory since the 'default changes' are happening after @UnEquip and, at this point, the item must be removed in any case... so preventing this must be done before (@Timer fits perfectly).
 +
 
 +
19-05-2015, Coruja
 +
Added: New animation on dragon breath attack.
 +
Changed: Reduced SAY/speech max text length (1024 -> 256 chars). Client is limited to 128 chars on default speech and 256 chars on journal, so this can avoid some exploits from 3rd party assists/tools without affect the gameplay.
 +
Changed: Major optimizations on walk, skills and general ticks code. It's working fine, but needs some heavy testing until we mark it as 100% stable.
 +
-IMPORTANT: Be sure to update your sphere_skills.scp with proper FLAGS on all fight/ranged/magic/craft/gather skills, otherwise these skills will not work correctly.
 +
 
 +
20-05-2015, Coruja
 +
Fixed: Parrying skill check always returning 'true' (success) on chars with GM=1 set, making the char never receive any damage on combat even without invul flag set.
 +
Fixed: Mounts disappearing on worldsave on some specific situations.
 +
Changed: Improved Teleport/Dispel spell smoke animation.
 +
Changed: Another huge optimization on skills code.
 +
[Sphere.ini]: Updated TeleportEffectNPC / TeleportEffectPlayers settings with correct values.
 +
 
 +
22-05-2015, Coruja
 +
Fixed: NPCs not following his owner/target correctly.
 +
Changed: Some improvements on pet follower slots and pet bonding engine.
 +
[sphere_defs.scp]: Added missing 't_healing_stone' on [TYPEDEFS] section.
 +
 
 +
22-05-2015, XuN
 +
Major updates on code to fix compiler LVL4 warnings.
 +
Changed sector's size for map 4 from 8 to 16  (so we only have 5k sectors on this map instead of 31k), improving heavily performance when this map is enabled.
 +
NOTE: Disabling unused maps / using the less possible will increase the performance exponentially since each tick a loop for all maps and all it's sectors is fire, take this in count.
 +
 
 +
28-05-2015, Coruja
 +
- Fixed: Spell buff/debuff icons showing wrong info on client login.
 +
- [maps/sphere_map3.scp]: Added missing AREADEF a_isle_of_divide
 +
- [maps/sphere_map4.scp]: Updated header comments
 +
- [sphere_defs.scp]: Updated some cliloc values on 'buff_clilocs'
 +
- [sphere_spells.scp]: Fixed Dispel Field spell flags [spellflag_targ_obj -> spellflag_targ_item]
 +
 
 +
29-05-2015, Coruja
 +
- Some minor design updates on SphereSvr.exe file/console.
 +
 
 +
30-05-2015, XuN
 +
- Added: TAG.SeenBy_uid for items with attr_invis allow these items to be seen by characters with the given uid, ie: tag.SeenBy_015af=1 will allow player with uid 015af to see this item, usefull for traps/quest items/etc.
 +
 
 +
- Changed return 2 from EffectAdd to return 0 to avoid some problems.
 +
  Added only if FEATURE_AOS_B is enabled:
 +
  - Behaviour for HitLeechMana on weapons: Returned mana = 0 - X. Where X is the HitLeechMana% of (Damage dealt * 0.4). More info in: http://www.uoguide.com/Hit_Mana_Leech
 +
  - Behaviour for HitLeechLife on weapons: On every successful hit you will leech 0 to X percent health of (Damage done * 0.3) where X is the Hit Life Leech value on your weapon. (This means the same as HitLeechMana but using *0.3 instead of *0.4)
 +
  - Behaviour for HitManaDrain on weapons: %of draining a 20% of the damage dealt from the enemy's mana. so HitManaDrain = 50 means a 50% of draining mana to the target. Mana drained = 20% of the damage done.
 +
  - Behaviour for EnhancePotions on characters: Effect of the potion is increased by the % set on this property.
 +
 
 +
  Added default behaviours for the following necromancy spells (some of them was already working but not with their full effects):
 +
  - s_curse_weapon = Adds +x HitLeechLife to any equipped weapon, while the spell is in effect unequiped weapons will get this bonus removed and equipped weapons will gain the bonus. X is stored at memory's morey (50 by default).
 +
  - s_blood_oath = When a target of s_blood_oath damages the caster... the damage amount is increased, the target also receives the x% of damage than the caster. X by default should be 100, but its lowered to this formula: ((Resisting Spells Skill x 10) / 20) + 10. X is stored at memory's morey.
 +
  - s_corpse_skin = Turns the victim's skin dry and corpse like. This temporarily decreases the target's fire and poison resists (Fire and Poison resist decreased by 15 (more1h) each), while increasing resistance to cold and physical damage (increasing both by 10 (more1L) each).
 +
  - s_evil_omen = http://www.uoguide.com/Evil_Omen
 +
  - s_pain_spike = http://www.uoguide.com/Pain_Spike
 +
  - s_wraith_form = Gets + 15 Resphysical (more1h) and -5(more1l) ResEnergy/ResFire while the effect is active, it also grants the same effect (but not working with it's property) as HitLeechMana returning a % of the target's mana calculated from = Spirit Speak / 50 (24% at 120.0 Spirit Speak), also grants the ability to walk through creatures and players in Felucca
 +
  - s_mind_rot = Decreases the LowerManaCost property on the character.
 +
  - s_horrific_beast = Provides a bonus of unarmed damage (stored in more1l & more1h on the spell's memory, default = 5,9), Gains a +20 RegenHitsVal (more2) and +25 Melee damage increase (morey). It's also unable to cast other spells than polymorphing ones (@SpellCast in c_horrific_beast).
 +
  - s_poison_strike = scripted.
 +
  - s_wither = scripted.
 +
  - s_strangle = Info here: http://www.uoguide.com/Strangle
 +
  - s_lich_form = +13 RegenValMana (more1l), -5 RegenValHits (more1h), -10 ResFire and +10 ResPoison/ResCold ( all three stored in more2).
 +
  - s_vampiric_embrace = +20% HitLeechLife (more1l), +15 RegenStamVal (more1h), +3 RegenManaVal (more2), -25 ResFire (morey).
 +
 
 +
  NOTES:
 +
    - Almost all graphical effects for these spells are still not applied yet. Same for RUNE_ITEMs.
 +
    - Polymorphs from Necromancy have an increased damage received from Undead Slayer Weapons, since there's no hardcoded support for Slayer Weapons (yet?) I didn't add it. Feel free to script it.
 +
    - These Spells may not be working at 100% yet, just sent 'initial' code. sphere_spells.scp MUST be updated.
 +
    - Some behaviours related to spells and props are going to change in the following days.
 +
 
 +
[sphere_defs.scp]
 +
  - Added LAYER_Spell_BLood_Oath and modified the following values to match it's order.
 +
[sphere_spells.scp]
 +
  - Changed LAYER for s_strangle to LAYER_Spell_Strangle
 +
  - Behaviour for s_wither
 +
  - Behaviour for s_poison_strike
 +
  - Flags, RUNE_ITEM and more values for spells 100+.
 +
  - Added code under @Select for all spellflag_polymorph spells to unpolymorph who is already polymorphed (same as s_polymorph).
 +
[sphere_monsters.scp]
 +
  - Added: c_horrific_beast -> ON=@SpellCast trigger avoiding any casts for this creature if a player is morphed on it.
 +
[sphere_item_deco_signs.scp] (Darksun)
 +
  - Added missing definitions for all signs.
 +
[sphere_item_magic_necromancer_aos.scp]
 +
  - Added fake runes for all necromancy spells, they don't have real entries in tiledata but i'm using custom itemdefs with their scrolls as baseid.
  
06-07-2008, Nazghul
+
- Taking in count lot of recent changes realized that some properties must properly shown or hidden according to some ini flags, so ResFire,ResPhysical, etc will only be shown on item's ToolTips if COMBAT_ELEMENTAL_ENGINE is enabled
- Added: SPELLFLAG_NOPRECAST what disbles PRECASTING on a per-spell-base.
 
  Only valid if PRECAST is activated by Sphere.ini
 
  
08-07-2008, MrSugarCube
+
31-05-2015, Coruja
- Fixed #1446: GM/MT_FLY enabled characters walking through stairs when EF_WalkCheck is not
+
- Changed: Some small code improvements on HITLEECH[LIFE/MANA/STAM] properties.
  enabled. [Note: Due to potentially negative side-effects of this fix a temporary EF flag
+
- Changed: Messsage 'Expansion maps supported' on server startup now will show the real map name (Felucca, Ilshenar, Malas, ...) instead UO expansion name (T2A, LBR, AOS, ...)
  (EF_NoWalkingThroughStairsFix) has been added to sphere.ini which disables the fix just in
+
- [Sphere.ini]: Changed all MAPx settings to use -1 as sector size. This will make sphere use the default sector size value (64x64) instead .ini value (32x32).
  case something bad happens (if no issues are reported that are caused by this fix then you
 
  can expect it to disappear very soon)]
 
  
10-07-2008, MrSugarCube
+
01-06-2015, Coruja
- Fixed ##3: Unstackable items becoming stacked after being bought off a player-owned vendor,
+
- Fixed: ABS() intrinsic function not working correctly.
  when the buyer cannot carry the items.
+
- Changed: Some small improvements on AddContextMenuEntry function.
- Fixed ##2: NPC_AI_FOOD causing NPCs to get stuck whilst they attempt to eat grass from a
 
  tile where grass has already been eaten from recently.
 
  
13-07-2008, Beyonder
+
02-06-2015, Coruja
- Fixed ##1: Sphere crashes with Experimental Flag UseNetworkMulti.
+
- Fixed: Console error when players die.
- Added: LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE to @SpellSuccess and @Success
+
- Fixed: PacketDeathAnimation .ini setting not working correctly.
  triggers.
+
- Changed: Some improvements on 'death' / 'make corpse' internal code. Now any NPC will have corpse when it die (unless it was an summoned NPC). So don't get confused if you see corpses of some NPCs which previously doesn't have corpse (elementals, etc), it's the default OSI behavior. Also TAG.DEATHFLAGS can be used to force removal/creation of the corpse on @Death
  LOCAL.FIELDWIDTH sets the width of the field from character point of view.
 
  LOCAL.FIELDGAUGE sets the thickness of the field.
 
- Fixed #1449: Damage spells backfire when selecting summon while casting.
 
  
15-07-2008, Beyonder
+
03-06-2015, Coruja
- Added: Extra local arguments to @SkillStart and @Start (skill section) triggers for crafting
+
Changed: Paralyze spell formula (AOS -> pre-AOS) when MAGICF_OSIFORMULAS is enabled.
  skills:
+
Added: Functionality for BONUS[STR/DEX/INT], BONUS[HITS/STAM/MANA] and LOWERMANACOST properties.
  LOCAL.CRAFTITEMDEF - the UID of defname of the item we are currently crafting. Readable/Writable.
 
  Accepts ONLY UIDs of ITEMDEFs, for example:
 
if (<LOCAL.CRAFTITEMDEF> == <DEF.i_katana>)
 
LOCAL.CRAFTITEMDEF = <DEF.i_sword_long>
 
endif
 
  LOCAL.CRAFTSTROKECNT - amount of strokes character makes while creating the item. Each stroke
 
  has DELAY specified in SKILL section. Readable/Writable.
 
  LOCAL.CRAFTAMOUNT - amount of items that will be created. Only usable for REPLICATable items,
 
  otherwise will make no effect. Readable/Writable.
 
- Modified: @Destroy on items and characters is triggered before deletion, not after. This way
 
  all of the item/character properties are fully accessible.
 
  "return 1" forbids deletion. WARNING! putting return 1 in this trigger means it won't be deleted
 
  in any possible way! Use it with caution.
 
  
15-07-2008, MrSugarCube
+
04-06-2015, Coruja
- Fixed: World saves being aborted when they are taking a long time to complete.
+
Fixed: Damages not removing Paralyze effect.
 +
Fixed: Console error when casting spells that have effect duration.
 +
Changed: Some improvements on Blood Oath and Evil Omen spells (necromancy).
  
20-07-2008, MrSugarCube
+
06-06-2015, XuN
- Fixed #1459: Weather effects not being updated when walking in/outdoors.
+
Added some missing casts
- Fixed #1458: ARGV[x] not being updated when ARGS is set to a new value.
+
Fixed DEBUG errors when entering/leaving RED areas.
 +
Reverted back m_uidKiller in m_itCorpse to CGrayUIDBase to fix build not compiling.
  
20-07-2008, Coruja (Script pack)
+
06-06-2015, Coruja
- Updated #1457: sphere_items_multis_houses_ships.scp (Corrected sign height and door type for the
+
Fixed: Field spells and triggers @Step (items) / @ItemStep (chars) not working correctly.
  stone and marble shops)
 
- Updated #1456: spherechar_new_mounts.scp (Added FOODTYPE for c_giant_beetle)
 
  
24-07-2008, Coruja (Script pack)
+
08-06-2015, Coruja
- Updated #1465: sphere_spells.scp (Wrong spellflag for MARK spell)
+
Fixed: Function AddContextEntry not working correctly on HS clients >= 7.0.0.0
 +
Fixed: Dead bonded pets not updating the ghost corpse correctly on resurrect.
 +
Fixed: Explosion potions causing damage to nearby items when it explodes.
  
02-08-2008, MrSugarCube
+
10-06-2015, Coruja
- Fixed #1475: Undefined keyword error when using 'REGION.ALLCLIENTS' in a region with no clients.
+
Added: Player corpses now will turn into bones when it got carved or before it decay. Also improved the corpse carving behavior, and now when the corpse got carved it will place all items inside the bone container instead drop everything on the ground.
 +
Fixed: Wrong message appearing when the char get flagged criminal (changed 'msg_criminal' to 'msg_guards').
 +
Fixed: Poison/Paralyze Field spells continuously hitting the player at every second instead just hit when needed.
 +
Fixed: Console error when an NPC cast Nightsight spell or use Meditation skill.
 +
Changed: Invulnerable chars (FLAGS=statf_invul) now are able to attack another char instead get the attack "magically blocked".
 +
[sphere_item_deco_dungeons_traps_dead.scp]: Removed TYPE=t_meat_raw, TDATA1 and VALUE from all 'i_flesh_*' items (they aren't foot and nor sellable items).
 +
[sphere_msgs.scp]: Updated all 'carve_corpse_*' messages and removed 'msg_criminal', 'msg_magic_block'.
 +
[sphere_spells.scp]: Added missing 'spellflag_tard_dead' on s_resurrection spell.
 +
-IMPORTANT: It's HIGHLY recommended update it, or Resurrection spell will stop working.
  
08-08-2008, MrSugarCube
+
10-06-2015, XuN
- Fixed #1479: Custom layer values not being restored correctly when loading from world save.
+
Fixed: Res* not reducing damage anymore
- Fixed #1470: Entering house customization with open dialogs causing the sphere to lose track of
+
Fixed: Having RegenHits/Mana/Val greater than ini's setting stoping the regen process forever for this character.
  which dialogs are still open on the client.
 
- Fixed #1468: Exiting house customization mode sending characters to the house sign's height
 
  instead of ground level.
 
  
09-08-2008, MrSugarCube
+
11-06-2015, Coruja
- Fixed #1476: Players under the incognito spell being unable to read other players' profile
+
Changed: Some small improvements on explosion potion effect.
  scrolls.
+
Fixed: Console error "Hair/Beard not in a corpse" when corpse bones got saved on worldsave.
- Fixed #1033: Mass Curse spell not affecting character stats.
 
- Modified #963: ARGN1 in @[item]DropOn_Ground can now be used to read/write the decay time (in
 
  tenths of a second) that will be set on the dropped item.
 
  
10-08-2008, Coruja (Script pack)
+
12-06-2015, XuN
- Updated #1486: sphere_map_points4.scp (Added teleports for Yomotsu Mines and Fan Dancer's Dojo)
+
Changed all TAG.TamingSlots entries to FollowerSlots in: sphere_monsters.scp, sphere_monsters_custom.scp and spherechar_evil.scp.
- Updated #1485: sphere_map3.scp (Added missing Malas locations)
+
Added @FollowersUpdate trigger called in any update of followers related to OF_PetSlots:
- Updated #1480: sphere_map_points0.scp, sphere_map_points1.scp (Incorrect teleports for Ice
+
argn1 (R/W): 0 = Adding followers (taming, unshrinking, summoning, buying ...), 1 = sustracting followers (release, transfer ...)
  Dungeon)
+
argn2 (R/W): FollowerSlots used.
 +
SRC: Pet causing the trigger to run, when buying in vendors there's no PET yet, so SRC will point to the vendor.
 +
Return 1 will not allow following actions to occur: Transfer, Summon, UnShrinks from t_figurine, Buy from vendors. Any other actions (like release, set owner...) will not take in count returns.
  
11-08-2008, MrSugarCube
+
13-06-2015, XuN
- Fixed #1483: Issues with trying to load scripts from directories outside of where the Sphere
+
Fixed #2515: Added local.sound to @Effect and @SpellEffect triggers, by default it uses spell->sound excepting effects from potions which will have a random value between 0x030 and 0x031 (old value), this is writable, 0 means no sound.
  executable is located.
+
Fixed #2517: Added BREATH.TYPE to Breath's animation, this will tell Sphere what type of effect to use (same types as .effect).
 +
- To help keeping old behaviour (explosion on target instead of following fireball) I added BREATH.ANIM and BREATH.TYPE to every brain_dragon in sphere_monsters.scp and sphere_monsters_custom.scp, just remove the // on these lines with a quick find&replace to enable old style breath.
  
12-08-2008, MrSugarCube
+
14-06-2015, Coruja
- Fixed #1489: Longer ships being able to manoeuvre themselves into invalid positions.
+
Fixed: Summoned NPCs incorrectly creating corpses on death.
 +
Fixed: Summoned mounts not disappearing on summon timer expiration if it was mounted.
 +
Fixed: Region flags REGION_ANTIMAGIC_RECALL_IN and REGION_ANTIMAGIC_TELEPORT incorrectly blocking Resurrection spell effect.
 +
Fixed: Client screen not being updated correctly when ghosts got resurrected.
 +
Fixed: Possible console error when players/NPCs try pick/drop some specific items.
 +
Fixed: Combat not flagging the attacker criminal if the attack was parried by the target.
  
13-08-2008, MrSugarCube
+
16-06-2015, Coruja
- Fixed #1490: Formatting error when showing murderer/criminal title on the paperdoll.
+
Changed: Some optimizations on internal walk code and spell add/remove behavior.
 +
Fixed: Paralyze effect not updating the client immediatelly when it goes off, making the client only able to walk after ~100ms on next tick update.
 +
Fixed: Function SERV.MAP(x,y,z,m) returning console error instead '0' when 'm' is a invalid/disabled map.
 +
[Sphere.ini]: Added new ItemsMaxAmount .ini setting. This will globally set max allowed amount for all stackable items (default is 60000).
 +
[sphere_msgs.scp]: Removed 'msg_invisible' and 'msg_tingling' messages.
  
14-08-2008, MrSugarCube
+
17-06-2015, Coruja
- Fixed #1484: Client showing the wrong season and light level upon login.
+
Fixed: Stamina not decreasing correctly when walk over another char.
 +
Fixed: Packet to update char hitpoints being sent twice to nearby party members.
 +
Fixed: Properties like STR/ModSTR/MaxHits/etc making the char have current status value > max allowed value when the status got lowered.
  
16-08-2008, Nazghul
+
18-06-2015, Coruja
- Added: Character Trigger @UserQuestArrowClick what fires if the user clicks on the quest arrow.
+
Changed: Combat now will make blood effects only for physical damage (wrestling / weapons).
  No RETURN value checks, ARGN1 is the mouse button used (0=left, 1=right). Trigger works only
+
Changed: Field spells casted over the same field already created on ground now will make the previous field tile got replaced with the new one.
  with EF_MinimizeTriggers disabled.
+
Changed: Trigger @DropOn_Ground / @ItemDropOn_Ground now is fired when the item is already on the ground instead get fired before place it on ground. So there's no more ARGS showing the drop location P (use <ACT.P> instead) and also 'return 1' will disable drop sound and decay timer.
 +
Fixed: ATTR 'attr_magic' and 'attr_newbie' incorrectly affecting the item decay timer when it got dropped on ground.
 +
[Sphere.ini]: Updated ClientLinger setting with correct value.
  
22-08-2008, MrSugarCube
+
19-06-2015, Coruja
- Fixed #1496: Female NotoTitles not always being shown on the paperdoll.
+
Changed: NEWNPC function won't automatically place the created NPC on source P anymore. Like NEWITEM, the NPC will be created virtually and must be placed on the world using P=x,y. This will prevent the server send unnecessary/duplicated 'update' packets to clients.
 +
Fixed #2514: Hiding / Stealth skills and Poison / Poison Field spells not updating the client screen correctly on action success.
 +
Fixed #2518: Mounts losing bonded status on dismount.
  
25-08-2008, MrSugarCube
+
21-06-2015, Coruja
- Fixed: @Dismount trigger being fired multiple times under certain circumstances.
+
Changed: Improved stamina checks when walking.
 +
Fixed: Possible console error on specific char actions like walk, teleport and cast spells.
  
26-08-2008, Shadow Dragon
+
23-06-2015, Coruja
- Fixed: Skills doesn't gain when lower than 1.8
+
Changed: Some internal improvements on explosion potions code.
- Added: New trigger @AfterClick and @ItemAfterClick. LOCAL.ClickMsgText will contain text, that
+
Changed: Items dropped on invalid location on ground now will get bounced to char backpack instead get moved to char P.
  will be shown after click on object, LOCAL.ClickMsgHue will contain color of the message. Both
+
Fixed: Items being able to be dropped on ground inside walls tiles.
  locals are writable. RETURN 1 - will cancel showing text. Requires EF_New_Triggers to be
+
Fixed: Possible console error when casting field spells.
  enabled.
+
Fixed: CUSTOMIZE function on customizable multis not hiding correctly all house dynamic items on ground when client enter on customization mode.
- Fixed: Mounts removing when world save (error: Ridden NPC without a mount item).
+
Fixed: House customization menu making the char get moved to multi center when it switch to another floor level.
  
31-08-2008, MrSugarCube
+
23-06-2015, matex
- Added #1507: REVERT function to custom housing (t_multi_custom), calling this will clear any
+
Changed: Disabled assertions in non-debug Linux builds. This should not be necessary anymore because there is a SIGSEGV handler in linux builds.
  uncommitted changes that have been made to the building design.
+
Added: Experimental feature for Sectorsleeping which can be enabled during compilation by using _SECTOR_INTTICK.
 +
It basically checks in a 3x3 matrix around each sector if there are any players around to determine if the sector is sleeping.
 +
This leads to a more intelligent distribution of available compute power on small maps (because then the Sectorsleepmask can be
 +
increased without any immediately 'noticeable' effects). It is not yet available in nightly builds because I consider it too performance
 +
critical to make it available via a Sphere.ini setting (this would induce an additional comparison in each tick.)
  
03-09-2008, Nazghul
+
24-06-2015, XuN
- Added #1504: Optional second parameter "amount" to MAKEITEM. Please understand that the
+
Added TithingUse variable for [SPELL ] working like ManaUse but for Tithing Points.
  "additional" items crafted will neither fire any trigger, nor give experience or skill. So,
+
Fixed #2521: delay reseting after the the trigger, so it was impossible to change it.
  from that point of view there's no difference between "MAKEITEM i_dagger" and "MAKEITEM i_dagger,10"
+
Added support for Tithing in spells, note that LowerManaCost doesn't affect Tithing points but LowerReagentsCost does it unlike for mana.
  (except for the number of daggers created). If the resources you have are insufficiant for
+
Fixed a typo causing humans to create 10% of t_hide when carving corpses instead of applying a bonus of 10%
  the amount, it will be shortened respectively.
+
sphere_msgs.scp: Added //spell_try_notithing "You must have at least %s Tithing Points to use this ability" //1060173
 +
sphere_item_provisions_armor.scp: Updated Description and Subsection for gargoyle leather armor.
 +
sphere_spells.scp: Added TithingUse to chivalry spells.
  
08-09-2008, MrSugarCube
+
25-06-2015, Coruja
- Fixed #1514: Players and NPCs unable to cast spells.
+
Fixed: Walking over ghosts requiring stamina to pass.
- Fixed #1508: Dropped items stacking regardless of their difference in height.
+
Fixed: Mounts disappearing on worldsave on some specific situations.
 +
Added: New REFUSETRADES (bool 0/1) char property. If set to true (1), it will prevent others clients to open secure trades with this char.
 +
Added: New 'Allow Trades' / 'Refuse Trades' context menu buttons to toggle REFUSETRADES property. Unfortunately only clients >= 7.0.30 can see these buttons because OSI added these cliloc texts only on this client version.
 +
Added: New Hit Chance combat formula (more info: http://uo.stratics.com/content/arms-armor/combat.php#hitchance)
 +
[sphere_msgs.scp]: Added new message 'msg_trade_refuse'.
  
09-09-2008, MrSugarCube
+
26-06-2015, Coruja
- Fixed #1516: NPCs unable to use pathfinding when trying to follow or walk up to another character.
+
Fixed: Sphere crash when drop an item on a invalid ground location.
 +
Fixed: Function GOLD creating gold piles with max amount 65000 instead use ItemsMaxAmount value.
  
13-09-2008, MrSugarCube
+
26-06-2015, XuN
- Added: BASECOMPONENT property to multis. Usage is similar to COMPONENT except it returns
+
Added left Racial bonuses for Elfs, Added all for Gargoyles excepting Master Artisan.
  information for the components specified in the mul files, and when accessing
+
Added a missing call to Calc_CombatChanceToHit() from Fight_Attack(), making it to no check the chances to hit.
  individual components (BASECOMPONENT.n.[ID/DX/DY/DZ/D] there is an additional "VISIBLE"
+
For more info about Racial bonuses, read here: http://www.uoguide.com/Racial_Abilities .
  property which returns 0 if the component is invisible (usually applies to doors and signs).
+
[sphere.ini]
 +
-Added FEATURE_ML_RACIAL_BONUS and FEATURE_SA_RACIAL_BONUS to FeatureML and FeatureSA respectively, each one activating the bonuses for human/elfs or gargoyles.
  
16-09-2008, Nazghul
+
28-06-2015, Coruja
- Added: Override Tags for item/action related sound.
+
Changed: REFUSETRADES property now can be only used on players. NPCs won't use it anymore, since NPCs can't open trade windows.
  TAG.OVERRIDE.DOORSOUND_CLOSE / TAG.OVERRIDE.DOORSOUND_OPEN
+
Changed: Huge optimization on NPC_AI_EXTRA code. This is a heavy code called thousands of times per second, so unfortunately some features got removed to improve Sphere performance overall:
    (what it does should be obvious)
+
-Animals (brain_animal) wont poop on ground anymore.
  TAG.OVERRIDE.PORTCULISSOUND - holds an sfx number played when
+
-Animal Trainers (brain_animal_trainer) won't give food to nearby pets anymore.
    opening/closing a portculis
+
-Vendors won't go off-duty (brain_vendor_offduty) at night time anymore.
  TAG.OVERRIDE.DROPSOUND - sfx an items makes when dropped. Att:
+
PS: If someone still need these features, it can be done by scripts using @NPCAction trigger or at BUY/SELL functions on file /speech/speakshopkeep.scp
    system default sounds sometimes change due to the amount dropped
+
[sphere_msgs.scp]: Removed messages 'animal_dung' and 'npc_animal_poop'.
    (gold, ingots), or on what surface/item the item is dropped. All
 
    this will be overridden!
 
  TAG.OVERRIDE.SOUND_HIT - on weapons holds the sound when it hits,
 
    regardless of WHAT it hits!
 
  TAG.OVERRIDE.SOUND_MISS - on weapons, sound they make when missing
 
  
  all TAGs need to hold a number (defname MAY be possible -> test!),
+
29-06-2015, Coruja
  what also can be "0" (zero) with the meaning: don't play any sound.
+
[sphere_defs.scp]: Removed 'brain_beggar', 'brain_thief', 'brain_undead' and 'brain_vendor_offduty'. Unfortunately these NPC brains never had worked correctly so it won't make much difference if they got removed to clean some obsolete internal codes.
 +
[sphere_msgs.scp]: Removed messages 'npc_beggar_*' and 'npc_vendor_offduty'.
 +
[speakhuman.scp]: Changed a single 'brain_thief' line to 'brain_animal_trainer' brain check on train command to match these brain changes [brain_thief -> brain_animal_trainer]
 +
[sphere_backward_compatibility.scp]: Added backward compatibility to these 4 removed NPC brains.
 +
[sphere_skills.scp]: Added (<ISPLAYER>) check on Tracking skill to prevent console error when an NPC try to use this skill.
 +
[sphere_menu.scp]: Updated all obsolete ADDITEM and ADDNPC lines to ADD.
  
17-09-2008, Nazghul
+
03-07-2015, Coruja
- Added: Trigger @PICKUP_STACK what fires only if an item was picked up from a pile.
+
Fixed: Wrong console error text when trying to set NPC brains on players.
  ARGO is the remaining part of the stack. (There's a char trigger itemPICKUP_STACK
+
Fixed: Dead bonded NPCs losing gray color on corpse when client redraw the NPC on screen.
  also)
+
Fixed: @PersonalSpace trigger not being called when walking over chars on stairs.
 +
Changed: Improved frozen check on walk routines and ISSTUCK function.
 +
[sphere_monsters.scp / sphere_monsters_custom.scp]: Updated obsolete NPCs brain 'brain_undead' to 'brain_monster'.
  
18-09-2008, Nazghul
+
04-07-2015, Coruja
- Added: TAG.OVERRIDE.RUNNINGPENALTY and TAG.OVERRIDE.STAMINALOSSATWEIGHT to
+
Fixed: Combat creating blood on the attacker instead target.
  override the respective INI settings on a per character base
+
Fixed: Dragons (brain_dragon) always hitting breath attack even when the target get out of LOS.
 +
Changed: Decreased dragon breath damage. The previous formula was causing too high damages when the dragon has high hitpoints.
  
28-09-2008, Shadow Dragon
+
08-07-2015, XuN
- Fixed: Sphere crashing when injection tries to add one item to another non-container item
+
[sphere.ini]:
  (errors in injection script and so).
+
-Added CombatSpeedEra to switch between speed formulas that has been changed over the years, also updated the source to reflect this addition and added fully back the formula for Legacy, it was a little tweaked.
 +
// CombatSpeedEra
 +
// 0 = Legacy, T2A, 55x versions..., Recommended SpeedScaleFactor = 15000, Use DEX by default to calc speed, all others use stam
 +
// 1 = AOS, Recommended SpeedScaleFactor = 40000
 +
// 2 = SE, doesn't use m_iSpeedScaleFactor and it's only compatible with ML speed format eg. 0.25 ~ 5.00 seconds instead 0 ~ 50
 +
// 3 = ML, Recommended SpeedScaleFactor = 80000
 +
CombatSpeedEra= 3 // Default is ML (3)
  
26-10-2008, MrSugarCube
+
Note that SpeedScaleFactor must be changed along with this setting.
- Fixed #1540: Server crash when invalid parameters are passed into RTIME.FORMAT.
+
Tweaked CombatFormulas, they were using iDelay/2 when Fighting Skill started and generating another iDelay/2 after that period of time making it impossible to fully rewrite the value under argn1 in @HitTry.
- Fixed #1539: Infinite loop caused by "back" options on SKILLMENUs leading to a server crash.
 
- Fixed #1538: Possibility of quickly gaining arms lore skill through repairing, by repeatedly
 
  attempting to repair an item that cannot be repaired.
 
- Fixed #1518: Possibility of world save notification not being broadcasted.
 
- Fixed #1510: IsNum not working with negative numbers.
 
- Fixed #1158: Possibility of the statf_fly flag not being removed from players who have been stood
 
  still for some time.
 
- Fixed: "You can't think of a way to use that item." when failing to repair an item.
 
- Modified: EVENTSPLAYER, EVENTSPET and EVENTSREGION settings now accept a comma-delimited list of
 
  events.
 
  
26-10-2008, MrSugarCube (Script pack)
+
[sphere_backwards_compatibility]:
- Updated #1535: sphere_defs.scp (Corrected sounds for snd_rune_beetle through to snd_hiryu)
+
Added some more items.
  
02-11-2008, MrSugarCube
+
09-07-2015, Coruja
- Added #1499: CanUndressPets setting to sphere.ini. Setting this to 1 will enable players to
+
Changed: Improved some internal actions to update the client screen using less packets instead always do a full resend.
  take equipment from their pets' paperdolls.
+
Fixed: Client screen not being updated correctly on death/resurrect when PacketDeathAnimation .ini setting is disabled.
 +
Fixed: MAGICF_OSIFORMULAS .ini setting not calculating Inscription bonus correctly.
 +
Fixed: REVEAL function not removing 'Invisibility' buff icon correctly.
 +
Fixed: Major walk exploit when Injection clients press 'Chat' button.
 +
Fixed: Anti-magic regions blocking resurrect on ankh's (t_shrine).
  
29-11-2008, MrSugarCube
+
10-07-2015, Coruja
- Fixed #1553: Repairing an item does not update its tooltip.
+
Fixed: Status (hits/mana/stam) of all chars going down to ~15 at server startup.
- Modified: IsNearType (including IsNearType.P) now accepts a third parameter, which when set to 1
+
Changed: Small improvement on EF_Item_Strict_Comparison .ini experimental feature.
  will cause the function to include multi components in the search.
+
[Sphere.ini]:
- Added: New mt_mount flag (00400) which will allow character bodies to become capable of mounting
+
-Removed obsolete EF_Size_Optimise and EF_Intrinsic_Locals experimental flags.
  rides. Note that this flag is not required for the bodies that could already mount rides prior
+
-Added missing descriptions on Experimental and OptionFlags features.
  to this flag's existence (c_man/c_woman/c_man_gm/c_elf_man/c_elf_woman). Also be aware that not
 
  all character bodies are intended to be used for mounting rides and won't have proper riding
 
  animations.
 
  
29-11-2008, MrSugarCube (Script pack)
+
16-07-2015, Coruja
- Updated: sphere_defs.scp (Added mt_mount to the can_flags defname section)
+
Fixed #2538: BOUNCE function not activating item decay if it got dropped on ground by overweight.
 +
Fixed: NPCs Healer (brain_healer) resurrecting dead bonded pets (only the pet owner can resurrect it).
 +
Fixed: Combat hit chance formula being called twice, resulting a double chance to miss the attack.
  
05-12-2008, MrSugarCube
+
17-07-2015, Coruja
- Fixed: Server crash caused by exceedingly large dialogs being sent to clients.
+
Added: New improved NPC looting AI (NPC_AI_LOOTING).
 +
[sphere_msgs.scp]: Added 'loot_rummage' and removed 'loot_item_from', 'skillact_looting' messages.
 +
[sphere_dialog]: Updated dialog d_charprop1 button 18.
  
06-12-2008, jeem (Script pack)
+
22-07-2015, Coruja
- Updated #1555: sphere_guild_dlg_charlist.scp, sphere_town_dlg_charlist.scp (Fixed script error
+
Changed: Some improvements on OF_PetSlots engine.
  when showing guild member titles)
+
Fixed: Removed unnecessary full update on client when the player try to use any mount.
 +
Fixed: Function MOD[STR/DEX/INT] not fixing hits/stam/mana max value after decreased.
 +
Fixed: Magic Reflection spell not reflecting spells with SPELLFLAG_DAMAGE set.
  
07-12-2008, MrSugarCube
+
23-07-2015, Coruja
- Added #1086: Skill degradation for skills that have been set to decrease. @SkillChange trigger
+
Fixed: Function REVEAL not working correctly when used with empty args.
  is called for decaying skills just as it does when they gain (compare <ARGN2> to <<ARGN1>> to
+
Fixed: Invisible chars not getting revealed when looting items from corpses.
  determine if the skill is being increased or lowered).
+
Fixed: Telekinesis spell not flagging criminal when used to loot items from corpses.
- Added: Experimental flag EF_UseNetworkMultiVersionMod. This modifies the behaviour of the
+
Fixed: Paralyze spell effect not getting removed correctly.
  EF_UseNetworkMulti flag (don't forget to set this too) so that clients older than 4.0.0 will
+
Fixed: Clients not entering on warmode correctly after get hit by someone.
  be unaffected and continue to use the original networking code as if the EF_UseNetworkMulti
 
  flag was never set.
 
  
03-01-2009, Dwayne1988 (Script pack)
+
24-07-2015, XuN
- Updated: spherechar_human.scp, spherechar_evil.scp (Axis Tags were messed up, came after
+
Added TAG.OVERRIDE.SPEED for ITEMDEFS and Items overriding the current speed for weapons.
  @NPCRESTOCK _and_ had a leading TAB so Axis won't find them)
+
Fixed #2535: NPCRestock is now accepting code like any other triggers.
 +
Added: Setting RegenX=-1 in the ini will disable regens for that stat, also the @RegenStat trigger and every related code.
 +
[Items/Sphere_item_provisions_weapons.scp]:
 +
-Added TAG.OVERRIDE.SPEED for all weapons to match new speeds on OSI, uncomment these lines to enable them (These speeds are meant to be used with CombatSpeedEra=3).
 +
Re-added detail check for parrying messages, they were being sent always regardless of the detail flag on the character.
 +
Re-Adeed EF_Intrinsic_Locals with a warning comment in the ini.
 +
Fixed a check in CChar::NPC_ExtraAI() giving errors when trying to find items inside a container when there was no container to search on.
  
24-01-2009, MrSugarCube
+
25-07-2015, Coruja
- Fixed #1572: Exception on Linux builds when mounting a horse.
+
Changed: Optimized many spells and some others functions to avoid send unnecessary 'update' packets to client when it's not needed (or send it using less packets when needed).
- Fixed #1569: @UserWarmode trigger not being fired.
 
- Fixed #1568: Default webpage paths in Sphere.ini not valid for Linux.
 
- Fixed #1532: Added log message to indicate the account name being referred to when an account
 
  is already in use, blocked, or cannot log in due to CLIENTMAX setting.
 
  
28-01-2009, Shadow Dragon
+
26-07-2015, XuN
- Added: SERV.RTicks for reading purposes. Returns real system time in ticks as unsigned value (0..4294967295).
+
Enabled again movement packet for newer clients since blocking it was causing newer clients to do not move at all and getting 'freezed' after some steps. Added a few lines of code to UserChatButton to make this packet restrict movement when this button is being pressed, hence avoiding these injection problems.
- Added: UVAL, which works like EVAL, but for unsigned values.
 
  
01-02-2009, Shadow Dragon
+
26-07-2015, Ben
- Added: Basic LIST support.
+
Added support for future Axis connection... (details will be available when the time comes)
  LIST.xxx to show elements in list. Also, can be used like LIST.xxx=value to clear list and add a value
+
Added internal support for Category,Subsection.Description and ID in SPAWN and TEMPLATE sections. they can now be accessed with (eg: serv.spawn.defname_here.category)
  LIST.xxx.ADD to add new element to list, can be number or string
+
Also added access to ID in CHARDEF to return the real anim id of the chardef in hex. (serv.chardef.c_man.id should return 0190)
  LIST.xxx.CLEAR to clear list
 
  LIST.xxx.index to read/write value on element in list
 
  LIST.xxx.COUNT to get count of elements in list
 
  LIST.xxx.index.REMOVE to remove element at specified index in list
 
  LIST.xxx.index.INSERT to insert element at specified index in list
 
  LIST.xxx.FINDELEM search_value returns index of first found element in list. Search starting from begin
 
  LIST.xxx.index.FINDELEM search_value returns index of first found element in list. Search starting from index
 
  SERV.PRINTLISTS to print all lists and their elements
 
  SERV.CLEARLISTS to clear all lists. If used with mask parameter, then clear all lists, which name countains specified mask
 
- Added: SERV.Map.x.AllSectors some_verb_to_use
 
  If used not in this syntax, then gives old error about MAP is readonly.
 
  
08-02-2009, MrSugarCube
+
28-07-2015, Coruja
- Fixed #1517: Unable to cast polymorph spell.
+
[sphere_skills.scp]: Updated TITLE on skills ArmsLore, Blacksmithing and MagicResistance.
- Fixed: Possible infinite loop when creating fight memories in scripts.
+
[spheretables.scp]:
 +
-Updated RESOURCES using an better file order to prevent some 'undefined keyword' errors on sphere startup.
 +
-Fixed a small notoriety typo [Imfamous -> Infamous]
  
09-02-2009, Coruja (Script pack)
+
04-08-2015, Coruja
- Updated #1576: sphere_item_profession.scp, sphere_item_deco_dungeons_traps_dead.scp (Corrected
+
[Sphere.ini]: Added new magic flag MAGICF_OVERRIDEFIELDS to prevent cast multiple field spells on the same tile, making the new field tile remove the previous field.
  portrait DUPELISTs)
+
Changed: If there's multiple field spells on the same tile and MAGICF_OVERRIDEFIELDS is disabled, now only the first field will make effect (this will prevent some weird exploits like cast multiple Fire Field spells on the same tile to take more damage, etc).
  
15-02-2009, MrSugarCube
+
06-08-2015, Coruja
- Modified #1545: JOINASMEMBER function no longer requires that the new member be online.
+
Fixed #2541: Client screen not being updated correctly on resurrect.
- Fixed: Unable to connect to local server with an encrypted client when it decides to reuse its
+
Fixed: Players randomly switching to previous targets on combat.
  login server connection instead of open a new one.
+
Fixed: Client sending unnecessary mana/stam update to party members when opening the status menu.
 +
Added: Missing Polymorph spell duration formula when MAGICF_OSIFORMULAS feature is enabled.
  
21-02-2009, MrSugarCube
+
07-08-2015, Coruja
- Fixed #1571: Creating a player with a hyphen or period in its name causing a random name to be
+
Fixed: Random 'walk resync' problems.
  generated.
+
Fixed: Incorrect full update packet sent to clients when it' ID (body) got changed.
- Fixed #1548: Armor MODAR being factored in twice when calculating total armour value, and sometimes
+
Fixed: Combat swings between attacks not working correctly.
  character MODAR being factored in twice when calculating damage.
+
Fixed #2539: Combat damages always creating blood using default color (red) instead follow BLOODCOLOR property.
- Fixed: Messages such as "You can't reach anything in your state." and "You can't think of a way to
 
  use that item." being sent to players as they try to free themselves from spider webs.
 
- Added #1564: PetsInheritNotoriety setting to sphere.ini. This can be used to specify which
 
  notoriety flags a pet will inherit from its master (so if for example a pet has an evil owner
 
  and the NotoEvil flag is set then the pet will also show as evil regardless of its real notoriety).
 
  
22-02-2009, MrSugarCube
+
09-08-2015, Coruja
- Fixed #1575: Improved handling of unicode speech in Linux build.
+
Changed: Major improvements and optimizations on internal Hit / HitTry combat calls.
- Fixed #1537: TEST in skillmenus not being parsed in the same way as TESTIF.
+
Changed: Combat swing behavior got slightly changed to be more accurate.
 +
-Now instead the animation speed match the swing delay duration and only do the damage at the end, the animation/damage will always occour on first 7ms and then it will keep waiting the remaining time until next swing.
 +
-This makes all anims/sounds perfectly match the damage timer no matter the weapon type or swing delay timer.
  
26-02-2009, MrSugarCube
+
13-08-2015, matex
- Modified #1560: Separated PROMPTCONSOLE from the targeting system. Targeting no longer interferes
+
Added: OVERRIDE.NPCAI to control AI-flags on a per character basis if necessary. Otherwise NPCAI flag from sphere.ini is used.
  with prompts and vice-versa.
 
  
14-03-2009, MrSugarCube
+
15-08-2015, matex
- Fixed #1585: Multiple arguments not being passed into commands when using the syntax
+
Added: EF_DynamicBackgroundsave. This will enable, if necessary, if a backgroundsave tick is triggered to save more than only one Sector.
  [SERV.]ACCOUNT <name> <command> <args>
+
This especially makes sense if the map has a lot of sectors. E.g. if the sectorsize deviates from 64x64 as completion of a single backgroundsave
 +
takes circa 40 minutes with a sectorsize of 32x32 and BACKGROUNDSAVE set to 1. Using dynamic backgroundsaving this can be sped up at the cost of
 +
some performance. You can approximately limit the amount of items/characters that will be saved as the Operation will just stop if it estimated that
 +
saving another sector would exceed SaveStepMaxComplexity. You can further limit how many sectors will be saved at maximum per backgroundsave-tick using SaveSectorsPerTick. This is a maximum value. If the maximum complexity is exceeded it may not reach that maximum value.
 +
Added: SECTOR.INACTIVECOUNT. Will report the number of logged-out chararacters inside that sector.
  
20-03-2009, MrSugarCube
+
16-08-2015, Coruja
- Fixed #1586: Exception in Linux build when using the ADDCLILOC function with DEBUGF_SCRIPTS enabled.
+
Fixed: Walk packet events causing excessive CPU/bandwidth usage.
- Fixed: Exception when passing an invalid object uid into the NEWDUPE function.
 
  
21-03-2009, MrSugarCube
+
17-08-2015, Coruja
- Fixed: Crashes with EF_Unicode enabled on Linux builds.
+
Fixed: Char property Regen[Hits/Mana/Stam] not working correctly.
- Fixed: SuppressCapitals causing speech to be blanked out.
+
Changed: Updated internal MySQL libs version 4.1.18 to 6.1.6.  
  
22-03-2009, MrSugarCube
+
19-08-2015, Coruja
- Fixed #1557: Sphere only sending partial webpages to certain browsers such as FireFox.
+
Fixed: Combat randomly not starting the first swing.
- Fixed: Sphere only sending partial webpages to all browsers when EF_UseNetworkMulti is used.
+
Fixed: Rubberband when using combat skills while running.
- Modified: EF_UseNetworkMultiVersionMod now also disables the effects of EF_UseNetworkMulti for HTTP
+
Fixed: World teleports incorrectly showing teleport spell animation.
  clients.
+
Fixed: Tracking skill showing empty messages instead not show any message at all when the tracking messages are blank on sphere_msgs.scp.
  
29-03-2009, MrSugarCube
+
21-08-2015, Coruja
- Fixed #1589: TWOHANDS returning 1 with items that are equipped in the second hand but aren't
+
Fixed: NPCs (brain_monster) always trying to apply poison on hit, even if the NPC doesn't have poisoning skill or poisoned weapons.
  two-handed, such as shields and lanterns.
+
Fixed: NPCs not moving when step on Fire Field spell.
 +
Fixed: Tactics skill too difficult to gain on combat.
 +
Fixed: Explosion potion not flagging criminal when hit someone.
 +
Fixed: Spells disturb not working correctly in some specific cases.
 +
Fixed: Missing paperdoll update when char ID (body) get changed.
 +
[Sphere.ini] Removed COMBAT_PREHIT combat flag, it can be replaced by AttackingIsaCrime which does the same thing.
 +
[sphere_defs.scp]: Added new 'dam_nodisturb' damage flag.
  
04-04-2009, MrSugarCube
+
25-08-2015, Coruja
- Fixed #1588: Possibility of overflow when applying markups to vendor prices (note that prices are
+
Fixed: Food items not restoring char FOOD correctly.
  limited to a maximum of 2,147,483,647gp inclusive of markup).
+
Fixed: HitLeech[Life/Mana/Stam] and HitManaDrain properties making hits/mana/stam rise over the max char limit.
 +
[sphere_spells.scp]: Removed SOUND / EFFECT_ID from Teleport spell. These values are already handled by Sphere.ini settings, and sphere_spells.scp values was making it play twice.
  
10-04-2009, MrSugarCube
+
27-08-2015, Coruja
- Fixed: Server crash caused by deeply nested SKILLMENUs.
+
Added: New STEPSTEALTH char property to set how many steps the char can walk invisible while using Stealth skill. This property is set when using Stealth skill, will decrease -1 on each walk step (or -2 if running) and will reveal when reach 0.
- Modified: Menu options are no longer hidden from SKILLMENUs when Sphere is unable to fully search
+
Changed: Trigger @StepStealth no longer use ARGN1 to force reveal, the ARGN1=1 can be replaced by STEPSTEALTH=0.
  within them.
+
Fixed: Missing buff icon when using INVIS (GM command).
 +
[sphere_skills.scp]: New Stealth softcoded skill.
 +
-IMPORTANT: It's HIGHLY recommended update it, or this skill will stop working.
  
13-04-2009, MrSugarCube
+
28-08-2015, XuN
- Added: SERV.RTICKS.FROMTIME year,month,day,hour,minute,second. Returns the timestamp for the given
+
Changed the way SPAWNS works, improved them and added more access functions:
  date.
+
- Removed MEMORY_ISPAWNED from source (still present as a def in sphere_defs.scp for backwards-compat)
- Added: SERV.RTICKS.FORMAT timestamp[,format]. Converts the given timestamp into a formatted date
+
- Updated SpawnItem to point directly to the spawn instead of redirecting to memory's link.
  string (similar to SERV.RTIME.FORMAT).
+
- Moved SpawnItem (R) to COjbBase to affect both chars and items.
 +
- Spawned OBJs are now stored in the spawn, so SpawnItem only gives quick access to the spawn.
 +
- Functions added to spawns:
 +
- AT.n.KEY (R): Retrieves the 'KEY' val for the 'n' spawned item/char, examples: <at.0.name>, <at.0.str>...
 +
- COUNT (R): Returns the total count of spawned items or chars.
 +
- RESET (W): Removes every spawned Item/Char.
 +
- STOP (W): Removes every spawned Item/Char and stops the Spawn.
 +
- START (W): Same as DClicking the Spawn, but from function, without LOS/Distance/etc limitations (It just makes it start, doesn't reset it, so won't work if it's already working).
 +
- ADDOBJ uid (W): Adds the given UID(the Item/Char must exist obviously, so it must be created before) to the Spawned list, it doesn't check for MORE2 < AMOUNT or anything, it's a forced add. Example:
 +
ON=@GetHit
 +
REF1=<SpawnItem>
 +
SERV.NEWNPC=<baseid>
 +
NEW.P=<P>
 +
NEW.FLAGS |= STATF_CONJURED
 +
REF1.ADDOBJ=<NEW>
 +
- DELOBJ uid (W): The opossite of ADDOBJ, removes one OBJ from this list (just remove from the list, it's not removing the OBJ itself).
 +
NOTE: While updating for this build, when server is loading for first time and converting MEMORY_ISPAWNED to SpawnItem and removing these memories, Sphere will throw a memory_leak exception after loading the world because of the difference between items before loading (chars with memory_ispawned) and items after loading (memory_ispawned removed).
  
14-04-2009, MrSugarCube (Script pack)
+
Added PREVBUILD storing in the worldsaves the current BUILD (__GITREVISION__), usefull to apply changes when updating the bin. Usage: <SERV.PrevBuild>
- Updated #1497: sphere_item_multis_houses_ships.scp (Fixed ship masts not blocking line of sight)
 
  
19-04-2009, MrSugarCube
 
- Fixed #1586: Possible exception when checking line of sight near multis when AdvancedLos is enabled.
 
- Fixed #1495: Ghosts able to teleport through walls when resurrecting. Line of sight is now required
 
  for a ghost to resurrect with their corpse.
 
- Fixed: Exception when EF_NewPositionChecks is enabled and there are statics placed on the map which
 
  don't have scripts.
 
  
19-04-2009, MrSugarCube (Script pack)
+
Changed iSwingDelay from CChar::Fight_Hit to CResource::Calc_CombatAttackSpeed to prevent double checks for speeds 'lower than' and to avoid guard's speed to be overriden if GuardsInstantKill=1
- Updated #1469: sphere_item_ground_tiles.scp (Corrected height of i_waterfall_low)
+
Also changed AnimDelay from @HitTry to initially have a duration of argn1 -=7, so this can be softcoded to match 'old style' by just adding a simple +=7
 +
Updated fighting delays to match again the 'real' delay removing a tick from the delay (as the fighting proccess is starting in the next tick).
 +
Fixed #2554: SkillUseQuick not checking for SKF_SCRIPTED
 +
Fixed #2553: Animations not being displayed when fighting with COMBATF_NODIRCHANGE
 +
Fixed #2547: Dragons will be tracked as Monsters
 +
Fixed Tracking not displaying the direction of the target in the given message.
 +
Fixed ML SpeedEra's formula not giving correct delays.
  
25-04-2009, MrSugarCube
+
15-09-2015, XuN
- Modified: Jailing players (".JAIL cell#" command) now remembers the cell number that was specified,
+
Fixed #2542: NPCs ridden by GMs deleted on WorldSave.
  stored in Tag.JailCell on the account and used when returning players to jail.
+
Fixed #2554: UseQuick not returning false for Skills with SKF_SCRIPTED.
- Modified: Jailed players are no longer blocked from being teleported within the jail region.
 
  
25-04-2009, MrSugarCube (Script pack)
+
17-09-2015, Coruja
- Updated: sphere_map0.scp (Renamed individual jail AREADEFs to jail cell ROOMDEFs)
+
Fixed: Combat swing behavior not working correctly.
 +
[sphere_skills.scp]: Updated Parrying skill to fix glow effect appearing even on failure.
  
02-05-2009, MrSugarCube
+
18-09-2015, Coruja
- Fixed #1581: Characters unable to see objects that are in the corners of their visual range.
+
[sphere_monsters.scp]: Added new dinosaurs CHARDEFs from UO Time of Legends (still incomplete yet).
 +
[sphere_item_char_icons.scp]: Added ITEMDEF i_pet_tiger.
  
03-05-2009, MrSugarCube
+
19-09-2015, Coruja
- Fixed #1526: No decay timer set on lights after they become unlit.
+
Fixed: LOCAL.AnimDelay on @HitTry trigger not working correctly.
  
04-05-2009, MrSugarCube
+
25-09-2015, XuN
- Fixed: Objects on the corners of .EXTRACT, .NUKE, .NUKECHAR areas not being affected by the command.
+
Fixed #2558: errors thrown when CombatSpeedEra=0 and Weapons had no SPEED defined.
 +
Fixed #2556: Added GetDefKeyNum/Str as shortcut to get directly the values, used in CChar::Fight_Hit to send correct values to CChar::OnTakeDamage
 +
Fixed HitLeechLife/Stam/Mana not giving the corrent amount of hits/stam/mana
 +
CHANGED tag.override.sound_hit to AMMOSOUNDHIT and tag.override.sound_miss to AMMOSOUNDMISS to match other AMMO* properties.
  
05-05-2009, MrSugarCube
+
25-09-2015, Coruja
- Fixed #1451: Missing mana checks, skill checks and @Select triggers not being fired before casting,
+
Fixed: Console error when players call "Guards".
  when precasting is enabled.
+
Added: Better user-friendly description to server exit codes. Now the console will show "Server terminated: [reason][code]" instead "Server terminated by error [code]".
- Modified: Separated the movement behaviour of the MAGICF_PRECAST flag into a new MAGIC_FREEZEONCAST
 
  flag. Enable MAGICF_PRECAST to enable casting before targeting, and enable MAGICF_FREEZEONCAST to
 
  prevent characters from moving whilst casting (enable both to retain the previous behaviour of
 
  MAGICF_PRECAST). Also added SPELLFLAG_NOFREEZEONCAST to disable the effects of MAGICF_FREEZEONCAST
 
  for individual spells.
 
  
06-05-2009, MrSugarCube
+
28-09-2015, Coruja
- Added #1599: SpellTimeout setting to Sphere.ini. If set to a value greater than zero then when
+
Fixed: NPCs not facing target when starting combat swings.
  casting a spell the player is given this many seconds to choose a target before the spell is
+
Added: New 'DYE <uid>' function to open dye gump on selected UID.
  automatically cancelled.
 
  
16-05-2009, MrSugarCube
+
01-10-2015, XuN
- Modified #1610: Cure spell just sends the packet needed to update the health bar rather than sending
+
Fixed combat swings being aborted when range was not in the required limits regardless of COMBATF_STAYINRANGE enabled or disabled.
  a full refresh of the entire screen.
+
ReAdded COMBATF_PREHIT since AttackingIsaCrime is the setting used now to handle notoriety checks, and prehit is used to create a different combat style on some servers dealing damage first and recoaling after.
- Added #1609: MAGICF_SUMMONWALKCHECK flag to ensure that summoned creatures can only be successfully
+
Added #2560: @TARGON_CANCEL will fire on chars now when closing a target created by TARGETF*, ARGS = function.
  summoned on tiles that are walkable for them (i.e. a sea creature can only be summoned on water).
+
[sphere.ini]
 +
-Added: LootingReveal, setting this to 1 will force your character to be revealed when looting corpses that don't belong to you.
  
16-05-2009, MrSugarCube (Script pack)
+
03-10-2015, Coruja
- Updated: sphere_msgs.scp (Added msg_summon_invalidtarg defmessage)
+
Fixed: Console error when using some specific functions on NPCs or offline players.
 +
Changed: Default timer to close doors after open it changed from 60sec to 20sec.
 +
[items/sphere_item_magic_ninjitsu_bushido.scp]: Fixed wrong MOREZ on i_spellbook_bushido, i_spellbook_ninjitsu.
 +
[maps/sphere_map5.scp]: Added new regions from UO Time of Legends expansion.
  
18-05-2009, MrSugarCube
+
04-10-2015, Coruja
- Added #1466: MAGICF_NOFIELDSOVERWALLS flag to enable additional checks when casting field spells to
+
Fixed: Hit Chance combat formula not working correctly.
  prevent them from passing through blocking objects (CAN_I_BLOCK and/or CAN_I_DOOR).
+
Fixed: sphereworld.scp file saving many [SECTOR] templates for the same sector separately instead save everything related to this same sector on the same template.
 +
[sphere.ini]: Removed EF_Specific / OF_Specific settings, which was incomplete since 7 years ago and was never released to public.
  
20-05-2009, MrSugarCube
+
05-10-2015, Coruja
- Added #1604: PROMPTCONSOLEU function. This is an alternative to the PROMPTCONSOLE which enables the
+
Added: Basic support for UO Time of Legends (TOL)
  client to respond with unicode text.
+
-Added RESDISP 9 (TOL) support.
- Added: SYSMESSAGELOCEX, an extended version of SYSMESSAGELOC which can be used for sending localized
+
-Added VIRTUALGOLD function to store virtual gold of chars.
  messages to clients with a non-localized string attached to the start or end of the message. SMSGLEX
+
-Added support for the new trade window changes.
  can also be used as a shortcut.
+
-Added new 'Trade' popup button to open a trade window when click on another player (enabled only on TOL clients 7.0.46.0+)
  Syntax is: "SYSMESSAGELOCEX color,clilocid,flags,affix[,arguments]"
+
[sphere_admin.scp]: Added 'admin_resdisp_9' def.
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override
 
  it. Known possible values for flags are:
 
    0x00 = Append text to message
 
    0x01 = Prepend text to message
 
    0x02 = Forces message to show as a system message
 
  A couple of examples of this being used (latest clilocs) are:
 
  "SYSMESSAGELOCEX -1,1008078,01,MrSugarCube"                    - Displays "MrSugarCube : Attempting to heal you."
 
  "SYSMESSAGELOCEX -1,3002003,00,Smoking is bad for your health" - Displays "Note to self:  Smoking is bad for your health"
 
  For overriding messages in sphere_msgs.scp (or other message functions such as SAY and MESSAGE) the
 
  syntax "@hue,font,3 clilocid,flags,affix[,arguments]" can be used, for example:
 
  "SAY @022,,3 1008097,01,MrSugarCube"                          - Object says "MrSugarCube : poisoned you!" in red
 
  
30-05-2009, Nazghul
+
08-10-2015, Coruja
- Fixed: @GetHit always gave damagetype type (argn2) 0C02 (physical | slash | pierce). Now the type is set
+
[Sphere.ini]:
  to dam_physical, dam_slash or dam_pierce is added depending on weapon type (wrestling and mace weapons
+
-Added new FeatureTOL and FeatureExtra settings (some flags still incomplete)
  don't set extra flags).
+
-Moved FEATURE_ML_NINTHAGE (FeatureML) to FEATURE_EXTRA_CRYSTAL (FeatureExtra)
- Added: TAG.OVERRIDE.DAMAGETYPE for weapon type items. Holds a numerical value and overrides the
 
  type specific damage type.
 
  
20-06-2009, MrSugarCube
+
09-10-2015, Coruja
- Fixed #1617: Dispel and Mass Dispel spells sending an unnecessary full client update to all players
+
Added: Small improvements on TOL trade window.
  touched by the spell.
+
Added: 'physical' gold piles now will be converted to 'virtual' gold when dropped on bankbox (if FEATURE_TOL_VIRTUALGOLD is enabled).
 +
[sphere_msgs.scp]: Added new messages 'bvbox_deposited', 'msg_trade_sent_*', 'msg_trade_received_*'.
 +
[sphere_map_points5.scp]: Updated [MoonGates] values.
  
21-06-2009, MrSugarCube
+
16-10-2015, Coruja
- Added #1627: PlayerEvil setting to Sphere.ini. Similar to the PlayerNeutral setting, this
+
Fixed: TOL trade window not allowing trade gold when the char have 1 or more platinum.
  will control the karma level at which a player will be considered evil.
 
  
25-07-2009, MrSugarCube
+
29-10-2015, Coruja
- Added: Support for packet changes found in client 6.0.14.2.
+
Fixed: Context menu not working on items.
 +
Fixed: Spells memories incorrectly being dropped to backpack instead get removed when the char is already under a spell effect and cast it again.
 +
Fixed: Spells memories intentionally created with TIMER=-1 not being removed when the char cast the spell again to cancel the current effect.
 +
Changed: Buff/debuff spells now will get the memory effect layer from scripts instead use hardcoded values.
 +
-IMPORTANT: It's HIGHLY recommended check if your sphere_spells.scp is updated and have LAYER value properly set on buff/debuff spells, or these spells will stop working.
  
02-08-2009, MrSugarCube
+
30-10-2015, XuN
- Fixed #1636: Exception caused when an online player character is deleted.
+
Added EquipSound to override sounds for items when equipping them.
- Fixed #1639: Tooltips not being sent for objects on the edge of the client's screen.
+
Changed tag.override.dropsound to DropSound.
  
29-08-2009, MrSugarCube
+
03-11-2015, Coruja
- Fixed: Unable to drop 'new' spell scrolls (necro+) into spellbooks even when MOREZ has
+
Fixed: Possible Sphere crash when DClick on items with long LINK sequence (thx roberpot).
  been correctly set on the book.
+
Fixed: Key items linked to houses/boats not being recognized correctly on backpack when using locked items.
- Fixed: Incorrect character race being sent to clients.
 
  
30-08-2009, MrSugarCube
+
04-11-2015, Coruja
- Fixed #1625: Extremely high vendor prices on Linux build.
+
Changed: NPC Banker (brain_banker) is now considered an NPC vendor and can use BUY/SELL commands.
- Fixed: Archery buttes not checking for OVERRIDE.AMMOTYPE and OVERRIDE.ANIM* tags on the
+
[Sphere.ini]:
  character's weapon.
+
-Added new NPCTrainCost setting to tweak the cost of skills trained on NPCs vendors (credits to Nazghul, he did this setting 7 years ago but never enabled it, I just made some improvements and enabled it).
- Modified #1642: Reduced delay between asynchronous database query callbacks.
+
-Updated NPCTrainMax value.
- Added: Skill flag SKF_RANGED. Combine this with the SKF_FIGHT flag to create ranged
 
  (i.e. archery) combat skills.
 
  
30-08-2009, MrSugarCube (Script pack)
+
05-11-2015, XuN
- Updated: sphere_defs.scp (Added SKF_RANGED definition)
+
Fixed NPCs not reacting instantly when they see a new target, they stand in the place for some random time without moving against their target.
 +
Fixed Spawns having no NPC limit.
 +
Added MAGIFC_NOREVEALINVISIBLE 02000 // (Old style backwards) Casts won't reveal you on SpellCast if you are under Invisible spelleffect.
  
07-09-2009, MrSugarCube
+
07-11-2015, Coruja
- Added: Console command "d ui" to generate a file named "unscripted_items.scp" that
+
[Sphere.ini]
  contains *basic* definitions for items in tiledata.mul that have no corresponding
+
-Added new ClientLoginTempBan setting to tweak the temporary ban duration of client IP when it reach max wrong password tries
  Sphere script.
+
-Renamed MaxAccountLoginTries setting to ClientLoginMaxTries
  
12-09-2009, MrSugarCube
+
09-11-2015, Coruja
- Fixed #1623: RESTEST requiring 1 of an item when checking for a quantity of 0. This also
+
Fixed: Mounts disappearing on world save when ridden by NPCs.
  affects other resource-list-based functions and properties such as CONSUME, FOODTYPE,
 
  RESOURCES, SKILLMAKE, SKILLTEST, etc.
 
- Fixed #1655: Setting RAINCHANCE and COLDCHANCE to zero does did not disable rain or snow.
 
- Modified: When loading a WORLD* block from a save Sphere can resolve defnames to find the
 
  object being loaded (like the ones in sphere_backward_compatibility.scp, for example).
 
  
12-09-2009, Coruja (Script pack)
+
13-11-2015, Coruja
- Updated #1645: sphere_template_vend.scp, sphere_item_resources.scp, spherechar_human.scp,
+
[sphere_skills.scp]: Fixed console error when an NPC try to use Tracking skill.
  sphere_item_provisions_potions.scp, sphere_backward_compatibility.scp (Corrected spelling
+
[items/sphere_item_char_icons.scp]: Added TOL NPCs icons.
  of the wyrm heart defname (i_reag_worm_heart->i_reag_wyrm_heart))
+
[npcs/sphere_monsters.scp]:
- Updated #1654: sphere_defs.scp (Adjusted height of the Meer characters)
+
-Updated NPCs Wild Tiger and TOL dinosaurs.
 +
-Added new TOL NPCs Silverback Gorilla, Infernus, Greater Phoenix, Myrmidex Drone.
  
13-09-2009, MrSugarCube
+
16-11-2015, Coruja
- Fixed #1595: @Destroy trigger not being fired for items inside removed containers. When
+
Fixed #2563: FasterCasting char property incorrectly affecting spell cast delay on chars with GM=1 set.
  returning 1 in @Destroy on an item inside a container about to be deleted, the item will
 
  be dropped to the ground (unless the item has already been moved elsewhere).
 
- Fixed #1656: Exception when players trade and item 01e5e has not been set as a container
 
  type.
 
  
05-12-2009, MrSugarCube
+
19-11-2015, Coruja
- Fixed: Unable to connect to remoteadmin from telnet clients that operate in 'line mode'
+
Fixed: Items inside Trade Window container becoming unreachable after server worldsave + shutdown while the trade window is open.
  and need the enter key to be pressed after CTRL+A/Space (the one in Ubuntu, for example).
+
Fixed: Tracking skill not aborting the action when the client logout.
- Modified: Rewritten networking system, based on the code Vjaka wrote for 0.57 combined
+
[sphere_skills.scp]: Fixed console error on Tracking skill.
  with updates added since such as EF_UseNetworkMulti. This new system introduces features
 
  such as packet prioritisation which should help to keep clients responsive even in areas
 
  with a large number of objects.
 
  The EF_UseNetworkMulti and EF_UseNetworkMultiVersion experimental flags have been removed
 
  from the ini and different settings have been added to a new "Network Behaviour" section.
 
  The default settings should suit most users, but in some cases it may help to tweak the
 
  MaxPacketsPerTick and MaxQueueSize settings.
 
  
06-12-2009, MrSugarCube
+
20-11-2015, Coruja
- Added: Support for gargoyle character creation. For the option to be available the player
+
Fixed: Combat exploit to force start next swing immediately instead wait proper delay between swings.
  must have a RESDISP of 7+ and the FEATURE_SA_UPDATE flag needs to be enabled in Sphere.ini.
+
Changed: Now instead char spawns (t_spawn_char) block the char creation when it reach sector max char complexity, it will spawn the char but throwing an 'Sector too complex' console warning.
  ARGN3 in the f_onchar_create (sphere_serv_trigger.scp) is now the character race (1=human,
 
  2=elf, 3=gargoyle).
 
- Added: Basic support for mysticism spellbook and skill (the actual spell effects need to be
 
  scripted).
 
- Added #1657: Support for the increased tiledata size in client 7.0.0+. As a consequence,
 
  multis must now start from 08000 instead of 04000 and scripts must be adjusted accordingly
 
  (the default script pack has been updated). If an older client encounters an item within the
 
  04000-07fff range they will only see a worldgem bit (01ea7).
 
- Fixed #1661: Status bar not correctly showing green or yellow in 7.0.0+ clients.
 
- Modified: The size of Map5.mul is now automatically detected.
 
  
06-12-2009, MrSugarCube (Script pack)
+
24-11-2015, Coruja
- Added: spherechar_sa.scp (Added gargoyle character definitions)
+
Fixed: Buffs not reloading correct remaining timer on client login.
- Added: sphere_item_provisions_alchemy_magic_sa.scp (Added mysticism spellbook and scrolls)
+
Fixed: Spiderweb (t_web) making chars stay stuck even after the spiderweb get removed.
- Added: sphere_map5.scp, sphere_map_points5.scp (Added SA map areas)
 
- Updated: sphere_defs.scp (Added defnames for RDS_SA RESDISP, t_spellbook_mystic)
 
- Updated: sphere_serv_triggers.scp (Updated description for f_onchar_create)
 
- Updated: sphere_skills.scp (Added base definitions for mysticism, imbuing and throwing skills)
 
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
 
  sphere_item_multis_stairs.scp (Increased multi IDs by 04000)
 
- Updated: spheretables.scp (Added sphere_map5.scp and sphere_map_points5.scp to resources,
 
  commented out by default)
 
  
12-12-2009, MrSugarCube
+
28-11-2015, Coruja
- Added: Support for gargoyle flying ability. Flying characters will have statf_hovering set
+
Fixed: Protection spell not working when COMBAT_ELEMENTAL_ENGINE .ini setting is disabled.
  on their FLAGS property and will be allowed to pass over items that have the CAN_I_HOVER
 
  flag set.
 
  The exact effects of the statf_hovering flag are:
 
  - Can pass over hidden 'hover over' tiles to get to special areas
 
  - Can move at the same speed as a mounted player
 
  - Height is increased by 4 in LOS/movement checks (same effects as when mounted)
 
  - When stamina is lost on movement, the running penalty is always applied
 
  - Always revealed when moving whilst hidden
 
  - Will not teleport off ships when moving on to a ship plank
 
- Added: MULTIDEF block. This can be used to safeguard against any future changes to the size
 
  of tiledata.mul. This basically acts as a 'shortcut' for ITEMDEF, except the ID will
 
  automatically be increased by 08000. Items defined with this are still accessible as normal
 
  via SERV.ITEMDEF.id(+08000)/defname, or SERV.MULTIDEF.id/defname can be used if you prefer
 
  for consistency.
 
- Added #1674: PINS property to maps, to return the number of pins on the map.
 
- Fixed #1672: Situations where returning 0 in a trigger would return as 2.
 
  
12-12-2009, MrSugarCube (Script pack)
+
01-12-2015, Coruja
- Updated: sphere_defs.scp (Added defnames for statf_hovering, mt_hover, can_i_hover,
+
Fixed: Players randomly switching to another target on combat.
  tilef_hoverover, t_hoverover)
 
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
 
  sphere_item_multis_stairs.scp (Replaced multi ITEMDEFs with MULTIDEFs)
 
- Added: sphere_item_ground_tiles_sa.scp (Added hover-over item definitions)
 
- Updated #1684: sphere_item_magic_armor.scp, sphere_item_magic_leather.scp,
 
  sphere_item_magic_weapon.scp, sphere_item_misc.scp, sphere_item_profession_cartographer.scp,
 
  sphere_item_provisions_armor_color.scp, sphere_item_provisions_deed.scp,
 
  sphere_item_provisions_ore.scp (Replaced custom script IDs with defnames to fix conflicts
 
  with new tiledata size -- some items did not have a defname so watch out if you have any of
 
  these in an existing world save)
 
  
13-12-2009, MrSugarCube
+
03-12-2015, Coruja
- Fixed #1683: Hiding skill not properly updating clients to show the character is gray.
+
[Sphere.ini]: Removed InitHiddenSkills setting. Now player characters are created with base values set on all skills set instead set only on skills that the player client version can see.
- Added #1678: Logging for commands issued via telnet. "TelnetLog" setting can be used
 
  to enable or disable this feature.
 
- Modified: The -E switch now shows a message in the console to indicate that is has been
 
  successfully enabled.
 
  
13-12-2009, Coruja (Script pack)
+
04-12-2015, Coruja
- Updated #1659: sphere_map2 (Renamed "Blood Dungeon Level 1" to "Blood Dungeon")
+
[Sphere.ini]:
- Updated #1665: sphere_item_profession_tailor_tanner.scp (Adjusted flipping behaviour of
+
-Added new RacialFlags setting to tweak human/elf/gargoyle racial traits individually.
  spinning wheel)
+
-Removed FEATURE_ML_RACIAL_BONUS and FEATURE_SA_RACIAL_BONUS settings (they got moved to RacialFlags).
  
13-12-2009, MrSugarCube (Script pack)
+
06-12-2015, Coruja
- Updated #1685: sphere_admin.scp (Updated hover flag description, added ability to hide
+
Changed: Improved walk packets on classic/enhanced clients.
  status flags by blanking their description)
+
[Sphere.ini]: Moved DEBUGF_WALKCODES to new EF_FastWalkPrevention experimental setting (also improved, but still incomplete yet).
  
16-12-2009, MrSugarCube
+
17-12-2015, Coruja
- Fixed: Crash dumps not being created at all.
+
Fixed: House customization not allowing clients to walk.
- Fixed: Wrong packets being sent to pre-7.0.0.0 clients whose encryption had been removed.
+
Fixed: Backpack not updating on death.
- Fixed: Summon and field spells not working correctly with EF_MinimiseTriggers set.
+
[Sphere.ini]: Added new pre-AOS option on CombatSpeedEra setting.
 +
-IMPORTANT: Option values got changed, check if the selected option is correct after update the script.
  
16-12-2009, MrSugarCube (Script pack)
+
18-12-2015, Coruja
- Updated: sphere_admins.scp (Added admin_resdisp_6 and admin_resdisp_7 defnames)
+
Changed: Improved the event handler when an item equip/drop request was denied. Now the item is dropped on its last location instead always drop it on player backpack.
  
17-12-2009, MrSugarCube
+
30-12-2015, Coruja
- Fixed #1689: Unable to move with FEATURE_SA_MOVEMENT enabled.
+
Fixed: New player chars not creating MALE_DEFAULT / FEMALE_DEFAULT newbie items when the player select Necromancer/Paladin/Ninja/Samurai as profession on character creation screen.
- Fixed #1688: Characters not being logged out properly when clients disconnect.
+
Fixed: Potions not removing previous memories on layer 'layer_flag_potion' before equip new memories on this layer.
 +
Fixed: Curse spell not working correctly when COMBAT_ELEMENTAL_ENGINE is enabled.
  
18-12-2009, MrSugarCube
+
03-01-2016, Coruja
- Fixed #1663: Human characters being created as elves with the SA client and with a RESDISP
+
[sphereCrypt.ini]: Added crypt keys for clients 7.0.46 and 7.0.47 (thx XuN and Feeh, I found these values on their forum posts)
  less than 7.
+
[sphere_map_points0.scp]: Updated new player start locations.
- Fixed: @UserVirtue trigger not being fired.
 
  
18-12-2009, MrSugarCube (Script pack)
+
08-01-2016, Coruja
- Added: sphere_item_profession_barber_sa.scp (Added gargoyle horn definitions)
+
Fixed: Clients requesting unnecessary 'resync' packets to server.
  
19-12-2009, MrSugarCube
+
10-01-2016, Coruja
- Fixed #1669: Maximum weight not being checked when a client equips an item.
+
Fixed: Client packet problems when players teleport while walking.
- Fixed #1690: CheckerTrans positions in dialogs not working with dorigin.
 
- Fixed #1692: DIALOGCLOSE immediately after DIALOG not working due to packet priorities.
 
- Modified #1681: Swapped the situations where cartography_nomap and cartography_fail
 
  defmessages are displayed.
 
- Fixed: FLUSH command on clients claiming to be undefined.
 
- Fixed: Previous page handlers not being removed when assigning pages via GMPAGE.x.HANDLE,
 
  leading to possible exceptions.
 
  
19-12-2009, MrSugarCube (Script pack)
+
11-01-2016, Coruja
- Updated: sphere_item_profession_barber_sa.scp (Fixed defname conflicts)
+
Fixed: return 1 on char trigger @EquipTest / @ItemEquipTest making the item drop on char backpack instead on its last location.
  
20-12-2009, MrSugarCube
+
12-01-2016, Coruja
- Added #1667: PARTY.SETMASTER, accepts either a character uid or @<N> for the Nth party
+
Fixed: MAGICF_STACKSTATS magic flag not working correctly.
  member, to change who the party master is. The character must be an existing member of the
 
  party and cannot already be the master.
 
- Added #1658: @TargetCancel trigger to spells (and @SpellTargetCancel to characters). This
 
  is called when a player cancels targeting with a spell.
 
    ARGN1 = the spell that was being cast
 
    ARGO  = the item used to cast the spell (e.g. a wand or scroll)
 
    RETURN 1 = suppress the cancellation message
 
- Added: @Wait trigger to skills (and @SkillWait to characters). This is called whenever
 
  Sphere wants to check if a character must wait before starting a skill. Normally this
 
  will be when a skill is selected from the skill menu (before @Select), but also when
 
  snooping a container or using a musical instrument.
 
    ARGN1 = the skill the character is attempting
 
    ARGN2 = the skill that is currently being used
 
    RETURN 0 = The character can start the other skill (bypasses default checks)
 
    RETURN 1 = The character must wait (bypasses default checks)
 
    RETURN 2 = Perform default checks
 
- Fixed: Return 0 not working in @UseQuick trigger.
 
- Fixed: @TargOn_Cancel trigger not being fired.
 
- Modified #1687: Clients are now listed in order of newest to oldest.
 
- Modified: TDATA1 and TDATA2 can be set on maps to specify the width and height of the gump.
 
  
21-12-2009, MrSugarCube
+
15-01-2016, Coruja
- Fixed #1693: CANSEELOSFLAG always returning 0.
+
Fixed: Damage spells disturbing the caster if casted on himself.
 +
Changed: Telnet connections will not receive B (broadcast) messages anymore.
 +
[Sphere.ini]: Changed AutoResDisp default value and functionality.
 +
Previously this setting was used to set an fixed RESDISP value to new created accounts.
 +
Now it's a boolean (1=on/0=off) and if enabled it will automatically set account RESDISP on @Login based on player client version.
  
02-01-2010, MrSugarCube
+
16-01-2016, Coruja
- Fixed #1691: Older clients freezing when single-clicking an item or NPC with a long name.
+
Fixed: Exploit allowing instant hit on combat.
- Fixed #1695: "You can't think of a way to use that item." message being shown when failing
+
Fixed: TARG/TARGPROP/TARGPRV char properties returning decimal values instead hex.
  to use a training dummy.
+
Fixed: OF_ScaleDamageByDurability flag not working correctly on items using min durability (MORE1L) = 0.
- Fixed #1693: CANSEELOSFLAG not working when a uid is specified.
 
  
03-01-2010, MrSugarCube
+
19-01-2016, Coruja
- Fixed #1700: Armor rating not updated when being resurrected.
+
Changed: Improved Detecting Hidden skill behavior.
- Added #1701: @TargetCancel trigger to skills (and @SkillTargetCancel to characters). This
+
[Sphere.ini]: Changed GameMinuteLength default value.
  is called when a player cancels targeting with a skill.
+
[sphere_monsters.scp]: Added missing stats/skills values on TOL dinosaurs.
    ARGN1 = the skill that was being used
+
[sphere_item_char_icons.scp]: Renamed i_pet_anchisaurus -> i_pet_anchisaur
    RETURN 1 = suppress the cancellation message
+
[sphere_item_animations.scp/sphere_item_deco_lightsources.scp/sphere_item_deco_virtues.scp/sphere_item_profession_alchemist.scp/sphere_item_unsorted.scp]: Removed unused TDATA4 from all t_light_lit items.
  
10-01-2010, MrSugarCube
+
20-01-2016, Coruja
- Added #1705: @RegionResourceFound trigger, fires on characters just before @ResourceFound
+
Fixed: Console error when GM use commands to add objects on undefined regions.
  is fired on a region resource (shares the same arguments and return values).
 
- Fixed #1706: Light sources not showing correctly on 7.0.0+ clients.
 
- Fixed: Guard command not working with pets.
 
- Modified: Pets default to guarding their master instead of following, and no longer attack
 
  the same target as their master when in "follow" mode.
 
  
17-01-2010, MrSugarCube
+
21-01-2016, Coruja
- Added: Experimental flag "EF_NetworkOutThread". If this is enabled then outgoing data will
+
Added: Missing tame/bonded/summoned tooltips on NPCs.
  be sent in a separate background thread.
+
Fixed: t_spawn_item not saving/loading correctly spawned items.
- Added: UsePacketPriority setting in sphere.ini. Leaving it at 1 (default) should be best
+
Fixed: Spawns (worldgem bit) not updating the tooltip when add/delete objects.
  but if this is set to 0 then [most] packets won't be prioritised.
+
Changed: Summon spells now will create NPCs with HOME and HOMEDIST=10 set by default.
  
24-01-2010, MrSugarCube
+
22-01-2016, Coruja
- Fixed #1713: Strange characters in the tip of the day window.
+
Added: New pet command '* unfriend'.
- Fixed: Previous and Next buttons not working on the tip of the day window.
+
Changed: Many improvements on pet commands engine.
 +
[sphere_speech.scp]: Added UNFRIEND line on speech lists.
 +
[sphere_msgs.scp]: Added new messages 'npc_pet_confused' and 'npc_pet_targ_*'.
 +
[sphere_spells.scp]: Removed 'spellflag_targ_xyz' from most summon spells. The only summon spells that uses target is Blade Spirits and Energy Vortex.
 +
[items/sphere_item_magic_spellweaving.scp]: Added missing color on i_spellbook_spellweaving.
  
25-01-2010, MrSugarCube
+
23-01-2016, Coruja
- Fixed: Figurines using TDATA3 from the item's DISPID instead of BASEID, when a new pet is
+
Fixed: Pets accepting items from its owner even when the owner can't access the pet backpack.
  spawned.
+
Fixed: Polymorph spell and POLY function not working correctly.
  
27-01-2010, MrSugarCube
+
27-01-2016, Coruja
- Fixed #1714: Unicode string corruption in dialogs.
+
Fixed: Items disappearing when players try equip it without have required STR.
- Modified: Exceptions that occur in background threads should now be recorded in logs.
+
Fixed: LOWERREQ item property not working correctly.
  
20-02-2010, MrSugarCube
+
28-01-2016, Coruja
- Modified #1720: SERV.EXPORT now exports in a square rather than a circle.
+
Fixed: Summon Creature spell not working correctly.
  
21-02-2010, MrSugarCube
+
31-01-2016, Coruja
- Modified: Network thread (used by EF_NetworkOutThread) will now lower its own priority
+
Fixed: Character stats gump (hits/mana/stam) showing wrong info for players on same party.
  when there is no data to send (and raise again when needed)
+
Added: New function OPENTRADEWINDOW to start an trade window between 2 players (both clients must be in range and visible).
 +
Usage: OPENTRADEWINDOW player_uid, item_uid (item uid is optional)
  
15-03-2010, MrSugarCube
+
05-02-2016, Vjaka
- Fixed: UseAsyncNetwork not working as it should on windows build.
+
Fixed: applied a patch by cbnolok fixing xmfhtmltok and sphere crashing on custom skils with index > 57.
 +
    Maximal skills has been set to 99
  
21-03-2010, MrSugarCube
+
11-02-2016, Coruja
- Added: MINKARMA, MAXKARMA and MAXFAME settings in sphere.ini.
+
Fixed: Hiding skill not removing previous Invisibility spell effect on success.
- Modified: First two lines of NOTOTITLES section are used to define the levels of karma and
+
Fixed: Char STEPSTEALTH value being reseted to 0 when function REVEAL is called to clear a single flag but the char still invisible using other flags.
  fame needed for each title.
+
Changed: Improved handling of 'Open Spellbook' and 'Open Door' client macro.
 +
[sphere_msgs.scp]: Added new message 'macro_opendoor' and removed 'msg_nospellbook', 'npc_generic_thanks', 'npc_pet_drop'
  
21-03-2010, MrSugarCube (Script pack)
+
13-02-2016, Coruja
- Updated: spheretables.scp (Added default karma and fame levels to NOTOTITLES section)
+
Fixed: Buff/Debuff bar showing wrong time left on spells memories using TIMER=-1.
 +
Fixed: Some skills not calling skillgain when action difficulty > skill value, making the skillgain chance always be 0%.
  
04-04-2010, MrSugarCube
+
16-02-2016, Coruja
- Fixed #1734: No response sent for UOG and CUO status requests.
+
Changed: Improved Sphere main timestamp engine.
- Modified: (Windows) Status window now uses a courier font so that data is aligned like it
 
  is when using 'p' in the console.
 
- Modified: Improved accuracy of profile data ('p' in console, or status window in Windows)
 
  by recording and displaying it for each thread.
 
  
17-04-2010, MrSugarCube
+
16-02-2016, Nolok
- Fixed: Wrong mapdif*.mul and stadif*.mul files being used with custom maps.
+
Fixed: Ships moving but not updating the multi part on Enhanced Client with smooth sailing disabled.
- Modified: If Map1.mul is present then it will automatically be used.
+
Changed: Removed useless screen updates when smooth sailing is on, making sailing more fluid.
- Modified: The larger ML map sizes are now automatically detected, so there should be no
+
Fixed: Price of items sold by the vendor swapped on Enhanced Client.
  need to specify it in the ini file.
+
Changed: Removed useless packets sent when opening vendor sell gump on Enhanced Client.
  
25-04-2010, MrSugarCube
+
17-02-2016, Nolok
- Fixed #1725: Friends stealing ownership of a pet when mounting it.
+
Fixed #2576: SpawnItem value is now readable under @Create trigger.
  
25-04-2010, MrSugarCube (Script pack)
+
17-02-2016, XuN
- Updated #1733: sphere_map0.scp (Added r_brit to events list for a_townBritain)
+
Fully enabled MT_NONMOVER from source, NPC's with this CAN flag will not move at all (avoiding glitching with dex 0 or using tag.nomovetill, which both could screw some things). Updated on sphere_defs.scp too.
 +
Added GetSight() to Char's range in NPC_LookAround to get a dynamic value of the VisualRange property, which was not working on NPCs.
 +
Changed: ARGN1 = 1 in @Stroke trigger(s) calling UpdateDir on character against it's target instead of forcing it to always turn if SKF_GATHER was present.
  
01-05-2010, MrSugarCube
+
17-02-2016, Coruja
- Fixed #1738: Players calling guards on invisible staff members.
+
Fixed: Functions ATTACK/FACE/SALUTE crashing Sphere if called using too many args.
- Fixed #1740: @Abort being called when failing alchemy instead of @Fail.
 
- Fixed: 'msg_tingling' defmessage not being shown under the correct circumstances.
 
  
02-05-2010, MrSugarCube
+
19-02-2016, XuN
- Fixed #1742: DIALOGCLOSE function not obeying the UsePacketPriority setting.
+
Fixed: T_SPAWN_ITEM not working when DClicking the Spawn.
  
03-05-2010, MrSugarCube
+
19-02-2016, Nolok
- Fixed: Database connection lost when using DB.EXECUTE with a query that returns results.
+
Fixed: ACT not being updated when using .add to add an item. This solves also AxisII being unable to initialize placed spawn items.
  
09-05-2010, MrSugarCube
+
22-02-2016, Nolok
- Fixed #1710,#1731: Numerous causes of instability when using EF_NetworkOutThread.
+
Fixed: T_SPAWN_ITEM not automatically setting attr_invis, whereas it happened with T_SPAWN_CHAR.
 +
Fixed: T_SPAWN_ITEM not removing spawned items when it got deleted.
 +
Fixed: forced T_SPAWN_ITEM and T_SPAWN_CHAR to be unstackable through an internal workaround, stopping the Enhanced Client behaviour
 +
of "unstacking" spawn items with amount > 1 when trying to move them.
 +
Changed: T_SPAWN_ITEM now colours itself red, like t_spawn_char, and when initialized it changes the DispID to i_worldgem_lg,
 +
in order to differentiate it from worldgem bits related to resource gathering and to make it more visible.
 +
Changed: the MORE2 of a T_SPAWN_CHAR does no more indicate the amount of chars spawned, for that there is the COUNT property
 +
(read only, introduced time ago), which works also for T_SPAWN_ITEM.
 +
MORE2 is used only by T_SPAWN_ITEM to indicate the maximum pile amount of the spawned item (if this is 0, spawn up to the total amount).
 +
COUNT property does not sum the amount of each spawned item.
 +
This resolves the ambiguity of MORE2 meaning and saves some space in the save files (you may want to set MORE2=0 to your old T_SPAWN_CHARs).
  
13-05-2010, MrSugarCube
+
-IMPORTANT: this change means that if in your scripts you get the amount of spawned chars with MORE2,
- Fixed #1748: Exception when dropping an item onto a non-container.
+
you should now reference to it with COUNT!
  
15-05-2010, MrSugarCube
+
Fixed: MORE2 property for T_SPAWN_ITEM not working as intended.
- Fixed #1747: Container contents near the boundaries showing in wrong position when
+
Changed: now double clicking a T_SPAWN_ITEM spawnitem has the same effect it has on T_SPAWN_CHAR, that is resetting it
  UsePacketPriority is enabled.
+
(remove existing items spawned from it) if the timer is running, otherwise starting it (forcing the spawn to work and create some items).
- Fixed #1746: Damage showing in the corner of the screen instead of above an enemy when
+
[sphere_msgs.scp] Removed ITEMUSE_SPAWNCHAR_NEG, ITEMUSE_SPAWNCHAR_RSET, ITEMUSE_SPAWNITEM_TRIG and unified them as:
  UsePacketPriority is enabled.
+
ITEMUSE_SPAWN_NEG and ITEMUSE_SPAWN_RESET.
  
23-05-2010, MrSugarCube
+
22-02-2016, Coruja
- Fixed #1751: Movement/sight checks fail when an item is too tall to fit within the Z
+
Fixed: Enhanced clients not placing items on correct container GRID slot when using containers on 'list view' mode.
  boundaries.
 
  
24-05-2010, MrSugarCube
+
23-02-2016, Coruja
- Fixed #1756: Packets being sent for items in containers the client cannot see inside (A
+
Fixed: Some clients not parsing correctly the last number/letter of client version.
  side-effect of this is that CANSEE/LOS will return 0 for such items, until the client
+
Fixed: Spawn items resetting COUNT and AMOUNT values to 0 on server restart.
  opens/snoops the container).
 
  
25-05-2010, MrSugarCube
+
25-02-2016, XuN
- Fixed #1754: Armor rating in status window not updated when equipped armor pieces receive
+
Improved the code of NPC's SpellCasting engine: removed some code and updated a bit the current. Also moved some spells to give them higher priority (Healing > cure poison > buffs ...)
  damage.
+
Added SKF_DISABLED, setting this flag on skills will not allow to use them by players or npcs
 +
Added Skill_CanUse(skill) checking if the skill is disabled. Maybe this can be expanded to differ Players from NPCs , adding expansion & resdisp checks, etc.
 +
WARNING: Following changes won't affect current scripts, but adapting them will remove the performance impact (Read NOTE for more tips about what to update).
 +
CHANGED: Moved formulas for SpellEffect's damage above @SpellEffect trigger, so these formulas will be calculated regardless of the returns of the trigger,
 +
this will allow working with precise numbers instead of wondering what ARGN1 may be and creating own formulas to handle it.
 +
Also added for this trigger:
 +
-local.dam with final damage received (if any).
 +
-local.resist: Damage reduction to apply, it's set to 25 automatically when the spell is going to be resisted, then sysmessage <DEFMSG.RESISTMAGIC> will be shown. Setting it to 0 will result in no resist and no sysmessage. You can force or totally remove resists here.
 +
NOTE: Since formulas will be calculated yes or yes from now, checks about spell's affecting this char or not should be moved to @SpellSuccess ( they should've been there from an start, but we all placed them in @SpellEffect :P) so @Effect won't even be called.
 +
Fixed some spells not being correctly found in case of having multiple books since the code for GetSpellbook() returned the first found book, and this may not have the requested spell.
  
29-05-2010, MrSugarCube
+
Script Pack:
- Fixed #1759: Client not always notified about login failure when EF_NetworkOutThread is
+
-sphere_defs.scp: Added SKF_DISABLED
  enabled.
 
  
31-05-2010, MrSugarCube
+
25-02-2016, Nolok
- Fixed #1753: Client crash when moving into view of a character sitting on a chair.
+
Fixed: Spawn items sometimes created with random COUNT property.
- Fixed #1760: Players unable to see items in the other player's trade window.
 
  
13-06-2010, MrSugarCube
+
28-02-2016, Coruja
- Added: 'TooltipMode' setting to sphere.ini. When this is set to '1', instead of always
+
Fixed: Buff spells acting like damage spells.
  sending a full tooltip packet for every item, Sphere will send a smaller 'header' packet
+
Changed: Some changes on spell triggers (@Effect [spells] / @SpellEffect [chars]) to allow more user customization
  and wait for the client to request the full information (for unchanged tooltips, clients
+
-Renamed LOCAL.Dam to LOCAL.Effect, now it can be used on all spells (damage, buff, etc) instead only on damage spells
  can use a local cache and less data will need to be sent).
+
-Added new LOCAL.Duration to change spell duration
  Note: Since the header packet requires knowledge of what the tooltip will contain,
+
-ARGN2 [skill level] is now read-only
  @ClientTooltip should be expected to fire twice in this mode (once for the header, once
+
-ARGN3 [effect multiplicator] got removed, it's no longer needed since now the spell effect value/duration can be changed using LOCAL.Effect/LOCAL.Duration
  for the full data). ARGN1 can be used to determine if the client asked for the tooltip,
 
  but it is important that you do not use it to change the tooltip content.
 
- Added: Support for caching tooltip data for characters and items. Whilst a tooltip is
 
  cached, @ClientTooltip won't be fired. A new 'TooltipCache' setting is provided in
 
  sphere.ini to control how long a cached tooltip will be valid for (set to 0 to disable
 
  caching). If the new tooltip mode is being used then enabling this would be advisable
 
  to avoid having @ClientTooltip fired twice for each client.
 
- Modified: RESENDTOOLTIP now accepts parameters to control how the tooltip should be
 
  sent.
 
  The syntax is now: "RESENDTOOLTIP [sendfull=0,usecache=0]"
 
  'sendfull' - 1 to force the full tooltip to be sent, or 0 to send just the header (when
 
                TooltipMode=1, otherwise the full data will be sent anyway)
 
  'usecache' = 1 to use cached tooltip if available, or 0 to clear the cache and force
 
                @ClientTooltip to fire
 
  
02-07-2010, MrSugarCube
+
29-02-2016, Coruja
- Fixed: Possible exception on Linux builds when an NPC moves.
+
Changed: Function REPORTEDCLIVER now will return the full client version string (eg: 5.0.2d) and REPORTEDCLIVER.1 will return the raw version number (eg: 5.0.2d = 5000204).
 +
Added: Support for [*]UpdateRange client macros.
  
03-07-2010, MrSugarCube
+
01-03-2016, Coruja
- Modified #1761: The fix for issue #1756 (sending packets for items inside unopened
+
Fixed: Sphere crash when any old UO:3D client try to connect.
  containers) must now be activated using the EF_FixCanSeeInClosedConts experimental flags,
+
Fixed: Chars not checking if it still have enough STR to use equipped items when decrease STR/MODSTR.
  since it has been reported to cause client crashes.
 
  
28-07-2010, MrSugarCube
+
05-03-2016, Coruja
- Added #1776: P.COMPONENTS to access multi components at a location in the same way as with
+
[sphere_monsters.scp]: Added new TOL NPCs Giant Gorilla, Tiger Cub, Tyrannosaurus Rex (incomplete yet).
  P.STATICS. Usage is identical to P.STATICS, except that the COLOR property does not exist
+
[sphere_map_points0/1.scp]: Updated MoonGates template.
  for multi components. P.COMPONENTS.n.MULTI can be used as a reference to the multi that
 
  contains the nth component at a location.
 
  
06-08-2010, ShiryuX
+
07-03-2016, Coruja
- Added #1790: TAG.NOTO.PERMAGREY which sets the player's notoriety to neutral/grey.
+
Fixed: Invisibility spell not removing previous Hiding skill effect on success.
  This will only happen if the character is blue, everything else will override it.
+
Changed: SPEECHCOLOR property now can be used on players too (read-only).
 +
Changed: WOPColor .ini setting now will inherit color from char SPEECHCOLOR value if set to 0.
  
07-08-2010, ShiryuX
+
08-03-2016, Coruja
- Fixed #1772: Cooking skill wasn't counted as a crafting skill.
+
Fixed: NPCs permanently adding target to ignore list when they can't see it.
 +
Fixed: NPCs getting stuck over traps / field spells without walk away.
  
07-08-2010, ShiryuX (Script pack)
+
10-03-2016, Coruja
- Fixed #1774: sphere_map0.scp (Renamed Occlo to Ocllo, correct spelling)
+
Fixed: Typedef t_booze returning console error when used more than once.
 +
Changed: SRC on char trigger @EffectAdd now will point to the spell caster instead target.
  
10-08-2010, ShiryuX
+
11-03-2016, Coruja
- Fixed #1781: Walk buffer protection was counting steps even when step wasn't possible,
+
Fixed: Magic Reflection spell effect not working correctly.
  because of freeze status in the character.
+
Fixed: Poison / Poison Field spells not calling trigger @EffectAdd on chars.
 +
Fixed: Console error when call ATTACKER.x function using invalid 'x' value.
  
12-08-2010, ShiryuX
+
14-03-2016, Coruja
- Fixed #1793: OpenDoor Macro now won't ignore LOS and Distance is 3 (max).
+
Added: ARCSIN, ARCCOS, ARCTAN intrinsic functions.
 +
Fixed: Console error when NPCs cast buff/debuff spells on players and die, leaving the spell memory linked on an invalid UID.
 +
Changed: Slightly changed armor % distribution between layers to match old T2A style.
 +
-Distribution on shields is now 7% of ARMOR value instead [Item ARMOR * (Char PARRYING / 10)]. This could reduce a lot of ARMOR on shields, but there's no problem since shields are used to block the entire damage (parrying) and not to raise ARMOR.
  
15-08-2010, MrSugarCube
+
15-03-2016, Nolok
- Fixed #1722: Game clients unable to connect when the server IP is set to 127.0.0.1.
+
Changed: Reverted ARGN2 on @Effect and @SpellEffect to be Read/Write, since someone still may need it, but keep in mind that effect/duration/etc are calculated before these triggers.
 +
Also, since some commit, ARGN2 is the randomized spell "potency" used internally, not the original one used to cast/spelleffect the spell.
  
17-08-2010, ShiryuX
+
16-03-2016, Coruja
- Added #1566: MD5PASSWORD account function/property to instert or change a MD5 hash as password.
+
Fixed: Console error (object not placed in the world) when casting spells that equip memories with TIMER=-1.
  This way you can call: "SERV.ACCOUNT foobar MD5PASSWORD f4d9ff51c527e8ef67d924d4f0a6db66"
+
Fixed: Weird walk animation when NPCs step on traps / field spells.
- Fixed #1799: Accounts created using ADDMD5 won't cut the hash anymore.
 
- Fixed: Dialog properties xmfhtmlgump and xmfhtmlgumpcolor not working correctly with dorigin.  
 
  
19-08-2010, ShiryuX
+
17-03-2016, Coruja
- Modified #1786: Disabled 'r' console command to be used by remote telnet, use 'resync' instead.  
+
Fixed: Spells WOP sending an extra whitespace at the end (eg: "Rel Por ") breaking Razor/UOSteam WOP formatting feature.
  Any other way to access the console (physical or remote desktop) can still use it.
+
[Sphere.ini]:
 +
-Removed COMBAT_OSIDAMAGEMOD combat flag.
 +
-Added new CombatDamageEra setting, which does exactly the same thing using the same formulas, but now able to switch between 3 damage formulas instead 2.
  
21-08-2010, ShiryuX
+
18-03-2016, Coruja
- Added: Basic support for bard spellbook and skill (the actual spell effects need to be scripted).
+
Fixed: NPCs getting stuck without move when their combat target use hiding/invisibility.
- Modified #1800: @UserWarMode will now have ARGN2 parameter, which by default is 1.
+
Added: New LOCAL.ItemDamageLayer (read/write) on trigger @GetHit to get/select the char LAYER that will be damaged on hit.
  ARGN2 = 1 --> Will abort the skill action
 
          0 --> Will _NOT_ abort the skill action
 
- Fixed: SA Clients wasn't considered for Async connections.
 
  
21-08-2010, ShiryuX (Script pack)
+
20-03-2016, Coruja
- Updated: sphere_defs.scp (Added 't_spellbook_bard' definition)
+
Fixed: Sphere not storing correct client version on some specific clients, making it send unsupported packets to these clients (resulting in client crash).
  
21-08-2010, khaos (Script pack)
+
21-03-2016, Coruja
- Updated: sphere_spells.scp (Added new bards spells from SA, no functionality though)
+
Changed: Multi placement target now will center to the multi front door (as OSI does) instead multi center.
  
22-08-2010, MrSugarCube
+
24-03-2016, Coruja
- Fixed #1803: Items with a default value of 2147483647 on linux builds.
+
Changed: As many users requested, walk through hidden/invisible chars won't require full stamina to pass anymore (this can be customized using ARGN1 on @PersonalSpace trigger)
  
23-08-2010, MrSugarCube
+
25-03-2016, Coruja
- Fixed #1796: Vendor speech containing the text "(null)".
+
[sphere_msgs.scp]: Added new CMSG_DEF_FONT and CMSG_DEF_UNICODE settings to customize character name on single click.
- Modified: MOREM on t_map items is now used to indicate which map has been drawn. Recent client
 
  versions (7.0.8.0+) are able to use this value to view maps other than map0.mul.
 
  
23-08-2010, MrSugarCube (Script pack)
+
30-03-2016, Coruja
- Updated: sphere_msgs.scp (Updated npc_vendor_s1 and npc_vendor_b1 defmessages)
+
Added: TAG.OVERRIDE.TRAINSKILLCOST on NPCs vendors to override NPCTrainCost value from sphere.ini
 +
[sphere_map0.scp]: Fixed RECT values on Green Acres and Green Acres 3.
  
25-08-2010, ShiryuX
+
05-04-2016, Coruja
- Fixed #1795: Characters were able to dclick equipable items with attr_move_never.
+
Fixed: Ship planks allowing usage from distances > MaxShipPlankTeleport setting on Sphere.ini, allowing the player enter on the ship on locations that he won't be able to exit.
 +
Fixed: Magic Reflection flagging criminal the char receiving the spell instead the caster.
 +
Fixed: Chars creating blood on combat even when BLOODCOLOR=-1 is set to prevent the blood creation.
  
05-09-2010, Khaos (Script pack)
+
09-04-2016, Coruja
- Added: sphere_item_provisions_clothing_sa.scp, sphere_item_provisions_armor_sa.scp,
+
Changed: Reverted changes on pet command STOP. Now it will act as an duplicated command of STAY instead make the pet stop all current actions and start follow his owner again.
  sphere_item_provisions_weapons_sa.scp (These files now contain all the default scripts
+
[sphereCrypt.ini]: Updated all crypts to use the new client version format.
  for Stygian Abyss weapons, armor, clothing, jewelry, and other miscellaneous items.
+
</pre>
  As a note: all throwing weapons use the t_weapon_sword type. There is no archery
 
  animations for gargoyles)
 
- Updated: sphere_skills.scp (Added FLAGS=skf_ranged|skf_fight to the throwing skill (Skill 57))
 
  
09-09-2010, MrSugarCube
+
==0.56d, Current Nightly==
- Fixed #1806: Possible causes of a critical "timer expired" error on Linux builds.
+
<pre>
 +
----0.56d --------------------------------------------------------------------
 +
---- 10/04/2016
 +
10-04-2016, Coruja
 +
Changed: Food level won't decrease on GM chars anymore.
 +
[sphere_msgs.scp]: Removed messages 'npc_text_murd_*'.
 +
[sphere_speech.scp]: Moved hardcoded speech commands 'I must consider my sins', 'I resign from my guild' and 'I resign from my town' to scripts.
 +
-IMPORTANT: It's HIGHLY recommended update this script, or these speech commands will stop working.
  
11-09-2010, ShiryuX
+
18-04-2016, XuN
- Fixed: 'group' keyword not being stripped with tngstrip command (used for locations tab).
+
Removed TAG.OVERRIDE.MAXWEIGHT and added ModMaxWeight on it's place for Banks and Corpses.
 +
Fixed stackable items not checking maxweight on corpses.
 +
Removed all references to MEMORY_WAR_TARG since they are not needed anymore, targets are handled by 'Attacker' now.
 +
Added back old HitChance formula under CombatDamageEra = 0
 +
Updated checks on @NotoSend trigger: it will not check anymore if ARGN1 > NOTO_INVUL, so you can create custom notoriety.
  
13-09-2010, MrSugarCube
+
19-04-2016, Coruja
- Removed: EF_Unicode; its behaviour is always enabled.
+
Fixed: Protection spell not working correctly if COMBAT_ELEMENTAL_ENGINE combat flag is disabled.
 +
[Sphere.ini]: Added new CombatHitChanceEra setting to switch between Hit Chance formulas on physical combat.
  
14-09-2010, MrSugarCube
+
20-04-2016, Coruja
- Fixed #1744,#1752: Desynchronisation of players' position between client and server.
+
Changed: Console errors/warnings now will be colored white again (as it was on old sphere builds).
 +
Fixed: Movement checks not allowing climb some stairs/mounds.
  
20-09-2010, Khaos (Script pack)
+
21-04-2016, Coruja
- Updated: sphere_item_provisions_armor_sa.scp (added layers to the wearable armor -shields.
+
Added: New guild functions ISALLY/WEALLIANCE/THEYALLIANCE, it works exactly in the same way as ISENEMY/WEWAR/THEYWAR but used to set alliances instead wars.
  Skirts were being treated as gloves)
 
- Updated: sphere_item_ground_tiles_sa.scp (added the sparkle dupeitems for the hover over
 
  animation)
 
- Added: sphere_item_building_floors_sa.scp (contains all the new SA floor tiles, even the
 
  runed items)
 
- Added: sphere_item_building_doors_sa.scp (this file contains all the proper doors for the
 
  SA expansion)
 
  
21-09-2010, Khaos (Script pack)
+
29-04-2016, Coruja
- Updated: sphere_item_building_doors_sa.scp (added in ruined doors (Should be the last set))
+
Fixed: COMBAT_ARCHERYCANMOVE combat feature not working correctly.
 +
Fixed: Sphere internal FastLoot prevention not working correctly.
 +
Fixed: Invisible (statf_invisible) chars not being revealed when others chars walk over him.
 +
Fixed: Vendor buy menu showing wrong char 'gold available' value.
  
27-09-2010, MrSugarCube
+
30-04-2016, Coruja
- Fixed #1819: "World save has been initiated" messages not being sent until after the save
+
Fixed: Mounts disappearing on worldsave on some specific situations.
  completes.
 
- Fixed: Large packets sent by the client sometimes not parsed correctly, leading to strange
 
  behaviours or console errors.
 
  
30-09-2010, ShiryuX
+
04-05-2016, Coruja
- Fixed #1825: not writable books not displaying content for 5.0.0+ clients.
+
Fixed: Wrestling using wrong attack animation when unmounted.
- Modified: Axis strip to use only ONE file to dump the stripped scripts (like TNG strip does)
 
  Commands are = TNG: "strip tng" or "tngstrip" (dump file sphere_strip_tng.scp)
 
                Axis: "strip axis" or "strip" (dump file sphere_strip_axis.scp)
 
  
04-10-2010, MrSugarCube
+
07-05-2016, Coruja
- Fixed: Editing a book page can cause the following page to be deleted.
+
Changed: Enhanced clients now will always have tooltips enabled (even if this feature is disabled on Sphere.ini). These clients uses tooltips instead @Click calls, so it's a must-have feature.
 +
Fixed: Spellbook gump not working correctly on enhanced clients.
 +
Fixed: Criminal notoriety incorrectly overriding guild notoriety (war/ally) on chars.
  
07-10-2010, MrSugarCube
+
08-05-2016, Coruja
- Fixed #1826: Male characters unable to walk over items with CAN_I_LIGHT set.
+
Fixed: Explosion potions not working correctly.
 +
Fixed: Functions SKILLLOCK/STATLOCK not updating the lock icon on client skills/stats window.
  
09-10-2010, ShiryuX
+
15-05-2016, Coruja
- Added: "TAG.OVERRIDE.NOTO" and "TAG.OVERRIDE.NOTO.$uid" as notoriety flag overrides.
+
Changed: Updated internal Libev libs v4.1 to v4.22.
  TAG.OVERRIDE.NOTO is a general override for the notoriety flag.
+
Changed: Updated internal SQLite libs v3.8.11 to v3.12.2.
  TAG.OVERRIDE.NOTO.$uid overrides the noto flag according to the viewer $uid.
 
  * NOTE: The general override is applied before the viewer tag. So it will override EVERYTHING.
 
          Usable flags can be found on sphere_defs.scp
 
  
09-10-2010, ShiryuX (Script pack)
+
19-05-2016, Nolok
- Updated: sphere_defs.scp (added noto_types defintion)
+
Fixed #62: High value FLAGS showing wrong value when retrieved.
  
11-10-2010, Khaos (Script pack)
+
21-05-2016, Coruja
- Updated: sphere_item_provisions_weapons_sa.scp (fixed some typos)
+
[sphere_item_unsorted.scp]: Updated giftbox itemdefs.
- Updated: spherechar_human.scp (Female barber was using male barber names instead of
+
[sphere_map_points0/1.scp]: Fixed Hythloth entrance and updated Covetous teleports.
  the female name list)
 
  
13-10-2010, MrSugarCube
+
24-05-2016, Coruja
- Added: Support for packet changes found in client 7.0.9.0.
+
Fixed: Tooltips not showing on disconnected chars when ALLSHOW is enabled.
- Added: Support for new tiledata.mul and multi.mul formats found with client 7.0.9.0.
 
  Since the tiledata size has increased again (supporting a maximum slot of 0FFFF),
 
  multis must now start from 010000. If multi scripts are already using the new MULTIDEF
 
  syntax then everything should work without any change to scripts.
 
  
14-10-2010, MrSugarCube
+
28-05-2016, Coruja
- Fixed #1832: Exception on Linux build when logging in.
+
Fixed: Function MOVENEAR not working correctly.
  
18-10-2010, MrSugarCube
+
29-05-2016, Coruja
- Modified: Ships use their HEIGHT property to detect objects that are on the deck,
+
Fixed: Pet command 'guard me' making the pet follow the owner instead guard him.
  rather than assuming a value of 3.
+
Fixed: Jailed players being teleported to the same jail region with no reason when the client login.
 +
Changed: Improved text formatting of basic console commands.
  
22-10-2010, MrSugarCube
+
06-06-2016, Coruja
- Fixed #1828: Instability when receiving large amounts of data from a client.
+
Fixed: Paperdoll and character profile gump showing wrong info.
- Fixed #1838: Fixed "Bad MENU item id" error when trying to display a custom item in a
+
[sphere_msgs.scp]: Added message 'msg_acc_age' and removed unused 'tooltip_tag_armor', 'tooltip_tag_destination', 'incognito_name_male', 'incognito_name_female'.
  menu or skill menu.
+
[sphereCrypt.ini]: Added crypt key for client 7.0.50
- Fixed #1839: Exception when showing the edit menu for a container containing more than
 
  64 items.
 
  
23-10-2010, MrSugarCube
+
07-06-2016, Coruja
- Fixed #1835: @Destroy incorrectly firing on trade window contents when the container
+
Fixed: Incognito spell considering char notoriety neutral/not-neutral on different actions. To avoid problems, now Incognito will always consider the char neutral (gray), which is the correct effect.
  is removed.
+
Added: Missing features on Incognito spell
 +
-It will change char name to a random human male/female name instead always use Man/Woman.
 +
-It will change char body/hair/beard to a random color temporarily.
 +
-It won't hide guild abbreviation anymore (the player can choose hide/show it using guild menu).
  
25-10-2010, MrSugarCube
+
13-06-2016, Coruja
- Fixed #1822: Exception when a client sends a malformed skill lock packet.
+
Fixed: Boat/ship parts resetting TYPE after use 'turn' commands.
- Fixed #1782: Exception on linux build leading to sphere.pid file never being removed
+
Fixed: Server crash when Injection clients connect using fake client version exploit.
  when shutting down Sphere.
+
Changed: Renamed file Sphere.ini -> sphere.ini to avoid case-sensitive problems on Linux builds.
 +
Changed: Updated internal SQLite libs v3.12.2 to v3.13.0.
  
27-10-2010, Khaos
+
17-06-2016, Coruja
- Added: Race selectors to newbie templates. Code works as follows: [newbie xxx <race>] Races
+
Fixed: Paralyze / Paralyze Field making NPCs flood too many attack actions.
  that can be set are "human", "elf", "gargoyle", or leave it default for normal functionality.
+
Fixed: Console error when for some reason an NPC got created/moved to an invalid region.
  This works for the male_default, female_default, and all the skills defined in Newbie sections.
 
- Added #1598: All max* stat values (Hits, stam, mana, food) can be _safely_ set up to 1 million.
 
  Though you can go past this, we don't recommend it. Note: This should not be used on players
 
  max values, and we _highly_ don't recommend it.
 
  
03-11-2010, MrSugarCube
+
22-06-2016, Coruja
- Fixed: Exception on linux build when accessing guild functions without an SRC.
+
Added: Support for colored multis on target functions (only compatible with HS clients 7.0.9.0+)
 +
-Target functions can set the multi color using TARGETM [multiID, color] and TARGETFM [function, multiID, color]
 +
-Target will inherit the deed color when got triggered from an deed
  
14-11-2010, MrSugarCube
+
27-06-2016, Coruja
- Fixed #1847: Crash on 7.0.0+ clients when other clients are picking up and dropping
+
Fixed: Function f_onchar_delete not being called if the player char get deleted in any other way different from client Character Selecion menu.
  items.
+
Fixed: Multi dynamic regions getting replaced by script static regions on server resync.
 +
Fixed: EF_FastWalkPrevention not working correctly.
 +
Fixed: Popup menu on players returning parsing error when send Party clilocs to unsupported clients < 6.0.0.0
  
21-11-2010, MrSugarCube
+
28-06-2016, Coruja
- Fixed: Unable to access basic properties for non-game clients through SERV.CLIENT.x.
+
[sphere_item_unsorted.scp]: Fixed wrong TYPE / TDATA2 on i_fountain_life, i_chest_combination.
 +
[sphere_item_deco_carvings_statues.scp]: Fixed wrong TYPE / TDATA2 on i_statue_stone_blessed.
 +
[sphere_item_deco_furniture.scp]: Fixed wrong TDATA2 on i_chest_kings_collection.
 +
[sphere_serv_triggers.scp]: Updated 'f_onchar_delete' comments.
 +
[sphere_defs.scp]: Updated 'mount_items' and 'mem_flags' values.
 +
[sphere_skills.scp]: Reordered properties to follow the same default order on all skills (nothing was changed, just reordered).
 +
[speakhuman.scp]: Fixed 'train' command returning console error when used on guards NPCs.
  
22-11-2010, Coruja (Script pack)
+
29-06-2016, Coruja
- Updated #1851: sphere_map0.scp (renamed Trinsic Passage to Delucia Passage)
+
Fixed: Attack/Kill command on pets allowing select the pet itself as target, making it attack his owner.
 +
Fixed: WOP flood when casting spells using extremely short delays.
 +
Fixed: Containers using wrong rect area.
  
02-12-2010, MrSugarCube
+
30-06-2016, Coruja / azmanomer
- Fixed #1861: Elven players turning into gargoyle ghosts when dead.
+
[sphere_item_unsorted.scp/sphere_template.scp]: Updated more giftbox itemdefs.
- Fixed: Mana Vampire spell always gives mana to the caster even when the spell is blocked in
 
  an @Effect trigger.
 
  
03-12-2010, MrSugarCube
+
08-07-2016, Coruja
- Fixed #1770: Exception when NPC_AI_PATH is enabled and an NPC cannot find a route to its
+
Changed: Some misc improvements and optimizations on combat engine.
  destination.
 
  
10-12-2010, MrSugarCube
+
13-07-2016, Coruja
- Fixed #1854: LogMask setting not have any effect on the messages being logged.
+
Fixed: Chars not able to climb some small mounds.
 +
Fixed: Spawns (worldgem bit) not updating DISPID when set SPAWNDEF on MORE1.
  
12-12-2010, MrSugarCube
+
14-07-2016, Coruja
- Added #1865: ARROWQUEST function now accepts a third parameter to specify the arrow's id
+
Changed: Improved some NPCs interactions with players.
  (defaults to 0). This can be used to display more than one arrow at once on newer clients,
+
Fixed: Spawns (worldgem bit) creating chars on stuck locations.
  but bear in mind that older clients can still only show one arrow at a time and so the id
 
  will effectively be ignored in their case.
 
  If an id has been specified when showing the arrow, then you will also need to specify it
 
  again when you want to remove it ("ARROWQUEST" with no arguments will only remove the arrow
 
  with id 0).
 
    ARROWQUEST 1000,1000,0 // show an arrow pointing to 1000,1000, id=0
 
    ARROWQUEST 1020,1000,1 // show an arrow pointing to 1020,1000, id=1
 
    ARROWQUEST 1000,1020,2 // show an arrow pointing to 1000,1020, id=2
 
    ARROWQUEST 0,0,1      // remove the arrow pointing to 1020,1000
 
  
21-12-2010, MrSugarCube
+
22-07-2016, Coruja
- Fixed #1869: Older clients freezing when an item or character with a long name speaks.
+
Fixed: Security issue setting account login as chat name when newest clients try to setup the chat window for the first time and the char name is not available.
 +
Fixed: Invisible chars being incorrectly revealed by REVEALF_LOOTINGOTHERS reveal flag when picking items from the ground.
 +
Fixed: Return 0/1 on spell triggers not working correctly.
 +
Fixed: Function MOVENEAR not working correctly.
  
22-12-2010, MrSugarCube
+
23-07-2016, Coruja
- Fixed #1843: Connections sometimes remaining open long after the client has disconnected.
+
Fixed: Corpses being created without MORE2 set (last attacker UID) when the char die.
- Fixed #1848: Container contents slow to show when TooltipMode is set to 0.
+
Changed: Updated pick/drop sound on items/containers.
  
23-12-2010, MrSugarCube
+
01-08-2016, Coruja
- Fixed #1874: 7.0.0.0 - 7.0.8.2 clients freezing when using ARROWQUEST function.
+
Added: ADD function now supports a new 2nd arg to set the obj amount (eg: 'add i_bandage 10', 'add c_gargoyle 3', ...)
 +
Fixed: Items inside trade window not firing @DropOn_Item trigger when the trade move the item to player bacpkack.
 +
PS: Using return 1 here will not cancel the trade, this must be done directly on @TradeAccepted/@CharTradeAccepted triggers.
  
26-12-2010, ShiryuX
+
03-08-2016, Coruja
- Fixed #1729: NPC now teaches you if there's a skill to decrease and room for the new skill.
+
Changed: Max item capacity on containers changed from 255 to 125. This is required to make containers work properly on Enhanced Clients.
  In before, if you were near the skillcap, the npc just rejected your train request.
 
- Fixed #1873: Shop list tooltips are now being fully sent to the players.
 
  
26-12-2010, Coruja (Script pack)
+
05-08-2016, Coruja
- Updated #1876: sphere_item_deco_lightsources.scp and sphere_item_deco_furniture.scp
+
Fixed: Combat swing delay not getting updated immediately when the char switch weapons on hands.
  (changed typo in candelabra's defnames, was using candleabra instead)
 
  
28-12-2010, ShiryuX
+
07-08-2016, Coruja
- Fixed #1879: 'nightsight' function now sends light level update instead of full client update.
+
Fixed: ARGN1 on char trigger @SkillPreStart not working correctly.
  
28-12-2010, Coruja (Script pack)
+
10-08-2016, Coruja
- Updated #1877: sphere_item_deco_furniture.scp (fixed dupelist of items 0a2b and 0b5e)
+
[sphereCrypt.ini]: Added crypt keys for clients 7.0.51 and 7.0.52.
 +
[sphere_monsters.scp]: Added new TOL chardefs (Turanchula, Myrmidex Drone, Myrmidex Warrior, Myrmidex Queen, Dr. Spector, Golem Aztec).
  
02-01-2011, MrSugarCube
+
12-08-2016, Coruja
- Added: UseExtraBuffer setting to sphere.ini to enable an additional data buffer for outgoing
+
Fixed: SA+ clients showing corpses on wrong direction.
  network data.
+
Fixed: pre-SA clients showing wrong light pattern on light sources (candle, torch, etc).
- Fixed #1858: Linux build considering connections lost when a non-critical error occurs during
+
Fixed: Client war mode flag not being removed on death.
  data sending.
+
Fixed: Multi regions not reloading correctly after server resync.
  
02-01-2011, MrSugarCube (Script pack)
+
13-08-2016, Coruja
- Updated #1876: sphere_backward_compatibility.scp (Added backward compatibility defnames for
+
Fixed: Guards not working correctly.
  candelabras)
 
  
08-01-2011, MrSugarCube
+
19-08-2016, Coruja
- Added #1845: Support to automatically invalidate and resend tooltips when certain properties
+
Changed: Updated internal SQLite libs v3.13.0 to v3.14.1.
  change on items or characters, via new AUTOTOOLTIPRESEND setting. See Sphere.ini for
 
  available flags that can be used to control which properties are monitored. Note that some
 
  scripts won't trigger the tooltips to resend (for example the 0008 flag won't detect a script
 
  that sets MORE1 on armour, so a manual RESENDTOOLTIP would still be needed).
 
- Fixed: Possible delay between sending packets required to display buy/sell menus.
 
  
09-01-2011, ShiryuX
+
20-08-2016, Coruja
- Added #1881: TAT_AS_FULL trigger type to TRIGGER function to set ARGO, ARGN and ARGS.
+
Changed: Small improvements on tooltip engine.
  Example: TRIGGER @MyTest,<def.TAT_AS_FULL>,01,100,200,300,here,start,my,args
+
Added: Missing RESDISP/RESLEVEL 0 (pre-T2A). Default RESDISP/RESLEVEL value for new created objects is now 0 (pre-T2A) instead 1 (T2A).
          will call @MyTest with ARGO.UID=01, ARGN1=100, ARGN2=200, ARGN3=300
 
          and ARGS=here,start,my,args (this supports ARGV[].)
 
- Modified: Now sphere reads registry keys from lastest clients (no need to manually set them)
 
  
09-01-2011, ShiryuX (Script pack)
+
21-08-2016, Coruja
- Updated: sphere_defs.scp (added tat_as_full definition)
+
Fixed: Internal check to prevent drop items inside walls preventing the item drop even when the wall is on another floor.
 +
Fixed: Message "Too many items here!" not showing correctly when items are dropped on areas with too many items.
  
09-01-2011, MrSugarCube
+
22-08-2016, Coruja
- Fixed #1886: Exception caused by an infinite loop when AutoTooltipResend detects a property
+
Added: ISNEARTYPE function now supports an new 4th argument to only search objects on the same floor.
  value being changed from within an @ClientTooltip trigger. Now, AutoTooltipResend won't
+
-Syntax: ISNEARTYPE item_type, distance, check_multi, check_floor
  trigger another tooltip resend if a monitored property changes during the resend.
 
- Fixed #1814: AutoResendTooltip setting not working when an item property is changed just
 
  before it is placed in a container (e.g. when the item amount changes during stacking).
 
  
10-01-2011, MrSugarCube
+
26-08-2016, Coruja
- Added #1872: Support for setting SPEEDMODE to 4, as handled by newer clients. This can be
+
Changed: Some internal improvements on Tracking skill.
  used to prevent a player from moving. Movement checks have been adjusted accordingly so
+
[sphere_msgs.scp]: Updated messages 'tracking_*'.
  whilst older clients won't understand this speed mode, Sphere will still block their
 
  movement attempts (with a slight 'rubber banding' effect as you'd normally get when freezing
 
  a player by other means).
 
  
11-01-2011, MrSugarCube
+
27-08-2016, Coruja
- Fixed #1888: Exception caused by AutoTooltipResend attempting to send tooltips for deleted
+
Changed: Small improvements on container grid engine.
  items.
 
  
21-01-2011, MrSugarCube
+
31-08-2016, Coruja
- Fixed #1894: Explode function placing a comma at the beginning of the result.
+
Changed: Some improvements to make client login proccess more reliable.
  
21-01-2011, Coruja (Script pack)
+
02-09-2016, Coruja
- Updated #1893: sphere_map2.scp (Renamed "Shrine of the Virtues" to "Gargoyle Shrine", and
+
Fixed: Console error when an online account got deleted.
  "Gargoyle City" to "Vel Lor Reg").
+
Fixed: Function f_onchar_delete not being called correctly when the account get deleted.
 +
Fixed: Players with STATF_Stone flag set taking 1hr to disconnect (client linger time) after logout.
  
22-01-2011, MrSugarCube
+
03-09-2016, Coruja
- Fixed #1868: Memory leak when TooltipCache setting is disabled (thanks Torfo).
+
Fixed: NPCs not clearing fight action correctly when the current target get out of sight.
  
25-01-2011, MrSugarCube
+
05-09-2016, Coruja
- Fixed: Wage amount not being passed through to the 'npc_pet_wage_cost' defmessage.
+
Fixed: TimerCall setting on sphere.ini using wrong time format (hours instead minutes) to call f_onserver_timer function.
- Fixed: Spyglasses not searching properly for the nearest land tile.
+
[sphere.ini]: Removed unused FEATURE_KR_UPDATE_B feature flag.
- Fixed: Optimised UID allocation not working as expected or sometimes not functioning at all.
 
- Fixed: SuppressCapitals replaces unicode speech with blank text.
 
- Fixed: Possible exception when importing from a WSC file where item properties are listed
 
  in an unexpected order.
 
  
29-01-2011, MrSugarCube
+
06-09-2016, Coruja
- Fixed #1901: Some targeting items (bloody bandages, carpentry tools, cotton, lockpicks,
+
Added: Support for races on MALE_DEFAULT / FEMALE_DEFAULT starting items template.
  thread, yarn, wool) using 'itemuse_weapon_promt' defmessage as their prompt instead of
+
Fixed: Items getting equipped on invalid layer or unplaced on world when EQUIP / NEWITEM functions can't equip the item on char.
  'target_promt'.
+
-This also fixes new account characters being created with some starting items missing.
 +
[sphere_newb.scp]: Added gargoyle race templates.
  
11-02-2011, MrSugarCube
+
07-09-2016, Coruja
- Fixed #1909: Exception when using the "d ui" command against older tiledata sizes.
+
Changed: Temporarily disabled ATTACKER.x.IGNORE function and @HitIgnore trigger until we find a way to fix its broken functionality.
  
12-02-2011, MrSugarCube
+
14-09-2016, Coruja
- Fixed #1911: Ping history not decaying over time, causing an IP to be permanently blocked
+
Fixed: Rubberband effect when using @Step trigger with MOVE/GO function + return 1.
  when it exceeds the MAXPINGS setting.
+
Changed: return 1 now can be used on @[Item]DropOn_Ground trigger, it will cancel the drop and return the item to its previous location.
  
13-02-2011, MrSugarCube
+
16-09-2016, Coruja
- Modified #1912: Teleporting clients no longer receive unnecessary item packet for the smoke
+
Fixed: DAM/ARMOR properties going to 65535 when set any value > 255.
  effect they leave behind.
+
Fixed: NPCs not looking around anymore after start wandering action.
 +
[sphere_msgs.scp]: Updated messages 'skillact_*'.
  
17-02-2011, MrSugarCube
+
23-09-2016, Coruja
- Fixed: Client connections being blocked for connecting too often, even though they aren't.
+
Fixed: Items not going to backpack when dropped over backpack icon on char paperdoll.
  
19-02-2011, MrSugarCube
+
26-09-2016, Coruja
- Modified: Profiling statistics now include number of faults that occurred in each thread.
+
Fixed: HTTP server not working correctly.
 +
Fixed: Console error when deleting account characters.
 +
Fixed: Account character creation not coloring skirt on female characters.
 +
[sphere_msgs.scp]: Removed message 'msg_guildresign'.
  
22-02-2011, MrSugarCube
+
27-09-2016, Coruja
- Fixed #1821: Exception when talking to an NPC who is having a conversation with another
+
Changed: Updated internal SQLite libs v3.14.1 to v3.14.2.
  player.
 
  
12-03-2011, Khaos (Script pack)
+
05-10-2016, Coruja
- Added: Script support of all the new High Seas ship multis (sphere_item_multi_houses_ships.scp)
+
Fixed: Guards NPCs already placed on world not attacking criminal/murderer chars walking nearby.
  and parts (sphere_item_ship_parts_britannian.scp, sphere_item_ship_parts_gargish.scp,
+
Fixed: Potions creating cooldown memory (layer_flag_potionused) using wrong name.
  sphere_item_ship_parts_orcish.scp, sphere_item_ship_parts_tokuno.scp).
 
- Updated: Updated some of the axis cats in the sphere_item_multi_houses_ships.scp file.
 
- Updated:sphere_item_unsorted.scp with noname tiles that were with the ships. Possible
 
  ship component pieces.
 
- Updated: sphere_item_ship_parts_britannian.scp; added more parts.
 
  
13-03-2011, MrSugarCube
+
06-10-2016, Ares
- Fixed #1925: SKILLBEST.n not working correctly.
+
Changed: New Options for export to exclude own character (SRC) when performing export. The options are now:
- Fixed #1922: Exception caused by Sphere trying to send character position to a client
+
- 1: Only items
  before a character has been selected.
+
- 2: Only characters without own character.
 +
- 3: Items and characters without own character. [1+2]
 +
- (4: Include own Character. But this is meaningless without flag 2)
 +
- (5: Only items including own character makes no sense. ;-) )
 +
- 6: Only characters including own character. [2+4]
 +
- 7: Items and characters including own character. [1+2+4]
 +
Fixed: A rarely occuring bug when importing characters: Sometimes when characters are imported, there is a chance for identical items at same place (in backpack), which are deleted. This shouldn't happen anymore.
 +
Fixed: Importing items with same BASEID and different DISPID at the same place in world removes one of the items unexpectedly. This is especially the case for WSC imports, where same DISPIDs of the same BASEID are is almost always intended. (For example when a part of the static is in game for a while, or migrated between CentrED and a Building-Sphere-Server) The fix is: Such items are not deleted anymore, only when the dispid (and other stuff) matches as well.
  
13-03-2011, Coruja (Script pack)
+
08-10-2016, Ares
- Updated #1893: sphere_map2.scp (Add guarded and global flags to Ver Lor
+
Fixed: Critical Bug in background save mechanism where an unsaved offline player character disappears from worldsave when moved to an already saved sector.
  Reg).
 
  
13-03-2011, Khaos
+
17-10-2016, Coruja
- Fixed: Advanced Line of Sight. Couldn't shoot or cast with any intervening
+
Fixed: NPCs losing 'statf_spawned' flag after server restart.
  water files.
+
Fixed: Nightsight buff icon not being enabled/disabled when using NIGHTSIGHT function or changing 'statf_nightsight' char flag.
- Added #1916: sphere.ini now contains "DefaultCommandLevel". It takes a level
+
Changed: Updated internal SQLite libs v3.14.2 to v3.15.0.
  of 0 - 7 (# corresponds to plevel). Default is 7. Whatever you set the value
 
  to will be the min plevel for a char to use all commands not in a [plevel xxx].
 
  
13-03-2011, Khaos (Script pack)
+
06-11-2016, Coruja
- Updated: sphere_defs.scp (added los_nc_water to los flags section. If you use
+
Changed: Updated internal SQLite libs v3.15.0 to v3.15.1.
  with CANSEELOSFLAG, it will stop LOS across water (i.e. Firing from a ship to
+
[sphere_item_char_icons.scp]: Added char icons for Tarantula, Dr. Spector, Tyrannosaurus Rex, Unicorn (Rainbow)
  another ship)).
+
[sphere_item_unsorted.scp]: Added ITEMDEF for TOL christmas giftbox (i_giftbox_christmas)
 +
[sphere_monsters.scp]: Updated some TOL chardefs
 +
[sphere_map0_ml.scp]: Added TOL regions
 +
[sphere_map5.scp]: Moved a_valley_of_eodon, a_shadowguard to sphere_map0_ml.scp
 +
[sphere_defs.scp]: Added mount memory for Ancient Hellhound, Tarantula, Unicorn (Rainbow)
 +
[sphereCrypt.ini]: Added crypt key for classic client 7.0.53 and enhanced clients 4.0.33 ~ 4.0.53
  
21-03-2011, MrSugarCube
+
12-11-2016, Coruja
- Added: Support for packet changes found in client 7.0.13.0.
+
Fixed: Resurrect, Reveal, Meteor Swarm and Lightning spells showing effect animation even when EFFECT_ID=0 is set
 +
[sphereCrypt.ini]: Added crypt key for classic clients 7.0.54 ~ 7.0.55 and enhanced clients 4.0.54 ~ 4.0.55
 +
[sphere_map0.scp]: Added missing 'region_flag_guarded' on a_townOcclo
 +
[sphere_map1.scp]: Added missing 'region_flag_guarded' on a_old_haven_town and a_new_haven_town
  
07-04-2011, MrSugarCube
+
27-11-2016, Coruja
- Fixed #1935: Exception when using "d a" command on Linux build.
+
Fixed: Console error related to client internal chat engine when some clients connect on server
- Fixed #1940: Exception on Windows build when an invalid format string is passed
+
Fixed: Worldsave not saving DAM/ARMOR properties set manually on chars/items already placed on world
  to RTIME.FORMAT.
+
-NOTE: Changing DAM/ARMOR directly on ITEMDEF/CHARDEF scripts won't update all objects already created anymore, because Sphere will now read DAM/ARMOR values from save files instead read from scripts.
 +
To update DAM/ARMOR on objects already created, it will be needed an function like FORINSTANCES to loop through all objects where the value must be updated
 +
Added: Support for items health bar on HS clients >= 7.0.30.0
 +
[sphere_defs.scp]: Added new CAN flag 'can_i_damageable' to enable health bar on items (MORE1L = cur hitpoints / MORE1H = max hitpoints)
  
09-04-2011, MrSugarCube
+
30-11-2016, Coruja
- Modified #1941: Custom houses (t_multi_custom) display as worldgem pieces in
+
Fixed: Server crash when custom clients connect using invalid client version.
  debug mode.
+
Fixed: Ghost mode not setting desolated season on clients.
 +
Changed: Small changes on some console messages to make them standard and provide more relevant data.
 +
Changed: Updated internal SQLite libs v3.15.1 to v3.15.2.
  
11-04-2011, MrSugarCube
+
09-12-2016, Coruja
- Fixed #1942: Exception when using MD5HASH with certain lengths of text.
+
Changed: Sphere can now startup properly without save files instead return "FATAL: missing save files" and close the server. This can make Sphere setup easier for new users.
 +
Changed: Merged TNGSTRIP, STRIP AXIS, STRIP TNG console commands into a single STRIP command.
  
23-04-2011, MrSugarCube
+
17-12-2016, Coruja
- Fixed #1919: Exception when a client sends an incomplete handshake packet.
+
Fixed: Stealing skill not working correctly.
 +
Changed: Users doesn't have to write AGREE=1 on sphere.ini to use nightly builds anymore. Sphere 56d nightlies are really stable and bug-free so it's safe to use on live servers.
  
10-05-2011, MrSugarCube
+
21-12-2016, Coruja
- Fixed: Exception when trying to set REGENx and 'x' is an invalid stat id.
+
Changed: Updated functionality of all polymorph-like spells (Polymorph, Horrific Beast, Lich Form, Vampiric Embrace, Wraith Form, Reaper Form, Stone Form)
 +
Fixed: Mass Curse spell not working correctly.
  
12-05-2011, MrSugarCube
+
22-12-2016, Coruja
- Modified #1954: Unplaced object details are now listed during garbage
+
Added: Missing buff icon for Criminal flag.
  collection, under code 3202.
+
Fixed: Enhanced clients not able to login on accounts with no created chars.
 +
Changed: Improved console startup messages to provide more user-friendly information.
 +
[sphere_defs.scp]: Updated DEFs 'passive_buff_icons', 'debuff_icons', 'buff_icons', 'buff_clilocs'
 +
[sphere_admin.scp]: Dialog 'd_sphereplayertweak' now show the client type (classic/enhanced) being used
 +
[sphere_monsters.scp]: Updated some chardefs (Turkey, Giant Turkey, Tyrannosaurus Rex)
  
12-05-2011, MrSugarCube (Script pack)
+
24-12-2016, Coruja
- Updated: sphere_map_points4.scp (Corrected z-level of the moongate locations)
+
Added: Support for character face style on enhanced clients. It works like hairs/beards, just create the item and equip it on character.
 +
[sphere_item_profession_barber.scp]: Added character face styles ITEMDEFs
 +
[sphere.ini]: Added new FEATURE_EXTRA_ROLEPLAYFACES feature to enable extra roleplay face styles on character creation
 +
[sphere_defs.scp]: Renamed layer 'layer_light' to 'layer_face'
 +
[sphere_newb.scp]: Fixed wrong ITEMDEF on elf templates (i_leaf_tunic -> i_leaf_chest)
  
17-05-2011, MrSugarCube
+
28-12-2016, Coruja
- Added: FeatureExtra setting to sphere.ini with flags to enable new gothic
+
Removed: Support for CHARLIST function on enhanced clients, they don't have support for this packet anymore, so disabling it will prevent client crash.
  and rustic themed items in the house designer.
 
  
18-05-2011, MrSugarCube
+
05-01-2017, Coruja
- Fixed #1958: Unable to pass variables as arguments to FORCHARLAYER and
+
Changed: Updated internal SQLite libs v3.15.2 to v3.16.1.
  FORCHARMEMORYTYPE loops.
+
Changed: Item i_light_source (function EQUIPHALO) now will be equipped on layer_hand2 (2) instead layer_face (15), which previously was an unused layer but now is used by character faces on enhanced clients.
- Fixed #1959: Possible exception when Sphere tries to load verdata.mul file.
+
[sphere_item_unsorted.scp]: Updated LAYER value on i_dark_source / i_light_source
 +
[sphere_spells.scp]: Fixed Blade Spirits spell using wrong RUNES value
 +
[sphere_newb.scp]: Fixed typo i_sword_dream -> i_sword_dread
  
09-06-2011, MrSugarCube
+
07-01-2017, Coruja
- Fixed #1969: Timer being set to abnormally high values when attempting skills.
+
[sphere_map*.scp]: Reworked all maps files moving regions/teleports to new files based on map/expansion, and also added many missing SE/ML/SA/TOL info.
- Fixed #1967: Comments in sphereaccu.scp using the wrong slash direction.
+
[spheretables.scp]: Updated RESOURCES list with the new map files.
- Fixed: Backspace key not working in the Linux build's console.
 
- Modified: Console output on Linux build will automatically have colour enabled
 
  for certain terminal types that support colour codes.
 
  
09-06-2011, babidi (Script pack)
+
08-01-2017, Coruja
- Updated #1970: sphere_map_points0.scp (Fixed start locations all using coordinates
+
Changed: Updated internal Libev libs v4.22 to v4.24.
  for Britain)
+
Changed: Updated internal Zlib libs v1.2.8 to v1.2.10.
 +
Fixed: Function 'CRIMINAL 0' not updating char notoriety/buff when removing criminal flag.
  
12-06-2011, MrSugarCube
+
12-01-2017, Coruja
- Fixed #1955: Exception when DB.QUERY/EXECUTE is used whilst a previous
+
Fixed: Char death counting kill/fame/karma gain for killers that started the attack but don't have caused any damage yet.
  DB.AQUERY/AEXECUTE operation is still running in the background.
+
Fixed: FeatureSE setting on sphere.ini not working correctly.
 +
Changed: Guild function ISALLY won't consider guild alignment on alliances anymore.
 +
[sphere_genericstone_functions.scp]: Updated f_stonesys_internal_isalliedwith function
  
18-06-2011, MrSugarCube
+
15-01-2017, Coruja
- Fixed #1980: Unable to handle @Rename trigger at character creation using EventsPlayer.
+
Changed: Updated internal MySQL libs v6.1.6 to v6.1.9.
- Fixed #1977: New player characters starting at the wrong location.
+
-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.
- Fixed: Possible exception when a character doesn't have enough strength to equip an item.
 
  
18-06-2011, babidi (Script pack)
+
17-01-2017, Coruja
- Updated #1975: sphere_map0.scp, sphere_map0_ml.scp, sphere_map1.scp, sphere_map2.scp,
+
Fixed: Functions SYSMESSAGELOC / SYSMESSAGELOCEX using wrong default color.
  sphere_map4.scp (Updated region flags to use defnames)
+
[sphere_item_magic_skillmasteries.scp]: Added new file with basic i_spellbook_mastery functionality
 +
[sphere_item_unsorted.scp]: Removed i_spellbook_bard (Bard Masteries is now Skill Masteries)
 +
[sphere_defs.scp]: Renamed typedef 't_spellbook_bard' to 't_spellbook_mastery'
  
18-06-2011, Coruja (Script pack)
+
20-01-2017, Coruja
- Updated #1966: sphere_map2.scp (Added region flags to a_lbr)
+
Added: New function MAPWAYPOINT to add/remove waypoints on client radar map (enhanced clients only).
 +
Sintax: MAPWAYPOINT ObjectUID, WaypointType
 +
Waypoint types:
 +
0 = Remove waypoint
 +
1 = Corpse
 +
2 = Party Member
 +
4 = Quest Giver
 +
5 = New Player Quest
 +
6 = Healer
 +
11 = Shrine
 +
12 = Moongate
 +
14 = Green Dot
 +
15 = Green Dot (flashing)
  
18-06-2011, MrSugarCube (Script pack)
+
25-01-2017, Coruja
- Updated #1983: spherechar_sa.scp (Fixed female gargoyles not having MT_FEMALE set)
+
Fixed: Client encryption not being decrypted correctly on login process.
 +
[sphereCrypt.ini]: Added crypt key for classic client 7.0.56 and enhanced client 4.0.56
 +
[sphere_defs.scp]: Renamed 'bufficon_SavingThrow' to 'bufficon_WarriorsGifts' and added new 'mapwaypoint_types' defs
 +
[sphere_map*.scp]: Updated some few regions and teleports (note: added new file 'sphere_map_points0_hs.scp' and removed 'sphere_map0_tol.scp')
 +
[spheretables.scp]: Updated RESOURCES list with the new map files
  
19-06-2011, MrSugarCube
+
26-01-2017, Coruja
- Fixed #1976: Aggressor memories being removed when leaving war mode.
+
[sphere_monsters.scp]: Renamed char 'c_unicorn_rainbow' to 'c_lasher'. Updated 'c_skree', 'c_dragon_turtle_hatchling', 'c_myrmidex_queen'. Added new 'c_palomino', 'c_windrunner'
- Fixed #1965: SKF_IMMOBILE causing clients to become unable to move if skill is used too
+
[sphere_item_char_icons.scp]: Renamed item 'i_pet_unicorn_rainbow' to 'i_pet_lasher' and added new 'i_pet_myrmidex_queen', 'i_pet_palomino', 'i_pet_windrunner'
  often.
+
[sphere_defs.scp]: Added mount defs for new TOL mounts Palomino and Windrunner
  
20-06-2011, MrSugarCube
+
29-01-2017, Coruja
- Fixed #1956: Region's @Enter trigger firing when a creature is summoned, before the
+
[sphere_item_building_doors.scp]: Added Jungle / Shadowguard doors
  creature's @Create trigger fires.
+
[sphere_item_building_roofs.scp]: Added Jungle / Shadowguard roofs
 +
[sphere_item_building_walls.scp]: Added Jungle / Shadowguard walls
 +
[sphere_item_building_floors.scp]: Added Jungle / Shadowguard floors
 +
[sphere_item_building_stairs.scp]: Added Jungle / Shadowguard stairs
  
21-06-2011, MrSugarCube
+
30-01-2017, Coruja
- Fixed #1986: Exception when evaluating intelligence skill is used and either one of the
+
Fixed: HS/TOL items not showing correctly on client screen.
  magery or necromancy SKILL sections don't exist.
+
Fixed: ML/SA/HS/TOL doors not working correctly.
 +
[sphere.ini]: Fixed wrong SpeedScaleFactor default value and changed NPCNoFameTitle to be enabled by default
  
01-07-2011, ShiryuX
+
07-02-2017, Coruja
- Fixed #1981: Now you will be able to cast spells with 'spellflag_field' flag on chars  
+
Fixed: Char flag 'statf_hovering' (gargoyle fly ability) not clearing when gargoyle chars polymorph into non-gargoyle char ID.
  if 'spellflag_targ_char' is enabled.
+
Fixed: Hidden/Invisible chars not getting revealed when being stumbled.
 +
Changed: Updated internal Zlib libs v1.2.10 to v1.2.11.
  
02-07-2011, MrSugarCube
+
09-02-2017, Coruja
- Added: 'NetworkThreads' and 'NetworkThreadPriority' settings to Sphere.ini. These can be
+
Changed: Small fixes and improvements on vendor buy/sell engine.
  used to enable client connections to be handled by separate threads. The NETWORKTHREADS
+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.57 and enhanced client 4.0.57
  setting controls how many threads should be used to handle networking (setting this to 0
+
[sphere_item_wedding.scp]: Added new wedding items from latest UO patch (publish 96 / client 7.0.57)
  will cause networking to be handled in the main thread, like before). NETWORKTHREADPRIORITY
+
[multis_magincia_bazaar.scp]: Updated all stalls to use proper multis instead standalone items
  can be used to control the priority of the networking threads (the default value of 255
 
  should be the best option to use).
 
  The EF_NetworkOutThread experimental flag has been removed.
 
  
08-07-2011, MrSugarCube
+
10-02-2017, Coruja
- Fixed #1991: Custom packet handling functions causing clients to freeze.
+
Fixed: Function SHRINK not working correctly.
 +
[sphere_monsters.scp]: Added missing data on some monsters
 +
[sphere_defs.scp]: Updated 'color_*' defs, added new sound def 'snd_monster_wildtiger'
 +
[sphere_item_resources.scp]: Added new resources 'Tiger Pelt' (found on Wild Tiger) and 'Dragon Scute' (found on Dragon Turtle)
 +
[sphere_item_profession_tailor_tanner.scp / sphere_item_profession_cook_barkeep_baker.scp]: Removed some obsolete code
 +
[sphere_item_animations.scp / sphere_item_unsorted.scp]: Changed all t_telepad items to be created using MOREP=-1,-1 instead MOREP=0,0 by default (this will prevent misconfigured t_telepad items teleporting to wrong coord 0,0)
  
21-07-2011, ShiryuX
+
13-02-2017, Coruja
- Added #1963: OF_DClickNoTurn, if enabled players won't turn when dclick or target an item.
+
Changed: Spellbooks now store spell offset / max spells using TDATA3/TDATA4 instead MOREZ/MOREX. This will optimize worldsave files, because TDATA* can be used directly from itemdef script and doesn't need to be saved on worldfiles.
 +
-IMPORTANT: It's HIGHLY recommended update these scripts above, otherwise spellbooks will stop working.
 +
[sphere_item_magic_magery.scp]: Updated i_spellbook
 +
[sphere_item_magic_necromancer_aos.scp]: Updated i_spellbook_necromancy
 +
[sphere_item_magic_chivalry.scp]: Updated i_spellbook_chivalry
 +
[sphere_item_magic_ninjitsu_bushido.scp]: Updated i_spellbook_bushido, i_spellbook_ninjitsu
 +
[sphere_item_magic_spellweaving.scp]: Updated i_spellbook_spellweaving
 +
[sphere_item_magic_mysticism.scp]: Updated i_spellbook_mystic
 +
[sphere_item_magic_skillmasteries.scp]: Updated i_spellbook_mastery
  
31-07-2011, MrSugarCube
+
14-02-2017, Coruja
- Fixed #1998: @Destroy not firing on player characters or their items, when deleted via the
+
Fixed: Combat Hit Chance formulas incorrectly assuming that defender is always using the same combat skill as the attacker.
  character selection screen or their account is deleted.
 
- Fixed #1997: "World save has been initiated" messages not being sent until after the save
 
  completes, when NetworkThreads is set to 0.
 
  
02-08-2011, ShiryuX
+
15-02-2017, Coruja
- Modified #2011: Enabled spells with SPELLFLAG_SCRIPTED to use LOCAL.CREATEOBJECT1,
+
Fixed: Functions ATTACK / ATTACKER.ADD not working correctly on NPCs.
  LOCAL.CREATEOBJECT2, LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE for spells with SPELLFLAG_FIELD
+
Fixed: Enhanced clients not updating backpack content on death.
  or with SPELLFLAG_SUMMON. If width/gauge is not set, default is 7/1.
+
Added: Enhanced clients now will show an map waypoint of player own corpse when it die.
 +
Added: Better LOS support for bigger screen resolutions of TOL clients 7.0.55.27+ that uses char VISUALRANGE > 18.
 +
[sphere.ini]: Removed 'DistanceTalk' setting, it's no longer needed because talk distance is now set automatically based on char VISUALRANGE.
  
02-08-2011, ShiryuX (Script pack)
+
20-02-2017, Coruja
- Updated: sphere_defs.scp (A few more buff icons in the buff_icons defname)
+
[sphere_item_ship_parts.scp]: Added missing i_mt_* mount defnames
 +
[sphere_item_building_other.scp]: Fixed Winch using wrong animation list
  
05-08-2011, ShiryuX
+
26-02-2017, Coruja
- Fixed #2008: RANGEH now displays the longest range and RANGEL the shortest (High/Low)
+
Added: Support to map waypoints of party members on enhanced clients.
 +
Fixed: Linked doors not opening at the same time on DClick.
  
27-08-2011, ShiryuX
+
28-02-2017, Coruja
- Added #2020: CUOSTATUS and UOGSTATUS, which enable/disable the response to UOGateway/ConnectUO
+
Changed: Optimized and added new security checks on account character creation to block the character creation if the client try to exploit it sending fake packets.
              Default for both is: 1 (see sphere.ini also)
 
- Added: SPELLFLAG_AREA to create custom area spells (you must use SPELLFLAG_SCRIPTED).
 
- Added: LOCAL.AREARADIUS, which let you change the radius of the hardcoded area spells
 
        and let you set the radius of scripted skills (if not set, default is 4).
 
Example:
 
[SPELL s_new_spell]
 
FLAGS=SPELLFLAG_SCRIPTED|SPELLFLAG_AREA|SPELLFLAG_TARG_XYZ
 
....
 
ON=@SUCCESS
 
LOCAL.AREARADIUS = 5
 
- Added: Function 'attacker.clear' to clear the attackers. Use it with caution.
 
  
27-08-2011, ShiryuX (Script pack)
+
12-03-2017, Coruja
- Updated: sphere_defs.scp (added new spellflag definition)
+
Added: Basic internal packet filters that will make Sphere avoid crash or consume excessive resources when under DDoS attack.
 +
Changed: Updated internal SQLite libs v3.16.1 to v3.17.0.
  
31-08-2011, ShiryuX
+
14-03-2017, Coruja
- Fixed #2023: Now you can use custom items on LOCAL.CREATEOBJECT1/2 with SPELLFLAG_FIELD.
+
Fixed: NPCs AI interacting with items out of range (eg: loot unreachable corpses, open doors on different floors, etc).
 +
Fixed: Skill triggers not reading ARGN1 (skill number) correctly.
  
01-09-2011, ShiryuX
+
19-03-2017, Coruja
- Added #2021: Settings to edit default color and font for SysMessage/Message/Click.
+
Fixed: Swing Speed calculation making combat stop suddenly when swing speed < attack anim speed.
  Don't forget to update your scripts. Settings are included in sphere_msgs.scp
+
Fixed: NPC_AI_LOOTING not working correctly.
 +
Fixed: NPCs not clearing 'statf_war' char flag at combat end.
 +
Fixed: NPCs not running away from threats like fire/fields/traps after step on them.
 +
Fixed: NPCs trying to attack his target even when the target is out of sight.
  
01-09-2011, ShiryuX (Script pack)
+
20-03-2017, Coruja
- Updated: sphere_msgs.scp (added SMSG_DEF_COLOR, SMSG_DEF_FONT, MSG_DEF_COLOR, MSG_DEF_FONT
+
Fixed: Message 'World save completed in X seconds' not showing correct timing precision on Linux builds.
            IMSG_DEF_COLOR and IMSG_DEF_FONT settings)
 
  
02-09-2011, ShiryuX
+
22-03-2017, Coruja
- Fixed #2025: Removed any kind of internal effect for spells with SPELLFLAG_SCRIPTED.
+
Changed: Small improvements on EF_FastWalkPrevention experimental feature.
  Since it's supposed to have a scripted effect!
 
- Modified: SPELLFLAG_FX_BOLT to work with SPELLFLAG_SCRIPTED.  It will fire a bolt from
 
            caster to target. If SPELLFLAG_GOOD is used the effect won't explode.
 
            ID of the effect is 'EFFECT_ID' spell's property.
 
  
02-09-2011, ShiryuX (Script pack)
+
01-04-2017, Coruja
- Fixed #2006: sphere_spells.scp (commented out RUNES for Mysticism spells & changed Discordance)
+
Changed: Updated internal SQLite libs v3.17.0 to v3.18.0.
 +
[sphereCrypt.ini]: Added crypt key for classic client 7.0.58 and enhanced client 4.0.58
  
03-09-2011, ShiryuX
+
12-04-2017, Coruja
- Fixed #2027: Wrong internal clilocs for Cunning and Agility Buffs.
+
[sphere_map*.scp]: Updated some regions and teleports
- Added: Buff for Gargoyle Fly ability.
+
[sphere_defs.scp]: Added sound def 'snd_animal_llama1' and buff/debuff defs for Sparks, Swarm and Bone Breaker
- Fixed: LOGARITHM(), TAN, SIN and COS function were returning wrong values.
+
[sphere_item_char_icons.scp]: Added new char icons from publish 97
 +
[sphere_serv_triggers.scp]: Added missing function 'f_onserver_timer' and updated description of all others functions
 +
[sphere_monsters.scp / sphere_events_human.scp]: Fixed missing ENDDO line making sphere crash on infinite loop
 +
-IMPORTANT: It's HIGHLY recommended update these scripts above to prevent server crash.
  
03-09-2011, ShiryuX (Script pack)
+
16-04-2017, Coruja
- Modified: sphere_defs.scp (added buff clilocs for gargoyle fly)
+
Fixed: Poisoning spell not working correctly.
 +
Fixed: Poisoning effect causing damage on items equipped on char.
  
03-09-2011, Coruja (Script pack)
+
19-04-2017, Coruja
- Updated #2028: sphere_item_misc_se.scp (wrong DUPELIST for 02417)
+
Changed: Huge improvements on internal chat system, now it works fine on both SA (new chat system) and pre-SA (old chat system) clients.
  
13-03-2012, Coruja (Script pack)
+
21-04-2017, Coruja
- Updated #2056: sphere_map0.scp (fixed despise and covetous levels)
+
Fixed: Tooltip "(tame)" not being updated correctly when pets got tamed/released.
 +
Changed: Mount memories now can have their own i_mt_* ITEMDEFs instead use DEFNAME=i_mt_* directly on base items (usually 'boat parts').
 +
Changed: Small improvements on gargoyle fly ability.
 +
Changed: Function WEBLINK now will show an message telling the web browser is starting.
 +
[sphere_msgs.scp]: Added new messages 'gargoyle_fly_cantcurrentform', 'gargoyle_fly_cantdead', 'web_browser_start'
 +
[sphere_defs.scp]: Updated 'mount_items' section to use the new mount memories format (i_mt_* DEFNAME instead hex BASEID)
 +
[items/sphere_item_ship_parts.scp]: Removed all i_mt_* mount memories DEFNAME from boat items to make these items be considered only boat items
 +
[items/sphere_item_memories.scp]: Added all updated i_mt_* mount memories here
 +
-IMPORTANT: It's HIGHLY recommended update these scripts above to prevent conflicts between mount memories and boat items.
  
20-03-2012, Coruja (Script pack)
+
01-05-2017, Coruja
- Updated #2057: sphere_map2.scp (fixed ilshenar regions)
+
[items/sphere_item_char_icons.scp]: Fixed Crimson/Platinum/Stygian Dragon icons using wrong defname
 +
[items/sphere_item_deco_carvings_statues.scp]: Added swan statues
 +
[items/sphere_item_deco_furniture.scp]: Added vice/virtue pillows
 +
[items/sphere_item_deco_wall_hangings.scp]: Added TOL trophies/banners/paintings
 +
[items/sphere_item_provisions_jewelry.scp]: Added craftsman talismans
 +
[items/sphere_item_provisions_misc.scp]: Added fletching/woodworking containers
 +
[items/sphere_item_unsorted.scp]: Added new easter eggs (2017)
 +
[items/sphere_item_wedding.scp]: Added missing tables
 +
[maps/sphere_map_points5.scp]: Fixed teleport 'tp_StygianDragonsLair1_Teleport7' using wrong P
 +
[speech/job*]: Removed many job*.scp unused speech files
 +
[npcs/sphere_monsters.scp]: Updated status of many chardefs
 +
[npcs/sphere_citizens.scp]: Removed unused speeches from NPCs
 +
[npcs/sphere_guildmasters.scp]: Removed unused speeches from NPCs
 +
[npcs/sphere_vendors.scp]: Removed unused speeches from NPCs
 +
[npcs/spherechar_evil.scp]: Removed unused speeches from NPCs
 +
[npcs/spherechar_human]: Removed unused speeches from NPCs
 +
[sphere_defs.scp]: Added new sound def 'sound_monster_shadows'
  
23-03-2012, ShiryuX
+
06-05-2017, Coruja
- Added: 'AttackerTimeout' modifies how long a NPC can remember a player since his last attack,
+
[items/sphere_item_magic_armor.scp]: Removed RESOURCES from all items
        that a NPC forgets his attacker. You can play with this and attacker.#.ELAPSED.
+
[items/sphere_item_magic_leather.scp]: Removed RESOURCES from all items
        See sphere.ini. Default value is 300 (5 minutes).
+
[sphere_skillmenu.scp]: Removed Sphere custom menu 'sm_magic_armor', 'sm_magic_defense_armor', 'sm_magic_guarding_armor', 'sm_magic_hardening_armor', 'sm_magic_fortification_armor', 'sm_magic_invulnerability_armor', 'sm_leather_armor_magic', 'sm_leather_studded_magic'
- Fixed #2034: Disabled timeout check for TELNET connections.
+
[sphere_template_magic.scp]: Updated TEMPLATE 'random_magic_custom_greater'
- Fixed #2050: Now if you set BankMaxWeight/Items to something less than 0
 
              will avoid the weight/item amount check.
 
  
26-03-2012, RanXerox
+
07-05-2017, Coruja
- Updated #2036: sphere_map0.scp, sphere_map3.scp, sphere_map4.scp (added some missing locations)
+
[npcs/sphere_vendors.scp]: Updated CHARDEFs 'c_beekeeper', 'c_beekeeper_f', 'c_scribe', 'c_scribe_f'
 +
[sphere_menu.scp]: Updated menu 'm_addi_weparm_vanq'
 +
[sphere_skillmenu.scp]: Updated skillmenu 'sm_bowcraft', 'sm_wood_misc', 'sm_jewelry', and removed 'sm_bows_excep'
 +
[sphere_template_misc.scp]: Updated template 'random_item_misc_rare'
 +
[sphere_template_vend.scp]: Updated vendor template 'vendor_s_tavernkeeper', 'vendor_b_tavernkeeper', 'vendor_s_mage_1st'
  
26-03-2012, MrSugarCube
+
08-05-2017, Coruja
- Modified #2040: MT_EQUIP, MT_USEHANDS and MT_MOUNT flags are respected when a character's body
+
[items/sphere_item_artifacts.scp]: Updated all artifacts info
  changes. Characters won't be dismount or have their items unequipped if the new body has the
+
[items/sphere_item_artifacts_minor.scp]: Updated all artifacts info
  relevant flags.
+
[items/sphere_item_artifacts_tokuno.scp]: Updated all artifacts info
  
27-03-2012, MrSugarCube
+
12-05-2017, Coruja
- Added: Support for reading map data from mapXLegacyMUL.uop files found in client 7.0.24.0
+
Changed: Updated internal MySQL libs v6.1.9 to v6.1.10.
  onwards. Sphere looks for the old mapX.mul file(s) first and will continue to use these if
+
-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.
  both file formats exist alongside each other.
 
  
31-03-2012, ShiryuX
+
14-05-2017, Coruja
- Fixed #2052: Players trying to move during a resync pause caused exceptions on console.
+
[items/sphere_item_building_roofs.scp]: Removed RESOURCES of non-crafted items
 +
[items/sphere_item_building_walls.scp]: Removed RESOURCES of non-crafted items
 +
[items/sphere_item_buildings.scp]: Removed RESOURCES of non-crafted items
 +
[items/sphere_item_deco_carpet_rugs.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_deco_carvings_statues.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_deco_dungeons_traps_dead.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_deco_furniture.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_deco_wall_hangings.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_profession.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_profession_alchemist.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_provisions_jewelry.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_unsorted.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
 +
[items/sphere_item_vegetation.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
  
24-04-2012, MrSugarCube
+
16-05-2017, Coruja
- Fixed: Unable to double click console in Windows to open scripts when forward slashes are used
+
[items/sphere_item_artifacts.scp]: Updated ID of itemdef 'i_yomotsu_mines_tower_lantern'
  in script paths.
+
[items/sphere_item_deco_furniture.scp]: Added new items 'i_bar_marble'
 +
[items/sphere_item_deco_lightsources.scp]: Updated RESOURCES/SKILLMAKE of many items and renamed all generic defnames 'i_lantern_paper*' (1, 2, 3, ...) to correct lantern names
 +
[items/sphere_item_deco_signs.scp]: Added new items 'i_sign_customizable' and 'i_sign_bar'
 +
[items/sphere_item_magic_weapon.scp]: Removed all custom weapons
 +
[items/sphere_item_misc.scp]: Removed all custom resources
 +
[items/sphere_item_profession.scp]: Removed all custom items
 +
[items/sphere_item_profession_barber.scp]: Updated RESOURCES/SKILLMAKE of item 'i_scissors_barber' and removed custom item 'i_hair_dyes'
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Removed custom resources and updated RESOURCES/SKILLMAKE of many items
 +
[items/sphere_item_provisions_armor.scp]: Removed RESOURCES/SKILLMAKE and armor properties of decorative armors that can't be crafted and weared
 +
[items/sphere_item_provisions_clothing.scp]: Removed custom item 'i_hat_wizards_magic' and updated RESOURCES/SKILLMAKE of many items
 +
[items/sphere_item_provisions_deed.scp]: Removed RESOURCES of non-crafted deeds
 +
[items/sphere_item_provisions_misc.scp]: Removed RESOURCES of item 'i_bedroll_open'
 +
[items/sphere_item_provisions_weapons.scp]: Updated RESOURCES/SKILLMAKE of many weapons
 +
[items/sphere_item_resources.scp]: Removed all custom resources
 +
[sphere_backward_compatibility.scp]: Added backward compatibility defs for Bonsai and Paper Lantern items
 +
[sphere_template_misc.scp]: Removed unused items and templates
  
25-07-2012, ShiryuX
+
21-05-2017, Coruja
- Added: SPELLFLAG_TARG_DEAD so you can create spells for dead people.
+
[items/sphere_item_deco_furniture.scp]: Fixed item 'i_chest_kings_collection' using wrong ID
- Added: SPELLFLAG_DAMAGE for damage spells, along with HARM effect.
+
[items/sphere_item_profession.scp]: Updated item 'i_book_giant' to 'i_unabridged_atlas_eodon' and added its dialog 'd_unabridged_atlas_eodon'
        You can override the Damage Type under @(Spell)Effect with LOCAL.DamageType.
+
[items/sphere_item_unsorted.scp]: Updated item 'i_chest_gothic' to 'i_chest_sending'
- Added: MAGICF_NOANIM so you can disable animation/direction update of the character in every spell.
+
[items/sphere_item_vegetation.scp]: Updated item 'i_bonsai_tree' to 'i_bonsai_ancient_oak'
- Modified: SPELLFLAG_SCRIPTED changes behavoir and allows to mixed with other flags.
+
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list
- Modified: SPELLFLAG_FX_BOLT will totally work now. EFFECT_ID can be overrided with LOCAL.CreateObject1.
+
[sphere_template.scp]: Fixed wrong itemdefs on def 'random_other_food'
- Modified: SPELLFLAG_AREA can be used and altered. If no specified radius, default is 4.
 
            The effect of course, if it's a custom spell, must be scripted.
 
- Modified: Spell Summon Creature can be overrided with LOCAL.CreateObject1.
 
- Modified: Limit for ANIM function, so you can play the new Gargoyle Anims now.
 
- Fixed: Can modify Flamestrike EFFECT_ID now.
 
- Fixed: WOPPlayer to 0 overrided the EquippedCast check and players could cast while equipped.
 
  
25-07-2012, ShiryuX
+
22-05-2017, Coruja
- Updated: sphere_spells.scp, sphere_defs.scp with the new spells changes
+
[items/multis/multis_foundations.scp]: Updated code syntax
 +
[items/multis/multis_houses.scp]: Updated code syntax
 +
[items/multis/multis_misc.scp]: Updated code syntax
 +
[items/multis/multis_ships.scp]: Updated code syntax
 +
[items/multis/multis_stairs.scp]: Updated code syntax
 +
[items/multis/multis_wandering_camps.scp]: Updated code syntax
  
25-07-2012, Coruja (script pack)
+
24-05-2017, Coruja
- Updated #2069: sphere_map_points3.scp (added missing teleports in Doom)
+
[items/sphere_item_char_icons.scp]: Added new icon 'i_pet_kotl_automaton'
 +
[items/sphere_item_deco_wall_hangings.scp]: Removed items 'i_tapestry_elven_3' and 'i_tapestry_map_eodon' (these items got moved to the script above using correct defname)
 +
[items/sphere_item_profession_cartographer.scp]: Added items 'i_tattered_wall_map', 'i_wall_map_eodon', renamed 'i_map' to 'i_map_blank', and removed all custom map items
 +
[npcs/sphere_monsters.scp]: Updated some chardefs (Gallusaurus, Kotl Automaton, Lasher, Palomino, Windrunner) and added new publish 97 monsters (Triceratops, Saber-Toothed Tiger, Platinum Drake, Crimson Drake, Stygian Drake, Blood Fox, Frost Mite, Ossein Ram, Lion)
 +
[sphere_defs.scp]: Added new sound defs 'snd_monster_blade' and 'snd_animal_lion'
  
31-07-2012, Ben
+
28-05-2017, Coruja
- Fixed #2085: RESURRECT not working.
+
Changed: Updated internal SQLite libs v3.18.0 to v3.19.2.
 +
[maps/sphere_map0_hs.scp]: Renamed region 'Wreck of the Ararat' to 'Underwater World'
 +
[maps/sphere_map3.scp]: Added missing region 'Gravewater Lake'
 +
[maps/sphere_map5.scp]: Fixed 'Royal City' region RECT
 +
[maps/sphere_map_points5.scp]: Removed moongate def 'mg_valley_of_eodon' (it got moved to the script below)
 +
[maps/sphere_map_points5_tol.scp]: Added moongate def 'mg_valley_of_eodon'
  
30-08-2012, Ben
+
29-05-2017, Coruja
- Fixed #2093: Animation above 400 not showing all frames.
+
Changed: Misc improvements on cartography maps packets.
 +
[items/sphere_item_treasure_maps.scp]: File removed (this old system got replaced by the new system below)
 +
[systems/]: Added this new folder to store Sphere default systems
 +
[systems/sphere_system_treasure_maps.scp]: Added new treasure maps system. The script got entirely redone, now easy to customize and updated with latest OSI features
 +
[spheretables.scp]: Added scripts/systems/ folder on RESOURCES list
  
04-09-2012, Ben (script pack)
+
30-05-2017, Coruja
- Updated: sphere_spells.scp with missing SPELLFLAG_AREA.
+
Changed: Misc improvements on spells Recall, Gate Travel and Mark
 +
-Recall now can be used on ship keys to recall to boats
 +
-Gate Travel now will fail if there's already another moongate/teleport on the same spot where moongates will be created
 +
[sphere_msgs.scp]: Updated messages 'spell_gate_*', 'spell_recall_*' and 'spell_mark_*'
  
04-09-2012, Ben
+
31-05-2017, Coruja
- Fixed #2096: Sommon spells not making creatures your pet.
+
Fixed: Skillgain not working correctly when SKILLSUM value is > 6553.5 on sphere_skills.scp.
- Fixed #2097: area spells requiring spellflag_scripted to work
 
- Updated: sphereCrypt.ini with keys up to 7.00.270
 
  
16-09-2012, Ben
+
02-06-2017, Coruja
- Fixed #2094: double @Destroy trigger on summoned char.
+
Changed: Misc fixes and improvements on training items (Training Dummy, Pickpocket Dip and Archery Butte)
 +
[items/sphere_item_profession.scp]: Added CAN=can_i_dcignoredist on item 'i_archery_butte' and fixed 'i_pickpocket_dip' using wrong ID
 +
[sphere_msgs.scp]: Replaced messages 'itemuse_archb_*' with 'itemuse_archbutte_*', 'itemuse_pdummy_*' with 'itemuse_pickpocket_*', 'itemuse_tdummy_*' with 'itemuse_trainingdummy_*'
  
17-09-2012, Terrikate
+
04-06-2017, Coruja
- Fixed #1831: Trigger @PERSONALSPACE did not fire on NPCs
+
Fixed: Added missing 'dam_nounparalyze' flag on damage of Poison spell.
- Fixed #1651: LastLogged message always sent current time
 
- Fixed #1944: Some combination of stairs and delete function can remove the dirt on floor of the house
 
- Modified #1749: Error messages 'Bad Login' become warnings to facilitate analysis of the logs
 
- Modified: Resync forced to create or delete items in custom houses to update correctly on all clients
 
  
20-09-2012, Terrikate
+
06-06-2017, Coruja
- Added #1542: Implemented CTAGCOUNT like TAGCOUNT for clients
+
Fixed: Throwing weapons not working correctly.
- Fixed #1590: Attacker list contains self uid
+
Added: Missing animation of throwing weapons returning after throw it.
  
22-09-2012, Ben
+
08-06-2017, Coruja
- Added: TAG.OVERRIDE.ROCK.DAM to override the damage done by rock throwing
+
Fixed: NPCs canceling combat immediately when its target get out of LOS.
Note: TAG.OVERRIDE.ROCK was already implemented with the ability to change rock to other items.
+
Fixed: NPCs vendors not calculating skill train price correctly.
It can also add the throwing ability to other NPCs that have the tag. (never reported in changelog)
+
[sphere_events_npcs.scp]: Fixed event 'e_trainer' showing wrong trainable skill list on vendor's context menu
- Added: TAG.OVERRIDE.BREATH.DAM to override Damage done from fire breathing.
 
  
22-09-2012, Ben (Script pack)
+
09-06-2017, Coruja
- Fixed #2086: added SERV.MYSQLPASSWORD to plevel 7 group in spheretables.scp
+
Changed: Updated internal SQLite libs v3.19.2 to v3.19.3.
  
24-09-2012, Terrikate
+
16-06-2017, Coruja
- Fixed #2078: t_multi_custom causes memory leak in client
+
Added: New item property PICKUPSOUND to override default pickup sound for items (it can be used together with DROPSOUND).
 +
Changed: DeadCannotSeeLiving setting on sphere.ini now will always show GM chars.
 +
Changed: NPCAI flags NPC_AI_FOOD/NPC_AI_INTFOOD on sphere.ini now will make NPCs search for food only when food level percent (<FOOD>*100/<MAXFOOD>) is < 40% instead (<FOOD> < 10).
 +
[sphere.ini]: Removed unused 'AutoPrivFlags' setting and updated description of NPCAI flags
  
06-10-2012, Ben
+
17-06-2017, Coruja
- Fixed #2101: Added a value to i_staff_black in default pack to prevent possible crash in vendor menu.
+
Fixed: Function BADSPAWN not working correctly.
- Fixed #2088: Char hue returning to OSKIN on reveal from invis spell.
+
Changed: Default region flags for MULTIDEF items without REGIONFLAGS set is now 'region_flag_nobuilding' instead 'region_flag_nodecay|region_antimagic_teleport|region_antimagic_recall_in|region_flag_nobuilding'.
 +
Changed: 'return 1' on char trigger @Rename of account characters being created now will block the character creation instead create the character using generic names.
 +
Changed: Server trigger 'f_onchar_create' now is called after skills/stats are already set on the character being created.
 +
-This will allow users to create characters with custom skills/stats without get these values overridden by default values later.
  
12-10-2012, Terrikate
+
20-06-2017, Coruja
- Fixed: ATTACKER.n.ELAPSED: not increased the timer correctly, always returned 0
+
[items/sphere_item_provisions_armor.scp]: Fixed item 'i_gargish_leather_leggings' returning console error calling an undefined function
- Fixed: ATTACKER.LAST: returned one of the attackers randomly, no the last
+
[npcs/sphere_citizens.scp]: Fixed NAME/TITLE of all CHARDEFs
 +
[npcs/sphere_guildmasters.scp]: Fixed NAME/TITLE of all CHARDEFs
 +
[npcs/sphere_vendors.scp]: Fixed NAME/TITLE of all CHARDEFs
 +
[sphere_region.scp]: Fixed REGIONTYPE 'r_default' making the client play the same region music again when walking through regions that have the same music
  
12-10-2012, Ben
+
05-07-2017, Coruja
-Added: Party triggers.
+
Changed: Reverted Energy Vortex new chardef '023d' to old '0a4' (OSI created this new chardef on AOS age but it was never really used).
        @PartyInvite(def=recipient, src=sender, return 1=stop default)
+
[npcs/sphere_monsters.scp]: Removed chardef 023d (the new/broken AOS Energy Vortex) and renamed old chardef 0a4 'c_elemental_swamp' back to 'c_energy_vortex'. Also updated Blade Spirit and Energy Vortex stats
@PartyRemove(def=char getting kicked, src= the one kicking, no return, ARGN=1 if triggered by disband)
+
[sphere_spawns.scp]: Removed 'c_elemental_swamp' from spawn lists
@PartyDisband(def=master, src=master, no return)
+
[sphere_template_loot.scp]: Removed template 'loot_elem_swamp'
  
17-10-2012, Terrikate
+
06-07-2017, Coruja
- Added #1987: More information when fails to delete a character. (account, character name and ip)
+
Fixed: Vendor NPCs not training player skills correctly.
      Now will be a message of type LOG_WARNING rather than LOG_ERROR
+
[npcs/spherechar_evil.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations
- Added #1854: TAG.NOMUTESPEECH=1 to unmute specific areas created by items.
+
[npcs/sphere_monsters.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations
      Only makes sense to use it if the optional flag OF_NoHouseMuteSpeech is disabled
+
[npcs/sphere_monsters_custom.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations
- Added #1816: f_onaccount_create function to be called when create an account by script or console
 
- Modified: GMs can now listen to every player without any restriction.
 
  
17-10-2012, Terrikate (Script pack)
+
25-07-2017, Coruja
- Updated #1816: sphere_serv_triggers.scp (added function f_onaccount_create)
+
Changed: Updated internal MySQL libs v6.1.10 to v6.1.11.
 +
-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.
  
22-10-2012, Terrikate
+
26-07-2017, Coruja
- Fixed #2104: functions UPDATE and REVEAL forced an update unnecessary of the client
+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.59 and enhanced client 4.0.59
  
22-10-2012, Ben
+
27-07-2017, Coruja
- Fixed: .UOP file support. It should now be able to handle future updates.
+
[sphere_defs.scp]: Added missing sounds 'snd_monster_orc2', 'snd_animals_panther2', and removed unused typedefs 't_telescope', 't_bed', 't_it_stone', 't_garbage', 't_table', 't_hair_dye'
- Updated: ML map size detection to allow for new .uop file format.
+
[items/sphere_item_buildings.scp]: Removed typedef 't_telescope' from items
 +
[items/sphere_item_deco_furniture.scp]: Removed typedef 't_table', 't_bed' from items
 +
[items/sphere_item_profession.scp]: Removed typedef 't_table' from items
 +
[items/sphere_item_profession_alchemist.scp]: Removed typedef 't_table' from items
 +
[items/sphere_item_provisions_misc.scp]: Removed typedef 't_garbage' from items
 +
[items/sphere_item_unsorted.scp]: Removed typedef 't_garbage' from items
  
28-10-2012, Ben
+
04-08-2017, Coruja
- Fixed #2107: Trying to open and use .uop files even if non existant.
+
Changed: Updated internal SQLite libs v3.19.3 to v3.20.0.
 +
Added: New function CHANGEFACE to open client internal 'Face Selection' dialog (enhanced clients only).
 +
[items/sphere_item_profession_barber.scp]: Updated all items
 +
[npcs/sphere_vendors.scp]: Removed obsolete vendor 'c_barber' and added new 'c_body_sculptor', 'c_hairstylist'
 +
[speech/speakshopkeep.scp]: Updated speech 'spk_shopkeep' and added new 'spk_bodysculptor', 'spk_hairstylist'
 +
[sphere_dialog.scp]: Updated dialog 'd_hair_dye' and added new 'd_body_sculptor', 'd_hairstylist', 'd_hair_style', 'd_beard_style'
 +
[sphere_menu.scp]: Removed obsolete 'i_bottle_hair_dye' from menus
 +
[sphere_template_vend.scp]: Removed obsolete 'i_bottle_hair_dye' from vendor templates
  
03-11-2012, Mordant (Script Pack)
+
10-08-2017, Coruja
- Added: t_forest and t_jungle TERRAIN types in sphere_types.scp
+
Fixed: Weapons not playing hit/miss sounds on combat.
 +
[npcs/sphere_monsters_custom.scp]: Changed obsolete MODAR to RESPHYSICAL
 +
[npcs/sphere_monsters.scp]: Changed obsolete MODAR to RESPHYSICAL and updated NAME of some named NPCs
 +
[npcs/spherechar_evil.scp]: Changed obsolete MODAR to RESPHYSICAL and updated NAME of some named NPCs
 +
[sphere_name.scp]: Updated many names lists
  
11-11-2012, Ben
+
11-08-2017, Coruja
- Fixed #2106: MAGICF_STACKSTATS causing crash.
+
[items/sphere_item_deco_furniture.scp]: Renamed some defnames (i_table_elven_ornate_2 -> i_table_hardwood, i_table_elven_storage -> i_chest_ornate_elven, i_chest_gargoyle -> i_chest_gargish)
 +
[items/sphere_item_unsorted.scp]: Renamed some defnames (i_chest_ornate_elven -> i_chest_rarewood, i_chest_ornate_elven_2 -> i_box_decorative)
 +
[items/sphere_item_misc.scp]: Added missing TDATA2 on items 'i_checkerboard' and 'i_chessboard'
 +
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list
  
23-11-2012, Ben
+
12-08-2017, Coruja
-Fixed #2115: Cutting custom hides producing default leather.  
+
[items/sphere_item_ship_parts_britannian.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
Now TDATA1 of type t_hide can hold ID or DEFNAME of custom cut leather (or any item).
+
[items/sphere_item_ship_parts_gargish.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
 +
[items/sphere_item_ship_parts_orcish.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
 +
[items/sphere_item_ship_parts_tokuno.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
 +
[items/sphere_item_unsorted.scp]: Fixed item 'i_dice_cup' not working correctly and removed unused triggers from items 'i_person_lord_british', 'i_person_black_thorne', 'i_deathshroud', 'i_robe_gm'
  
27-12-2012, Ben
+
15-08-2017, Coruja
-Fixed #2112: Added ini setting NPCSkillSave with a default value of 10 to keep normal behaviour.
+
[items/sphere_item_deco_carvings_statues.scp]: Added publish 98 statues
Any NPC skills below this value will not be saved and will be reseted to 0.
+
[items/sphere_item_halloween.scp]: Added new file with publish 98 halloween items
 +
[items/sphere_item_provisions_armor.scp]: Added publish 90 armors
 +
[items/sphere_item_provisions_clothing.scp]: Added publish 90 clothes
 +
[items/sphere_item_provisions_misc.scp]: Added publish 98 items
 +
[items/sphere_item_vegetation.scp]: Added publish 94 plants
 +
[items/sphere_item_wedding.scp]: Added publish 98 wedding items
  
04-01-2013, Ben
 
-Changed: OVERRIDE.REGENVAL so that it is the tagvalue or 1 instead of 1+tagvalue.
 
-Fixed 2123: REGEN VAL not being accurate on mounted horses.
 
  
18-1-2013, Ben
+
16-08-2017, Coruja
-Added: <ASCPAD size,text> Does the same as <ASC text>, but padds with 0s untill size is reached.  
+
[speech/jobbanker.scp]: File removed
Will also truncate the text if longer then size
+
[speech/speakshopkeep.scp]: Added new speech 'spk_banker' with updated commands: bank, balance, check, withdraw (all commands are fully compatible with FEATURE_TOL_VIRTUALGOLD setting)
 +
[npcs/sphere_vendors.scp]: Renamed speech 'jobBanker' to 'spk_banker' on Banker/Minter NPCs
 +
[items/sphere_item_provisions_deed.scp]: Added new item 'i_bank_check'
  
2-02-2013, Ben
+
18-08-2017, Coruja
-Fixed #2128: IMSG_DEF_COLOR overriding Chars noto colors.
+
[items/sphere_item_deco_carvings_statues.scp]: Moved all halloween items to sphere_item_halloween.scp
-Fixed #2131: Too many packets sent from multis.
+
[items/sphere_item_deco_dungeons_traps_dead.scp]: Moved all halloween items to sphere_item_halloween.scp
 +
[items/sphere_item_deco_lightsources.scp]: Moved all halloween items to sphere_item_halloween.scp
 +
[items/sphere_item_deco_wall_hangings.scp]: Moved all halloween items to sphere_item_halloween.scp
 +
[items/sphere_item_halloween.scp]: Added publish 98 halloween items
 +
[items/sphere_item_profession.scp]: Moved all halloween items to sphere_item_halloween.scp
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all halloween items to sphere_item_halloween.scp
 +
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list
  
10-02-2013, Ben
+
21-08-2017, Coruja
-Fixed: EQUIPPEDCAST in sphere.ini not working properly.
+
[items/sphere_item_christmas.scp]: File renamed to 'sphere_item_holiday_christmas.scp'
 +
[items/sphere_item_halloween.scp]: File renamed to 'sphere_item_holiday_halloween.scp'
  
13-02-2013, shaklaban
+
26-08-2017, Coruja
-Fixed #2134: COMPONENTS of the point not working, if MAP not 0.
+
[items/sphere_item_theme_pack_kings_collection.scp]: Added new file with King's Collection theme pack items
 +
[items/sphere_item_deco_furniture.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
 +
[items/sphere_item_deco_lightsources.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
 +
[items/sphere_item_deco_wall_hangings.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
 +
[items/sphere_item_resources.scp]: Added missing itemdef 'i_workable_glass'
 +
[items/sphere_item_unsorted.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
 +
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list
  
16-02-2013, shaklaban
+
27-08-2017, Coruja
Modified: sphere.ini modified to stable settings (NetworkThreads=0 and UseAsyncNetwork=0).
+
[items/sphere_item_theme_pack_gothic.scp]: Added new file with Gothic theme pack items
 +
[items/sphere_item_building_stairs.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
 +
[items/sphere_item_building_walls.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
 +
[items/sphere_item_deco_carvings_statues.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
 +
[items/sphere_item_deco_furniture.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
 +
[items/sphere_item_profession.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
  
16-02-2013, Ben
+
28-08-2017, Coruja
-Fixed: small typo in sphere.ini
+
[items/sphere_item_theme_pack_rustic.scp]: Added new file with Rustic theme pack items
-Added: Support for new UOGateway status request.
+
[items/sphere_item_building_stairs.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
 +
[items/sphere_item_building_walls.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
 +
[items/sphere_item_deco_carvings_statues.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
 +
[items/sphere_item_deco_furniture.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
  
20-02-2013, Ben
+
02-09-2017, Coruja
-Added: sphere.ini option ALLOWNEWBTRANSFER. When set to 1, will allow newbi items to stay newbied after tranfer to an NPC.
+
[items/sphere_item_holiday_valentines.scp]: Added new file with Valentine's Day items
-Fixed #2139: All dung being named Horse Dung. Now it's   "animal name" dung
+
[items/sphere_item_animations.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
-Added: Read/Write (SERV.MAP.map_num.SECTOR.sec_num function) to have access to individual sectors.
+
[items/sphere_item_deco_carvings_statues.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
 +
[items/sphere_item_vegetation.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
  
23-02-2013, Ben
+
04-09-2017, Coruja
-Fixed #2133: <Dsomeval> returning 0 if <someval> is negative.
+
[items/sphere_item_animations.scp]: Add publish 98 items
-Fixed #2120: Some server properties are no longer writable (ACCOUNTS, CHARS, ITEMS, SAVECOUNT, TIME)
+
[items/sphere_item_deco_lightsources.scp]: Update all lightsource items with correct light pattern and others misc infos
 +
[items/sphere_item_holiday_christmas.scp]: Fixed some wrong ITEMDEF names
  
24-02-2013, Ben
+
09-09-2017, Coruja
-Fixed #1494: (script pack) possible exploit with arrow value
+
[items/sphere_item_char_icons.scp]: Added publish 98 items
-Fixed #1544: qval returning " " instead of "" (now returns true empty string)
+
[items/sphere_item_provisions_jewelry.scp]: Updated gargish jewelry properties
-Fixed: Timezones not being calculated properly when ALLOWLIGHTOVERRIDE is on.
+
[items/sphere_item_unsorted.scp]: Removed some duplicated ITEMDEFs
-Fixed #2140: Vendors are now closing shop when ISNIGHTTIME and not ISDARK.
+
[items/sphere_item_vegetation.scp]: Added some missing trees and potted plants
  
02-03-2013, Ben
+
17-09-2017, Coruja
-Fixed: ascpad throwing out an error for no reason.
+
[items/sphere_item_theme_pack_shadow.scp]: Added new file with Shadow theme pack items
 +
[items/sphere_item_animations.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_boulders_rocks.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_building_doors.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_building_floors.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_building_roofs.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_building_stairs.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_building_walls.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_deco_carvings_statues.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_deco_fireplace_chimney_oven.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_profession_cartographer.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
  
03-03-2013, Ben
+
18-09-2017, Coruja
-Fixed #2043: For loops last loop executed two times.
+
[items/sphere_item_theme_pack_crystal.scp]: Added new file with Crystal theme pack items
 +
[items/sphere_item_building_doors.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_building_floors.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_building_roofs.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_building_stairs.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_building_walls.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_deco_carvings_statues.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_deco_furniture.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_profession.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
  
04-03-2013, Ben
+
19-09-2017, Coruja
-Fixed: COMBAT_OSIDAMAGEMOD not applying the proper bonus calculations
+
Fixed: Client 'Open Spellbook' macro making the client crash if it try to open the requested spellbook gump when the spellbook item is not loaded yet.
 +
Fixed: Recall spell always using default teleport effect/sound values set on sphere.ini instead EFFECT_ID/SOUND values set on sphere_spells.scp.
 +
[sphere_spells.scp]: Added missing EFFECT_ID value on Recall spell
  
06-03-2013, Ben
+
29-09-2017, Coruja
-Fixed #2127: EF_FixCanSeeInClosedConts not updating unequiped items.
+
[items/sphere_item_quests.scp]: Added new file with The Shattered Obelisk (publish 98) quest items
-Fixed: More COMBAT_OSIDAMAGEMOD calculation errors
+
[items/sphere_item_deco_wall_hangings.scp]: Added missing publish 97/98 items
  
20-03-2013, Shaklaban
+
01-10-2017, Coruja
-Added: TAG.OVERRIDE.SPEED for weapons.
+
Changed: Updated internal SQLite libs v3.20.0 to v3.20.1.
 +
Fixed: Lightsource items not updating tooltip after toggle light state.
  
23-03-2013, Shaklaban
+
03-10-2017, Coruja
-Added #2146: SECTOR.NUMBER for accessing index of the sector.
+
Fixed: AutoTooltipResend .ini setting not working on equipped items.
 +
Fixed: Summoned NPCs not showing smoke effect when they got released.
  
31-03-2013, Ben
+
08-10-2017, Coruja
-Fixed: LIST.xxx.num.INSERT returning an error when the list doesn't exist. It will now create it and place the item at index 0.
+
[maps/sphere_map0_hs.scp]: Updated 'Sea Market' region
-Added: LOCAL.PASSWORD to f_onaccount_create as a readable variable only for now.
+
[maps/sphere_map1_tol.scp]: Added new file with 'Event Arenas' regions
-Fixed: Quoted numbers inside a variable will now be properly saved as a string, and returned as a string.
+
[maps/sphere_map1.scp]: Updated 'New Haven' regions
 +
[maps/sphere_map_points1.scp]: Added missing 'New Haven Mine' teleports
 +
[npcs/sphere_monsters.scp]: Added publish 98 monsters
  
23-04-2013, Shaklaban
+
15-10-2017, Coruja
-Added: DeadCannotSeeLiving option for sphere ini.
+
Fixed: MODMAXWEIGHT property not working correctly
DeadCannotSeeLiving=1: Dead players cannot see npcs (except healers and their own pets).
+
Changed: Updated 'weight' tooltip on containers
DeadCannotSeeLiving=2: Dead players cannot see players and npcs.
 
DeadCannotSeeLiving=0: Old behaviour.
 
  
04-05-2013, Shaklaban
+
17-10-2017, Coruja
-Fixed: Begging animation cannot disabled with return 1 @prestart.
+
[items/multis/multis_misc.scp]: Added publish 98 / 98.2 multis
 +
[items/sphere_item_char_icons.scp]: Added publish 98.2 items
 +
[items/sphere_item_holiday_christmas.scp]: Updated some item names
 +
[items/sphere_item_memories.scp]: Added publish 98.2 items
 +
[items/sphere_item_provisions_misc.scp]: Added publish 98 / 98.2 items
 +
[items/sphere_item_wedding.scp]: Added 'undead wedding veil/hat' missing functionality
 +
[npcs/sphere_monsters.scp]: Added publish 98.2 mount (Ethereal Serpentine Dragon)
 +
[sphere_defs.scp]: Added mount def for 'Ethereal Serpentine Dragon'
 +
[sphereCrypt.ini]: Added crypt key for classic client 7.0.60 and enhanced client 4.0.60
  
---- 0.56c --------------------------------------------------------------------
+
18-10-2017, Coruja
---- 16/06/2013
+
[items/sphere_item_vice_virtue.scp]: Added new file with Vice vs Virtue items
 +
[items/sphere_item_deco_wall_hangings.scp]: Moved all Vice vs Virtue items to sphere_item_vice_virtue.scp
  
12-07-2013, Coruja (Script pack)
+
21-10-2017, Coruja
- Updated #2171: sphere_defs.scp (added missing midis SE/ML/HS)
+
[items/sphere_item_veteran_rewards.scp]: Added new file with Veteran Rewards items
+
[items/sphere_item_deco_furniture.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
19-07-2013, Ben
+
[items/sphere_item_deco_wall_hangings.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
-Added: Triggers @Enter, @Exit, and @Step to ROOMDEFs
+
[items/sphere_item_provisions_misc.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
(Script pack)
+
[items/sphere_item_unsorted.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
-Updated #2173: some components in sphere_item_multis_houses_ships.scp
 
-Removed: region_flag_globalname in sphere_def.scp since it's no longer in use
 
-Removed: region_flag_globalname from sphere_map0.scp and sphere_map2.scp
 
-Added: REGION_FLAG_ANNOUNCE to regions that have a TAG.ANNOUNCEMNT in sphere_map0.scp
 
  
20-07-2013, Ben
+
23-10-2017, Coruja
-Added: Tags functions to ROOMDEF. (TAG, TAG0, TAGAT, TAGCOUNT, TAGLIST, CLEARTAGS)
+
[items/sphere_item_holiday_anniversary.scp]: Added new file with Anniversary items
-Fixed: Setting region/room tags in game (ex: .region.tag.test 1) not setting properly.
+
[items/sphere_item_deco_carvings_statues.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_deco_furniture.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_deco_signs.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_deco_virtues.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_deco_wall_hangings.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_holiday_halloween.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_profession.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_provisions_clothing.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_provisions_shields.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_unsorted.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
 +
[items/sphere_item_vegetation.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
  
05-08-2013, Ben
+
24-10-2017, Nolok
-Added #2175: local.CreateObject1 <itemdef> to create food spell. If set, it will produce this item when the spell if done.
+
Fixed: Skillgain never occurred when using SkillUseQuick.
-Modified #2181:(script pack) Incorrect DUPELIST on i_keg_wood
 
-Added #2148: tag.NoRestock on vendors and regions. Setting either one to 1 will stop routine restocking of vendors
 
-Fixed: Error in ISTEVENT.
 
-Added #2177: - <ISTIMERF.functionname> to check if a timerf exists. Returns the time left in sec if it exists or 0 if not.
 
  - TIMERF STOP,functionname to stop a specific timerf.
 
-Removed #2180:(script pack) i_orb and i_minion_leather from spherechar_lbr.scp
 
-Added #2183: EF_FixKillTrigger 0x02 to possibly fix Exp system and @Kill trigger
 
-Fixed #2159: Items with ATTR attr_newbie should not be stuck on NPCs with ALLOWNEWBTRANSFER on.
 
-Fixed #2172: (script pack) Magery spell sound def adjusted.
 
  
13-08-2013, Ben
+
28-10-2017, Coruja
-Fixed #2189: Changed ATTACKER.CLEAR from readable to writable.
+
[items/sphere_item_deco_themed_collections.scp]: Added new file with themed collection items (Spring Decor / Evil Home Decor)
 +
[items/sphere_item_deco_carvings_statues.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_deco_furniture.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_deco_lightsources.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_deco_wall_hangings.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_profession.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
 +
[items/sphere_item_unsorted.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
  
25-08-2013, Ben
+
05-11-2017, Coruja
-Added: Auto detection of in use triggers (Vjaka's code from 0.57 source)
+
[items/sphere_item_holiday_easter.scp]: Added new file with Easter items
-Removed: ExperienceMode 0x20 and 0x40 since Auto trigger detection is enabled.
+
[items/sphere_item_deco_carvings_statues.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
-Removed: EF_New_Triggers, EF_Minimize_Triggers, and EF_NPCAct_Triggers since Auto trigger detection is enabled.
+
[items/sphere_item_deco_wall_hangings.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
-Removed: @NPCHearNeed trigger in sphere_events_human.scp since this trigger doesn't exist!
+
[items/sphere_item_unsorted.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
 +
[items/sphere_item_vegetation.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
  
27-08-2013, RanXerox
+
12-11-2017, Coruja
-Correction to i_keg_wood_2 (it is not a container)
+
[items/sphere_item_holiday_thanksgiving.scp]: Added new file with Thanksgiving items
-Corrected spelling mistakes ("entrance" not "entrace") in sphere_map2.scp
+
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Thanksgiving items to sphere_item_holiday_thanksgiving.scp
-Added Armored Boura to mount defs in sphere_defs.scp
 
-Added more random sets in sphere_defs.scp
 
-Added more sounds in sphere_defs.scp
 
-Renamed some ITEMDEFs (noted in sphere_backward_compatibility.scp)
 
-Formatted scripts and updated syntax in numerous files
 
-Added t_acid terrain type to sphere_types.scp (not used yet)
 
-Moved numerous ITEMDEFs from one file to another
 
-Added numerous new ITEMDEFs
 
-Added more sphereCrypt.ini entries
 
-Differentiate mod* and max* in the info dialog
 
-Added placeholders for new spells
 
-Magery Spell flags made consistent
 
-Magery spell resources modified to match the spellbook in modern clients
 
-Numerous additions to creature height table in sphere.defs
 
-Replaced hardcoded magic resistance string
 
  
28-08-2013, RanXerox
+
26-11-2017, Coruja
-Added more ITEMDEFs
+
Changed: Updated internal SQLite libs v3.20.1 to v3.21.0.
-Fixed DUPELIST entries
+
[items/sphere_item_artifacts.scp]: Added missing Doom, Shadowguard and Enchanted Origin artifacts
-Changed some Axis categories, subsections and descriptions
+
[items/sphere_item_deco_furniture.scp]: Fixed wrong info on many gargish items and also removed unused typedef 't_chair' lines
-Moved ITEMDEFs from one file to another
+
[items/sphere_item_deco_wall_hangings.scp]: Fixed wrong info on some few items
-Major changes to doors script file in preparation for making new doors work
 
  
31-08-2013, Ben
+
05-12-2017, Coruja
-Fixed #2193: Mounts will die instantly when killed while mounted.
+
[systems/sphere_system_aquarium.scp]: Added new file with aquarium system (still incomplete yet)
 +
[items/sphere_item_deco_furniture.scp]: Moved all aquarium items to sphere_system_aquarium.scp
 +
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all aquarium items to sphere_system_aquarium.scp
 +
[items/sphere_item_unsorted.scp]: Moved all aquarium items to sphere_system_aquarium.scp
  
01-09-2013, RanXerox
+
10-12-2017, Coruja
-Moved numerous ITEMDEFs
+
[systems/sphere_system_secret_chest.scp]: Added new file with 'secret chest' system
-Added numerous ITEMDEFs
+
[items/sphere_item_deco_lightsources.scp]: Fixed lantern items using wrong id
-Changed some DEFNAMEs
+
[items/sphere_item_theme_pack_kings_collection.scp]: Added missing King's Collection items
-Fixed some spelling errors
+
[items/sphere_item_unsorted.scp]: Moved 'secret chest' item to sphere_system_secret_chest.scp
-Affected files:
 
  items/sphere_item_aos_se.scp
 
  items/sphere_item_building_doors.scp
 
  items/sphere_item_building_doors_sa.scp
 
  items/sphere_item_building_floors.scp
 
  items/sphere_item_building_floors_sa.scp
 
  items/sphere_item_building_floors_se.scp
 
  items/sphere_item_building_roofs.scp
 
  items/sphere_item_deco_dungeons_traps_dead.scp
 
  items/sphere_item_deco_misc.scp
 
  items/sphere_item_deco_virtues.scp
 
  items/sphere_item_ground_tiles.scp
 
  items/sphere_item_magic_ninjitsu_bushido.scp
 
  items/sphere_item_magic_spellweaving.scp
 
  items/sphere_item_misc.scp
 
  items/sphere_item_ml_floor_wall.scp
 
  items/sphere_item_profession.scp
 
  items/sphere_item_provisions_weapons.scp
 
  items/sphere_item_resources.scp
 
  items/sphere_item_unsorted.scp
 
  npcs/spherechar.scp
 
  npcs/spherechar_mondains_legacy.scp
 
  npcs/spherechar_sa.scp
 
  sphere_backward_compatibility.scp
 
  sphere_menu.scp
 
  sphere_newb.scp
 
  sphere_skillmenu.scp
 
  sphere_template_vend.scp
 
  
02-09-2013, Ben
+
12-12-2017, Coruja
-Added: 04e and 052 tiles to t_water in sphere_types.scp
+
[items/multis/multis_houses.scp]: Updated COMPONENT/DUPEITEM of some MULTIDEFs and moved m_blue_tent, m_green_tent, m_wheat_cottage to multis_misc.scp
-Fixed #2200: Custom trigger not working with new automated trigger detection
+
[items/multis/multis_ships.scp]: Updated VALUE of some MULTIDEFs
-Fixed #2199: Resource gembits being set to 0 everytime.
+
[items/sphere_item_provisions_deed.scp]: Added missing VALUE of vendable deeds
  
03-09-2013, Ben
+
13-12-2017, Drk84
-Fixed #2201: @itemXXX triggers not all working.
+
Possible fix for stat cap issue when the sum of the char stats reach StatCap - 1.
  
04-09-2013, RanXerox
+
20-12-2017, Coruja
-Fixed a bug in @kill trigger where, if enabled, a killer would not get credit
+
[items/sphere_item_boulders_rocks.scp]: Updated crystals/geodes and added new moonstone items
(karma, fame, experience) for the kill.
+
[items/sphere_item_deco_carvings_statues.scp]: Updated all items with correct info
 +
[items/sphere_item_deco_dungeons_traps_dead.scp]: Added missing Kotl City items
  
07-09-2013, Ben
+
26-12-2017, Coruja
-Added #1805: ColorNotoInvul with default value of 0x35 and NotoInvul 0x40 flag for PetsInheritNotoriety.
+
Fixed: Deeds not setting ATTR=attr_move_never on multi parent item after create it.
-Fixed #2186: Dialoglist not being updated when closing dialogs.
+
Fixed: Deeds showing multi targets on wrong Y position.
 +
Fixed: 'memory_guard' memories not being removed after its linked item get deleted.
  
08-09-2013, RanXerox
+
29-12-2017, Drk84
-Fixed #2203: Added missing Action values to sphere_dialog.scp
+
Fixed: SPELLCHANNELING item property not working correctly.
-Fixed #2204: Cooking and Crafting skills now behave like proper crafting skills
 
  
08-09-2013, Ben
+
02-01-2018, Coruja
-Fixed #2191: Turning at the map edge with boats will not trow a console error.
+
Changed: Improved how ranged weapons handle ammo.
-Fixed #2192: Should not be able to turn on another boat.
+
Fixed: ENHANCEPOTIONS item property only working when FEATURE_AOS_UPDATE_B feature is enabled on sphere.ini.
  
10-09-2013, Ben
+
03-01-2018, Nolok
-Fixed #2141: WorldGem Bits should now recognise map edge properly.
+
Fixed: when playing a sound from a character from Samurai Empire and later expansions, it was chosen the wrong sound ID for the given action.
 +
This is caused by the different order of IDs in the sound file after that expansion.
 +
[sphere_defs.scp + npcs/sphere_monsters.scp]: Updated lots of old sounds, added new ones. Still, some are missing.
 +
[sphere_defs.scp]: Added SOUNDTYPE_RAND, SOUNDTYPE_IDLE, SOUNDTYPE_NOTICE, SOUNDTYPE_HIT, SOUNDTYPE_GETHIT, SOUNDTYPE_DIE defs. They are meant to be used with BARK, which has always accepted as parameter the sound type (even if the wiki at this day doesn't say so), not the sound ID (use SOUND for this).
 +
[items/sphere_item_deco_dungeons_traps_dead.scp]: Fixed typo (09cdc item).
 +
[items/sphere_item_deco_furniture.scp]: Changed defname of 03d8a from i_bed_ruined to i_bed_ruined_dupe, because there was already a i_bed_ruined (0c26), plus they look very similar, if not identical.
 +
[items/sphere_item_provisions_armor.scp + items/sphere_item_provisions_clothing.scp]: Added to the defname the suffix "_3d" to the items which gumpart is only available in the old 3D Client. This also solves the presence of two i_shoes_jester.
 +
[items/sphere_item_vegetation.scp]: Changed 026ef (plum blossoms) defname from i_foliage_plum to i_blossoms_plum, because there was already another i_foliage_plum.
 +
[sphere_backward_compatibility.scp]: Removed duplicated defnames i_post_stone, i_rail_stone_4, i_floor_cracks, i_wall_cracks, i_ladder_wood_tall, i_chest_ornate_elven, i_fountain_splash, i_fx_oil_flask, i_chest_gothic.
  
11-09-2013, RanXerox
+
04-01-2018, Coruja
-Default DISPID for creation of T_SEED items now configured in Sphere_Defs.scp
+
Added: SOUND property on chars now can be splitted into SOUNDHIT, SOUNDGETHIT, SOUNDDIE, SOUNDIDLE, SOUNDNOTICE
-New SphereCrypt.ini key
+
-SOUND* splitted values are optional, and when set it will have priority over default SOUND value.
  
15-09-2913, Ben
+
04-01-2018, Nolok
-Fixed: @ResourceFound trigger not working.
+
Added: SOUNDIDLE, SOUNDNOTICE, SOUNDHIT, SOUNDGETHIT, SOUNDDIE CharDef properties can now have -1 as value: this value prevents that action-related sound to be played.
-Fixed: Error caused by chars spawning when a GM is standing close to point 0,0
 
-Fixed #2207: ARGN1 in @SELL and @ITEMSELL is now the sold amount and not the total amount.
 
-Added: ARGN2 in @SELL and @ITEMSELL is the price of the items sold after vendermarkup (ARGN2 / ARGN1 = price per unit)
 
-Fixed #2205: Changed Noto colors to match OSI default.
 
-Fixed #2194: Functions starting with any hardcoded functions like LIST and followed with _ should now work as intended.
 
  
17-09-2913, Ben
+
18-01-2018, Coruja
-Added: Runto npc command. Accepts a point or region name as argument.
+
Changed: Updated MySQL engine
-Changed: Goto npc command to accept region name as argument.
+
-All functions got optimized
-Added: NPC_AI_PERSISTENTPATH 0x0400 to the NPCAI setting in sphere.ini. (NPC will retry multiple times to find it's path)
+
-Function DB.CONNECT now will warn if MySQL client (win: libmysql.dll file / linux: libmysqlclient package) or MySQL server are outdated
-Updated: Sphere.ini and sphere_msg.scp with new settings
+
-Function DB.QUERY now can handle results with up to 64 columns instead 12
 +
-Added more info on error messages
 +
-Fixed some console exceptions
  
22-09-2013, Ben
+
22-01-2018, Coruja
-Fixed #2076: Picking up corpse crashing server (not tested)
+
Changed: Updated internal SQLite libs v3.21.0 to v3.22.0.
 +
Fixed: Spells being disturbed even when they have INTERRUPT=0.0 set.
  
01-10-2013, Ben
+
27-01-2018, Coruja
-Fixed #2211: Corpse having wrong MORE values.
+
Fixed: Items placed on char backpack not checking char weight limit correctly before get equipped.
  
02-10-2013, Ben
+
30-01-2018, Coruja
-Fixed #2214: IsTimerF.function and TIMERF STOP,function not working properly
+
Fixed: Ship commands not working correctly.
 +
Fixed: Items not getting amount stacked when dropped on ground.
 +
Fixed: EF_ItemStacking .ini feature stacking items on unreachable Z heights.
  
06-10-2013, Ben
+
31-01-2018, Coruja
-Fixed #2080: Items with different tags will no longer stack
+
Changed: Increased char max stats value from 32.767 to 65.535.
-Added #2210: Support for item stacking with EF_ItemStacking 0x04(probably not 100% OSI style but should do the trick (maybe even better))
 
  
12-10-2013, Ben
+
09-02-2018, Coruja
-Fixed #2219: P.COMPONENTS.x always returning 0 on maps bigger then 0
+
Changed: Linux builds now will require MySQL libs package 'libmysqlclient20' (MySQL 5.7) instead obsolete 'libmysqlclient18' (MySQL 5.5).
-Remove GM check in Item stacking
+
-This doesn't affect Windows builds, because libmysql.dll is already updated since a long time ago.
 +
[sphere.ini]: Added new ChatStaticChannels and ChatFlags settings to set server static channels and customize chat features.
  
15-10-2013, RanXerox
+
13-02-2018, Coruja
- Removed 0x from flag explanations in sphere.ini since spherescript does not use 0x to indicate hex
+
[items/multis/multis_misc.scp]: Removed duplicated MULTIDEFs
- More changes to script pack than can be counted!
+
[items/sphere_item_buildings.scp]: Added 'Dragon Turtle Fountain' MULTIDEFs
- Dozens of files deleted, split, added, renamed, etc.
+
[items/sphere_item_deco_carpet_rugs.scp]: Added 'World Tree' ITEMDEFs/MULTIDEFs
- Many hundreds of ITEMDEFs and CHARDEFs shuffled from one place to another.
+
[items/sphere_item_deco_wall_hangings.scp]: Fixed tribal banners using wrong names
- Lots of modifications to DUPELIST and DUPEITEM, etc.
+
[items/sphere_item_holiday_anniversary.scp]: Added 'Codex of Virtue' items and fixed color of 'Enormous Venus Flytrap', 'Japanese Maple', 'Harpsichord Deed'
 +
[items/sphere_item_holiday_thanksgiving.scp]: Added publish 98 items
 +
[items/sphere_item_profession.scp]: Removed duplicated ITEMDEFs
 +
[items/sphere_item_provisions_misc.scp]: Added 'Hildebrandt Dragon Rug' MULTIDEFs
 +
[items/sphere_item_theme_pack_kings_collection.scp]: Fixed 'Dragon Lantern' using wrong ID
 +
[items/sphere_item_veteran_rewards.scp]: Added missing Veteran Rewards items
  
16-10-2013, RanXerox (Script Pack)
+
19-02-2018, Coruja
- Converted Unix files to DOS format
+
Fixed: Sphere console not closing correctly when it get closed before load startup files.
- Replaced: references to the missing MESSAGELOC function
+
Fixed: Function CANSEELOS not working correctly on clients with increased view distance (screen resolution > 800x600).
- Added: i_canal ITEMDEF (now all items can be used in custom foundation multi's)
+
Fixed: Multis (houses/boats) not being loaded at proper distance when client is walking.
- Fixed #2212: renamed Horde Demons
 
- Fixed #2215: modified WEIGHT on i_dragonscale
 
- Removed: bad reference to i_bear_skull
 
- Added: some useful NPC functions
 
- Renamed: sphere_items_seige.scp (...it's spelled Siege)
 
- Finished scripting more lightsources
 
  
17-10-2013, RanXerox (Script Pack)
+
25-02-2018, Coruja
- Switched: 0f3e and 0f3f (i_arrow) because older clients have a rock as ITEMDEF 0f3e
+
Fixed: Server sending unnecessary 'update' packets to clients.
- Removed: the name and title coloration from vendors, citizens, and guildmasters
 
- Fixed: a bad reference to random_skirts
 
- Fixed: broken SYSMESSAGELOC (they were all missing color)
 
- Improved: corrosive slime now drops acid pool when threatened
 
- Added: missing stair multi's
 
- Added: HIREDAYWAGE back to sailors and mercenaries
 
- Added: deed's for all the house foundations
 
- Added: some missing NPC functions (is cursed)
 
- Added: some missing combat timers (paralyzing blow and block healing)
 
  
18-10-2013, RanXerox (Script Pack)
+
01-03-2018, Coruja
- Fixed: armored steed figurine
+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.61 and enhanced client 4.0.61
- Fixed: syntax (SERV.NEWITEM instead of SRC.NEWITEM and NEW. instead of SRC.ACT.)
 
- Fixed: fukiya (dart shooter)
 
- Fixed: various mounts that had errors with the mounted animation
 
- Fixed: some entries in sphere_typedefs.scp
 
- Fixed: implementation of monsters that "summon" other monsters is now consistent
 
- Fixed: console errors in some NPC events
 
- Fixed: Paroxysmus loot (he dropped himself as an icon instead of his pet dragon)
 
- Fixed #1536: Pack animals with wrong maxweight
 
  
18-10-2013, Ben
+
02-03-2018, Coruja
-Fixed #2222: Shrink not working anymore.
+
[items/sphere_item_holiday_valentines.scp]: Added new Valentine's Day 2018 items
-Added: UID of shrunken pet is now accessible in ACT of the player.
+
[items/sphere_item_provisions_clothing.scp]: Added new Hooded Britannia Robes
 +
[items/sphere_item_unsorted.scp]: Updated some item names
  
19-10-2013, Ben
+
03-03-2018, Coruja
-Fixed #2218: Client crash caused by removefromview when bank is open.
+
Fixed: MOUNT property/function not working correctly.
-Added: CLOSE function to container items
 
-Added: CLOSEPROFILE, CLOSESTATUS, and CLOSEPAPERDOLL functions to characters.
 
Can take a UID as argument of the char's window you whish to close.
 
-Fixed #2221,#1933,#1618: EF_Walkcheck blocking some stairs.
 
  
20-10-2013, RanXerox
+
06-03-2018, Coruja
- Changed: animation frames removed from DUPELIST on i_mongbat_dartboard
+
Fixed: Console error when PetsInheritNotoriety .ini setting is enabled.
- Changed: value for color_o_silver
 
- Added: new CHARDEF placeholder for tiger animations- Changed: the value of color_o_silver
 
- Added: 7.0.33 encryption key
 
  
21-10-2013, RanXerox (Script Pack)
+
09-03-2018, Coruja
- Separated FOODTYPE and MAXFOOD in the monster files
+
Fixed: Multi placement making players get stuck when place the multi over his own char.
 +
Fixed: Multi placement being incorrectly blocked by region flags region_flag_underground, region_flag_guarded, region_flag_safe
  
23-10-2013, RanXerox (Script Pack)
+
12-03-2018, Coruja
- Added: more candy and chocolate related ITEMDEFs
+
[sphere.ini]: Removed unused ContextMenuLimit setting
- Fixed: standing lamps
 
- Added: Charybdis (and tentacle), Tiger, and Killer Pumpkin CHARDEFs
 
  
24-10-2013, RanXerox (Script Pack)
+
14-03-2018, Coruja
- Fixed: bad defname reference in loot (should be i_mask_daemon)
+
Fixed: Combat swing speed formula not working correctly.
- Fixed: tall jack-o-lanterns
+
Fixed: Server function 'f_onaccount_connect' not being called correctly when AccApp=2 (free/auto account) is set on sphere.ini.
- Added: spawn groups for Hythloth
 
- Moved: t_equipitem moved to its own file (since it will eventually be quite large)
 
- Modified: t_equipitem now implements:
 
            TAG.ElfOnly
 
            TAG.GargoyleOnly
 
            TAG.RareItem
 
            TAG.Stolen
 
            TAG.Exceptional
 
            TAG.CraftedBy
 
            TAG.DoNotEquip
 
            TAG.NightSight
 
            TAG.RESCOLD
 
            TAG.RESENERGY
 
            TAG.RESFIRE
 
            TAG.RESPOISON
 
            TAG.RESPhysical
 
            TAG.LowerRequirements
 
            TAG.LUCK
 
            TAG.STR
 
            TAG.DEX
 
            TAG.INT
 
            TAG.HITS
 
            TAG.STAMINA
 
            TAG.MANA
 
            TAG.HitpointRegen
 
            TAG.StaminaRegen
 
            TAG.ManaRegen
 
            TAG.FasterCastRecovery
 
            TAG.SelfRepair
 
            TAG.ExtraSkill1
 
            TAG.ExtraSkill2
 
            TAG.ExtraSkill3
 
            TAG.ExtraSkill4
 
            TAG.ExtraSkill5
 
  WARNING: Because many of the equipable items already had these TAGs, anyone
 
          using those items on a live shard should make sure all those items
 
          in-game are unequipped before installing this change!
 
  
25-10-2013, RanXerox (Script Pack)
+
24-03-2018, Coruja
- Minor updates to maps 2-5
+
[items/sphere_item_deco_wall_hangings.scp]: Updated city banners and added missing shard symbols
 +
[items/sphere_item_quests.scp]: Added Prism of Light and Twisted Weald quest items
 +
[items/sphere_item_resources.scp]: Added some missing SA resources
 +
[items/sphere_item_unsorted.scp]: Removed duplicated ITEMDEFs
 +
[items/sphere_item_veteran_rewards.scp]: Added some missing items
  
27-10-2013, Ben
+
02-04-2018, Coruja
- Fixed #2227: Region.ISEVENT not working.
+
Changed: Updated internal SQLite libs v3.22.0 to v3.23.0.
- Fixed #2229: STRREVERSE doesnt invert the entire string. (This was also the case for STRTOLOWER and STRTOUPPER)
+
Added: New char trigger @UserUltimaStoreButton, fired when click on 'Ultima Store' button on new clients 7.0.62+
- Added: DEFLIST which acts like LIST but readable only (Filled by server at loading time with lists of resources)
+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.62 and enhanced client 4.0.62
- Added: new Section to Sphere.ini [RESOURCELIST] with a list of resource blocks to be loaded into DEFLISTs
 
        Ex: Adding ITEMDEF in the RESOURCELIST will create a DEFLIST.ITEMDEF with all itemdefs loaded by the server.
 
- Added: Category, Subsection, and Description to ITEMDEF and CHARDEF (now the server can read them if directly in the DEF section and not under @create)
 
  
28-10-2013, Ben
+
08-04-2018, Coruja
- Fixed #2164: NPCs attacking from different floors
+
Added: RES*MAX properties functionality, now they are fully working
- Fixed: Issue with Client 7.0.33.1+ packet change
+
-When RES*MAX is set on chars, RES* will be limited to RES*MAX value
  
29-10-2013, RanXerox (Script Pack)
+
09-04-2018, Coruja
- Fixed: CHARDEFs in sphere_monsters.scp that were missing NAME or CAN
+
[items/sphere_item_holiday_halloween.scp]: Added missing item 'shackled heart'
- Fixed: Bad reference to c_sea_monster in sphere_monsters.scp
+
[items/sphere_item_magic_magery.scp]: Fixed 'recall rune' being created using wrong MOREP value
- Fixed: Bad reference to e_equipitem in sphere_item_provisions_clothing.scp
+
[items/sphere_item_profession.scp]: Removed duplicated ITEMDEFs
 +
[items/sphere_item_profession_cartographer.scp]: Added missing TYPE=t_map on cartography maps
 +
[npcs/sphere_monsters.scp]: Fixed NPCs with 'spawn creature' special ability summoning too many creatures
  
29-10-2013, Ben
+
10-04-2018, Coruja
- Added: Cliloc support for start location in clients 7.00.13+
+
Changed: Updated internal SQLite libs v3.23.0 to v3.23.1.
- Updated: Sphere_map_points0.scp with new STARTS information ([STARTS 2] includes a cliloc line as the 4th argument)
 
- Tweaked: Stacked items should no longer flip.
 
  
30-10-2013, RanXerox (Script Pack)
+
17-04-2018, Coruja
- Fixed: Improved TAG management related to TAG.OVERRIDE.REGEN* in sphere_item_typedef_equipitem.scp
+
Fixed: Animal Taming skill not checking follower slots limit when OF_PetSlots is enabled.
- Fixed: Removed reference to jobNecromancer event from sphere_citizens.scp
+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.63 and enhanced client 4.0.63
  
31-10-2013, RanXerox (Script Pack)
+
18-04-2018, Coruja
- Noted: Comments in the sphere_item_typedef_equipitem.scp file were improved
+
Changed: Small improvements on tooltip engine.
- Added: HTML_REDTEXT and HTML_WHITETEXT to sphere_defs.scp
 
- Added: TAG.GargoyleOnly to i_gargish* weapons in sphere_item_provisions_weapons.scp
 
  
1-11-2013, RanXerox
+
26-04-2018, Coruja
- Modified: The weather algorithm so that if you set a sector's rainchance to 100, it will always rain
+
Changed: Connections from 'localserver' won't bypass 'ClientLoginMaxTries' .ini setting anymore.
  Note: rainchance actually means "precipitation chance". If the coldchance is high enough, the precipitation will be snow.
+
[sphere.ini]: Changed 'ClientLoginMaxTries' default value [0 -> 10] to increase security against brute-force password attacks
  
9-11-2013, Ben
+
28-04-2018, Coruja
-Fixed #2238: Muldiv returning different values on linux.
+
Fixed: Random 'CChar::OnTick' console exception when clients connect.
-Added #2226: Dupeitem is now readable. Return 0 if not a dupeitem.
 
-Added #2232: Made @Rename trigger when a player changes his name
 
  ARGS IN as the proposes char name
 
  ARGS OUT as new char name
 
  ARGO is the char getting his name changed.
 
 
10-11-2013, Ben
 
-Added #2210: Picking up an item in a stack will cause above items to fall unless they have attr_static or attr_move_never
 
-Fixed #1764: LOS issue with stacked items
 
-Fixed: crashed caused by items stacking too high.
 
-Possible fix for Pathfinding on maps other then 0. (Needs testing)
 
  
11-11-2013, Ben
+
06-05-2018, Coruja
-Fixed: Error with @Rename trigger causing names to have random characters
+
Fixed: Worldsave not writing [EOF] at the end of sphereaccu.scp file.
-Fixed #2010: Pathfinding now works on maps other then 0 (Been tested this time)
+
Fixed: Worldsave not creating sphereacct.scp file when it doesn't exist.
 +
Fixed: Console command 'I' (view server info) showing wrong server AGE value.
 +
Fixed: Console command 'L' (toggle log file) not working correctly.
  
12-11-2013, Ben
+
21-05-2018, Coruja
-Fixed #2240: Time running at double speed caused by new Muldiv calculation
+
Fixed: Console error when TradeWindowSnooping=0 is set on sphere.ini.
-Tweak: Split EF_ItemStacking into 2 setting. EF_ItemStackDrop 0x08 will take care of the item dropping part.(for debuging purposes)
+
[items/sphere_item_animations.scp]: Fixed wrong lightsource pattern (MOREZ) on energy/fire/paralyze field items
 +
[items/sphere_item_building_doors.scp]: Updated some doors DEFNAMEs
 +
[items/sphere_item_building_floors.scp]: Updated some floors DEFNAMEs
 +
[items/sphere_item_deco_virtues.scp]: Removed duplicated DEFNAMEs
 +
[sphere_backward_compatibility.scp]: Updated doors/floors ITEMDEFs on backward compatibility list
  
17-11-2013, RanXerox (script pack)
+
25-05-2018, Coruja
-Fixed: all typo's of the word Axel
+
Fixed: Lumberjacking skill not working correctly.
-Fixed: arcane clothing items
 
-Fixed: Gargish maul and war hammer TAGs
 
  
17-11-2013, Ben
+
26-05-2018, Coruja
-Added: Destroy function which is like Remove, but will not be stoped by a return 1 in @Destroy
+
Fixed: Sphere crash when call GOLD/NEWGOLD function with args > 65535.
  
 +
01-06-2018, Coruja
 +
Changed: Updated SQLite engine
 +
-All functions got optimized
 +
-Added more info on error messages
 +
-Fixed some console exceptions
  
 +
03-06-2018, Coruja
 +
Fixed: <SERV.BUILD> function returning build date instead build number.
 +
Fixed: Containers showing wrong weight on item tooltip when FEATURE_ML_UPDATE feature is enabled on sphere.ini.
 
</pre>
 
</pre>
  
 
[[Category: Articles]]
 
[[Category: Articles]]

Latest revision as of 22:09, 6 June 2018

Following is a list of all changes made to Sphere since version 55a. These changes can also be found by opening and reading the REVISIONS-55-SERIES.txt and REVISIONS-56-SERIES.txt files that are provided with the Sphere download.


You can also retrieve the very latest revisions file for the 56 series from the Automated SVN Builds page. This file also shows the changes that have been made for the next prerelease.


REVISIONS-55-SERIES

---- 0.55a --------------------------------------------------------------------
---- * date unknown

new crypt for clients up to 2.0.7
2.0.7 client has strange problem with text containing - or _ in UNICODE speech modes (this can crash the client in some cases)
  UNICODESpeech=off will fix for english.
3d beta client support.
new key ACCOUNT.CHARS
new key ACCOUNT.CHAR.x.NAME
use verb serv.server.0.name
bandages only for gm's
Steal Looting corpses
line numbers for errors where not accurate - ftell() is not accurate in text mode !!! does not work with fseek to get you back to the same place !!!
CHECK cant feed pets ? not GM's
Ghosts can't equip scriptable timers ? timers don't expire.
block type [REGION] changed to [REGIONTRIG]
added key RESOURCES= to [AREA]
added new block type [REGIONRESOURCES] in sphereregion.scp
changed [MAPRESDEF] to [REGIONRESOURCE]
ANIM with backwards and TimeDelay = invis in all other clients (client bug really)
x You put the logss in your pack
x. Also you can smelt Chaos and Order shields to get gold and blackrock ingots in mass amounts with no or little work.
x. Also with the guild stones, you can recruit the guildmaster making him a candidate and 
  take over the guild stone and kick everyone out. Warring guilds tend to make mules and do this sort of thing.
18. Many guild bugs. Players can be "half-way" in a guild now. 
  The result is other waring guilds are now orange to you and 
  you are blue to them. They can be half way in the guild two 
  ways. 
  18.1. Have the guildmaster never accept you fully in. 
  18.2. after the guildmaster accepts you in, don't click the stone. You can actually end up half way in a guild with your guild tag on. 
19. Another guild bug is people will make a charater with 10 str 
  and then join it to a guild thats either Chaos or Order. 
  Then go attack greens, the player will auto attack back and 
  easily kill the player with 10 str. Thusly giving them a kill
  they get guard killed and a near by guildmate loots the corpse of the person that got attacked by the guy with 10 str. No criminal tags are incured on either the looter or the attacker due to the fact that the target was green.

---- 0.55b --------------------------------------------------------------------
---- * date unknown

XBank and XCOLOR problems.
test inscription 
DUPE limited to MaxItemComplexity
X (seems ok, script issue ?) word Bank dont work
immunity to ones own spells.
X (seems ok to me) defname of types don't work
x no loss of ar-value on unequipping armor or another item, but unequipping works correct with xedit 
X (seems ok, script issue ?) scribing scrolls no longer check to see if magery is high enough to scribe a scroll
x The same with weapons like bow, you can shoot with the unequipt bow after unequip...
X ( seems ok) .shutdown 1 says it will, but never shutsdown :)
X returnvalue for functions . see i_test_rand_ret
slight damage to mining tools as used.
@SkillTry to @SkillStart

---- 0.55c --------------------------------------------------------------------
---- 15/03/2001

sphere list sorting. non letters and repeating letters
SPEECHCOLOR for NPC's
X Equip / unequip items that mod skills.
X (Seem ok ) overly heavy iron ingots ?
X Check - listening equipped items.
prevent NUKE command target in pack.
x test poisoned horse dies while ridden.
x change mapresources causes critical error on resync
i_runebook
CanSee and CanSeeLOS triggers for items
change unreasonable timer max length to 90 days. was 2 hours !
ADD items directly into pack by targetting other item in pack.

---- 0.55d --------------------------------------------------------------------
---- * date unknown

X  tag.morep_1=<morep> works
X Check i_rune_book
remove MENU_ADMIN, replace with gump and FUNCTION
test output for scripts and logs should use the \r\n text mode. NotePad will work again.
SKILLDEF effects
  "DELAY_HI",
  "DELAY_LO",
  "EFFECT_HI",
  "EFFECT_LO",
missing SKILLMAKE=BLACKSMTIHING x.x for item 01b73 (i_shield_buckler) in sphereitemb5.scp
SPELL_Reactive_Armor = effect_Lo and Effect_Hi = random max percent reflected damage.
Crypt for 3.0.0

---- 0.55e --------------------------------------------------------------------
---- 21/03/2001

X Taste Id doesnt work at all it doesnt give a message period.  
burn vs. smelt. flame effect ?
X -npc speech color not working properly 
SEEMS OK = no kindling from trees -dagger on tree doesn't yield kindling "this is not a tree"   
SEEMS OK = Problem with resources on Multiple planes, not getting any? Problem in map file maybe?
X Polymorph not working  
SEEMS OK TO ME - When creating a t_script item, buying off a vendor, not to have the t_script attributes, 
  the TAGS do not appear to working through the ON=@CREATE .
X Need the @LOGIN @LOGOUT trigger
x Backgammon board has chess pieces  
X All drinkable potions create a gold coin in pack instead of empty bottle (probably script TDATA value).  
? CLIENT UPDATE BUG? - when u set an amount as a gm it doesnt set the whole stack-it leaves the original 1 and then gives u the diff in a different pile  
-NEED to do UPDATE now - couldnt .set flags statf_nightsight 
  -Setting colors of cchar objects is very strange, I would color my zorn, but no refeash commands would show me the color, when I mounted it, it turned the right color. 
- CANT CURSE self - curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)  
new command SAYUA Color, Mode, Font, Lang, Text
- dices can roll a "0,0", "0,x", "x,0"
SKILLBEST or SKILLBEST.1 to get the best ranked skills
X unicode speech must add lost of "......" , or it will not be displayed.  "......." amount = unicode words amount - 2  
TEXT problem with new client versions 2.0.7 ?
Yawn anim ?
Fix items that should decay but lose timers.
Eval Int message
TRUE - Drink one potion, then drink a different one - second one drank overwrites the first potion's effect. (IE, poison yourself, drink agility - now agile, but no longer poisoned at all)(all potions, same thing)  
TRUE - Var.x=rand(nnn) doesn't save output of Random function (so a number since 0 to nnn-1) but it save the function.
  Should use Var.x = <eval rand(nnn)>  rand() only works bare if it's an 'if' or other known math function.
i_shield_wood shield made of only wood.

---- 0.55f --------------------------------------------------------------------
---- * date unknown

ARCHERYMINDIST=2
Repairs now require some of the components of the item.
Double fame when order pet to attack.
GM equipping item to NPC.
Stealing can fail
Stealing can get you caught.
-archer npcs AI three steps to fire 
X Shovel is destroyed really fast if you mine 

---- 0.55g --------------------------------------------------------------------
---- 29/03/2001

BUG - missing reags = success. ? 
LASTUSED for player chars. seconds
CHECK -Seems ok = released animals still follow their owner
CHECK -Seems OK- Spawns seems to be hovering around their spawn point and not moving
Meditation:  
[SKILL] all 0 to 100 percent.
DELAY=2.0,3.0 // per stroke.
EFFECT=0.0,100.0
ADV_RATE=10.0,200.0,800.0 = reveresd from old.
VALUES=
Bandage washing not working (it seems so anyway might have to wash them somewhere else)
NPC re-lighting torches a million times ?
Ingot smelting yield for one ore is 1.
x) If in war mode, summon a animal, you end up fighting yourself
Healing - you get two messages about applying bandages when you heal yourself/anyonelse  unequip on heal  healrates totally screwed up 100 heal 100 anat = crazy healing  
SECTOR.RAIN SECTOR.DRY weather transition problem.
MORE1l, MORE1h, MORE2l, MORE2h
remove "Rune to:" header
CAN'T FIND THIS- they don't count fists or daggers as a criminal offence, 
  thus getting the npc's to attack them and making the npc grey and free to kill.
CALL FOR GUARDS WORKS FOR ME - Just hit the blue npc or player one time in war mode. The aggressor WILL NOT
 be flagged criminal until the victim die. Or the aggressor can go in peace
 mode and let the blue attack. The blue will become grey to him and finally
 the aggressor will kill the blue and loot him without any problems. I tested
 it, it works. Some players seem to use this for kill any blues in town.
NOT ON SELF = curse, weaken, clumsy, feeblemind all consume regs but have no spell effect (no reduction of stats)

---- 0.55h --------------------------------------------------------------------
---- 04/04/2001

CHECK - OK - refresh potion
keys to houses going blank
3) Hatches on boats wont open?
4) No Keys for tents boxes (Fixed this problem by adding a sign to the multi)
TAGLIST for multi, script, account, cchar
x loot while hidden
player use bandages on self,-> get 2 messages
Stealing off corspses still works, should never be able to steal off a corpse
murderer and criminal titles capitalized.
the bug appears if the archery butte is linked to an item. if the item it is linked to is dclicked, the archery butte reacts as if itself had been dclicked.  (Same with pickpocket dips and training dummies and alot of other things).
With GM or PC, if you try to fill a keg with potion you get the you cannot use this yet message. I have a mortar and pestle. Tested at GM alchemy skill for both GM and PC.
In UO3D, if you log into an account that has no characters, you get a message
  that says "You already have 5 characters".  -- Fixed AD 3/31/2001.
Increased maximum item name length to 256.
The teleports in the map script, like entering dungeons should not allow NPC's to travel through them unless they are pets. This will keep monsters from harder levels roaming to easier levels.
CHECK - .sayua x,x,x,x,test -- Works, but was returning false, so it would say "Not a valid command or format"
It seem the off duty vendor brain act though it's just a vendor that has ran out of goods..
Party System reveals your account name (not password) to any person you ask to join.
CHECK - OK - 55g deletes all shrinked npcs on startup?
CHECK - OK - kills down by 1 each login ?
Can't attack things u can't see.
fix silly torch dupe AGAIN !

---- 0.55i --------------------------------------------------------------------
---- * date unknown

.ACCOUNT name ADD password changed to .ACCOUNT ADD name password
working tool tips
x A way to check if skill requirments when casting like IF (<SRC.CANMAKE>==i_arrow) something like that
x Poison needs to release a paralyzed person
x Item i_fire is being picked up by players when being created suring smelting
set color will not update imediately
5) Resources in Other Mapplanes like (1) and so on (MAP.SCP Attached)
6) Undefined Symbol error on region tags in housing.... Look at lines 4270 & 4263 in sphereitem_housing.scp

---- 0.55j --------------------------------------------------------------------
---- * date unknown

.55j
uid.x.name is broken
i_multi_house_wheat_cottage
UNICODE to UTF8 convert for LINUX
syntax error with " if ((<morey><0) || (<morey>>1000))"
port +1000 for the accounts ?

REGIONRESOURCE replace AMOUNT_LO,AMOUNt_HI with AMOUNT=lo,hi
REGIONRESOURCE replace SKILL_LO,SKILL_HI with SKILL=lo,hi
REGIONRESOURCE add REAPAMOUNT = range of amount to find in 1 try.

---- 0.55 R1 ------------------------------------------------------------------
---- 14/11/2003

11-11-2003, Zorm
Fixed dye anything, now has to be a dye tub
Added checking to strings to prevent exploits
Candle dupe has been fixed
Layer_horse can no longer be picked up by players
Messages in message boards can no longer be picked up by players
Stats max on create character raised from 66 to 80, allows new prof.txt
Now checking colors for pants and shirt when creating a character
Added more checking to a players name when creating characters
Teleport effects should no longer harm players
Pets now clear all old owners when getting a new one
Fixed showing of hp to other players
Administrator account is no longer auto admin
If you attempt a command and can't use it it comes out as normal speech
death menu option is no longer sent
guild mates no longer give you a kill count/karma/fame when you kill them
speech support improved. If you send unicode text it is handled throughout as unicode
non unicode text is sent back out as unicode text

12-11-2003, Kell
- Added @CallGuards as a propper trigger, "return 1" cancels guards being called
- Changed @Logout so that "return 1" disallows instalogout.
- Added support for the following TAGs on characters:
  TAG.NAME.ALT (alternate name, good for incognito effects)
  TAG.NAME.PREFIX (alternate prefix, if not set, defaults to Notoriety prefix - lady/lord)
  TAG.NAME.SUFFIX (suffix for the name)
  Note that a space isn't added for prefix or suffix on purpose, to allow text to be
  glued to the name. You can add a space by using quotes, as in: TAG.NAME.SUFFIX="text "
- Using open door macro now triggers double click event.
- @DClick is now triggered on NPCs BEFORE attempting to mount, paperdoll or open
backpack ("return 1" cancels)
- If REAPAMOUNT isn't present, AMOUNT/3 will be used (it won't just default to 1).

13-11-2003, Kell
- Player characters with conjured flag get unmounted and the flag removed on death. Useful
to leave no corpse behind ( under ON=@Death : flags = <flags> | statf_conjured ). This would
be better as a server setting.
- Fixed spider webs remaining for days, and spider silk too (increased item count too much)

14-11-2003, Zorm
- Fixed client 1.26.x, it may now log on a 55i server
- Updated addbark, addbarkunicode, addbarkspeechtable to follow OSI better

---- 0.55 R2 ------------------------------------------------------------------
---- 27/11/2003

14-11-2003, Kell
- Fixed parsing of <<args>> or any other nested <var> btw. Also fixed parsing of numerical commands
  (skills) so that <7> actually works for accessing skill #7 (this didn't make it to .55R1).
- Fixed dumb log file being created out of place. Will still happen when Sphere is run as
  an NT service though.

15-11-2003, Zorm
- Added LOS check for taming
- Changed m_defense from BYTE to WORD, thus fixing the bug with AR > 255
- CanSeeLOS fixed, now checks if target object z is greater then myz + 14 if so blocks
- Kill count decay should be fixed
- Can no longer steal from trade windows or game boards
- ATTR_OWNED items may no longer be magic locked
- Added @DeathCorpse, argn1 = corpse?
- Trade window items are now dumped to back before corpse is made
- Now checks accounts when first sent
- Added @start in skilldefs
- Provoking players disabled

16-11-2003, Kell
- Identified problem regarding vanishing horses. Apparently, they stop acting as ridden, so instead
  of deleting them I will just try and restart their behaviour again. If this fails, they still
  shouldn't be deleted, and a new message should be printed out. To test, try creating a horse, mount
  and then worldsave.
- Made sure that ABORTED skills don't hand out experience for failure. Only those that actually fail do.
  ( this fixes lumberjacking / mining exploits ).
- Added support for TAG.NAME.HUE (name colour)
- Added @SkillSelect to character events, and @Select  to SKILLDEFs ("return 1" aborts).
- Added support for FORCHARS/FORITEMS/FOROBJS the correct way: SRC is retained and the default object
  within the FOR block is the object being looped through.
- Added @SkillSuccess to character events, and @Success to SKILLDEFs ("return 1" aborts).
- Changed @SkillStart so that "return 1" actually aborts the skill (same for @Start in SKILLDEFs).
- Changed @Login so that "return 1" disallows logging in.
- Added @UserSkills ("return 1" cancels the skill window being displayed).
- Added @UserStats  ( user requested stats update, return value is ignored )
- DBG: Added @SkillMakeItem to character events, triggered after the item has been created:
  "return 1" deletes the item
  "return 0" bounces the item as usual, but with no extra messages (potion, quality message)
  "return"   bounces the item as usual.

17-11-2003, Kell
- Hopefully fixed the bug with resyncing SPELL sections.
- Added triggers to SPELL sections, so you can now independently code spells:
  @Select ( "return 1" cancels, "return 0" skip checks, "return" default behaviour)
  @Start  ( "return 1" cancels )
  @Fail   ( "return 1" cancels the fizzle effect).
  @Success
- Changed SERV.LOG to allow writing of messages to the log. New syntax is:
  serv.log @enable   -- enables logging
  serv.log @disable  -- disable logging
  serv.log @toggle   -- toggles logging
  serv.log text      -- log text to console and file

18-11-2003, Zorm
- Fixed commands going to npcs, as well as more problems with unicode speech
  support - BROKEN
- CGTypedArray, SetCount, DestroyElements, crashes on shutdown. Needs more
  work to fix
- Fame gain fixed

18-11-2003, Kell
- Moved tags to CObjBase so all types of objects can have tags. Removed special
  handling of TAGs from characters, script items and multi items.
- Fixed problem when resycing SKILL sections (spheretables.scp) would mess up
  Skill_ defnames ( and the ACTION field on characters ). One no longer needs
  to use workarounds like my FIXACTION function. Memory corruption problems
  when resyncing SPELL tables should also be fixed.

18-11-2003, DarkStorm
- Started fixing some issues preventing sphere to compile on linux (CSocket.h)
- Managed to make it compile on Linux, comitted all the changes neccesary and
  made sure it still compiles on windows.
- Implemented some code changes to remove the ncurses dependency on linux and
  activated the console again. 
- Implemented Colors on the Linux Console

19-11-2003, DarkStorm
- Added MD5 Password support via MD5PASSWORDS=1 in sphere.ini. If you activate
  this, accounts will be saved with the password encoded (existing non-encoded
  password will be converted). WARNING: disabling it afterwards won't restore
  the passwords to plain text, and thus you won't be able to login with those
  accounts. Once enabled, and the accounts file saved this setting should not be
  changed (unless you set the passwords by hand).
- Removed the ScriptEngine Folder from the VC++6 project and wrapped an #if
  defined() around the three functions that used it. It seems unused in the
  productive gameserver, so i think we can remove the additional 400kb of
  possibly error prone code.
- Removed the ScriptEngine Folder from the VC++ 7 project too
- Changed the VC++ 6 projects to use the shared CRT. (It's shipped with windows
  since 95)
- Rewrote the new[], new, delete and delete[] operators and removed the memory
  footprinting. 
- Tuned the optimizations for VS.NET 2003 Release mode a bit.
- Removed the StatusReports from ntservice.cpp before it loads the ini for now
  Reporting as a service if you aren't a service isn't supposed to be happening,
  there needs to be a better fix than mine (maybe a -service argument?)
- added a check to CAccount to filter out accounts named "eof"
- fixed the help provided by .serv.accounts

19-11-2003, Kell
- Added a .DBG command, to put test code in. At the moment it'll be used to try
  and crash the server in various ways, to see how it behaves on Linux.

20-11-2003, Kell
- Added INTERRUPT=X,Y to SPELL sections in spheretable_x.scp. This controls
  the chance to fizzle a spell when hit in combat, at different Magery levels.
  Default is 100.0, 100.0 (always fizzle). With a setting of "100.0 50.0" a GM
  mage would only fizzle half the times.
- NPCs equipping stuff that is too heavy for them on @NPCRestock won't
  spit hundreds of errors to the console.
- Added LOSTNPCTELEPORT=X to sphere.ini. If X is greater than 0, NPCs that have
  a HOME point set will now teleport home if the distance to their HOME is above
  X. This fixes it when they go through portals, then get lost in the map.
- Fixed problem with mounted NPCs dying and leaving a lingering object which
  could leak later.
- FINALLY made it crash resistant under Linux - it is now trapping most
  signals AND launching exceptions correcly. Tested with a single thread
  (FREEZERESTARTTIME=0 in sphere.ini) and no background saving. More tests
  to come.
- Changed the loading procedure so sphere.ini is loaded prior to any message
  being printed to the log file. This allows the LOG= line to be parsed and
  log files to be created in the appropriate folder, so to make sure, LOG=
  line should be among the first in sphere.ini
- Changed the Linux makefile to include the necessary exception flags.
- "return 1" from a skill's @Start or @Success trigger doesn't trigger @Fail. If you
  do want @Fail triggered, set ACTION=-1. This is compatible with .55i scripts, because
  seeing as "return 1" didn't work there, scripts which did mean for @Fail to be triggered
  should already be using ACTION=-1

21-11-2003, Kell
- Linux version now works with secondary threads (FREEZERESTARTTIME not 0),
  and is able to restart the main loop if it freezes.
- Added a toggle to sphere.ini, "EXPERIMENTAL", to allow setting flags
  which enable several experimental features. You will see these referenced
  in the changelog as EF 0x????.
- EF 0x0001 enables a packet fix for Linux servers, for XCMD_Spy. Enable this
  if your clients get a login error.
- EF 0x0002 enables new UNICODE fixes.
- EF 0x0004 enables zorm CanSeeLOS fix. This is required, seeing as that fix
  won't allow you to cast uphill - a minor problem, but worth having a flag to
  toggle that behaviour.
- EF 0x0008 disables interruption of fight skills if the ACT changes. This
  fixes scripts that re-implement combat, and cases where combat with multiple
  enemies would break swings.
- EF 0x0010 enables the INTERRUPT field in SPELL sections. INTERRUPT=100.0 100.0
  SHOULD yield the standard always fail behaviour, as should not having an 
  INTERRUPT line at all. But seeing as this wasn't fully tested, you MUST enable
  this flag to make any use of the interrupt values.
- Suggested value for EXPERIMENTAL field in sphere.ini is:
  EXPERIMENTAL=013

22-11-2003, Kell
- LOSTNPCTELEPORT now checks for homedist, and won't teleport if the NPCs are still
  within home-distance. This allows you to have low values.
- Further stability fixes for Linux version, it should now work fine with background
  world saves.

22-11-2003, Zorm
- Added login crypt keys for clients up to 3.0.3, must add support for packets up to
  0xCC or atleast lengths.
- I think I fixed unicode speech now

22-11-2003, Kell
- Attempted to fix the bug where setting ACT in a @Hit trigger stops
  the swing, by restoring it after the trigger.
- Added SKIPDIFFICULTY (0 by default, or 1) to SKILL sections. Setting it to 1
  skips the hardcoded difficulty check and allows one to do their own skill difficulty
  checks in @Success, and "return 1" in there for a failure.
- Fixed @Select triggers which return 1 leaving the character waiting for an action.

23-11-2003, Zorm
- Experimental Precasting support, enable with experimental flag EF_Precast (flag 020),
  this is not well tested - it's a work in progress. Included here just for the sake of
  getting feedback.

24-11-2003, Kell
- SERV.SPELL(x).yyy, where x is the number of the spell and yyy is a key from the
  SPELLs section, such as MANAUSE or RESOURCES. You can also use RESCAST for a
  descriptive name of resources (much like RESMAKE works for items).
- SERV.SKILL(x).yyy, where x is the skill number and yyy is a key from the SKILLs
  section, such as KEY or TITLE.
- Experimented with breaking SKILL and SPELL sections to seperate files, loading them
  off-order and reloading, no problems found. Notice however that files containing
  SPELL sections must load after the base items (like spheretable_x does).

25-11-2003, Kell
- Changed it so NPCs with SPIRITSPEAK equal or above 100.0 are able to see dead players,
  like healers can. That allows one to use ON = @NPCSeeNewPlayer and an human brain to
  implement NPCs that interact with the dead, without having to put up with healer's
  default behaviour.
- Added flag NORESROBE to sphere.ini. If set to 1, players will not be given a robe
  when resurrected.

26-11-2003, Kell
- Changed SERV.SPELL and SERV.SKILL so that they accept either number or defname
  (SKILL also accepts plain names, like <SERV.SKILL(Magery).TITLE>)
- SERV.ITEMDEF(x).yyy to access data from ITEMDEF sections (similar to the above)
- SERV.CHARDEF(x).yyy to access data from CHARDEF sections (similar to the above)

27-11-2003, Kell
- On the brink of release, fixed a serious problem inherited from .55j where unknown
  keywords being evaluated would *silently* come out untouched. As an example,
  '<SERV.NONEXISTANT>' would silently come out as '<SERV.NONEXISTANT>' instead of ''
  as in .55i. If used with tags, it could end up getting weird values and make it hard
  to catch the error, as no error was being shown. It now returns '' for stuff it can't
  evaluate, BUT also prints an error in the console. I believe this is the best possible
  behaviour.
- Linux version is now declared stable. A minor problem still exists, in that pressing
  CTRL-C in the console is not a good way to terminate the server, and will very likely
  get it into a loop. This is a minor problem though, still trying to solve it. Test
  servers report uptimes of 2-3 days with 10-20 players online (that's all the testing
  I could do).
- Added CANMAKESKILL to test ONLY for the ability to make an item skillwise (it ONLY
  tests the SKILLMAKE line), not resources.
- Added "fval", which works exactly like "eval", but formats the output in x.x format.
- There seems to be an issue with skills that use @Success to cancel a skill, in that
  sometimes the skill won't be registered as finished, and using the skill again will
  show the "you must wait" message. Players can just double-tap TAB to overcome this,
  or you can use ACTION=-1 to force skill termination. Need some feedback on this, as
  this behaviour might actually be due to bad scripts, so feel free to post comments.
- Many issues with the default 

---- 0.55 R2a -----------------------------------------------------------------
---- 02/12/2003

30-11-2003, Zorm
- Fixed text going all uppercase sometimes and gm body commands.

01-12-2003, Kell
- Added @EquipTest and @ItemEquipTest (return 1 cancels equiping).
- Changed @SkillItemMake so that "return 1" only deletes the item if it's container hasn't
  been set.
- Fixed bug with skills apparently not finishing (also fixes cartography).
- Fixed summoning bug (Linux only). This has to do with doing propper memory initialization
  prior to using points.
- Removed all specific handling for SERV.xxx(y).zzz and made it generic. You can now use
  either syntax: SERV.xxx(y).zzz or SERV.xxx.y.zzz.
- Changed default release options for speed optimization.

02-12-2003, Kell
- Fixed REAPAMOUNT / AMOUNT. It can now take multi-point values in a format similar to
  ADVANCE for skills.
- Added SPEECHSELF= to sphere.ini, to allow setting the name of the speech trigger that
  should be called to intercept player speech. Suggested: SPEECHSELF=spk_player
  "return 1" in said trigger stops the player from actually talking.
- Removed hard coded "home home home" - one can just use the default spk_player speech if
  that feature is desired (but mostly it's not)
- Added SPEECHPET= to sphere.ini, to allow setting the name of the speech trigger that
  is called when a pet listens to its master. "return 1" in said trigger stops the pet
  from listenning.

---- 0.55 R3 rc1 --------------------------------------------------------------
---- 08/01/2004

09-12-2003
- Added TAGs to CHARDEF/ITEMDEF sections. If a TAG does exists at an instance it overrides
  the def value.

10-12-2003, Kell
- Added OptionFlags to sphere.ini, to set multiple options. These will be named OF_
- Added OF_Magic_IgnoreAR = 0001, so that AR doesn't count to stop damage spells.
- Added ACTDIFF to characters to obtain the current action difficulty.
  Suggestion: One can use ACTDIFF to modify difficulty within skill Start triggers.
- Added a 6th parameter to the EFFECT command, the hue for the effect.
- Added @Effect trigger to spells, triggered after @SpellEffect
- <TAG0.xxx> can now be used to assume "0" as the default value for a tag.
- TAG0.xxx = yyy can now be used, if yyy is 0, then no tag will be recorded (same as setting
  to a zero length string)
  Using TAG0, you can thus have tags that are only recorded if they are not 0. This is great
  for tags that are usually 0 and are often used (e.g. tags that must exist on all characters).
- Added VAR0 (same functionality as TAG0, but for VAR).

11-12-2003, Kell
- Added OF_Magic_CanHarmSelf = 0002, so that spells with SPELLFLAG_HARM will still affect the
  caster (useful for SPELLEFFECT in scripts)
- Changed rand(x) to allow a 2nd parameter rand(x,y) and return a random number between x and y,
  if y is present.

12-12-2003, Kell
- You can now use @color,font in SYSMESSAGE and MESSAGE. font ranges from 0 to 9, and I quote:
      FONT_BOLD,  // 0 - Bold Text = Large plain filled block letters.
      FONT_SHAD,  // 1 - Text with shadow = small gray
      FONT_BOLD_SHAD, // 2 - Bold+Shadow = Large Gray block letters.
      FONT_NORMAL,  // 3 - Normal (default) = Filled block letters.
      FONT_GOTH,  // 4 - Gothic = Very large blue letters.
      FONT_ITAL,  // 5 - Italic Script
      FONT_SM_DARK, // 6 - Small Dark Letters = small Blue
      FONT_COLOR, // 7 - Colorful Font (Buggy?) = small Gray (hazy)
      FONT_RUNE,  // 8 - Rune font (Only use capital letters with this!)
      FONT_SM_LITE, // 9 - Small Light Letters = small roman gray font.
- Changed SKILLMAKE to allow getting an individual resource in the list. SKILLMAKE.1 gets the first,
  SKILLMAKE.1.VAL gets the value and SKILLMAKE.1.KEY gets the associated resource key.

13-12-2003, Kell
- Added "RELEASE" to character verbs, does the same as "release" when spoke to a pet.
- Added @NPCFollow trigger, called when an NPC is following someone.

14-12-2003, Kell
- Changed ATTACK to accept as parameter the UID of the character to attack.
- Changed TRY to make no plevel or touch/distance checks. Use TRYP if you want those checks
  (TRYP 0 only checks for touch/distance, not plevel).
- Added an useful keyword to scripts, that allows one to use "OBJ" as pointer to an item. It's
  similar to ACT but it can be used anywhere. 
  Example:
     OBJ  = <UID>
     SAY You are <OBJ.NAME>, with uid <OBJ.UID>.
- Changed MEMORY to allow an UID as parameter, so you can now find the memory related to a specific
  UID. If no argument is used, it uses SRC's UID as usual. Also changed it to be read/write.
  Example:
     MEMORY <SRC.UID> 0200  // set memory 
     SAY Memory flag regarding <UID> is <MEMORY.<SRC.UID>>.

15-12-2003, Kell
- Changed @UserSkills so that <argn1> is the number of the skill being updated, or -1 for the skill
  list. This allows one to stop sending of skill updates to the client.
- NPCs will not say "Yes Master" if SPEECHPET is set in sphere.ini (you can script it in the speech
  triggers if you want them to). If SPEECHPET isn't set, they still won't say anything unless they
  can see their master (which is great for GMs). Players will no longer respond "Sorry".
- Resource gathering was changed so that the SKILLMAKE of the resource item is checked. Resources
  which fail the canmake check are ignored and aren't part of the randomization process. If for some
  reason one wants to go back to the old style, just comment SKILLMAKE on the ore itemdefs.
- Added OF_Skill_DiffFirst = 0008. With this flag turned on, difficulty for a skill is calculated BEFORE
  calling @Start/@SkillStart. This has the advantage of allowing the difficulty for a skill to be changed
  via ACTDIFF within that trigger. Notice that for a skill to fail, ACTDIFF must be set above the current
  (modified) skill. Setting ACTDIFF to a negative value means that the skill will abort, that is, @Fail
  will not be called and no skill gain will be attempted. To always fail set ACTDIFF to a value above the
  possible skill (say, 1001).
  This has the sideffect of calling @SpellCast before @Start/@SkillStart. On the other hand, it is the
  ultimate tool for implementing your own skill difficulties.
  Here's an example of making the difficulty for arms lore AT LEAST the same value as for making the item
  (using the primary skill). Characters with skill above ACTDIFF will always succeed.
  ON = @Start
   if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )
      SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>
   endif

16-12-2003, Kell
- You can now use NEWITEM, NEWNPC and NEWDUPE in item scripts, the items will be created into "NEW". Using
  these commands on a character will create the items in both NEW and ACT. If you want to use these
  on a character without changing ACT, use SERV.NEWITEM, etc.
  Example:
    NEWITEM i_gold
    NEW.AMOUNT 100
    NEW.P = <TOPOBJ.P>
  You can also use NEW as a temporary handler, much like you can use OBJ (and to an extenct, ACT).

17-12-2003, Kell
- Functions can now receive "args" when being evaluated, as in <SRC.myfunction Say hello>
- Added RANGE=min,max or RANGE=max (min defaults to 0) for ITEMDEF and CHARDEF. Default weapon range
  is 1. Default character range is 1. Range is calculated as (character + weapon -1). 
  Example: Assuming all characters are RANGE=1 (which they are), putting RANGE=2 in an halberd
  means characters equipping it can hit 1 square further.

18-12-2003, Kell
- The main section for DIALOGs is now fully interpreted like other scripts, allowing you to add logic
  to your dialog, use IFs, etc. The only limitation at the moment is that gump commands are only 
  allowed right in the DIALOG section, and not within FUNCTIONs, but hei... it's better. :)
- Dialogs will no longer conflict with each other, this allows for permanent on-screen dialogs. INPDLG
  works too, seeing as there can be only one INPDLG window onscreen at all times.
- Added RESOURCES.n, RESOURCES.n.KEY and RESOURCES.n.VAL to items/characters.

19-12-2003, Kell
- To make writing dialogs easier, added a cursor and relative coordinates:
     dorigin 50 50  // sets the origin to x=50, y=50
  Using "*" near a coordinate makes it relative to the origin, and displaces the origin by some amount:
     dtext     *0    *10    0    the origin is now x=50 y=60, so is the last location
  Using "+" near a coordinate makes it relative to the last location w/o changing the origin.
     dtext     +10     -    0    adds 10 to X (y=150, o.y=100)
  As an example, imagine writing a list of text with 3 columns, each seperated via 200 x and 20 space
  between each row:
  dorigin 10 10
  // first row
  dtext     *0   -    5   1:
    dtext  +10   -    0   the text for row1, col1
  dtext   *200   -    5   2:    // x orig = 200
    dtext  +10   -    0   the text for row1, col2
  dtext   *200   -    5   3:    // x orig = 400
    dtext  +10   -    0   the text for row1, col2

  And now one only has to go down one row. and the text is quite similar. This isn't too easy to explain, it's
  there for whomever might find it useful. If you can't think of a use for it, just ignore it. ;)
- Fixed the bug with FORCHARS/ITEMS/OBJS and keywords starting with "FOR" (like FORensics).
- Changed textadd and gumptext to collapse equal strings of text to the same index. So if you use
    gumptext 10 20  This is an example.
    gumptext 10 40  This is an example.
    gumptext 10 60  This is an example.
  It will only generate ONE text id. This does away with the need to have a seperate TEXT section. Granted,
  such a section is still useful for keeping strings all in one place (in this case it'd be useful), but it
  is no longer mandatory, it becomes simply a matter of style/choice.

20-12-2003, Kell
- Equal PLEVEL should be able to see each other, so they are now.
- You can now open a dialog in a specific page, with DIALOG  d_dialog_name  pagenumber. This isn't actually
  possible with the UO client - what it does is recalculate the dialog page/button numbers so that the selected
  page is first. It's completly invisible though, and works perfectly.
- Added a new command - DTEXT - to gumps, which does the handling of text ids for you (d stands for dynamic):
     dtext x y color  Actual text comes here.
  Text added with gumptext is actually added to the [DIALOG ... TEXT] section. If you're only using a given
  text string once, then it's actually faster using this than using "text" and adding it to the TEXT section
  of the dialog. Simmilar commands, DCROPPEDTEXT and DTEXTENTRY are also in, also taking text instead of an
  index. DHTMLGUMP is also in, but notice that the syntax is like HTMLGUMP, except that you ommit the ID and add
  the text in the end.
  With these changes, you can completly ommit the [DIALOG ... TEXT] section of dialogs. Only those strings
  that are commonly used throughout the dialog should you put in the [DIALOG ... TEXT] section.
  Internally, both gumptext and textadd simply add stuff to the dialog as needed, and send normal "text"
  commands to the client, so they're safe to use. But they free you from having to keep track of a LONG
  list of numbers, and allow you to shape and modify your dialog w/o bothering with text ids.
- You can now use FUNCTIONs that issue gump commands. So you actually make your own gump commands!!! Death to
  copy & paste dialogs!

21-12-2003, Kell
- Fixed a bug in that setting stats & skills via scripts wouldn't correctly parse things. For instance, numerical
  expressions.
- Started work on MANUAL.TXT, to detail the current state of things like triggers and their arguments, seeing as
  reading this changelog is probably a difficult task for a lot of people.
- Changed args in functions to be writeable. This is useful in scripts, but for triggers, the server will read
  back the values and use the new ones wherever it makes sense. For the time being, these triggers were
  changed:
     @GetHit, ARGN1 is the damage being apllied, ARGN2 the damage type (as usual, but now writeable). 
     @Hit, ARGN1 is now the raw damage being applied, prior to armour (writeable). ARGO is the weapon (if any).
     @PersonalSpace, ARGN1 is the stamina required to move (writeable). "return 1" stops the movement, "return 0"
     allows the movement but shows none of the hard-coded messages. Plain "return" or no return, works as standard.
  @Hit, @HitTry and @HitMiss were also changed so that ARGO is the weapon being used (handy so you don't have to
  be looking at layers n stuff).
  I should add that ACTDIFF is also available, and it can be used to change the difficulty of a skill, even make
  a skill succedd that would otherwise fail (by setting it to 0). It can also be used in @HitTry now, and if
  set to any non-negative value, a missing hit will instead succeed.
- Added StrEat function, which removes a word up to the space, from a string (<streat("hello there friend")>
  or <streat hello there friend> return "there friend")
- Added <SERV.LOOKUPSKILL skill name> which returns the skill number for some text or -1 if not found.
- After some beta-testing, a few fixes to dialogs.
- LOCAL.xxx within functions for LOCAL . They're a bit more efficient on servers with lots of global
  vars due to faster lookups ). LOCAL variables always come up initially as "0".
- ARGN1, ARGN2 and ARGN3 are set for functions with numeric arguments. So whenever possible, use these instead
  of argv. Example: "myfunction  123 50 89" - these 3 values will be parsed into argn1, argn2 and argn3

22-12-2003, Kell
- Functions can now return strings using "return". Notice that this behaves like TAGs, in that if you do
     return 2+2
  then "2+2" is returned, and not "4". You'll have to explicitly call "eval" on what you want
  to return:
     return <eval (2+2)>
  Returning strings causes no extra lag, seeing as the old method of returning a value relied on the same
  string which is returned (EVALed). So it is actually faster (although hardly noticeable).
  This might pose a problem problem if you have "return rand" or similar, instead of "return <eval rand..."
  seeing as multiple uses of the return value re-evaluate it, generating a new random number - again,
  similar to TAGs.
  MAKE SURE YOU HAVE "EVAL" on your "return" lines, wherever you want the result of a calculation to be
  returned. The next version will probably not have an EF_ReturnString flag.

- Modified the profiling function to keep track of average consumption over time. The average time is
  calculated each second as 90% of the previous average time plus 10% the current time. This poses some
  resistence to spikes. 
- Added a new keyword to @Create / @NPCRestock and template scripts: FULLINTERP. Set FULLINTERP=1 to allow the
  use of functions, ifs, etc. Example:
  ON = @NPCRestock
     ITEM=i_cape
     FULLINTERP
        ITEM=i_robe
        MY_FUNCTION_CALL
  You can use FULLINTERP 0 to disable the feature, after you've enabled it, but it's usually pointless, seeing as
  this FULLINTERP affects only the remainder of the current script. Bear in mind that the usual restrictions apply,
  seeing as the created NPC is not ingame yet.

23-12-2003, Kell
- Added access to TERRAIN and STATICS either via P.key, MOREP.key or SERV.MAP(x,y).key, with key being one of:
    TERRAIN The terrain ID
    ISDIRT  Checks the terrain ID to see if it's dirt.
    ISGRASS guess
    ISROCK  dunno
    ISWATER guess again
    STATICS Number of statics in the position
    STATICS(n)  ID of static Nth static ( eg: <SERV.MAP(200,300).STATICS(0)>. Shows no error in the console
    if static isn't present, returning 0 - useful to test for a static w/o counting or looping.
    STATICS.n   same
    STATICS(n).key  Get a key from the appropriate ITEMDEF. eg: <SERV.MAP(200,300).STATICS(0).NAME>

- Added basic iterator construct, WHILE, with the following syntax:
     WHILE ( condition )
  // do stuff, current iteration number in <LOCAL._WHILE>
     END // or ENDWHILE

  also added FOR, terminated with either END or ENDFOR, with the following syntax:

     FOR 5  // loops from 0 to 5, current iteration number in LOCAL._FOR
  or FOR 3 5  // loops from 3 to 5, current iteration number in LOCAL._FOR
  or FOR K 5  // loops from 0 to 5, current iteration number in LOCAL.K
  or FOR K 3 5  // loops from 3 to 5, current iteration number in LOCAL.K
  // do stuff
     END  // or ENDFOR

  Changing these LOCAL variables has no effect on the loop.
- Wrote a small assembly function to access the high resolution timer. Works for both windows and Linux,
  now being used in profiling. Profiling works on Linux now. It also looks a lot better in the console
  thanks to the monospaced font.
- Changed the console font under Windows to Courier, which is monospaced, so things come out aligned in
  the console. Under Linux, the console is naturally monospaced.
- You can now add new SKILL sections, up to 70. SERV.MAXSKILL tells you how many skills are loaded. Notice
  that they won't be sent to the client though, the client doesn't support them (hint: @UserSkills). There
  is also a FLAGS key for SKILL section, with the following values:
     [DEFNAME skill_defs]
     SKF_SCRIPTED 01  // no hardcoded behaviour, only triggers are called.
     // feel free to add new tags you find useful, but only above 01000 please, to make room for future
     expansion
  This is heavily experimental, mess with it at your own risk.
- SKILLSELECT skill - force a button select event on the skill list

24-12-2003, Kell
- Fixed TYPEDEFS section in spherefs.scp loosing values when resynced.
- Added <CANMOVE dir>, takes a direction as argument (like WALK), returns the area ID we're moving to,
  or 0 if no move is possible.
- Added <MOVE dir>, takes a direction as argument (like WALK), returns the TILE flags for that position.
  Notice that flag 04 is walkable. Here's a list of flags, you can copy&paste it into spheredefs.scp. This
  keyword might change in the future.


[DEFNAME tile_flags]      // by Shadowlord
tilef_background  01    // No idea. None whatsoever. Maybe it's the blackness.
tilef_weapon    02    // I smack thee with this here ... club?
tilef_transparent 04    // Yeah. So we can see through it?
tilef_translucent 08    // Okay...
tilef_wall    010   // Hey look, we can't walk through it!
tilef_damaging    020   // Lava, perhaps? Fires, hmm!
tilef_impassable  040   // Mountains and stuff, I'll wager.
tilef_wet   080   // Water? Or mud? Or a slick road in a rainstorm? Probably the first.
tilef_unknown   0100    // Uh...
tilef_surface   0200    // Tables or something?
tilef_bridge    0400    // I wonder why they'd have a flag for that.
tilef_stackable   0800  
tilef_window    01000   // So we can see/shoot out?
tilef_noshoot   02000   // ? We can't shoot out or something? So, like a glass window maybe?
tilef_prefixA   04000   // A card
tilef_prefixAn    08000   // An apple
tilef_internal    010000    // hair, beards, etc
tilef_foliage   020000    // Probably bushes and tree leaves and stuff.
tilef_partialHue  040000    // semi-glowy?
tilef_unknown_1   080000    // Well, gee. I should see if it's used on anything...
tilef_map   0100000   // Sounds good to me.
tilef_container   0200000   // They flag these!?
tilef_wearable    0400000   // Omigod!
tilef_lightSource 0800000   // I'm getting tired of typing repetitive shiznit now.
tilef_animated    01000000  // Like fire again. And stuff. Those spinny propeller thingies!
tilef_noDiagonal  02000000  // !?!???!!?
tilef_unknown_2   04000000  // I really hope some of these unknowns are n/w/s/e facing flags.
tilef_armor   08000000  // Armor, okay, so does that count shields? Hmmm?
tilef_roof    010000000 // "Don't fall through me!" Or why isn't it just flagged surface or something?
tilef_door    020000000 // Okay...
tilef_stairBack   040000000 // Don't we have stairs that go forward or left too? This could cover both...
tilef_stairRight  080000000 // Well, whatever, you can climb them, so, hey... Good use for a 

NOTE :  EF flags change from version to version, so make SURE you're using only the EF
  flags you want, if any.

SUMMARY of flags for Sphere.ini:
OptionFlags=  // Flags for options that affect server behaviour but not compatibility
  0001    // OF_Magic_IgnoreAR
  0002    // OF_Magic_CanHarmSelf
  0004    // OF_Magic_StackStats      (Do NOT set this yet)
  0008    // OF_Skill_DiffFirst
  0010    // OF_Archery_CanMove
  0020    // OF_Magic_PreCast

Experimental= // Flags for options that affect server behaviour and which might affect compatibility
  0001    // EF_XCMD_Spy
  0002    // EF_UNICODE
  0004    // EF_CanSeeLOS
  0008    // EF_ReturnString
  Suggested value: EXPERIMENTAL=01

- It's Xmas! So I'm off to eat some turkey for the next 48 hours. :) Does this count as an entry in the
  changelog?

27-12-2003, Kell
- Added support for color & render mode in EFFECT. If no color or render effect are specified, old
  effect packet is still sent (which spares 8 bytes). Otherwise the new packet type is sent. Tested
  and works with clients from 2.0.3 (should work on all 2.0.* series).
- Consolidated support for 3.0.* clients, they should work fine, up to LBR (they already worked, just
  spitted some error messages).
- Added modulus (%) operator in numerical expressions (eg: 12 % 3 == 0).
- Added SENDPACKET command for clients. To make it easier to send WORD(2 bytes) and DWORD(4 bytes) values, 
  allowed for 'W' and 'D' prefix to values ('B' is also supported for byte but it's redundant). Here's an
  example, of setting light level:
     SRC.SENDPACKET   04e  D<SRC.UID>  20
  Both 04e and 20 could use the prefix B, but notice how <SRC.UID> uses the prefix D to specify it takes
  the space of a DWORD (4 bytes). So much for complex scripts to break multi-byte stuff in bytes :p
  Notice also that each of the parameters is evaluated and truncated, and only then used. For instance,
  if you put 0fffffffe (which obviously isn't a byte) in place of a BYTE, what you'll get is effectively
  0fe. If you put (2+2) it'll be evaluated to "4" before being used.

28-12-2003, Kell
- Added OSTR, ODEX, OINT.
- Added MODSTR, MODDEX, MODINT - spells affect these.
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=0 and
  then do STR=60, you will get MODSTR=10 (and OSTR unchanged). 
  *** CHANGED *** read the entry for 19-01-2004
- Added MAXHITS/MAXMANA/MAXSTAM. If set to 0, it defaults to the base max stat (eg, MAXSTR defaults to STR).
  MAX always contains MOD for the appropriate stat. That is to say that if you have MAXHITS=100 and MODSTR=10
  then internally it'll be recorded as MAXHITS being 90, and if MODSTR changes, so does MAXHITS. This makes
  it coherent for stat spells, seeing as they not only change your stats but also max hits/stam/mana.
  To make hits depend on STR again, use
     MAXHITS =  // don't use a value
- You can now write TAGs on accounts. Both TAG and TAG0 are available.
- LOCAL._WHILE fixed, within WHILE loops.
- Changed dialog BUTTON sections to allow 
     ON = min max
  to grab any button with buttonID between min and max (including). Also, argn1 is the buttonID that
  actually got selected (even when specify just a buttonID and not a range, as usual). With the buttonID
  in argn1 you can write more generic functions with little fuss.

29-12-2003, Kell
- Fixed some skills not getting currectly terminated when another skill was used before they finished. An
  example of this is Spells not fizzling when a skill was used before spell ended.
- For skills, @Fail is now only triggered when failure occured due to normal circumstances (eg, failed
  difficulty). @Abort is called when failure occurs due to a situation that aborts the skill, such as
  using a new skill before finishing the previous one or an invalid circumstance.
  If @Fail is triggered, it means that the character will still get a skillcheck for failure (skill raise
  through failure), but if you do a "return 1" in there, it won't (check MANUAL.TXT).
- Started implementing propper behaviour for EF_CanSeeLOS. At the moment, it'll check the height of static
  items in the path to the target.
- The use of "SECTOR" to access keywords related to sector is now mandatory. So, to access "light" or
  "rainchance", SRC.RAINCHANCE used to work, you must do SRC.SECTOR.RAINCHANCE. This has several
  advantages - people usually already use SECTOR anyway, so this makes for faster faster execution of
  commands on characters, seeing as it has less things to try. It is also more coherent.

30-12-2003, Kell
- Fixed a small problem with KARMA/FAME that had the huge effect of blocking the client once it got different
  than 0.
- Added FEATURES= to sphere.ini, to define the features the server will enable on the clients upon connection:
   0001 - (T2A) enables chatbutton
   0002 - (LBR) enables LBR sound (plays MP3s instead of MIDI)
   0004 - (T2A) enables T2A update
   0008 - (LBR) enables LBR update (shows monsters)
  Standard .55i automatically enabled 0001 - but you could disable it.
- DIALOGCLOSE command. First argument is the dialog name, second argument is the button that should be
  triggered on the dialog - 0 if not specified. (eg: DIALOGCLOSE d_my_dialog).
  You can put this as one of the first commands in a DIALOG section, to ensure there is only one dialog of
  that type on the client.

02-01-2004, Kell
- Added connection control keywords to sphere.ini - a value of 0 disables
  any of these settings. These settings are not dumb proof. Make sure you
  know what you're doing if you set these:
  * ConnectingMax=x, where x is the maximum number of clients that can coexist
      in non-game state (http, login, etc). Older clients that are not ingame
      get disconnected when new ones come in. Default: 24
  * ConnectingMaxIP=x, as above, but per IP. Only a maximum of x simultaneous
      "not in game" connections will be allowed per IP. Notice that HTTP
      requests for instance, count as "not in game". Default: 8
  * ClientMaxIP=x, maximum number of connections per IP. This is intended to
      stop flooders, DO NOT SET THIS TOO LOW, or you risk looking stupid. There
      are MANY situations where connections can appear as comming from the same
      IP - a common one is people connecting from cybercaffes. Default: 0
- Fixed a serious bug where login errors (Bad Login) could leave a lingering
  socket. This happened because sockets were made invalid so that they'd get
  closed on the next read cycle, therefore losing all information about the
  socket. Clients are now flagged for disconnection, and socket handling is
  done when clients are freed.
  This means that there should always be a "disconnected" message to pair
  with a "connected" message.
- You will see two numbers after the IP in connected/disconnected messages.
  The first is the number of connections from that IP which are not in-game,
  whereas the second is the total number of connections from that IP.
- In savefiles, OSTR and MODSTR are now saved instead of STR. If "STR" is found,
  it'll be interpreted as OSTR. This works fine to convert old worldfiles, even
 if you have spells, because once they wear off they'll simply make your MODSTR
  negative. This works for all stats obviously (simply using STR as an example).
- Changed it so that the first time you set a stat on an NPC, if the Ostat is 0,
  it'll update Ostat not MODstat. In other words, and as an example, if you do
  STR=20 in @Create, you'll end up with OSTR=20 and MODSTR=0. If you then do
  STR=30 on the same NPC, you'll end up with OSTR=20 and MODSTR=10. 
  **** changed **** see the entry for 19-01-2003
- Fixed a small problem from R3.13 with stat affecting spells not setting MODstat
  correctly.

03-01-2004, Kell
- Added unary operators "*=", "+=", "-=", "/=", "%=", "|=", "&=" and "!=". Internally,
  what these actually do is change a line in the format:
    XXX += YYY
  to
    XXX = <eval (<XXX> + (YYY))>
  So you can do stuff like
    MANA  += 10/2     // same as MANA = <eval (<MANA> + (10/2))>
    ATTR  &= ~attr_magic    // same as ATTR = <eval (<ATTR> & (~attr_magic))>
- Added ".=" operator, to do string concatenation. Internally what it does is change a line
  in the format
    XXX .= YYY
  to
    XXX = <XXX>YYY
  This is intended to be used with things that can support strings (NAME, TITLE, VAR, LOCAL, etc)
- First attempt to implement propper LOS check counting with z. To have LOS, you must be
  able to walk in a straight line to the target (no news here) AND finish at a reasonable
  height, climbing your way to it. So, if you're on a slope you might have LOS, but if
  you're standing one floor below you won't. These extra texts have no measurable impact on
  performance Enable this behaviour with EF_CanSeeLos (04).
- Diagonal walking (eg, NW) is allowed only if the character can move ortogonally in both
  directions (NW -> N and W). This takes care of a few clientside exploits, as well as NPCs
  walking through corners. Enable this behaviour with EF_DiagonalWalkCheck (010)
- For the effect of stepping on them, all items were considered to have a height of 3. If you
  are standing higher than 3 above an item, you wouldn't trigger a step on it. Changed it so that
  if the item's height is above 3, that value is used, and not the hardcoded "3". This allows
  one to get @Step events on stuff like tables.
- If no SRC is defined at the time of a @SpellEffect trigger, then the character subject to the
  spell will be considered the SRC. This fixes SPELLEFFECT under @Timer triggers.
- Added @NPCLookAtChar and @NPCLookAtItem triggers (check the manual). Do not abuse of these
  triggers, as they will affect the CPU usage.

04-01-2004, Kell
- Added ISNEARTYPE, first argument is type, 2nd argument is max distance to search ( if not
  specified, 4 is the default ). Also added ISNEARTYPE.P, which returns "0" if false or the
  point coordinates if true.
- Changed DISTANCE to accept the UID of an object (item/char) to compare the distance, or a
  point. One can now write things like
     <DISTANCE <MOREP>>  <DISTANCE trinsic>  <DISTANCE <SRC.ACT.UID>>
  If no argument is supplied, then SRC.UID is used (as default). If the point/UID is invalid
  an error is printed to the console.
- Made TIMERD readable (its precision is 10x that of TIMER, same scale of SERV.TIME).
- Made USEITEM not check for visibility. The whole purpose of this keyword is to allow
  activating an item via scripts w/o testing for touch, so it doesn't make sense to test
  if the item can be seen. DCLICK performs the usual tests though. The "USE" keyword already
  allowed one to do "USE 0" not to test for touch, but it also tested for visibility, and it
  won't anymore if used like "USE 0".
- Spawns gems now instantly update the display as soon as you set MORE1.
- Double clicking an already negated (more2=0) character spawn sets its timer to 1 so it
  respawns next turn.
- Added MOVENEAR keyword for objects(items/chars). 1st argument is the UID of item to move
  near to, 2nd argument is the distance to the item. If 3rd argument is present and "0",
  then the item will not send an Update. Example:
     ON = @DClick
        MOVENEAR <SRC.UID> 5  // move to 5 steps away from SRC
  Notice that this movement respects walls & such (which is why it is useful).
- Set ARGN1=1 in @Login not to show MOTD scroll.

05-01-2004, Kell
- Fixed possible exploit with \n and textentry and inpdlg.
- AREA and ROOM sections in the following format
     [AREA name here]
  Should now be written as
     [AREADEF a_some_def] // ROOMDEF for rooms
     NAME=name here
  The advantage of this format is that you can resync it w/o having conflicting regions.
  Suggestions:  Keep your areas in different formats in seperate files. Either find a script
    to convert your old format to the new one or slowly convert by hand.
    Move [Teleporters] and [Moongates] to their own files (these can't be resynced).
  Note:   You do NOT have to use the new format. It is, however, strongly suggested, as
    it allows you to change an area without rebooting.
    Any future ability to save things on regions will only be available for regions
    in the new format (or regions that have a DEFNAME).
- Added CALL instruction to invoke a function, but sharing the LOCAL variables with the called
  function. Quite useful when you want to break a function in small pieces that are logically
  yet not functionally seperate. In other words, if you invoke a function with CALL, all your
  LOCAL will be available to the underlying function. Example
    [FUNCTION myfunction1]
       LOCAL.VAL1 = 12
       CALL myfunction2 1, 2    // LOCAL.VAL1 will be available to myfunction2
       // if myfunction2 changes LOCAL.VAL1 it will change here aswell.
  If you do not pass arguments to the called function, then args/argn/argv are also shared,
  and the process is faster than invoking the function w/o CALL. If you pass arguments to the
  function, then only LOCAL is shared, and the process is an infinitesimal amount slower. Not
  noticeable, no real impact, but conceptually slower. 
  This can also be used as <CALL Function ...>, faster without arguments, slower with.
- Recently realized that ALL DEFNAMEs are put into VAR. That means that all itemdefs, chardefs,
  etc have an entry in VAR (try <VAR.i_dagger> ). Now, this is potentially confusing and source
  for many problems:
     1) Whenever you're trying to access a VAR, you go through ALL the existing defnames.
     2) You can accidentally create a var that is also a defname... and oooooops!
  So to cope with this, changed it so that VAR/VAR0 only contains global variables that can be
  modified, whereas DEF/DEF0 contains item defnames and can only be read. The difference in speed
  is visible! EVERY time you were accessing a VAR you'd be searching through an array with a few
  thousand elements. Now each lookup searches only through the variables your scritps have created
  (which even on an extremely scripted shard shouldn't reach a hundred).
  This also makes it possible to identify WHICH variables are supposed to be saved.
  Although this is a huge change internally, it won't affect scripts except in the following
  situation:
     1) You defined a DEFNAME flag in scripts that you then changed during execution. This is
        highly uncommon, but if you decide you need this sort of behaviour just create the create
        the VAR once via scripts, it will be saved to spherevars.scp.
     2) You were accessing DEFNAMEs via VAR. No real reason to do it, seeing as DEFs / VARs can
        be accessed w/o the VAR. prefix.
  If not using DEF or VAR to access a variable, you'll get first the VAR if exists, and then the
  DEF. That means that old behaviour is kept.
- VARs are now saved to spheredata.scp. If that file isn't present at boottime the shard will print
  a warning, but it will continue, and it'll be created on the next save.
- GMPages will now be saved to spheredata.scp. Too many people are interested in parsing these to
  make special stuff (eg webpage interfaces or mirc scripts), so now they won't have to parse the
  whole world to read in this stuff.

06-01-2004, Kell
- Added "S" flag to SENDPACKET, allows one to send strings of characters directly. String is not
  within quotes it stops at the first space. Example
     SENDPACKET 00 S"This is the string to send" 0
     SENDPACKET 00 SUpToTheSpace 0
  If the string must be null terminated, simply put a 0 in there, as above. Otherwise, you'll probably
  need to specify length (strlen function) - depends on packet
- Added new walk limiting code, wildly based on the bit-bucket algorithm used in IP QoS DiffServ
  routers: there is a maximum speed at which you can walk (it's fixed, different walking or foot). If
  you walk faster than that speed, every tenth of second you walk faster than expected is a point you
  loose. Every 10th of second you take above the time expected is a point you win. The number of points
  you start with and the maximum is WALKBUFFER in sphere.ini, and I've tested it with values
  around 40 for good connections and 70 for laggy connections.
  If a player speedwalks, he'll soon drop below 0, and stop moving, then have to compensate with equally
  slow walking periods, like it happens when there's a burst of lag.
  WALKREGEN is the speed at which you regen walk points, in percentage.
  Default values: WALKBUFFER=50   WALKREGEN=25
  Hints:
  WALKBUFFER  lower for more strict control. However, setting it lower also increases the
        chance of limiting someone which is just experiencing lag. Raise this value
      if you lower WALKREGEN.
  WALKREGEN set lower for longer-lasting punishments. It makes sense to lower this value
      if you raise WALKBUFFER.
- Removed some EF_ flags that are no longer necessary seeing as they proved to be harmless. Make sure
  you consult MANUAL.TXT.
- Changed trigger @DropOn_Item and @ItemDropOn_Item to be activated for container items too.
  Activated when item with the trigger is dropped on another item (dropped on something else).
- Added @DropOn_Self and @ItemDropOn_Self, activated when an item is dropped on the item with the
  trigger (something was dropped on self).
- Implemented trigger @DropOn_Char and @ItemDropOn_Char.
- If these triggers fail, will only bounce the item if it's still being dragged. That allows the
  scripts in the triggers to define a new place for item.
- Made sure clients can only drop stuff into the bankbox if they are standing in the place where it
  was opened. This could now be checked within scripts aswell.
- Fixed an Injection exploit regarding accessing the bank away from the place it was opened in.
- Added @SkillGain and @Gain triggers. Check MANUAL.TXT for more info.

07-01-2004, Kell
- Automatically assign a DEFNAME to areas and rooms defined in the old format (AREA / ROOM). This
  defname is built upon the NAME, and is made unique by adding a number to it.
- In the console, you can type "d a" to output all the areas and rooms to a file "map_all.scp". I
  strongly suggest you replace your map with this file, as it'll allow you to finally get rid of the
  old format.
  NOTE: Teleporters and Moongates aren't saved in this file, so you should split those to a different
  file, to allow areas to be resynced.
- It is strongly suggested that you do the above, and get rid of the old format areas/rooms. Doing it
  has the following advantages:
  * Loading will be faster, because the server won't have to try and find a good defname for areas.
  * You can edit areas, and resync (even change their name) with no conflicts.
  * TAGs on areas are only saved for areas that have a valid DEFNAME, so if you do this, TAGs will be
    saved on all your areas.
- Added @Targon_Cancel for items.

---- 0.55 R3 rc2 --------------------------------------------------------------
---- 25/01/2004

08-01-2004, Kell
- Fixed VERBOSE=1 causing a catrazillion errors at boot.
- .CAST and .TELE won't show "bad command" sysmessage when they fail.
- If TRY/TRPY are called with an invalid command, they will send the error to the console and not to
  the player. This is coherent with how scripts should behave.
- Fixed NPCs not starting with max stats when MAXxxx is used.
- Fixed .admin showing only your own IP.

09-01-2004, Kell
- .serv.account unused xxx  delete
- .serv.account add test // missing password will no longer crash
- killing characters with positive karma (actually, it's about commiting a crime, not karma)
- .info not returning to dialog after changing a value (actually, INPDLG wasn't returning to dialog)
- flags on UIDs preserved (040000000 for items, 0d2000000 for skills, etc). GLOBALS renamed to WORLDVARS
  due to this (won't go into details here).
- SERV.LOG fixed.
- Fixed plevel 1 players seeing other plevel 1 hidden players
- Added USEHTTP=0/1 in sphere.ini, to disable/enable the built-in HTTP server.
- Added USEGODPORT=0/1 in sphere.ini, to disable the port opened at +1000. As far as I can tell, there is
  really no purpose for that port except taking in connections, much like the standard port you set. So it
  ships disabled by default.

10-01-2004, Kell
- Fixed a bug where redefining a base type (one in the TYPEDEFS list in spheretables.scp) could lead
  to a crash.
- Added a way to assign a TYPEDEF to a terrain type. This means you can define what terrain types are
  water, for instance. Example:
    [TYPEDEF t_water]
    TERRAIN = 00a8  00ab
    TERRAIN = 0136  0137
  This information is then used by ISNEARTYPE (and it has effect on all the hardcoded behaviour)
  when trying to assert if there's t_water around.
  Notice that ISWATER checks wether a terrain type is t_water, whereas <ISNEARTYPE t_water> would check
  for terrain, statics and dynamic items.
- Changed TYPE when called on an SERV.ITEMDEF.xxx.TYPE to return the typename, and not just a value. So
  when called on an water item it should return t_water, and not "30". This also has affect when using
  STATICS.x.TYPE.
- Fixed not being able to access properties of TARGP, as in <SRC.TARGP.X> or <SRC.TARGP.TERRAIN>.
- Added "TYPE" to the keywords available on a point. It uses the information above to return what item
  type is the terrain at that point. So you can do TARGP.TERRAIN.

11-01-2004, Kell
- Changed .info command to show the type associated with the terrain (t_normal if none).
- Wrote sphere_types.scp - it is a REQUIRED script, as it associates terrain IDs to item types. This
  replaces the old hard-coded behaviour (which by the way, was slower). By replacing it, I see no
  need to keep the old code, seeing as all you need is to have this script, which will be distributed
  from now on.
  Add sphere_types.scp in spheretables.scp right after sphere_defs.scp.
- Removed ISWATER, ISGRASS, ISROCK and ISDIRT commands from points (they were introduced in R3). Please
  use TYPE instead. For instance, use (<P.TYPE> == t_water) wherever you'd use <P.ISWATER>. Some might
  have grown attached to these commands, but unified and coherent scripts are certainly better than
  different methods for doing the same. Besides, this offers a lot more control (e.g.: <P.TYPE> == t_lava)
- Added ISNEARTYPE to the keywords accepted by points. So you can do <SRC.TARGP.ISNEARTYPE t_water> and
  that will effectively test terrain type, statics, and dynamic items. This is probably what most people
  will want to use, seeing as P.TYPE only test for terrain (and not statics or dynamic items).
- Added EF_New_Triggers (010). If set, allows the use of @NPCActFight, @NPCActFollow, @NPCLookAtChar
  and @NPCLookAtItem. This flag was added because even having these triggers *might* have some impact
  upon performance in very busy shards. 
- Removed a "Weird layer" message from whenever you equipped an item to layer_hidden. This is quite an
  useful layer for people wanting to expand their shards, so there's really no reason for this error.

12-01-2004, Kell
- Fixed "b" in console not working.
- Added DISTANCEYELL, DISTANCETALK, DISTANCEWHISPER to sphere.ini - a value of -1 turns it into a
  broadcast.

13-01-2004, Kell
- The @Create trigger for items works as any other item trigger - it can be fully scripted.
  After a LOT of work, you can now also check for SRC under item's @Create. There are situations where
  an item can be created without an SRC, but in most cases, there will be one. Eg:
  ON = @Create
     if ( <SRC.UID> )
        SRC.SYSMESSAGE You have created an item!
     endif
  Bear in mind that @Create is created before the item by the server, so it can still suffer transformations
  after it's been created. Particulary, you won't be able to REMOVE an item under a @Create trigger - it
  will have no effect.
- Added ISEMPTY and ISNUM. Eg: <ISEMPTY <VAR.TMP>> or <ISNUM <VAR.TMP>>. 
- Added STATICS.FINDID.xxx - it will take you to the ITEMDEF of the static item with the supplied ID
- Added @ResourceTest to REGIONRESOURCE sections, called once for each resource in the region that the
  character is able to find.
- Added @ResourceFound, triggered after a resource has been selected (@ResourceTest has been called for
  all resources available). ARGO is the resource bit to be placed at the location. "return 1" keeps the
  resource bit, but sets it to be empty.
- Added DEFMESSAGE section for scripts, allows setting of strings to be used by the server. More will be
  added - work in progress. You now REQUIRE a script with these strings.
- Fixed RESOURCES.xxx.val and .key.

19-01-2004, Kell
- Fixed a bug with getting stuck on stuff.
- STR, DEX and INT are always equal to O + MOD (for the relevant stat). If you have OSTR=50, MODSTR=10 and
  then do STR=70, you will get OSTR=60 and MODSTR unchanged.

21-01-2004, Kell
- Changed max height difference on CanSeeLOS from PLAYER_HEIGHT/2 to PLAYER_HEIGHT, so that you can access
  chests on top of a table.
- Removed the password being shown on console when a password error occurs.
- Made .x* and .set* commands respect PLEVEL. You also need plevel to use the "SET" command to use .x and .set
  commands.
- Slightly smarter NPCs against field spells - they will avoid them more often depending on INT.
- Fixed another spot where SRC was undefined in @Create (there might still be more of these).

23-01-2004, Kell
- Fixed buying multiple pets from animal trainers.
- Fixed a bug in FOR where counting down wouldn't work (eg: FOR 10 1 works now)

24-01-2004, Kell
- Fixed bug with NPCs going stale (their timer going -1) - particulary pets.
- Fixed @Effect in SPELL sections to work and have same arguments as @SpellEffect.
- Added SPELLFLAG_SCRIPTED (010000) so that one can more easily override the default behaviour of
  spells.

25-01-2004, Kell
- Fixed yet another exploit, with sending a hacked Author in books (tks Balkon)
- Added PROMPT_MSG to SPELL sections and disabled the hard-coded messages. You'll have to fill in the
  prompt messages for the spells.

---- 0.55 R3 rc3 --------------------------------------------------------------
---- 06/02/2004

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 = <<local.mystat>> + 5
     <LOCAL.MYSTAT> = <<LOCAL.MYSTAT>> + 5
     SYSMESSAGE Stat '<LOCAL.MYSTAT>' increased to <<LOCAL.MYSTAT>>.

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 <CONT.UID>
  In this example, <cont.uid> 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 <X>. 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 <X>.

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 <StrPos iPos, ch, string>, where iPos is the position to start at and ch can be
  either a single character, or the ascii code for a character.
  Example:  <strpos 0 32 Where is the first space> --> will return 5.
      <strpos 3 e  Where is the first 'e'> --> will return 4.
- Added <StrSub iPos, iCount, string>. Returns "iCount" numbers string, starting at iPos.
  Example:  <strsub 3 4 Oh look at this> --> 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 <abcdefg> --> 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.

---- 0.55 R3 final ------------------------------------------------------------
---- 31/05/2004
---- * unofficial release [unallowed]

07-02-2004, Kell
- Added FeaturesLogin= to sphere.ini, allows setting of the flags sent in the 0xA9 packet, on login.

08-02-2004, Kell
- Added EVENTS/TEVENTS to items. Order of triggering is as follows:
   1) If it's a character activating the trigger, check for triggers sensitive to items (@ItemDClick, etc).
   2) triggers in EVENTS on the item
   3) triggers in TEVENTS on the item
   4) triggers in TYPEDEF section for the corresponding TYPE of the item
   5) triggers in ITEMDEF section of the item
   6) default hardcoded behaviour (if any).
  a "return 1" in any case, stops further processing of triggers.

21-02-2004, Kell
- There is a feature/bug when checking to see wether a player has some specific items, any item of a similar
  type will do. It affects these items:
     0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards), 00f3f (arrow), 01bfb (bolt).
  e.g., when the server tries to find an arrow, any t_weapon_arrow will do, and so on.
  Added flag EF_Item_Strict_Comparison (0200) to disable this behaviour.
  
25-03-2004, Radiant
- Added some combat, server and command messages to sphere_msgs.scp.
- Added two file handleing commands:
   SERV.WRITEFILE <filename> <text>
   SERV.DELETEFILE <filename>
  Because these commands can be quite destructive, option flag OF_FileCommands (080) must be enabled 
  for these commands to work. Be careful, because any GM with access to SERV.* commands could use this!
  More will follow soon.
- Added @UserChatButton trigger (return 1 disables default (chat window) behaviour)
- Added @UserMailBag trigger (return 1 disables default (message) behaviour)
  NOTE: It seems this is also triggered on login, try using something like
    if (<uid> == <src.uid>)
      return 1
    endif
  to prevent this.

26-03-2004, Radiant
- Added <READFILE filename line> statement
  If line == 0 this will return the last line of the file, if line == -1 this will return the first line of
  the file. This needs OF_FileCommands (080) to be enabled because of obvious security reasons.
  This will return "" (nothing) on failure.
- Added <FILELINES filename> statement, returns the amount of lines in a file.
  If this is 0 it means the file doesnt exist or cannot be read. This too needs OF_FileCommands (080).
- Added some error and misc. messages to sphere_msgs.scp.
- Added SYSMESSAGEUA (syntax equal to SAYUA).
  *** NOTE *** People using Taran's colored sysmessage script will experience problems! Remove Taran's script
  and change your scripts to use the hardcoded function instead (which is much faster and efficient anyway).
- Fixed missing return char in TRY console errors and added the UID of the object causing the error.
- Added @Attack trigger (after someone doubleclicked a character to attack).
  SRC is the target. "return 1" will cancel the attack.
- Added @UserWarmode trigger, fired when a user hits the warmode button before sphere changes the warmode flag.
  ARGN is the current warmode state (1 = in warmode, 0 = peace). "return 1" cancels the warmode change.

27-03-2004, Radiant
- Got sphere to compile on FreeBSD, it's not very stable yet, working on that (problem with signal handlers).
- Added TRYSRC <uid> <verb>, executes <verb> with <uid> as the SRC. Death to equip fudging!
  Note that the default object is the object this is called on, so link.trysrc <cont.uid> will make <link> the
  default object and <cont> the <src>. Very useful in timers!

28-03-2004, Radiant
- Disabled SENDPACKET S"" and put in a little notice that you should use <ASC> instead.
- Casting recall/gate travel on an item now fires @SpellEffect on that item.

31-03-2004, Radiant
- Added OF_NoItemNaming (0100), prevents sphere from naming items "sword crafted by Player"
- Added EF_No_Pause_Packet (0400), this prevents sphere from sending a Disable Redraw (or pause) packet everytime
  a new item/character is sent to the client. This is a bandwidth saver and lag preventer.
  This saves about 45 bytes for each action, this doesn't seem much but you can notice the difference.

02-04-2004, Radiant
- Changed skillsum to DWORD, which fixes the problem with high skillsums not working.

04-04-2004, Radiant
- Gate travel spell now LINKs the gate to the person that opened it.

06-04-2004, Radiant
- Healing is now interrupted properly when hit, fixes exception problem.

08-04-2004, Radiant
- Fixed signal locking problem on Linux/FreeBSD, running sphere in multi-threading mode still has problems, I'll look
  at that tomorrow. Sphere now survives pretty much every error on Linux/FreeBSD (only tested on FreeBSD), as long as
  it's running in single thread mode.

09-04-2004, Radiant
- Threading problem seems to be a little more complicated, but at least sphere runs very stable for me without threading
  on FreeBSD. I've tried it on Slackware, which still had alot of problems. I'll leave that for Kell ;)

11-04-2004, Balkon
- Fixed bug when pick up few items from a pile on the ground it's timers become -1
- Added @Pickup_Self - fired on container when item picked up from it, ARGO points to item we picking up
  @ItemPickup_Self for chars, ACT - container , ARGO - item we picking up
  Removed Reveal() from corpse looting - one can do it using @Pickup_Self if needed
- @Dropon_Char, @ItemDropon_Char now called when drop an item directly on charater either (before secure trade window 
  shown and @NPCAccept/Refuseitem triggers), ARGO points to character we drop the item on, or character's backpack

11-04-2004, Balkon
- Can't provoce char against an item
- Return 1 in @Login fixed (character will not stay in the world, no "client version check" loop)
- Fixed CONT and TOPOBJ in @EquipTest, item not moved if can't be equipped when doubleclick on it

12-04-2004, Radiant
- Added LOCALLIGHT property on characters, if this is 0 the normal lightlevel (sector) will be used, if this is higher the
  LOCALLIGHT value will be sent as lightlevel instead. You will need to use UPDATE after you have changed this, because the
  light level is not automatically updated. This overrides nightsight.
  (note: if you want to give a character a LOCALLIGHT level of 0, just set the nightsight flag)

13-04-2004, Balkon
- OF_NoHouseMuteSpeech (0200) - if enabled players are able to hear each other inside and outside the house
- Started remaking a CanSeeLos and CanWalk, temporary added EF_CanSeeLos_New (0800) to enable both changes
  as for now it fixes shoot through walls an fall through the floor in house regions interception area bugs, 
  more changes here later...

14-04-2004, Radiant
- @DClick is now triggered before the item is attempted to be equipped

15-04-2004, Balkon
- EF_WalkCheck (01000) - new walk check code, should fix lot of house looting bugs (patched verdata, walk under stairs etc.)
  NOTE: in default script pack some stairs are in DUPELIST of items, which are not really a stairs, so they have
  wrong CAN flags (CAN_I_CLIMB is not set). Make sure you've fixed your scripts before enabling this EF or you'll 
  not be able to walk on some of dynamic stairs

16-04-2004, Balkon
- some optimization to EF_WalkCheck, fixing climb height after teleporting and Z changing
- fixed bug when summoned NPC's have loot
- fixed RESOURCES.1 returned string in RESMAKE format
- fixed shafts etc. dupe bug

17-04-2004, Radiant
- Started working on some basic AOS functionality, EF_AgeOfShadows (02000) will enable this.
  Currently only enables tooltips (which aren't even working for now). Don't forget to enable flag 020 in FeaturesLogin!
- Fixed a nasty exploit that would allow anyone to crash sphere and/or execute code on your machine without even logging in
  (thanks Furio for reporting this)
- Fixed AOS Tooltips, now only shows the name for items and characters. I'll add other things later.
- Added AOS/LBR fading damage counter thing (requires EF_AgeOfShadows). This only shows for you and the person that hit you,
  I believe thats how it works on OSI (or doesn't it?). Showing it for everyone would make it laggy in my opinion.

17-04-2004, Balkon
- torch/candle dupe bug seems to be fixed at last :)

18-04-2004, Balkon
- fixed ACCOUNT properties was not accessable for logged out chars
- added ISPLAYER function - just a little feature :)
- added ISONLINE function - for players returns 1 if client is online (connected) and 0 overwise, for NPCs returns 1 when 
  NPC is in the world or 0 if it is offline (shrinked, mounted pets)
- added NOTOGETFLAG function, returns notoriety flags for specified char, syntax: NOTOGETFLAG Viewer_Serial,Allow_Incognito
  returned values:
  NOTO_GOOD   1 // good(blue)
  NOTO_GUILD_SAME   2 // same guild
  NOTO_NEUTRAL  3 // Neutral
  NOTO_CRIMINAL 4 // criminal
  NOTO_GUILD_WAR  5 // Waring guilds
  NOTO_EVIL   6 // evil(red)
  if no args specified returns flags for SRC as a viewer, NOTOGETFLAG 0,1 will return flags for SRC as a viewer with 
  Allow_Incognito = true
  NOTE: for red guildmates it will return NOTO_EVIL, not NOTO_GUILD_SAME

18-04-2004, Radiant
- Some additions to AOS tooltips

19-04-2004, Kell
- A few changes to AOS tooltips for cross-platform compatibility (itoa).

19-04-2004, Radiant
- Fixed status updates not sending with EF_No_Pause_Packet flag set
- Made @userStats fire on every status update that is being sent, if ARGN3 == 1 then the user has just opened the status window
- More tooltips stuff, type specific
- Added AOS/LBR Popup Menu's, these can be activated by setting flag 08 in FeaturesLogin (currently only for characters).

19-04-2004, Balkon
- RANGE bug fixed
- updating last regen time for dead chars so that they will not get ticks every tenth of second any more

20-04-2004, Balkon
- some traffic optimization:
  short stats change packets now used instead of full status packet when changing only hits/mana/stamina or it's max. values
  HITSUPDATERATE in sphere.ini controls how often (in seconds) my changed hits will be sent to others who can see me,
  default value is 1, incraise to reduce the traffic usage, 0 value disables sending such updates (like it was on 55i)
- MAXHITS etc. fixed. .MAXHITS 100 will now set MAXHITS to 100, this will include MODSTR so that if you had MODSTR 10 before 
  setting MAXHITS than when you change MODSTR back to 0 MAXHITS will be 90.
- maxhits displayed for others changed from 25 to 50 for smoother hits line changing on the statusbar

21-04-2004, Radiant
- Added MESSAGEUA, syntax equal to SAYUA and SYSMESSAGEUA
- Fixed lack of argument checking in SAYUA that sometimes causes an exception
- Added support for the "Virtue button" (at the top of the paperdoll on newer clients), fires the @UserVirtue trigger.
- Added support for the new spellbook packets (old ones don't work with AOS), if EF_AgeOfShadows is not set the old packets will
  be used (this is for Magery, there is no Necromancy or Paladin stuff (yet)).

22-04-2004, Radiant
- Re-added the "The spell fizzles" message on spell failure

22-04-2004, Balkon
- setting values in quotas for TAGs, VARs and LOCALs now will create text tags, i.e. 
  TAG.TEST_1 2+2
  will create numrecal tag TEST_1 with value 04, but
  TAG.TEST_2 "2+2"
  will create text tag with text '2+2'.
  Text tags and vars are saved quoted also.
- fixed REGION.TAG0.SOMETHING caused 'Undefined symbol "" error' when tag SOMETHING is not set

23-04-2004, Radiant
- Found out that new spellbook packets are broken, still not fixed
- Added support for necro book spells, now reads the spelldefs for these (101 - 116), will add hardcoded behaviour later
- Added @UserExWalkLimit trigger, fired if a user exceeds the Walk limit (is either lagging alot or speedhacking)
  RETURN 1 allows the user to walk, no action or RETURN 0 disallows the user to walk
  (note: this is pretty expensive because it's fired each time a step is taken while the user's walkbuffer is at 0, so be careful)

24-04-2004, Radiant
- Removed message from WEBLINK command
- Fixed .admin showing japanese text/crashing client with long character names (names are truncated to 30 chars)
- SERV.NEWDUPE and DUPE now sets NEW (and ACT? coded but not tested) for items only, duping chars doesn't work like it should yet
- DCLICK/USE on characters now takes an argument (uid), makes the character DCLICK a certain item/char
- CALL function is no longer case-sensitive
- Added arguments to dialogs, in this form: "DIALOG d_dlg 0 blabla", both <args> and <argv[x]> can be used. <argn> is the page number
  (second argument)

25-04-2004, Radiant
- Added COMMANDLOG option in sphere.ini, only logs commands issued by this plevel and higher. (default = 0, log all)

29-04-2004, Balkon
- after some beta testing few fixes in equip and EF_WalkCheck
- added EVENTSPET to sphere.ini - events far all NPCs
- added EF_DiagonalLOSCheck (04000) - to see the object in diagonal direction we must be able to see the point at least 
  in one of ortogonal directions, this mean you can't see objects only through the "corner", this fixes teleport through
  fence NW corner and some other bugs but still allows, for example, closing doors which are in diagonal direction 
  to you when opened :) Setting this flag may incraise CPU usage.
- alternative name in TAG.NAME.ALT is now used everywhere if tag is set - in character status, corpse names, linked 
  memories etc. It overrides incognito name also. The real name is only accessable via NAME property.
  TAG.NAME.PREFIX now overrides fame prefixes (shown on click). TAG.NAME.PREFIX and TAG.NAME.SUFFIX are now can be combined
  with TAG.NAME.ALT

01-05-2004, Balkon
- fixed bug when closing dialog with targeting cursor up canceled targeting
- removed \r check from character profile packet - this allows to have a multiline profile and fixing wrong "Cheater" warnings
- fixed bug when players was able to buy any items from vendor even outside the stock (equipped on him. in his backpack etc.)
- vendor now will simply transfer items to character's backpack if they are stored in his "extras" box or if he is a player's 
  vendor (they was duped, you bought the copy and the old one deleted before). Shrinked pets will not be unshrinked when sold
  from player's vendor (or from extras box).

02-05-2004, Balkon
- EF_CanSeeLos_New is not longer used, all fixes affected by this EF are now included to the code by default.

03-05-2004, Socket (UNSP team)
- Started work on fullfeatured guild/town system. Added MEMBER property to guildstones. You shall use it this way:
  <guildstone>.member.X.<property> These properties are available for read/write: ACCOUNTGOLD, LOYALTO, PRIV,
  SHOWABBREV, GUILDTITLE. Functions available: IsCandidate (returns 1 if member is a recruit), IsMember (1 if member),
  IsMaster (returns 1 if guildmaster). Also, MEMBER.X. construction points directly to character, so you
  could use something like MEMBER.X.NAME in your scripts. MEMBER.COUNT returns total number of guildmembers.
- ACCOUNTGOLD guild member's property is now saving to worldsave too.
- Added new GOLDRESERVE property to guildstone.
- Added new <CONT>.COUNT function which returns a total amount of items in the container.
- Added new SERV.CLIENT.x reference. SERV.CLIENT.0. is a newest client and so on, for example <serv.client.0.name>
  will return the name of last logged in client. Reference is READ-ONLY for safety. In this case you could save
  client uid somewhere and work with his using UID.<uid>. reference.

07-05-2004, Socket
- <CONT>.COUNT now returns an amount of items only in selected container, without counting items in containers inside it.
- Added <CONT>.FCOUNT function, which returns a TOTAL amount of items inside container.

11-05-2004, Balkon
- some fixes, @EquipTest now fired before all internal checks, before item unstacked from the pile, before item in same layer
  unequipped (this mean if you have return 1 there char will not unequip previews item)

16-05-2004, Balkon
- fixed @Dropon_char called when dropping item to any container on the char. Now it called only when you really drop the item
  on the character - directly on his head or on his backpack if you don't own him. ARGO now always points to character.

19-05-2004, Balkon
- fixed @color,font in MESSAGE and SYSMESSAGE, now it accept hexadecimal values, added 3-rd argument there - unicode flag, 
  new format is SYSMESSAGE @color,font,unicode text, added @color,font,unicode to SAY and broadcast either. Of course SAYUA,
  MESSAGEUA and SYSMESSAGEUA still can be used for this, but @color,font,unicode is accepted in default messages definition
  (sphere_msgs.scp), so now we can have default messages in unicode :)
- added OF_SkipUndefMsgs (0400) - if flag is set sphere don't send error strings for undefined default messages, 
  dont print errors on resync - just ignores it, so now we can disable some default messages if needed.
- SPEED wepaons property now used in fight delay calcilation if set (and not 0), the formula is 
  DELAY = 15000 / ( ( DEX +100 ) * SPEED )

20-05-2004, Balkon
- some optimization in hit messages (get only messages which really will be sent to client)
- added SPEEDSCALEFACTOR to INI (defaul value is 15000), used in weapon delay calcultions, now formula looks like
  DELAY = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )
- ARGN1 in @HitTry now is the delay (in tenths of second) left before the hit, can be changed

21-05-2004. Balkon
- added FORCLIENTS and FORPLAYERS loops, difference is that FORPLAYERS will loop through disconnected players which are 
  still stay in the world (client linger) either.
- if no args specifiead for FORITEMS, FORCHARS, FOROBJS, FORCLIENTS, and FORPLAYERS loops value 18 is used by default 
  (maximum view distance)
- added FORCONTID and FORCONTTYPE loops, format is FORCONTID i_dagger max_sub_containers. If max_sub_containers is not 
  present it will search in all subcontainers. If max_sub_containers = 0 - it will search only in this container.
- added FORCHARLAYER layer - loop through all objects in specified layer
- added FORCHARMEMORYTYPE flags - loop through all memory objects with this flags

25-05-2004. Balkon
- fixed bug when after parsing quoted lines when setting VARs, TAGs and LOCALs didn't create text variables

27-05-2004, Socket
- Fixed guild MEMBER.X.KEY for read/write. Now it should be working well. Will return error if you try
  to access non-existant member (so it should be better to use MEMBER.COUNT to check bounds).

---- 0.55 R4.0.1 --------------------------------------------------------------
---- 07/06/2004
---- * unofficial release [unallowed]

30-05-2004, Kell
- Little fixes to allow compile under Linux (use strcmpi() for caseless string
  comparison, and add casts to (LPCTSTR) on CGStrings).
- Changed version number. I suggest using R4.x.y where xx is increased when
  something major is done and yy is for little changes. Set to R4.0.1.
  (ps: some people never quite understood what RC* means. After the 20th it
   stops being a release candidate, it's more like a candidate to a release
   candidate. So after the "powers that be" have adopted and turned that
   numbering scheme into a mockery, I suggest we change to something less
   confusing.

31-05-2004, Furio
- Added FORCONT loop, format is FORCONT uid_of_container max_sub_containers. It
  will loop on every item present in the container. If max_sub_containers is not
  present it will search in all subcontainers. If max_sub_containers = 0 - it
  will search only in this container. (Thx to Balkon for the base code for
  container loops)

07-06-2004, Furio
- Made a blank REVISIONS.TXT because it was getting pretty big.
- Added XOR (^) operator to expressions.

---- 0.55 R4.0.2 --------------------------------------------------------------
---- 22/07/2004
---- * unofficial release [unallowed]

12-06-2004, Furio
- Added two new INI value USECRYPT and USENOCRYPT. The first if 0 don't allow at
  encrypted client to login otherwise allow them to log (default is 1). The
  second if 0 don't allow at unencrypted client to login otherwise
  if 1 -> allow and suppose that the clientversion is >= 2.0.0
  if 2 -> n/a
  if 3 -> allow and suppose that the clientversion is >= 3.0.0
- Added the most requested security-by-obscurity feature DISGUISEVERSION in
  sphere.ini. If set change the version outputted to clients, ircserver,
  webserver, listserver, telnetserver to its value otherwise the default build 
  value is used. (Mind that the version in savefile and in console startup is 
  the default build version)
- Fixed (i hope) bug with Mozilla/Firefox browser with the status page
- Fixed a buffer overrun bug that could be exploited to crash or run arbitrary
  code, in the log system.

20-06-2004, kuch
- Added ClearTags function (removes all the tags from the char/item/account);
  Revital did most of the work, but I get the credit.

28-06-2004, Furio
- Fixed multiple gump exploits. In order to do this now memory 08000 is used as
  internal memory (is called MEMORY_GUMPRECORD).
- Fixed and refined things for disguise version feature.

02-07-04, kuch
- Added MODMAXWEIGHT: allows you to increase/decrease max carrying capacity of a
  char.
- Added MODAR: allows you to increase/decrease the overall AR of a char
  NOTE: there are no oStat equivalents (ie oModAr or oModMaxWeight) for the
  above.
- Also added the following to avoid possible confusion:
  * MAXWEIGHT - same as WEIGHTMAX
  * AR - same as AC
  * MODAC - same as MODAR
  * MODWEIGHTMAX - same as MODMAXWEIGHT
  
03-07-04, kuch
- Added 135 more strings (mostly from skills) to sphere_msg.scp
- Added new .ini option: WOOLGROWTHTIME: how long in minutes it takes for wool
  on sheared sheep to regrow.
- Added new .ini option: SKILLPRACTICEMAX: how high can you train a skill on
  dummy/archery_target.

04-07-04, kuch
- Added 93 more strings: NPC speech and skill msgs; there are now 329 string 
  messages in sphere_msgs.scp.
- Added TAGCOUNT function (works on regions/items/chars/accounts) - returns the
  number of tags on that obj
- Fixed CLEARTAGS (now also works on regions)

06-07-04, kuch
- Fixed some weird bug in jobmage.scp and jobnoble.scp 
- Added a lot more strings to sphere_msgs.scp; If you find any bugs with them,
  kuchervano@hotmail.com me immediately!

07-07-04, Furio
- Fixed DISTANCEWHISPER not working correctly.

07-07-04, kuch
- Added DEFFOOD value to sphere_defs.scp - this is a template of items you want
  to get by casting the create food spell; Yes it does not give you a great deal
  of control over what you get (ie skillbased for example), but its better than
  nothing
  
09-07-04, Furio
- Fixed bug with ^ operator.

16-07-04, Vjaka
- Fixed bug with armor/weapon when hits were above to hitsmax.
- Cosmetic fix to report Client out overflow error line once per dialog instead
  of tons of them.
- Added trigger function f_onchar_delete triggered before client is going to
  delete a character. SRC is char, return 1 denyes deletion.
- Added trigger function f_onaccount_login triggered after client entered the
  password, ARGS is account name, return 1 disconnects.
- Added spell flag SPELLFLAG_PLAYERONLY 020000 which denies spell being cast by
  npc ai (no more npcs casting shrink if not wished to).

17-07-04, Vjaka
- Added @NPCLostTeleport to trigger before NPC is going to be teleported back to
  its spawn (by LostNPCTeleport sphere.ini setting), ARGN1 is the distance from
  the spawn.
- Added INI switch PAYFROMPACKONLY (default: 0). If set to 1, then buying stuff
  from vendors will search pack only for the gold.
- Added @Hunger to trigger before char is going to loss a food level. ARGN1 is
  the food level that will be set, return 1 cancels.

19-07-04, Vjaka
- Removed IRC server from default build settings. It is buggy, has holes inside 
  and probably should not used by anyone.
- Reverted memory information profiling in Win32 version (stability testings).
- Fixed NoMessages and Quick login mode (ARNG1/2 in @Login) now skips sphere
  version information and Welcome back.. prompt.
- Fixed some exceptions for ticking events. Some division by zero removed, and
  the exceptions are made less critical (actualy the way they should be - quite
  local). It means that the server should be more stable now. Also they gives
  usualy more information on when the error occured.
- Added @StepStealth triggering on each step made by person in stealth. ARGN1
  (in and out) - whatever to reveal him or not.
- Added isnumber(something) - returns 1 if it is a number (only number of radix
  10 suits). Useful in argtxt validation.

19-07-04, Furio
- Fixed compatibility issues with Linux for isnumber(something).
- Added TAG.DIALOG_NAME to MEMORY_GUMPRECORD. The tag contains the name of the 
  dialog opened. Special case are the .admin gump (clientlist), the hair dye
  gump (hairdye), a guild hardcoded gump (guild) and if no name is found
  (undef). Hope that this will help in checking what gumps are opened on client
  screen.
- Added SDIALOG command. It works like DIALOG with the difference that it'll
  open a dialog only if it's not present on the client screen.
- Fixed a thing in DISGUISEVERSION. Now .[x]show version shows the disguised
  version.

20-07-04, Vjaka
- Fixed compatibility issues with Unix for exceptions
- Added MODAR (MODAC) working on items as well. Now it is for both items and
  chars.
- Fixed startup sequence - now tryes to bind a socket before loading the world
  saving time on running multiply instances.
- Fixed Windows version buffered output flushing. Also removed log file
  buffering.

21-07-04, Kell
- Fixed some compilation issues under Linux (just missing some (DWORD) casts).

22-07-04, Furio
- If PAYFROMPACKONLY (default: 0). is enabled, in the char status only gold from
  pack is displayed.
- Fixed minor things on default messages.

22-07-04, Vjaka
- Added server state functions f_onserver_save, f_onserver_save_ok and
  f_onserver_save_fail. Arguments are ARGN1 - force save? and ARGN2 - save stage
  (for background saves). For f_onserver_save the ARGN1 is writeable and return
  1 cancels the save.
  Please note, that if background saves are enabled, these functions will be run
  tons of times during the worldsave process (at least 6144 [sectors amount]
  times).
- Added f_onserver_start function triggered server start.
- Created knownbugs.txt file to be distributed with sphere revisions.

---- 0.55 R4.0.3 --------------------------------------------------------------
---- * not released
---- * unofficial release [unallowed]

23-07-04, Vjaka
- Added some more exceptions debugging. It is going deeper and deeper to engine.
- Added MAXITEMCOMPLEXITY (default: 25) - the amount of items in one tile so
  start showing "too many items here".
- Added MAXSECTORCOMPLEXITY (default: 1024) - the amount of items in one sector
  to start showing "x items too complex".

24-07-04, Vjaka
- Removed instant logout in guarded areas. use REGION_FLAG_INSTA_LOGOUT instead 
  if you wish instant logout.
- Added console commands history of 5 latest commands in Windows version. You 
  can scroll them using UP key.
- Added one minute delay after take of an item from trade window before 
  accepting the deal.

25-07-04, Vjaka
- Added smsg/smsgu shortcuts for sysmessage/sysmessageua (note, that msg already
  existed as a shortcut to message)
- Added SKILLCLASS properties - if written like SRC.SKILLCLASS.NAME, returns 
  <SERV.SKILLCLASS.<SRC.SKILLCLASS>.NAME>
- Started doing ARGVCOUNT and realised that <ARGV> is the amount of ARGV[x] 
  variables. Noting that as not found in revisions.
- If player speech longer 5 chars and has 75% capital letters inside, it will 
  come out in lower case. Works for english chars only. And as for unicode - if
  EF_UNICODE is set.
- Added GUILD properties: <SRC.GUILD> returns 0 or guildstone UID,
  <SRC.GUILD.NAME> returns guild name
- Removed all old PLOT bit stuff. Use EVENTS instead
- Changed CLEARTAGS - it takes optional argument, clearing tags only if matching
  the string (does not support wildcards)
- Added HITS and MAXHITS to items (same as MORE1L and MORE1H). Note: this is
  valid for armor and weapon object.
- Telnet has a username. So, Administrator or RemoteAdmin login left for local 
  logins (127.0.0.1) if LOCALIPADMIN enabled

25-07-04, Furio
- Hopefully tracked down and fixed the arrow bug, and similar problem derived 
  from NEW (big thx to Handred that finded the point where start looking at for
  the fix).

26-07-04, Vjaka
- Fixed broken TEVENTS read method on chars.
- Added QVAL(test1,test2,res1,res2,res3) in addition to current <QVAL?:>
  variant. It is useful if dealing with numbers without many IF-s. Sample 
  <eval qval(<VAR.X>,<VAR.Y>,<VAR.ONE>,<VAR.TWO>,<VAR.THREE>)> will return
  <VAR.ONE> if <VAR.X> < <VAR.Y>, <VAR.TWO> if they are equal, and <VAR.THREE>
  if the it is greater. If some of the arguments are omited like qval(1,2,,3) it
  will default to zero.
- Changed REGISTERSERVER to default an empty string. If you wish to register to
  list.sphereserver.net, specify REGISTERSERVER=1 or it's host.
- Added TELEPORTEFFECTSTAFF, TELEPORTEFFECTPLAYERS, the teleport effect for
  staff (use hex id of object or 0 here) (default: 03709 for staff, 0372a for
  players).

27-07-04, Furio
- Fixed an issue with MOVE/XMOVE command.

27-07-04, Vjaka
- Added command line switch -Gpath/to/saves/ to defrag sphere server UIDs. It
  is done because sphere UID management routines has flows which makes not to
  reuse empty uids, but generate new, higher. Howewer, space for lower unused
  objects is still reserved. It saved 400Mb me (from 600Mb on start to 180Mb)
  working for 2.5 hours, but caused all mounts to disappear, maybe some more
  flaws. So, use on your own risk. In future versions for 4.0.x Furio is going
  to improve the uid subsystem and this will not be needed anymore.

28-07-04, Vjaka
- Changed FILELINES to close the file and READFILE if line number is too big.
- Added DISMOUNT verb on char to dismount him, MOUNT to get UID of ridden one.
- Fixed an issue with SERV.CLIENT.x. causing exceptions.
- Removed 0.55R from version. It is a complicated notation. It's 4.0.x now.
- Fixed MODAR not updating armor class if changed on char or equipped item.

29-07-04, Vjaka
- Limited allshow to MAXCHARCOMPLEXITY*4.
- Fixed issue when telnet connection could not do resync load after pausing.
- Account now has TAG.LastLogged with his previous login date. It is shown upon
  login if quick/no-messages login not selected (by @Login trigger).
- Fixed msg_criminal to be shown only if person is not a criminal yet (lags).
- Added read-only COMP reference for multis. Returns amount of components when
  called with no params, and has attributes: ID,D,DX,DY,DZ (D mean delta).
- NPC wishes gold and vendable items (not limited to desires listing).
- Added ARGN2 to @NPCLookAtItem (writeable) - the percent level the the NPC
  wish this item. If set high, he can loot the item.
- Added GMPAGES and GMPAGE.* verb to access gm pages from scripts. You can
  give arguments like you do to .page command, and use 2 specials - DELETE to
  delete even not-taken one, and HANDLE [uid] to mark gmpage for character.
  Also GMPAGE.x.HANDLED field returns UID of person taken the gmpage.

30-07-2004, Kell
- Added ACCOUNT.NAME

30-07-04, Vjaka
- Speed optimisation working with strings & possible some stack overflow out.

31-07-04, Vjaka
- Fixed several spells (like mark) casting in not allowed region when running.
- Fixed KILLS removal using multi-uo client.
- Changed @Logoff to take 2 writeable arguments: ARGN1 - linger time and ARGN2
  instant logoff flag. Return 1 in logoff is now obsolete.

01-08-04, Vjaka
- Added triggers @MurderDecay (ARGN1 - murder count that will be set, ARGN2 -
  decay time to set for the next kill) and @MurderMark (ARGN1 - murder count
  that will be set, ARGN2 - set criminal flag?). The names are descriptive.
- NPC is now trying to move objects blocking his walkpath. He also investigate
  the possibility to loot this item in several cases. Triggers look@item not
  called since if there are tons of items in the spot, it will be very laggy.
- Added @Rename trigger (ARGS - new name, ARGO - target char) when renaming a
  pet. Return 1 cancels. Also triggered when creating character.
- Items with ATTR_STATIC are now saved to spherestatics.scp and NOT SAVED by
  standart world save. So, you need to call .serv.savestatics to save them.
- NPC is now trying to cast good spells as on self and his combat friends also.

02-08-04, Vjaka
- Calling guards are now more speed optimised.
- Defrag mode now supports spherestatics.scp and is much faster.
- Changed FACE and SALUTE to take an optional argument - target object.
- Characters on the way do not disallow GM to place a house anymore.
- Items gets stacked one on the other witheen some height if possible.

03-08-04, Vjaka
- Exceptions catching fixed, some stack information added.
- Added CLEARVARS being same as CLEARTAGS.
- Fixed CLEARTAGS to work normal without arguments.
- Now VENDORMARKUP is taken from region tags if not found on a vendor.

04-08-04, Vjaka
- Default messages working optimised for speed. Removed OF_SkipUndefMsgs.
- Removed OF_Skill_DiffFirst since the actdiff is calculated in any case.
- Started implementing EF_Pathfinding.

05-08-04, Vjaka
- Fixed SERV.ITEMDEF reference to object not being currently in the world.

06-08-04, Vjaka
- Added SERV.resync to resync scripts without the resync delay.
- Now adding a new account automaticaly fills (FIRST/LAST)CONNECTDATE.
- Added @SkillMenu to trigger BEFORE calling any hardcoded skillmenu. So, you
  can return 1 to cancel the action. ARGS - the name of the menu, is one of:
  sm_polymorph, sm_carpentry, sm_bowcraft, sm_tailor_leather, sm_tailor_cloth,
  sm_bolts, sm_carpentry, sm_cartography, sm_tinker, sm_summon, sm_blacksmith,
  sm_alchemy, sm_cartography, sm_inscription.

07-08-04, kuch
- Finished the conversions of default messages into the new format: this should
  greately improve the execution speed.  Also updated sphere_msg.scp to fit new
  format.  Read the comments inside the file to get more more infomation.

09-08-04, Vjaka
- Added DISGUISENAME to alter the name of the server.
- Added REPLYPEERCONNECTS (default 1) to allow masterserver and peer connects.
- Fixed duplicating hungry messages search.

10-08-04, Vjaka
- Fixed NPC moving some items not actualy blocking their way.

11-08-04, Vjaka
- Added console commands auto-completion on using TAB key. File sphere.dic is
  read for the list of definitions. Note: this file SHOULD BE sorted (at least
  witheen each separate first letter) to multi-matches to work correctly.

12-08-04, Vjaka
- Added @ItemCreate triggered when an item (ARGO) is created by a client.
- Added auto-completion to telnet connection. The difference from winconsole is
  that it fills the word up to end ONLY if there is exact 1 variant, or if
  other variants contains this one in self.

13-08-04, Vjaka
- Optimised sysmessages - now nothing is sent to client if the message is empty.
  This is useful to clear default messages. If wish to scroll line, use space.
- Fixed exploit to crash clients by renaming pet with some special color. Thanks
  TheLegbra reporting that.

15-08-04, Vjaka
- Added EF_Script_Profiler (08000) to add information on functions usage for
  weak places (functions or triggers) to be optimised.
- Added EF_Size_Optimise (010000) to save WORLDITEM/CHAR/SCRIPT as W*. This is
  not much for now, saving 7+ bytes per object. Loading supports any method.

03-09-04, Vjaka
- Added OverSkillMultiply (default 2). When player skills/stats goes this times
  more than skillclass allowed, drop them to skillclass level. Setting this to
  0 disables the action.
- Added ACCOUNTS BLOCKED/JAILED arguments. Works exactly like UNUSED, but just
  applyes to the blocked/jailed accounts only.
- Only chars in mapplane where the player is are ticked now (lag reduction).

04-09-04, Vjaka
- Added ## command to console to save both world and statics.
- Added X# command to instant shutdown the server with world/statics save.
- Changed "commands uid=... (name) to ''" to show amount if above of 1.
- Server startup crash fixed

08-09-04, Furio
- Fixed issues for the Linux build.
- Disabled information abou "Key" on OnTriggerRun exception for compatibility 
  problem on the *Nix build. (temporary solution)
- Added .pid file (sphere.pid) on *Nix build, for those who want to write bash
  script for checking sphere process easily.

08-09-04, Vjaka
- EF_Pathinding is working perfectly making NPC to select a best path. Howewer,
  for maximal speed it is yet checking only static objects blocking his path.
  More testings on the speed needed before making it to include dynamics checks.
- Fixed Counselors losing their invis status after worldsave.

10-09-04, Vjaka
- Memory information is now got from system routines instead of internal one. It
  will cause this info to appear in UNIX builds, howewer, it will be not be in
  WINDOWS systems where PSAPI.DLL is not available (fe: Windows 95/98/NT4.0).
  Also this makes ALLOCS useless, since there is no way to get it.
- Added CLIENTS property for sectors and regions to get active clients count.

11-09-04, Vjaka
- Added EF_Clients_Thread (020000) to split clients handling to to other thread.
  This will work only in windows build and is not recommendable to change on fly.
  This is VERY experimental yet, since sphere is very singlethreaded by design.

13-09-04, Furio
- Fixed memory information on Unix. Now it uses two different methods to get
  memory information depending on *Nix system where sphere is running.

13-09-04, Vjaka
- Fixed functions profiler to strip off arguments of a function.
- Fixed console commands like ##, x# showing unknown keyword error in console.
- Fixed murder count set always to 1 by @MurderMark.

14-09-04, Vjaka
- Fixed LOCALs in f_onserver_start/f_onchar_delete.

18-09-04, Vjaka
- Code cleanups, removed some useless (not enabled keywords), same keywords grouped
  to one variant for usage for faster work lookups:
  1. *WEIGHT[MAX]->*[MAX]WEIGHT, BRAIN->NPC, KNOWLEDGE->SPEECH, COMMENT->TAG.COMMENT
  CLI*VER*->CLIENTVERSION, DEF->ARMOR, LISTEN->HEARALL, *PRICE->PRICE, VER->VERSION
  WEBPAGEDST->WEPAGEFILE (LoadKeys)
  2. CLIENTS->ALLCLIENTS, PARDON->FORGIVE, INVISIBLE->INVIS, INVULNERABLE->INVUL,
  R->RUN, W->WALK, CLIENTS->ADMIN, MIDI/MUSIC->MIDILIST, [RE]SYNC->RESEND, ADDITEM->ADD
  FOLLOWED->FOLLOW, M->MOVE, PROPS/TWEAK->INFO, SPEAK[U[A]]->SAY[U[A]], SFX->SOUND
  SAFE->SECURE (VerbKeys)

20-09-04, Vjaka
- Fixed errors on load if setting VERSION for saves to start from litera.
- Fixed paths in resource testing commands.
- Added EF_Minimize_Triggers (040000) to call as little triggers as needed by a minimum.
- Removed some declared but unused triggers.

23-09-04, Vjaka
- Removed unused EF_Allow_Override (it was not working anyway).
- Added OF_Advanced_AI (including moving objects in the path, helping friends by magic,
  pathfinding)
- Renamed EF_Client_Thread to OF_Multithreaded (0400)
- sphere.pid file is now created in Windows builds as well.

25-09-04, Vjaka 
- Removed ADDNPC since it is already integrated with ADD command for both items and npc.
- Removed some more duplicates (some really strange) to speed up lookups.
- Added showing of option flags on start.

26-09-04, Vjaka
- Removed different mail operations not working and other code cleanups.
- Bugfix: Disabled moving gold coins to vendor stock (items shifting).
- Bugfix: Disabled moving static/immovable items from ground, spell effect.
- Bugfix: Disabled gaining spell effect by ghost other than ressurection.
- Bugfix: Mounted creature will leave no corpse on death if died while mounted.
- Bugfix: @DeathCorpse is called only if corpse is really created.

27-09-04, Vjaka
- Added ISSTUCK keyword to check if npc can move to N/W/E/S dirs.

29-09-04, Vjaka
- Optimized OF_Advanced_AI, makes NPC to remember the path, recalculating it
  not so often (depending on INT).

30-09-04, Furio
- Added OF_Advanced_LOS (0800) this disable EF_CanSeeLOS and EF_DiagonalLOSCheck
  and enable a new method to check the LOS (still testing and optimizing).
- Fixed some compatibility problems with Linux build.
- Now Linux build is compiled statically, so no more tons of version linked to
  different shared library for each distro.

30-09-04, Vjaka
- Fixed Windows build issue.
- Removed EF_CanSeeLOS, EF_DiagonalLOSCheck, moved that to default LOS checks.
- Bugfix: unable to resurrect on too low strength. Now gets 1 HP at least.
- Average profile information is now saved to worldsaves and loaded.
- Option and Experimental flags are now shown in text on .show command.

03-10-04, Furio
- Optimized some parts in OF_Advanced_LOS.
- Fixed Linux build issue.
- Added ISTEVENT for chars (npc/players) working like ISEVENT 

04-10-04, Vjaka
- Regions now does not conflict if are in different mapplanes (useful for new
  maps support). You can also specify RECT=left,top,right,bottom,map in the
  rect record, specifyed the exact map for this rect to work.
- Started redoing the code to support multiple maps. This will invalidate old
  mapplane feature which was 0..255. This is affected mainly by teleports and
  moongates since many of default ones had 255 mapplain specifyed. You should
  change it to 0, since this is only for map0.
- Added MAP property same as MAPPLANE (in future MAPPLANE will be removed)

REVISIONS-56-SERIES

0.56a

----0.56a --------------------------------------------------------------------
---- 08/12/2004

06-10-04, Vjaka
- Removed DISGUISE(NAME/VERSION), renamed the current version to 0.56a.

07-10-04, Vjaka
- Removed AGREE config line neccessaty since it is not longer R* series.
- Added startup expansion set support output depending on map*,statics*,staidx*
  files found and loaded (T2A, LBR, AOS, SE).
- Removed EF_New_Maps since it is integrated to source now, packet is sent when
  needed.
- Moving on other map now moves the same map on the server. But this currently
  does not use caching and re-read tile information from map files every time.
  Caching of same sectors but in different mapplanes will be in the future.
  You should both add regions for these maps, and place corresponding files in
  place where all other mul files resides.
- Changed values of EXPERIMENTAL flags to remove empty slots between items.

08-10-04, Vjaka
- Fixed memory leak caused by map cache removal.
- Fixed client screen update on map change.

08-10-04, Furio
- Added PROMPTCONSOLE, it makes the client prompt (like on page request) and send
  the response as an argument of a user definied function.
  (syntax PROMPTCONSOLE callback function, message to prompt)

10-10-04, Furio
- Added RESDISP properties to account. Accepted values are 0 (PreT2a client),
  1 (T2A), 2 (LBR), 3 (AoS), 4 (Samurai Empire). This is used to identify what type
  of client is logged in. As default is set at 0, but if the client is T2A is
  automatically set to 1 by Sphere. LBR, AoS and SE is not setted automatically and
  is leaved to you.
- Added to CHARDEF properties RESLEVEL, RESDISPDNID, RESDISPDNHUE. The first state
  from what UO version the anim comes. The second what anim id is showed to older
  client version. The third an hue showed to older client (if 0 or null the default
  anim hue is used.
- Modified scriptpack to reflect these changes for T2A monsters.

22-10-04, Vjaka
- Added <dVALUE> as a shortcut to <eval <VALUE>> to get a decimal value of a
  single expr like a variable. Note, this affects EF_Intrinsic_Locals a bit.
- Commands with .command and spaces before will be treated as without spaces,
  since extra space makes privileged chars to reveal self.
- Added TAG.PARTY_CANLOOTME for party. If 1, allows party to loot self.
- Added @Kill trigger (SRC-killer, ARGO-killed)
- Added sector function ALLCHARS,ALLITEMS similar to ALLCLIENTS. For regions
  you can use SECTORS.ALLCHARS, SECTORS.ALLITEMS.
- Changed GODPORT to accept port number as well. Old values ( <=0 = disables,
  1=ServPort+1000) are still working also.
- Added SYSCMD and SYSSPAWN commands to run external applications. Returns <0 if
  there was an error. The first one blocks while program is running while the
  second spawns and continues scripts execution. Due to obvious security fear
  in these commands, they are disabled if OF_FileCommands is not set. Up to 9
  command line arguments are passed to the external application.

23-10-04, Furio
- Fixed minor things in grayproto.
- Updated grayproto (list/sizes of Uo packet in Sphere).
- Finished and debugged the new crypt engine (for crypt clients). Currently up
  to latest current OSI client 4.0.5a is supported.

25-10-04, Vjaka
- Fixed exception in writefile when unable to open the file.
- Added account name output when packet dispatch generated an exception.

25-10-2004. Furio
- Still updated grayproto, with new packet infos.

26-10-04, Vjaka
- Fixed SMSG[u] resolve error.
- Fixed <dSOMEVAL> giving some hex results.
- Added update for items moved by NPCs when they blocks the path.

27-10-04, Vjaka
- Now Windows build tryes to use winsock 2.0 if available instead of 1.1.
- Added amount argument to NEWITEM (newitem i_gold,45). Defaults to 1.
- Removed one of occasions with creating an extra log not in logfile path.

27-10-04, Furio
- Fixed a bug in displaying big dialogs with newer clients (4.0.X).
- Fixed a bug where some clients were crashing when adding an item.

28-10-04, Vjaka
- Disabled string 'q'/'Q' to be said by privileged accounts. It is due the
  fact that default macro for repeat is Ctrl+Q, and one less Ctrl press will
  lead to GM to reveal self existance around, which really is not good.

31-10-04, Furio
- Some fixes related to account creation and bank/box hack.
- Removed EF_AgeOfShadows. It'll be re-added with new features and complete
  compatibility for older clients, when enabled.
- Fixed another exploit with Bullettin Boards. Thx to Balkon for reporting it.

01-11-04, Vjaka
- Added .pid file existance notification to warn for double sphere launches.

02-11-04, Vjaka
- Now light level for sectors is saved as LIGHT istead of LOCALLIGHT.
- One more cause for long default message string lookups removed.
- EQUIPHALO now takes an argument - time to work on a person.
- Fixed bug causing objects calculated to be in sector 0 always.
- Added @Destroy trigger for objects.

04-11-04, Vjaka
- Quickfix of OF_Magic_PreCast - now not precasting on NPCs.
- Consume now can take more than 65k at once.
- Added @CreatePlayer to trigger just after the char was created by a player.

05-11-04, Vjaka
- Now "Admin" is shown instead of "GM" if person is admin or owner in title.

06-11-04, Vjaka
- Added sector function ALLCHARSIDLE similar to ALLCHARS, but looping via
  disconnected/mounted/etc chars, not accessable by ALLCHARS.
- Added auto map fix to zero map if it is out of bounds. Please note, that
  this can cause some problems with MOREM usage as well.

25-11-04, Furio
- Fixed: encryption - client login.
- Fixed: dVALUE evaluating when VALUE is already int.
- Fixed: EQUIPHALO <timer> does not making the light disappearing.
- Updated supported clients to 4.0.6a.
- Removed "Cannot move here!" message.
- Added more information to "MOVE: empty region" error. (uid and point)

30-11-04, Furio
- Fixed: MOREM automatically converted to 0 because of new multi-map feature.
- Added MasterUid property to guildstones

02-12-04, Furio
- Fixed: Gm Page menu not sending gms on page select.
- Fixed: Lord is displayed without space.
- Fixed: TAGAT trying to access to non existing TAGs.
- Modified: Only items with 08000 as attr are moved to spherestatics.scp.
- Modified: Overskillmultiply is 0 by default now.
- Added: ISEVENT for regions.

08-12-04, Furio
- Fixed: EvaluatingIntel on 0 int NPCs.
- Fixed: EQUIPHALO light disappearing on Dispel.

08-12-04, Vjaka
- Fixed exploit submitting invalid amount in buy packet giving free resources
  (thanks Breaker and Fallout for reporting this).
- Fixed canmove to accept DIR values (0..8) in addition to a letter arguments.
  Same changes affects other places, like move command, etc.
- File locking method optimised. It should improve the multithreading a bit.
- Result of the old "ACCOUNT accname" command changed to be more informational.
- GMs should login with invul and without allshow flags set.
- If reference set to OBJ/NEW does not exist, zero will be storied instead. And
  opposite, if it is already deleted, OBJ/NEW value is cleared to zero.
- Fixed exception in f_onaccount_login.

08-12-2004, Various authors
- Fixed some scripts by Vjaka.
- Added new scripts and scripts fixes by Tattooed Corpse.

0.56b

---- 0.56b --------------------------------------------------------------------
---- * not released yet

09-12-04, Vjaka
- Added map caching supporting all maps. Due to this, sectors are no longer
  same in the same spot in different maps, allowing local settings for maps.
- Added ADDCIRCLE=x[,y] to add a circle to a character's spellbook. If y is on,
  includes all lower spell circles as well.
- File locking method optimised. It should improve the multithreading a bit.
- Changed [SECTOR x,y] in world saves to x,y,0,map to allow local settings for
  sectors in different maps. Old format will default to map 0.
- Since sectors are no longer shared witheen different maps, sectors on maps,
  unsupported by server (having no corresponding .mul files) do not get ticks.
- Fixed cause to duplicate saved items in static saves in several occasions.
- Added BADSPAWN command to jump to the first bad spawn found in the world. You
  should add this to some of the [PLEVEL records. It also saves the UID into
  ACT in case you unable to see it due to some obstacles.
- Removed useless PRIVHIDE (privshow 0/1 is enough for this).

10-12-04, Vjaka
- Fixed some defmessages misprint making unable to override them.
- Fixed @Kill to trigger even if the killer is not an agressor in the fight.
- Changed MAPPLANE->MAP, LOCALLIGHT->LIGHT (.56a supported both variants, but
  saved the second). Launch and save in .56a will autoconvert this in saves.
- Now any items with ATTR_STATIC are saved to spherestatics.scp, not only those
  who has this flag being the only set.
- Fixed carriage return in accounts unused message.

11-12-04, Furio
- Fixed: bugs with FORCONT* loops.
- Fixed: bug with coloured text in comm crystal.
- Added: SKILLGAIN function to call internal sphere skillgain function. Args are
  skill to gain and difficulty (0 to 100).
- Added: REPORTEDCLIVER property for clients. It'll contain the version that
  the client is. (this is easy fakeable by 3rd party programs, but still is
  useful)

13-12-04, Vjaka
- Fixed resolving functions executing on containers, if the name started from
  rescount,restest,fcount or count.
- Fixed isneartype not working if calling under points (like from TARGP).

17-12-04, Vjaka
- Account delete information now contains account name.
- Added NPC keyword GOTO x,y,z,map to execute sphere default movements there.
- Redone pathfinding to support separate thread execution, so it now utilizes
  extra thread if OF_Multithreaded is set.
- Advanced AI now includes food search on hunger to eat and gather meal around.
  It is executed in separate thread with pathfinding if configured so.

21-12-04, Vjaka
- Changed sector allocations, now allocates only those who are needed by the
  server depending on the *.mul files found. Thus, on bare t2a install no space
  for other maps will be allocated (saves several Mbytes).
- Random selection {x y} now supports format {x,y} also. Should help using it
  with DAM/AR fields of items.
- Added EXP field to characters. No internal support for it yet. But you can
  use it in scripts already.
- Empty accounts file is created on-fly if not found. Useful for unpack-n-run.
- Fixed bug with TOTALCONNECTTIME being increased by doubled value, and now is
  made more accurate.
- Optimized the UID allocation routine, trying to disallow creating holes in
  objects allocation. This should improve memory neccessaty increase for large
  or long-lasting servers. Howewer, this does not defrag the current save, only
  newly generated UIDs will be optimized - no existant UIDs will be altered.
  Garbage Collection should be enabled for this optimization to work.
- Expanded account information in ACCOUNT NAME command by logged char name.

03-01-05, Vjaka
- Added <Rarguments> as a shortcut to <eval rand(arguments)>. Can take either
  one, two or no arguments like <R>, <R15>, <R3,15>. If no arguments given,
  R1000 is assumed.
- You can now disable broadcast messages (like errors, connects, etc) from the
  server log to be sent to your account logged via telnet. You can toggle this
  behavior per account via PRIV field of the account (mask 0400). So, only
  responces to your commands and some very-basic messages (like world save)
  will be sent in this case.

08-01-05, Vjaka
- Added support for virtual maps. Now map numbers 0..255 are supported by the
  server.
- Map dimensions are now customizable in INI-file using by the following cmd:
  MAPx=max_x,max_y,sector_size,real_map_number.
  Here x - the map number for ingame useage (4rd coordinate of the coordinate).
  max_x - maximal X coordinate of the map (should be multiply of 8).
  max_y - maximal Y coordinate of the map (should be multiply of 8).
  sector_size - the sector size (you can play with this if you experience lags
    decreasing this value (should be multiply of 8 and both max_x and max_y).
  real_map_numer - number used by map files (like: 0 for map0, statics0).
  You can also change some attribute of the current map not redefining all
  values, skipping the ones you wish to be as default putting 0 instead (for
  real map number -1). For example, decreasing sector size for map 0 to 16
  from default value of 64 will look in INI file thus: "MAP0=0,0,16,-1".
  Please note, that no changes are applied when server is already started.
- Default map numbering has been changed (you can ovverride it easily by MAPx
  setting in sphere.ini). Now 0 = map0, 1 = map0, 2 = map2, 3 = map3, 4 = map4.

10-01-05, Furio
- Added: tooltip %d command for gumps (works in SE clients).
- Added: sphere_map*.scp/sphere_map_points*.scp for new maps and fixed the
  default one.
- Updated: gray proto with new packets.
- Updated: client support to 4.0.7 family.
- Updated: fix in default script pack.

13-01-05, Furio
- Modified SERV.MAP(x,y) to accept a 3rd parameter, the map. If omitted is
  defaulted to 0.
- Added SECTOR access to read-only properties from a point. Example:
  SERV.MAP(100,100,1).SECTOR.ITEMCOUNT will give you the itemcount of the
  sector that contains the point 100,100 on map 1.
- Added REGION access to read-only properties from a point. (works like
  SECTOR one)
- Fixed: gumppic to show hue when used. (Hue usable only for client >= 3)

15-01-05, Vjaka
- Changed the way the server saves allowing more information about the cause of
  some exception (which is now not fatal for the save).

17-01-05, Vjaka
- Added LEVEL field to char as the future part of the experience system.
- Added ExperienceSystem, ExperienceMode, LevelSystem, LevelMode, LevelNextAt
  fields to the .INI file as a future part of the experience system. Read the
  default sphere.ini for more description over these fields.
- PRIV flags are now auto-clearing bits corresponding to not used priv. This is
  a solution for a possible incompatibility when the previosely disabled bit
  will be reused with other functionality on same world saves.
- Fixed: LAYER_EXTRA is now used ONLY to place the items bought by the vendor.
- Items sold to vendors are auto-deleted exactly upon the sell operation. The
  only case they are saved, if they are sold to player vendors.
- Amount of items in sell packet is now limited to the container size.
- Fixed one more sell/buy exploit.

17-01-05, Furio
- Fixed: party system.
- Fixed: group disappeared from gumps.
- Added: scriptable components for the party. Still work in progress.
  With <REF>.PARTY refer to the current party of the char.
  	   <REF>.PARTY.MEMBER.x refer to any member of the party.
       <REF>.PARTY.MASTER refer to the master of the party.
  PARTY.MEMBERS give the count of members
  PARTY.MEMBER.x has also ISMASTER and ISLOOTABLE properties.
  PARTY.ADDMEMBER[FORCED] you can add a meber by script (forced  version works
       without the normal /accept behaviour)
  PARTY.DISBAND disband the current party
  PARTY.REMOVEMEMBER @<N> remove the Nth member
  PARTY.REMOVEMEMBER <UID> remove a member in the party with the UID given
       (if is the master the party is disbanded)
  PARTY.SYSMESSAGE @<N> TEXT send a party sysmessage to the Nth member
  PARTY.SYSMESSAGE <UID> TEXT send a party sysmessage to a member in the party
       with the UID given
  PARTY.SYSMESSAGE TEXT send a sysmessage to the party
  PARTY.MESSAGE @<M> TEXT send a message from the Mth member to the party
  PARTY.MESSAGE @<M>,<N> TEXT send a message from the Mth member to the Nth
       member
  PARTY.MESSAGE <UID1> TEXT send a message from the <UID1> to the party
  PARTY.MESSAGE <UID1>,<UID2> TEXT send a message from <UID1> member to <UID2>
- Added: TAG/TAG0 for party.

24-01-05, Vjaka
- Fixed bug with some keywords recognition caused by <Rxxx> operator.
- Chardef triggers do not apply to players now.
- Write deleted accounts out to log file

25-01-05, Vjaka
- Fixed vendor selling in case of one item being sold.
- Ensure double character removal from view in "remove 1" case (for allshow).

26-01-05, Vjaka
- Fixed registry settings overriding MULFILES setting in some cases in win32.
- Fixed the way spells are checked whatever they are in a spellbook. New type
  of spellbook (186) has been added for script purposes with internal support.
  Now the spellbooks (if not default one) can be configured to specify which
  number of the lowest spell it contains (stored in MOREZ).
- Fixed casting speel with two or more similar spell books when it does not
  exist in one of these books.
- Removed limitation to 1 byte (255) for MOREZ of spellbooks. Now it can hold
  2 bytes (65535). Please note, that setting MOREZ via MOREP is incorrect here.

28-01-05, Vjaka
- Fixed bug caused with layer_extra removal from buy menu in older clients.
- Added support for packets filterings. Please note, that you should understand
  what are you doing. You can install your handler of a packet X specifying
  PACKETx=functionname. This function will be called when the packet is going
  to be processed by the server. It has the following arguments set:
  ARGN1 = packet number (to allow using one function for different packets)
  ARGS = source client ip address
  LOCAL.0-LOCAL.9 - first 10 bytes of the packet for parsing contents
  If you do return 1 in this function, the packet will NOT be processed.
- Some exceptions debug messaging speed optimised.

29-01-05, Vjaka
- Added argument for RECRUIT on guildstone. If set 1, the member recruited will
  become a fully qualifyed member of a guild with abbriviation shown on.

30-01-05, Furio
- Fixed: compatibility problems on Linux.
- Freeze for 0.56b Test1.

03-02-05, Vjaka
- Argument switches of target[f][g][w] functions can be given in any order.
- Fixed removing events on other events execution that leaded skipping others.
- Memory usage is lowered (pre-storage optimized for more accurate values),
  approx 30-40% less memory will be used (depending on load structure).

04-02-05, Vjaka
- Logout now quits from chat removing problems with inactive zombies left.
- Characters with Statf_STONE cannot logout (actualy, have 1 hour logout timer).
- You can now access account properties using SERV.ACCOUNT.x. reference where x
  is the numerical index of the account (0..SERV.ACCOUNTS) [read-only]
- Fixed extra step made on sector borders.
- Fixed "return"/"return 2" in chardef triggers stopping others from launching.

04-02-05, Furio
- Added support for 4.0.8 clients.
- Fixed some arguments parsing in party functions

05-02-05, Vjaka
- Optimized time profiling on ticking objects.

07-02-05, Vjaka
- Problem with items left with switching virtual maps with one physical should
  be solved.
- Added simple mySQL support. New settings MySqlHost, MySqlUser, MySqlPassword,
  MySqlDatabase will be used to connect to the DB in case if MYSQL is set to 1.
  You will need extra .dll/.so to download for sphere installation. They will
  join the packages.

08-02-05, Vjaka
- Fixed several map support bugs with incorrect sector counting (should improve
  support of a high map numbers).

11-02-05, Vjaka
- Fixed bug causing incorrect function name lookup in several cases with some
  special chars like underline (_).
- Added debug flags 0200 and 0400 to debug experience and level changes from
  server console (if enabled).
- Experience system integrated. Few addons about defaults to config comments:
  a) experience bonus for crafting counted as a value/100.
  b) default experience set on create is str+dex/2+int.
  c) manual setting experience will alter level if configured so.
  d) dying decreases experience by 10%
  e) killing enemy will give experience depending on exp and level of target.

12-02-05, Vjaka
- Added 2 more EXP settings to config: ExperienceKoefPVP and ExperienceKoefPVM,
  controlling percents of gaining experience in PvP and PvM combat.
- Added triggers @ExpChange and @ExpLevelChange, where ARGN1 (writeable) is the
  change is going to happen. Returning 1 cancels the change.

12-02-05, Furio
- Fixed: another buffer overrun exploit in log system. Thx to Radiant for
  reporting it.
- Added: SUPPRESSCAPITALS (default 0) to enable/disable Vjaka system to avoid
  long text written only in capital letters.

14-02-05, Vjaka
- OF_Advanced_AI is now obsolete. Currently it is controlled by NPCAI setting
  in config file.
- Added MaxLoopTimes value to config (default 10000) to limit a number of
  iterations the while/for cycle could have to remove possible deadlocks making
  server to stop responding (better use this instead of main loop restart).
- Added MOVERATE to CHARDEFs. It is the percent modifier of the speed of the
  NPC - the higher it is, the slower will the NPC be. Default is 100.
- Now double clicking on the log window in windows build will bring up an
  editor with corresponded file (if any specifyed in the same line) opened.

15-02-05, Vjaka
- Fixed one more buy menu exploit (probably, the last one) ;).
- Fixed NEWITEM id,amount in case if non-exact value was given (like {x y}).
- Added cont argument to NEWITEM (now it looks NEWITEM id,amount,container).

16-02-05, Furio
- Fixed: compatibility things for Linux/BSD build.

27-02-05, Furio
- Added: STRREV for strings.
- Reverted to dynamic linked executable for the linux build. That permit some
  exception handling during signal raise.

01-03-05, Vjaka
- Fixed gaining fame and exp on summoned pets.
- Faster and more intelligent protection from fastloot like ,emptycontainer. The
  delays for picking now are 0.3 sec per item. Item with amount (popping dialog
  with input) adds extra 0.2 sec delay.

04-03-05, Vjaka
- Fixed an exploit with invalid book packet (thanks Fallout for reporting).
- Fixed @Destroy event not fired.
- Added the minimal delay before accepting sell/buy deal equal to 0.3 sec per
  each item. This limits the power of autobuy/autosell/inject sell all.
- Added client property CTAG similar to the TAG array. The difference is that
  the contents is not saved, and is destroyed upon logout - useful place to
  store your local variables on the client character.

06-03-05, Furio
- Some other fixes to improve Linux build stability.
- Now killing sphere with HUP make the server save and exit.
- Added support for 4.0.9 client encryption.
- Added more comprehensible messages to error output (bad login / garbage / save)

10-03-05, Vjaka
- Fixed placing items from invalid containers upon save loading to world nearby
  100,100 coords, these items should be deleted, so they are.
- Limited amount of items shown to client on screen to MaxItemComplexity*30 (by
  default 25*30 = 750).
- Removed goldreserve from guilds - use TAGs for this.
- Windows: added build date and time to the About box along with the version.

13-03-05, Furio
- Added SERV.GUILDSTONES.x to referer to the Xth guildstone in the server.
  Use SERV.GUILDSTONES.COUNT to get the total number.
- Added SERV.TOWNSTONES working like SERV.GUILDSTONES.
- Added MasterUid property also in write mode. Now you can change the guild
  master passing the uid as argument.
- Some minor fix to Linux build.

14-03-05, Vjaka
- Optimised object los check, should decrease waste of cpu on large shards.
- Fixed possible webpage exploit with malformed requests.
- Removed EMAIL property from accounts and all associated commands (EMAIL/
  ADDEMAIL,defmessages) - use account TAGs to work with it when needed.
- Removed server status responce from the standart ping/telnet connection.
- Fixed logging in localy when both RemoteAdmin and Administrator accounts were
  not found and LOCALIPADMIN was set.
- Fixed misprinted defmessage ncp_* to npc_* (2 matches), sphere_msgs.scp now
  comes commented by default - uncomment things only you need to change - most
  people will not need this file at all, so by this way we show that.

14-03-05, Furio
- Temp removed "Limited amount of items shown to client on screen".
- Moved FOLLOW from exe to scripts. Now MEMORY_FOLLOW(01000) is unused.
- Modified default info gump with a new one (thx to NHR).

17-03-05, Vjaka
- Removed EF_No_Pause_Packet, it is built in to code now.
- Drop item on vendor to trade quick, removed npc_vendor_sell (from 1.0).
- Setting SLEEPMASK=0 will give no time to sleeping sectors (from 1.0).
- Optimised few widely used checks like touch check.

29-03-05, Vjaka
- Removed debug message about not found pathfinding path.
- Fixed bug causing objects disappear on doubleclick.
- "Limited amount of items shown to client on screen" is back due this was not
  the cause of the previous bug ;).
- Removed verbose command. It was anyhow very limited in Release build.
- Added -c command line switch to WIN32 build. It allows changing registered
  class name for sphere, which helps working via windows messages with several
  sphere servers on the same machine.

05-04-05, Vjaka
- Made ARGN1 writeable in @Hunger.
- Fixed OptionFlags display instead of MagicIngoreAR.

11-04-05, Vjaka
- Packet filtering support heavily expanded. Now you have these variables:
  LOCAL.NUM (value) set to amount of data got from the packet
  LOCAL.STR (string) all data threated as a string (aware of zero chars)
  LOCAL.ACCOUNT (string) current active account if any is logged by the client
  LOCAL.CHAR (uid) current active char if any is logged in from the client
  and the all data is now given in LOCAL.x, not the only first 10 bytes.
- Returning 1 in PACKETx handler function no longer shows Bad Msg Eat string.
- Removing exception on invalid map point in some drop cases.
- Account named like account keywords (ADD/BLOCKED/etc) denied for creation.

12-04-05, Vjaka
- Walking via others with no penalty fixed (now it more like it was before in
  the times of 55i - more correct way). You can override this by changing ARGN1
  in @PersonalSpace trigger.
- Fixed message of guard owners always saying previous region guards owners.

14-04-05, Vjaka
- Fixed Sphere accepting a player character as a valid guard in some cases.
- Fixed guard walking to enemy even if they are cheaters (instantkill enabled).
- Added messaging flood control - equal sysmessages one after another will not
  be sent to the client (if they are absolutely identifical and no any other
  message was between them).
- Added STRIP [DIR/] console command. Reads all scripts and outputs them to new
  files with only [...], and base definitions lines. Good for giving script to
  your gms to be able to use axis with very basic information.

17-04-05, Vjaka
- Fixed bug with quick trade on player vendors.
- Fixed an exception caused by empty messages in some client events.

21-04-05, Furio
- Added 4.0.10 client keys.
- Fixed: bugs in getting vals from party.

21-04-05, Vjaka
- Fixed some cases (not all!) of scripts clearence by specifying incorrect
  directory in STRIP command. There are too many ways to specify direct or
  indirect path that will look different but will lead to the same file
  starting from symlinks, ending with messing with .. and dir seprarators (\/).
  Locking the file is not ok, since it will cause problems with other threads
  or applications working with file. So use this either with care, or with no
  argument ;)
- Added Axis tags support CATEGORY, SUBSECTION, DESCRIPTION to STRIP command. I
  do not use them, so did not add that when making the command :).

23-04-05, Furio
- Some fixes and optimization for Linux code.

03-05-05, Vjaka
- Fixed bug causing impossibility to dress off items in some cases.
- Removed background task and all corresponding to it operations, since they
  only looked as working, while doing almost nothing.

14-05-2005, Furio
- Fixed some bugs in client detection.
- Fixed a bug for too short account name login.
- Removed support for encrypted client from 1.25.31 to 1.26.4 (you can use them
  only in unencrypted way).
- Fixed problems with allshow.
- Fixed problems with rand(x,y).
- Disabled (temp.) Vjaka's messaging flood control.

24-05-05, Furio
- Fixed some bugs for Linux build.
- Added CanSee check in spellcast.

25-05-05, Vjaka
- Added OF_Flood_Protection as a control of toggling appearence of same
  messages and sysmessages one after another. Note, that this setting is always
  off for PLEVEL 2 or upper, so GMs will always get everything.
- Fixed copses giving unlimited blood amount. Now, the corpse gets TAG.BLOOD
  upon creation to TAG.MAXBLOOD of itemdef. You can also alter TAG.BLOOD upon
  creation on the coprse object. The default value is 5.
- Due to multiply requests, TAG.LastLogged is removed just after showing it to
  client. It is still there for the purpose to show real last connection date.
- Added INI setting of MOVERATE (default 100) to change the default moving
  speed of all NPCs at once. Remember, this is percent setting.
- Fixed bless and curse on items which lead to ultimate stats raise.

28-05-05, Furio
- Fixed: Corpse not appearing.
- Fixed: CTAG sysmessage on set.
- Fixed: FVAL bug.

18-06-05, Vjaka
- Fixed book saving only the first line on each page.
- Fixed exception on allshow.
- Fixed console errors when using looms and repair.

27-06-05, Vjaka
- Removed RESOURCES2 line since it never worked at all.
- Fixed variety of bugs with using some keywords like newitem from functions
  called directly from the server (like f_onserver_start). Special char is
  created for this purpose to be acting as a default object.
- Region now executes command for all sectors inside if the command is sector
  one (you can use REGION.all* instead of REGION.SECTORS.all*) for example.
  REGION.SECTORS command is depricated.
- Added StatsFlags setting to cap MAX(HITS/MANA/STAM) status.

01-07-05, Vjaka
- Added f_onserver_exit triggered on server quit. Quite useless since no saves
  are occured after then, but good for launching some prog using sysspawn.
- Townstones are now listed in status using TOWNLIST command, splitting town
  and guild stones to different links.
- Fixed calling guards on self.

03-07-05, Vjaka
- Fixed fightself bug. It was not fixed before. I did not notice that since do
  not use default summon creature spell. Thanks Handred for reporting.
- Trying to improve the rate and distance NPC sees characters around. Now it
  should happen faster, since higher distance is checked in areas with little
  complexity.
- Spawning NPC distance is now more random. Also now spawning checks the
  borders inside disallowing to spawn in unaccessable place. Thus, if you place
  spawn in house and the doors are closed, there is no possibility for NPC to
  spawn outside the house.
- The death now triggers inventory close to avoid appearing fake items inside
  that are no longer in the pack.

04-07-05, Vjaka
- Fixed impossibility to change type of the object to a non-default one.

08-07-05, Furio
- Fixed SERVIP problems (and similar).
- Fixed pet killing not giving criminal status to owner.
- Added: client 4.0.11 keys.
- Fixed: FVAL 0 now gives 0.0
- Touchups on Ef_Walkcheck routines

11-07-05, Vjaka
- Fixed ALLCHARS region/sector command.
- Fixed typedef bug on save.

17-07-05, Furio
- Added SERV.RTIME.FORMAT. It takes as args a string like strftime()
  (the list is here http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+strftime ).
  e.g SERV.RTIME.FORMAT %d returns the number of the day.
- Fixed: animal trainer problem with EF_Walkcheck.
- Fixed: magic lock/unlock bugs.
- Fixed: dagger on static crop.

19-07-05, Vjaka
- Multithreading now should be more stable.
- Few misc fixes in combat, like added los check.
- Fixed REGION.ALLCHARS command.

19-07-05, Furio
- Fixed: creating unnamed chars.
- Fixed: creating chars with no title.
- Fixed: creating chars with hacked stats.
- Fixed: writing on console.
- Fixed: problem with spawning with EF Walk flags.
- Fixed: touchups in script pack.
- Added: hardcoded support for AoS/Se/Ml skills.

21-07-05, Furio
- Fixed: Warmode refresh if getting attacked (thx to Torfo).
- Fixed: Training skill out of skillsum cap.
- Fixed: Viewing hidden clients with higher plevel with allshow.
- Fixed: skill name/key/title in sphere_skills.scp
- Fixed: template mispelled (orge instead of ogre).
- Modified: sphere_map*.scp and sphere_point*.scp are now in map/
	subdir.
- Modified: only map0 and map1 scp are loaded, to load the others
	uncomment the lines in spheretables.scp

22-07-05, Cloud_Br (Script pack)
- Fixed: buying wool from vendors.
- Fixed: Missing flags in sphere_defs.scp
- Added: sphere_item_aos_se.scp containing various AoS/Se item defs.
- Added: spherechar_se.scp containing various npc defs for Se.

23-07-05, Furio
- Fixed: rock throwed by ogres not decaying.
- Fixed: cansee e musical item for provocation.
- Fixed: npc speak on train.
- Fixed: animal lore on mounted pets.

24-07-05, Vjaka
- Fixed: default object operations on server. Will not show extra error msgs.

25-07-05, Furio
- Fixed: npc try to attack mounts causing exceptions.
- Fixed: mounts disappearing. (thx to Gygrazok and Darkraven)
- Fixed: args not used in trigger @PersonalSpace. (thx to Darkraven)
- Fixed: Map teleports teleporting npcs.
- Added: 4th argument to map teleports. If is set to 1 npcs can use the teleport.
	By default is 0. Eg: 1,1,1,0=100,100,100,0=my_teleport=1 is enabled,
	1,1,1,0=100,100,100,0=my_teleport=0 or 1,1,1,0=100,100,100,0=my_teleport is
	disabled.

27-07-05, Vjaka
- Fixed: Several exceptions with latest client.
- Fixed: Extra error msg for show command when server property was specifyed.
- Fixed: Some more timeslices freeing will decrease useless cpu usage in
  multithreaded mode.

30-07-05, Furio
- Fixed: exploit with hair dye gump (choosing random color).
- Fixed: x/set respecting plevel.
- Moved: hair dye gump from exe to scripts.

30-07-05, Cloud_Br (Script pack)
- Fixed: problems with spherechars_se.scp
- Added: defs to sphere_backward_compatibility.scp
- Fixed: some areas without guards (map0/map1).

30-07-05, Vjaka
- Added: MySQL support to scripts. You can execute any queries and statements,
  as well as get data from mysql link. A special script object similar to the
  FILE or OBJ added and is named DB.
  DB Properties:
    CONNECTED - the current state of database connection (1 or 0)
	ROW.NUMROWS - number of rows returned by last query
	ROW.NUMCOLS - number of columns returned by last query
	ROW.* - list of all columns returned by last query. Both column names and
	  numbers are saved in the list, so you can use indexes [0..] or column
	  names [id, name, etc] here.
  DB Methods:
    CLOSE - disconnects the SQL server
    CONNECT - connects to the database (using mysql settings in sphere.ini)
	EXECUTE - executes SQL query not filling any results anywhere
	QUERY - executes SQL query filling ROW.* properties information
  Example of a simple query:
	DB.query "SELECT id FROM users WHERE account='<SRC.ACCOUNT.NAME>'"
	SERV.log "Got ID = <DB.ROW.id>"
  Note: Server does not create connection upon start, so if you wish to make
    the connection with the server start, add DB.connect to the function
	f_onserver_start.
- Fixed: Map support higher than map 0. Now there should be no more problems
  with fix throwing to incorrect Z level (hopefully).

31-07-05, Radiant
- Added: Support for tooltips. Requires OF_Tooltips (02000) and the 020
  FeaturesLogin flag. Usable in scripts:
  	Every object has a OBJPROPS property, which works like tags. Syntax:
  	OBJPROPS.<name>=<locale id>,[args]
  	note that <name> can be anything, but the entries are sent in alphabetical
  	order. So, for example, a bag, the props would look like this:

  	OBJPROPS.a="1048032"				// a bag
  	OBJPROPS.b="1050044,32,450" // ~1_COUNT~ items, ~2_WEIGHT~ stones
- Fixed: exception occuring during load with unknown keys in sphere.ini

01-08-05, Radiant
- Added: CTAG0 similar to TAG0 version of CTAG.

03-08-05, Radiant
- Horses are now forced to dismount and will die if someone is riding them and
  they have statf_dead set or their hitpoints are 0 or below.  This should fix
  the "ghost" horses appearing sometimes (when horse is poisoned and ridden).

08-08-05, Furio
- Fixed: CTAG0 when setting a value.
- Updated: sphere_backward_compatibility.scp
- Added: FILE obj, enabled by Of_File_Commands. Look in manual.txt for help.

08-08-05, Vjaka
- Added: SQL support for multiply rows. You can use both ways ROW.<column#> and
  ROW.<row#>.<column#> for addressing a field you are interested in, but the
  first method allows operating on row #0 only.
  Sample full-n-ready script to show how to use this feature:
	DB.connect
	if ( <DB.connected> )
		db.query "SELECT * FROM mytable"
		for R 0 <eval <DB.ROW.NUMROWS>-1>
			SERV.log "--- ROW #<eval <LOCAL.R>> ---"
			for C 0 <eval <DB.ROW.NUMCOLS>-1>
				SERV.log ".. COLUMN #<LOCAL.C> : <DB.ROW.<eval <LOCAL.R>>.<eval <LOCAL.C>>>"
			end
		end
	endif
- Added: a possibility to specify MySQL port. Just add ':port' to the host
  record.
- Fixed: account references in several cases leading to errors.

11-08-05, Radiant
- Fixed 'undefined keyword' error on SKILLMENU with not enough resources on player

13-08-05, Exer (Script pack)
- Added: sphere_item_building_roofs_se.scp (SE roofing items)
- Added: sphere_item_building_walls_se.scp (SE wall items)
- Added: sphere_item_magic_necromancer_aos.scp (SE necromacer items)

13-08-05, Cloud_Br (Script pack)
- Updated: sphere_backward_compatibility.scp
- Updated: sphere_region.scp
- Added: sphere_chars_newer.scp (All monsters of AoS/SE)
- Removed: sphere_chars_aos_se.scp (Obsolete, sobstituted by chars_newer.scp)

15-08-05, Vjaka
- Added: AutoResDisp ini setting (default:0) to setup this resdisp by default
  to all accounts. Useful if all your clients are using at least some client.
  Recommended setting at least 1 (T2A).

15-08-05, Radiant
- Fixed: potential buffer overflow exploit in file write operations
  Also saves one string operation, it's gotten a little faster.
- Fixed: CTAG/CTAG0 got broken in last fix
- Fixed: Extremely long save times
- Moved: .admin from executable to scripts and completely rewritten it.
  Please copy sphere_admin.scp from the script pack. Same is going to happen
  to .tweak.

16-08-05, Rattlehead (Script pack)
- Added: sphere_item_building_floors_se.scp (SE floor items)
- Added: sphere_item_misc_se.scp (SE misc items)

18-08-05, Radiant
- Added: exception catching around more save sections, should give a better
  description if a save error occurs
- Added: sphere no longer cares if an npc is riding a valid horse, so you can
  just add a horse item
- Script sphere_admin.scp:
  - Staff can see their own IP
  - Invisible staff is now printed in red
  - Added summon cage
- Fixed: problem in saves and allskills, no check if skill is defined or not.
  Broke saves (naked players) on some servers with not all skills (AOS and SE) defined.
- Fixed: Disconnected NPCs (horses) being seen if rider is gone (probably! need feedback)

18-08-05, Gygrazok (Script pack)
- Modified: sphere_admin.scp:
  - Start position of dialogs set to 0,21
  - Default page of the tweaking menu set to "action"
  - + shown before account name for higher privs and - before guest accounts (like the old admin panel)
  - Removed PLevel informations in main page to get more space for char name
  - Closing tweak dialog brings back to main page
  - Added number of online clients in the main page title and changed "Administration Console"
    to "Admin Panel", which is shorter
  - Added "remove note" button
  - Fixed: extra page if you have 15 clients only

19-08-05, Furio
- Removed: OF_Tooltip
- Removed: Features/FeaturesLogin
- Removed: @CreatePlayer
- Added: Feature(T2A/LBR/AOS/SE/ML) to use feature expansion. Look in sphere.ini for usage.
- Added: f_onchar_create in sphere_serv_triggers.scp. With newer clients you'll get
	ARGN1 flags - ARGN2 profession chosen - ARGN3 elf
- Added: TRYSRV. It works like TRYSRC but putting automatically as src the server.
- Scripts: Added TRYSRV as plevel 7 command. I highly recommend everyone does this!

19-08-05, Radiant
- Scripts: Added TRYSRC as plevel 7 command. I highly recommend everyone does this!
- Fixed: d console command (area dump) was broken a while ago

21-08-05, Vjaka
- Fixed: 2 exploits due to bad player name parsing (thanks XD for reporting).

21-08-05, Radiant
- Made ROOM object accessable on everything. It is used like REGION, but for ROOMDEF.

22-08-05, Furio
- Fixed: Crash on sell for older clients.
- Fixed: Tooltip not working also if correct ini flags are set.
- Fixed: i_blood_2 created by sphere during hits not decaying.
- Added: TFLAGS accessable as SERV.ITEMDEF.defname.TFLAGS to get tiledata flags of the item.
- Added: p# dump all profiler data to profiler_dump.txt

23-08-05, Radiant
- Added: more exception catching to CSector::OnTick, should print more descriptive errors now
- Fixed: resource gathering bug (mining fishes when switching from pickaxe to fishing rod, etc)
  (resource gathering skill is now aborted if resource gathering tool is unequipped)

23-08-05, Vjaka
- Fixed: fatal exceptions referencing PARTY methods (PARTY.MEMBERS) from NPC.
- Fixed: account references for writing in scripts under low-privileged accounts.
  Both ways SRC.ACCOUNT.xxx and SERV.ACCOUNT.name.xxx are accessable this way.
- Fixed: invalid message when unlocking container told that I locked it.
- Fixed: NPC_AI_FOOD now obeys homedist and will not search out of the range.
- Fixed: NPC_AI_EXTRA caused npcs moving stonewalls and other spells :)
- Fixed: Pathfinding broken by some of the later changes.

23-08-05, Lynchy (Script pack)
- Added: NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)

24-08-05, Furio
- Added: Support for elf body (and ghost) in game.
- Added: Client keys for 5.0.0.
- Added: TAG.MAXPLAYERPETS to Stabler. It's the maximum limits of pets that a player
		 can stable. If not setted is 10.
- Added: @UserGuildButton for the new guild button on client.
- Added: @UserQuestButton for the new quest button on client.
- Fixed: Spellbook with newer clients (displaying/selecting spell).
- Fixed: Elf NPCs from Mondain's Legacy (npcs/spherechar_mondains_legacy.scp)
- Updated: grayproto to support ML quest button.
- Updated: spheretables.scp (changed plevel of some commands for better security)

24-08-05, Vjaka
- Added: CombatFlags ini setting. Currently it controls two aspects of the
  bounce back effect in combat.
- Fixed: Reference to SERV from some triggers including @Enter in regions.
- Fixed: House regions creation for maps bigger than 0.
- Fixed: Players unavailable to call guards on NPCs.
- Fixed: Trigger command that did not work on characters.

25-08-05, Radiant
- Removed: OBJPROPS
- Rewritten tooltips to use a trigger. There is @ClientTooltip on items and characters.
  (in the world, only non-static, movable items)
  You can use ADDCLILOC on the client in this trigger (SRC), syntax:
  ADDCLILOC <cliloc id>,[arguments]
  Arguments can also be NULL, to skip an argument.
  If this trigger returns 0 or nothing, some default properties will be added to the tooltip
  depending on the type.
  If it returns 1, no default properties will be added (but the tooltip still be sent).
- Added: @GetTooltip (ARGO = item being sent for) for players. This is like @itemEquip, etc.
  Fired before @ClientTooltip, if returns 1 @ClientTooltip is skipped.
  Try keeping these triggers light, because they will be fired alot.
- Added: f_onserver_save_finished, called after save is completely done
  (ARGS is time it took to save in seconds, 4 digit precision)
- Fixed: exploit to cast spells faster than normal (i.e. cast first clumsy then flamestrike)
  with precasting enabled.
- Added: COMMANDPREFIX ini setting. Default is .

25-08-05, Lynchy (Script pack)
- Added some Mondain's Legacy items (not complete yet)

26-08-05, Radiant
- Fixed: MASTERUID no longer changes loyalty, should fix the errors (was undesired behaviour too imo)
  Note that in order for this setting to work the person you set this to has to be a full member
  of the guild.
- Fixed: REMOVE not working in @EquipTest
- Added: Encryption keys for clients are now in SphereCrypt.ini. When new clients come out,
  the new keys can just be added here without the need to upgrade sphere.

26-08-05, Furio
- Fixed: Tooltip sent to wrong client version making them crash.
- Updated: sphere_defs.scp

26-08-05, Cloud_Br (Script pack)
- Updated: sphere_chars_newer.scp (Monsters of AoS/SE)

26-08-05, Gygrazok (Script pack)
- Added: sphere_item_deco_mini_houses.scp (House miniatures of AoS)

28-08-05, Furio
- Fixed: mem leak in CGTypedArray (and derived one).

28-08-05, Radiant
- Added: missing @itemClientTooltip trigger causing wrong triggers to be fired
- Removed: @GetTooltip. Please use @itemClientTooltip trigger now, argo = item
  tooltip being sent for (in both @ClientTooltip and @itemClientTooltip)
- Added: Notoriety title and guild abbreviation to default character tooltip
- Changed: Tooltips added in triggers now show below the name if return 0
- Fixed: Game Master title no longer shows on tooltip with privshow off
- Added: Elf bodies to sphere's internal list of humanoids
- Fixed: mem leak in sorted variable arrays (DEF/TAG/CTAG/VAR/LOCAL/etc)

30-08-05, Vjaka
- Added: GenericSounds ini settings to enable/disable all sounds.
- Removed: PlayerGhostSounds since it was not checked anywhere.

30-08-05, Cloud_Br (Script pack)
- Removed: spherechars_newer.scp
- Added: spherechar_lbr.scp (Lbr monsters)
- Added: spherechar_aos.scp (AoS monsters)
- Added: spherechar_se.scp (SE monsters)
- Updated: sphere_item_building_others.scp

02-09-05, Cloud_Br (Script pack)
- Updated: sphere_defs.scp (new sounds)
- Updated: spherechar_lbr.scp (Lbr monsters)
- Updated: spherechar_aos.scp (AoS monsters)
- Updated: spherechar_se.scp (SE monsters)
- Updated: sphere_item_building_others.scp
- Added: sphere_item_icons_new.scp (icons from new expansions)

03-09-2005, Furio
- Fixed: PARTY references (master/member)
- Fixed: hue/hair/beard for elf selectable on char creation
- Updated: sphere protocol (accepts tooltip refresh requests from new clients)
- Added: ISINPARTY to char (check if a player is in party)
- Added: UseDefaultSource (default: 0) if enabled SERV fallback to its default
  source when executing commands. You shold set this to 1 if you are operating
  with any new objects from functions called directly from the server, like
  f_onaccount_login, f_onserver_start and so on.

05-09-2005, Furio
- Updated: Sphere now support the internal client cache for tooltips. This will
  avoid wasting of bandwith and client crashes.

05-09-2005, Radiant
- Fixed: incorrect info on tooltips for some types

06-09-2005, Vjaka
- Fixed: some operations workability (SERV.new*) called from functions that are
  run directly by the server. This disables both the default script object and
  UseDefaultSource.
- Fixed: rescount-like operations when arguments was specifyed.
- Denied account auto-creation with first character numeric to avoid server
  confusion to treat this account as index or a valid name in some operations.
- Fixed: win32 server crash if server name was too long.

06-09-2005, Furio
- Added: SCREENSIZE to access the game window size if the client supports that.
  You can access that via SCREENSIZE.X and SCREENSIZE.Y.
- Added: RESENDTOOLTIP. Calling that on the object you need to resend tooltip.
  Since clients use a cache for tooltip, if you want to force the cache too use
  RESENDTOOLTIP 1.
- Fixed: REMOVEFROMVIEW/TARGET(FGW) not working.

08-09-2005, Vjaka
- Fixed: several errors with sql queries.
- Added: AutoPrivFlags to specify auto PRIV flags for new accounts.
- Added: ARGN1 to f_onaccount_login specifying account type. Most common values
  are 3(login), 4(go to game), 5(http), 6(telnet).
- Added: HitsHungerLoss to specify char hits percents lost on starving tick.
- Added: TAG.NOSAVE tag for objects. If set to 1 the object will NOT be saved
  when the world save will take place.
- Fixed: NEW* commands on characters not modifying character's ACT.

08-09-2005, Furio
- Fixed: SCREENSIZE.X/.Y not working.
- Added: CLIENTIS3D. Returns 1 if is a client is 3D.
- Removed: Client support for clients older than 1.26.00 (they're awfully old).
- ReDone: Unencrypted client support. UseNoCrypt now is a bool 1 means that
  unencrypted client are allowed to login. If ClientVersion in sphere.ini is
  setted to some value (e.g. 4.0.0) then only that client version will login
  (this is valid for encrypted and unencrypted clients). Note that sometimes
  unencrypted clients sometimes are dumb and sphere not recognize them properly
  (and thus disconnected), but after restarting the client it's all ok.
- Modified: REPORTEDCLIVER. It contains the version of the unencrypted client
  without any trailing letter. To get the complete version (e.g 4.0.11f) use
  REPORTEDCLIVER.1.
- Modified: Disabled support for client tooltip cache (it'll be re-enabled after
  a re-write).

08-09-2005, Cloud_Br (Script pack)
- Updated: sphere_map_points3.scp
- Updated: sphere_item_profession.scp
- Added: addons/worldfiles.zip. It contains a fully spawned world for Felluca,
  Ilshenar and Malas.

09-09-2005, Furio
- Moved: Hardcoded mount/mountid list from exe to scripts.
- Updated: sphere_defs.scp with the mount/mountid list. Read the comments to
  know how to edit it.
- Fixed: READLINE returning blank line.
- Fixed: Referring to party outputs a debug message.

09-09-2005, Vjaka
- Fixed: Popup menus not calling SELL, BUY speech triggers on NPCs.
- Added: LBR mounts IDs to the mount defnames.
- Fixed: mounting later npcs since they were treated being brain_human.

10-09-2005, Cloud_Br (Script pack)
- Fixed: some guarded areas on sphere_map2.scp that should be guarded.
- Fixed: names on sphere_map1.scp (Britain being Britain too, so when you
  typed .go britain you were going to MAP 1), now all trammel places have
  "Trammel <local name>".
- Fixed: some errors on addons/worldfiles.zip.
- Added: new mounts on sphere_chars_new_mounts.scp and their icons.
- Added: new mounts sounds to sphere_defs.scp
- Added: some HTML defs to sphere_defs.scp

10-09-2005, Rattlehead (Script pack)
- Added: new mounts defs to sphere_defs.scp
- Added: new mounts defs to spherechar_mondain_legacy.scp

12-09-2005, Furio
- Added: WOPCOLOR/WOPFONT to set color/font of Word of Powers.
- Added: TAG.OVERRIDE_SKILL applied to a weapon override the SKILL= field.
  Attention is a 1 based field so... 1 means Alchemy and so on.
- Modified: now PACKETxx in .ini accept values from 0 to 255.
- Modified: item, with attr not containing 010 or 08000, dropped by player
  on sea or black tile will insta-decay. RETURN 1 on DropOn_Ground
  avoid that thing.

14-09-2005, Vjaka
- Added: warning msg if chardef does not have any CAN flags specifyed.
- Added: error msg if RESOURCES line contains errors inside.
- Fixed: NPC item equipping not having mt_equip flag.
- Fixed: dialog command TILEPICHUE nor working.

18-09-2005, Cloud_Br (Script pack)
- Fixed: some errors on spherechar_lbr.scp

19-09-2005, Vjaka
- Fixed: wopfont not working.
- Optimized vendor templates storage. Now vendor does not keep all the items to
  be sold or bought from players all the time, but generate this list on the
  first query and invalidate after some time. It will save your server and save
  from tons of objects not actualy in the world.

19-09-2005, Furio
- Fixed: HITPOINTS not working.
- Modified: SYSPAWN/SYSCMD on *Nix build should work now.

20-09-2005, Vjaka
- Added: COMMANDTRIGGER setting. If set, each command the client is entering by
  .something will be given to the function first. If it returns 1, the default
  action is not taken. This allows overriding default commands.

21-09-2005, Cloud_Br (Script pack)
- Added: addons/Champion_Spawn.zip. A functional Champion Spawn system for Sphere.

21-09-2005, Furio
- Fixed: Spellbook content not correctly sent to newer clients.
- Fixed: SHRINK not working.
- Fixed: carving corpse not working.
- Fixed: using .commands with GM body.
- Modified: tooltip info on spellbooks.
- Modified: Damage on head for newer client now use newer packet.
- Modified: FeatureAOS in sphere.ini. Look in to know how it works.
- Added: support for All Names in 3d clients and newer 2d (ctrl+shift macro).

22-09-2005, Vjaka
- Fixed: Open paperdoll popup menu on self dismounting from horse.
- Modified: Resync executed in a fast mode will not broadcast notes to clients.
- Modified: Low hungry level does not damage in safe zones, and in underground
  for NPCs.
- Fixed: ARGO reference when no property was specifyed.
- Fixed: TOPOBJ reference.

22-09-2005, Furio
- Fixed: attack not working with some weapons.
- Fixed: damage packet sent to incorrect clients.
- Fixed: Advanced_LOS not blocking los in some cases.
- Fixed: Spell teleport not using ef_walkcheck routines when enabled.

23-09-2005, Cloud_Br (Script pack)
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
- Updated: addons/worldfiles.zip (read inside readme for more infos).

25-09-2005, Furio
- Updated: Moved all OF flags related to magic/magery in "ad hoc" field
  called MAGICFLAGS. More info on it in Sphere.ini.
- Added: SEXTANTP. Retrieve the sextant point shown by a sextant in args
  and if no args are set it would return the sextantp for the reference.
- Added: support for showing skillcaps in newer clients.
- Added: support for new status gump in newer clients.

25-09-2005, Radiant
- Added @SkillUseQuick char trigger and @UseQuick skill trigger, these are
  called when sphere does a quick run of a skill (just difficulty test + skill
  gain), in which case it wouldn't call @SkillStart (for example use of tactics,
  parrying in combat, arms lore with blacksmithing repair, magic resistance, etc).
  ARGN1 = skill being used
  ARGN2 = difficulty requested
  ARGN3 = result of difficulty calculation (same as in @GetHit)
  returning 0 will force skill to fail, returning 1 will force skill to succeed
  (both skip gains)
- Fixed: GMs not being able to resurrect in anti-magic areas
- Added: Character flag 020000 (STATF_ArcherCanMove), same as OF_Archery_CanMove
  but for specific players. OF_Archery_CanMove overrides this flag for everyone.
- Updated: sphere_defs.scp and sphere_admin.scp for STATF_ArcherCanMove.
- Added: NPCAI flag NPC_AI_ALWAYSINT (0008), always be as smart as possible when
  pathfinding.
- Fixed: SERV.NAME not working
- Added: SKILLUSEQUICK on chars, syntax: <SKILLUSEQUICK (skill) (difficulty)>.
  Does a quick use of a skill based on (difficulty) and returns 1 if it succeeded.

26-09-2005, Vjaka
- Fixed: exception when adding empty sell/buy template on restock.
- Modified: CommandTrigger now has 2 arguments (in/out): ARGN1 is whatever the
  command is accepted (limited by PLEVEL section, etc), and ARGN2 is whatever
  the command should be said if not accepted. Also the prefix of the command is
  cut up as well.
- Fixed: SERV.MAP if normal point was given in arguments (with Z coord).
- Modified: the sphere window operation on tray dclick. Now it hides if shown
  and appears if hidden.

26-09-2005, Furio
- Modified: <STRREV string> to StrReverse(string)
- Added: StrTrim(string) trime whitespaces at start/end of the string.

26-09-2005, Gygrazok (Script pack)
- Added items/sphere_item_eight_age.scp. Item of 8th anniversary of UO.

27-09-2005, Furio
- Added: support in status gump for stat locking.
- Added: STATLOCK[x] working like SKILLLOCK[x] but for stats.

27-09-2005, Cloud_Br (Script pack)
- Updated: sphere_map0.scp and sphere_map3.scp
- Updated: sphere_map_points0.scp and sphere_map_points3.scp
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
- Added: addons/Doom_Dungeon.zip. A functional Doom Dungeon system for Sphere
  (read inside readme for more infos).

28-09-2005, Vjaka
- Added: ARGN2 to UserSkills trigger. Will be 1 if triggeted from .info command
  that is useful if you use custom skill gump and not wish it opening when its not
  needed.
- Fixed: ModAr not affecting actual armor.
- Added: ARGN2 (show the message of gain/loss) and ARGO (person killed) to the
  @ExpChange trigger.

29-09-2005, Furio
- Updated: Moved LAYER_LIGHT from 9 to 15. Modified all hardcoded things.
- Updated: script pack (sphere_defs.scp, sphere_item_unsorted.scp).
- Fixed: sphere_admin.scp showing incognito name.
- Fixed: elf created always with blond hair.
- Added: RESDISPDNID/RESLEVEL/RESDISPDNHUE for items (it'll work for equippable ones only).

30-09-2005, Vjaka
- Fixed: dupe <amount> limited to the item complexity in containers.
- Fixed: commandtrigger not having proper default object.
- Added: TIMERCALL ini setting to specify amount of minutes for server to call
  user function f_onserver_timer.
- Added: BETWEEN min,max,currentvalue,maximalvalue to get the curve value in
  this combination.
- Modified: <Rx,y> now supports formulas inside, so -, or eval could be used.

01-10-2005, Cloud_Br (Script pack)
- Updated: addons/Doom_Dungeon.zip (read inside readme for more infos).
- Updated: addons/Champion_Spawn.zip (read inside readme for more infos).
- Updated: addons/worldfiles.zip (read inside readme for more infos).
- Added: addons/Slayer_Weapons.zip (read inside readme for more infos).

02-10-2005, Radiant
- Fixed #013: Webserver attempting to parse images and sending invalid
  Content-Type header to clients
- Updated #037: Changed @Kill trigger to be fired on ALL the characters that had
  to do with the killing and therefor would gain/lose karma/fame. return 1 stops default
  karma/fame changes.

02-10-2005, Handred (Script pack)
- Updated: sphere_types.scp

04-10-2005, Furio
- Fixed #040: An item crafted by a player (skillmenu - makeitem) is created
  without decay flag set.
- Updated: Client >= 5.0.0 now use the compressed dialog packet (bandwith saver).
- Updated: Default tooltip for a char (guild title/name).
- Updated: sphere_item_eight_age.scp with some RESDISP tests for two items.
- Added: TEXTENTRYLIMITED/DTEXTENTRYLIMITED (working in only in client >= 5.0.0),
  look into sphere_dialog.scp help section.

04-10-2005, Cloud_Br (Script pack)
- Updated: sphere_admin.scp

06-10-2005, Vjaka
- Added: MOUNT command for character to mount it (if possible) by SRC object.
- Fixed #020: Vendor buy menus showing empty list.
- Fixed #022: Fame prefix shown when in polymorph.
- Fixed #006: Item remove not working in DropOn_Ground.
- Fixed #017: Chars with MT_NONMOVER unable to spawn.
- Fixed #051: Extra message when drinking potions too fast, or eating errors.
- Fixed: ISBIT command. Now it is used like all rest functions <isbit value,bit>
  without complicated eval plus brackets constructions difficult to reproduce.
- Added: SETBIT value,bit and CLRBIT value,bit commands which returns mask with
  specifyed bit set or cleared.
- Added: @ operator (means power of value, fe: 2@3 = 8).
- Added: If SERV.log @text specifyed, this will be shown without script context.
- Added: ALLOWLIGHTOVERRIDE, if set to zero, sector local light will be skipped.

06-10-2005, Furio
- Fixed #009: Client lingering in newer clients.
- Fixed #061: Name not shown on paperdoll.

07-10-2005, Vjaka
- Fixed #057: <dSOMEVAL> gave incorrect values.

07-10-2005, Furio
- Fixed #065: Commands not working with gm body.
- Fixed #064: Commands saying with sysmesage.
- Fixed #055: sphere_backward_compatibility.scp. MUSIC command.
- Fixed #062: sphere_char.scp. CAN flag not specifyed for c_corpser.
- Added: StrIndexOf(string1,string2,[offset]). Search string2 in string1 and
  returns -1 (if not found) or a number >= 0 if found (index in string1).
  Offset is optional (where to start to search 0-based index).

11-10-2005, Vjaka
- Added: ZeroPoint to configure base of the sextant coordinates.
- Improved: exception debugging and support.
- Fixed: dclick on console not always opened the corresponding file.
- Added: ARGN2 in speech triggers corresponds to the player speech color if
  applicable.

11-10-2005, Radiant
- Fixed #070: Container can now be changed in @DropOn_Ground and @DropOn_Item

13-10-2005, Vjaka
- Fixed: ADDCLILOC leading to string corruption.
- Optimized: CALL operator to work faster if arguments are specifyed.
- Fixed #049: isevent/istevent working incorrectly.

18-10-2005, Radiant
- Reverted 0.56b back to 14-10-2005 07:10, 0.57.1 is now a different branch

19-10-2005, Radiant
- Tweaked #121: showing durability in tooltips as hits / maxhits instead of
  percentages for armor/clothing.
- Added #038: CTAGLIST and SERV.VARLIST. TAGLIST/CTAGLIST/SERV.VARLIST LOG writes
  results to the console.
- Fixed #098: Client not updating on .invis

19-10-2005, Cloud_Br (Script pack)
- Added the minor artifacts, see inside sphere_minor_artifacts.scp for tips.
- Added some missing fields to sphere.ini (PROFILE and EVENTSPET)
- Some updates and fixes on doom script and champions script.

19-10-2005, RanXerox (Script pack)
- Updated: sphere_item_aos_se.scp
- Updated: sphere_item_ml_weapons.scp
- Updated: sphere_item_treasure_maps.scp

19-10-2005, Vjaka
- Added a deadlock detection to some keywords parsing, that will eliminate some
  stack overflows.

22-10-2005, Furio
- Fixed #087: Guild related clilocs are bugged.
- Fixed #091: WOPFONT doesnt work.
- Fixed: bug in encryption routines that could lead to a sphere crash during startup

23-10-2005, Furio
- Fixed: Referring to SERV.MEM when memory = 0 causing exceptions.
- Fixed #131: Feature_AOS_Damage + Canharmself cause 2x damage display if damage
  is on self.
- Added #125: SERV.CLEARVARS. Clear all vars. Added in default script pack as
  plevel 6 command (spheretables.scp).
- Removed: SERV.DELETEFILE / SERV.WRITEFILE / READFILE / FILELINES since they're all
  integrated in the FILE obj.

26-10-2005, Cloud_Br (Script pack)
- Updated: sphere_item_building_walls_se.scp

26-10-2005, Furio
- Fixed #135: All stats being 26 when creating char.
- Fixed #149: Trigger @Rename is never called.
- Added: @UserSpecialMove with ARGN1 the special move selected from the fight book.

31-10-2005, Furio
- Fixed #159: Party don't display correct loot info.
- Fixed #171: All NPCs have ISSTUCK 1, even if they are on open, clear ground.
- Fixed #167: Can't see tooltips for locked down items.

04-11-2005, Vjaka
- Fixed #174: NEWDUPE from server object.
- Fixed #161: max* stats affected by mod* even if unsynced.
- Fixed #128: ClientTooltip trigger return 1 causing exceptions.

08-11-2005, Furio
- Fixed #188: <guildstone>.member.X.IsCandidate not working.

11-11-2005, Furio
- Fixed #186: <serv.map(<PLACE>).region.name> giving missing location.
- Added #199: Hiding hierachy (higher plevel will see lower hidden plevel gray).

15-11-2005, Vjaka
- Fixed #208: return 1 on @ReceiveItem not bounced item back if it was still in
  dragging layer.
- Fixed #151: trigger command not working for characters.

18-11-2005, Cloud_Br (Script pack)
- Fixed a bug when stealing artifacts that might cause crashes (add-on/Doom_Dungeon.zip).
- Added some missing weapons to sphere_item_ml_weapons.scp
- Added some missing npcs to spherechar_lbr.scp
- Added Succubus to Daemon Slayer list (add-on/Slayer_Weapons.zip).

22-11-2005, Vjaka
- Fixed #112: impossible to access the CHARDEF if the NPC is not in world.
- Fixed #225: CanSee and CanSeeLOS always required for SRC and not accepting
  arguments in several cases (actualy CanSee did not accept this at all).

22-11-2005, Torfo
- Fixed #221: Msg/Say parameters have no effect on hearall output.

24-11-2005, Cloud_Br (Script pack)
- Updated add-on/Champion_Spawn.zip:
  Changed c_forest_lord to c_etheral_warrior as it should be on Forest Lord Spawn Group.
  Changed ID field for Lord Oaks to c_etheral_warrior, to respect the defnames changes.
  Barracoon now has the hability to summon ratmans.
  Added Rotting Corpse to Unholy terror spawn.
  Added Rotting Corpse to Undead slayer weapon list.
  Corpses of the minions should now stay on the ground (with a timer of 15 seconds) to
    avoid lag.
  Optimized spawning of monsters, they won't appear on the same spot anymore and walk a
    way after some time, they will appear scatered around the spawn in a maximum distance
    of the range of that spawn (this should avoid lag when changing levels).

25-11-2005, Vjaka
- Fixed #233: Setting MAX* was substracting MOD*, so did not work correct way.

28-11-2005, Cloud_Br (Script pack)
- Updated add-on/Doom_Dungeon.zip.
- Updated add-on/Champion_Spawn.zip.

01-12-2005, Vjaka
- Fixed #222: Region triggers required return 0 to allow other same triggers to work.

01-12-2005, Cloud_Br (Script pack)
- Updated add-on/Champion_Spawn.zip:
  Fixed some wrong defnames on the monsters list.
  Fixed champion appearing as a man and dieing.
- Updated add-on/Slayer_Weapons.zip:
  Added Bovine Slayer to slayers list.
- Updated: Talismans to sphere_item_ml_misc.scp.

01-12-2005, Blizzard (Script pack)
- Updated: aquarium fishes to sphere_item_ml_misc.scp.

02-12-2005, Torfo
- Fixed #251: PacketX & unary operators

03-12-2005, Furio
- Fixed #246: Desappearing items on tiles built over water map tiles.
- Fixed #227: Tooltips for locked down items isn't being sent yet.
- Fixed: re-added basic support for speech.mul.

07-12-2005, Torfo
- Fixed #242: Cannot connect with newer clients

08-12-2005, Vjaka
- Fixed #247: Sector local time not changing, light levels not working due that.

09-12-2005, Vjaka
- Fixed #11: DiagonalWalkCheck caused problems with NPC spawning.

10-12-2005, Sir Dwayne (Script Pack)
- Updated: sphere_skillmenu.scp (Silver jewelry)
- Updated: spherechar_human.scp (Female barber)

11-12-2005, RanXerox (Script pack)
- Updated: maps/sphere_map_points2.scp (Rat fort teleporters)
- Updated: sphere_types.scp (Swamp terrain)

11-12-2005, Blizzard (Script Pack)
- Renamed: sphere_item_ml_weapons.scp to sphere_item_provisions_weapons_ml.scp
- Added: sphere_item_provisions_weapons_aos.scp
- Added: sphere_item_provisions_weapons_se.scp
- Updated: sphere_item_aos_se.scp
- Added DUPELIST and DUPEITEMs for all AoS, SE, and ML weapons.
- Added: sphere_item_provisions_armor_aos.scp
- Added: sphere_item_provisions_armor_se.scp
- Updated: sphere_item_provisions_weapons.scp

11-12-2005, Cloud_Br (Script Pack)
- Updated: sphere_minor_artifacts.scp (some missing minor artifacts)
- Added: sphere_item_christimas.scp (Christimas Item ids that come with 5.0.1f patch)

15-12-2005, Introvert (Script Pack)
- Updated: sphere_events_npcs.scp (fixed bugs in e_undead)

20-12-2005, Furio
- Fixed #286: Bug with @ operator (power of).

25-12-2005, Furio
- Fixed: FILE.READLINE returning strings with trailing \n and \r.
- Changed: StrTrim(args) to <STRTRIM args>.
- Fixed #298: Logging out while dragging item.

25-12-2005, Handred
- Fixed #287: Updated sphere_item_professions.scp

26-12-2005, Vjaka
- Fixed #294,#296: @SpellCast did not allow or disable to change words of power.
- Fixed #282: Operator ^= did not resolve.

28-12-2005, Radiant
- Fixed #090, #172, #237: ACTION being changed on UseQuick because of new trigger
- Fixed #136, #154, #291: Partial character updates not working
- Fixed #129: GM body can now also use the normal command prefix, instead of only '='
- Fixed #299: Transfering pets to NPCs

29-12-2005, Furio (Script Pack)
- Updated: sphere_item_provisions_weapons_ml.scp (fixed bug BLACKSMITH
  instead of BLACKSMITHING).

31-12-2005, Furio
- Fixed #324: TRYSRC is read as TRYSRV (only in message errors).
- Fixed #326: missing resource in sphere_item_provisions_weapons_ml.scp
- Fixed #315: wrong defnames in sphere_defs.scp
- Fixed #330: updated sphere_item_building_walls_se.scp and sphere_item_magic_necromancer_aos.scp

02-01-2006, Furio
- Fixed #332: support for guild chat speech mode.
- Fixed #336: PETRETRIEVE console error that shows when there's no stabled animals.
- Updated: sphere_defs.scp

03-01-2006, RanXerox (Script pack)
- Updated: sphere_types.scp

04-01-2006, Gygrazok (Script pack)
- Added: items/sphere_item_deco_evilitem.scp

08-01-2006, Shadow Dragon
- Fixed: Pets going logout.

10-01-2006, Furio
- Fixed #361: Creating characters with apostrophes ( ' ) in the name gives a random
  name in game.
- Fixed #348: Problems with FILE object.
- Fixed #356: Monsters not playing proper sounds (spherechar.scp and spherechar_evil.scp)
- Fixed #357: Some mappoints fixes (sphere_map_points0.scp and sphere_map_points1.scp)
- Updated: sphere_item_ml_misc.scp

11-11-2006, Radiant
- Ticks will no longer be given to webpages if USEHTTP is disabled in sphere.ini

12-01-2006, Vjaka
- Fixed #94: Stable master restock causing stabled pets to disappear.
- Fixed #212: Vendors do not restock money amount, unable to buy after a while.
- Fixed #343: Container functions like COUNT overrided user functions.
- Updated sphere_spells.scp fixing spell flags for polymorph (#335).

12-01-2006, K. Thorp (Script pack)
- Added: some multis to sphere_item_multis_houses_ships.scp
- Added: deeds to sphere_item_provisions_deed.scp

14-01-2006, Furio:
- Fixed #363: defining new region types. (See knowbugs.txt)
- Updated: sphere_defs.scp, sphere_types.scp, spheretables.scp

14-01-2006, Torfo:
- Fixed #371: Error on Bulletin Board (last letter missing)

15-01-2006, Radiant:
- Updated: You may now call functions on the SERV object. This affects several things,
  including the f_onserver functions, the console and packet filtering functions.

17-01-2006, RanXerox (Script pack)
- Updated: sphere_triggers.scp,sphere_item_eight_age.scp,sphere_item_ml_misc.scp
  sphere_item_provisions_weapons_ml.scp,sphere_minor_artifacts.scp
  sphere_map_points0.scp,sphere_map_points1.scp
  sphere_item_provisions_weapons_aos.scp,sphere_item_provisions_weapons_se.scp

20-01-2006, Blizzard (Script Pack)
- Updated: sphere_item_provisions_armor.scp, sphere_item_provisions_armor_se.scp,
  sphere_item_provisions_weapons_aos.scp, sphere_item_provisions_weapons_ml.scp,
  sphere_item_provisions_weapons_se.scp.

21-01-2006, Radiant
- Updated: 80 character console command limitation to SCRIPT_MAX_LINE_LEN

22-01-2006, Furio
- Fixed #380: IsNearType doesn't works whith custom typedef.
- Fixed #366: Effect of Hallucination.
- Fixed #378: Typo in sphere_admin.scp.
- Fixed: exceptions when using .charlist.
- Fixed: typo in console message.
- Sync (Vjaka): defmessage string allocation, thus binary EXE size reduced by ~200kb.
- Sync (Vjaka): SERV.console CMD to launch commands as you were in server console.
- Sync (ShadowDragon): Items in multis do not send to the client if he is not in
  the multi (OSI-compatible lag fight) as OF_OSIMultiSight.
- Updated: now ARGS in f_onchar_create contains account name.
- Updated: sphere_serv_triggers.scp.
- Added: f_onaccount_delete, ARGS contain account name, RETURN 1 block the delete.

23-01-2006, Torfo
- Fixed #264: Problem with 0xBF packet.

23-01-2006, Blizzard (Script Pack)
- Added: sphere_item_provisions_armor_ml.scp, sphere_item_provisions_clothing_ml.scp,
  sphere_item_provisions_clothing.scp.
- Updated: sphere_item_provisions_armor.scp, sphere_item_profession_tailor_tanner.scp,
  sphere_item_ml.scp.

27-01-2006, Torfo
- Fixed #411: sm_bolts in sphere_item_resources.scp and sphere_item_profession.scp
- Fixed #409: added missing ">" in sphere_item_aos_se.scp
- Fixed #405: added missing MT_FEMALE in def of succubus in spherechar_lbr.scp
- Fixed: seasons will be saved now.
- Fixed #408: <sector.season> doesn't work.

29-01-2006, Furio
- Fixed #410: Promptconsole removes all used ",".
- Fixed: strlen not working correctly with ",".

29-01-2006, RanXerox (Script pack)
- Updated: sphere_book.scp

31-01-2006, Furio
- Fixed #425: Unable to start sphere when editing sphere_msgs.scp.
- Removed: USEGODPORT in sphere.ini (and also the god port)
- Modified: USEHTTP usage. Look into sphere.ini for new options.

02-02-2006, Furio
- Fixed: players being able to track invisible (.invis) GMs.
- Sync (Vjaka): REGION.TYPE returning type from the itemdef of the multi.

10-02-2006, Furio
- Modified: replaced internal routines of TAG/CTAG/VAR/LOCALs, it improves
  speed, memory usage and decrease the occurence of leaks/exception.
- Fixed #440: Crash when selling too many items to vendors.

11-02-2006, Furio
- Fixed: new internal routines of TAG/CTAG/VAR/LOCALs in some special case.
- Added: support for OSI AuthID to avoid possible hijack to game server. By
  default is disabled, set UseAuthID = 1 in sphere.ini to use it.

15-02-2006, Furio
- Fixed: "Divide by Zero" in CChar::Tick() for "update stats" sections.

19-02-2006, Furio
- Fixed #456: NEWDUPE and DUPE doesn't copy events.
- Added: AOS properties for player characters: RES* (cold,energy,fire,poison) and
  LUCK with no built-in functionality.
- Sync (Vjaka): Added #214: ColorNoto* settings for characters color hue change.
- Sync (Vjaka): "NEWLOOT X" character function creating and equiping item X for NPCs
  if can give loot, useful to be used in @Death or @DeathCorpse triggers.
- Sync (Vjaka): "NEWGOLD N" function gives amount N of gold to the current char.
- Sync (Vjaka): character function TIMERF N,FuncName to cause a timed execution of a
  function FuncName in N secs. Specifying N as -1 will clear all TIMERF list.
  These functions are not saved, so do not store hours in the list, the purpose
  of this is to decrease overhead due to timered memory items opeations.
- Sync (Shadow Dragon): TAG.NoMoveTill for script purposes. This doesn't allow char
  to move if TAG.NoMoveTill > SERV.Time.

20-02-2006, Furio
- Fixed #462: TAG.NAME.HUE on chardef isn't working.
- Fixed: some possible overflow in some spots.
- Touchups for *NIX compilation.

20-02-2006, Cloud_Br (Script pack)
- Changed description of EVENTSPET on sphere.ini
- Add some new points to sphere_map_pointsX.scp
- Add some places with names like on OSI (places that didn't have a respective name
  before on default sphere) to sphere_mapX.scp files.

24-02-2006, Vjaka
- Fixed #158: NPC value spontaneously changing when NPC was under reactive armor.
- Fixed #314: Elf's Hair Color in creation is not correct.

25-02-2006, Torfo
- Fixed: possible PLEVEL-hack (thx to SL for reporting).

03-03-2006, Furio
- Fixed #401: Spells (incognito and mark) don't update the client tooltip.
- Fixed #478: Newgold does not update gold amount.

05-03-2006, Furio
- Fixed #483: Typo in sphere.ini.
- Fixed #484: LUCK and RES* properties throws errors when reading.

07-03-2006, Furio
- Added: Tithing points for player characters as TITHING with no built-in
  functionality.
- Fixed #492: Undefinied SCROLL_MOTD at player login.

08-03-2006, Furio
- Fixed #502: Divide by Zero Exceptions in CChar::Tick() stat section.
- Fixed #503: Tithing Points showed incorrectly in Paladin book.
- Updated: sphere_item_aos_se.scp, sphere_item_magic_necromancer_aos.scp

10-03-2006, Furio
- Fixed #501: Dropping a stackable item on another one with
  special attr (Newbie, Static, Move Never).
- Fixed #509: Cheater message with disconnect.
- Fixed #511: Tooltip Problem with Spawns.
- Fixed #517: Deleting Accounts not loging properly.

15-03-2006, Radiant
- Fixed: WHILE loops ending with weird undefined symbol error.

18-03-2006, Furio
- Fixed #526: "Resync [...]" working incorrectly.
- Fixed #520: Magic Flag IgnoreAr doesn't work.
- Updated: no 0-100 limitations to RES*.
- Updated: sphere_defs.scp

21-03-2006, Furio
- Fixed #292: Textentrylimited crashing clients (thx to Admin Ben)
- Fixed #528: Invis items in pack and/or corpse we see it, but when
  we click it, it dissappears.
- Fixed #506: ghost of the npc appears after dying when mounted.
- Updated: sphere_dialog.scp

22-03-2006, MrSugarCube (Script pack)
- Updated: sphere_menu.scp, sphere_item_misc.scp, townmagincia.scp (incorrect
  spelling of 'jewelry').
- Updated: sphere_item_provisions_armor_ml.scp (Duplicate DEFNAMEs for 02b74
  and 02b79).

23-03-2006, Furio
- Added: <FILE.FILEEXIST arg> returning 1 if arg exist.
- Added: Support for Bushido/Ninjitsu/SpellWeaving spellbooks.
- Updated: sphere_defs.scp (new typedefs), sphere_item_aos_se.scp (spellbooks).

23-03-2006, MrSugarCube
- Fixed: Incorrect spellbook packet being sent to newer clients with certain AOS
  features disabled.
- Fixed #181: Woolly sheep having wool resource on corpse after being shorn.
- Fixed: Player adding non-vendable item to vendor stock is deleted - Vendor now
  returns the item.
- Fixed #475: Taking item from hidden state does not update other clients.
- Modified: Warning message for non-vendable items will show the UID of the item
  and vendor.

23-03-2006, Handred
- Updated: sphere_spawns.scp. Changed all RESOURCES= to ID=, modified also the
  WEIGHT= for a better and easier looking to, ie: ID=c_zombie 5.

24-03-2006, MrSugarCube
- Fixed #519: Poison spell and field spell damage reveals caster after every
  damage effect.
- Fixed: Setting TARGP only working with invalid locations.
- Modified: @DropOn_Ground and @itemDropon_Ground triggers now have ARGS set
  to the location the item will be dropped to, specific points accessible
  using ARGV[x]. (readonly)
- Fixed: ARGS not being parsed correctly into ARGV when empty parameters are
  given (for example <myfunc 1,,,4,5> was treated as "1",",","4","5" and not
  "1","","","4","5").
- Modified: Attacker will not be revealed when a character is hit by a spell
  with SPELLFLAG_FIELD set.
- Added: Damage Flag DAM_NOREVEAL (04000). If this flag is applied the attacker
  will not be revealed. This is applied by default to poison damage and spell
  damage. (Note that for spells the attacker will be revealed regardless if
  SPELLFLAG_HARM is set, unless SPELLFLAG_FIELD is also set, so only affects
  field spell damage).
- Updated: sphere_defs.scp (Updated DAM_FLAGS section)

26-03-2006, MrSugarCube
- Modified: Vendor boxes will now only accept a maximum of 115 items dropped
  inside (as opposed to the 256 item limit of a normal container). A warning
  message will be displayed when the buy menu is shown if this limit has been
  exceeded.
- Fixed #540: Logged out characters can be targeted with spells (Actually
  CANSEE was returning 1 without GM/ALLSHOW priv).

27-03-2006, MrSugarCube
- Fixed #429: Unable to walk on blocking terrain with platform properties
  (eg: Palace of Paroxysmus acid).
- Fixed: Walking on stairs in certain areas (such as the ones at 925,641,-80,2
  or 7060,376)
- Updated: sphere_map0.scp, sphere_map_points0.scp, sphere_map0_ml.scp,
  sphere_map_points0_ml.scp (Moved ML locations to seperate script which can be
  uncommented to enabled ML areas).
- Updated: spheretables.scp (Added ML map files to RESOURCES block, to be
  uncommented if you wish to use).
- Updated: sphere.ini (Updated MAP0 description to remind users to uncomment ML
  map scripts).

28-03-2006, Ellessar (Script Pack)
- Updated: sphere_item_provisions_weapons_se.scp (incorrect spelling for
  i_tetsubo SKILLMAKE).

29-03-2006, MrSugarCube
- Fixed: NPCs unable to walk on the same tile as a dead/disconnected/insubstantial
  character.

30-03-2006, MrSugarCube
- Fixed #545: TARGET function with no message specified sent a blank sysmessage
  to the client. (also affected PROMPTCONSOLE).
- Updated: sphere_msgs.scp - Added missing message definitions to the list
  (27 were missing).

30-03-2006, Ellessar (Script Pack)
- Updated: sphere_item_provisions_weapons.scp (SKILL properties corrected for
  MaceFighting weapons).

31-03-2006, MrSugarCube (Script Pack)
- Updated: sphere_item_building_floors_se.scp (incorrect axis categories)
- Updated: sphere_item_provisons_deed.scp (incorrect spelling of "Provisions"
  for some axis categories)

01-04-2006, MrSugarCube
- Fixed #552: Removing items in SECTOR.ALLITEMS causes infinite loop
  (also ALLCHARS/ALLCHARSIDLE/ALLCLIENTS).

03-04-2006, Furio
- Fixed #553: Errors during SERV.MAP parsing.
- Fixed #407: Account creation with bad words.
- Removed: OF_Advanced_Los.
- Added: AdvancedLos in sphere.ini to control Los behaviour of player and npc.

04-04-2006, RanXerox (Script pack)
- Updated: sphere_item_magic_wands.scp (eliminates old ITEMDEF numbers).

04-04-2006, MrSugarCube
- Fixed #556: Exception occuring when failing to bandage another character.
- Fixed #558: DB reference still accessible with MySQL support disabled.

04-04-2006, Ellessar (Script pack)
- Updated: spherechar_lbr.scp (Changed "ICON=i_pet_orc_brute" to "ICON=i_pet_orc"
  for character c_orc_brute)

07-04-2006, MrSugarCube
- Fixed #565: Account name "account" not loaded correctly from accounts file.

08-04-2006, Ellessar (Script pack)
- Updated: sphere_item_icons_new.scp (Added missing icons: i_pet_terathanavenger,
  i_pet_meereternal, i_pet_meercaptain, i_pet_meermage)
- Updated: spherechar_lbr.scp (Added NPCs: c_mummy, c_terathan_avenger,
  c_meer_eternal, c_meer_captain, c_meer_mage)
- Updated: spherechar_se.scp (Fixed incorrect weapon for c_yomotsu_warrior)

09-04-2006, Vjaka
- Fixed #284: Character DISPID limitation changed to 2048 basing on bodyconv.def.
- Fixed #372: Weighted random templates had limitation for 64 members inside.
- Fixed #479: Off-duty vendor going off-duty with active client around.
- Fixed #497: Duplicated resources on inherited NPC.
- Fixed #541: Picking item that is too heavy is causing item to drop.
- Fixed #561: Players are unable to walk through any npc regardless of the stamina.

10-04-2006, Furio
- Added: TERRAIN.Z in SERV.MAP to know at which z is located the map tile.
- Fixed #577: SERV.ITEMDEF not behaving correctly.

10-04-2006, MrSugarCube (Script pack)
- Updated: sphere_map0.scp (Removed REGION_FLAG_UNDERGROUND from
  a_lord_britishs_castle_1, fixing lighting around west britain).

10-04-2006, Vjaka
- Fixed #575: Multiple resource lines in a REGIONTYPE not loading correctly.

11-04-2006, Ellessar (Script pack)
- Updated: sphere_backward_compatibility.scp (tweak for addnpc).

13-04-2006, MrSugarCube
- Fixed #576: Added World Statics Save to DEFMESSAGE table.
- Updated: sphere_msgs.scp (Added 'server_worldstaticsave' message)

15-04-2006, MrSugarCube
- Fixed: Players unable to dismount from their rides after attacking
  another character unless they retreated or killed the enemy.

16-04-2006, Handred (Script pack)
- Updated: sphere_menu.scp (Added Guild Transfer menu option using
  softcoded TRANSFERGUILD function. )
- Updated: sphere_triggers.scp (Added TRANSFERGUILD function. Feel
  free to fit it to your needs. )

17-04-2006, MrSugarCube (Script pack)
- Updated: sphere_spells.scp (Added SPELLFLAG_PLAYERONLY to spells
  71 and above (potion effects))
- Updated: jobbeggar.scp, jobblacksmith.scp, jobhealer.scp,
  jobtavernkeeper.scp, jobvet.scp, jobweaponsmith.scp,
  townbritain.scp (Fixed syntax errors where SRC.SEX was being used
  incorrectly)

18-04-2006, MrSugarCube
- Fixed: Adding a stack of scrolls to a spellbook consumed the whole
  pile instead of just one.

19-04-2006, coruja747 (Script pack)
- Updated: sphere_item_magic_wands (Fixed incorrect spelling of 'daemon'
  for i_wand_summon_daemon)

19-04-2006, MrSugarCube
- Fixed: Turning ships to force ship into invalid sailing location.

20-04-2006, Furio
- Fixed #600: Forcont* loops block script execution if no items found.

22-04-2006, MrSugarCube
- Fixed #622: Unable to access specific resources for spells using
  RESOURCES.n[.KEY|.VAL]
- Fixed #141: Curse spell having no effect on target.
- Fixed #476: UID.x.KEY not working correctly on region reference (under
  @Enter trigger for example).

24-04-2006, MrSugarCube
- Fixed #201: Walking off ship planks moves player to incorrect
  height (this is normal for characters with GM mode enabled).

26-04-2006, Ellessar
- Updated: sphere_item_profession_tailor_tanner.scp (Removed custom
  @TargOn_Item trigger for i_sewing_kit)

02-05-2006, Gygrazok
- Updated: sphereCrypt.ini (Added encryption keys for 5.0.2 client)

02-05-2006, Furio
- Fixed #643: Functions with similar names sometimes get miscalled (thx to SL Patch).
- Fixed #641: Deleting account when the player is online.
- Fixed #625: Cloth bolts give always 25 i_cloth, while it should give the amount of
  i_cloth specified in RESOURCES.
- Updated: sphere_item_profession_tanner.scp (Cloth bolt value).

03-05-2006, MrSugarCube
- Fixed #642: Intrinsic functions not working correctly from SERV
  object.
- Fixed #645: Possible to place invalid items on a gameboard, which
  in turn crashes clients.
- Fixed: Game board was setup incorrectly for games of Checkers.
- Modified: Game board setup for backgammon game added. (Note: Requires
  that backgammon board has MORE1 value of 2)
- Updated: sphere_item_profession_cook_barkeep_baker.scp (i_backgammon_game
  MORE1 changed to correct value)

09-05-2006, Torfo
- Fix (temp): TX-Errors are disconnecting player now (just on linux).

15-05-2006, Furio
- Modified: If VENDORMARKUP is not present on the npc or in the region the one from
  the chardef will be readed.
- Modified: Changing CLIENT properties will not show anymore annoying sysmessages.

19-05-2006, Shadow Dragon
- Fixed #638 & #639: Items outside of multi not sending when in multi.
- Fixed #655: House building on each other.

21-05-2006, V
- Fixed #611: Vendors buying without buy= assigned to them

23-05-2006, MrSugarCube
- Fixed #675: Stone wall revealing location of higher privileged characters.

28-05-2006, Furio
- Fixed #662: Skill lock tick.
- Fixed #691: serv.REGIONRESOURCE.x.REAP not working
- Modified: FeatureAOS to permit using of basic Aos feature without having tooltips.
  Look into sphere.ini for more info.

31-05-2006, MrSugarCube
- Modified: <CANCAST (spell)> now accepts an extra parameter to check the region
  flags. If the second parameter is not supplied then this check is enabled by
  default, the advantage is that you can now disable the region check when checking
  if a character can cast a spell. New usage is: <CANCAST (spell) [checkantimagic]>
- Fixed #702: Items with value=0 can not be crafted (note that without a value set the
  QUALITY property will be unavailable, and also no experience will be gained from such
  items).

31-05-2006, MrSugarCube (Script pack)
- Fixed #679: sphere_skillmenu.scp (Inscription SKILLMENU now makes use of new
  CANCAST syntax, resolving the issue of region flags preventing the crafting of
  certain scrolls)

01-06-2006, MrSugarCube
- Fixed #671: CriminalTimer=0 causes errors when setting criminal status.
- Fixed #703: Verbs not executing correctly on the default object in dialogs.

04-06-2006, MrSugarCube
- Fixed #681: Unable to execute and read the return value of scripted functions
  on the SERV object.
- Fixed: Server stats not being given when requested by UOGateway.
- Modified: The following multi properties can now be read from their ITEMDEFs:
  MULTIREGION, REGIONFLAGS and COMPONENT (COMPONENT usage is same as COMP).

05-06-2006, MrSugarCube
- Fixed: Attempts to use house keys to lock items down in containers.

06-06-2006, Furio
- Added: NAPIERPOW(arg), LOGARITHM(arg[,base]), TAN(arg).

06-06-2006, MrSugarCube
- Fixed: MULTIREGION property didn't show the value exactly as it appears in
  scripts (x1,y1,x2+1,y2+1,0 instead of x1,y1,x2,y2)

08-06-2006, MrSugarCube
- Fixed #711: EFFECT_ID property returning the EFFECT value on SPELL block.
- Fixed #413: Spell icons are bounced into backpack with MAGICF_STACKSTATS
  enabled.
- Modified: MAGICF_STACKSTATS now allows a character to be affected by
  each of the stat spells at the same time (eg. strength+bless+feeblemind).
  Note that it does not allow multiple effects from the same spell (so
  casting bless several times does not work).
- Updated: Sphere.ini with MAGICF_STACKSTATS description

08-06-2006, Furio
- Fixed #699: Removing an account on Linux cause an exception.

08-06-2006, Ellessar (Script pack)
- Updated: sphere_triggers.scp (Updated SRC.NEWITEM with SERV.NEWITEM and
  removed unnecessary SRC references)

08-06-2006, Beyonder (Script pack)
- Updated: sphere_item_building_fence.scp (Changed incorrect item defname
  i_gate_wood_2 to i_fence_wood_3 (ITEMDEF 085c))
- Updated: sphere_backward_compatibility.scp (Added i_gate_wood_2 as a
  DUPEITEM of i_fence_wood_3 for saves using incorrect defname)

11-06-2006, V
- Fixed: alligator not responding to commands
- Added: Broadcast warning 10 seconds before world save is performed to alert players

12-06-2006, MrSugarCube
- Fixed: ISNUM not working correctly with numbers in hex format.

13-06-2006, MrSugarCube
- Added #722: Support for dialog component 'buttontileart' in newer clients. Syntax
  is the same as 'button', but with 4 additional parameters for placing a tilepic
  over the gump image with a specified hue (0=normal) and offset (0,0=top left):
  "buttontileart x y up down active page id tileid tilehue offsetx offsety"
- Fixed: Remove Trap skill not starting after targeting an object.
- Fixed: Scripted & Targeted skills not starting after targeting an object.
- Fixed: Possible exceptions occuring when a reference does not exist (such as ACCOUNT
  .CHAR.x where x was an invalid index)
- Modified: Stat regeneration will now take twice as long instead of halting
  completely when a character is hungry.

13-06-2006, MrSugarCube (Script pack)
- Updated: sphere_dialog.scp (Fixed d_hair_dye dialog not dying player's hair and
  added buttontileart description to the help section)

14-06-2006, MrSugarCube
- Fixed: Exception when adding a guild member and not provided sufficient arguments.
- Fixed: Inviting someone into a party tells the wrong character they've been added.

15-06-2006, Furio
- Added: Added TAG.OVERRIDE.STATSUM/SKILLSUM/STATCAP[$statid]/SKILLCAP[$skillid] for
  players and npc to override SKILLCLASS values.
- Sync (ShadowDragon): TAG.OVERRIDE.REGEN[$statid]/REGENVAL[$statid] to modify regen
  rate and regen amount.
- Sync (Vjaka): Added <EXPLODE sep,string> operator which converts string with separators
  other than ',' to commas making possible to operate with such string using strarg/streat.
  Sample: LOCAL.S=<explode :/- ,my:test/string:2-3> should give result of "my,test,string,2,3".

17-06-2006, MrSugarCube
- Fixed #729: AntiMagic flags blocking spell effects on items even with GM mode enabled.
- Fixed #730: Immunity to spider web traps after taking damage.

17-06-2006, coruja747 (Script pack)
- Updated: sphere_item_provisions_armor_se.scp (Fixed error in t_ninja_belt)

18-06-2006, V (TYVM SL)
- Modified: TimerF is now global and works on any object. It will take optional
  arguments to the function call. Entire list is now saved and loaded upon startup.
  It no longer uses -1 to erase the TimerF list. Takes a maximum of 1024 characters.
  syntax: timerf n, function args

19-06-2006, MrSugarCube
- Fixed #653: TRAIN function causing exception when not all default skills
  are defined.
- Fixed #732: Items on buy/sell menus displaying names from muls with
  FEATURE_AOS_UPDATE_B disabled on AOS+ clients. Instead a basic tooltip packet
  containing only the name of the item will be sent to the client in this case.

19-06-2006, MrSugarCube (Script pack)
- Updated: sphere_item_provisions_weapons_se.scp (Corrected incorrect DUPEITEM
  and TDATA properties for i_fukiya)
- Updated: sphere_msgs.scp (Moved 32 hardcoded messages to defmessages and added
  1 missing defmessage)

01-07-2006, Furio
- Fixed #740: Strange price on vendors.
- Fixed #752: Resizepic not showing with dorigin.
- Fixed #757: Error on ".serv.account add".

02-07-2006, Nazghul (with thx to Ellessar)
- Fixed #639: OSI Multi Sight removes items already in sight.
- Added: TAG.ALWAYSSEND for items. An item with this TAG will always be send,
  no matter whether it is in a multi or not. The TAG works only with
  OF_OSIMultiSight on.
- Redone new items sending (should save some unneeded packets)

04-07-2006, MrSugarCube
- Modified: SERV.CLIENT.x reference no longer accepts x if it is out of range
  (use SERV.CLIENTS property to check range).
- Modified: SERV.CLIENT.x reference no longer skips clients without characters
  (such as HTTP, or telnet connections), which caused strange behaviour.
  <SERV.CLIENT.x> will return 0 if the client has no attached character, 1 if
  the client has a character attached.

05-07-2006, Nazghul
- Added: A skill trigger ON=@PreStart and a character trigger ON=@SkillPreStart
  are now called before ANY hardcoded stuff related to the skill which will start.
- Added: A skill flag SFK_NOMINDIST. With this flag on, you can mine, chop
  (distance doesn't have to be >= 1) or fish (distance doesn't have to be >= 2)
  right under yourself.
- Modified: Now an axe can be damaged during lumberjacking.
- Fixed: Fishing bug, which allowed fishing through ship floor.
- Fixed: Chopping with t_weapon_fence does not start skill Lumberjacking.

05-07-2006, Nazghul (Script Pack)
- Updated: sphere_defs.scp (added section skill_flags)
- Updated: sphere_msgs.scp (messages fishing_close, lumberjacking_close,
  lumberjacking_tool, mining_close, fishing_4)

09-07-2006, MrSugarCube
- Fixed: dtext, dcroppedtext, dhtmlgump, dtextentry and dtextentrylimited in gumps
  using a space for the text if no string was provided.
- Fixed #754: GMs losing non-vendable items when dropping them into a vendor box.
- Fixed #720: <dSOMEVAL> returning 0 for values starting with "0.".

10-07-2006, MrSugarCube
- Fixed #760: Exception caused by opening paperdoll when not all default skills
  are defined.

11-07-2006 Nazghul
- Fixed #594: Players (only if their client allows) and NPCs were able to go through
  non-static walls.
- Added: CAN-Flag mt_passwalls (08); NPC with this flag CAN pass through static
  and dynamic walls.

12-07-2006, Furio
- Fixed #690: serv.REGIONTYPE.*.resources is not working.
- Added: <serv.regiontype.*.calcmemberindex [uid]> returning the index of the
  resource selected randomly or basing on the skill of the uid passed as argument.

12-07-2006 Nazghul
- Fixed: When logging in with an unencrypted client, you were not able to see
  tooltips for objects in line of sight (0 to 18 tiles away from you),
  including yourself.

12-07-2006, Nazghul (Script Pack)
- Updated: sphere_defs.scp (updated section can_flags)
- Fixed #761: missing positioning of newly created vendor in i_deed_vendor
  (sphere_item_provisions_deed.scp)

13-07-2006, Nazghul
- Added: CURFOLLOWER, MAXFOLLOWER with no built-in functionality. These variables
  change values on a status gump.
- Fixed #764: Cannot see items in large multis (OF_OsiMultiSight).
- Sync (Vjaka): ISWEAPON and ISARMOR read-only properties for items.

14-07-2006, Nazghul
- Added: ISWEAPON and ISARMOR are now avaliable through serv.itemdef.x.* too.

16-07-2006, Nazghul
- Added: OF_Command_Sysmsgs into sphere.ini. With this flag on, you will see
  sysmessages with current status after typing .allmove, .allshow, .debug,
  .detail, .gm, .hearall, .privshow, .invis, .invul

20-07-2006, Nazghul (Script Pack)
- Fixed #776: sphere_map2.scp (Wrong Ilshenar Region description (Wisp Dungeon),
  thx Coruja747.

21-07-2006, Furio
- Fixed #780: Unable to read REPLICATE property.
- Changed: TAG.OVERRIDE.STATCAP[$statid]/SKILLCAP[$skillid]/REGEN[$statid]/REGENVAL[$statid]
  to TAG.OVERRIDE.STATCAP_$statid/SKILLCAP_$skillid/REGEN_$statid/REGENVAL_$statid.
- Added: -E to command line. Starting Sphere with it will enable the ExceptionDumper
  that will generate a .map file on unexpected exceptions. Sending that file through
  the bugtracker will help us in the debug process. (thx to Z.)
- Fixed #774: Ghost's speech when in peace mode.

21-07-2006, MrSugarCube
- Fixed: Incorrect name shown when a player declines a party invite.
- Modified: Placing a house over a staff member (Counselor+) no longer blocks
  the placement if the character cannot see them.

22-07-2006, MrSugarCube
- Added: SPEEDMODE property for players. Allows setting the speed mode that a
  client can use (and affects the movement throttle accordingly). There are
  4 different speed modes that affect the client:
    0  - Normal speed.
    1  - Double speed on foot, normal speed when mounted.
    2  - Always walk on foot and when mounted.
    3+ - Always run on foot, always walk when mounted.

22-07-2006, coruja747 (Script pack)
- Updated: sphere_map2.scp (Sorcerer Dungeon region definitions incorrect).

23-07-2006, Shadow Dragon
- Added: LOCAL.Arrow storing an UID of used arrow while archery in @Hit.
- Added: Extra combat flag COMBAT_PREHIT to allow pre hit combat style
  (first hit is instant)

26-07-2006, coruja747 (Script Pack)
- Updated: sphere_map2.scp (#793, Lake Shire region has not to be guarded)
- Added: GAINRADIUS keyword for skill definitions. Skillgain will only be calculated if
  the current skill is less than the actual difficulty + GAINRADIUS to prohibit skillgain
  by performing way too easy tasks. If not set it defaults to 100.0 (so pertaining the
  old behaviour)

27-07-2006, coruja747 (Script Pack)
- Fixed: #796, sphere_map_points2.scp (Wisp Dungeon, Kirin Passage, Cyclops Dungeon)

28-07-2006, coruja747 (Script Pack)
- Fixed: #800, missing teleports in sphere_map_points0.scp and sphere_map_points1.scp

29-07-2006, Nazghul
- Modified: @Dclick is now called for items which were dclicked by an NPC.
  (e.g. when an NPC is going to open a door, @DClick is called for this door)
- Fixed #798: If a wall was built on a spot where a paralyzed player stays,
  he was not unparalyzed.

29-07-2006, MrSugarCube
- Fixed: Vendors speak two messages when a player does not have any items to sell to them.

30-07-2006, Shadow Dragon
- Added: New trigger @Criminal called after someone becomes criminal for someone.
  [] - criminal, SRC - someone. RETURN 1 - stops hardcoded effect (memory_harmedby and so),
  so you can make your own criminal system.

31-07-2006, Kirofus (Script pack)
- Updated: sphere_types.scp (Fixed incorrect terrain definition for t_water)

31-07-2006, MrSugarCube
- Modified: MaxWeight is now sent to the client for display on the status window in
  newer clients.

31-07-2006, Nazghul
- Added: CONTP function, which allows you to change the position of an item,
  which is inside a container.

01-08-2007, Nazghul
- Added: INI flag EF_New_Walkcheck = 04000 to switch on and off new walkcheck routines
  what should prohibit NPC from passing thru walls if not explicitely stated
  (CAN-Flag mt_passwalls (08))

02-08-2006, Furio
- Added: STRREGEX(pattern,string) that execute a pattern matching supporting the
  known standard. Return: 1 match found, 0 match not found, -1 illegal pattern syntax.

04-08-2006, Nazghul
(most code revised, debugged and (re)designed by Ellessar when I was up to drop
this all in desperation)
- Added: Function AddContextEntry. what takes 2 to 4 arguments separated by a comma.
   SRC.AddContextEntry EntryTag,TextID,Flags,Color
   EntryTag - the number to return as ARGN by @(item)ContextMenuSelect. Make it unique.
            - EntryTags from 0 to 100 are reserved by Sphere for internal use, so do not
              use it.
   TextID - CLILOCed name of the button. The number from cliloc.[your_localization]
            WITHOUT the leading "300" or such! Just type "5194" or "11010"
   Flags - 01 - locked (will be grayed out)
         - 02 - consecutive entries with this flag set will be summarized under
                a golden arrow
         - 020 - can be colored
   Color (applied only if Flags & 020) - hue

- Added: Trigger @ContextMenuRequest/@itemContextMenuRequest which is fired after
  receiving a display Popup-menu client request (single click on an object).

  It can be fired two times, each call has a different ARGN.

  The first time it is fired before any hardcoded stuff is added to the Popup-menu.
  Here, Return 1 denies displaying any hardcoded entries, but if you make a softcoded
  entry, it WILL be displayed. It also will prohibit the second call of the trigger.
  Both, Return 0 and Return 2 allows hardcoded stuff to be added. If you change ARGN,
  the trigger will be called once more (but ARGN != 1).

  The second time it is fired after all hardcoded stuff was added (so you can add
  your stuff to the bottom of the Popup-menu). Return value has no effect at all.

  The first call:
   In:  ARGN = 1
   Out: Return 1 - only your stuff will be added (IF ANY), prohibits the second call
        Return 0/2 - your and hardcoded stuff will be added
        ARGN (ARGN != 1) - allows the second call

  The second call:
   In:  ARGN = 2
   Out: Return 0/1/2 - does nothing
        ARGN - does nothing

- Added: Trigger @ContextMenuSelect/@itemContextMenuSelect which is fired after
  a client selects something from a Popup-menu. ARGN is a value, which was sent
  by the server to the client as the first argument with the AddContextEntry function.

06-08-2006, MrSugarCube
- Modified: SERV.ACCOUNT.x now returns 1 if the account name or index exists, or 0 if not.
- Added: P.STATICS.x.COLOR and P.STATICS.x.Z can be used to find the colour and height
  of static items.
- Modified: Setting BONUS_STATS to 0 in SKILL definitions disables using BONUS_x properties
  when calculating stat gains for that skill instead of blocking all stat gains for it. If
  you want to prevent stat gains, you should either set STAT_x to 0, or set BONUS_x to 0
  with BONUS_STATS greater than 0.

07-08-2006, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Fixed some 'broken' defmessages with tabs in)

10-08-2006, ShiryuX (Script Pack)
- Fixed: #827 Kirin entered twice in sphere_defs.scp

14-08-2006, Nazghul
- Added: dmgcold, dmgenergy, dmgfire, dmgpoison properties for weapons with no built-in
  functionality (yet).
- Fixed: Returned maxweight property different from maxweight property displayed
  in status gump.
- Fixed #592: Wrong spellbook packets send by Linux versions
- Updated: sphere.ini - added new experimental flag EF_NewPositionChecks.

16-08-2006, Nazghul
- Added: Experimental flag EF_NewPositionChecks, with this flag on,
  the new position-related checks behavior will be used. So far it does something only
  with resource gathering related skills (lumberjacking, mining, fishing, eating grass etc.)
  and Advanced LOS.
  The flag is HIGHLY EXPERIMENTAL!
- Modified: FORPLAYERS now loops through logouted players. If you want to loop only through
  online players, use FORCLIENTS.

17-08-2006, MrSugarCube
- Fixed: Retrieving StatLock properties with STATLOCK[statname] and SKILLLOCK[skillname]
- Fixed #835: Setting StatLocks on the status window sets the incorrect StatLock[x] property.
- Modified: Undefined region warnings are no longer reported for locations outside of the
  map boundaries.

20-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Fixed #304: NPCs are dumber in pathfinding with EF_DiagonalWalkCheck on
  (fixed only with EF_NewPositionCheck and EF_WalkCheck on).
- Fixed #747, #767: Z not updated when you enter a multi, .fix not working inside a multi.
- Fixed #837, #829: NPCs not spawning (or on the wrong place) inside a building.
- Fixed #598: Ladders not updating Z and a player cannot step on some of them.
- Modified GOTO function: NPC will now not stop moving after the first step.

26-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Fixed #744: Line Of Sight check going from out of a house into the house was successful,
  but not vice versa.
- Fixed: Item flags and height was always inherited from the parent item
  (the item with DUPELIST=), what damaged almost all Line Of Sight checks.

28-08-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on)
- Modified: Now, archery, potion throwing, dragon breathing, stone throwing, magery can be
  used through a window.
- Modified: Now, fishing use LOS and prohibits casting through blocking objects.

28-08-2006, Nazghul
- Updated sphere_defs.scp: Added DEFNAME los_flags.
- Updated sphere_msgs.scp: Added message fishing_los.
- Removed: Multithreading support for Linux version due to its unusability on this OS.

30-08-2006, Nazghul
- MODIFIED: RESCOLD, RESENERGY, RESFIRE, RESPOISON now can also be set on NPC
  Remember that RES*=100 will give you a 100 percent immunity against the damage inflicted
  by TAG.*DAMAGE.
- Added: COMBAT_SPECIALDAMAGE to INI CombatFlags (08). If set, TAG.*DAMAGE (below) will be
  used.
- Added: COMBAT_USE_RESISTANCE to INI CombatFlags (010). If set, RES* on characters will
  also be weighted against normal damage if the old fashioned damage flags are set.
- Added: TAG.COLDDAMAGE, TAG.ENERGYDAMAGE, TAG.FIREDAMAGE, TAG.POISONDAMAGE for characters
  and items. The server will only evaluate the tags on characters, and if ComBatFlag
  COMBAT_SPECIALDAMAGE is set. Then any damage done to others (if it's damage type contains
  at least one of the physical types OR magic) will be increased by the value of the
  appropriate tag, lowered by the RES* percentage of the victim.
  Tags on items will not be evaluated by the server - their values can be used to for
  example increase the TAGs or the RES* properties on characters on equip of the item.
  This way you can use TAG.*DAMAGE on a weapon to increase the wearer's appropriate
  damage tag, or on a piece of armor to increase his RES*, or to whatever you want.

31-08-2006, Nazghul
- Added: NPC trigger @PetDesert. Fires when a pet decides to go wild.
  Default object is the pet, SRC the master. RETURN 1 changes the pet's mind.

31-08-2006, MrSugarCube
- Fixed: P.REGION reference not working correctly in areas defined via ROOMDEFs.
- Added: P.ROOM can be used to access the ROOM properties of a point, just like
  you can with P.REGION.
- Modified: P.REGION and P.ROOM now return 0 if a region or room doesn't exist at
  the point, and 1 if one does.
- Added: Support for the new BandageSelf and BandageTarget macros found in the
  latest clients (5.0.4). Using the macro will act as if the client has just
  targeted something with the bandage (and so @[item]TargOn_Item will be called).

01-09-2006, MrSugarCube
- Fixed #849: Enabling precasting does not freeze characters when casting.
- Fixed #849: With precasting enabled, skill is gained before the spell is
  completely cast at a target.
- Fixed #849: Harmful area effect spells don't affect the caster when
  MAGICF_CANHARMSELF is enabled.
- Fixed #849: TELE and POLY functions not working correctly with precasting
  enabled.
- Fixed #849: Casting from spellbook not working correctly with both
  FEATURE_AOS_UPDATE_B and MAGICF_PRECAST settings enabled.
- Fixed: Exception caused by spell effects on items with no SRC present.

02-09-2006, Nazghul
- Added: TAG.OVERRIDE.MOVERATE for NPC to speed up or slow down single NPC

05-09-2006, Nazghul
- Added: Option flag OF_Buffs. When on, Sphere will automatically add and remove buff and
  debuff icons to the affected players.
- Updated: sphere.ini - added new optional flag OF_Buffs
- Added: Functions ADDBUFF, REMOVEBUFF for adding and removing buff/debuff icons.
  syntax: ADDBUFF IconId ClilocOne ClilocTwo Seconds Text1 Text2(optional) Text3(optional)
          The text fields are supposed to hold max. 3 characters each (numbers) and will
          be cut off if larger.
  	  REMOVEBUFF IconId
  These functions only work with client 5.0.3 or above.

06-09-2006, Nazghul (script pack)
- Updated: sphere_defs.scp (added defnames for buff icons and clilocs)
- Fixed: bug with i_multi_tower_wizard - the door was placed BELOW the floor,
  so unuseable with new LOS checks

07-09-2006, Nazghul
- Updated: sphere.ini - added new debug flags DEBUGF_SCRIPTS, DEBUGF_LOS.

10-09-2006, ShiryuX (Script Pack)
- Updated: sphere_defs.scp - added a defname for rideable Polar Bear

11-09-2006, Nazghul
- Fixed #852: Trigger @SKILLSUCCESS did not fire with fighting skills

12-09-2006, MrSugarCube
- Added: FORINSTANCES to loop through all instances of a given BaseID. Usage
  is "FORINSTANCES id". If an ID is not supplied then the BaseID of the default
  object will be used. Works for both items and characters.

12-09-2006, Nazghul
- Added: A new item property IsCont, which returns 1 if an item is a container and 0 if
  it is not.
- Updated: sphere.ini - added a new debug flag DEBUGF_WALK.

15-09-2006, Nazghul
- Added: INI Flag OF_NoPrefix (0x4000) to get rid of the "A" and "An" prefixes what ere
  only an annoyance for not english language shards
- Changed: Key links will only be blanked if they are pointing to an invalid item UID now.
  Before everything what was neither container nor multi was considered "invalid", so keys
  with the UID of a door, or themselves could turn blank.
- Added #848: Character trigger @SpellSelect. Doing pretty much the same as the spell trigger
  @select and has the same arguments/parameters
- Fixed #778: Wrong spellbook recognition with more than one spellbook std., necro, ...)
  in pack.
- Updated: sphere.ini - Removed experimental flag EF_New_Walkcheck.

16-09-2006, Nazghul
- Added: OF_DyeType flag to sphere.ini. If set players are allowed to use i_dye on every
  t_dye_vat instead of only i_dye_tub. Making it switcheable for all those who have concerns
  about exploitability (even as I do not see any risk) - we all remember the times when
  injection users colored whole shards pink.

17-09-2006, MrSugarCube
- Fixed: Using Bandage macro with a target prompt already present calling @TargOn_Cancel
  on the bandages.
- Fixed #863: Changing RESFIRE/RESENERGY/RESPOISON/RESCOLD properties does not update the
  client.
- Fixed: Unable to gain magery skill with precasting enabled.
- Fixed: Various object references not accessible from the guildstone object.
- Fixed #865: GUILD.MEMBER.x.ISMEMBER property not working correctly.

20-09-2006, Nazghul
- Fixed #853: Update & DClick stopped display of weather effects

21-09-2006, Nazghul
- added TAG.OVERRIDE.AMMOTYPE and TAG.OVERRIDE.AMMOANIM for bows and xbows to - yes, OVERRIDE the
  TDATA3 and TDATA4 values on a per-item-base

21-09-2006, MrSugarCube
- Fixed #875: Exception caused by setting MASTERUID when no current guild/town master
  exists.
- Modified: Setting MASTERUID to the same uid as the current guild/town master no longer
  causes an error.
- Fixed: Calling the TRAIN function on an NPC in combat would cause an error.
- Modified #869: The TRAIN function now works on all NPC brains between 2 and 9.

21-09-2006, Nazghul
- changed GAINRADIUS so that it no longer defaults to anything - if not set on a skill
  it's just transparent (as if never invented)

22-09-2006, Nazghul
- Fixed #846: Bad character DispID displayed if there was serv.chardef called no NPC
  in the world with this ID.

24-09-2006, Nazghul
- Added: Function CONTCONSUME <arg1> <arg2>, which consumes <arg2> amount of an item with id <arg1>
  from a referenced container and its subcontainers. Function does nothing on chars (use consume)
  and on non-container items.
  Example: findlayer.29.contconsume i_gold 100000
- Added: Item trigger @Buy and character trigger @itemBuy, which are called before item is sold
  by a vendor. The trigger is called only with EF_New_Triggers on.
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
  Return 1 prevents the player from buying the item.
- Added: Item trigger @Sell and character trigger @itemSell, which are called before item is bought
  by a vendor. The trigger is called only with EF_New_Triggers on.
  ACT/DEFAULT is the item, SRC is the player, ARGN is the item amount, ARGO is the vendor.
  Return 1 prevents the player from selling the item.
- Fixed: Serv.itemdef.xxx.skill not always returning the skill
- Fixed: A copy & paste error in TAG.OVERRIDE.AMMO* what prevented the animation stuff to run.

25-09-2006, Nazghul
- Added: EF_DamageTool (0x2000) to Sphere.ini. Only if set tools/weapons will be damaged while
  lumberjacking/mining (what includes firing @Damage on them)
- Fixed: NPCs spawning with incorrect Z position.

26-09-2006, Nazghul
- Modified: @(item)ContextMenuRequest and @(item)ContextMenuSelect now will not be called with
  EF_Minimize_Triggers on.

27-09-2006, Nazghul
- Added: TDATA3 and TDATA4 of a container type item are now holding min and max coordinates of
  the "area were items may be placed", relatively to the open container gump.
  TDATA3 is (MinX * 0x10000) + MinY, TDATA4 is (MaxX * 0x10000) + MaxY
  Be very careful with these settings - if they are set to illegal values (i.e., outside of the
  visible gump) Sphere will happily accept them, but your users will not be able to pick items
  placed there out of the container, because the client will only display then if they have the
  container gump as a background!
  If TDATA4 is not set (or set to 0), default values will apply, along with the console warning
  "unknown gump id".

28-09-2006, Nazghul
- Added: MOREM value (0..127) on digestible food will override the amount of "food units"
  what will be added to the characters FOOD property when eating this. Obviously, items
  with different MOREM will not stack. Because on=@SUCCESS on cooking will not give you
  a reference to the newly created item but only to the raw one, MOREM will be transferred
  from the raw food (what you may alter in on=@success)

29-09-2006, Nazghul
- Added: 3 defmessages, thus making the headline for the "c" console command configurable.

01-10-2006, Nazghul
- Added: Intrinsic function IsObscene what tests whether the passed argument is a forbidden
  word (list of these words are in your spheretables.scp under the section OBSCENE).
- Fixed: Obscene not matching obscened words inside a string.
- Fixed #889: Fame.* and Karma.* always returning 0.
- Updated: spheretables.scp - added KARMA and FAME sections. Now you can change, add or remove
  keys which are used behind Karma. and Fame. . First line declares steps, other lines their
  names.
  IT IS HIGHLY RECOMMENDED TO UPDATE YOUR SPHERETABLES.SCP!!!

02-10-2006, Nazghul (Script Pack)
- Fixed #867: sphere_minor_artifacts.scp, i_orcish_visage
- Updated: Flags notification on server startup

02-10-2006, Nazghul
- Fixed #898: Some stairs unwalkable with EF_NewPositionChecks, EF_WalkCheck and
  EF_DiagonalWalkCheck on.

05-10-2006, Nazghul
- Added: INI flag OF_OSIDamageMod (0x04)
  Modifying weapon damage OSI style, according to this formulas (originally provided by ClouD_Br):
  Tactics Damage Bonus% = Tactics � 1.6 (Add 6.25% if Tactics >= 100)
  Anatomy Damage Bonus% = (Anatomy � 2) + 5
  Lumberjack Damage Bonus% = Lumberjack � 2 (Add 10% if Lumberjacking >= 100)
  Strength Damage Bonus% = Strength * 0.3 (Add 5% if Strength >= 100)
  Final Damage Bonus% = Tactics Bonus + Anatomy Bonus + Lumber Bonus + Strangth Bonus + Damage Increase Items*
  Final Damage = Base Damage + (Base Damage * Final Damage Bonus%)
  * Damage Increase is capped at 100%.

05-10-2006, Nazghul
- Fixed #036: Fixed TRY and TRYSRV not working with locals (local and arg*). TRYSRC and TRYP
  do not work, since it makes no sense to use it on local variables. (Thx to Ellessar who
  finally worked out how this SHOULD work, so we found the bug deeply buried under tons of
  old code)

06-10-2006, Nazghul
- Added: Function ISNEARTYPETOP(.P) which uses new checks for resource gathering (item which
  you want to find must be at the top, if at the top there are 2 items, then the success
  depends on the priority (dynamic->multi->static->terrain) of those items). Syntax is the
  same with ISNEARTYPE(.P). NOTE: This function is called from hardcode if EF_NewPositionChecks
  are on.
- Fixed #668: Delete packets of items which cannot be seen were sent to the client.
- Modified #632: Now, IsPlayer can be used on every game object.
- Modified: sphere.ini - added an NPC AI flag NPC_AI_INTFOOD which enables smarter and more
  trustworthy food finding.

08-10-2006, Furio
- Modified: TRIGGER command. It now supports calling a trigger with arguments, the syntax is:
  TRIGGER $trigger_name[,$trigger_arg_type,...] where $trigger_arg_type can be:
  - TAT_AS_ARGN (1): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGN>,1,2,3
                     will call @MyTest with ARGN1=1 ARGN2=2 ARGN3=3.
  - TAT_AS_ARGS (2): uses arguments as ARGS. Example: TRIGGER @MyTest,<def.TAT_AS_ARGS>,hi you 2,yo !
                     will call @MyTest with ARGS=hi you 2,yo !.
  - TAT_AS_ARGO (3): uses arguments as ARGN. Example: TRIGGER @MyTest,<def.TAT_AS_ARGO>,01
                     will call @MyTest with ARGO.UID=01 (only if object with such uid exist).
- Updated: sphere_defs.scp (with new definitions for the TRIGGER command).
- Fixed #880: Explode function not working as it should.

09-10-2006, Nazghul
- fixed problems with spellbooks obviously triggered by new Gcc compiler for Linux with a weird
  workaround.

10-10-2006, Nazghul
- Fixed #900: Added INI flag COMBAT_DCLICKSELF_UNMOUNT to unmount horse when dclicking self
  while in warmode.

11-10-2006, Nazghul (Script Pack)
- Updated: sphere_msgs.scp - more defmessages to customize text output.
- Updated (#905): sphere_item_provisions_potions.scp - Shrink potion did not behave as expected.

13-10-2006, Nazghul
- Added: Intrinsic functions SIN() and COS(). Attention: Without FLOAT math they will obviously
  only return 0 and 1 :)

16-10-2006, Nazghul
- Added: Support for floats (local variables FLOAT.younameit, which have size of double, and
  can hold precise numbers). Usage of these variables is the same like LOCAL.younameit. As
  EVAL only uses integer arithmetic, with FLOAT math you have to use <FLOATVAL ()>
  (New code was done mainly by Ellessar and Decrythe, I just "glued" it into Sphere :) )
- Changed: Return values for @SPELLSELECT trigger. Touchup for @SELECT with spells. Different
  server behaviour can be achieved with the following RETURN values in trigger scripts:
  @SELECT
  	RETURN 0 - proceed without mana, spellbook, and reagent check as if these checks were
  						 successful
		RETURN 1 - Abort processing (so aborting the spell)
	  RETURN 2 - proceed as normal
	  RETURN 6 - like RETURN 0 (for compatibility with @SPELLSELECT)
  @SPELLSELECT
  	RETURN 0 - proceed as normal
		RETURN 1 - abort processing (so aborting the spell)
	  RETURN 2 - proceed as normal
	  RETURN 6 - proceed without mana, spellbook, and reagent check as if these checks were
	  					 successful
  @SPELLSELECT will be called after @SELECT - what means, if you leave @SELECT with RETURN 0 or
  RETURN 1, @SPELLSELECT will NOT be called!

16-10-2006, Furio
- Added: DAM.HI/LO and ARMOR.HI/LO

17-10-2006, Nazghul
- Added: Defmessage if skillgain is aborted due to GAINRADIUS not met; message will only be displayed
  if TAG.NOSKILLMSG=1 on character
- Fixed: Problems with long passwords and MD5 hash on.

18-10-2006, Nazghul
- Added INI flag OF_DrinkIsFood (0x10000). If set, T_DRINK will increase FOOD lvl. like T_FOOD

19-10-2006, Nazghul
- Added: Dynamic property "height" for characters.

20-10-2006, Nazghul
- Updated: sphere_defs.scp - added defname charheight.

21-10-2006, Nazghul
- Added: New "m" paramter for TARGET function. Now you can use TARGETM and TARGETFM for targeting
  a place for your multi (you will see your multi in the "ghost mode"). TARGETM takes as an argument
  ONLY ID of the multi, TARGETFM takes 2 arguments - function_to_call,ID_ot_the_multi.

21-10-2006, Nazghul (Changes only for servers with EF_NewPositionCheck on and AdvancedLOS on)
- Modified: CanSeeLOS now uses height of a character for its checks. Height is read in this order
  and first correct entry is used:
  1. Dynamic height property of an object
  2. Height property under CHARDEF/ITEMDEF (can be inherited)
  3. Defname in format "height_dispid", while dispid is a hex number in Sphere format (0a3)
  4. Defname in format "height_dispid", while dispid is a dec number
  5. Universal height - "15"
  If a character is mounted, its height is raised by 4. CanSeeLOS reduce height of an unmounted
  character by 1 (pretending eyes height).
  NOTE: This formula is used when you are doing .show height, or <height> in scripts.

23-10-2006, Nazghul
- Fixed: #789 ModAR on characters only worked with damage of type GENERAL.

23-10-2006, MrSugarCube
- Fixed: Webpage requests always displaying the "Internal Server Error" page.

24-10-2006, Nazghul
- Added: Trigger @(item)Buy now has local.totalcost, which holds the cost of the whole purchase
  and ARGN2, which holds price of this amount of items (price * amount).
- Fixed: Trigger @(item)Buy returning bad amount in ARGN1.
- Added: Local variables LOCAL.CREATEOBJECT1 and LOCAL.CREATEOBJECT2 to @SUCCESS trigger of spells.
  These variables are _unset_ when the trigger is called. But they can be _set_ with field- and
  summon spells to change what these spells will create.
  - Summon spells (summon creature, bladeSpirit, Vortex, summon daemon, summon *elemental) take only
    the first one. If set with LOCAL.CREATEOBJECT1 = <eval c_orc> the spell will summon an orc. This
    way one can add more random daemons to the summon daemon spell, or change the spawned creature
    due to magery or whatever.
  - field spells (s_wall_of_stone, s_fire_field etc) take both variables, as usually the items for
    the field in west-east direction are different from those in north-south direction. If necessary
    they can of course be the same (s_fire_field looks impressive with i_fire_columns :) ), but BOTH
    have to be set (otherwise the unset will be replaced by the spell's default item for this dir).
    Example:
    [SPELL s_fire_field]
    ...
    on=@SUCCESS
      IF <magery> >= 99.9
        LOCAL.CREATEOBJECT1 = <eval i_fire_column>
        LOCAL.CREATEOBJECT2 = <eval i_fire_column>
      ENDIF

24-10-2006, Pilz-e (Script pack)
- Updated: sphere_map0_ml.scp (Corrected P properties for ML locations)

25-10-2006, Nazghul (Changes only with EF_NewPositionCheck, EF_WalkCheck and MountHeight on)
- Modified. You will not be able to go into a building if there is not enough space for you.
- Modified: You will not be able to mount a rideable if there is not enough space for you + ride.
- Modified: You will not be able to summon an NPC if there is not enough space for it.
- Modified: You will not be able to teleport (gate, recall) yourself to a spot where is not enough
  space for you.

25-10-2006, Nazghul
- Updated: sphere_msgs.scp - added a new defmessage msg_summon_ceiling and modified
  the msg_mounted_ceiling defmessage.

25-10-2006, Nazghul
- Changed: NPC_AI flags in sphere.ini. Started splitting them up to make it easier to track
  errors related to them. The respective INI section now reads:
  // NPC AI settings
  //	NPC_AI_PATH		0001		NPC pathfinding
  //	NPC_AI_FOOD		0002		NPC food search (objects + grass)
  //	NPC_AI_EXTRA		0004		NPC magics, etc
  //	NPC_AI_ALWAYSINT	0008		Always be as smart as possible with pathfinding
  //	NPC_AI_INTFOOD		0010		NPC food search (more intelligent and trusworthy)
  //	NPC_AI_COMBAT		0040		Look for friends in combat
  //	NPC_AI_VEND_TIME	0080		vendors closing their shops at nighttime
  //	NPC_AI_LOOTING		0100		loot corpses an the way
  //	NPC_AI_MOVEOBSTACLES	0200		if moveable items block my way, try to move them
  //NPCAI=0

27-10-2006, Nazghul
- Fixed: Fishing not displaying an animation right after start.
- Fixed: Resource gathering with EF_NewPositionChecks on did not work on tiles with Z < 0.
- Added: Some more defmessages (also to sphere_msgs.scp), this time title-related

28-10-2006, Furio
- Fixed #809: Wrong cheater message.
- Added #913: TAG.OVERRIDE.MAXITEMS/MAXWEIGHT on bank to override global settings.
- Added: TAG.PARTY_AUTODECLINEINVITE. If set on char it makes the char autodecline every invite.
- Modified: After an party invite you must wait a bit before inviting someone else.

29-10-2006, Nazghul
- Added: Spell flag "SPELLFLAG_NOUNPARALYZE", if the flag is turned on, victim won't be
  unparalyzed.
- Added: Damage flag "DAM_NOUNPARALYZE", if the flag is turned on, victim won't be unparalyzed.
- Updated: sphere_spells.scp (added spellflag_nounparalyze to the paralyze field spell)
  and sphere_defs.scp
- Updated: sphereCrypt.ini

31-10-2006, Nazghul
- Added: FEVAL and FHVAL which allow you to convert your float variable to a standard decimal or
  hexadecimal number. Numbers behind a decimal point are cut out.
  The syntax is: <feval <float.yourvar>> or <fhval <floatl.yourvar>>.
- Fixed: Addspell not working if used like <findid.i_spellbook.addspell 5>. Now, this syntax
  should return 1 if the spell passed as an argument is in the spellbook.

02-11-2006, Nazghul
- Fixed: CanSeeLOS working through a "black hole" in terrain.
- Fixed: Walls with the impassable flag off blocking movement.
- Modified: IsArmor and IsWeapon now accept UID or ItemId as an argument.

02-11-2006, MrSugarCube
- Fixed: Double "You have the key for this" message when attempting to use a lockpick or cast
  magic unlock on something you already have a key for.

03-11-2006, Furio
- Added: DB.ESCAPEDATA $field returning $field escaped using the charset of the connected db.

03-11-2006, Nazghul
- Added: Character trigger ON=@JAILED
  ARGN1 = 1 -> Char is up to be jailed, 0 -> char is up to be forgiven
  ARGN2 = Jail cell (0 if none special)
  RETURN 0 -> proceed as normal
  RETURN 1 -> stop the procedure without changing current status
- Added: Character property IsVerticalSpace, which returns 0 if there is not enough space for
  you and your mount (if you are mounted). Function takes position as an optional argument.

05-11-2006, MrSugarcube
- Modified: SERV.BLOCKIP now accepts a second argument specifying the time to block the IP for
  in tenths of a second (-1 for permanent).
- Added: f_onserver_blockip, called when an IP is blocked from the server. ARGS contain the IP
  being blocked and ARGN1 holds the amount of time the IP will be blocked for (writable).

05-11-2006, MrSugarCube (Script pack)
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip definition)

10-11-2006, Nazghul
- Added: REFx as a local reference object, where x is a number between 1 and 65535. It can be
  used like an OBJ, but will be removed after leaving a function (like a LOCAL).

15-11-2006, Nazghul
- Fixed #933: i_rune_paralyze is not removed.
- Fixed #934: NPCAI_Extra and heavy weapons.

16-11-2006, Admin BladeCraft (Script pack)
- Updated: sphere_serv_triggers.scp (Added f_onserver_blockip under [PLEVEL 7] block)

20-11-2006, MrSugarCube
- Fixed #940: Undefined keyword errors when using functions via [guildstone.]MEMBER.x.KEY.

23-11-2006, MrSugarCube
- Added: Support for ConnectUO status request packet.

23-11-2006, Furio
- Added: ALLOWBUYSELLAGENT in sphere.ini to allow rapid buy/sell.

24-11-2006, MrSugarCube
- Fixed: Exceptions caused by not definined FAME.*/KARMA.* ranges.
- Fixed: Exception caused by using a spyglass from a ship.
- Modified: Walking off a ship plank no longer moves characters to adjacent ships.

25-11-2006, MrSugarCube
- Fixed: Stamina not being sent to other party members, and stat bars for other party members
  not always showing the correct mana/stamina levels.

26-11-2006, MrSugarCube
- Fixed #949: Possibility of taking items from inside containers within the bank.
- Fixed #947: ISARMOR causing errors when no arguments given.
- Fixed #960: .Extract and .UnExtract always using map 0.
- Modified #946: Items can no longer be moved from the trade window due to client limitations.

26-11-2006, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Added "msg_trade_cantmove" defmessage)

27-11-2006, Vjaka
- Added: ATTACKER keyword to access last attackers of a character. Usage:
  <attacker>		returns amount of attackers
  <attacker.x>		returns UID of the attacker (or 0 if there is no attacker)
  <attacker.x.dam>	returns total damage done by the attacker
  The list is being cleared upon death after @DeathCorpse trigger.
- Removed: OF_Multithreaded option flag, it actually did not work at all.
- Removed: EF_Scripts_Parse_Verbs - now it is integrated into the parser and is used when needed.
- Modified: The way the scripts are being parsed, now they are not read from the disk on each
  operation, and are actually re-read only when you are doing a manual resync.
- Added: BETWEEN2 as opposite of BETWEEN, which selected min<-cur->max to select towards
  minimum (max<-cur->min).

28-11-2006, Furio
- Fixed #951: FILE.WRITECHR not working as it should.
- Modified: Added error feedback for FOR* cycles.

28-11-2006, MrSugarCube
- Fixed #932: Removing items with a Z greater than 25 not updating view for players.

29-11-2006, Vjaka
- Modified: The exception handling routine to get more information about the place which causes
  the exception.

30-11-2006, MrSugarCube
- Fixed #804: Multiple stackable items being created in a TEMPLATE not having the correct
  amounts.
- Fixed #664: Automatic loading of backup saves not working.
- Fixed: REPORTEDCLIVER always returning 0.0.0 and CLIENTIS3D always returning 0.
- Fixed: GUILDTITLE property on guild members not working.
- Fixed: KARMA.* ranges not accepting negative values.
- Modified #494: RESURRECT function now accepts a parameter specifying whether or not to
  ignore anti-magic fields (i.e. "RESURRECT 1" to ignore anti-magic field). Note that
  specifying 1 will also cause @[Spell]Effect triggers to not fire for the resurrection
  spell.
- Modified: Adding/Accepting an offline player into a guild now shows a more appropriate
  message to the client.

01-12-2006, MrSugarCube
- Fixed: Corpses for creatures with higher RESLEVEL than the client's RESDISP not showing
  the body and hue specified in the creature's CHARDEF.

02-12-2006, Nazghul
- Added: CanSeeLOSFlag which accepts flags for LOS check as the first argument and an object
  or a position as the second argument. For flags and their explanation see sphere_defs.scp.

05-12-2006, Vjaka
- Fixed: Ships falling apart after rotation.
- Fixed #955: Some dialogs/sdialogs causing exceptions after they're opened.

06-12-2006, Nazghul
- Modified: Now only ATTACKER.* works (not ATTACKERFUBAR), now only ATTACKER.*/ATTACKER.*.UID
  returns the UID of an attacker, ATTACKER.*.DAM returns damage done by the attacker * and
  ATTACKER.*.ELAPSED returns the time in seconds since the last hit of the attacker *.
- Modified: ATTACKERs are now also saved if they deal no damage.

09-12-2006, Nazghul
- Fixed #965: Fishing with certain flags on not working.
- Fixed: Error messages about undefined item 00.

09-12-2006, Furio
- Added: Encryption keys for client 5.0.7.0.

09-12-2006, MrSugarCube
- Fixed: <REPORTEDCLIVER.> not showing the ".x" in client "5.0.6.5" and above.

10-12-2006, Vjaka
- Added: Now keyword MAX can be used instead of number in ATTACKER in order to access the one
  who have dealt most damage.
- Removed: EF_Scripts_Ret_Strings has proven to be stable and correct during years, so it is
  now a default behavior of Sphere.

16-12-2006, Furio
- Added: argument CLEAR to TIMERF. Now using x.TIMER CLEAR will delete all the timerf running on x.

16-12-2006, MrSugarCube
- Fixed #979: PRIVSHOW feedback showing incorrect ON/OFF message.
- Fixed #977: +=/-= operators not working with REFx, and exception caused when TRYSRC is
  supplied with an invalid verb.
- Fixed #936: REFx interfering with functions beginning with REF (such as REFUSECANDIDATE
  on guildstones)
- Fixed: REFx allowing x to be out of range (should only allow 1 to 65535).
- Modified: <REFx> now returns the UID of the object stored in the REF like other object
  references.
- Modified: REFx no longer ignores attempts at being set to invalid UIDs - now in this case
  the REF will be cleared.

16-12-2006, ShiryuX (Script pack)
- Updated: sphere_defs.scp (Added missing MT_MALE definition)

18-12-2006, MrSugarCube
- Fixed #985: Clients on the "Status..." window not showing on seperate lines.
- Fixed #978: Setting LevelMode to unexpected values causing server freeze when calculating
  experience.

19-12-2006, coruja747 (Script pack)
- Updated: sphere_admin.scp (Fixed IP Address and Location properties not greyed out for
  insubstantial characters)
- Updated: spherechar.scp and spherechar_evil.scp (Corrected Lava Lizard definition and
  moved it to spherechar.scp)

19-12-2006, _Epila_ (Script pack)
- Updated: sphere_menu.scp (Removed [COMMENT MENU MENU_ADMIN] as it's no longer used)

20-12-2006, MrSugarCube
- Modified: Tooltips that have been queued long enough for their object to no longer be on
  the client's screen are no longer sent.

20-12-2006, MrSugarCube (Script pack)
- Updated #988: sphere_msgs.scp (Added 3 "msg_serv_shutdown*" defmessages)

20-12-2006, Nazghul
- Fixed #972: NPCs walking on water with EF_WalkCheck on.
- Fixed #982: Teleport allowed to water with EF_WalkCheck on.

21-12-2006, MrSugarCube
- Fixed #971: Clock overflow that causes the game to freeze.
- Fixed: FRUIT property of crops not returning the correct value.

22-12-2006, Nazghul
- Fixed: HEIGHT returning wrong value on DUPEd items.

22-12-2006, Vjaka
- Fixed: HITS setting for items when MAXHITS was not specified, so you can act via HITS for
  items as well for saving with no need to differ HITS and HITPOINTS.
- Fixed: client problems with quick mounting horse while running causing no future updates
  being interpreted by client till .fix/.resend was done.
- Fixed: inject ,snoop command still having some cases to access items in undesired containers.
- Fixed #819: If we use rand(X), where X > 32767, we always get result of rand(131072).

22-12-2006, Furio
- Fixed #816: Reading non-string data from sql is autoeval'd.

23-12-2006, Vjaka
- Added: Region tag RestockVendors (in ticks) to alter time in which the vendors will auto restock.
  Default value is 10*60*10 (10 minutes).

24-12-2006, MrSugarCube
- Fixed #1000: TAG.NAME.PREFIX not overriding the Lord/Lady title in the profile and paperdoll
  menus, and TAG.NAME.SUFFIX not showing at all.
- Fixed: Sphere crashing when a player opens a container with 810+ items inside.

29-12-2006, MrSugarCube
- Fixed #973: Ship hatch contents being deleted upon turning the ship.
- Fixed #973: Ship planks becoming permanently unlocked when opened.
- Fixed #973: Fixed spam caused when attempting to attack an opponent outside of a ship.
- Fixed: MULTICREATE function not working without an SRC present.
- Fixed: Setting the ACCOUNT property of an NPC now properly sets it up as a player character
  without it being deleted by garbage collection.
- Modified #995: Logged out players are now moved along with moving ships.
- Modified #920: GMPAGE function can now be used with the arguments "ADD <Message>" to add <Message>
  to the page queue. This function should be called on a logged in player (eg: "GMPAGE ADD This is a
  page").
- Added #973: Combat flag COMBAT_ALLOWHITFROMSHIP. Removes the combat restriction that prevents
  characters attacking from ships.
- Added: TILLER, HATCH and PLANK.x references for ships. PLANKS property can be used to determine
  how many planks are present on a ship.

29-12-2006, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Added combat_outsideship to defmessages)

30-12-2006, _Epila_ (Script pack)
- Updated: sphere_map_points3.scp (Added missing Doom dungeon teleporters)

02-01-2007, MrSugarCube
- Fixed: Loginserver not sending server IPs correctly.
- Fixed: Response not being sent when a client sends a ping packet.
- Fixed: Hallucination ignoring RESLEVEL settings on the random bodies it selects.
- Modified: Trade window contents are no longer included in searches of a character's inventory. This
  affects CONSUME, *COUNT, FIND* and FORCONT* functions.

02-01-2007, MrSugarCube (Script pack)
- Updated: spherechar.scp (Replaced c_sea_monster definition to add protection against crashing newer
  clients)

03-01-2007, MrSugarCube
- Fixed: MapChange packet not sending the correct map id for Trammel (Map 1)
- Modified: MAPx in sphere.ini now accepts a 5th parameter, for specifying the map id that should be
  given to the client (0=felucca, 1=trammel, 2=ilshenar, etc).
- Added: *Experimental* flag "EF_Mapdiff_Support" added to sphere.ini. Enables using mapdif and stadif
  files to patch terrain and statics.

04-01-2007, MrSugarCube
- Fixed: Buying from vendors allowing players to carry more weight than they should. Excess items are
  now dropped to the ground.
- Fixed: Selling to off-duty vendors showing a warning message about an illegal "buy packet" instead
  of "sell packet". Also added more detail to buy/sell packet cheater warnings.
- Modified: Resync messages are now always visible on the console.

05-01-2007, MrSugarCube
- Fixed #1011: Trade title on the paperdoll written incorrectly.

05-01-2007, Nazghul
- Fixed: Sphere now adds and removes the hiding/stealth buff icon automatically

06-01-2007, MrSugarCube
- Fixed: SERV.RESYNC command being executed from scripts causing the server to freeze. Note that using
  SERV.RESYNC from scripts will now cause the resync pause to be delayed until after the script has
  completed execution.
- Modified: EFFECT property of crafting skills can now be used to define the percentage of resources
  that are lost when failing to craft an item. A few examples of how you can use this:
   "EFFECT=x"		- Always lose x% of resources on fail
   "EFFECT=x,y"		- Lose between x% and y% of resources on fail
   "EFFECT=x,y,z"	- Lose between x% and z% of resources on fail (weighted by y)
  If EFFECT is not set then resource loss will be as normal -> 0-50% resources lost.
- Added: TAG.OVERRIDE.GUARDS on regions to specify different guards per region.
- Added: Arguments for @CallGuards trigger:
   ARGN1 = Guard ID that will be created. (writable)
   ARGN2 = Force spawning a new guard. (writable)
   ARGO  = An already spawned guard that will be used, unless ARGN2 has been set to 1.

06-01-2007, MrSugarCube (Script pack)
- Updated: sphere_skills.scp (Removed EFFECT property from Alchemy and updated [COMMENT SKILL x] block)

07-01-2007, MrSugarCube
- Fixed #1007: War/Peace button on paperdoll not correct when logging in with war mode.

08-01-2007, MrSugarCube
- Fixed #1004: Target cursor appearing when calling functions starting with "SET" or "X".
- Added #1013: SYSMESSAGELOC, for sending localized messages to clients. SMSGL can also be used as a shortcut.
  Syntax is: "SYSMESSAGELOC color,clilocid[,arguments]"
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override it.
  Some examples of this being used (latest clilocs) are:
   "SYSMESSAGELOC -1,502771"			- Displays "You cannot reach that."
   "SYSMESSAGELOC 2,1042758,MrSugarCube"	- Displays "You are now loyal to MrSugarCube." in blue
   "SYSMESSAGELOC -1,1062695,MrSugarCube,4,5"	- Displays "MrSugarCube rolls the dice and gets a 4 and
						  a 5!"
- Modified #1013: '@color,font,unicode' in messages is now '@color,font,mode'. You can specify 1 for mode if
  you wish to use unicode (like before), or specify 2 if you wish to use a localized message (useful for
  overriding messages in sphere_msgs.scp). The above localization examples used with this method would be:
   "SYSMESSAGE @,,2 502771"
   "SYSMESSAGE @2,,2 1042758,MrSugarCube"
   "SYSMESSAGE @,,2 1062695,MrSugarCube,4,5"

09-01-2007, Furio
- Added: MD5HASH returning the md5 hash of the argument.

11-01-2007, MrSugarCube
- Fixed: ATTACKER.x not working correctly.
- Fixed: Possible exception with handling mail message packet.
- Modified: Rewritten EF_Mapdiff_Support handling to perform much faster. This is done at the cost of some
  additional memory usage but it can now cope with populated worlds.
- Modified: Profiler now includes time spent loading map blocks.

11-01-2007, MrSugarCube (Script pack)
- Updated: sphere_spells.scp (Corrected FLAGS property of paralyze field spell)

12-01-2007, Shadow Dragon
- Added: MulDiv script function. Usage "MulDiv number,multiplier,divider". Returns result.

12-01-2007, Vjaka
- Greatly increased speed of loading large scripts (especially annoying on resync).
- Fixed parsing script files when latest useful script line not ended by carriage return.

15-01-2007, MrSugarCube
- Fixed #1027: SDIALOG claiming to be an undefined keyword when the specified dialog is already showing.

16-01-2007, Nazghul
- Added: Character trigger @charAttack, @charClick, @charClienttooltip, @charDClick, which work like
  @itemXXX triggers, but for NPCs.
- Added: An item flag CAN_I_DCIGNORELOS and a character flag mt_nodclicklos. With these flags on, LOS checks
  on a dclicked item won't be performed.
- Added: An item flag CAN_I_DCIGNOREDIST and a character flag mt_nodclickdist. With these flags on, distance
  checks on a dclicked item won't be performed.

16-01-2007, MrSugarCube
- Added #1029: @Cancel trigger to MENUs and SKILLMENUs.
- Modified: Items displayed on MENUs and SKILLMENUs can now be coloured. This can be done by prefixing the
  item description with "@color" (in the same way that sysmessages can be coloured). For example,
  "ON=i_sword_viking @2 This is a viking sword" will display a blue sword on the menu.
- Modified: Cancelling a PROMPTCONSOLE prompt no longer prevents the callback function from being called.

16-01-2007, SaCi (Script pack)
- Updated: sphere_dialog.scp (Updated descriptions in [COMMENT DIALOG HELP_SECTION])

17-01-2007, MrSugarCube
- Added: OPENPAPERDOLL character function. Without arguments it will display the current character's
  paperdoll to SRC. With the UID of a character given it will display the specified character's paperdoll to
  the current client.

20-01-2007, Ellessar
- Fixed: Problems with stairs which have odd height (1,3,5,...).
- Fixed #1037: Buffs needed FEATURE_AOS_UPDATE_B to work.

24-01-2007, MrSugarCube
- Fixed: Tillerman speech on the 3D client not shown in the correct colour.

25-01-2007, Ellessar
- Fixed #1028: Problems with terrain height.
- Rewritten the whole NPC_AI_PATH, now it should be faster, more reliable and less buggy.

28-01-2007, Ellessar
- Fixed: Pathfinding called on every NPC step.
- Fixed #987: ResMake returning wrong values if the item doesn't exist in the world.
- Fixed #1010: After casting a wall in a guard zone you were flagged as a criminal, also with the spellflag_harm
  flag off.

28-01-2007, MrSugarCube
- Fixed: GAINRADIUS on skill definitions defaulting to random values.

29-01-2007, Ellessar
- Optimized: MapCaching (using STL functions), which should result in less bugs and better performance.
- Fixed: Using .tele over water tiles was allowed.

29-01-2007, Furio
- Modified: Is now possible to always use ARGO.verb directly.
- Added: In packetfilter functions ARGO is the CClient connected now (e.g. it allows SENDPACKET through
  ARGO.SENDPACKET syntax at any time)

31-01-2007, MrSugarCube
- Fixed #771: Unicode characters being stripped from speech when keywords from Speech.mul are used.
- Added: Encryption keys for client 5.0.8.x to sphereCrypt.ini

01-02-2007, MrSugarCube
- Fixed #755: GetResourceValue error being shown for items with valid resources after being shown for the
  first time.
- Modified: Changed the "GetResourceValue reentrant item=xxx" error to make more sense.

02-02-2007, MrSugarCube
- Fixed #496: Musicianship skill triggering skill gain twice on success.

03-02-2007, MrSugarCube
- Fixed #510: Notoriety status on tooltips not shown correctly when moving around.

05-02-2007, Ellessar
- Added: Keyword GetRefType, which returns flag of the referenced type. The list of flags is in sphere_defs.scp.
- Updated: sphere_defs.scp - added ref_types defnames

06-02-2007, Nazghul
- fixed #1047: NPC AI_CAN_LOOT missed a "not" so only animals looted :).
  Domestic animals will no more poop dung if frozen, stone, insubstantial or in warmode

07-02-2007, Nazghul
- Fixed #1049: t_fire, t_campfire, t_spell are no longer dispellable if they have attr_move_never
- Added: more defmessages (update sphere_msgs.scp!)

07-02-2007, Vjaka
- Modified console output in linux build. By default it assumes that it is not colored,
  launch with argument -c (./spheresvr -c) in order to get colored output. It screwed some consoles.

08-02-2007, Nazghul
- Added: Skill flags SKF_NOANIM (don't show hardcoded anim for this skill) and SKF_NOSFX (don't play
  hardcoded sound for this skill). After setting this you can set anim/sfx yourself in @start
  or alike.

08-02-2007, Ellessar
- Fixed #1050: Problems with underground caves.

09-02-2007, MrSugarCube
- Fixed: ConnectUO Status requests sometimes reporting an encryption error.

11-02-2007, Fisicka (Script pack)
- Fixed #1051: Bug in sphere_map_points0.scp and sphere_map_points1.scp

11-02-2007, MrSugarCube
- Fixed #1037: ADDBUFF and REMOVEBUFF requiring FEATURE_AOS_UPDATE_B enabled to work.
- Fixed #1053: @color in [SKILL]MENUs displaying the wrong colour.

12-02-2007, MrSugarCube
- Fixed #1058: Exception on linux build caused by items decaying without decay flag.

13-02-2007, Nazghul
- Fixed #1059: Now NPC will be stuck with the lightsource they already have equipped.

15-02-2007, Nazghul
- Added: First version of support for TNG's webscript reader. Use console command
  "tngstrip" to create a file what contains the information TNG needs from all 
  your scripts (thus completely useless for script thieves). The file will be 
  placed at the location defined with "StripPath=" in sphere.ini and is named 
  "tngstrip.scp. Can be delivered either by a dedicated web server or the built-in 
  of sphere itself.

15-02-2007, Babidi (Script pack)
- Modified: sphere_dialog.scp - line 217, the highest skill is now SKILL_SPELLWEAVING.

16-02-2007, Nazghul
- Added: TAG.OVERRIDE.AMMOANIMHUE for bow and crossboy-type weapons to locally 
  override the color of the effect what will be used for displaying the shot.

18-02-2007, MrSugarCube
- Fixed #1069: Stable masters giving food to invisible characters.

20-02-2007, Nazghul
- Added SPELLFLAG_NO_CASTANIM (0x80000) to suppress the usual cast anim. 
  This way a custom (perhaps race-, class-, magery-, experience-related) anim 
  can be played @START/@SPELLCAST

21-02-2007, MrSugarCube
- Fixed #1071: Undefined Symbol error caused when a function returns a string.
- Fixed #1075: The last line in script files being ignored.
- Fixed #1076: ALLSHOW switching off too late upon login.
- Added: Skill flag SKF_CRAFT. Skills with this flag set will function 
  correctly with the MAKEITEM command.

21-02-2007, MrSugarCube (Script pack)
- Updated: sphere_defs.scp (Added SKF_CRAFT definition)
- Updated: sphere_map_points0.scp and sphere_map_points1.scp 
  (Removed duplicate teleporters)

22-02-2007, MrSugarCube
- Fixed #1078: Exception when walking in the top left corner of maps.
- Added #1079: ARGO in f_onchar_create, f_onchar_delete and f_onaccount_login 
  is now the the client that is performing the action (note that at the time 
  these functions are called, there is no character attached to the client so 
  character properties are not accessible).

22-02-2007, Nazghul
- Added: Character trigger @statchange (argn1: the stat, argn2: new value).

25-02-2007, Ellessar
- Added: TAG.DEATHFLAGS which changes some death related behavior. The list of 
  flags is in sphere_defs.scp and their names are pretty self-explaining.
- Fixed #1081: SERV.WRITELINE not adding a new line on Windows.

25-02-2007, Ellessar (Script pack)
- Updated: sphere_defs.scp (Added death_flags defname)

25-02-2007, Nazghul
- Added: TAG.OVERRIDE.MAXWEIGHT and TAG.OVERRIDE.MAXITEMS now are applying 
  to all containers if set. If not, maximum weight is still unlimited, while 
  max. item count is still default.

26-02-2007, Ellessar
- Modified: Region trigger @Step will now work only with EF_New_Triggers 
  on and EF_Minimize_Triggers off.

27-02-2007, Ellessar
- Added: sphere.ini settings EventsPlayer, EventsRegion. These events are 
  applied on all players/regions in the world.
- Updated: sphere.ini

01-03-2007, Furio
- Added: LASTEVENT keyword on clients, returning the time of last packet 
  receive (like serv.time).
- Modified: OF_OSIDamageMod and OF_Archery_CanMove are now CombatFlags 
  (look in sphere.ini)
- Updated: sphere.ini

01-03-2007, MrSugarCube
- Fixed #1092: Dead characters not showing on the status page.
- Fixed #1090: MOUNTHEIGHT checks preventing characters teleporting to valid 
  locations if they are stuck under a low ceiling.
- Fixed #1085: MAXBASESKILL in sphere.ini applying to skills that players are 
  unable to see in their skill menu. An INITHIDDENSKILLS setting has been added 
  to sphere.ini so that this behaviour can be toggled.
- Fixed #1084: Vendor's constantly restocking goods instantly after selling them.
- Fixed: Players able to create characters with skill in undefined skills.

01-03-2007, MrSugarCube (Script pack)
- Updated: sphere_skills.scp (Missing skill cap for Animal Lore in SKILLCLASS 0)

02-03-2007, Ellessar
- Fixed #1093: serv.restock not working. Now it updates all vendor boxes and 
  world gem bits.
- Fixed: NPCs sometimes not spawning with EF_NewPositionChecks on.
- Modified: Trigger @CallGuards now have a reference "REF1", which refers to 
  the target of the guard.
- Modified: NPCs now won't 'talk and follow' you, if your distance from their 
  spawn bit is greater than their homedist.

02-03-2007, Vjaka
- Fixed: red NPCs spawning in cities from spawns at the edges of the town.
- Modified: now clients which spawns too many exceptions are disconnected.
- Added: GOLD property for character. It counts all gold coins on character 
  and return them. Or, if used with argument, sets a new amount of gold, adding 
  gold coins to reach the new sum. The most common usage would be similar to 
  GOLD += 5000 and so on.
- Fixed: NPCs not being able to stumble upon hidden player character.

05-03-2007, Furio
- Fixed #1098: Explosion potion activate with decay timer also if not activated.

06-03-2007, Ellessar
- Added: ATTACKER.LAST, which works like ATTACKER.MAX, but returns the char which 
  hit the victim for the last time.

10-03-2007, Ellessar
- Added: Experimental flag EF_AllowTelnetPacketFilter, which allows telnet 
  connections to fire a PACKETx function.
- Updated: sphere.ini

12-03-2007, MrSugarCube
- Fixed #1062: "RETURN x" not always halting script execution or even returning 
  the correct value.
- Fixed: Exceptions that are sometimes caused when attempting to use/take an item 
  that cannot be reached.

13-03-2007, Nazghul
- Added: keyword VISUALRANGE, parameter 1..18 to limit the visualrange of a client. 
  After changing the visual range you should update the character in question once.

13-03-2007, Ellessar
- Fixed #1106: PACKETx sometimes caused errors in console.

16-03-2007, MrSugarCube
- Fixed #1113: Exception caused when an online player character is deleted.
- Fixed: ATTACKER.LAST only working when the last attack was within the last second.

17-03-2007, Beyonder (Script pack)
- Updated: sphere_item_treasure_maps.scp (Updated to use 0.56b features)

17-03-2007, Ellessar
- Added: Function SKILLTEST, which tests values of skills sent as arguments 
  on the default character. Usage: <skilltest carpentry 68.9>
- Fixed: SKILLMAKE replacing types with item names.

17-03-2007, Furio
- Fixed #1117: Unable to access subcontainers on the ground.

17-03-2007, MrSugarCube
- Fixed #1118: Ship functions being reported as invalid commands.

18-03-2007, Ellessar
- Added: ++/-- operators, which are in C languages.
- Fixed: RESENERGY is saved only if RESPOISON doesn't equal 0.
- Fixed: Possibility of double definition of events (sphere.ini + events +e...)

24-03-2007, Furio
- Updated: sphereCrypt.ini with 5.0.9.0 keys.
- Removed: MEMORY_GUMPRECORD to track open dialogs. It now uses an internal system.
- Updated: sphere_defs.scp
- Added: ISDIALOGOPEN $dialogId. It returns the number of the opened $dialogId 
  on the client.
- Fixed #1127: Items of the hatch can't be moved.
- Fixed #1129: GumpPicTiled don't work with dynamic origin.

24-03-2007, ShiryuX (Script pack)
- Updated: sphere_dialog.scp (Reference at top)

24-03-2007, RanXerox (Script pack)
- Updated: sphere_map_points0_ml.scp (Updated teleports)

26-03-2007, Nazghul
- Added: Teleport effect and sound config keywords for Sphere.ini.
  Setting it to 0 disables the effect. Defaults are
  TeleportEffectNPC=0372a
  TeleportEffectPlayers=0372a
  TeleportEffectStaff=03709
  TeleportSoundNPC=01fe
  TeleportSoundPlayers=01fe
  TeleportSoundStaff=01f3

27-03-2007, Vjaka
- Fixed: Allowed to cast spells without reagents.

29-03-2007, MrSugarCube
- Fixed #1122: Exception when fighting with -100 dexterity.
- Fixed #1137: Containers closing when targeting them with .x/set.

04-03-2007, MrSugarCube
- Fixed #1126: Creatures with neutral karma not spawning in guard zones.

04-03-2007, Furio
- Added: PARTY.ISSAMEPARTYOF $uid, checking if the current party is the
  same of the char with $uid.

06-04-2007, Nazghul
- Added: More defmessages
- Updated: sphere_msgs.scp

14-04-2007, Sir Dwayne (Script pack)
- Fixed: Various flaws in npc scripts and sphere_item_unsorted.

21-04-2007, coruja747 (Script pack)
- Updated: sphere_map2.scp (Corrected a_shrine_virtues area definition)

27-04-2007, Ellessar
- Added: Character trigger @TradeAccepted (+@charTradeAccepted), which is called 
  after both trade sides tick Accept Trade button. Default, ARGO - the first 
  trader, SRC - the second one, ARGN1 - the number of items the first trader gets, 
  ARGN2 - the number of items the second trader gets, REF1...REF<argn1> - 
  references to items the first trader gets. Return 1 prevents the trade.
- Fixed: CTAGs deleted before calling @LogOut

30-04-2007, MrSugarCube
- Modified #1162: A comma ',' can be used under the NOTOTITLES section to 
  optionally specify seperate titles for female characters.
- Modified: EF_MapDiff_Support has been removed, and map diffs are now enabled 
  via the USEMAPDIFFS setting in sphere.ini.

02-05-2007, MrSugarCube
- Fixed: Exception when using ACCOUNT.CHAR.x.KEY when the index 'x' does not exist.

03-05-2007, MrSugarCube
- Fixed: Server IPs on the server list being sent incorrectly to older clients.

05-05-2007, MrSugarCube
- Added: Experimental flag EF_UsePingServer. This will enable a server for 
  receiving pings from clients viewing the server list. Uses UDP port 12000.

06-05-2007, Ellessar
- Added: Missing character trigger @SpellFail (called before @Fail in a 
  SPELL section)

06-05-2007, MrSugarCube
- Fixed #1169: Exception caused by the count parameter being negative in the 
  STRSUB function.

08-05-2007, Ellessar
- Fixed: POW (@) does not work when using inside 'floatval'.

10-05-2007, MrSugarCube
- Fixed #1176: RANGE property on items returning 0 when the minimum range is 0, 
  when in this case it should return the maximum range.
- Fixed #1178: Automatic loading of backup saves not unloading all of the data 
  from the previous save.

17-05-2007, Sir Dwayne (Script pack)
- Updated: sphere_item_building_fence.scp, sphere_item_building_stairs.scp,
  sphere_item_building_walls.scp (Reordering of some fences, stairs and walls)

17-05-2007, MrSugarCube
- Fixed: SPELLFLAG_NOUNPARALYZE doing the opposite of its description.
- Fixed #1181: Casting field spells on players not giving criminal status even 
  when SPELLFLAG_HARM is set.
- Fixed #1182: Crash when opening the .edit menu on a player with too many 
  equipped items.

17-05-2007, Furio
- Added: DSPEECH prop to players. Its purpose is to intercept player speech 
  like SpeechSelf, but it allows multiple speech block (DSPEECH +spk_lol add spk_lol, 
  DSPEECH -spk_lol removes it). Return 1 on the speech block interrupt execution and 
  prevent the player from speaking, Return 4 blocks the execution while allowing the 
  player to speech.
- Added: ISDSPEECH prop to players. Its purpose is to chech if a speech block is in
  DSPEECH in a similar way of ISEVENT.

18-05-2007, MrSugarCube
- Modified #1155: The COMPONENT property of multi definitions can now be given 
  the ID of any scripted item.
  
20-05-2007, Furio
- Fixed: Trade windows not bouncing correctly some of the items.

20-05-2007, MrSugarCube
- Fixed: Sphere running slowly, due to new threading not ticking as much as 
  old threading.

22-05-2007, ShadowDragon
- Added: Support for Int and Color options to CHARDEF.

22-05-2007, Camelotten (Script pack)
- Fixed: jobvet.scp - an excessive '<' in "<SRC.SEX <Mi'Lord/Mi'Lady>".

26-05-2007, MrSugarCube
- Fixed #1194: Polymorph becoming a permanent effect during worldsaves.

27-05-2007, Nazghul
- Added: MODAR on weapons should modify the DAM effect of a weapon

28-05-2007, Furio
- Fixed #1201: DB.EXECUTE executing commands also when not connected.

29-05-2007, MrSugarCube
- Fixed #1203: Multis not being visible from a distance.

31-05-2007, Nazghul
- Fixed #1206: using character function ".gold" with negative numbers crashed 
  the server.

02-06-2007, Furio
- Fixed #1208: If modstat is negative and > ostat, all skills affected by 
  that stat become 65535.
- Fixed #1186: Starvation incorrectly damages affected player's equipment

02-06-2007, Almost all the dev team
- Fixed #1188: Incorrect save output.
- Fixed #1191: Sphere closing when using crafting skills (related to #1188).

02-06-2007, MrSugarCube
- Fixed: Unable to gain musicianship past 30%.

06-06-2007, Furio (Script Pack)
- Fixed #1213: "admin" in console (sphere_admin.scp)

08-06-2007, MrSugarCube
- Fixed #1211: FORCONTID and FORCONTTYPE not working.
- Fixed #1212: Reactive Armor causing a server crash when damaging self.

11-06-2007, MrSugarCube
- Fixed: Vendor menus on clients later than 4.0.0 not showing correctly for 
  renamed items when ACCOUNT.RESDISP is not correctly set to AOS+.

14-06-2007, Fire-Dragon-DoL
- Fixed #1220: typos in sphere_guild_functions.scp

26-06-2007, Nazghul
- Added: Character trigger @SkillChange. Fires whenever the skill raises due 
  to a gain. ARGN1 is the skill number (e.g. 43 for wrestling), ARGN2 is the 
  skill value AFTER the change happens. RETURN 1 (or 2, or 666) means that the 
  skill will NOT change.

29-06-2007, Torfo
- Added: ADDMD5. If md5 is enabled in the sphere.ini you can use ADDMD5 to 
  bypass the hashing algorithm, if MD5 isn't enabled it's the same as ADD.
  Usage: "ACCOUNT ADDMD5 name hash"

06-07-2007, Nazghul
- Fixed: RETURN 1 in region triggers @exit, @enter did not tell the client that 
  the movement was stopped what led to some weird rubberband effects. 
  (thx. to MrSugarCube for help)
- Added: Character triggers @RegionEnter, @RegionLeave. ARGO is the region in 
  question, RETURN 1 works like in region triggers @exit, @enter.

12-07-2007, Nazghul
- Fixed: #1222 MAGICF_IGNOREAR rendered armor useless even on non magic damage
- some cleanups regarding NPC accepting/rejecting items
- Added: Hungry NPC try to pick ripe crops if available
- Added: ACTP character property (like ACTDIFF, ACTARG etc.) to work with for 
  example ACTION 102
- Added: Poisoned Food (MOREz = poison strength [0..100]) will poison whoever 
  eats it; NPC might refuse eating poisoned food depending on their TasteID skill

15-07-2007, Ellessar
- Modified: Now you can get AREADEF regions from inside a multi with the help 
  of an additional "region" keyword (e.g. region.region.name).

17-07-2007, MrSugarCube
- Fixed: Multis from newer expansions not loading correctly.

17-07-2007, Admin BladeCraft (Script pack)
- Updated #1236: sphere_item_magic_weapon.scp, sphere_template.scp,
  sphere_backward_compatibility.scp (Changed misspelled defname 
  i_axe_war_VANQUISIHNG to i_axe_war_VANQ)
- Updated #1237: sphere_defs.scp (Fixed broken random templates)

18-07-2007, Nazghul
- Changed Ping Attack detection so that it only issues a warning if the "attack"
  comes from LocalAddress and/or 127.0.0.1

19-07-2007, MrSugarCube
- Added: Support for packet changes in client 6.0.1.7. With clients running
  on slower connections there may still be issues as Sphere cannot identify
  the 4th digit of the client version until after the client has logged in.
  If you want to override all 6.0.1.* clients to use the 6.0.1.7 packet
  changes (and thus correct the issue with slower connections, but at the
  same time remove support for 6.0.1.0-6 clients), find the following line
  in sphereCrypt.ini:
    0600010 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.10
  and change it to:
    0600018 02F2BA7ED 0A2817E7F ENC_TFISH // 6.00.18
- Added: FIXWEIGHT function for characters, which acts the same as FIXWEIGHT
  does on containers (recalculates the total weight of the items in their
  possession).

29-07-2007, Nazghul
- Just a fix in writing: Item tag.override_SKILL can also be written as
  tag.override.skill (as the other OVERRIDE tags)

04-08-2007, Ellessar
- Fixed #1239: Lumberjacking caused Sphere to crash, when failed.
- Fixed: ISNEARTYPETOP did not work as intented (also changes some hardcoded
  gathering related behavior.)
- Modified #1238: Sphere now tells you that you do not use SERV.MAP correctly
  and does not throw an exception.
- Fixed #1197: RANGE property was not inherited through ID property.

09-08-2007, MrSugarCube
- Fixed #1153: House placement checking a larger area than the multi region
  specifies.
- Fixed: Guards being attacked and calling new guards instead of fighting
  back properly.
- Fixed: Incorrect client version detection for client 6.0.1.10.

10-08-2007, MrSugarCube
- Fixed #753: Crafting skills no longer consume items that match the one
  you're attempting to create (unless the resources property specifically
  states that the item can be crafted from itself).
- Fixed #1138: Scripts could be loaded multiple times if the file extension
  was not provided.

10-08-2007, MrSugarCube
- Added: Support for AOS Custom Housing through a new item type 't_multi_custom'.
 > See the sphere_item_multis_foundations.scp and add-on/House_Placement
   scripts for examples of it's use.
 > Custom houses (t_multi_custom) will be saved to a new save file named
   spheremultis.scp.
 > Note that Sphere will require access to doors.txt, misc.txt, floors.txt,
   teleprts.txt, roof.txt, and  walls.txt from the UO folder as these provide
   lists of valid items. Also, all these items should exist in scripts for them
   to be added to a building - note that the default script pack is currently
   missing several sets of floors and walls.
 > New functions and properties have been added that can be used with items of
   the type t_multi_custom. These are:
   -- References --
    "DESIGNER"            The player currently designing the building.
   -- Properties --
    "COMPONENTS"   (r)    The number of components in the building design.
    "FIXTURES"     (r)    The number of fixtures in the building design (doors
                          and teleporters/t_door and t_telepad).
    "DESIGN.x.KEY" (r)    Accesses component x in the building design and
                          returns the given property. Possible properties are:
                            ID: The ID of the component.
                            DX: The x offset of the component.
                            DY: The y offset of the component.
                            DZ: The z offset of the component.
                            D:  The x,y,z offset of the component.
                            FIXTURE:  Returns 1 if the component is a fixture.
    "DESIGNER"     (r)    The uid of the player designing the building (or 0).
    "EDITAREA"     (r)    The editable range of coordinates when in design
                          mode (TopLeftX,TopLeftY,BottomRightX,BottomRightY).
    "REVISION"     (r)    The revision number of the building design.
   -- Functions --
    "ADDITEM id,x,y,z"    Adds an item to the building design (see COMMIT).
    "ADDMULTI id,x,y,z"   Adds a multi to the building design (see COMMIT).
    "CLEAR"               Wipes the building of all components (see COMMIT).
    "COMMIT"              Commits changes made to the building design.
    "CUSTOMIZE [uid]"     Enters the given player (or SRC) into design mode.
    "ENDCUSTOMIZE"        Forces the player to exit design mode.
    "REMOVEITEM id,x,y,z" Removes an item from the building design (see
                          COMMIT). If the given id is 0 then any items found
                          at the location will be removed.
    "RESET"               Resets the building to it's default state (see
                          COMMIT).
    "RESYNC [uid]"        Resends the building structure to the given player
                          (or SRC)
 > Players also have some new house design-related properties and triggers.
   These are:
   -- References --
     "HOUSEDESIGN"        The building this player is currently designing.
   -- Properties --
    "HOUSEDESIGN"(r)      The uid of the building this player is designing (or
                          0).
   -- Triggers --
    @HouseDesignCommit    Called on a character when they commit a new design.
                            ARGN1:    Number of components in the old design.
                            ARGN2:    Number of components in the new design.
                            ARGN3:    The revision number of the new design.
                            ARGO:     The building being designed.
                            LOCAL.FIXTURES.OLD:    Number of fixtures in the
                                                   old design.
                            LOCAL.FIXTURES.NEW:    Number of fixtures in the
                                                   new design.
                            RETURN 1: Block the commit.
    @HouseDesignExit      Called on a character when they exit design mode.
                            ARGN1:    Is set to 1 if the character being forced
                                      out of house design mode (ie. they're
                                      logging out).
                            ARGO:     The building being designed.
                            RETURN 1: Keeps the client in design mode (if ARGN1
                                      was 0).

10-08-2007, MrSugarCube (Script pack)
- Updated: sphere_defs.scp (Updated type defnames)
- Updated: sphere_item_building_walls.scp (Split i_wall_stone_4's DUPELIST into
  different defnames for different wall heights)
- Updated: sphere_item_ground_tiles.scp (Added a few missing water tiles and split the
  waterfall DUPELIST into different defnames for different waterfall heights)
- Updated: sphere_item_profession_alchemist_mage.scp (Set the types of i_rune_alchem_*
  items to t_telepad)
- Added: sphere_item_multis_foundations.scp (Added foundation multi definitions)
- Added: sphere_item_multis_stairs.scp (Added stair multi definitions)
- Added: sphere_item_building_roofs_aos.scp (Added AOS roof definitions)
- Added: sphere_item_building_roofs_ml.scp (Added ML roof definitions)
- Added: sphere_item_building_stairs_ml.scp (Added ML stair definitions)
- Added: add-on/House_Placement.zip (Added a sample script that allows custom houses
  to be design by players)

14-08-2007, Nazghul
- Modified: sphere_defs.scp, added DEATHFLAG_HASCORPSE (010) to deathflags. If set on
  a character like water elemental it will leave a corpse. Caveat: If DEATHFLAG_NOCORPSE
  and DEATHFLAG_HASCORPSE are set, the NOCORPSE takes precedence!

17-08-2007, Nazghul
- Added: Item CAN flag CAN_I_BLOCKLOS (see sphere_defs.scp). Works only if
  INI option AdvancedLOS is != 0.

18-08-2007, Nazghul
- Added: Spellflags TARG_NO_PLAYER and TARG_NO_NPC
- Updated: sphere_msgs.scp and sphere_defs.scp 

19-08-2007, MrSugarCube
- Fixed #1242: TAT_AS_ARGO Triggers not working with hexadecimal uids.
- Fixed #1243: MODAR on weapons not showing the correct minimum damage on the
  status window and tooltips.
- Fixed #1244: TAGAT.x.KEY and TAGAT.x.VAL returning the opposite properties.

21-08-2007, MrSugarCube
- Fixed #1246: Exception caused by using EQUIPWEAPON function on a character
  with no backpack.
- Fixed #1247: NPCs not moving closer to their targets when they're using a
  bow with a shorter range than the ini's archery range settings.

25-08-2007, Beyonder (Script pack)
- Fixed #815: sphere_item_resources.scp (i_blood_2 not decaying: Changed the
  definition so that i_blood_2 now has a weight)

30-08-2007, MrSugarCube
- Fixed #1248: Incorrect container weight shown on tooltips.

04-09-2007, coruja747 (Script pack)
- Updated #1251: sphere_map_points2.scp (Missing teleports in Wisp Dungeon)

05-09-2007, Furio
- Fixed #1254: Console error when guild member delete char.
- Fixed: Login relay problems from localhost.
- Added #1260: "Setup_Start acct" with IP on the same LOG line.
- Added #1261: Incognito names in kill logs.
- Added: CLEARCTAGS (working like cleartags for ctags).

06-09-2007, MrSugarCube
- Fixed: "GetMapBlock failed at x" errors when logging in or placing a multi
  over the edge of the map.

07-09-2007, Ellessar
- Fixed #1252: FloatVal not behaving correctly with negative numbers.
- Updated: sphere_msgs.scp (added login_lastlogged key)

08-09-2007, MrSugarCube
- Fixed: Character creation allowed whilst another character is still idling
  in the world.

11-09-2007, MrSugarCube
- Fixed #1256: Ship plank exit allowing players to pass over blocked paths,
  such as walls or fences.
- Modified: Added more "Bad Login x" codes along with expanded descriptions
  to assist in identifying login issues.

16-09-2007, coruja747 (Script pack)
- Fixed #1258: ctags will be cleared when leaving admin menu

16-09-2007, nazghul
- Fixed #1257: Custom damage type didn´t work with COMBAT_USE_RESISTANCE

22-09-2007, nazghul
- Added: TAG.OVERRIDE.RANGE on items and/or characters overriding the RANGE 
  property of the itemdef/chardef.

30-09-2007, nazghul
- Fixed: not-working tag override of SkillPracticeMax what may have caused 
  problems with Linux builds. Now TAG.OVERRIDE.PRACTICEMAX.SKILL_# 
  (with "#" == "40" for swordsmanship, "42" for fencing, etc.) on a training 
  dummy can override the INI default upto what skill value one can practice 
  with it.

02-10-2007, coruja747 (Script pack)
- Updated #1224: sphere_admin.scp (Added char updates when modifying flags)

03-10-2007, MrSugarCube
- Fixed #1269: Fixed house design commit issues on alternate maps.
- Fixed #1270: Fixed ISEVENT not working on regions.

04-10-2007, MrSugarCube
- Fixed: House components being affected by OF_OSIMultiSight.
- Fixed: DESIGN.x.KEY not working on custom housing.

06-10-2007, Fire-Dragon-Dol (Script pack)
- Updated #1274: sphere_map2.scp (Removed reference to non-existant resource)

15-10-2007, MrSugarCube
- Added #1283: FEATURE_ML_NINTHAGE feature flag in sphere.ini. Setting this
  enables the crystal and shadow components in custom houses.
- Fixed #1281: Unable to disembark ships on west-facing planks.
- Fixed #1278: Unable to craft crafting tools.

17-10-2007, Nazghul
- Changed: Behaviour of TAG.OVERRIDE.RANGE. Now the largest TAG value (on weapon 
  and/or char) takes precedence over the other.

18-10-2007, Nazghul
- Added: TAG.OVERRIDE.TRAINSKILLMAX and TAG.OVERRIDE.TRAINSKILLMAXPERCENT
  overriding the respective defaults from Sphere.INI based on an individual
  trainer (NPC).

19-10-2007, MrSugarCube
- Fixed #1293: Checkbox positions in dialogs not working with dorigin.
- Fixed #1292: House designer not working with RESDISP less than 3, a minimum
  client version of 4.0.0 is still required though.
- Fixed #511: Character spawn tooltip modified to avoid bad token ID messages
  with characters using random names (#NAMES_xxx).
- Fixed: Quest and Guild buttons on the paperdoll not working with RESDISP less
  than 3.

20-10-2007, MrSugarCube
- Fixed #1295: Radio positions in dialogs not working with dorigin.
- Modified: MAXCHARSPERACCOUNT limit has been raised to 7. Note that the client
  must support extra character slot(s) for them to be visible at the character
  selection menu, older clients can only display 5 or 6.
- Added: MAXCHARS property to accounts. Setting it to 0 will link it to
  MAXCHARSPERACCOUNT in the ini (default behaviour).

21-10-2007, MrSugarCube
- Fixed #1297: No resources lost when failing to craft.

26-10-2007, MrSugarCube
- Fixed #1304: Being able to light kindling whilst it is being dragged.
- Fixed #1300: Polymorphing whilst incognito'ed not updating the character's
  name correctly with creatures using random names (#NAMES_xxx).
- Fixed: Various means of removing game board pieces from their game boards.
- Modified #1303: ISTEVENT now works on items, exactly the same as it does with
  characters.

30-10-2007, MrSugarCube
- Fixed #1306: NPCs accepting every item given to them.
- Fixed #1298: Infinite loop caused by combat between two characters with the
  statf_reactive flag set and the reflected damage being greater than the
  original damage.

30-10-2007, Furio
- Fixed #1307: MySQL client running out of memory.

24-11-2007, Furio
- Fixed #1294: Error with the third parameter of "spelleffect". Now the third
  parameter refer to the current source if is -1. 
- Fixed #1318: Owned NPC's names and NPC's vendors commands.
- Fixed #1330: Problems with client and accounts with 16 characters.
- Fixed #1345: Clear Party TAG's.
- Added: Support for login protocol in 6.0.5.0+ clients.
- Added #1329: Max dist to park boats (see sphere.ini MaxShipPlankTeleport).
- Added #1296: "trigger" function returning the values returned by @CustomTrigger.

25-11-2007, MrSugarCube
- Fixed #1284: Multi regions being overlapped by area regions when map files are
  resynced.
- Fixed: Mount items are now adjusted using the RES* settings on the ride
  itself, to display themselves appropriately to lower RESDISP clients.

25-11-2007, Elric (Script pack)
- Updated: sphere_item_aos_se.scp (Removed duplicate item definitions)
- Updated: sphere_item_building_walls_se.scp (Removed duplicate item
  definitions)
- Updated: sphere_item_misc_se.scp (Removed duplicate item definitions)
- Updated: sphere_item_ml_floor_wall.scp (Removed duplicate item definition)
- Updated: sphere_item_provisions_armor_ml.scp (Corrected Vulture Helm item
  definition)
- Updated: sphere_item_unsorted.scp (Removed duplicate item definitions)

27-11-2007, MrSugarCube
- Fixed #1323: Criminal status for attacking dead players.
- Fixed #1250: Exception with region triggers.
- Fixed #1017: Magery skill being used for all spells. Now the first skill listed
  in the spell's SKILLREQ line will be the action used when casting. Note that
  unexpected things will happen if you've set this to be a non-magic skill (for
  example, Begging), so make sure the SKF_MAGIC flag is set on such skills.
  
14-12-2007, coruja747 (Script pack)
- Updated: sphere_item_building_walls_se.scp (Missing item 02753)
- Updated: sphere_item_deco_evilitem.scp (Incorrect dupeitem on itemdef 02a59)
- Updated: sphere_item_christimas.scp (Incorrect RESDISPx settings on i_Sleigh)
- Updated: sphere_map_points2.scp (Inaccessible teleports on Exodus Dungeon)

21-12-2007, MrSugarCube
- Modified: Ships now move 2 spaces at a time instead of 1. This reduces a lot
  of lag caused by ship movement and also fixes overhead messages disappearing
  whilst the ship is in motion.
- Added: SHIPSPEED property to ship ITEMDEFs. This controls how often and how far
  the ship will move. SHIPSPEED.PERIOD and SHIPSPEED.TILES can be used to return
  the separate values. Usage:
    "SHIPSPEED=5,3"     Ship will move 3 tiles every half a second.
    "SHIPSPEED=1,5"     Ship will move 5 tiles every tenth of a second.
    "SHIPSPEED=20,2"    Ship will move 2 tiles every 2 seconds.
  Note 1: If there is less space available than specified by SHIPSPEED.TILES,
  the ship will still move as far as possible before stopping (so if a ship is
  set to move 10 tiles and is heading towards a coast that is 16 tiles away, the
  ship will move 10 tiles, then 6 tiles, and then stop.
  Note 2: TAG.OVERRIDE.SHIPSPEED.PERIOD and TAG.OVERRIDE.SHIPSPEED.TILES can also
  be set on the ships themselves to override their speed on an individual basis.

22-12-2007, Nazghul
- Added: Triggers @NPCAction and @NPCSpecialAction
  @NPCSpecialAction
  If the NPC has a lot of spare time (i.e., nothing else to do) it
  looks for some special action. For example, giant spiders lay webs,
  and fire elems leave fire patches. This trigger fires on ANY type
  of creature. If you return 1, it will not do it's special action,
  on return 0 it will (what, as said above, will only be true with
  giant spiders and fire elems; you can script other NPC special
  events yourself).

  @NPCAction
  AI-related trigger. If the situation is so the NPC will do something
  due to it's AI - things like animals pooping the ground, vendors
  going off/on duty, (un)equipping a lightsource when it's dark, 
  (un)equipping a weapon when fighting, stabler feeding animals or
  giving players food for their animals etc. - (once hardcoded behaviour
  was planned also for beggars who should sleep at night, for thieves,
  undead mages, healers, and more, but never realized. Now you can script
  this yourself) this trigger will be fired. On RETURN 0 
  the NPC will continue with what it wants to do, RETURN 1 will abort it.

  Both triggers will fire only if EF_NPCAct_Triggers is SET and 
  EF_Minimize_Triggers is NOT SET in the sphere.INI. SO if you don't
  change your INI, everything will stay as it was before.

22-12-2007, MrSugarCube
- Fixed #1341: Arguments not being parsed correctly for commands entered
  on the console.
- Fixed #1331: Script verbs not being parsed correctly when there is a
  space in them (ie. TAG.xxx_<EVAL yyy> = zzz).

04-01-2008, Nazghul
- Added: Triggers @Mount and @Dismount, both are character trigger, firing 
	when a character tries to mount/dismout it's ride (and will be able to).
  @DISMOUNT
    ARGO is the UID of the (still disconnected!) pet.
    RETURN 1 stops the dismount process.
  @MOUNT
    ARGO is the UID of the NPC bound to be ridden.
    RETURN 1 stops the mounting process.

19-01-2008, MrSugarCube
- Fixed #1351: Gaining tactics when fighting players in no-pvp regions.
- Fixed #1337: Foundations of custom housing deletable by players.
- Fixed #1132: Maps other than #0 not showing up when logging in.
- Added #1003: ACTPRV property to characters. This is used in some skills, 
  for example with magery to hold the source of the spell (character, wand, 
  scroll, etc).
- Fixed: CALL not working with object references. (eg. "CALL src.myfunction")
- Fixed: ++/-- in scripts being parsed as +=1 when not being used as operators.

19-01-2008, MrSugarCube (Script pack)
- Updated #1360: sphere_admin.scp (Fixed blank client list when using .admin twice)
- Updated: sphere_backward_compatibility.scp (Added NpcCast function, which can be 
  used to make a character start casting a spell)

19-01-2008, Furio
- Fixed #1324: Undefined Symbols on attacker when accessing a bad attacker #
- Fixed: isneartype not searching through all statics.
- Updated: sphere.ini with missing values.
- Added #1358: now serv.newitem has a 4th argument if set to 1 trigger @Equip will
  be called upon item equipping.
- Added: SERV.MAPLIST.$mapid.$prop to cycle through maps to get props. The list of
  properties that can be accessed (read only) are:
  BOUND.X = maximum x for the map
	BOUND.Y = maximum y for the map
	CENTER.X = x coord of map center
  CENTER.Y = y coord of map center
	SECTOR.SIZE = size of sectors
	SECTOR.ROWS = qty of sector rows for the map
  SECTOR.COLS = qty of sector columns for the map
  SECTOR.QTY = total number of sectors for the map
- Added: FeatureKR and Kr reslevel (6). Guess what they do (it's a wip).
- Added: EF_UseNetworkMulti (00800000) to experimental flags. Tired of crashing due
  too many items/npcs, try it. Don't change it while the server is running.
  (Thx to Z. for the windows version)

21-01-2008, MrSugarCube
- Fixed #1311: NPC Pathfinding failing when EF_DiagonalWalkCheck is enabled.
- Added #738: Combat flag COMBAT_STAYINRANGE. Causes out-of-range attacks to fail
  at the end of the swing instead of waiting until the target is in range.
- Added: WEATHER property to sectors, sets or gets the current weather.

22-01-2008, MrSugarCube (Script pack)
- Updated #1107: sphere_genericstone_functions.scp (added function to control or 
  override ally status between guilds (f_stonesys_internal_isalliedwith), see
  comments for details)

24-01-2008, MrSugarCube
- Fixed #1363: Players unable to pick up single items from heavy stacks.

31-01-2008, Nazghul
- Fixed #989: Fame-titles will not be shown on NPC anymore if INI option NPCNoFameTitle
  is set.

31-01-2008, MrSugarCube
- Fixed #1372: EF_NewPositionChecks causing fishing to fail from boats when
  AdvancedLos is disabled.
- Fixed: ADVANCEDLOS_PLAYER enabling AdvancedLos for all characters including
  NPCs (ADVANCEDLOS_NPC being ignored).

02-02-2008, Furio
- Added DIALOGLIST keyword. DIALOGLIST.COUNT gives the number of open gump dialogs,
  DIALOGLIST.$x.ID ($x = a number between 0 and DIALOGLIST.COUNT-1) the ID of the
  respective gump dialog, and DIALOGLIST.$x.COUNT the number of active instances of
  this dialog. So to close a specified gump, DIALOGCLOSE <DIALOGLIST.$n.ID> should do.
- Added KRTOOLBARSTATUS (prop/verb) and @UserKRToolbar (ARGN1 type, ARGN2 arg) to
  interact with the hotbar in the KR client.

03-02-2008, Shadow Dragon
- added @KarmaChange, @FameChange. Called when Karma/Fame adjusting.
  ARGN1 = Karma/Fame modifier, it's writable.
  return 0 will use Argn1 value in adjusting.
  return 1 will break adjusting.
  return 2 will ignore Argn1 and continue default adjusting.
  Both triggers work only when EF_Minimize_Triggers isn't set.

07-02-2008, MrSugarCube
- Fixed #718: Ships unable to travel over static water tiles.
- Fixed #1378: Armour rating being factored in twice during damage calculations.

11-02-2008, MrSugarCube
- Fixed #1406: Newly created characters not starting with the MALE_DEFAULT / FEMALE_DEFAULT
  newbie templates.
- Fixed: Exception caused by using ARGO.Verb when argo is not set.
- Modified: "Vendor uid=xxx selling unmovable item" message no longer shown when
  listing the items that a player can sell to a vendor.

27-04-2008, MrSugarCube
- Fixed #1404: Restoring custom house design without first making a backup allowing players
  to remove the entire house foundation.
- Fixed #1398: Lightning spells causing @EnvironChange to be called on nearby characters.
- Fixed #1381: Maps with non-matching courses plotted can be stacked.
- Modified #1389: Character list to show filled character slots that are over the account's
  limit (eg. account containing 7 characters shows all 7 even when the limit is 5 ,assuming
  the client is capable of displaying all 7).

27-04-2008, coruja747 (Script pack)
- Updated #1402: sphere_item_building_walls_se.scp (Fixed empty dupelist property)

27-04-2008, Mordaunt (Script pack)
- Updated: sphere_item_multis_foundations.scp (Added the remaining house foundation sizes)

28-04-2008, MrSugarCube
- Fixed #1394: Advanced pathfinding (NPC_AI_PATH) allowing NPCs to make invalid movements
  (for example walking whilst paralyzed). Some other adjustments have also been made,
  allowing NPCs to properly assess characters that may be blocking the way (to walk around
  them), negotiate corners with EF_DiagonalWalkCheck enabled, and attempt to compensate
  when new obstacles block a previously valid path.
- Fixed #1390: Locals not working in SKILLMENUs.

28-04-2008, coruja747 (Script pack)
- Updated #1392: spherechar_new_mounts.scp, spherechar_mondains_legacy.scp (Updated
  RESDISPDNHUE property on rides)

02-05-2008, MrSugarCube
- Fixed #1348: Problem where <SERV.ResourceType.Id> returns 1 when the id is a different
  resource type (e.g. <SERV.TEMPLATE.i_dagger> (dagger being an item not a template)).

15-05-2008, Shadow Dragon
- Added LAYER_AUCTION that can contain container on character for script purposes, like
  auction system.

19-05-2008, Shadow Dragon
- Modified: GOLD property adds new gold stacks to bankbox.

21-05-2008, Nazghul 
- Added: Combat flags to Sphere.ini to allow stacking armor and aimed hits. Example of usage
  is in scripts/AddOns. 
  Aimed hits are controlled by tags on the "hitter": TAG.HITPREFERENCE holds the targetted
  zone: 1=head, 2=neck/throat, 3=back, 4=chest, 5=arms, 6=hands, 7=legs, 8=feet (if the value
  is out of this range it will be changed by %9; "0" means: no preference set);
  TAG.HITPREFERENCE_CHANCE (0..1000) is the chance to really hit the desired area;
  TAG.HITPREFERENCE.BONUS is the percent the damage is raised when hit where desired,
  TAG.HITPREFERENCE.PENALTY is the percent the damage is lowered if the area was missed.
  The last two values are defaulting to "30".
  The system is perhaps useful to script a system where a player can look for weak armored
  bodyparts of his opponent and try to hit him there; could be essential if armor stacking
  is used.

23-05-2008, MrSugarCube
- Fixed #1418: Tracking being used to reveal the location of invisible staff members.
- Fixed #1417: Unable to access account properties using [SERV.]ACCOUNT.x.KEY where account
  x begins with a number.
- Fixed: Characters "drifting to shore" when logging in on a ship.
- Fixed: Variety of exceptions caused when items are being set to type t_eq_memory_obj after
  after creation.
- Modified: RESTOCK function on vendors now accepts a parameter to specify whether or not
  new stock should be spawned immediately (0=empty existing stock (default), 1=empty stock
  and spawn next set).

26-05-2008, MrSugarCube
- Fixed: Code not being skipped properly when incorrect loop syntax is used.
- Modified: @UserVirtue trigger now has 2 arguments:
   ARGO  = The character whose virtue button has been pressed
   ARGN1 = The button ID pressed (1=virtue button (on paperdoll), 105-112=icons within the
           menu)
           Note: Clients only specify the character they're viewing (ARGO) when pressing the
           paperdoll button (ARGN1=1)
- Added: @UserVirtueInvoke trigger, called when a virtue is invoked through client macros.
   ARGN1 = The virtue ID (1=Honor, 2=Sacrifice, 3=Valor)

27-05-2008, MrSugarCube
- Modified: ARGN2 in @SkillChange trigger is now writeable.

27-05-2008, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Added 2 more "tracking_*" defmessages)

25-06-2008, MrSugarCube
- Modified: Installing Sphere as a Windows service (using "-k install" with NTService=1) will
  now configure the service with an automatic restart configuration.

02-07-2008, MrSugarCube
- Fixed #1439: NPC_AI_MOVEOBSTACLES allowing NPCs to move items whilst paralyzed.
- Added #850: @SpellSuccess trigger, fires on the caster just before the @Success trigger is
  fired on spell blocks.

04-07-2008, MrSugarCube
- Fixed #1177: Client command parsing using brackets as argument separators.
- Fixed #1097: Possible infinite loop involving circular ownership (e.g. two characters set as
  owners of each other).

04-07-2008, MrSugarCube (Script pack)
- Updated #1443: sphere_guild_dlg_charlist.scp, sphere_guild_promptconsole.scp,
  sphere_town_dlg_charlist.scp, sphere_town_promptconsole.scp (Fixed guild and town stones
  using TITLE property instead of GUILDTITLE)

04-07-2008, Nazghul
- Added: skilltitles "Elder" and "Legendary"

05-07-2008, MrSugarCube (Script pack)
- Updated #1130: sphere_msgs.scp (Removed tracking_dis* defmessages and replaced them with
  simpler tracking_result* defmessages)

06-07-2008, Nazghul
- Added: SPELLFLAG_NOPRECAST what disbles PRECASTING on a per-spell-base.
  Only valid if PRECAST is activated by Sphere.ini

08-07-2008, MrSugarCube
- Fixed #1446: GM/MT_FLY enabled characters walking through stairs when EF_WalkCheck is not
  enabled. [Note: Due to potentially negative side-effects of this fix a temporary EF flag
  (EF_NoWalkingThroughStairsFix) has been added to sphere.ini which disables the fix just in
  case something bad happens (if no issues are reported that are caused by this fix then you
  can expect it to disappear very soon)]

10-07-2008, MrSugarCube
- Fixed ##3: Unstackable items becoming stacked after being bought off a player-owned vendor,
  when the buyer cannot carry the items.
- Fixed ##2: NPC_AI_FOOD causing NPCs to get stuck whilst they attempt to eat grass from a
  tile where grass has already been eaten from recently.

13-07-2008, Beyonder
- Fixed ##1: Sphere crashes with Experimental Flag UseNetworkMulti.
- Added: LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE to @SpellSuccess and @Success
  triggers.
  LOCAL.FIELDWIDTH sets the width of the field from character point of view.
  LOCAL.FIELDGAUGE sets the thickness of the field.
- Fixed #1449: Damage spells backfire when selecting summon while casting.

15-07-2008, Beyonder
- Added: Extra local arguments to @SkillStart and @Start (skill section) triggers for crafting 
  skills:
  LOCAL.CRAFTITEMDEF - the UID of defname of the item we are currently crafting. Readable/Writable.
  Accepts ONLY UIDs of ITEMDEFs, for example:
	if (<LOCAL.CRAFTITEMDEF> == <DEF.i_katana>)
		LOCAL.CRAFTITEMDEF = <DEF.i_sword_long>
	endif
  LOCAL.CRAFTSTROKECNT - amount of strokes character makes while creating the item. Each stroke 
  has DELAY specified in SKILL section. Readable/Writable.
  LOCAL.CRAFTAMOUNT - amount of items that will be created. Only usable for REPLICATable items,
  otherwise will make no effect. Readable/Writable.
- Modified: @Destroy on items and characters is triggered before deletion, not after. This way
  all of the item/character properties are fully accessible.
  "return 1" forbids deletion. WARNING! putting return 1 in this trigger means it won't be deleted
  in any possible way! Use it with caution.

15-07-2008, MrSugarCube
- Fixed: World saves being aborted when they are taking a long time to complete.

20-07-2008, MrSugarCube
- Fixed #1459: Weather effects not being updated when walking in/outdoors.
- Fixed #1458: ARGV[x] not being updated when ARGS is set to a new value.

20-07-2008, Coruja (Script pack)
- Updated #1457: sphere_items_multis_houses_ships.scp (Corrected sign height and door type for the
  stone and marble shops)
- Updated #1456: spherechar_new_mounts.scp (Added FOODTYPE for c_giant_beetle)

24-07-2008, Coruja (Script pack)
- Updated #1465: sphere_spells.scp (Wrong spellflag for MARK spell)

02-08-2008, MrSugarCube
- Fixed #1475: Undefined keyword error when using 'REGION.ALLCLIENTS' in a region with no clients.

08-08-2008, MrSugarCube
- Fixed #1479: Custom layer values not being restored correctly when loading from world save.
- Fixed #1470: Entering house customization with open dialogs causing the sphere to lose track of
  which dialogs are still open on the client.
- Fixed #1468: Exiting house customization mode sending characters to the house sign's height
  instead of ground level.

09-08-2008, MrSugarCube
- Fixed #1476: Players under the incognito spell being unable to read other players' profile
  scrolls.
- Fixed #1033: Mass Curse spell not affecting character stats.
- Modified #963: ARGN1 in @[item]DropOn_Ground can now be used to read/write the decay time (in
  tenths of a second) that will be set on the dropped item.

10-08-2008, Coruja (Script pack)
- Updated #1486: sphere_map_points4.scp (Added teleports for Yomotsu Mines and Fan Dancer's Dojo)
- Updated #1485: sphere_map3.scp (Added missing Malas locations)
- Updated #1480: sphere_map_points0.scp, sphere_map_points1.scp (Incorrect teleports for Ice
  Dungeon)

11-08-2008, MrSugarCube
- Fixed #1483: Issues with trying to load scripts from directories outside of where the Sphere
  executable is located.

12-08-2008, MrSugarCube
- Fixed #1489: Longer ships being able to manoeuvre themselves into invalid positions.

13-08-2008, MrSugarCube
- Fixed #1490: Formatting error when showing murderer/criminal title on the paperdoll.

14-08-2008, MrSugarCube
- Fixed #1484: Client showing the wrong season and light level upon login.

16-08-2008, Nazghul
- Added: Character Trigger @UserQuestArrowClick what fires if the user clicks on the quest arrow.
  No RETURN value checks, ARGN1 is the mouse button used (0=left, 1=right). Trigger works only
  with EF_MinimizeTriggers disabled.

22-08-2008, MrSugarCube
- Fixed #1496: Female NotoTitles not always being shown on the paperdoll.

25-08-2008, MrSugarCube
- Fixed: @Dismount trigger being fired multiple times under certain circumstances.

26-08-2008, Shadow Dragon
- Fixed: Skills doesn't gain when lower than 1.8
- Added: New trigger @AfterClick and @ItemAfterClick. LOCAL.ClickMsgText will contain text, that
  will be shown after click on object, LOCAL.ClickMsgHue will contain color of the message. Both
  locals are writable. RETURN 1 - will cancel showing text. Requires EF_New_Triggers to be
  enabled.
- Fixed: Mounts removing when world save (error: Ridden NPC without a mount item).

31-08-2008, MrSugarCube
- Added #1507: REVERT function to custom housing (t_multi_custom), calling this will clear any
  uncommitted changes that have been made to the building design.

03-09-2008, Nazghul
- Added #1504: Optional second parameter "amount" to MAKEITEM. Please understand that the
  "additional" items crafted will neither fire any trigger, nor give experience or skill. So,
  from that point of view there's no difference between "MAKEITEM i_dagger" and "MAKEITEM i_dagger,10"
  (except for the number of daggers created). If the resources you have are insufficiant for
  the amount, it will be shortened respectively.

08-09-2008, MrSugarCube
- Fixed #1514: Players and NPCs unable to cast spells.
- Fixed #1508: Dropped items stacking regardless of their difference in height.

09-09-2008, MrSugarCube
- Fixed #1516: NPCs unable to use pathfinding when trying to follow or walk up to another character.

13-09-2008, MrSugarCube
- Added: BASECOMPONENT property to multis. Usage is similar to COMPONENT except it returns
  information for the components specified in the mul files, and when accessing
  individual components (BASECOMPONENT.n.[ID/DX/DY/DZ/D] there is an additional "VISIBLE"
  property which returns 0 if the component is invisible (usually applies to doors and signs).

16-09-2008, Nazghul
- Added: Override Tags for item/action related sound.
  TAG.OVERRIDE.DOORSOUND_CLOSE / TAG.OVERRIDE.DOORSOUND_OPEN 
    (what it does should be obvious)
  TAG.OVERRIDE.PORTCULISSOUND - holds an sfx number played when 
    opening/closing a portculis
  TAG.OVERRIDE.DROPSOUND - sfx an items makes when dropped. Att:
    system default sounds sometimes change due to the amount dropped
    (gold, ingots), or on what surface/item the item is dropped. All
    this will be overridden!
  TAG.OVERRIDE.SOUND_HIT - on weapons holds the sound when it hits,
    regardless of WHAT it hits!
  TAG.OVERRIDE.SOUND_MISS - on weapons, sound they make when missing

  all TAGs need to hold a number (defname MAY be possible -> test!),
  what also can be "0" (zero) with the meaning: don't play any sound.

17-09-2008, Nazghul
- Added: Trigger @PICKUP_STACK what fires only if an item was picked up from a pile.
  ARGO is the remaining part of the stack. (There's a char trigger itemPICKUP_STACK
  also)

18-09-2008, Nazghul
- Added: TAG.OVERRIDE.RUNNINGPENALTY and TAG.OVERRIDE.STAMINALOSSATWEIGHT to
  override the respective INI settings on a per character base

28-09-2008, Shadow Dragon
- Fixed: Sphere crashing when injection tries to add one item to another non-container item
  (errors in injection script and so).

26-10-2008, MrSugarCube
- Fixed #1540: Server crash when invalid parameters are passed into RTIME.FORMAT.
- Fixed #1539: Infinite loop caused by "back" options on SKILLMENUs leading to a server crash.
- Fixed #1538: Possibility of quickly gaining arms lore skill through repairing, by repeatedly
  attempting to repair an item that cannot be repaired.
- Fixed #1518: Possibility of world save notification not being broadcasted.
- Fixed #1510: IsNum not working with negative numbers.
- Fixed #1158: Possibility of the statf_fly flag not being removed from players who have been stood
  still for some time.
- Fixed: "You can't think of a way to use that item." when failing to repair an item.
- Modified: EVENTSPLAYER, EVENTSPET and EVENTSREGION settings now accept a comma-delimited list of
  events.

26-10-2008, MrSugarCube (Script pack)
- Updated #1535: sphere_defs.scp (Corrected sounds for snd_rune_beetle through to snd_hiryu)

02-11-2008, MrSugarCube
- Added #1499: CanUndressPets setting to sphere.ini. Setting this to 1 will enable players to
  take equipment from their pets' paperdolls.

29-11-2008, MrSugarCube
- Fixed #1553: Repairing an item does not update its tooltip.
- Modified: IsNearType (including IsNearType.P) now accepts a third parameter, which when set to 1
  will cause the function to include multi components in the search.
- Added: New mt_mount flag (00400) which will allow character bodies to become capable of mounting
  rides. Note that this flag is not required for the bodies that could already mount rides prior
  to this flag's existence (c_man/c_woman/c_man_gm/c_elf_man/c_elf_woman). Also be aware that not
  all character bodies are intended to be used for mounting rides and won't have proper riding
  animations.

29-11-2008, MrSugarCube (Script pack)
- Updated: sphere_defs.scp (Added mt_mount to the can_flags defname section)

05-12-2008, MrSugarCube
- Fixed: Server crash caused by exceedingly large dialogs being sent to clients.

06-12-2008, jeem (Script pack)
- Updated #1555: sphere_guild_dlg_charlist.scp, sphere_town_dlg_charlist.scp (Fixed script error
  when showing guild member titles)

07-12-2008, MrSugarCube
- Added #1086: Skill degradation for skills that have been set to decrease. @SkillChange trigger
  is called for decaying skills just as it does when they gain (compare <ARGN2> to <<ARGN1>> to
  determine if the skill is being increased or lowered).
- Added: Experimental flag EF_UseNetworkMultiVersionMod. This modifies the behaviour of the
  EF_UseNetworkMulti flag (don't forget to set this too) so that clients older than 4.0.0 will
  be unaffected and continue to use the original networking code as if the EF_UseNetworkMulti
  flag was never set.

03-01-2009, Dwayne1988 (Script pack)
- Updated: spherechar_human.scp, spherechar_evil.scp (Axis Tags were messed up, came after
  @NPCRESTOCK _and_ had a leading TAB so Axis won't find them)

24-01-2009, MrSugarCube
- Fixed #1572: Exception on Linux builds when mounting a horse.
- Fixed #1569: @UserWarmode trigger not being fired.
- Fixed #1568: Default webpage paths in Sphere.ini not valid for Linux.
- Fixed #1532: Added log message to indicate the account name being referred to when an account
  is already in use, blocked, or cannot log in due to CLIENTMAX setting.

28-01-2009, Shadow Dragon
- Added: SERV.RTicks for reading purposes. Returns real system time in ticks as unsigned value (0..4294967295).
- Added: UVAL, which works like EVAL, but for unsigned values.

01-02-2009, Shadow Dragon
- Added: Basic LIST support.
  LIST.xxx to show elements in list. Also, can be used like LIST.xxx=value to clear list and add a value
  LIST.xxx.ADD to add new element to list, can be number or string
  LIST.xxx.CLEAR to clear list
  LIST.xxx.index to read/write value on element in list
  LIST.xxx.COUNT to get count of elements in list
  LIST.xxx.index.REMOVE to remove element at specified index in list
  LIST.xxx.index.INSERT to insert element at specified index in list
  LIST.xxx.FINDELEM search_value returns index of first found element in list. Search starting from begin
  LIST.xxx.index.FINDELEM search_value returns index of first found element in list. Search starting from index
  SERV.PRINTLISTS to print all lists and their elements
  SERV.CLEARLISTS to clear all lists. If used with mask parameter, then clear all lists, which name countains specified mask
- Added: SERV.Map.x.AllSectors some_verb_to_use
  If used not in this syntax, then gives old error about MAP is readonly.

08-02-2009, MrSugarCube
- Fixed #1517: Unable to cast polymorph spell.
- Fixed: Possible infinite loop when creating fight memories in scripts.

09-02-2009, Coruja (Script pack)
- Updated #1576: sphere_item_profession.scp, sphere_item_deco_dungeons_traps_dead.scp (Corrected
  portrait DUPELISTs)

15-02-2009, MrSugarCube
- Modified #1545: JOINASMEMBER function no longer requires that the new member be online.
- Fixed: Unable to connect to local server with an encrypted client when it decides to reuse its
  login server connection instead of open a new one.

21-02-2009, MrSugarCube
- Fixed #1571: Creating a player with a hyphen or period in its name causing a random name to be
  generated.
- Fixed #1548: Armor MODAR being factored in twice when calculating total armour value, and sometimes
  character MODAR being factored in twice when calculating damage.
- Fixed: Messages such as "You can't reach anything in your state." and "You can't think of a way to
  use that item." being sent to players as they try to free themselves from spider webs.
- Added #1564: PetsInheritNotoriety setting to sphere.ini. This can be used to specify which
  notoriety flags a pet will inherit from its master (so if for example a pet has an evil owner
  and the NotoEvil flag is set then the pet will also show as evil regardless of its real notoriety).

22-02-2009, MrSugarCube
- Fixed #1575: Improved handling of unicode speech in Linux build.
- Fixed #1537: TEST in skillmenus not being parsed in the same way as TESTIF.

26-02-2009, MrSugarCube
- Modified #1560: Separated PROMPTCONSOLE from the targeting system. Targeting no longer interferes
  with prompts and vice-versa.

14-03-2009, MrSugarCube
- Fixed #1585: Multiple arguments not being passed into commands when using the syntax
  [SERV.]ACCOUNT <name> <command> <args>

20-03-2009, MrSugarCube
- Fixed #1586: Exception in Linux build when using the ADDCLILOC function with DEBUGF_SCRIPTS enabled.
- Fixed: Exception when passing an invalid object uid into the NEWDUPE function.

21-03-2009, MrSugarCube
- Fixed: Crashes with EF_Unicode enabled on Linux builds.
- Fixed: SuppressCapitals causing speech to be blanked out.

22-03-2009, MrSugarCube
- Fixed #1557: Sphere only sending partial webpages to certain browsers such as FireFox.
- Fixed: Sphere only sending partial webpages to all browsers when EF_UseNetworkMulti is used.
- Modified: EF_UseNetworkMultiVersionMod now also disables the effects of EF_UseNetworkMulti for HTTP
  clients.

29-03-2009, MrSugarCube
- Fixed #1589: TWOHANDS returning 1 with items that are equipped in the second hand but aren't
  two-handed, such as shields and lanterns.

04-04-2009, MrSugarCube
- Fixed #1588: Possibility of overflow when applying markups to vendor prices (note that prices are
  limited to a maximum of 2,147,483,647gp inclusive of markup).

10-04-2009, MrSugarCube
- Fixed: Server crash caused by deeply nested SKILLMENUs.
- Modified: Menu options are no longer hidden from SKILLMENUs when Sphere is unable to fully search
  within them.

13-04-2009, MrSugarCube
- Added: SERV.RTICKS.FROMTIME year,month,day,hour,minute,second. Returns the timestamp for the given
  date.
- Added: SERV.RTICKS.FORMAT timestamp[,format]. Converts the given timestamp into a formatted date
  string (similar to SERV.RTIME.FORMAT).

14-04-2009, MrSugarCube (Script pack)
- Updated #1497: sphere_item_multis_houses_ships.scp (Fixed ship masts not blocking line of sight)

19-04-2009, MrSugarCube
- Fixed #1586: Possible exception when checking line of sight near multis when AdvancedLos is enabled.
- Fixed #1495: Ghosts able to teleport through walls when resurrecting. Line of sight is now required
  for a ghost to resurrect with their corpse.
- Fixed: Exception when EF_NewPositionChecks is enabled and there are statics placed on the map which
  don't have scripts.

19-04-2009, MrSugarCube (Script pack)
- Updated #1469: sphere_item_ground_tiles.scp (Corrected height of i_waterfall_low)

25-04-2009, MrSugarCube
- Modified: Jailing players (".JAIL cell#" command) now remembers the cell number that was specified,
  stored in Tag.JailCell on the account and used when returning players to jail.
- Modified: Jailed players are no longer blocked from being teleported within the jail region.

25-04-2009, MrSugarCube (Script pack)
- Updated: sphere_map0.scp (Renamed individual jail AREADEFs to jail cell ROOMDEFs)

02-05-2009, MrSugarCube
- Fixed #1581: Characters unable to see objects that are in the corners of their visual range.

03-05-2009, MrSugarCube
- Fixed #1526: No decay timer set on lights after they become unlit.

04-05-2009, MrSugarCube
- Fixed: Objects on the corners of .EXTRACT, .NUKE, .NUKECHAR areas not being affected by the command.

05-05-2009, MrSugarCube
- Fixed #1451: Missing mana checks, skill checks and @Select triggers not being fired before casting,
  when precasting is enabled.
- Modified: Separated the movement behaviour of the MAGICF_PRECAST flag into a new MAGIC_FREEZEONCAST
  flag. Enable MAGICF_PRECAST to enable casting before targeting, and enable MAGICF_FREEZEONCAST to
  prevent characters from moving whilst casting (enable both to retain the previous behaviour of
  MAGICF_PRECAST). Also added SPELLFLAG_NOFREEZEONCAST to disable the effects of MAGICF_FREEZEONCAST
  for individual spells.

06-05-2009, MrSugarCube
- Added #1599: SpellTimeout setting to Sphere.ini. If set to a value greater than zero then when
  casting a spell the player is given this many seconds to choose a target before the spell is
  automatically cancelled.

16-05-2009, MrSugarCube
- Modified #1610: Cure spell just sends the packet needed to update the health bar rather than sending
  a full refresh of the entire screen.
- Added #1609: MAGICF_SUMMONWALKCHECK flag to ensure that summoned creatures can only be successfully
  summoned on tiles that are walkable for them (i.e. a sea creature can only be summoned on water).

16-05-2009, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Added msg_summon_invalidtarg defmessage)

18-05-2009, MrSugarCube
- Added #1466: MAGICF_NOFIELDSOVERWALLS flag to enable additional checks when casting field spells to
  prevent them from passing through blocking objects (CAN_I_BLOCK and/or CAN_I_DOOR).

20-05-2009, MrSugarCube
- Added #1604: PROMPTCONSOLEU function. This is an alternative to the PROMPTCONSOLE which enables the
  client to respond with unicode text.
- Added: SYSMESSAGELOCEX, an extended version of SYSMESSAGELOC which can be used for sending localized
  messages to clients with a non-localized string attached to the start or end of the message. SMSGLEX
  can also be used as a shortcut.
  Syntax is: "SYSMESSAGELOCEX color,clilocid,flags,affix[,arguments]"
  All arguments must be separated by a comma ",". Specify -1 for color if you do not wish to override
  it. Known possible values for flags are:
    0x00 = Append text to message
    0x01 = Prepend text to message
    0x02 = Forces message to show as a system message
  A couple of examples of this being used (latest clilocs) are:
   "SYSMESSAGELOCEX -1,1008078,01,MrSugarCube"                    - Displays "MrSugarCube : Attempting to heal you."
   "SYSMESSAGELOCEX -1,3002003,00,Smoking is bad for your health" - Displays "Note to self:  Smoking is bad for your health"
  For overriding messages in sphere_msgs.scp (or other message functions such as SAY and MESSAGE) the
  syntax "@hue,font,3 clilocid,flags,affix[,arguments]" can be used, for example:
   "SAY @022,,3 1008097,01,MrSugarCube"                           - Object says "MrSugarCube : poisoned you!" in red

30-05-2009, Nazghul
- Fixed: @GetHit always gave damagetype type (argn2) 0C02 (physical | slash | pierce). Now the type is set 
  to dam_physical, dam_slash or dam_pierce is added depending on weapon type (wrestling and mace weapons
  don't set extra flags).
- Added: TAG.OVERRIDE.DAMAGETYPE for weapon type items. Holds a numerical value and overrides the
  type specific damage type.

20-06-2009, MrSugarCube
- Fixed #1617: Dispel and Mass Dispel spells sending an unnecessary full client update to all players
  touched by the spell.

21-06-2009, MrSugarCube
- Added #1627: PlayerEvil setting to Sphere.ini. Similar to the PlayerNeutral setting, this
  will control the karma level at which a player will be considered evil.

25-07-2009, MrSugarCube
- Added: Support for packet changes found in client 6.0.14.2.

02-08-2009, MrSugarCube
- Fixed #1636: Exception caused when an online player character is deleted.
- Fixed #1639: Tooltips not being sent for objects on the edge of the client's screen.

29-08-2009, MrSugarCube
- Fixed: Unable to drop 'new' spell scrolls (necro+) into spellbooks even when MOREZ has
  been correctly set on the book.
- Fixed: Incorrect character race being sent to clients.

30-08-2009, MrSugarCube
- Fixed #1625: Extremely high vendor prices on Linux build.
- Fixed: Archery buttes not checking for OVERRIDE.AMMOTYPE and OVERRIDE.ANIM* tags on the
  character's weapon.
- Modified #1642: Reduced delay between asynchronous database query callbacks.
- Added: Skill flag SKF_RANGED. Combine this with the SKF_FIGHT flag to create ranged
  (i.e. archery) combat skills.

30-08-2009, MrSugarCube (Script pack)
- Updated: sphere_defs.scp (Added SKF_RANGED definition)

07-09-2009, MrSugarCube
- Added: Console command "d ui" to generate a file named "unscripted_items.scp" that
  contains *basic* definitions for items in tiledata.mul that have no corresponding
  Sphere script.

12-09-2009, MrSugarCube
- Fixed #1623: RESTEST requiring 1 of an item when checking for a quantity of 0. This also
  affects other resource-list-based functions and properties such as CONSUME, FOODTYPE,
  RESOURCES, SKILLMAKE, SKILLTEST, etc.
- Fixed #1655: Setting RAINCHANCE and COLDCHANCE to zero does did not disable rain or snow.
- Modified: When loading a WORLD* block from a save Sphere can resolve defnames to find the
  object being loaded (like the ones in sphere_backward_compatibility.scp, for example).

12-09-2009, Coruja (Script pack)
- Updated #1645: sphere_template_vend.scp, sphere_item_resources.scp, spherechar_human.scp,
  sphere_item_provisions_potions.scp, sphere_backward_compatibility.scp (Corrected spelling
  of the wyrm heart defname (i_reag_worm_heart->i_reag_wyrm_heart))
- Updated #1654: sphere_defs.scp (Adjusted height of the Meer characters)

13-09-2009, MrSugarCube
- Fixed #1595: @Destroy trigger not being fired for items inside removed containers. When
  returning 1 in @Destroy on an item inside a container about to be deleted, the item will
  be dropped to the ground (unless the item has already been moved elsewhere).
- Fixed #1656: Exception when players trade and item 01e5e has not been set as a container
  type.

05-12-2009, MrSugarCube
- Fixed: Unable to connect to remoteadmin from telnet clients that operate in 'line mode'
  and need the enter key to be pressed after CTRL+A/Space (the one in Ubuntu, for example).
- Modified: Rewritten networking system, based on the code Vjaka wrote for 0.57 combined
  with updates added since such as EF_UseNetworkMulti. This new system introduces features
  such as packet prioritisation which should help to keep clients responsive even in areas
  with a large number of objects.
  The EF_UseNetworkMulti and EF_UseNetworkMultiVersion experimental flags have been removed
  from the ini and different settings have been added to a new "Network Behaviour" section.
  The default settings should suit most users, but in some cases it may help to tweak the
  MaxPacketsPerTick and MaxQueueSize settings.

06-12-2009, MrSugarCube
- Added: Support for gargoyle character creation. For the option to be available the player
  must have a RESDISP of 7+ and the FEATURE_SA_UPDATE flag needs to be enabled in Sphere.ini.
  ARGN3 in the f_onchar_create (sphere_serv_trigger.scp) is now the character race (1=human,
  2=elf, 3=gargoyle).
- Added: Basic support for mysticism spellbook and skill (the actual spell effects need to be
  scripted).
- Added #1657: Support for the increased tiledata size in client 7.0.0+. As a consequence,
  multis must now start from 08000 instead of 04000 and scripts must be adjusted accordingly
  (the default script pack has been updated). If an older client encounters an item within the
  04000-07fff range they will only see a worldgem bit (01ea7).
- Fixed #1661: Status bar not correctly showing green or yellow in 7.0.0+ clients.
- Modified: The size of Map5.mul is now automatically detected.

06-12-2009, MrSugarCube (Script pack)
- Added: spherechar_sa.scp (Added gargoyle character definitions)
- Added: sphere_item_provisions_alchemy_magic_sa.scp (Added mysticism spellbook and scrolls)
- Added: sphere_map5.scp, sphere_map_points5.scp (Added SA map areas)
- Updated: sphere_defs.scp (Added defnames for RDS_SA RESDISP, t_spellbook_mystic)
- Updated: sphere_serv_triggers.scp (Updated description for f_onchar_create)
- Updated: sphere_skills.scp (Added base definitions for mysticism, imbuing and throwing skills)
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
  sphere_item_multis_stairs.scp (Increased multi IDs by 04000)
- Updated: spheretables.scp (Added sphere_map5.scp and sphere_map_points5.scp to resources,
  commented out by default)

12-12-2009, MrSugarCube
- Added: Support for gargoyle flying ability. Flying characters will have statf_hovering set
  on their FLAGS property and will be allowed to pass over items that have the CAN_I_HOVER
  flag set.
  The exact effects of the statf_hovering flag are:
   - Can pass over hidden 'hover over' tiles to get to special areas
   - Can move at the same speed as a mounted player
   - Height is increased by 4 in LOS/movement checks (same effects as when mounted)
   - When stamina is lost on movement, the running penalty is always applied
   - Always revealed when moving whilst hidden
   - Will not teleport off ships when moving on to a ship plank
- Added: MULTIDEF block. This can be used to safeguard against any future changes to the size
  of tiledata.mul. This basically acts as a 'shortcut' for ITEMDEF, except the ID will 
  automatically be increased by 08000. Items defined with this are still accessible as normal
  via SERV.ITEMDEF.id(+08000)/defname, or SERV.MULTIDEF.id/defname can be used if you prefer
  for consistency.
- Added #1674: PINS property to maps, to return the number of pins on the map.
- Fixed #1672: Situations where returning 0 in a trigger would return as 2.

12-12-2009, MrSugarCube (Script pack)
- Updated: sphere_defs.scp (Added defnames for statf_hovering, mt_hover, can_i_hover,
  tilef_hoverover, t_hoverover)
- Updated: sphere_item_multis_foundations.scp, sphere_item_multis_houses_ships.scp,
  sphere_item_multis_stairs.scp (Replaced multi ITEMDEFs with MULTIDEFs)
- Added: sphere_item_ground_tiles_sa.scp (Added hover-over item definitions)
- Updated #1684: sphere_item_magic_armor.scp, sphere_item_magic_leather.scp,
  sphere_item_magic_weapon.scp, sphere_item_misc.scp, sphere_item_profession_cartographer.scp,
  sphere_item_provisions_armor_color.scp, sphere_item_provisions_deed.scp,
  sphere_item_provisions_ore.scp (Replaced custom script IDs with defnames to fix conflicts
  with new tiledata size -- some items did not have a defname so watch out if you have any of
  these in an existing world save)

13-12-2009, MrSugarCube
- Fixed #1683: Hiding skill not properly updating clients to show the character is gray.
- Added #1678: Logging for commands issued via telnet. "TelnetLog" setting can be used
  to enable or disable this feature.
- Modified: The -E switch now shows a message in the console to indicate that is has been
  successfully enabled.

13-12-2009, Coruja (Script pack)
- Updated #1659: sphere_map2 (Renamed "Blood Dungeon Level 1" to "Blood Dungeon")
- Updated #1665: sphere_item_profession_tailor_tanner.scp (Adjusted flipping behaviour of
  spinning wheel)

13-12-2009, MrSugarCube (Script pack)
- Updated #1685: sphere_admin.scp (Updated hover flag description, added ability to hide
  status flags by blanking their description)

16-12-2009, MrSugarCube
- Fixed: Crash dumps not being created at all.
- Fixed: Wrong packets being sent to pre-7.0.0.0 clients whose encryption had been removed.
- Fixed: Summon and field spells not working correctly with EF_MinimiseTriggers set.

16-12-2009, MrSugarCube (Script pack)
- Updated: sphere_admins.scp (Added admin_resdisp_6 and admin_resdisp_7 defnames)

17-12-2009, MrSugarCube
- Fixed #1689: Unable to move with FEATURE_SA_MOVEMENT enabled.
- Fixed #1688: Characters not being logged out properly when clients disconnect.

18-12-2009, MrSugarCube
- Fixed #1663: Human characters being created as elves with the SA client and with a RESDISP
  less than 7.
- Fixed: @UserVirtue trigger not being fired.

18-12-2009, MrSugarCube (Script pack)
- Added: sphere_item_profession_barber_sa.scp (Added gargoyle horn definitions)

19-12-2009, MrSugarCube
- Fixed #1669: Maximum weight not being checked when a client equips an item.
- Fixed #1690: CheckerTrans positions in dialogs not working with dorigin.
- Fixed #1692: DIALOGCLOSE immediately after DIALOG not working due to packet priorities.
- Modified #1681: Swapped the situations where cartography_nomap and cartography_fail
  defmessages are displayed.
- Fixed: FLUSH command on clients claiming to be undefined.
- Fixed: Previous page handlers not being removed when assigning pages via GMPAGE.x.HANDLE,
  leading to possible exceptions.

19-12-2009, MrSugarCube (Script pack)
- Updated: sphere_item_profession_barber_sa.scp (Fixed defname conflicts)

20-12-2009, MrSugarCube
- Added #1667: PARTY.SETMASTER, accepts either a character uid or @<N> for the Nth party
  member, to change who the party master is. The character must be an existing member of the
  party and cannot already be the master.
- Added #1658: @TargetCancel trigger to spells (and @SpellTargetCancel to characters). This
  is called when a player cancels targeting with a spell.
    ARGN1 = the spell that was being cast
    ARGO  = the item used to cast the spell (e.g. a wand or scroll)
    RETURN 1 = suppress the cancellation message
- Added: @Wait trigger to skills (and @SkillWait to characters). This is called whenever
  Sphere wants to check if a character must wait before starting a skill. Normally this
  will be when a skill is selected from the skill menu (before @Select), but also when
  snooping a container or using a musical instrument.
    ARGN1 = the skill the character is attempting
    ARGN2 = the skill that is currently being used
    RETURN 0 = The character can start the other skill (bypasses default checks)
    RETURN 1 = The character must wait (bypasses default checks)
    RETURN 2 = Perform default checks
- Fixed: Return 0 not working in @UseQuick trigger.
- Fixed: @TargOn_Cancel trigger not being fired.
- Modified #1687: Clients are now listed in order of newest to oldest.
- Modified: TDATA1 and TDATA2 can be set on maps to specify the width and height of the gump.

21-12-2009, MrSugarCube
- Fixed #1693: CANSEELOSFLAG always returning 0.

02-01-2010, MrSugarCube
- Fixed #1691: Older clients freezing when single-clicking an item or NPC with a long name.
- Fixed #1695: "You can't think of a way to use that item." message being shown when failing
  to use a training dummy.
- Fixed #1693: CANSEELOSFLAG not working when a uid is specified.

03-01-2010, MrSugarCube
- Fixed #1700: Armor rating not updated when being resurrected.
- Added #1701: @TargetCancel trigger to skills (and @SkillTargetCancel to characters). This
  is called when a player cancels targeting with a skill.
    ARGN1 = the skill that was being used
    RETURN 1 = suppress the cancellation message

10-01-2010, MrSugarCube
- Added #1705: @RegionResourceFound trigger, fires on characters just before @ResourceFound
  is fired on a region resource (shares the same arguments and return values).
- Fixed #1706: Light sources not showing correctly on 7.0.0+ clients.
- Fixed: Guard command not working with pets.
- Modified: Pets default to guarding their master instead of following, and no longer attack
  the same target as their master when in "follow" mode.

17-01-2010, MrSugarCube
- Added: Experimental flag "EF_NetworkOutThread". If this is enabled then outgoing data will
  be sent in a separate background thread.
- Added: UsePacketPriority setting in sphere.ini. Leaving it at 1 (default) should be best
  but if this is set to 0 then [most] packets won't be prioritised.

24-01-2010, MrSugarCube
- Fixed #1713: Strange characters in the tip of the day window.
- Fixed: Previous and Next buttons not working on the tip of the day window.

25-01-2010, MrSugarCube
- Fixed: Figurines using TDATA3 from the item's DISPID instead of BASEID, when a new pet is
  spawned.

27-01-2010, MrSugarCube
- Fixed #1714: Unicode string corruption in dialogs.
- Modified: Exceptions that occur in background threads should now be recorded in logs.

20-02-2010, MrSugarCube
- Modified #1720: SERV.EXPORT now exports in a square rather than a circle.

21-02-2010, MrSugarCube
- Modified: Network thread (used by EF_NetworkOutThread) will now lower its own priority
  when there is no data to send (and raise again when needed)

15-03-2010, MrSugarCube
- Fixed: UseAsyncNetwork not working as it should on windows build.

21-03-2010, MrSugarCube
- Added: MINKARMA, MAXKARMA and MAXFAME settings in sphere.ini.
- Modified: First two lines of NOTOTITLES section are used to define the levels of karma and
  fame needed for each title.

21-03-2010, MrSugarCube (Script pack)
- Updated: spheretables.scp (Added default karma and fame levels to NOTOTITLES section)

04-04-2010, MrSugarCube
- Fixed #1734: No response sent for UOG and CUO status requests.
- Modified: (Windows) Status window now uses a courier font so that data is aligned like it
  is when using 'p' in the console.
- Modified: Improved accuracy of profile data ('p' in console, or status window in Windows)
  by recording and displaying it for each thread.

17-04-2010, MrSugarCube
- Fixed: Wrong mapdif*.mul and stadif*.mul files being used with custom maps.
- Modified: If Map1.mul is present then it will automatically be used.
- Modified: The larger ML map sizes are now automatically detected, so there should be no
  need to specify it in the ini file.

25-04-2010, MrSugarCube
- Fixed #1725: Friends stealing ownership of a pet when mounting it.

25-04-2010, MrSugarCube (Script pack)
- Updated #1733: sphere_map0.scp (Added r_brit to events list for a_townBritain)

01-05-2010, MrSugarCube
- Fixed #1738: Players calling guards on invisible staff members.
- Fixed #1740: @Abort being called when failing alchemy instead of @Fail.
- Fixed: 'msg_tingling' defmessage not being shown under the correct circumstances.

02-05-2010, MrSugarCube
- Fixed #1742: DIALOGCLOSE function not obeying the UsePacketPriority setting.

03-05-2010, MrSugarCube
- Fixed: Database connection lost when using DB.EXECUTE with a query that returns results.

09-05-2010, MrSugarCube
- Fixed #1710,#1731: Numerous causes of instability when using EF_NetworkOutThread.

13-05-2010, MrSugarCube
- Fixed #1748: Exception when dropping an item onto a non-container.

15-05-2010, MrSugarCube
- Fixed #1747: Container contents near the boundaries showing in wrong position when
  UsePacketPriority is enabled.
- Fixed #1746: Damage showing in the corner of the screen instead of above an enemy when
  UsePacketPriority is enabled.

23-05-2010, MrSugarCube
- Fixed #1751: Movement/sight checks fail when an item is too tall to fit within the Z
  boundaries.

24-05-2010, MrSugarCube
- Fixed #1756: Packets being sent for items in containers the client cannot see inside (A
  side-effect of this is that CANSEE/LOS will return 0 for such items, until the client
  opens/snoops the container).

25-05-2010, MrSugarCube
- Fixed #1754: Armor rating in status window not updated when equipped armor pieces receive
  damage.

29-05-2010, MrSugarCube
- Fixed #1759: Client not always notified about login failure when EF_NetworkOutThread is
  enabled.

31-05-2010, MrSugarCube
- Fixed #1753: Client crash when moving into view of a character sitting on a chair.
- Fixed #1760: Players unable to see items in the other player's trade window.

13-06-2010, MrSugarCube
- Added: 'TooltipMode' setting to sphere.ini. When this is set to '1', instead of always
  sending a full tooltip packet for every item, Sphere will send a smaller 'header' packet
  and wait for the client to request the full information (for unchanged tooltips, clients
  can use a local cache and less data will need to be sent).
  Note: Since the header packet requires knowledge of what the tooltip will contain,
  @ClientTooltip should be expected to fire twice in this mode (once for the header, once
  for the full data). ARGN1 can be used to determine if the client asked for the tooltip,
  but it is important that you do not use it to change the tooltip content.
- Added: Support for caching tooltip data for characters and items. Whilst a tooltip is
  cached, @ClientTooltip won't be fired. A new 'TooltipCache' setting is provided in
  sphere.ini to control how long a cached tooltip will be valid for (set to 0 to disable
  caching). If the new tooltip mode is being used then enabling this would be advisable
  to avoid having @ClientTooltip fired twice for each client.
- Modified: RESENDTOOLTIP now accepts parameters to control how the tooltip should be
  sent.
  The syntax is now: "RESENDTOOLTIP [sendfull=0,usecache=0]"
   'sendfull' - 1 to force the full tooltip to be sent, or 0 to send just the header (when
                TooltipMode=1, otherwise the full data will be sent anyway)
   'usecache' = 1 to use cached tooltip if available, or 0 to clear the cache and force
                @ClientTooltip to fire

02-07-2010, MrSugarCube
- Fixed: Possible exception on Linux builds when an NPC moves.

03-07-2010, MrSugarCube
- Modified #1761: The fix for issue #1756 (sending packets for items inside unopened
  containers) must now be activated using the EF_FixCanSeeInClosedConts experimental flags,
  since it has been reported to cause client crashes.

28-07-2010, MrSugarCube
- Added #1776: P.COMPONENTS to access multi components at a location in the same way as with
  P.STATICS. Usage is identical to P.STATICS, except that the COLOR property does not exist
  for multi components. P.COMPONENTS.n.MULTI can be used as a reference to the multi that
  contains the nth component at a location.

06-08-2010, ShiryuX
- Added #1790: TAG.NOTO.PERMAGREY which sets the player's notoriety to neutral/grey.
  This will only happen if the character is blue, everything else will override it.

07-08-2010, ShiryuX
- Fixed #1772: Cooking skill wasn't counted as a crafting skill.

07-08-2010, ShiryuX (Script pack)
- Fixed #1774: sphere_map0.scp (Renamed Occlo to Ocllo, correct spelling)

10-08-2010, ShiryuX
- Fixed #1781: Walk buffer protection was counting steps even when step wasn't possible,
  because of freeze status in the character.

12-08-2010, ShiryuX
- Fixed #1793: OpenDoor Macro now won't ignore LOS and Distance is 3 (max).

15-08-2010, MrSugarCube
- Fixed #1722: Game clients unable to connect when the server IP is set to 127.0.0.1.

17-08-2010, ShiryuX
- Added #1566: MD5PASSWORD account function/property to instert or change a MD5 hash as password.
  This way you can call: "SERV.ACCOUNT foobar MD5PASSWORD f4d9ff51c527e8ef67d924d4f0a6db66"
- Fixed #1799: Accounts created using ADDMD5 won't cut the hash anymore.
- Fixed: Dialog properties xmfhtmlgump and xmfhtmlgumpcolor not working correctly with dorigin. 

19-08-2010, ShiryuX
- Modified #1786: Disabled 'r' console command to be used by remote telnet, use 'resync' instead. 
  Any other way to access the console (physical or remote desktop) can still use it.

21-08-2010, ShiryuX
- Added: Basic support for bard spellbook and skill (the actual spell effects need to be scripted).
- Modified #1800: @UserWarMode will now have ARGN2 parameter, which by default is 1.
  ARGN2 = 1 --> Will abort the skill action
          0 --> Will _NOT_ abort the skill action
- Fixed: SA Clients wasn't considered for Async connections.

21-08-2010, ShiryuX (Script pack)
- Updated: sphere_defs.scp (Added 't_spellbook_bard' definition)

21-08-2010, khaos (Script pack)
- Updated: sphere_spells.scp (Added new bards spells from SA, no functionality though)

22-08-2010, MrSugarCube
- Fixed #1803: Items with a default value of 2147483647 on linux builds.

23-08-2010, MrSugarCube
- Fixed #1796: Vendor speech containing the text "(null)".
- Modified: MOREM on t_map items is now used to indicate which map has been drawn. Recent client
  versions (7.0.8.0+) are able to use this value to view maps other than map0.mul.

23-08-2010, MrSugarCube (Script pack)
- Updated: sphere_msgs.scp (Updated npc_vendor_s1 and npc_vendor_b1 defmessages)

25-08-2010, ShiryuX
- Fixed #1795: Characters were able to dclick equipable items with attr_move_never.

05-09-2010, Khaos (Script pack)
- Added: sphere_item_provisions_clothing_sa.scp, sphere_item_provisions_armor_sa.scp,
  sphere_item_provisions_weapons_sa.scp (These files now contain all the default scripts
  for Stygian Abyss weapons, armor, clothing, jewelry, and other miscellaneous items.
  As a note: all throwing weapons use the t_weapon_sword type. There is no archery
  animations for gargoyles)
- Updated: sphere_skills.scp (Added FLAGS=skf_ranged|skf_fight to the throwing skill (Skill 57))

09-09-2010, MrSugarCube
- Fixed #1806: Possible causes of a critical "timer expired" error on Linux builds.

11-09-2010, ShiryuX
- Fixed: 'group' keyword not being stripped with tngstrip command (used for locations tab).

13-09-2010, MrSugarCube
- Removed: EF_Unicode; its behaviour is always enabled.

14-09-2010, MrSugarCube
- Fixed #1744,#1752: Desynchronisation of players' position between client and server.

20-09-2010, Khaos (Script pack)
- Updated: sphere_item_provisions_armor_sa.scp (added layers to the wearable armor -shields.
  Skirts were being treated as gloves)
- Updated: sphere_item_ground_tiles_sa.scp (added the sparkle dupeitems for the hover over 
  animation)
- Added: sphere_item_building_floors_sa.scp (contains all the new SA floor tiles, even the
  runed items)
- Added: sphere_item_building_doors_sa.scp (this file contains all the proper doors for the
  SA expansion)

21-09-2010, Khaos (Script pack)
- Updated: sphere_item_building_doors_sa.scp (added in ruined doors (Should be the last set))

27-09-2010, MrSugarCube
- Fixed #1819: "World save has been initiated" messages not being sent until after the save
  completes.
- Fixed: Large packets sent by the client sometimes not parsed correctly, leading to strange
  behaviours or console errors.

30-09-2010, ShiryuX
- Fixed #1825: not writable books not displaying content for 5.0.0+ clients.
- Modified: Axis strip to use only ONE file to dump the stripped scripts (like TNG strip does)
  Commands are = TNG: "strip tng" or "tngstrip" (dump file sphere_strip_tng.scp)
                 Axis: "strip axis" or "strip" (dump file sphere_strip_axis.scp)

04-10-2010, MrSugarCube
- Fixed: Editing a book page can cause the following page to be deleted.

07-10-2010, MrSugarCube
- Fixed #1826: Male characters unable to walk over items with CAN_I_LIGHT set.

09-10-2010, ShiryuX
- Added: "TAG.OVERRIDE.NOTO" and "TAG.OVERRIDE.NOTO.$uid" as notoriety flag overrides.
  TAG.OVERRIDE.NOTO is a general override for the notoriety flag.
  TAG.OVERRIDE.NOTO.$uid overrides the noto flag according to the viewer $uid.
  * NOTE: The general override is applied before the viewer tag. So it will override EVERYTHING.
          Usable flags can be found on sphere_defs.scp

09-10-2010, ShiryuX (Script pack)
- Updated: sphere_defs.scp (added noto_types defintion)

11-10-2010, Khaos (Script pack)
- Updated: sphere_item_provisions_weapons_sa.scp (fixed some typos)
- Updated: spherechar_human.scp (Female barber was using male barber names instead of
  the female name list)

13-10-2010, MrSugarCube
- Added: Support for packet changes found in client 7.0.9.0.
- Added: Support for new tiledata.mul and multi.mul formats found with client 7.0.9.0.
  Since the tiledata size has increased again (supporting a maximum slot of 0FFFF),
  multis must now start from 010000. If multi scripts are already using the new MULTIDEF
  syntax then everything should work without any change to scripts.

14-10-2010, MrSugarCube
- Fixed #1832: Exception on Linux build when logging in.

18-10-2010, MrSugarCube
- Modified: Ships use their HEIGHT property to detect objects that are on the deck,
  rather than assuming a value of 3.

22-10-2010, MrSugarCube
- Fixed #1828: Instability when receiving large amounts of data from a client.
- Fixed #1838: Fixed "Bad MENU item id" error when trying to display a custom item in a
  menu or skill menu.
- Fixed #1839: Exception when showing the edit menu for a container containing more than
  64 items.

23-10-2010, MrSugarCube
- Fixed #1835: @Destroy incorrectly firing on trade window contents when the container
  is removed.

25-10-2010, MrSugarCube
- Fixed #1822: Exception when a client sends a malformed skill lock packet.
- Fixed #1782: Exception on linux build leading to sphere.pid file never being removed
  when shutting down Sphere.

27-10-2010, Khaos
- Added: Race selectors to newbie templates. Code works as follows: [newbie xxx <race>] Races
  that can be set are "human", "elf", "gargoyle", or leave it default for normal functionality.
  This works for the male_default, female_default, and all the skills defined in Newbie sections.
- Added #1598: All max* stat values (Hits, stam, mana, food) can be _safely_ set up to 1 million.
  Though you can go past this, we don't recommend it. Note: This should not be used on players
  max values, and we _highly_ don't recommend it.

03-11-2010, MrSugarCube
- Fixed: Exception on linux build when accessing guild functions without an SRC.

14-11-2010, MrSugarCube
- Fixed #1847: Crash on 7.0.0+ clients when other clients are picking up and dropping
  items.

21-11-2010, MrSugarCube
- Fixed: Unable to access basic properties for non-game clients through SERV.CLIENT.x.

22-11-2010, Coruja (Script pack)
- Updated #1851: sphere_map0.scp (renamed Trinsic Passage to Delucia Passage)

02-12-2010, MrSugarCube
- Fixed #1861: Elven players turning into gargoyle ghosts when dead.
- Fixed: Mana Vampire spell always gives mana to the caster even when the spell is blocked in
  an @Effect trigger.

03-12-2010, MrSugarCube
- Fixed #1770: Exception when NPC_AI_PATH is enabled and an NPC cannot find a route to its
  destination.

10-12-2010, MrSugarCube
- Fixed #1854: LogMask setting not have any effect on the messages being logged.

12-12-2010, MrSugarCube
- Added #1865: ARROWQUEST function now accepts a third parameter to specify the arrow's id
  (defaults to 0). This can be used to display more than one arrow at once on newer clients,
  but bear in mind that older clients can still only show one arrow at a time and so the id
  will effectively be ignored in their case.
  If an id has been specified when showing the arrow, then you will also need to specify it
  again when you want to remove it ("ARROWQUEST" with no arguments will only remove the arrow
  with id 0).
    ARROWQUEST 1000,1000,0 // show an arrow pointing to 1000,1000, id=0
    ARROWQUEST 1020,1000,1 // show an arrow pointing to 1020,1000, id=1
    ARROWQUEST 1000,1020,2 // show an arrow pointing to 1000,1020, id=2
    ARROWQUEST 0,0,1       // remove the arrow pointing to 1020,1000

21-12-2010, MrSugarCube
- Fixed #1869: Older clients freezing when an item or character with a long name speaks.

22-12-2010, MrSugarCube
- Fixed #1843: Connections sometimes remaining open long after the client has disconnected.
- Fixed #1848: Container contents slow to show when TooltipMode is set to 0.

23-12-2010, MrSugarCube
- Fixed #1874: 7.0.0.0 - 7.0.8.2 clients freezing when using ARROWQUEST function.

26-12-2010, ShiryuX
- Fixed #1729: NPC now teaches you if there's a skill to decrease and room for the new skill.
  In before, if you were near the skillcap, the npc just rejected your train request.
- Fixed #1873: Shop list tooltips are now being fully sent to the players.

26-12-2010, Coruja (Script pack)
- Updated #1876: sphere_item_deco_lightsources.scp and sphere_item_deco_furniture.scp
  (changed typo in candelabra's defnames, was using candleabra instead)

28-12-2010, ShiryuX
- Fixed #1879: 'nightsight' function now sends light level update instead of full client update.

28-12-2010, Coruja (Script pack)
- Updated #1877: sphere_item_deco_furniture.scp (fixed dupelist of items 0a2b and 0b5e)

02-01-2011, MrSugarCube
- Added: UseExtraBuffer setting to sphere.ini to enable an additional data buffer for outgoing
  network data.
- Fixed #1858: Linux build considering connections lost when a non-critical error occurs during
  data sending.

02-01-2011, MrSugarCube (Script pack)
- Updated #1876: sphere_backward_compatibility.scp (Added backward compatibility defnames for
  candelabras)

08-01-2011, MrSugarCube
- Added #1845: Support to automatically invalidate and resend tooltips when certain properties
  change on items or characters, via new AUTOTOOLTIPRESEND setting. See Sphere.ini for
  available flags that can be used to control which properties are monitored. Note that some
  scripts won't trigger the tooltips to resend (for example the 0008 flag won't detect a script
  that sets MORE1 on armour, so a manual RESENDTOOLTIP would still be needed).
- Fixed: Possible delay between sending packets required to display buy/sell menus.

09-01-2011, ShiryuX
- Added #1881: TAT_AS_FULL trigger type to TRIGGER function to set ARGO, ARGN and ARGS.
  Example: TRIGGER @MyTest,<def.TAT_AS_FULL>,01,100,200,300,here,start,my,args
           will call @MyTest with ARGO.UID=01, ARGN1=100, ARGN2=200, ARGN3=300
           and ARGS=here,start,my,args (this supports ARGV[].)
- Modified: Now sphere reads registry keys from lastest clients (no need to manually set them)

09-01-2011, ShiryuX (Script pack)
- Updated: sphere_defs.scp (added tat_as_full definition)

09-01-2011, MrSugarCube
- Fixed #1886: Exception caused by an infinite loop when AutoTooltipResend detects a property
  value being changed from within an @ClientTooltip trigger. Now, AutoTooltipResend won't
  trigger another tooltip resend if a monitored property changes during the resend.
- Fixed #1814: AutoResendTooltip setting not working when an item property is changed just
  before it is placed in a container (e.g. when the item amount changes during stacking).

10-01-2011, MrSugarCube
- Added #1872: Support for setting SPEEDMODE to 4, as handled by newer clients. This can be
  used to prevent a player from moving. Movement checks have been adjusted accordingly so
  whilst older clients won't understand this speed mode, Sphere will still block their
  movement attempts (with a slight 'rubber banding' effect as you'd normally get when freezing
  a player by other means).

11-01-2011, MrSugarCube
- Fixed #1888: Exception caused by AutoTooltipResend attempting to send tooltips for deleted
  items.

21-01-2011, MrSugarCube
- Fixed #1894: Explode function placing a comma at the beginning of the result.

21-01-2011, Coruja (Script pack)
- Updated #1893: sphere_map2.scp (Renamed "Shrine of the Virtues" to "Gargoyle Shrine", and
  "Gargoyle City" to "Vel Lor Reg").

22-01-2011, MrSugarCube
- Fixed #1868: Memory leak when TooltipCache setting is disabled (thanks Torfo).

25-01-2011, MrSugarCube
- Fixed: Wage amount not being passed through to the 'npc_pet_wage_cost' defmessage.
- Fixed: Spyglasses not searching properly for the nearest land tile.
- Fixed: Optimised UID allocation not working as expected or sometimes not functioning at all.
- Fixed: SuppressCapitals replaces unicode speech with blank text.
- Fixed: Possible exception when importing from a WSC file where item properties are listed
  in an unexpected order.

29-01-2011, MrSugarCube
- Fixed #1901: Some targeting items (bloody bandages, carpentry tools, cotton, lockpicks,
  thread, yarn, wool) using 'itemuse_weapon_promt' defmessage as their prompt instead of
  'target_promt'.

11-02-2011, MrSugarCube
- Fixed #1909: Exception when using the "d ui" command against older tiledata sizes.

12-02-2011, MrSugarCube
- Fixed #1911: Ping history not decaying over time, causing an IP to be permanently blocked
  when it exceeds the MAXPINGS setting.

13-02-2011, MrSugarCube
- Modified #1912: Teleporting clients no longer receive unnecessary item packet for the smoke
  effect they leave behind.

17-02-2011, MrSugarCube
- Fixed: Client connections being blocked for connecting too often, even though they aren't.

19-02-2011, MrSugarCube
- Modified: Profiling statistics now include number of faults that occurred in each thread.

22-02-2011, MrSugarCube
- Fixed #1821: Exception when talking to an NPC who is having a conversation with another
  player.

12-03-2011, Khaos (Script pack)
- Added: Script support of all the new High Seas ship multis (sphere_item_multi_houses_ships.scp)
  and parts (sphere_item_ship_parts_britannian.scp, sphere_item_ship_parts_gargish.scp,
  sphere_item_ship_parts_orcish.scp, sphere_item_ship_parts_tokuno.scp).
- Updated: Updated some of the axis cats in the sphere_item_multi_houses_ships.scp file.
- Updated:sphere_item_unsorted.scp with noname tiles that were with the ships. Possible
  ship component pieces.
- Updated: sphere_item_ship_parts_britannian.scp; added more parts.

13-03-2011, MrSugarCube
- Fixed #1925: SKILLBEST.n not working correctly.
- Fixed #1922: Exception caused by Sphere trying to send character position to a client
  before a character has been selected.

13-03-2011, Coruja (Script pack)
- Updated #1893: sphere_map2.scp (Add guarded and global flags to Ver Lor
  Reg).

13-03-2011, Khaos
- Fixed: Advanced Line of Sight. Couldn't shoot or cast with any intervening
  water files.
- Added #1916: sphere.ini now contains "DefaultCommandLevel". It takes a level
  of 0 - 7 (# corresponds to plevel). Default is 7. Whatever you set the value
  to will be the min plevel for a char to use all commands not in a [plevel xxx].

13-03-2011, Khaos (Script pack)
- Updated: sphere_defs.scp (added los_nc_water to los flags section. If you use
  with CANSEELOSFLAG, it will stop LOS across water (i.e. Firing from a ship to
  another ship)).

21-03-2011, MrSugarCube
- Added: Support for packet changes found in client 7.0.13.0.

07-04-2011, MrSugarCube
- Fixed #1935: Exception when using "d a" command on Linux build.
- Fixed #1940: Exception on Windows build when an invalid format string is passed
  to RTIME.FORMAT.

09-04-2011, MrSugarCube
- Modified #1941: Custom houses (t_multi_custom) display as worldgem pieces in
  debug mode.

11-04-2011, MrSugarCube
- Fixed #1942: Exception when using MD5HASH with certain lengths of text.

23-04-2011, MrSugarCube
- Fixed #1919: Exception when a client sends an incomplete handshake packet.

10-05-2011, MrSugarCube
- Fixed: Exception when trying to set REGENx and 'x' is an invalid stat id.

12-05-2011, MrSugarCube
- Modified #1954: Unplaced object details are now listed during garbage
  collection, under code 3202.

12-05-2011, MrSugarCube (Script pack)
- Updated: sphere_map_points4.scp (Corrected z-level of the moongate locations)

17-05-2011, MrSugarCube
- Added: FeatureExtra setting to sphere.ini with flags to enable new gothic
  and rustic themed items in the house designer.

18-05-2011, MrSugarCube
- Fixed #1958: Unable to pass variables as arguments to FORCHARLAYER and
  FORCHARMEMORYTYPE loops.
- Fixed #1959: Possible exception when Sphere tries to load verdata.mul file.

09-06-2011, MrSugarCube
- Fixed #1969: Timer being set to abnormally high values when attempting skills.
- Fixed #1967: Comments in sphereaccu.scp using the wrong slash direction.
- Fixed: Backspace key not working in the Linux build's console.
- Modified: Console output on Linux build will automatically have colour enabled
  for certain terminal types that support colour codes.

09-06-2011, babidi (Script pack)
- Updated #1970: sphere_map_points0.scp (Fixed start locations all using coordinates
  for Britain)

12-06-2011, MrSugarCube
- Fixed #1955: Exception when DB.QUERY/EXECUTE is used whilst a previous
  DB.AQUERY/AEXECUTE operation is still running in the background.

18-06-2011, MrSugarCube
- Fixed #1980: Unable to handle @Rename trigger at character creation using EventsPlayer.
- Fixed #1977: New player characters starting at the wrong location.
- Fixed: Possible exception when a character doesn't have enough strength to equip an item.

18-06-2011, babidi (Script pack)
- Updated #1975: sphere_map0.scp, sphere_map0_ml.scp, sphere_map1.scp, sphere_map2.scp,
  sphere_map4.scp (Updated region flags to use defnames)

18-06-2011, Coruja (Script pack)
- Updated #1966: sphere_map2.scp (Added region flags to a_lbr)

18-06-2011, MrSugarCube (Script pack)
- Updated #1983: spherechar_sa.scp (Fixed female gargoyles not having MT_FEMALE set)

19-06-2011, MrSugarCube
- Fixed #1976: Aggressor memories being removed when leaving war mode.
- Fixed #1965: SKF_IMMOBILE causing clients to become unable to move if skill is used too
  often.

20-06-2011, MrSugarCube
- Fixed #1956: Region's @Enter trigger firing when a creature is summoned, before the
  creature's @Create trigger fires.

21-06-2011, MrSugarCube
- Fixed #1986: Exception when evaluating intelligence skill is used and either one of the
  magery or necromancy SKILL sections don't exist.

01-07-2011, ShiryuX
- Fixed #1981: Now you will be able to cast spells with 'spellflag_field' flag on chars 
  if 'spellflag_targ_char' is enabled.

02-07-2011, MrSugarCube
- Added: 'NetworkThreads' and 'NetworkThreadPriority' settings to Sphere.ini. These can be
  used to enable client connections to be handled by separate threads. The NETWORKTHREADS
  setting controls how many threads should be used to handle networking (setting this to 0
  will cause networking to be handled in the main thread, like before). NETWORKTHREADPRIORITY
  can be used to control the priority of the networking threads (the default value of 255
  should be the best option to use).
  The EF_NetworkOutThread experimental flag has been removed.

08-07-2011, MrSugarCube
- Fixed #1991: Custom packet handling functions causing clients to freeze.

21-07-2011, ShiryuX
- Added #1963: OF_DClickNoTurn, if enabled players won't turn when dclick or target an item.

31-07-2011, MrSugarCube
- Fixed #1998: @Destroy not firing on player characters or their items, when deleted via the
  character selection screen or their account is deleted.
- Fixed #1997: "World save has been initiated" messages not being sent until after the save
  completes, when NetworkThreads is set to 0.

02-08-2011, ShiryuX
- Modified #2011: Enabled spells with SPELLFLAG_SCRIPTED to use LOCAL.CREATEOBJECT1,
  LOCAL.CREATEOBJECT2, LOCAL.FIELDWIDTH and LOCAL.FIELDGAUGE for spells with SPELLFLAG_FIELD
  or with SPELLFLAG_SUMMON. If width/gauge is not set, default is 7/1.

02-08-2011, ShiryuX (Script pack)
- Updated: sphere_defs.scp (A few more buff icons in the buff_icons defname)

05-08-2011, ShiryuX
- Fixed #2008: RANGEH now displays the longest range and RANGEL the shortest (High/Low)

27-08-2011, ShiryuX
- Added #2020: CUOSTATUS and UOGSTATUS, which enable/disable the response to UOGateway/ConnectUO
               Default for both is: 1 (see sphere.ini also)
- Added: SPELLFLAG_AREA to create custom area spells (you must use SPELLFLAG_SCRIPTED).
- Added: LOCAL.AREARADIUS, which let you change the radius of the hardcoded area spells
         and let you set the radius of scripted skills (if not set, default is 4).
	 Example:
	 [SPELL s_new_spell]
	 FLAGS=SPELLFLAG_SCRIPTED|SPELLFLAG_AREA|SPELLFLAG_TARG_XYZ
	 ....
	 ON=@SUCCESS
	 LOCAL.AREARADIUS = 5
- Added: Function 'attacker.clear' to clear the attackers. Use it with caution.

27-08-2011, ShiryuX (Script pack)
- Updated: sphere_defs.scp (added new spellflag definition)

31-08-2011, ShiryuX
- Fixed #2023: Now you can use custom items on LOCAL.CREATEOBJECT1/2 with SPELLFLAG_FIELD.

01-09-2011, ShiryuX
- Added #2021: Settings to edit default color and font for SysMessage/Message/Click.
  Don't forget to update your scripts. Settings are included in sphere_msgs.scp

01-09-2011, ShiryuX (Script pack)
- Updated: sphere_msgs.scp (added SMSG_DEF_COLOR, SMSG_DEF_FONT, MSG_DEF_COLOR, MSG_DEF_FONT
            IMSG_DEF_COLOR and IMSG_DEF_FONT settings)

02-09-2011, ShiryuX
- Fixed #2025: Removed any kind of internal effect for spells with SPELLFLAG_SCRIPTED.
  Since it's supposed to have a scripted effect!
- Modified: SPELLFLAG_FX_BOLT to work with SPELLFLAG_SCRIPTED.  It will fire a bolt from 
            caster to target. If SPELLFLAG_GOOD is used the effect won't explode.
            ID of the effect is 'EFFECT_ID' spell's property.

02-09-2011, ShiryuX (Script pack)
- Fixed #2006: sphere_spells.scp (commented out RUNES for Mysticism spells & changed Discordance)

03-09-2011, ShiryuX
- Fixed #2027: Wrong internal clilocs for Cunning and Agility Buffs.
- Added: Buff for Gargoyle Fly ability.
- Fixed: LOGARITHM(), TAN, SIN and COS function were returning wrong values.

03-09-2011, ShiryuX (Script pack)
- Modified: sphere_defs.scp (added buff clilocs for gargoyle fly)

03-09-2011, Coruja (Script pack)
- Updated #2028: sphere_item_misc_se.scp (wrong DUPELIST for 02417)

13-03-2012, Coruja (Script pack)
- Updated #2056: sphere_map0.scp (fixed despise and covetous levels)

20-03-2012, Coruja (Script pack)
- Updated #2057: sphere_map2.scp (fixed ilshenar regions)

23-03-2012, ShiryuX
- Added: 'AttackerTimeout' modifies how long a NPC can remember a player since his last attack, 
         that a NPC forgets his attacker. You can play with this and attacker.#.ELAPSED.
         See sphere.ini. Default value is 300 (5 minutes).
- Fixed #2034: Disabled timeout check for TELNET connections.
- Fixed #2050: Now if you set BankMaxWeight/Items to something less than 0 
               will avoid the weight/item amount check.

26-03-2012, RanXerox
- Updated #2036: sphere_map0.scp, sphere_map3.scp, sphere_map4.scp (added some missing locations)

26-03-2012, MrSugarCube
- Modified #2040: MT_EQUIP, MT_USEHANDS and MT_MOUNT flags are respected when a character's body
  changes. Characters won't be dismount or have their items unequipped if the new body has the
  relevant flags.

27-03-2012, MrSugarCube
- Added: Support for reading map data from mapXLegacyMUL.uop files found in client 7.0.24.0
  onwards. Sphere looks for the old mapX.mul file(s) first and will continue to use these if
  both file formats exist alongside each other.

31-03-2012, ShiryuX
- Fixed #2052: Players trying to move during a resync pause caused exceptions on console.

24-04-2012, MrSugarCube
- Fixed: Unable to double click console in Windows to open scripts when forward slashes are used
  in script paths.

25-07-2012, ShiryuX
- Added: SPELLFLAG_TARG_DEAD so you can create spells for dead people.
- Added: SPELLFLAG_DAMAGE for damage spells, along with HARM effect.
         You can override the Damage Type under @(Spell)Effect with LOCAL.DamageType.
- Added: MAGICF_NOANIM so you can disable animation/direction update of the character in every spell.
- Modified: SPELLFLAG_SCRIPTED changes behavoir and allows to mixed with other flags.
- Modified: SPELLFLAG_FX_BOLT will totally work now. EFFECT_ID can be overrided with LOCAL.CreateObject1.
- Modified: SPELLFLAG_AREA can be used and altered. If no specified radius, default is 4.
            The effect of course, if it's a custom spell, must be scripted.
- Modified: Spell Summon Creature can be overrided with LOCAL.CreateObject1.
- Modified: Limit for ANIM function, so you can play the new Gargoyle Anims now.
- Fixed: Can modify Flamestrike EFFECT_ID now.
- Fixed: WOPPlayer to 0 overrided the EquippedCast check and players could cast while equipped.

25-07-2012, ShiryuX
- Updated: sphere_spells.scp, sphere_defs.scp with the new spells changes

25-07-2012, Coruja (script pack)
- Updated #2069: sphere_map_points3.scp (added missing teleports in Doom)

31-07-2012, Ben
- Fixed #2085: RESURRECT not working.

30-08-2012, Ben
- Fixed #2093: Animation above 400 not showing all frames.

04-09-2012, Ben (script pack)
- Updated: sphere_spells.scp with missing SPELLFLAG_AREA.

04-09-2012, Ben
- Fixed #2096: Sommon spells not making creatures your pet.
- Fixed #2097: area spells requiring spellflag_scripted to work
- Updated: sphereCrypt.ini with keys up to 7.00.270

16-09-2012, Ben
- Fixed #2094: double @Destroy trigger on summoned char.

17-09-2012, Terrikate
- Fixed #1831: Trigger @PERSONALSPACE did not fire on NPCs
- Fixed #1651: LastLogged message always sent current time
- Fixed #1944: Some combination of stairs and delete function can remove the dirt on floor of the house
- Modified #1749: Error messages 'Bad Login' become warnings to facilitate analysis of the logs
- Modified: Resync forced to create or delete items in custom houses to update correctly on all clients

20-09-2012, Terrikate
- Added #1542: Implemented CTAGCOUNT like TAGCOUNT for clients
- Fixed #1590: Attacker list contains self uid

22-09-2012, Ben
- Added: TAG.OVERRIDE.ROCK.DAM to override the damage done by rock throwing
	 Note: TAG.OVERRIDE.ROCK was already implemented with the ability to change rock to other items.
	 It can also add the throwing ability to other NPCs that have the tag. (never reported in changelog)
- Added: TAG.OVERRIDE.BREATH.DAM to override Damage done from fire breathing.

22-09-2012, Ben (Script pack)
- Fixed #2086: added SERV.MYSQLPASSWORD to plevel 7 group in spheretables.scp

24-09-2012, Terrikate
- Fixed #2078: t_multi_custom causes memory leak in client

06-10-2012, Ben
- Fixed #2101: Added a value to i_staff_black in default pack to prevent possible crash in vendor menu.
- Fixed #2088: Char hue returning to OSKIN on reveal from invis spell.

12-10-2012, Terrikate
- Fixed: ATTACKER.n.ELAPSED: not increased the timer correctly, always returned 0
- Fixed: ATTACKER.LAST: returned one of the attackers randomly, no the last

12-10-2012, Ben
-Added: Party triggers.
        @PartyInvite(def=recipient, src=sender, return 1=stop default)
	@PartyRemove(def=char getting kicked, src= the one kicking, no return, ARGN=1 if triggered by disband)
	@PartyDisband(def=master, src=master, no return)

17-10-2012, Terrikate
- Added #1987: More information when fails to delete a character. (account, character name and ip)
	       Now will be a message of type LOG_WARNING rather than LOG_ERROR
- Added #1854: TAG.NOMUTESPEECH=1 to unmute specific areas created by items. 
	       Only makes sense to use it if the optional flag OF_NoHouseMuteSpeech is disabled
- Added #1816: f_onaccount_create function to be called when create an account by script or console
- Modified: GMs can now listen to every player without any restriction. 

17-10-2012, Terrikate (Script pack)
- Updated #1816: sphere_serv_triggers.scp (added function f_onaccount_create)

22-10-2012, Terrikate
- Fixed #2104: functions UPDATE and REVEAL forced an update unnecessary of the client

22-10-2012, Ben
- Fixed: .UOP file support. It should now be able to handle future updates.
- Updated: ML map size detection to allow for new .uop file format.

28-10-2012, Ben
- Fixed #2107: Trying to open and use .uop files even if non existant.

03-11-2012, Mordant (Script Pack)
- Added: t_forest and t_jungle TERRAIN types in sphere_types.scp

11-11-2012, Ben
- Fixed #2106: MAGICF_STACKSTATS causing crash.

23-11-2012, Ben
-Fixed #2115: Cutting custom hides producing default leather. 
		Now TDATA1 of type t_hide can hold ID or DEFNAME of custom cut leather (or any item).

27-12-2012, Ben
-Fixed #2112: Added ini setting NPCSkillSave with a default value of 10 to keep normal behaviour.
			Any NPC skills below this value will not be saved and will be reseted to 0.

04-01-2013, Ben
-Changed: OVERRIDE.REGENVAL so that it is the tagvalue or 1 instead of 1+tagvalue.
-Fixed 2123: REGEN VAL not being accurate on mounted horses.

18-1-2013, Ben
-Added: <ASCPAD size,text> Does the same as <ASC text>, but padds with 0s untill size is reached. 
		Will also truncate the text if longer then size 

2-02-2013, Ben
-Fixed #2128: IMSG_DEF_COLOR overriding Chars noto colors.
-Fixed #2131: Too many packets sent from multis.

10-02-2013, Ben
-Fixed: EQUIPPEDCAST in sphere.ini not working properly.

13-02-2013, shaklaban
-Fixed #2134: COMPONENTS of the point not working, if MAP not 0.

16-02-2013, shaklaban
Modified: sphere.ini modified to stable settings (NetworkThreads=0 and UseAsyncNetwork=0).

16-02-2013, Ben
-Fixed: small typo in sphere.ini
-Added: Support for new UOGateway status request.

20-02-2013, Ben
-Added: sphere.ini option ALLOWNEWBTRANSFER. When set to 1, will allow newbi items to stay newbied after tranfer to an NPC.
-Fixed #2139: All dung being named Horse Dung. Now it's   "animal name" dung
-Added: Read/Write (SERV.MAP.map_num.SECTOR.sec_num function) to have access to individual sectors.

23-02-2013, Ben
-Fixed #2133: <Dsomeval> returning 0 if <someval> is negative.
-Fixed #2120: Some server properties are no longer writable (ACCOUNTS, CHARS, ITEMS, SAVECOUNT, TIME)

24-02-2013, Ben
-Fixed #1494: (script pack) possible exploit with arrow value
-Fixed #1544: qval returning " " instead of "" (now returns true empty string)
-Fixed: Timezones not being calculated properly when ALLOWLIGHTOVERRIDE is on.
-Fixed #2140: Vendors are now closing shop when ISNIGHTTIME and not ISDARK.

02-03-2013, Ben
-Fixed: ascpad throwing out an error for no reason.

03-03-2013, Ben
-Fixed #2043: For loops last loop executed two times.

04-03-2013, Ben
-Fixed: COMBAT_OSIDAMAGEMOD not applying the proper bonus calculations

06-03-2013, Ben
-Fixed #2127: EF_FixCanSeeInClosedConts not updating unequiped items.
-Fixed: More COMBAT_OSIDAMAGEMOD calculation errors

20-03-2013, Shaklaban
-Added: TAG.OVERRIDE.SPEED for weapons.

23-03-2013, Shaklaban
-Added #2146: SECTOR.NUMBER for accessing index of the sector.

31-03-2013, Ben
-Fixed: LIST.xxx.num.INSERT returning an error when the list doesn't exist. It will now create it and place the item at index 0.
-Added: LOCAL.PASSWORD to f_onaccount_create as a readable variable only for now.
-Fixed: Quoted numbers inside a variable will now be properly saved as a string, and returned as a string.

23-04-2013, Shaklaban
-Added: DeadCannotSeeLiving option for sphere ini.
		 DeadCannotSeeLiving=1: Dead players cannot see npcs (except healers and their own pets).
		 DeadCannotSeeLiving=2: Dead players cannot see players and npcs.
		 DeadCannotSeeLiving=0: Old behaviour.

04-05-2013, Shaklaban
-Fixed: Begging animation cannot disabled with return 1 @prestart.

0.56c

---- 0.56c --------------------------------------------------------------------
---- 16/06/2013

12-07-2013, Coruja (Script pack)
- Updated #2171: sphere_defs.scp (added missing midis SE/ML/HS)
		
19-07-2013, Ben
-Added: Triggers @Enter, @Exit, and @Step to ROOMDEFs
(Script pack)
-Updated #2173: some components in sphere_item_multis_houses_ships.scp
-Removed: region_flag_globalname in sphere_def.scp since it's no longer in use
-Removed: region_flag_globalname from sphere_map0.scp and sphere_map2.scp
-Added: REGION_FLAG_ANNOUNCE to regions that have a TAG.ANNOUNCEMNT in sphere_map0.scp

20-07-2013, Ben
-Added: Tags functions to ROOMDEF. (TAG, TAG0, TAGAT, TAGCOUNT, TAGLIST, CLEARTAGS)
-Fixed: Setting region/room tags in game (ex: .region.tag.test 1) not setting properly.

05-08-2013, Ben
-Added #2175: local.CreateObject1 <itemdef> to create food spell. If set, it will produce this item when the spell if done.
-Modified #2181:(script pack) Incorrect DUPELIST on i_keg_wood
-Added #2148: tag.NoRestock on vendors and regions. Setting either one to 1 will stop routine restocking of vendors
-Fixed: Error in ISTEVENT.
-Added #2177: - <ISTIMERF.functionname> to check if a timerf exists. Returns the time left in sec if it exists or 0 if not.
			  - TIMERF STOP,functionname to stop a specific timerf.
-Removed #2180:(script pack) i_orb and i_minion_leather from spherechar_lbr.scp
-Added #2183: EF_FixKillTrigger 0x02 to possibly fix Exp system and @Kill trigger
-Fixed #2159: Items with ATTR attr_newbie should not be stuck on NPCs with ALLOWNEWBTRANSFER on.
-Fixed #2172: (script pack) Magery spell sound def adjusted.

13-08-2013, Ben
-Fixed #2189: Changed ATTACKER.CLEAR from readable to writable.	

25-08-2013, Ben
-Added: Auto detection of in use triggers (Vjaka's code from 0.57 source)
-Removed: ExperienceMode 0x20 and 0x40 since Auto trigger detection is enabled.
-Removed: EF_New_Triggers, EF_Minimize_Triggers, and EF_NPCAct_Triggers since Auto trigger detection is enabled.
-Removed: @NPCHearNeed trigger in sphere_events_human.scp since this trigger doesn't exist!

27-08-2013, RanXerox
-Correction to i_keg_wood_2 (it is not a container)
-Corrected spelling mistakes ("entrance" not "entrace") in sphere_map2.scp
-Added Armored Boura to mount defs in sphere_defs.scp
-Added more random sets in sphere_defs.scp
-Added more sounds in sphere_defs.scp
-Renamed some ITEMDEFs (noted in sphere_backward_compatibility.scp)
-Formatted scripts and updated syntax in numerous files
-Added t_acid terrain type to sphere_types.scp (not used yet)
-Moved numerous ITEMDEFs from one file to another
-Added numerous new ITEMDEFs
-Added more sphereCrypt.ini entries
-Differentiate mod* and max* in the info dialog
-Added placeholders for new spells
-Magery Spell flags made consistent
-Magery spell resources modified to match the spellbook in modern clients
-Numerous additions to creature height table in sphere.defs
-Replaced hardcoded magic resistance string

28-08-2013, RanXerox
-Added more ITEMDEFs
-Fixed DUPELIST entries
-Changed some Axis categories, subsections and descriptions
-Moved ITEMDEFs from one file to another
-Major changes to doors script file in preparation for making new doors work

31-08-2013, Ben
-Fixed #2193: Mounts will die instantly when killed while mounted.

01-09-2013, RanXerox
-Moved numerous ITEMDEFs
-Added numerous ITEMDEFs
-Changed some DEFNAMEs
-Fixed some spelling errors
-Affected files:
  items/sphere_item_aos_se.scp
  items/sphere_item_building_doors.scp
  items/sphere_item_building_doors_sa.scp
  items/sphere_item_building_floors.scp
  items/sphere_item_building_floors_sa.scp
  items/sphere_item_building_floors_se.scp
  items/sphere_item_building_roofs.scp
  items/sphere_item_deco_dungeons_traps_dead.scp
  items/sphere_item_deco_misc.scp
  items/sphere_item_deco_virtues.scp
  items/sphere_item_ground_tiles.scp
  items/sphere_item_magic_ninjitsu_bushido.scp
  items/sphere_item_magic_spellweaving.scp
  items/sphere_item_misc.scp
  items/sphere_item_ml_floor_wall.scp
  items/sphere_item_profession.scp
  items/sphere_item_provisions_weapons.scp
  items/sphere_item_resources.scp
  items/sphere_item_unsorted.scp
  npcs/spherechar.scp
  npcs/spherechar_mondains_legacy.scp
  npcs/spherechar_sa.scp
  sphere_backward_compatibility.scp
  sphere_menu.scp
  sphere_newb.scp
  sphere_skillmenu.scp
  sphere_template_vend.scp

02-09-2013, Ben
-Added: 04e and 052 tiles to t_water in sphere_types.scp
-Fixed #2200: Custom trigger not working with new automated trigger detection 
-Fixed #2199: Resource gembits being set to 0 everytime.

03-09-2013, Ben
-Fixed #2201: @itemXXX triggers not all working.

04-09-2013, RanXerox
-Fixed a bug in @kill trigger where, if enabled, a killer would not get credit
 (karma, fame, experience) for the kill.

07-09-2013, Ben
-Added #1805: ColorNotoInvul with default value of 0x35 and NotoInvul 0x40 flag for PetsInheritNotoriety.
-Fixed #2186: Dialoglist not being updated when closing dialogs.

08-09-2013, RanXerox
-Fixed #2203: Added missing Action values to sphere_dialog.scp
-Fixed #2204: Cooking and Crafting skills now behave like proper crafting skills

08-09-2013, Ben
-Fixed #2191: Turning at the map edge with boats will not trow a console error.
-Fixed #2192: Should not be able to turn on another boat.

10-09-2013, Ben
-Fixed #2141: WorldGem Bits should now recognise map edge properly.

11-09-2013, RanXerox
-Default DISPID for creation of T_SEED items now configured in Sphere_Defs.scp
-New SphereCrypt.ini key

15-09-2913, Ben
-Fixed: @ResourceFound trigger not working.
-Fixed: Error caused by chars spawning when a GM is standing close to point 0,0
-Fixed #2207: ARGN1 in @SELL and @ITEMSELL is now the sold amount and not the total amount.
-Added:	ARGN2 in @SELL and @ITEMSELL is the price of the items sold after vendermarkup (ARGN2 / ARGN1 = price per unit)
-Fixed #2205: Changed Noto colors to match OSI default.
-Fixed #2194: Functions starting with any hardcoded functions like LIST and followed with _ should now work as intended.

17-09-2913, Ben
-Added: Runto npc command. Accepts a point or region name as argument.
-Changed: Goto npc command to accept region name as argument.
-Added: NPC_AI_PERSISTENTPATH 0x0400 to the NPCAI setting in sphere.ini. (NPC will retry multiple times to find it's path)
-Updated: Sphere.ini and sphere_msg.scp with new settings

22-09-2013, Ben
-Fixed #2076: Picking up corpse crashing server (not tested)

01-10-2013, Ben
-Fixed #2211: Corpse having wrong MORE values.

02-10-2013, Ben
-Fixed #2214: IsTimerF.function and TIMERF STOP,function not working properly

06-10-2013, Ben
-Fixed #2080: Items with different tags will no longer stack
-Added #2210: Support for item stacking with EF_ItemStacking 0x04(probably not 100% OSI style but should do the trick (maybe even better))

12-10-2013, Ben
-Fixed #2219: P.COMPONENTS.x always returning 0 on maps bigger then 0
-Remove GM check in Item stacking

15-10-2013, RanXerox
- Removed 0x from flag explanations in sphere.ini since spherescript does not use 0x to indicate hex
- More changes to script pack than can be counted!
- Dozens of files deleted, split, added, renamed, etc.
- Many hundreds of ITEMDEFs and CHARDEFs shuffled from one place to another.
- Lots of modifications to DUPELIST and DUPEITEM, etc.

16-10-2013, RanXerox (Script Pack)
- Converted Unix files to DOS format
- Replaced: references to the missing MESSAGELOC function
- Added: i_canal ITEMDEF (now all items can be used in custom foundation multi's)
- Fixed #2212: renamed Horde Demons
- Fixed #2215: modified WEIGHT on i_dragonscale
- Removed: bad reference to i_bear_skull
- Added: some useful NPC functions
- Renamed: sphere_items_seige.scp (...it's spelled Siege)
- Finished scripting more lightsources

17-10-2013, RanXerox (Script Pack)
- Switched: 0f3e and 0f3f (i_arrow) because older clients have a rock as ITEMDEF 0f3e
- Removed: the name and title coloration from vendors, citizens, and guildmasters
- Fixed: a bad reference to random_skirts
- Fixed: broken SYSMESSAGELOC (they were all missing color)
- Improved: corrosive slime now drops acid pool when threatened
- Added: missing stair multi's
- Added: HIREDAYWAGE back to sailors and mercenaries
- Added: deed's for all the house foundations
- Added: some missing NPC functions (is cursed)
- Added: some missing combat timers (paralyzing blow and block healing)

18-10-2013, RanXerox (Script Pack)
- Fixed: armored steed figurine
- Fixed: syntax (SERV.NEWITEM instead of SRC.NEWITEM and NEW. instead of SRC.ACT.)
- Fixed: fukiya (dart shooter)
- Fixed: various mounts that had errors with the mounted animation
- Fixed: some entries in sphere_typedefs.scp
- Fixed: implementation of monsters that "summon" other monsters is now consistent
- Fixed: console errors in some NPC events
- Fixed: Paroxysmus loot (he dropped himself as an icon instead of his pet dragon)
- Fixed #1536: Pack animals with wrong maxweight

18-10-2013, Ben
-Fixed #2222: Shrink not working anymore.
-Added: UID of shrunken pet is now accessible in ACT of the player.

19-10-2013, Ben
-Fixed #2218: Client crash caused by removefromview when bank is open.
-Added: CLOSE function to container items
-Added: CLOSEPROFILE, CLOSESTATUS, and CLOSEPAPERDOLL functions to characters. 
		Can take a UID as argument of the char's window you whish to close.
-Fixed #2221,#1933,#1618: EF_Walkcheck blocking some stairs.

20-10-2013, RanXerox
- Changed: animation frames removed from DUPELIST on i_mongbat_dartboard
- Changed: value for color_o_silver
- Added: new CHARDEF placeholder for tiger animations- Changed: the value of color_o_silver
- Added: 7.0.33 encryption key

21-10-2013, RanXerox (Script Pack)
- Separated FOODTYPE and MAXFOOD in the monster files

23-10-2013, RanXerox (Script Pack)
- Added: more candy and chocolate related ITEMDEFs
- Fixed: standing lamps
- Added: Charybdis (and tentacle), Tiger, and Killer Pumpkin CHARDEFs

24-10-2013, RanXerox (Script Pack)
- Fixed: bad defname reference in loot (should be i_mask_daemon)
- Fixed: tall jack-o-lanterns
- Added: spawn groups for Hythloth
- Moved: t_equipitem moved to its own file (since it will eventually be quite large)
- Modified: t_equipitem now implements:
            TAG.ElfOnly
            TAG.GargoyleOnly
            TAG.RareItem
            TAG.Stolen
            TAG.Exceptional
            TAG.CraftedBy
            TAG.DoNotEquip
            TAG.NightSight
            TAG.RESCOLD
            TAG.RESENERGY
            TAG.RESFIRE
            TAG.RESPOISON
            TAG.RESPhysical
            TAG.LowerRequirements
            TAG.LUCK
            TAG.STR
            TAG.DEX
            TAG.INT
            TAG.HITS
            TAG.STAMINA
            TAG.MANA
            TAG.HitpointRegen
            TAG.StaminaRegen
            TAG.ManaRegen
            TAG.FasterCastRecovery
            TAG.SelfRepair
            TAG.ExtraSkill1
            TAG.ExtraSkill2
            TAG.ExtraSkill3
            TAG.ExtraSkill4
            TAG.ExtraSkill5
  WARNING: Because many of the equipable items already had these TAGs, anyone
           using those items on a live shard should make sure all those items
           in-game are unequipped before installing this change!

25-10-2013, RanXerox (Script Pack)
- Minor updates to maps 2-5

27-10-2013, Ben
- Fixed #2227: Region.ISEVENT not working.
- Fixed #2229: STRREVERSE doesnt invert the entire string. (This was also the case for STRTOLOWER and STRTOUPPER)
- Added: DEFLIST which acts like LIST but readable only (Filled by server at loading time with lists of resources)
- Added: new Section to Sphere.ini [RESOURCELIST] with a list of resource blocks to be loaded into DEFLISTs
         Ex: Adding ITEMDEF in the RESOURCELIST will create a DEFLIST.ITEMDEF with all itemdefs loaded by the server.
- Added: Category, Subsection, and Description to ITEMDEF and CHARDEF (now the server can read them if directly in the DEF section and not under @create)

28-10-2013, Ben
- Fixed #2164: NPCs attacking from different floors
- Fixed: Issue with Client 7.0.33.1+ packet change

29-10-2013, RanXerox (Script Pack)
- Fixed: CHARDEFs in sphere_monsters.scp that were missing NAME or CAN
- Fixed: Bad reference to c_sea_monster in sphere_monsters.scp
- Fixed: Bad reference to e_equipitem in sphere_item_provisions_clothing.scp

29-10-2013, Ben
- Added: Cliloc support for start location in clients 7.00.13+
- Updated: Sphere_map_points0.scp with new STARTS information ([STARTS 2] includes a cliloc line as the 4th argument)
- Tweaked: Stacked items should no longer flip.

30-10-2013, RanXerox (Script Pack)
- Fixed: Improved TAG management related to TAG.OVERRIDE.REGEN* in sphere_item_typedef_equipitem.scp
- Fixed: Removed reference to jobNecromancer event from sphere_citizens.scp

31-10-2013, RanXerox (Script Pack)
- Noted: Comments in the sphere_item_typedef_equipitem.scp file were improved
- Added: HTML_REDTEXT and HTML_WHITETEXT to sphere_defs.scp
- Added: TAG.GargoyleOnly to i_gargish* weapons in sphere_item_provisions_weapons.scp

1-11-2013, RanXerox
- Modified: The weather algorithm so that if you set a sector's rainchance to 100, it will always rain
  Note: rainchance actually means "precipitation chance". If the coldchance is high enough, the precipitation will be snow.

9-11-2013, Ben
-Fixed #2238: Muldiv returning different values on linux.
-Added #2226: Dupeitem is now readable. Return 0 if not a dupeitem.
-Added #2232: Made @Rename trigger when a player changes his name
			   ARGS IN as the proposes char name
			   ARGS OUT as new char name
			   ARGO is the char getting his name changed.
 
10-11-2013, Ben
-Added #2210: Picking up an item in a stack will cause above items to fall unless they have attr_static or attr_move_never
-Fixed #1764: LOS issue with stacked items
-Fixed: crashed caused by items stacking too high.
-Possible fix for Pathfinding on maps other then 0. (Needs testing)

11-11-2013, Ben
-Fixed: Error with @Rename trigger causing names to have random characters
-Fixed #2010: Pathfinding now works on maps other then 0 (Been tested this time)

12-11-2013, Ben
-Fixed #2240: Time running at double speed caused by new Muldiv calculation
-Tweak: Split EF_ItemStacking into 2 setting. EF_ItemStackDrop 0x08 will take care of the item dropping part.(for debuging purposes)

17-11-2013, RanXerox (script pack)
-Fixed: all typo's of the word Axel
-Fixed: arcane clothing items
-Fixed: Gargish maul and war hammer TAGs

17-11-2013, Ben
-Added: Destroy function which is like Remove, but will not be stoped by a return 1 in @Destroy

23-11-2013, Khaos
-Added: New Character and Item variables for use with EA iprops and other support. These function as TAGs and are made for static naming.
 A manual is in the works. Some of these might change as we bind them into the hard code with further support.

24-11-2013, Khaos
-Added: New Item can flags added:
	can_i_enchant
	can_i_retaincolor
	can_i_imbue
	can_i_exceptional
	can_i_makersmark
	This also allows for enchant=<bool>, etc. for each on items.
-Added: New attr_flags added.
	attr_imbued
	attr_exceptional
	attr_enchanted
	attr_questitem
	attr_insured
	attr_nodrop
	attr_notrade
-Added: sphere_defs.scp; new can_i_* and attr_* flags are now added to the files.

24-11-2013, Ben (script pack)
-Tweaked: sphere_dialog.scp to allow ATTR in .info dialog to use 8 chars instead of 4

25-11-2013, Khaos
-Added: can_i_recycle has been added to the core. As above; can be set with the CAN flags or as recycle=1/0.
-Added: attr_lockeddown and attr_secured. I removed these from the variables.

26-11-2013, Khaos
-Fixed: Variable typo for Dammodifier.
-Removed: removed NEWBIE behavior from attr_blessed2 and attr_cursed2.
-Modified: attr_blessed, attr_nodrop, attr_notrade, and attr_insured were added to this drop behavior and should
 by default not got to a corpse on death now if it is a player item.
-Added: Cliloc handling for ATTR_SECURE -> "locked down and secure" and ATTR_LOCKEDDOWN -> "locked down"
-Modified: AI Behavior now checks for not only attr_newbie items when looting, but now testes for the following:
 attr_insured, attr_blessed, attr_notrade, and attr_nodrop. These won't be looted by NPCs.
-Added: VARIABLES: SOULCHARGECOLD, SOULCHARGEENERGY, SOULCHARGEFIRE, SOULCHARGEKINETIC, SOULCHARGEPOISON, and
 INCREASEGOLD to both item and character variables.

26-11-2013, Khaos (Script Pack)
-Added: Mordaunts_House_System.zip was added to the ADDON folder containing an up-to-date version of Mordaunt's
 housing system using the new attr_flags that were added.

27-11-2013, Khaos (Script Pack)
-Changed: Spheretables.scp;
	- Commented out HELP and TOME. No function was found when tested.
	- Uncommented the maps, map points, and guild stones. Left scripts/custom commented since not everyone has this folder.
	- Moved some plevel1 functions to plevel2. They shouldn't have been in plevel1.
-Changed: sphere.ini;
	- Uncommented the maps and changed instructions for non-ml compliance.
	- Resdisp is now 7 for auto SA compliance. (I didn't touch expansion code though within the ini otherwise).
	- Uncommented ZEROPOINT for use with ML map0 and map1. Comment it out if you aren't using the newer maps.
-Changed: sphere_region.scp;
	- All regiontypes resources now add up to 100.0.

28-11-2013, XuN (Script Pack)
-Added: def.STONECONFIG_MISC_RECRUIT_MAXDISTANCE to do a control check of max distance allowed for the player being recruited.

30-11-2013, Khaos (Script Pack)
-Added: sphere_genericstone_config.scp; missing check. Sorry. XuN sent it to me after the last update.
-Modified: sphere_region.scp; it was missing the REAPAMOUNT lines from every resource. This is corrected now.

30-11-2013, Khaos
-Added: can_i_reforge/REFORGE=1/0 and attr_reforged to sphere. EA Seems to check these for reforging runic items.

-Added: PERMITTEDUSE variable on chars and items.

-Removed: ONLY* variables in favor of PERMITTEDUSE.

-Added: Permitted Player Use Event to the addon's folder in the scripts to directory; full soft code use of the new variable is
 used in that script. sphere_defs.scp now contains the soft code flag system for use with this script.
 
01-12-2013, XuN
Added NameLoc variable for items so you can set a ClilocID for using it as name and show up by script by showing NameLoc instead of Name. 

02-12-2013, Khaos
-CHANGED: PERMITTEDUSE to CANUSE variable on chars and items. (This was done on the empty variables for help with the base packs
 and to allow more free change usage. Binding this internally would have left out customization for others).

-CHANGED: Switched out Permitted use code in the scripts to CANUSE flagged code. Cleaner look and better wording.

-ADDED: Followerslots to Chars

03-12-2013, XuN
-Removed duplicated entry 'height_0c8 16 //DEFNAME=c_horse_tan' from sphere_defs.scp

03-12-2013, Ben (script pack)
-Added: NAMELOC functionality. It can be set for items and chars, in the *DEF sections or in scripts (not directly in game)
		If used, it will display this cliloc instead of the default name (where clilocs are shown)
		When used on chars, cliloc 1116690 is used instead of the original 1050045 to preserve prefix and suffix
		
04-12-2013, XuN
-Added @ResourceGather for RegionResources and @RegionResourceGather for Players:
	This trigger is being fired just before gathering skill has finished (after all animations and timings)
	Local.ResourceID is the ID of the item being gathered (Writable)
	Argn1 is the amount of local.ResourceID being gathered (Writable too)
	Return 1 cancels Gathering
05-12-2013, Khaos (Script Pack)
-Fixed the &= in the new CANUSE flags in Addons from processing an undefined symbol error.
-Added Expansion_Player_Event.rar to ADDON section for the suggested usage of EXPANSION Variable on Items and Characters.

08-12-2013, Khaos
-Fixed: Throwing is now working internally as any other ranged fight skill. It now processes gains, skilluse, etc.
 Anims were fixed for this as well. (still haven't set flying anims yet, be patient)
-Added: T_WEAPON_THROWING: Treated as a bow type with RANGE Parsing, TData3/4 values.
-Added: T_WEAPON_THROWING to sphere_defs.scp. Also added T_SOUL_FORGE and T_FURNITURE to sphere_def.scp for base pack.

13-12-2013, Khaos
-Added: EventsItem=e_youreventhere; was added to the sphere.ini and hard code. Functions as eventsplayers/pets/regions.
 This code fires on ALL items if something is in the global event and fires after tevents and before typedef. Don't overuse
 this. We found legitimacy in this addition with a few ideas it would be needed for.
-Changed: attr_nodrop and attr_notrade combined in one as Attr_NoDropTrade. Same with the two variables are now NODROPTRADE on items.
-Added: attr_artifact now takes the spot of attr_notrade
-Changed: attr_artifact items won't take fire damage on clothing unless scripted otherwise.
-Changed: sphere_defs.scp to reflect new attr_* edits.
-Changed: REQEXPANSION -> EXPANSION in the Variables on Items and Chars.

14-12-2013, Khaos
-Added: Char and Item variables for Bane and SpellConsumption
-Fixed: Possible fix for dismount trigger not being called first when mounting a mount while on a mount.

15-12-2013, Ben
-Moved: TAG.OVERRIDE.AMMOANIM , AMMOANIMHUE , AMMOANIMRENDER, AMMOTYPE to permanent variables. (ex:TAG.OVERRIDE.AMMOANIM -> AMMOANIM)
		These can be set on Items in game or in the ITEMDEF section. (They can be set on all items but only in use on archery types)
-Added: AMMOCONT to Items and ITEMDEF which can take the UID of a container (for specific container) or an ID (for a type of container)

15-12-2013, XuN
-Added: Spellflag_bless and Spellflag_curse for blessing spells like Agility, Blessing,etc and for Weaken,Curse, etc.
-Modified: sphere_defs.scp and sphere_spells.scp to add these spellflags.

15-12-2013, Khaos
-Added: BONUSHITSMAX, BONUSMANAMAX, BONUSSTAMMAX, and REGENFOOD variables to prepare for a huge overhaul of the internal overrides and status
 bar packet.
-Added: INCREASEDEFCHANCEMAX, RESPHYSICALMAX, RESFIREMAX, RESCOLDMAX, RESENERGYMAX, AND RESPOISONMAX variables for CHARACTERS ONLY. The
 new status bar packets checks for client >= 7.0.3. Full functional now with THOSE variables and those on it. Ones added earlier for the mis-
 informed information won't be leaving the servers since they might be for EC.
-Changed: PlayerStatusUpdate Packet now processes the variables it uses.

16-12-2013, Khaos (Script Pack)
-Changed: Changed colors_neutral range from { 1801 1887 } to { 1801 1908 } as noted on bugtracker.

22-12-2013, Ben
-Changed: LUCK, CURFOLLOWER, MAXFOLLOWER, and TITHING to work on all chars, not just players.
-Added: Support for local database (SQLite) through LDB. reference. (No External programs required!)
		-Syntax is similar to MySQL, but slightly different http://sqlite.org/lang.html
		-Functions are almost the same as DB. with a few changes.
			LDB.CONNECT "filename" to open a database file
			LDB.AEXECUTE and LDB.AQUERY are non existent
		-SQLite database manipulation program can be found here http://sqliteexpert.com/download.html

02-01-2014, Khaos (Script pack)
-Changed: This upload is containing the rework of multidef files with new naming conventions, price adjustments, etc. spheretables.scp
 has been updated to reflect loading of the multis folder. New syntax is m_* instead of i_multi_*.
-Added: Added variant versions of tents and evil compound with doors and signs. Wheat Cottage got doors and a sign as well.
-Added: sphere_defs_2.scp This will now be loaded after sphere_defs.scp containing any backwards compatibility I do.
-Fixed: Broken treasure multis should be fixed based on some old revisions I saw in an old script I had.
-Changed: Mordaunt sent me an updated housing system to match the new house and foundation defnames.
-TODO: Add in the new multidef info to deeds and vendors.
-Moved: spk_ship_cmds to speech folder.
-Fixed: New ships were using t_multi and not t_ship. I assume this might have been causing some of the alleged "bugs" with them. They
 are now all using t_ship.

03-01-2014, Ben
Fixed #2256: Reworked NPC object throwing..
->canseelos checks now applies to overrides
->changed tag.override.rock to NPC variable THROWOBJ (can take numerical or string ID now)
->changed tag.override.dam to NPC varialbe THROWDAM min,max (can also be "THROWDAM max" for non variating damage)
->added THROWRANGE min,max  (can also be "THROWRANGE max" with a min of 2 by default)
->All 3 variables are available on dynamic npc or in CHARDEF
Fixed: AMMOANIM,AMMOANIMHUE,AMMOANIMRENDER,AMMOCONT, and AMMOTYPE no able to be read directly from SERV.ITEMDEF...

04-01-2014, Ben
Fixed #1904: EF_WalkCheck causing some NPCs to climb impassable terrain.

05-01-2014, Ben
Added #1638: Defmessages are accessible with <DEFMSG.msg_name>
			->Also not documented but available before: Defmessages can be set with "DEFMSG.msg_name new_msg"

09-01-2014, RanXerox (Script pack)
-Fixed some duplicate itemdef and defnames

10-01-2014, XuN
Changed: MaxFood is now writable.
Added @TradeCreate trigger for chars, fired after trade windows are created:
	SRC=The other player.
	Argo=Item wich starts the trade.
	return 1 stops the trade.
Added @DropOn_Trade trigger for items:
	Act=item adding to trade window.
	Argo=Other player.
	return 1 blocks the placement.
Added @TradeClose trigger for chars, fired before a trade window is being closed (Opossed to @TradeAccepted).
	SRC=The char closing the trade window.
Fixed: Players can now open their containers while placed on trade windows (still cannot pickup items from them, nor them).
Change: Players used to be able to open the containers of other players while they were inside a trade window, these behaviour is now controled in sphere.ini.
Added: Ini option 'TradeWindowSnooping' to handle this behaviour: 0 will open the bags, 1 will call for snooping (or deny it by your scripts).
Notes:	-For now there's still a issue causing the client to crash while someone with a trade window open closes his client or just logs off.
		-invisible (hidden) players can open trade windows to another players (but only first player will see it, this behaviour will remain, it can be fixed with @TradeCreate).

11-01-2014, Ben
Fixed #2258: Some properties returning as hex instead of decimal.

12-01-2014, XuN
Change in @TradeClose:
	Src is the player closing the window.
	Argo is the other player.
Fixed: Items being able to move while inside a container inside a trade window.
Fixed: Containers on the ground not being able to open.
Changed: Ships work again in Lost Lands.
Fixed: Disconnect not working correctly with trysrv in high privileged characters.
Added: return 1 to f_onchar_create, it blocks the creation and disconnects the client.

13-01-2014, XuN
Removed: tag.override.noto.$uid, having one tag per 1 character viewing this is insane.
Added: @NotoSend, this trigger will override the default color for status bar and character 'mouse hovering' color (Replacement for tag.override.noto.$uid)
	src=The player viewing this char
	argn1=bar/char color (0 will let the default system run)
Note: The first 7 colors are the same as NOTO_* definitions, but you can use all your hues range (however the colors does not display like in items/chars)

15-01-2014, XuN
Fixed: Items being able to move inside containers placed in trade windows (semi-fixed before)
Fixed: Gold function now updates automatically the status bar.
Fixed: Move back the character data before f_onchar_create to be able to read it again.
Added: @SeeHidden trigger (Heavy load, keep it clean) fired when a char is going to see (or not) an invisible character (just like staff see other staff members while invisible)
	argn1=Invisible/Visible (but grayed out)
	No returns for this trigger.

17-01-2014, Ben
Fixed #2244: SERV.ACCOUNT UNUSED xxx can now take any functions with the account being the default in the function.

19-01-2014, Ben
-Added #1607: "LIST.XXX.SET args,..." This will clear the list and set each arguments (separated by a ,) as an element of the specified LIST
-Added: "LIST.XXX.APPEND args,..." This acts the same as SET, but will not clear the LIST. It will add to the LIST
-Change: String parsing should now respect commas(,) as a character inside double quotes ("") instead of treating it as a separator (for most places anyways)
		This allows situations like this:   LIST.XXX.SET value1,"value2,value3",value4  to have a result of:
		LIST.XXX.0 = value1
		LIST.XXX.1 = value2,value3
		LIST.XXX.2 = value4
-Added #1787,#2142: "LIST.XXX.SORT args"  This will re-order the the list using 'args' as order method.
		'No args' or 'asc' - sorts case sensitive ascending
		'i' or 'iasc' - sorts case insensitive ascending
		'desc' - sorts case sensitive descending
		'idesc' - sorts case insensitive descending

23-01-2014, XuN
Fixed #2257: Weapons now doesn't hit from Range+1
Added tag.override.SpellTimeout to alter default .ini setting to individual players.

25-01-2014, XuN
Added BUILD function to server, wich returns the svn's build number via <serv.build>, can be used on scripts to keep up versioning and stop the code or do different things between versions in example. (Ok, caught, Ben did it!)

25-01-2014, Script-Pack (Coruja)
Updated sphere_defs.scp (#2255)
colors_skin {1002 1058}
colors_hair {1102 1149}
colors_pink {1201 1254}
colors_blue {1301 1354}
colors_green {1401 1454}
colors_orange {1501 1554}
colors_red {1601 1654}
colors_yellow {1701 1754}
colors_neutral {1801 1908}
colors_snake {2001 2018}
colors_bird {2101 2130}
colors_slime {2201 2224}
colors_animal {2301 2318}

25-01-2014, Ben
-Fixed #2266: Trade Window memory not being removed.
-Change: LIST.xxx.FINDELEM args will now search as a string if 'args' is not a number regardless if it's inside double quotes "".

04-02-2014, XuN
Fixed #2273: Crafting skills with skf_craft not working like they should (Note: skf_scripted means the script is totally custom, for everything, so skf_craft won't work with skf_scripted).
Fixed #2267: Items in the cursor (layer_dragging) are now bounced if a target is opened to the player.

05-02-2014, XuN (Script Pack)
Fixed: changed back i_multi to the new m_ naming style in sphere_item_provisions_deed.scp.
Updated Mordaunt's House System to version 2.3.4.

09-02-2014, Ben
-Added: New variable TIMESTAMP to dynamic items and characters. (To allow for server time to upgrade to INT64)
-Moved: t_corpse.more1, t_book.more2, t_message.more2, t_eq_memory_obj.more2 to new TIMESTAMP
-Added: t_forest and t_jungle to sphere_defs.scp to fix ISNEARTYPE problems
-Fixed: <SERV.BUILD> returning date instead of revision number even though revision number is available.
-Changed: Most Interger types to INT64 for higher time support. Tags and Vars also can hold 64bit numbers. This fixes #1447

13-02-2014, XuN
Fixed: Players now become instantly GuildMasters when placing a Guild Stone instead of waiting until first DClick.
Added functionality to the ATTR_LOCKEDDOWN and ATTR_SECURED flags: locked down items should not be able to be moved, decay and be eaten by npcs (and some more default behaviour), secured items have all this checks but not the ones related to pick up and use.

Script Pack:
Modified: Iron ore now requires 0.0 Mining instead of 20.0.
Updated: New update of Mordaunt's house system.
Updated sphere_msgs.scp: Added ITEMUSE_SECURED, ITEMUSE_SECURE_ON and ITEMUSE_SECURE_OFF

15-02-2014, Ben
-Fixed #2275: NPCs walking through multi doors
-Fixed: Targets not removing when using SELF and LAST

16-02-2014, XuN
Modified @StatChange: now is working properly in EVERY stat change, and not only in the stat gain/loses
	argn1=statid (maxhits,maxmana,maxstam and maxfood are checked now too)
	argn2=the current stat value
	argn3=the new value
Fixed some new variables not working.

ScriptPack:
updated sphere_events_npcs.scp: Functions ModMaxHits/Stam/Mana to work better, they also accept += and the rest of operators.
added: sphere_attr.rar to Custom folder containing some basic behaviour for attr_secure and attr_nodroptrade (for now).
Updated Mordaunt's house system to version 2.3.7

16-02-2014, Ben
-Added #2270: summoned tag added to summoned creatures if CHARTAGS=1 in sphere.ini
Script Pack:
Corrected some defnames - i_fruit_cantelope -> i_fruit_canteloupe
 i_fruit_gourd1 -> i_fruit_gourd_yellow
 i_fruit_gourd2 -> i_fruit_gourd_green

17-02-2014, XuN
Added targetcancel function to force closing a target. 
Fixed some new variables returning hex values. 
Added functionality to RegenHits/Mana/Stam, they use the current tag.override.regen_x values 

Moved all @SkillChange triggers to CChar::Skill_SetBase, now every skill change is calling this trigger (as it should), no matter of .skill_name, .allskills, skillgains/loses and skill trains.
Fixed serv.Regenx returning value*10

18-02-2014, XuN
Regeneration Tweaks: 
	-Moved up a check to force stop in this stat, so useless checks are avoided in a function fired in each tick (each lil improve is a win!).
	-Added FOOD as a regen stat (RegenFood or tag.override.regen_3)
	-ADDED RegenValStat variables (RegenValHits, etc) to work as the RegenStat variables but with tag.override.regenval_x.
	-Removed @Hunger
	-Removed weird check that multiplied the regen time *2 if the stat was not food, it now works with the time specified in sphere.ini
	-Removed weird "Bonus" in HITS giving more delay than the default one, it should sustract it to be a real bonus? however, timers are handled in the trigger now and following the default ini settings.
	-Removed tag.override.regen(val)_x: RegenValStat is now readed inside @RegenStat and RegenStat is readed before it, cannot be modified inside without the trigger bein fired in each serv.tick. RegenStat overrides ini setting now (wich is more intuitive when scripting)
	-Added @RegenStat trigger fired after
		-local.StatID=(0=Hits,1=Mana,2=Stam,3=Food). Writable, never higher than 3.
		-local.Value=The amount of points being regenerated (or decreased in food's case). Writable, can be negative but 0 works like return 1
		-local.StatLimit=by default=<MaxStat>, allow this stat to pass the limit when regenerating, or limit it lower. Stats over this value will go down in each tick until they reach their limit. This does not work with food as food shouldn't ignore its limit (0).
		-return 1 Stop de regeneration of this stat, but not preventing future checks, to do that set the RegenHits to a very high value.
		
Added f_onaccount_connect to sphere_serv_triggers.scp, READ IT CAREFULLY, I switched the default return procedure here for safety, return 1 will allow the account connecting no matter you have checks or not.
Added LowerReq to the ReqSTR check when trying to equip items for both items and chars (It checks for LowerReqs on the item and in the character too to substract to the real ReqSTR)

23-02-2014, XuN
-Modified: CanUse is now only an item property, it also returns now values in hex format to work with it as a flag variable. 
-Sphere.ini: Added the maps 2-5 but commented out, added a few missing comments in some flags. 
-Added a check to IsTrigUsed to avoid trigger calls while serv is loading, this will improve load times and avoid several unexpected errors. 
-Removed SKTRIG_STROKE's checks from skills and moved to a new function to keep together all the checks giving more control to skills.
-Added skill_stroke() wich handles the strokes left and sound for craft and gathering skills and also a new trigger.
-Fixed amount of strokes to each crafting skill, they were random, now they have 2 strokes by default.
-Added @SkillStroke trigger:
        Local.Skill=Skill ID. (Read only).
        Local.strokes=Strokes left*     (Read/Write).
        Local.Sound=Sound to make in this stroke if any (Read/Write).
        Local.Delay=Delay until next stroke (10 = 1 second).
        return 1 Abort the skill.
        return 2* Abort the consumption of resources in this stroke.
 
        *Alchemy works different so its working with some exceptions:
                -Local.Strokes instead of going down it's going up until it reach the total strokes count, wich are equal to the amount of resources. In each stroke if no return is given resources are consumed.
                return 2 Its only allowed in alchemy skill, returning this will let the skill continue to next step (stroke, finish...) without consuming anything in this stroke.
-Modified @SkillStart: Local.CraftStrokeCnt is NOT writable for alchemy, since the skill works different and cannot be overriden this way, use @SkillStroke to add more Strokes if you want.
-Fixed #2267: MakeItem function now bounces any item in layer_dragging.
-Moved some new variables to return decimal numbers instead of strings.

23-02-2014, Mordaunt (Script Pack): 
Another update to sphere_item_provisions_deed.scp, adding new ships and moving their names to m_ too.

24-02-2014, XuN
-Fixed #2267: MakeItem function now bounces any item in layer_dragging. 

25-02-2014, XuN
Actual crafting skills (Blacksmithing, Tailoring...) now are not handled as crafting skills by the source, instead of that a SKF_CRAFT is required in their [Skill ] (Excepting Alchemy by the moment)
WARNING: From this version a update of sphere_skills is needed (read below) or crafting skills will not work.
Script pack:
	-sphere_skills.scp: Added FLAGS=SKF_CRAFT to blacksmithing,tailoring,tinkering,carpentry, cooking, bowcraft and inscription.

02-03-2014, Ben
-Fixed #2261: (script pack) Hairs/beards using wrong names (multiple scripts updated for this)

03-03-2014, XuN
Added local.Anim to @SkillStroke trigger.
Fixed wrong animations sent in each Stroke (Some are missing?).

14-03-2014, XuN
Fixed #2289:
-Added local.HitsHungerLoss for StatID 3 (Food) in the @RegenStat trigger, this value is still a percentaje and NOT the hitpoints to lose, but setting it to 0 will disable the loss of hitpoints for this character.
-Update: Damage received via Hunger have flags DAM_GOD|DAM_GENERAL|DAM_NOUNPARALYZE, if you want to change it just set Local.HitsHungerLoss to 0 and create your own damage there.

15-03-2014, Xun & Ben
Added support for packet 0xE2 (NewPacketAnimation), wich involves on updating some animations to a new packet and fixes most of the bugs on the gargoyles animations
(Throwing still needs some more updates to see the weapons coming back).

16-03-2014, Ben
Fixed #2285: FVAL returning wrong values in linux.

17-03-2014, XuN
Added @StatChange to ModStr/dex/int/food.

21-03-2014, Ben
Changed: Character creation to process 4th skill properly
Removed: EXTRASKILL.KEY and EXTRASKILL.VAL from f_onchar_create as they are being properly processed.

23-03-2014, matex
1. Fixed a crashbug in the nighly build.
2. @StatChange now receives argn1 for changes like:
0=OStr, 1=OInt, 2=ODex, 3=Food, 4=MaxHits, 5=MaxMana, 6=MaxStam, 7=MaxFood, 8=ModStr, 9=ModInt, 10=ModDex.

24-03-2014, matex
Fixed a calculation bug in Linux that e.g. had influence on Skilldelays

25-03-2014, matex
1. Fixed INT64 Expression handling.
2. Fixed a bug that occured when DIALOGCLOSE/DIALOG was sent to older clients
3. Fixed a minor bug in @StatChange

26-03-2014, matex
1. Fixed Cooking

26-03-2014, matex
1. Fixed a bug in ASC and ASCPAD with negative hex values
2. Fixed StatChange triggering for Food
3. Fixed a bug in the movement code, when climbing stairs with (BRIDGE|PLATFORM flags)
4. Updating logged out characters does'nt send a packet unless ALLSHOW is on

28-03-2014, Ben
Fixed #2296: Quality property not working.

28-03-2014, matex
1. Some internal values are still stored as 32bit (e.g. MORE1, ...). If they are negative their value
is now given as 64bit hex number so calculations,comparisions etc.. work on these values now.
2. Fixed an issue with MaxFood/Food. If MaxFood is set to 0, when read it will return the MaxFood level
of the chardefinition
3. Fixed: The server now only loads 1 Map, if you only use 1 Map.
4. Fixed: NPCs moving over obstacles when EF_WALKCHECK is disabled

29-03-2014, Ben
1. Uptaded Sphere.ini description for MAPx settings (These are now mandatory as of revision 1834)
2. Created an exception for MAP0 to load automatically even if not specified in sphere.ini (need at least 1 map to load)
3. Fixed another instance of 64 bit handling.
   (Script pack)
4. Fixed #2292: small change in teleport points for sphere_map_points0.scp and sphere_map_points1.scp
5. #2301 Few flag and typo changes done to sphere_map(2,3,5).scp

30-03-2014, Ben
Fixed system tray icon not removing on exit.

02-04-2014, matex
1. Introduced EF_NoContextMenuLOS => Will disable LOS checks for ContextMenu Use of npcs
2. Improved the standard Walkcheck stuff a bit (especially when dealing with landtiles)
3. Improved the placement code when items are dropped to ground
4. Increased standard LOS Zcheck treshold to 20
5. Changed the meaning of MOVERATE and TAG.OVERRIDE.MOVERATE. It is now a factor that scales the amount of DEX value 
   that should be taken into consideration for walking speed. E.g. if you only want 75% of the characters DEX value
   to be used in walkspeed calculations, you specify MOVERATE=75. Setting this to 100 has no effect.
6. Fixed: Backpack closing when items are dropped to corpse. (You can softscript this if you need it!)
7. Fixed: Use 1-Unit comparisons in Distance Checking. We can't use the axiom of pythagoras here because one tile has
   the same diagonal width as vertical and horizontal width. Doing real-world distance checkings messes up everything here!

08-04-2014, matex
1. Fixed HitsHungerloss. 
2. Modified behaviour of DiagonalWalkChecks when dclicking items in reach
3. If GM's add players to a party, the player is now added forcibly.
4. Fixed a possible itemleak when dropping too many items to the ground. (e.g. via newitem)
5. Fixed a null reference exception when DISPID of an item is set to something that wasnt defined via ITEMDEF. (e.g. change an item via set dispid)
6. Fixed an exception when you type 'c' in the serverconsole and have more than 100 players online ;)
7. Fixed a possible crash bug when players disconnect. Fixed players not logging out sometimes too. (this did only occur on VERY rare circumstances)

09-04-2014, XuN
-Added f_onaccount_pwchange to sphere_serv_triggers.scp
-Modified f_onaccount_create.
Both are fire now in each account creation / password change, no matter the source (serv.account xx ingame, via console, .set password...).

13-04-2014, Feeh
Fixed #2306: No lag should be noticeable after f_onserver_save call
Fixed #2293: Sphere should now read packets correctly from 6.0.1.7 clients

14/15/16-04-2014, Coruja (Script Pack)
sphere_map0.scp: 
-Removed: more generic non-OSI ROOMDEFs (huge cleanout) 
-Removed: some more weird ROOMDEFs 
-Added: missing regions for some islands 
-Fixed: incorrect GROUP set on Fire Temple, Ice Isle 
-Fixed: incorrect FLAGS set on Moonglow Zoo, Jail, Green Acres, shrine regions 
-Fixed: incorrect RECT set on Lord Britsh/Blackthorne Castle 
-Fixed: added missing 'region_flag_guarded' on Delucia 
-Fixed: added missing RECT tile on Cove, Green Acres 3 
-Small improvement on Britain and Mt Kendall RECT 
-Checkmate. Revised the entire script, everything is clean, fixed and categorized now 

sphere_map1.scp: 
-Moved: Solen Hive region from map0 to map1 (apparently Solen Hive exists only on Trammel) 

sphere_map_points0.scp: 
-Fixed: Delucia Passage teleporting to incorrect position 

sphere_map_points1.scp:
-Updated to match changes of previous sphere_map_points0.scp commit 

sphere_map0_ml.scp: 
-Moved: temp moved all SE/ML/HS regions to this file. Since it have only a few regions, maybe it's better disband this file and move all regions to their correct map file (map0, map3 and map4) 
sphere_map4.scp: 
-Small update on Tokuno Islands regions 

sphere_newb.scp: 
-Updated all skill to match OSI default starting items and colors. 
PS: Still need a few more additional items for professions (Warrior, Necromancer, Paladin, Samurai, Ninja) -> I can't update this for now, sphere only have support to skills on sphere_newb.scp,
	 but not for professions (it would be great if someone give a little help with this on the source :D) 

17-04-2014, XuN
Moved tag.override.SpellTimeOut to SpellTimeOut.
Changed: Now @Create trigger can be fired on EVENTS too. Note: be aware of the calls order (SkillClass -> added events -> ini -> chardef (for chars)),
		you can't retrieve the <str> ie in a custom event because it's fired before the @Create in the CHARDEF (which is the one setting it), this trigger
		doesn't have return 1 so if you set str=15 in your event it will be overwrited with the stat given in the chardef.

Changed all the variables in the 'New Variables' thread to make them readable not only from items/chars but from their BaseDef. That means, no need of IncreaseSwingSpeed
		under the @Create, you can set them like the NAME property. Added some variables too, read the post.

Script Pack:
Updated some scripts to reflect the variable's changes:
		-items/sphere_item_artifacts.scp
		-items/sphere_item_artifacts_minor.scp
		-items/sphere_item_artifacts_tokuno.scp
		-items/sphere_item_magic_jewelry.scp
		-items/sphere_item_provisions_armor.scp
		-items/sphere_item_provisions_clothing.scp
		-items/sphere_item_provisions_jewelry.scp
		-items/sphere_item_provisions_shields.scp
		-items/sphere_item_resources.scp
		-items/sphere_item_typedef_equipitem.scp
		-npcs/sphere_monsters.scp
		-npcs/sphere_monsters_custom.scp

sphere_item_vegetation.scp: Commented out TDATA3=i_vanilla_bean since it does not exist.

sphere_item_provisions_deeds.scp:
		-Fixed line 64: RESOURCES=i_deed,m_stone_and_plaster_house.
		-Changed all of the remaining i_multi_foundation_* to m_foundation_*.

sphere_item_provisions_armor.scp: changed all i_leather from gargoyle leather armor to i_hides_cut (lines 4704 - 5000).

For a complete change's track visit http://scripts.spherecommunity.net/

18-04-2014, XuN
-Fixed a Typo in sphere_item_typedef_equipitem.scp (SeldRepair -> SelfRepair)
-Updated sphere_monsters.scp to add stats to c_tiger and changed changed actual c_tiger to c_tigress
-Added item 03ec7 to sphere_item_ship_parts.scp to link it with c_tiger
-Updated sphere_defs.scp to reflect c_tiger and c_tigress as mounts.

19-04-2014, Ben
Changed: CANUSE flags can now be properly set on ITEMDEF and dynamic items (ITEMDEFs value is given to dynamic items on creation)
Fixed 1565: Removed TAG.OVERRIDE.RANGE from items and chars.
			Changed RANGE so it can be read/write on items and char (Dynamic object value overrides basedef value. Highest value between weapon and char is used in combat)
			RANGEH and RANGEL are also available as readonly variables for dynamic items and char now
			Added FIGHTRANGE to chars to replace old RANGE (readonly and returns the highest value used for combat)

19-04-2014, XuN
-Fixed 0002310: Changed t_weapon_bow in Throwing Items (sphere_item_provisions_weapons.scp) to t_weapon_throwing.
-Fixed 0002309: Mounted characters (humans & elfs) are not sending New Animation packet anymore.
-Fixed 0002294: Every CAN-related property (dye, enchant, flip...) is now working in base items instead of inheriting from DispID.
-Some internal changes related to IsHuman: changed it to IsPlayableCharacter and splitted it into IsHuman || IsElf || IsGargoyle and changed its calls.
	-Same for IsHumanID -> IsPlayableID = (IsHumanID || IsElfID || IsGargoyleID)
	-Fixed: Gargoyles are no longer able to ride anything.

21-04-2014, Ben
Fixed #2014: memory_aggreived not being set on players
Fixed #2311: t_light_lit not decaying as normal

23-04-2014, Ben
Fixed #1500: Quote causing problems for ARGS and ARGV. This is how is will work now in a simple function called TEST...
	-.TEST "a", b, "c,d"		Output: ARGS = a	ARGV[0] = a	ARGV[1] = b	ARGV[2] = c,d
	-.TEST "a"e, b, "c,d"		Output: ARGS = a	ARGV[0] = a	ARGV[1] = b	ARGV[2] = c,d
	-.TEST e"a", b, "c,d"f		Output: ARGS = e"a", b, "c,d"f	ARGV[0] = e"a"	ARGV[1] = b	ARGV[2] = c,d
	-.TEST f"a"g"h,i",b,e"c,d"	Output: ARGS = f"a"g"h,i",b,e"c,d"	ARGV[0] = f"a"g"h,i"	ARGV[1] = b	ARGV[2] = e"c,d"
	*All ARGV will now show even if quotes are found in first argument.
	*if quotes are found as the first character of an argument, what is found in the quote is the argument
	*if a quote is found but not at the beginning, or no quote is found, whole string is used as argument.

24-04-2014, Ben
Fixed #1739: ">" in QVAL's condition is now processed properly as "bigger than" instead of the end of QVAL

26-04-2014, Ben
Changed: TAG.OVERRIDE.DOORSOUND_CLOSE for DOORCLOSESOUND
		TAG.OVERRIDE.DOORSOUND_OPEN for DOOROPENSOUND
		TAG.OVERRIDE.PORTCULISSOUND for PORTCULISSOUND
Added: DOOROPENID to Items for new door system.
Fixed #2054: Should now be able to make any door work with new scripting options (default still works if no new data is found)
	-Game Item: (if no info here, use ITEMDEF info)
		-DOOROPENID=0676 //ID to change into (no DEFNAME as it's only used for dispid)
		-MOREX=-1 // X position change
		-MOREY=1  // Y position change
		-DOORCLOSESOUND=00f3 closing sound
		-DOOROPENSOUND=00eb opening sound
	-ITEMDEF: (if no info here and on game item, use default system)
		-TDATA1=00eb00f3 //WORD open | WORD close (sounds)
		-TDATA2=0676 //ID to change into (no DEFNAME as it's only used for dispid)
		-TDATA3=-1 // X position change
		-TDATA4=1  // Y position change

29-04-2014, Ben
-Fixed: VAR,TAG and LOCAL causing instability in the server with huge amount of data. Limit of 2048 caracters has been set.

30-04-2014, XuN
-Added SpellCount function for Spellbooks (Read Only).
-Tweaked Attacker system:
	Added attacker.add uid / attacker.delete uid. Self explanatory
	Changed: attacker.elapsed/dam are now writable

02-05-2014, XuN
Updated house deeds in sphere_template_vend.scp (Thx azmanomer).
Fixed: local.anim in @SkillStroke was readable but not writable. Fixed also alchemy skill sending anim 0 instead of no anim.
Rewrote totally the combat system for npcs ( I may have missed something but it's mostly done ):
	memory_war_targ is no longer used for npc combats (in the source) but is still present for scripting backwards, Sphere now uses the 'Attacker' system and a new variable added to it 'Threat'.
	added @CombatStart, @CombatEnd, @CombatAdd triggers, return 1 stops actions. (not recomendable, the actions will be called over and over obviously trying to start/add or end the combat).
	Attacker system (Added/Changed):
					NPC_AI_THREAT flag variable to ini enabling the use of the threat variable for choosing targets in combat (for npcs).
		General:	Attacker.add uid	(Write)		Adds the given UID as new enemy in the attacker list for this char.
					Attacker.Delete uid	(Write)		Remove UID from the attacker list.
					Attacker.Target		(Read)		Returns the current best target, these are the priorities: Threat -> Distance -> LOS.
					Attacker.ID uid		(Read)		Returns the 'n' id of the given uid (if in the attacker list, returns -1 if not).
		From ID:	Attacker.n.Threat 	(Read/Write)Gets or Sets the Threat of this character against me, Threat is most important factor to select a target. (this gets updated even if npc_ai_threat is disabled, but its not used)
					Attacker.n.Dam 		(Read/Write)Made it writable.
					Attacker.n.Elapsed	(Read/Write)Made it writable.
I'm updating the wiki with this new information also.

03-05-2014, Ben
-Fixed #2325: Corpse with morez > 0 were able to be draged
-Fixed #1781: Rejected moves should not count as a move for fast walk detection.

06-05-2014, Feeh
-Modified #2328: Dye tub now call @Dye on the dyed item
	ARGN1		= the hue value (r/w)
	ARGN2		= sound effect (r/w) (default 023e)
	ARGO		= the item that originated the dye target
	SRC			= who is dying the item 
	RETURN 1	= stop internal dying/sound. hue changes made from script will take place
	This will allow to change Dye behaviour for specific items without having to track the item id from other methods/scripts
	
07-05-2014, XuN
-Updated 'guards' defname in sphere_defs.scp, guards have other ID since long time ago.
-Added exception lines to the new Attacker_* functions so if something goes wrong... errors are more descriptive. Also fixed some exceptions appearing now.
-Attacker.elapsed -1 means no attacker decay.
-Fixed #2332: Range, also RangeL/RangeH not working as it should after the variables changes. Also made them return in decimal values instead of hexadecimal.
-Made BloodColor writable.
-Modified Guards system:
	Modified @CallGuards trigger for players calling separatelly than NPCs.
	This trigger will fire one time on the Player calling guards per each possible target, argn3 is set to 1 if the target is hostile, however if set to 0 nothing will happen, if this is set to 1 the character will be attacked by guards.
-Fixed guards dissapearing after calling them. They also stick now to the attacker system (if defined) being easier to create custom guards (changing how and when are they called will come in next commits)
-Added ini setting GuardsOnMurderers (1 by default), if set to 0 will only attack criminals, if set to 1 will attack criminals and murderers.
-Fixed: GuardsInstantKill now set hits to 1 before hit to ensure the kill, it was acting as instant hit instead of instant kill
-Changed: Moved the instant kill ouside the 'teleport' check, to ensure its using it everytime and not only if target.distance > 1
-Switched 2 checks to ensure that guards are not called on guards.
-Added a check in OnNoticeCrime() to avoid guards becoming criminals if send to attack any good character.

08-05-2014, XuN
Changed @Criminal trigger, now it's being called in every criminal call instead of in OnNoticeCrime(), return 1 prevents the criminal action, argn1 is how many time will the criminal status last.
Fixed CanUse returning weird values when ITEMDEF didn't have any value.
Added WeightReduction to item's weight calculations, so a item with 5.0 weight and 10 Weight Reduction will result in 4.5 weight stones.

09-05-2014, XuN
-Fixed an exception when attacking blue characters.
-Created a new vector-list to handle Notoriety: instead of having 2-5+ checks per second (and nearby character), the notoriety will be saved in this list to reduce a lot the loading related to this function.
-Added NotoTimeout to ini (default 30) to set the 'decay' for notoriety in each character for another one. However the list will be reseted in each criminal/murderer action/karma change/incognito cast.
-Fixed some Karma messages being shown even if the trigger returned 1. Fixed #2297: Trigger's returns were working wrong and any value given to argn1 was not really being considered by sphere unless return != 0.
-Fixed #2290: Now crafting skills cast animations and sounds when starting and in every Skill_Stroke > 1 (1 is the last, note that skill_stroke is called before the stroke ends, not before starting it).
-Removed SKF_NOANIM check after the @SKillStroke trigger, so even if the skill have this flag, it won't pass any value to local.anim, but if you want to have animation for a specific character, then you can write it.

09-05-2014, Ben
-Improved how RangeH/L 'fix' work and making them readable by dynamic items in every situation.

09-05-2014, Feeh
-Fixed #2326: Some mt_* CAN flags were not allowed to be assigned after char/npc creation. It should be assignable anytime from now

10-05-2014, XuN
Fixed #2334. Also forced that any character called to be a guard ( Argn1 in @CallGuards ) have brain_guard no matter what it is really.
Fixed #2333. Also fixing @Attack trigger blocking any other actions too when returning 1.
Added #1765 :New ini setting: AttackingIsaCrime making criminal any character without any damage, only attacking.

10-05-2014, Feeh (thanks to Ben)
Modified: @Dye is now called on more situations on both Items and Chars:
	-Script color changes					(SRC/ARGO = Server)
	-Dye tubs (t_dye_vat) color changes		
	-@Create color assignment				(SRC/ARGO = Server)
	-Staff .xcolor command					(SRC/ARGO = Server)

22-05-2014, Ben
Changed: char's AGE property now returns in days instead of seconds (CREATE is already in seconds)

23-05-2014, Feeh
Changed: Harvesting skills (Fishing/Mining/Lumberjacking) can now pack or place the harvested resource at feet
	Override ACTARG2 on either @SkillSuccess and @Success (remember that @SkillSuccess is called first)
	ACTARG2 = 0 -> Put the resource at feet
	ACTARG2 = 1 -> Pack the resource

26-05-2014, Ben
Removed and made permanent EF_FixKillTrigger, EF_WalkCheck, EF_NewPositionCheck, and EF_DiagonalWalkCheck

26-05-2014, matex
Fixed a small bug in the code that adds a player forcibly when GM's add to party.

27-05-2014, XuN
Changed: new order for @Create trigger in items, now the order is this; Itemdef, @ItemCreate for characters ( if proceed ), TEvents, EventsItem and Typedef
Fixed #2350: Guards working in non-guarded areas when GuardsOnMurderes=1
Fixed #2352: AttackingIsACrime checks making criminal when it shouldn't
Fixed #2351: Murderers never becoming criminal (didn't need before GuardsOnMurderers).
Fixed #2353: Wrong speech color for tillerman.
Fixed #2349. Also improved the Attacker_GetID() functions a bit.
Fixed #1491: region_flag_no_pvp not working fine. Also a wrong SkillUseQuick(tactics) related to it.
Added a new function to removed chars so they are being removed from attacker list's characters of their attacker's list. There's no reason to keep a not existing character.
Added ContextMenuLimit option to sphere.ini defining the maximum amount of options in each menu.

29-05-2014, XuN
Combat target for players will be 'reseted' after attacking a character, instead of checking for the best target ... so it now gives priority to player's choices.
Changed attacker.target also to reflect the changes and return the direct value instead of calling Fight_FindBestTarget().
Changed the way t_spawn_char creates the characters, they are now placed and the spawnitem is asigned before calling NPC_LoadScript() so, both spawn and regions can be read in the @Create (this can simulate a @CharCreate for spawns but on the character instead of the item.)
Changed summon to be placed also before the @Create.

01-16-2014, XuN
Changed @Attack: added Argn1 for npcs to allow modifying the initial 'Threat'.
Changed: Pets forced to attack (kill and attack commands) now adds 1000( plus the actual highest threat amount) to argn1 in the @Attack trigger.
Changed: Pets changes target instantly when attack is called always if NPC_AI_THREAT is off.
Updated sphere_defs_2.scp with m_keep.

06-06-2014, Feeh
Added: #2340 Sectors now do have flags, look at sphere_defs.scp for more info
Fixed: #2360
Fixed: BADSPAWN command was not stopping when the first bad spawn was found

11-06-2014, Ben
Added #2359: REGEN in REGIONRESOURCE can now have a range as argument.
Fixed #1827: Axis strip now works as case insensitive.
Fixed #2307: REGION_FLAG_INSTA_LOGOUT will now work in ROOMDEFs

23-06-2014, Feeh
Fixed #2366
Added: SERV.FUNCTIONS.x, it can display every available function and its access plevel
		Usage:
		SERV.FUNCTIONS.COUNT		- Return how many functions are available in your server
		SERV.FUNCTIONS.32			- Return the 33th function (zero-based)
		SERV.FUNCTIONS.32.PLEVEL	- Return the minimum access plevel to use this function
		SERV.FUNCTIONS.add1			- Return the minimum access plevel to use 'add1' function

1-07-2014, Ben
Updated: spherecrypt.ini with client 7.0.35
Changed: gold will now be taken from pack first and then from bank in a purchase
Fixed #2370: Not being able to walk up some stairs AGAIN!
Fixed #2371: Vendor buy/sell dialogs will now display in the same order as their templates

08-07-2014, XuN
Fixed, Updated and Improved the .dupe on both items and characters:
	- Added new variable's copy for both items and chars.
	- Duping characters now works fine: Stats, Skills, Tags, Items is copied now, by default every copied item have attr |= attr_newbie for security, using .dupe 1 will copy the items 'as they are' without mods.
	- Using .dupe 0 will create the mount's memory (if any) empty, so when npc dies... no mount appears, .dupe 1 will create another new duped mount character.

12-07-2014, Ben
Fixed #2372: Weightreduction causing errors when calculating weight.
Fixed a small issue with updating amount on items.

17-07-2014, XuN
Fixed #2345: Wrong titles for Elder/Legendary Bushido and Ninjitsu skills, updated sphere_msgs.scp.
Readjusted the skill ranges for skill titles according to http://www.uoguide.com/Skill_Title .
Added SKILL_TITLES to sphere_defs.scp to adjust the range for the skill's titles.

19-07-2014, XuN
SKF_GATHER enabled, only fishing will have this flag in sphere_skills.scp, so now @Stroke and @SkillStroke can be used.
@(Skill)Start and @(Skill)Stroke now use ACT as a reference for the worldgem.
@(Skill)Start have local.GatherStrokeCnt ONLY for gathering skills.
Fishing delay is now 8.0 (1 stroke), the splash animation is softcoded in sphere_skills.scp since working with timerf in the source will complicate things a little.
In the 'long and not even started' proccess of softcoding skills ... the sounds/animations (for fishing!) will be added in the skill's triggers.
Return 1 in @Stroke will fire @Abort.
Added RANGE for gathering skills determining the max distance for the proccess (added RANGE=4 for fishing in sphere_skills.scp)

22-07-2014, XuN
Removed default sysmessage when reading / writing Experimental and Option Flags directly ingame or from script.
SKF_GATHER is a generic flag now: Skills with this flag will automatically call for @Stroke and override default behaviour (no more calls to STAGE == SKTRIG_STROKE in the skill's function).
Added Range and SKF_GATHER to mining and lumberjacking, softcoded some code related to SKILL_STROKES of them (and fishing also) in sphere_skills.scp.

02-08-2014, XuN
Changed tag.override.breath.dam to Breath.Dam
Added Breath.Hue overriding the default explosion color for breaths.
Added @PartyLeave: return 1 stops the action
Modified Dir function, <DIR <src>> will return the dir you should have to face <src> (Same as FACE <SRC> but not turning you, just returning the DIR value).
Added Reveal (flags): Reveal statf_hidden will reveal player if has statf_hidden, same for sleeping, insubstantial and invisible. 
	Sum this flags to reveal more than 1 invis state (ie: statf_invisible|statf_sleeping will reveal player if any of these flags is present on him).
	Reveal -1 will reveal everything (Even invis staff).

Changed: SpellFlag_NoUnparalyze flag in s_explosion will affect explosion potions.
Changed: Argo is now writable ( Remember that Argo can only be accessed via script and not ingame ).
Added SysMessagef function accepting text with strings and limited to 3 args. Example: sysmessagef "Hello %s, I have a %s and %s, be aware of me!",<src.name>,<findlayer.1.name>,<findlayer.2.name>
	It needs the text to be inside " " to create the first arg with it, but first and last quotes will be removed (only these 2).
Changed: SkillUseQuick is now RW and not only Read because not always need a return.
SpellEffect ( CChar::Spell_Effect_Create() ) now set as NEW the UID of the spell's rune, IE: 'spelleffect s_poison,2000,<src>' ... 'new.remove ' will remove the poison rune.
Added @(item)MemoryEquip firing when equiping any item in memory layers (Not normal @Equip-able items), in example: paralyze rune, criminal memory ...
	argn1 = layer on which the item will be equiped.
	return 1 deletes the item and prevents default actions.
Fixed 'Range' not being properly defaulted to skill's defaults when no value is in the skill.
Fixed SKF_GATHER skills going to negative values when local.gatherstrokecnt=1.

Added SKF_FIGHT to fighting skills in sphere_skills.scp.
Fixed ADV_RATEs for parrying being too high and causing the skill to not gain.

Minor changes to 0x20 packet.

Modified ResPhysical to work like armor.lo. Modified Armor to be writable (only for items) and also Dam (for items and chars) and changed them from BYTE to WORD.
Moved Weight to dynamic items too.
Fixed bad definition of t_stone_town type in the f_stonesys_gettypename function inside sphere_genericstone_functions, should be <DEF.STONECONFIG_TYPENAME_TOWN>.
Added ColorInvis, ColorHidden and ColorInvisSpell to sphere.ini overriding (if specified) the default color for .invis, hidding or the invis spell/potion.

Fixed items remaining on the ground on Enhanced Client when equipping them via double click.
Fixed PacketMapChange being fired when DClicking an item and turning around (without OF_DClickNoTurn enabled). This should decrease the amount of rubberband effects.

NOTE: The following changes are supossed to be usefull to redo the default combat system, but not using the new trigger will make the new script and the following code useless so this is not forced,
	just a help to rewrite the actual sys without doing a whole new combat system allowing to tweak each check.
NOTE2: These changes are in 'beta' proccess, please report any problem to bugtracker.
NOTE3: If I was not clear enough... this makes no difference with current systems if the new trigger and dam_flag are not used.

Added DAM_FIXED to sphere_defs.scp: this flag will make sphere asume that the argn1 value in @gethit is the final damage and will not do any formula calculations over it,
	will only cast sounds,animations, blood, memories, attacker.n.% update and @GetHit trigger.
	It also have some effects in the hit proccess (explained under).
Changed: combat functions (hit & gethit ) to allow easy override via script with DAM_FIXED giving a better way to override the default combat system while knowing also the resulting damage
Added sphere_combat.scp with the override of the default combat system and explanations of the new changes also.
Added Swing Types in sphere_defs.scp for combat compatibility.
	//  SWING_INVALID = target is invalid, searching another one.
	//  SWING_EQUIPPING = swing made.
	//  SWING_READY = can't take my swing right now. but i'm ready
	//  SWING_SWINGING = taking my swing now.
Added Swing variable for characters setting or retrieving the SWING_TYPE they currently have.
Added FullTrigger function working like 'call' to call triggers with full support with old args and locals making possible to override default triggers with your parameters.
	FullTrigger must be write only to avoid some problems so I added the return value in local.return, which can be readed after the trigger call.
	Usage: FullTrigger @DClick
Added @HitCheck trigger just in the beggining of the hit allowing to use only custom combat checks (default ones are in the supplied script) or to override the whole combat formulas.
	- Args
		Argn1 = SWING_TYPE. Swing will be set to this value after the trigger so you can 'jump' between swings with or without default checks.
		Argn2 = DAM_FLAGS
	- Returns
		return -1 SWING_INVALID
		return 0 default checks
		return 1 will make Sphere return the SWING_TYPE applied in argn1, so if you are in SWING_SWINGING and you set argn1 to SWING_EQUIPPING you'll have to start the hit proccess again.
				(Note, argn1 there will NOT set SWING to it's value).
	- Special returns will be fired when SWING_TYPE = SWING_SWINGING & FLAGS & DAM_FIXED
		return 0 will generate the default damage formula and flags (if not set via argn2) and then call the gethit function without DAM_FIXED applied.
		return 2 will finish the hit function AS IT IS and will NOT call the gethit function (this asume you are creating the damage, formulas and calling .damage function).
Note: Using new DAM_FIXED or return 1, -1 will obviously NOT call any skillgain, memory change, exp, attacker update, notoriety, actions, etc. Using this will (almost) make you to rewrite the whole system as shown in the given script.

03-08-2014, XuN
Modified Dir and Face functions (and the not soft-coded functions) to prevent loading all items in each dir change, even if they were not send to clients they were consuming resources in the serve

04-08-2014, Ben
Fixed #2362: Old attacker code interfering with new code.
Added: BREAK and CONTINUE to script loops. (CONTINUE will skip to the next iteration, BREAK will exit the loop)

06-08-2014, XuN
Fixed a problem causing Staff with gm body (03db) to stick with this corpse and blocking following commands because of the '=' automatically appearing, Update is called when setting the body value.
Added party.create msg,uid(s) where msg is 0/1 sending default sysmessages or not (usefull when forcing groups 0 = disable ), the following args (up to 9 more) is/are the players to add to this party.
Changed all party triggers (Except the @PartyRemove when argn1=1, which means informative remove when a @PartyDisband has been fired before and is in proccess now) returnable to stop their following code.
Fixed crash bug introduced in last patch.

08-08-2014, XuN
Multiples items overplaced not doing their 'effects', ie: spell fields, because of returning the code after finding the first item. All of the changes related to this can be overriden in @Step and @itemStep.
	- Paralyzed characters won't move to any t_telepad or t_moongate location if they are freezed or stoned.
	- t_shrine was blocking the effect of any other items in its location, so now if players place any field or explotion or whatever upon it = free reskill.
Added #2380: Spell Fields check now the Z when creating, adjusting their position to it.
	Moved the FIX: code to FixZ() for CItem and CChar.
	Added also a bool bForceFix to MoveTo forcing a FixZ() after the Object positioning, updated the whole pack of *::MoveTo() to accept the new bool.
Fixed #2381: Reveal not removing the memory when spell s_invisibility was casted (layer 39) (only removing potion effect (layer 44)).
Added m_defenseBase and m_defenseRange splitting up the m_attackBase/Ranged properly between armor and damage instead of using it for everything.
Enabled some disabled variables for KR client status bar.

09-08-2014, Ben
Fixed: Another issue with stairs...

10-08-2014, Ben
Fixed #2383: Weight not changing after a baseid change resulting in weird weight calculations.
Fixed #2382: Reveal causing server freeze.
Fixed: Paperdoll not updating body color when using invis spell

11-08-2014, matex
Added EF_NoDiagonalCheckLOS = 00000001. Disables Diagonal Passage checks for legacy LOS. (Not advanced LOS)
Added FACING function to objects which will give you the direction the object/npc would turn to if it looks towards SRC.
Optionally FACING takes a location or uid as argument. This UID/location replaces SRC in that context.

16-08-2014, Ben
Fixed #2386: Ghosts can't pass through doors anymore
Fixed #2385: No swing animation during combat, @HitTry doesn't fire.
Fixed #2387: Hunger/starving causing wrong damage.
Fixed #2380: Field spells creating items on incorrect Z. (Caused by the Fix funtion. Fix should now work better in all places)

18-08-2014, XuN
Fixed some problems with ResPhysical.
Added @Resurrect trigger:
	- argn1 is the hitpoints value the char will have when resurrected (RW).
	- argo is the corpse (if any near) (R).
Fixed some items removed from view in some circumstances.

26-08-2014, Ben
Fixed: SLEEP causing NPCs to die with double corpse.

04-09-2014, matex
Fixed: character hue not updating when Char is revealed.

04-09-2014, matex
Xun made the WEIGHT property on writable on items. I renamed it BASEWEIGHT because we need
WEIGHT not to return the weight of a single instance but also of the whole stack in scripts.
So WEIGHT is read-only again. If you want to change the base weight, use BASEWEIGHT.

07-09-2014, matex
Fixed: Armor not updating when BaseID is changed on an Item.
Fixed: EF_FixCanSeeInClosedConts always enabled in Debug builds
Fixed: Walking code. Only stair statictiles are priorized now near the map-surface. Platform tiles not. (players were falling through map surface)
Fixed: Order in which NPCvendor boxes are sent to the player (display bug)

10-09-2014, matex
Refactored some of the walking code. You now need NPC's and Players to have MT_INDOORS definitely for them to be able
to go under static tiles.
Changed MT_INDOORS to MT_NOINDOORS. Think that makes more sense.

13-09-2014, matex
Built in LOCAL.ArrowHandled for @HIT, @HITMISS
so if you set this to something different from 0 in the triggers
the server will not BOUNCE drop the arrow to the Target's feet on MISS
or bounce it to the Targets BP on hit. You can handle this yourself.
If you do nothing, the arrow will be deleted if Local.ArrowHandled != 0
You can prevent it from being deleted by moving it in the Trigger.

13-09-2014, Ben
Fixed #2397: Return 1 should now prevent the guards from coming under @callguards in all instances

01-10-2014, Coruja
- Fixed: Strange walk animation when using Alchemy skill.
- Fixed: MAKEITEM refusing to craft items on Cooking skill.
- Fixed: The pet poop now comes with ATTR=attr_move_never by default.

- Changed: Improved sound of pets pooping on the ground.
- Changed: A little sound/anim tweak on some crafting/harvesting skills.
- Changed: Reduced default RANGE on Blacksmithing and Lumberjacking skills (3 -> 2 tiles).
- Changed: Alchemy skill is now a craft skill like any other. No more exclusive behaviors.
  The skill is now used clicking on it's tool (mortar & pestle) instead click on the reagent or empty bottle.
  EFFECT now can be used to control the % of lost resources on skill fail.
  Skill stroke behavior now works fine on alchemy (LOCAL.CraftStrokeCnt on skill @Start, and @SkillStroke on chars).
  [sphere_skills.scp] Added FLAGS=skf_craft to alchemy skill
  [sphere_item_provisions_potions.scp] Added missing 't_mortar' on potions SKILLMAKE
  [sphere_msgs.scp] Removed some alchemy internal messages
  WARNING: Make sure to update your scripts following these changes, otherwise alchemy skill will not work anymore.

02-10-2014, Coruja
- Changed: Cartography skill is now a craft skill too. The craft now uses default MAKEITEM instead the hardcoded DRAWMAP.
  The skill is now used clicking on it's tool (mapmaker's pen) instead click on the skill button or blank map.
  Removed obsolete DRAWMAP hardcoded function. The behavior is now softcoded using @Create on map items.
  [sphere_skills.scp] Softcoded the client skill button behavior, it comes disabled by default
  [sphere_item_profession_cartographer.scp] Added new items for maps and mapmaker's pen
  [sphere_defs.scp] Added new hardcoded typedef 't_carpentry' used on the tool to open the skill menu
  [sphere_template_vend.scp] Updated NPC Mapmaker vendor buy/sell template list
  [sphere_skillmenu.scp] Updated cartography skillmenu
  [sphere_msgs.scp] Removed some cartography internal messages
  WARNING: Make sure to update your scripts following these changes, otherwise cartography skill will not work anymore.

07-10-2014, Coruja
- Added: New formula for dragon breath damage on NPCs brain_dragon, it's now NPC_CurrentHitpoints * 0.16 (if BREATH.DAM property is set, it will override the internal damage).
- Fixed #2405: Players becoming criminal when attack someone on the same guild.
- Changed: Increased NPCs view range from 12 to 14 tiles. This also affects the range to call guards.
- Changed: Cooking skill is now a craft skill.
  The skill is now used clicking on it's tool instead click on the raw food and select a fire source (but the fire source still needed in range).
  [sphere_defs.scp] Added new hardcoded typedef 't_cooking' used on the tool to open the skill menu.
  [sphere_item_profession_cooking_barkeep_baker.scp] Added typedef t_cooking on i_fry_pan, i_flour_sifter, i_rolling_pin. Also fixed many food items using wrong MOREZ
  [sphere_msgs.scp] Added/Removed some cooking internal messages
  [sphere_skillmenu.scp] Added missing sm_cooking skillmenu
  WARNING: Make sure to update your scripts following these changes, otherwise cooking skill will not work anymore.

08-10-2014, XuN
- Added Argn3 value in @UserWarMode telling Sphere to remove Attacker list after execution.
- Added a description of deletion in argn1 for @CombatDelete:
  0 = Forced (Blocked attack, default uncategorized actions...)
  1 = Max fight time has reached (Elapsed)
  2 = Distance/LOS
  3 = The character is no longer existing
  4 = Forced via attacker.delete methods (ingame/script)

- Fixed ResPhysical no showing the correct values in the Status gump.
- Fixed Stoned players being able to dismount. 

09-10-2014, Ben
- Fixed: RETURN 6 not halting scripts when inside an IF statement.
- Fixed: .fix will now default to the first terrain elevation instead of lowest Z possible.

10-10-2014, XuN
- Added local.anim and local.animDelay (this last one only working for classic clients) to @HitTry, so animations can be disabled and fired later in @hit (to remove the odd behaviour with new animation packets, which doesn't have delay).
- Added OF_NODClickTarget to ini, enabling this will not make the cursor appear as a target when double clicking weapons to equip them.

11-10-2014, Ben
- Added #2394: SMSG_DEF_UNICODE, MSG_DEF_UNICODE, IMSG_DEF_UNICODE to sphere_msgs.scp. If set to 1, messages will be sent in unicode unless overwriten with the the mode in @hue,font,mode.

11-10-2014, Coruja
- [sphere_defs.scp] Added new BFONT_* colors to use on HTML texts. Values already match most colors used on OSI dialogs.
- [sphere_map0.scp] Fixed duplicated a_dungeon_10 AREADEF (the last one was renamed to a_dungeon_19).
- [sphere_map_points0/1.scp] Fixed Hythloth entrance teleport.

12-10-2014, Ben
- Fixed #2416: @Enter region trigger will now fire after NPC stats are set in all instances.
- Fixed: local.return not being set in FULLTRIGGER if no args were specified.

14-10-2014, Coruja
- Added: New MAGICF_NOCASTFROZENHANDS setting on sphere.ini. If enabled, this will prevent cast spells if the char got paralyzed holding something on hands.
- Added: Missing behavior for SPELLCHANNELING item property. It's now working fine, items using this property won't get unequiped when casting spells.
- Fixed: Triggers @Start (spell trigger) and @SpellCast (char trigger) unequiping weapons and playing the spell cast animation even when the cast got denied using 'return 1'.
- Changed: Updated width/radius internal values for area/field spells (nothing really changed, just hardcoded values already set on sphere_spells.scp to be the default internal value if there's no value defined on scripts to override it).
- Changed: Create Food spell is now target-based. Using SPELLFLAG_TARG_* the food will be created on ground at target location, otherwise it will be created on caster backpack.
  [sphere_msgs.scp]: Added new messages for 'spell_create_food' and 'spell_try_frozenhands'.
  [sphere_spells.scp]: Removed target flags on Create Food spell. It will now create the item on backpack by default.
  [sphere_dialog.scp]: Added missing description for 'nodispose' on help guide.

16-10-2014, Coruja
- Fixed #1860: Spell cast behavior now check for spellbook/mana/reags before check for anti-magic region.
- Changed: return 6 on @SpellCast trigger now will skip anti-magic region check too.
- Changed: Polymorph spell now doesn't change char status anymore. If needed, this behavior can be softcoded using @Success on Polymorph spell (ACTARG2 [read/write] is the new body ID)
  [sphere_spells.scp]: Added missing spellflag_noprecast and cancel functionality for polymorph spell. If used while already polymorphed, it will remove the polymorph effect.

17-10-2014, Coruja
- Added: New MediumCanHearGhosts feature on sphere.ini (default value: 100.0). At this Spirit Speak skill level players can understand ghosts speech instead hear 'oOOoO ooO'.
- Fixed: Functions GM, PRIVSET and TOGGLEABBREVIATION not updating the char tooltip correctly.
- Fixed: MSG_DEF_COLOR def on sphere_msgs.scp not working when the char click on itself.
- Fixed: Char flag [stone] overriding [frozen] and [tame] overriding [npc]. Also fixed [tame] only showing inside guarded regions.
- [sphere_msgs.scp]: Added new defs to customize EMOTE color/font/unicode. These changes are global, and EMOTE still not support @color,font,unicode on individual messages yet.
- [sphere_map_points[0/1].scp]: Fixed 'Lighthouse' teleport not working.

18-10-2014, Coruja
- Added: New VendorTradeTitle feature on sphere.ini. If enabled, it will show the job title on vendor names (eg: Alan the Carpenter).
- Changed: Corpses now will be created with TAG.OVERRIDE.MAXWEIGHT already set (value is always the same as char MAXWEIGHT). This will prevent overweight problems if someone drop many heavy items on a player corpse and then resurrect the player just to make him get stuck.

20-10-2014, Coruja
- Changed: Scissors won't cut hair/beard anymore. Now proper items are needed to do it, like items usually found on NPC Barber (hair restyling, hair dye, etc).
- Changed: Sewing Kit can't be used directly on bolts of cloth anymore. To use the bolts of cloth we must cut it using scissors first.
- Fixed #2421: Using scissors on bolts of cloth now will convert it properly to cloth.
- [sphere_msgs.scp]: Added new message 'loot_criminal_act' when opening corpses to warn that looting items will be a criminal action.

22-10-2014, Coruja
- Added: Missing functionality of EF_PetSlots feature on sphere.ini. It's working now, but still need some testing and final tweaks.
  [sphere_msgs.scp]: Added new messages for petslots_try_*

23-10-2014, Coruja
- Fixed: Minor EF_PetSlots issues. Now everything is working fine and it's ready to use.
- Changed: NPCs using BRAIN=brain_animal_trainer won't give food to players anymore (but still able to feed pets nearby).

23-10-2014, XuN
- Changed Argn3 in @UserWarMode to force a war/peace status ( 0 = do nothing, 1 = force peace, 2 = force war).
  NOTE: Argn3 is no longer deleting Attacker's lists, to do so use attacker.clear.

26-10-2014, Coruja
- Changed: Many improvements on pet stables behavior.
  Also the max limit of pets that the NPC can hold for a player now is based on player skills (Animal Taming + Animal Lore + Veterinary). Usually it can hold 2~8 pets.
  If TAG.MAXPLAYERPETS is set on the NPC, it will override the formula and will be default value for all players.

- Added: Account character creation now will create characters with MAXFOLLOWERS=5 already set.
- Fixed: House customization engine creating doors using wrong type 't_door' instead 't_door_locked'.
- Fixed: EMOTE_DEF_* defs not working on attack messages (*Someone is attacking you!*).
- [sphere_msgs.scp] Changed 'stablemaster_*' defmsg to new defs/texts. I HIGHLY recommend update it, since the old 'stablemaster_*' defmsgs won't be used anymore.

27-10-2014, XuN
- Attacker.clear can be used now even if character doesn't have a Attacker list, so no error is log in console.

28-10-2014, Coruja
- Fixed: Function REGION.REGION.* returning wrong parent region if used on regions which is already the parent region.
- Fixed: Function MAKEITEM and some crafting skills always crafting itens using amount=1 instead follow the item replication rule.
- [sphere_defs.scp] Added html color defs for BFONT_LRED, BFONT_LYELLOW and BFONT_LCYAN.
- [sphere_monsters.scp] Changed human/elf/gargoyle MAXFOOD to 20 (OSI default value).

28-10-2014, XuN
- Fixed #2396: Attacking aborted when target is out of range, even if COMBAT_StayInRange is disabled.
- Changed Read mode for 'Title', now giving it a parameter will return the 'Trade Title' (Grandmaster Swordsmanship, Journeyman bowcraft, etc) instead of the custom title. (Example of usage: <title 1>).

29-10-2014, XuN
- Added can_i_forcedc (sphere_defs.scp), adding this flag to an item will allow it to be DClickable in every situation: from one side of the map to another, or even in another map, weared by another character, or GMs too, no checks at all.
  NOTE: Player's cant DClick what they don't see but they will be able to do it with the LastObject macro, or by knowing the UID and using 3rd party programs, be aware of that.

02-11-2014, XuN
- Fixed GetNPCBrain() not working as it should and returning wrong brain (in internal usages) and ignoring the Brain used in CHARDEFS in some cases.
- Added Ignore value to Attackers: Setting it to 1 will make the character ignore this target (mostly used by NPCs), when looking for target.
  @CombatAdd has now 2 arguments:
    Argn1 = Initial Threat (If used).
    Argn2 = Setting it to 1 make this enemy to be added as Ignored. (Setting it to 1 for a player in every NPCs will make this player be 'invisible' for them, good to create a faction system and such things).

02-11-2014, XuN, Ben, Feeh (and tons of help from Karma).
- Ship's patch:
  Added Packet 0xF6 (New Ship's Movement): This packet is affecting ships on client > 7.0.8d (High Seas ones), regardless of the multi files, patched ship's or not patched ones... it's a client's packet.
  Added Packet 0xF3 (Packet Container): Used to send tons of items/chars at once in one only packet, used to send items and chars inside multis (Houses and Ships). Clients > 7.0.0 (Stygian Abyss).
  Added ShipSpeed and SpeedMode for [Multidef ] definitions:
    ShipSpeed=2,1 (Period,Tiles): Period (in Tenths of second) tell the ship the delay until it moves again, tiles means the tiles moving (Default and suggested is 1, others won't work because of ... (read next line)).
    SpeedMode=(0x01 = one tile, 0x02 = rowboat, 0x03 = slow, 0x04 = fast). This modes have no sense until we have MultiThreading and can change the ticks per sec from 10 to 100 to make ships to move each 0.25seconds (which we cannot now).

  Updated multis_ships.scp with these new values.
  Fixed ship's planks not working.
  Updated the Update and Move (and their related functions) to send the minimal updates required, hence making less rubberband effects.
  Fixed some issues with EC and ships making visual strange effects, items staying behind the ship.
  Fixed some problems when turning the ships.
  Some more minor tweaks related to ships.
  
  NOTE: Mouse Wheel Movement packet is NOT included in this commit.

02-11-2014, Ben
- Changed: ARGN2 in @Abort and @SkillAbort (and other Skill triggers) will be the spell number if magery is used

03-11-2014, XuN
- Fixed #1820: Combat_PreHit not working with Archery.
- Fixed #1621: StatLocks not working, fixed and improved the whole statgain system.
- Updated spherecrypt.ini
- Changed .shrink now can have a value which will automatically bounce the figurine.

05-11-2014, Ben
- Removed previous changes: (ARGN2 in @Abort and @SkillAbort (and other Skill triggers) will be the spell number if magery is used)
- Replaced with LOCAL.SPELL (read only) as ARGN2 was already in use by some of the skill triggers.

09-11-2014, Ben
- Fixed #1644: Corpses will now move with ships.

10-11-2014, Coruja
- Fixed: SPELLTIMEOUT char property not working correctly.
- Added: support for some human/elf racial traits (only used if FeatureML is enabled on sphere.ini)
    Tracking skill: humans always have a minimum of 20.0 tracking skill, and elves are more difficult to be tracked.
    Max weight: humans can always carry an aditional 60 stones of max weight.
    Nightsight: elves always have nightsight enabled by default.

- Changed: Some internal improvements on Tracking skill
  Improved search distance.
  Ghosts can't be tracked anymore.
  Spyglass item is no longer required to use Tracking skill inside ships/boats.
  Triggers @Stroke / @SkillStroke now are called at each tracking stroke.
  Removed redundant skillmenu button "Track anything that moves".
  New OSI formula to check tracking difficulty when trying to track players. It will use the char skills (Tracking, Detecting Hidden) vs target skills (Hiding, Stealth).
  [sphere_msgs.scp]: Updated some 'tracking_*' messages. Also merged all 'skillmenu_text_*' (only used on tracking skillmenu) into 'tracking_*'.
  [sphere_skills.scp]: Added OSI-like support for ARROWQUESTS on tracking skill (softcoded). OSI uses only the arrow to track (with no messages) but I will leave the old messages as it is for compatibility purposes with old clients.

16-11-2014, Ben
- Fixed: Added Items on ships with .add will now move with the ship.
- Fixed: Ships should now move alot smoother with SA+ clients and back to normal with older clients

18-11-2014, Coruja
- Fixed: Pet tooltip menu showing to dead players.
- Fixed: Pet tooltip menu showing 'Drop' button when the pet has no backpack access.
- Fixed: Added missing 'Release' button on pet tooltip menu.
- Changed: Pet friends now have limited access to pets commands instead full access. Friends now can only use follow / stop / stay commands and open the pet backpack (if avaible).

18-11-2014, Ben
- Changed evelation at which items are considered to be part of a ship. (-2 to +15 from top of deck).
- Fixed: party_add_notleader defmessage was wrong -> party_notleader is correct.

22-11-2014, Coruja
- Added: Wisdom racial trait on elves (they always have +20 max mana). It works only if FEATURE_ML_UPDATE is enabled on sphere.ini
- Changed: 'Open Bankbox' / 'Check Balance' context menu buttons on NPC Banker (brain_banker) now will make the NPC hear 'bank'/'balance' words instead call hardcoded functions to open bank or check balance. In other words: now both context menu buttons and spoken commands are consistent and can be softcoded.

23-11-2014, Coruja
- Added: Tough racial trait on humans (they always have +2 hitpoint regeneration)
- Fixed: @GetHit trigger not returning some ARGN2 values (like dam_fixed).
- Changed: Updated some damage flags used internally on spells.
- Changed: RegenHits/RegenMana/RegenStam char properties now will override default Regen[0/1/2] values on sphere.ini instead decrease it.
- Changed: Optimized hunger/starving engine
  Fixed FOOD property returning to 1 after reach 0.
  Fixed hunger message not showing on mounted pets.
  Fixed @PetDesert trigger showing the pet desert message even if the trigger is using return 1 to prevent the action.
  Changed starving damage flags (dam_god|dam_general|dam_nounparalyze to dam_fixed)

- [sphere_defs.scp]: Updated [DEFNAME dam_flags] section to match the correct internal flag list.

29-11-2014, Coruja
- Added: FEATURE_AOS_DAMAGE on sphere.ini now will display to pet owners the damage caused by pets.
- Fixed: .DUPE function on items not duping the item timer.
- Fixed: NPCs showing wrong color on chars on some specific cases.
- Fixed: Paperdolls showing the "," after the char name even when there's no title to display.
- Changed: only players can have skill titles on paperdoll now.

04-12-2014, Ben
- Added: OF_NoSmoothSailing in sphere.ini to disable smooth sailing and keep old behaviour

06-12-2014, Ben
- Fixed: Crash caused by 2 handed weapons no updating properly
- Fixed: EF_PetSlots not checking chardef for FOLLOWERSLOTS
- Fixed: possible more ship errors...

07-12-2014, Coruja
- Added: Eating foods now will recover stamina too (OSI default gain: rand(3,6) + FoodRestoredByItem/5)
- Fixed: Console error when ridden pets get hunger.

14-12-2014, Ben
- Fixed #2437: Ships were able to turn onto other ships in certain conditions.
- Added #2429: TAG.SpawnItem will now contain the spawngem's uid for items that are spawned.

14-12-2014, Feeh
- Added: SERV.RTIME.GMTFORMAT. Works exactly like RTIME.FORMAT but returns GMT time

17-12-2014, Ben
- Fixed #2437 & #2440: More ship movement issues.

21-12-2014, Ben
- Fixed #2442: More Ship errors.
- Fixed #2444: better detection of valid .add arguments.
- Added: d_add dialog will now be used, if it exist, for .add instead of menu_additem
- Fixed #2441: Gargoyle horn color not bing set properly.

23-12-2014, Ben
- Fixed: Minor bug in .add command since the last update that didn't allow numeric arguments.
- Fixed #2450: when COMBAT_ALLOWHITFROMSHIP is disabled, you can no longer attack someone inside a ship while outside.
- Fixed #2447: Ships not updating properly when leaving the screen.

24-12-2014, Coruja
- Fixed: Added missing 'invalid command/format' message when type '.add' command using invalid arguments.
- Fixed: Weapons wrongly using DAM property from the ITEMDEF even when it have a custom DAM property set on the created item.
- Added: New tooltips on weapons/armors to show many item properties like DAM[physical/fire/...], RES[physical/fire/...], BONUS[str/dex/int/hits/stam/mana], LUCK, etc.
- Changed: Weapons/armors won't decrease their damage/armor value based on item durability anymore (if someone still need it, this can be softcoded using @Damage trigger on weapons/armors to change their DAM/ARMOR values).
- Changed: Tooltips now will auto update when item/char properties got changed.

25-12-2014, Ben
- Fixed #2447: Again...  Ships not updating characters properly when leaving the screen.

31-12-2014, Ben
- Added: "BREAK" function under @create and @npcrestock to return to normal script interpratation after an ITEM= line since any lines under it was designed to modify the item. (any BUY or SELL line will also break ITEM loop)
- Changed #2451: Items will now be allowed to be "locked down" to ships and still move with the ship.
- Added: new .ADD dialog to replace old add menu. (old menu still available in the scripts by removing d_add dialog, but it is full of errors)

09-01-2015, Ben
- Added: Item trigger @Ship_turn with ARGN being the direction the ship is turning. It fires on all items on a ship, including the ship itself.

16-01-2015, Coruja
- Added: Support for NIGHTSIGHT property on items. Items with NIGHTSIGHT=1 will automatically enable/disable a permanent nightsight effect on equip/unequip
- Added: New optional flag OF_ScaleDamageByDurability on sphere.ini to make weapons/armors lose DAM/AR if the item get damaged. The value is based on current item durability, so the damage can be reverted if the item get repaired.
- Fixed: Tooltips not updating when some char properties (criminal/kills/flags/invul) are changed
- Fixed: Guards on 'red regions' (regions with TAG.RED=1 set) always using name hue 021 instead ColorNotoEvil set on sphere.ini
- Fixed: All item memories different from spells/potions getting wrongly named as 'Potion Cooldown'
- Fixed: Function BADSPAWN not looping through inactive spawns (spawn item with TIMER=-1 set)
- Changed: Item tooltips now can read properties set directly on ITEMDEF too

[sphere_msgs.scp]: Updated some messages (magery_6, msg_corpse_of, npc_pet_decide_master, spell_try_am)
[sphere_combat.scp]: Updated obsolete 'dam_lightning' to 'dam_energy'
[sphere_skills.scp]: Improved ARROWQUEST position on Tracking skill
[sphere_map_points5.scp]: Updated Ter Mur moongate list
[sphere_monsters.scp]:
  Added missing DAM on c_man, c_woman, c_elf_male, c_elf_female, c_gargoyle_male, c_gargoyle_female, c_man_gm
  Fixed COLOR on c_cat, c_dog

16-01-2015, Ben
- Fixed: MULDIV rounding up negative numbers when they should be rounding down.
- Fixed #2457: TAG.ALWAYSSEND will now be checked on ITEMDEF too.
- Fixed #2458: Made attr_static not movable with ships.
- Fixed #2456: Archery Butte not working properly.
- Some changes to FEATURE_SA_MOVEMENT (This seems to affect speedhacking, would require some more testing) (possible fix for #2435 for SA+ clients)

24-01-2015, Ben
- Fixed: Undefined keyword 'ITEM' error when restocking vendors.
- Modified: Order of @Create triggers to satify all situations.
    1 - CHARDEF's @Create runs first with @NPCRestock that follows (character does not have a position yet)
    2 - The character is placed in the world (This should fire @Enter in the appropriate region, and unlike before, the character is fully created)
    3 - TEVENTS @Create is fired (character now has a position)
    4 - EVENTSPET @Create is fired

24-01-2015, XuN
- Stackable items with different 'new variables' like ResPoison, UsesCur, etc cannot be stacked anymore.
- Added MaxAmount variable to stackable items with a default value of 65535 (not using this means no changes). This affect both Itemdefs and already created items (which can differ if you set to).
- Droping on self/backpack and bouncing stackable items now makes Sphere trying to reach MaxAmount,
    so if you have one pile of 50k of gold and you drop another 50k you'll end with one stack with 65535 coins and another one with 34465,
    obviously, if you set [itemdef i_gold] to MaxAmount=50000 this will not happen.
- Maximum value of MaxAmount keeps being unsigned short, the same, 65535 because of client limitation.
  Non stackable items doesn't have MaxAmount


26-01-2015, XuN
- Added 'click' function, doesn't need explanation I think.
- Setting UsesMax will raise UsesCur too if UsesCur is 0.
- Added UsesMax to tools from sphere_item_profession.scp and lumberjacking items (axes/polearms) in sphere_item_provisions_weapons.scp
- Using Destroy 1 will make the item emote it's destruction.
- Updated Lumberjacking,Fishing and Mining in sphere_skills.scp reflecthing Destroy changes.

27-01-2015, XuN
- Updated @CombatDelete trigger with a new argn1 value, now it's telling Sphere to remove or keep 1/0 the attacker's memories when removing him from the list.
- Added @HitIgnore trigger firing when one character is going to avoid an ignored target in the target selection: argn1=1 keep him ignored, argn2= un-ignore target (so character can attack him again).
- Added @Eat trigger, read wiki for more info: http://wiki.sphere.torfo.org/index.php/@Eat

28-01-2015, Coruja
- Added: Support for packet 02c to display char death animation (the famous "You are dead" black screen)
- Changed: Min account plevel to bypass MinCharDeleteTime setting on sphere.ini changed from 3 (Seer) to 2 (Counselor)
- Changed: return 1 on f_onchar_delete function (sphere_serv_triggers.scp) to deny char exclusion now will show a proper message ("couldn't carry out the request" instead "character is not old enough")
- Changed: Some tooltips behavior below
    Items amount value now will show directly on item name instead a new tooltip line
    Added missing tooltips for Insured (attr_insured), Quest Item (attr_questitem) and Crafted by [CharName] (CRAFTEDBY property)
    Added weight tooltip on all movable items if FEATURE_ML_UPDATE feature is enabled on sphere.ini (although it's not a ML feature, OSI started using this tooltip only on ML)
    [sphere_msgs.scp]: Removed 'tooltip_tag_amount' text

29-01-2015, Coruja
- Changed: Major improvement on combat engine (damage/resist calculations)
    COMBAT_SPECIALDAMAGE and COMBAT_USE_RESISTANCE settings on sphere.ini are now a single COMBAT_ELEMENTAL_ENGINE which does the same thing (but now unified).
    COMBAT_ELEMENTAL_ENGINE now totally overrides pre-AOS AR calculations with AOS damage/resist types instead use both at the same time.
    Fixed formula for AR calculation
    Fixed formula for char damage calculation. If unarmed (wrestling) the base damage will be the char DAM (usually 1-4), and using weapons the base damage will be the weapon damage. This base damage can be increased with some bonuses (if COMBAT_OSIDAMAGEMOD is enabled, it will use OSI bonus calculation, otherwise it will use sphere default bonus [STR/10]).
    On AOS+ clients, the char status menu now will show exactly the damage range that the char can deal (including all bonuses)
    New blood effects
    Old [Physical/Fire/Cold/Poison/Energy]Damage properties got removed and replaced with the new DAM[Physical/Fire/Cold/Poison/Energy].
[Sphere.ini]: Removed COMBAT_TARGETTEDHIT, COMBAT_SPECIALDAMAGE and COMBAT_USE_RESISTANCE settings, and added COMBAT_ELEMENTAL_ENGINE
[sphere_msgs.scp]: Removed all "combat_hit_*" messages.

30-01-2015, XuN
- Improved how Notoriety is checked for pets with PetsInheritNotoriety flags in the ini, now the notoriety is redirected instantly to pet's owner to avoid some checks and speed up the code. (Nothing has changed, it's just an improvement)
- Updated fonts on sphere_item_typedef_equipitem.scp for 'unidentified' value on tooltips.
- Splitted stats regens from CChar::OnTick() to CChar::Stats_Regen()
- Re-Added old polymorph stats boost under MAGICF_POLYMORPHSTATS (0800) in sphere.ini.
- Added MaxPolyStats to ini to override old hardcoded value, this limits the amount of stats gained through polymorph spell (default 150).

30-01-2015, Coruja
- Added: 5 new optional arguments on DAMAGE function to make it compatible with COMBAT_ELEMENTAL_ENGINE feature
    Sintax: DAMAGE value, dam_flag, source, physical(%), fire(%), cold(%), poison(%), energy(%)
    Example: DAMAGE 50,dam_general,012345,70,30,0,0,0 will split 50 damage into 70% physical damage + 30% fire damage
- Added: Internal support for COMBAT_ELEMENTAL_ENGINE on spells, explosion potion, etc
- Added: New OSI formula to calculate spell damage if MAGICF_OSIFORMULAS feature is enabled

04-02-2015, Ben
- Added: guardcall defname to sphere_def.scp in the [DEFNAME HARDCODED] section to allow an override of the words used to call guards. (multiple words can be defined) 
- Fixed #2473: Can't get on other ships from your ship anymore.
- Fixed #2467: Orc ship north missing 1 component.

07-02-2015, Ben
- Added: Outgoing Packet Filtering using keyword OUTPACKETx=function_name in sphere.ini (works exactly like PACKETx=function_name but for outgoing packets)

13-02-2015, Coruja
- Changed: Increased the area radius to call guards [14 -> 18 tiles].
- Changed: RESPHYSICAL won't be merged with AR anymore, now both properties can have independent values. Sphere will choose the property to display on client status gump based on COMBAT_ELEMENTAL_ENGINE setting on sphere.ini (enabled = RESPHYSICAL / disabled = AR).
- Added: Weapons and armors now will automatically set DAM*/RES* char properties on equip/unequip.
- Fixed: Login internal behavior adding TAG.LastHit=0 on chars even when COMBAT_PREHIT is disabled. This tag is only used by COMBAT_PREHIT, so if it's disabled the tag won't be added anymore.
- Fixed #2391: Nearby char names showing wrong notoriety color on client login.

15-02-2015, Coruja
- [sphere_defs.scp]: Added missing defs for 'colors_metal' and 'colors_bright'
- [sphere_template.scp]: Added missing 'random_talisman' template
- [sphere_skills.scp]: Removed USESMAX behavior from Fishing skill (I dont know why, but OSI doesn't seems to use the 'Uses Remaining' behavior on this skill)
- [items/*]: Added missing USESMAX property on skill tools items (and removed from i_pole_fishing)
- [towns/sphere_town_dlg_master.scp]: Fixed console error [replaced function f_stonesys_iswarring -> f_townsys_iswarring]
- [towns/sphere_town_functions.scp]: Fixed console error [replaced typedef t_town_town -> t_stone_town]

18-02-2015, Coruja
- Fixed: Added missing newline break (\n) on some console error messages.
- Fixed: Bulletin Board showing wrong author name on messages when the reader have GM=1 privileges.
- Added: Items with LUCK property now will set char LUCK on equip/unequip.
- Added: Missing tooltip info for recall runes.
- [sphere_msgs.scp]:
    Added new messages 'msg_targ_unexpected', 'rune_location_unk'
    Updated texts for 'itemuse_rune_name', 'rune_to'
- [sphere_skills.scp]:
    Added missing SKF_RANGED flag on Archery and Throwing skills.
    WARNING: Make sure to update your scripts following this change to prevent some problems on these skills. Previously sphere was internally setting SKF_RANGED on these skills, but now it's 100% on script-side.

21-02-2015, Coruja
- Fixed: NPCs flagging their owner criminal when attack an innocent only if the NPC can speak or have NPC=brain_berserk set.
- [sphere_item_profession_cook_barkeep_baker.scp]: Added missing t_cooking on all SKILLMAKE=Cooking lines.
- [sphere_skillmenu.scp]: Added missing title on skillmenu sm_cook_ingredients, sm_cook_baking, sm_cook_barbecue

22-02-2015, Coruja
- Fixed #2479: Combat damage bonus not being calculated correctly when COMBAT_OSIDAMAGEMOD is disabled.

23-02-2015, Coruja
- Changed: Now only players can have damage bonus. NPCs will always use the damage value set on DAM property.
- Fixed: Summoned NPCs incorrectly giving karma gain/loss on death.
- Fixed: @GetHit not inheriting ARGN2 value from @Hit.
- Fixed: Parrying skill not calling @UseQuick / @SkillUseQuick triggers.
- Fixed #2478: Some weapons using wrong swing animation.
- [sphere_msgs.scp]: Updated 'combat_parry' message.

25-02-2015, Ben
- Fixed #2477: PacketDeathAnimation causing errors.
- Fixed: New ARGN2 in @Hit not being set to the proper value.
- Fixed #2484: GMs not always succeeding at skills.
- Fixed: Unlock spell using spell level as difficulty.

02-03-2015, Coruja
Added: Internal support for SELFREPAIR property os items.
Fixed: Some internal messages using wrong message type (eg: items names incorrectly using 'talkmode_obj' instead 'talkmode_item', etc).
[sphere_msgs.scp]: Updated 'messages_settings' header, added new message 'cont_items'.

05-03-2015, XuN
Fixed Packet 0xBF.0x1C (Cast Spell) crashing server when spell does not exists (prevents crashing shard when casting packet sent directly from injection, etc and there's no spell).
Updated sphereCrypt.ini with clients up to 7.0.43.
Added 'stacking' behaviour to NightSight property to allow more than 1 item apply it's value and not removing the nightsight effect when unequipping (this will fix #2475), 
old behaviour (.nightsight (no value) to switch from 0 to 1 and viceversa) keeps working, be aware of not using both methods or problems will come.
Fixed #02488: Pets inheriting Notoriety from Masters even if .ini's value say to not do.

05-03-2015, Coruja
Changed: Internal improvements on how account characters are created.
Changed: Some minor optimizations on char notoriety checks.
Fixed: Players on the same party incorrectly using ally (green) notoriety if it choose "Party CANNOT loot me" on party menu.
Fixed: Ally/enemy notoriety not working on townstones.
Fixed: DAMAGE function making the char parry damages caused by itself.
Fixed: Console error when using SPELLEFFECT function without a valid SRC.
[sphere_newb.scp]: Added new templates for professions and race variants on skills.

06-03-2015, Coruja
Fixed: DAMAGE function not causing any damage on items when the function is called without a valid damage flag set (ARGN2).
Fixed: Roofs not working properly on AOS house customization menu.

06-03-2015, XuN
Added IsTriggerActive() and SetTriggerActive() functions to CObjBase keeping track of the running trigger.
Fixed using Remove in @UnEquip triggers crashing the server.
Fixed #2481: Usage of ResendToolTip in the @*ToolTip triggers crashing server.
Fixed CanUse receiving wrong value when value = 0 or no value.

07-03-2015, Coruja
Fixed: Fame/Karma gain/loss not working on some specific cases.
Fixed: SnoopCriminal setting on sphere.ini not working correctly. Now it works using a 0%~100% chance instead random values.
Fixed: Parrying skill blocking magic damages.
Fixed: MAGICF_OSIFORMULAS incorrectly using MANA instead INT value on spell damage calculation.
Changed: Armor/Weapons with ATTR=attr_magic set will not show +5,+10,+15,... on names anymore. Now users are able to softcode custom names on magic items without problems.
Changed: Some internal improvements on Snooping skill.
[Sphere.ini]: Updated SnoopCriminal description/value.
[sphere_msgs.scp]: Updated 'snooping_*' messages.

08-03-2015, Coruja
Added: Items with INCREASEDAM / INCREASEDEFCHANCE / INCREASEHITCHANCE now will set these properties on char on equip/unequip.
Fixed: NPCs (monsters) being flagged criminal when they attack an innocent player.
Changed: Updated minimum client version required to use some new packets.

09-03-2015, Staff_Stanic
Fixed: if the value of ExperienceKoefPVM or ExperienceKoefPVP is 0, not just the gain of experience will be disabled, but also the loss (if is allowed experience to go down).
Suppose a case that ExperienceKoefPVP=0, players will not gain experience killing npcs, consequently players will not lose experience when killed by npcs.
Fixed: not allow experience or level go to negative.

13-03-2015, Coruja
Fixed: Infinite loop when someone with Reactive Armor hit itself.
Fixed: Some items properties being saved as 0 value (when set it to 0) instead remove it at all.
Added: FASTERCASTING, INCREASESPELLDAM, INCREASESWINGSPEED gain/loss when equip/unequip items.

14-03-2015, Coruja
Fixed: 'GetDist::InvalidPoint' console error when function ISNEARTYPE try search something out of the map bounds.
Fixed: Spells with SPELLFLAG_AREA + SPELLFLAG_DAMAGE flags causing damage to nearby items on ground.
Added: LOWERREAGENTCOST / FASTERCASTING behavior when casting spells.
Added: New Reactive Armor spell behavior if COMBAT_ELEMENTAL_ENGINE feature is enabled, now it will increase RESPHYSICAL and decrease RESFIRE/RESCOLD/RESPOISON/RESENERGY.
Added: New Mana Drain / Mana Vampire spell effect if MAGICF_OSIFORMULAS feature is enabled.
[sphere_spells]: Updated FLAGS/EFFECT/EFFECT_ID values on Mana Drain / Mana Vampire / Enchantment spells.
[sphere_defs.scp]: Updated 'snd_spell_reactive_armor' value.
[sphere_skills.scp]: Removed duplicated @Fail message on Magery skill.
[sphere_item_magic_weapon.scp]: Updated all magic weapons properties to the correct values.

15-03-2015, Staff_Stanic
Added: ARGN2=0 ARGN2=0 will disable automatic message when @ExpLevelChange.

17-03-2015, XuN
Fixed #2493: Reverted MINCLIVER_NEWMOBINCOMING back to 0x700331. 
Fixed items with Res* and DMG* giving values again when save+restart, stat's additions should be placed on ItemEquip and not in LayerAdd. 
Fixed items being 'dropped' on player's characters when they are created instead of equipping (changed LayerAdd to ItemEquip in CChar::ContentAdd(), may cause some other issues?) 

17-03-2015, Staff_Stanic
[Sphere.ini] Added: ItemDamageCombat - chance of a item be damaged during a combat (PvP or PvM).
[Sphere.ini] Added: ItemDamageCombatIncrease - the difference of total and current durability of a item will increase the probability of this same item be damaged? If yes, the probability of a item be damaged during a combat will be given by: (ItemDamageCombat + Item_Total_Durability - Item_Current_Durability)%

18-03-2015, XuN
[add-on\mordaunts_housing_system]
Added to [REGIONTYPE r_houses] the following code to prevent the dialog being used in other houses skipping permissions:
	ON=@Exit
		src.dialogclose d_house_menu
		src.events -e_house_player_events

19-03-2015, XuN
Added CombatBonusStat and CombatBonusPercent properties for weapons and chars changing the default formula for damage ( having weapon equipped will override char settings, regardless of weapon having them or not)
	CombatBonusStat stores the stat id. STR = 0, INT = 1, DEX = 2
	CombatBonusPercent stores the percentaje of stat applied onto the bonus calculations, value can be negative but total bonus cannot be lower than 1.
[sphere_msgs.scp]
Added these lines:
	//msg_acc_passclear			"Password has been cleared."
	//msg_acc_passclear_relog	"Log out, then back in to set the new password.""
	//msg_acc_acceptpass		"Password has been set."
	//msg_acc_invalidpass		"Invalid password."
	//msg_acc_guesthit			"The guest curse strikes you."
	//msg_region_reddef			"You have %s the red region."
	//msg_region_redenter		"entered"
	//msg_region_redleft		"left"
	//itemuse_dye_reach1		"You can't reach it."
	//msg_gmpages_none			"No GM pages queued. Use .page ?"
	//msg_gmpages_current		"Current GM .PAGE Account=%s (%s) Reason='%s' Time=%lld."
	//npc_vendor_cantbuy		"You cannot buy that."
	//npc_vendor_cantsell		"You cannot sell that."
	//msg_targ_dynamic			"Must select a dynamic object."
	//msg_targ_moved			"Targetted item moved?"
	//msg_targ_gone				"Targetted item is gone?"
	//spell_mark_cont			"The rune must be on your person to mark."
	//npc_vendor_sellfast		"You are selling too fast."
	//npc_vendor_sellmuch		"You cannot sell so much."

Fixed StatCap not allowing stats to go to the statcap itself, but 1 point lesser (STATCAP=255 allowed only 254 stat points).
Added few more msgs to sphere_msgs.scp:
	//npc_vendor_nomoney1			"Begging thy pardon, but thou canst not afford that."
	//target_command				"Select object to set/command '%s'."

20-03-2015, Coruja
Fixed: Console error / client crash when opening some specific gump types on HS clients >= 7.0.9.0.
Fixed: Vendor menu not working on enhanced clients.
Fixed: Added missing buff icon on Meditation skill.
Fixed: Minimum client version required to use some new packets.
Fixed: Reactive Armor spell changing RESPHYSICAL to an incorrect value when COMBAT_ELEMENTAL_ENGINE is enabled.
Added: ADDBUFF function now can handle up to 5 args to support newest clilocs.
Changed: Some improvements on buff packets (now it can handle more args correctly).
Changed: Some improvements on exp/level gain/loss code.
Changed: Softcoded ItemDamageCombat / ItemDamageCombatIncrease .ini settings, the chance to get items damaged on combat now can be fully scripted using LOCAL.ItemDamageChance (value range: 0~100) on triggers @Hit (weapon) / @GetHit (armor).
[sphere_defs.scp] Updated 'buffcliloc_reactivearmor_2' value.

21-03-2015, XuN
Now skill changes (on lumberjacking,tactics and anatomy when COMBATF_OSIDAMAGEMOD is enabled) and DAM value applied on weapons and the new CombatBonusStat and CombatBonusPercente are updating the status window to reflect the dam changes.
Added to sphere_msgs.scp: 
	//menu_unexpected					"Unexpected menu info."

Changed variable times in world time handler to avoid some overflow-recycle messages.

22-03-2015, Coruja
Changed: ADDBUFF function now can handle up to 7 args.
Changed: Minor changes on COMBATBONUSSTAT / COMBATBONUSPERCENT formulas to better compatibility with damage calculation formulas.
[sphere_dialog.scp] Huge optimization on dialog d_hair_dye

23-03-2015, XuN
Changed everything related to spawns to new class CItemSpawn having everything from spawns more concentrated and prepared for future improvements.
Increased BuffIcons limit up to 1126

[sphere_defs.scp]
Added new buff definitions.
To have it a bit more organizated keept buffs as bufficon_*, changed debuffs to debufficon_* and passives to passivebufficon_*

[sphere_backwards_compatibility.scp]
Added definitions for old bufficon_* entries that have been changed to new debufficon_* or passivebufficon_*

23-03-2015, Coruja
Fixed: HS clients not parsing correctly text lists like TAGLIST/CTAGLIST/VARLIST/etc.
Fixed: Sphere crashing when COMBAT_ELEMENTAL_ENGINE is disabled and 2 chars with Reactive Armor attack each other causing an infinite loop when reflect the damage.
Added: New Magic Reflection and Protection spell behavior if COMBAT_ELEMENTAL_ENGINE feature is enabled.
Added: Support for RESDISP/RESLEVEL 8 on accounts, it's the default RESDISP for High Seas expansion (clients >= 7.0.9.0).

24-03-2015, XuN
Fixed some code from PacketWheelBoatMove (Move ships with mouse) and enabled it via 'Pilot' variable in ships holding the value of character and one memory item (acting like a horse)
Added few checks for Combat_NoDirChange

Scripts:
 Added t_pilot to sphere_defs.scp
 Updated \items\sphere_item_ship_parts_*.scp adding t_pilot.	//It seems that britannian and orcish ships got their items changed and they look empty now, i did not change this atm.
 Added \Add-On\HighSeas\Ships\HS_Pilot.scp with behaviour for t_pilot and memory item for mouse sailing.
 Added //itemuse_crook_target			"Where do you want them to go ?" to sphere_msgs.scp

26-03-2015, Coruja
Fixed: IDLE clients on login / character selection screen being disconnect on the server-side without display any feedback to client, making it freeze on a infinite 'Connecting...' screen. Now IDLE clients will get an 'timeout' message and will be able to press ok and try again without get stuck.
Fixed: PacketDeathAnimation feature not working correctly on some specific clients.
Fixed: Dispel, Dispel Field and Mass Dispell spells incorrectly removing nearby items with typedef t_fire / t_campfire set.
Fixed: Flamestrike spell missing some animation frames.
Added: Missing Protection spell behavior (spell disturb chance) if COMBAT_ELEMENTAL_ENGINE is enabled.
Added: New effect calculation on buff (Agility, Cunning, Strength, Bless) and debuff (Clumsy, Feeblemind, Weaken, Curse) spells if MAGICF_OSIFORMULAS is enabled.


26-03-2015, XuN
Added 5 more args to .effect function to give support to packet 0c7, new values are: EffectID,ExplodeID,SoundID,UID,Type. Seems to work only on EC.
Added Bonded property for npcs with very basic functionality, setting it to 1 doesn't let NPCs die.
Removed some debug msgs.
Changed some more m_Act_Targ to m_Fight_Targ.
Corpses retrieve killer's uid now from Attacker_GetLast() instead of on ACT.

27-03-2015, XuN
Changed DClick of t_ship_plank using SetDispID() instead of SetID() so they are threated as ship parts and 'fliped' with the rest of the ship.
Changed the 'Undefined symbol '' ' output format, now also prints what was the problem exactly in some situations. IE: if (<local.hello==1) // missing '>' will print 21:15:ERROR:(s_add.scp,21)Undefined symbol '' ['<local.hello==)']
[sphere_spells.scp]: Added missing '>' to local.damagetype in s_explosion.
Added another block of code for @SeeCrime, now it fires also when a 3rd part sees a crime (I'm seeing Player X attacking Player Y while Y is 'good'), to decide if mark as 'bad guy' the aggresor for this character.
	argn1 = attacker
	argn2 = victim
	argn3 = 1=criminal / 0='turn eyes away'
Fighting Memory will also remove flag MEMORY_AGGREIVED when expiring (NEED feedback on this) to avoid blue-innocent player becoming criminal when the fight memory of the attacker expires (if he attacked back).
Being attacked is not giving MEMORY_AGGREIVED to memory item, I might be attacked but it may not have to do anything with me being aggreived ... they may have been attacked by me first (Need feedback on this too).

28-03-2015, XuN
[sphere_defs.scp]:
	Added Expansion definitions.
	Added t_rope
[items/sphere_item_unsorted]:
	Added t_rope to i_rope
[multis_ships.scp]:
	Changed Height from all Tokuno ships from 7 to 17.
	Added Expansion=EXPANSION_HS to all HS ships.
[add-on/HighSeas/Ships/HS_pilot.scp]:
	Added mount check to t_pilot to prevent the memory item being bounced to pack.

Added t_rope working like t_ship_plank but making no changes on ID, by default it doesn't have any 'I'm in ship' checks when steping them for two reasons, ropes should be in ships and this way they can be used in houses to go out?
Added <TEXTF > function returning formatted text, example:
	[defname exampledef]
	test=Hello %s, I'll teach you for %d coins.
	message=<textf "<def.test>",<src.name>,15> // Quotes are A MUST.

29-03-2015, XuN
Fixed humans not regenerating hitpoints
Changed Stats Regens to automatically update the timer of next tick instead of waiting for old value when changing it via RegenHits/Stam/Mana.
Fixed CanUse not inheriting from itemdefs to items

31-03-2015, Coruja
Fixed: Arch Protection spell not working correctly with COMBAT_ELEMENTAL_ENGINE enabled.
Fixed: Resurrection spell not displaying correct EFFECT_ID / SOUND.
Added: MAGICF_OSIFORMULAS behavior on more spells.
Changed: Small improvements on drunkness effect (ale, wine, liquor).
[sphere.ini]: Moved EF_PetSlots setting (experimental flag) to OF_PetSlots (optional flag).
[sphere_admin.scp]: Added missing 'admin_resdisp_8' def.
[sphere_msgs.scp]:
	-Changed IMSG_DEF_UNICODE to 1 (to match internal client behavior, which always show item/char names using unicode by default).
	-Removed useless 'spell_alcohol_sober' msg.

01-04-2015, matex
Fixed: SYSCMD never could return an exit value and was hanging sometimes.

01-04-2015, XuN
Fixed NPCs not moving to current fight target.
Added scripts/items/sphere_item_provisions_logs.scp with different log types.
Changed scripts/items/sphere_item_provisions.scp: Moved i_log(s) / i_board(s) to scripts/items/sphere_item_provisions_logs.scp

01-04-2015, Coruja
Fixed: Buff/Debuff spells not working correctly when MAGICF_OSIFORMULAS is disabled.
[sphere_item_provisions_logs.scp]: Fixed some boards using wrong itemdef.

02-04-2015, XuN
Added Repair function (Called on Repareid item, must be called with a character as SRC, who is going to perform the repair action).
Added Smelt function ( called on Smelted item, must be called with a character as SRC. ARGS=forge or another ore pile to smelt, if no ARGS is given it will search automatically for nearest forge if any ).
Changed @StatGain trigger is not being fired anymore with any stat changes from the @Create trigger.
Fixed local.CreateObject1 & 2 in @Success trigger for field spells causing the new items to do not use the same placement checks as default items.
Updated behaviour of Bonded Pets ONLY when they are DEAD:
	-They act as normal for everything, excepting they cannot die.
	-Follow any master's command, excepting fighting ones.
	-Doesn't regenerate stats.
	-NPCs won't die if they have bonded=1, if they are dead already and bonded is set to 0 they will die in next ticks.
	-Stam required to step over them is 0.
	-Food doesn't decay.
Fixed: Pets following when recalling/teleporting/gate travelling should be more consistent.
Changed: Mounted items calls now CChar::OnTick() on the mounted character instead of doing the tick on it's own, so they regenerate stats and everything like any other character in a more realistic way.
Fixed STATSUM and STAT_STR/DEX/INT from SkillClasses not being readed correctly (or at all) in some cases, this should permanently stop the need of custom statcaps. This is how StatGain works today (** = what was fixed):
	-Only INT can be gained when Polymorphed.
	-Stats with any StatLock different than UP can't increase.
	-StatCap <= StatSum stops the execution. **
	-STAT_* > STAT_VALUE from SkillClass = ignore this stat **
	-STAT_* > STAT_VALUE for this Stat in the performed Skill = ignore this stat.
	-Then the checks for %chances are made.
[sphere_msgs.scp]:
	Added //msg_bonded_dead_cantmount			"The creature is dead and cannot be mounted."

03-04-2015, Coruja
Fixed: EXP/LEVEL going < 0 on chars when the property value is changed by scripts using @ExpChange / @ExpLevelChange triggers.
Fixed: CUSTOMIZE function not hiding correctly all dynamic items on multi when entering on customization mode.

06-04-2015, Coruja
Fixed: NPC Guards (brain_guard) incorrectly teaching skills to players.
Fixed: Protection spell not returning the Magic Resistance skill to correct value if this skill was set to lock/down on the skill menu (when COMBAT_ELEMENTAL_ENGINE is enabled).
Fixed: Mana Drain, Wall of Stone and Energy Vortex spells using wrong EFFECT / DURATION if MAGICF_OSIFORMULAS is enabled.

08-04-2015, XuN
Changes in @Effect/@SpellEffect triggers for spells:
	Local.CreateObject1 overrides the effect id.
	Added Local.EffectColor, local.EffectRender and local.EffectExplode allowing to override the values of the sent effect.

Added Local.EffectColor to @Success/@SpellSuccess to change the color of field spells.

Reordered how effects are called (now they are all together inside SpellEffect()) to have better access to them.
Removed some Effect() calls to prevent two effects being sent in some spells.
Removed Effect_Bolt(), its now handled by SPELLFLAG_FX_BOLT inside SpellEffect().
*Any of this changes are affecting lightning spells, since client ignores everything related to lightnings (.effect 1,1).

Changed @SpellCast / @Start trigger for characters / spells:
	- Added local.WOP=0/1 to disable/enable WOP for this character / spell.
	- Added local.WOPColor (default = SERV.WOPColor) to change Word of Power's color for this character / spell .
	- Added local.WOPFont (default = SERV.WOPFont) to change WOP's font for this character / spell .

11-04-2015, Coruja
Fixed: Some spell formulas incorrectly using the skill value from target instead caster.

11-04-2015, XuN
Added char* definitions for both ContextMenuRequest and ContextMenuSelect (@charContextMenuSelect/Request).
Fixed NewGold not calling @Create if any new pile was created.
Fixed NewGold not taking care of MaxAmount.

15-04-2015, XuN
Added to sphere_msgs.scp:	(emotes for poison seems to have different values for poisoned character and the other ones)
for poisoned characters:
	//spell_osipoison_lesser		"feel a bit nauseous"
	//spell_osipoison_standard		"feel disorientated and nauseous!"
	//spell_osipoison_greater		"begin to feel pain throughout your body!"
	//spell_osipoison_deadly		"feel extremely weak and are in severe pain!"
	//spell_osipoison_lethal		"are in extreme pain, and require immediate aid!"
for viewers:
	//spell_osipoison_lesser1		"looks ill."
	//spell_osipoison_standard1		"looks extremely ill."
	//spell_osipoison_greater1		"stumbles around in confusion and pain."
	//spell_osipoison_deadly1		"is wracked with extreme pain."
	//spell_osipoison_lethal1		"begins to spasm uncontrollably."

CHANGED Poison function:
	By default it accepts 1 parameter (skill level)
	It can now have a second parameter for duration ticks (If not given, ticks are calculated as always = SkillLevel /50 ).

Added new behaviour for poison spell under MAGIFC_OSIFORMULAS:
	Poison Level = (Magery + Poisoning) /2:	(Stored in MoreY)
		Lesser (0):		Level <= 65.0
		Standard (1):	Level <= 85.0
		Greater (2):	Level < 100.0
		Deadly (3):		Level > 100.0
	Poison can be Lethal also with a 10% chances if the magery and poisoning of the poisoner are greather than 100.0 and distance < 3 tiles.
	Tick Period: 
		Lesser =		2 seconds.
		Standard =		3 seconds.
		Greater =		4 seconds
		Deadly/Lethal = 5 seconds.
	Duration:(More2) (if poison spell is called from POISON function, this values will be applied only if argn2 == 0, if set to another value then the given value will be used)
		Lesser =		30 seconds.
		Standard =		30 seconds.
		Greather =		60 seconds.
		Deadly =		60 seconds.
		Lethal =		80 seconds.
	Damage:(Currently values for poisons > Lesser are calculated on SpellEffect (MoreZ), so the same damage is dealed in each tick, AFAIK this is how it works)
		Lesser =		4-7% current hp.
		Standard =		5-10% max hp.
		Greater =		7-15% max hp.
		Deadly =		15-30% max hp.
		Lethal =		16-33% max hp

Added new ini flag COMBAT_NOPOISONHIT :Disables old (55i like) poisoning style: Poisoning > 30.0 && (RAND(100.0)> Poisoning) for monsters OR weapon.morez && (RAND(100) < weapon.morez ) for poisoned weapons.
INFORMATION: These have been unchanged, i'm writing here however for information of how is the poison's strenght calculated.
	Poison applied using weapon: src.poison <eval <weapon.morez>*10>,<eval <weapon.morez>/5> (so morez*10 = poison damage and morez/5 = ticks)
	Poison applied by monsters: src.poison <eval <r<Poisoning>>>, <r<eval <Poisoning>/50>>	(so strength is a rand of the poisoning skill and ticks are poisoning skill / 50
	Poisoned food has not been altered either, but here is the formula too: src.poison <eval <morez>*10>,1+<eval <morez>/50> (so the food's morez*10 is the strenght and ticks = morez /50 too).

15-04-2015, Coruja
Fixed: Some skills only rising until 30.0% on specific situations.
Changed: Some small changes on Magic Reflection spell.

27-04-2015, Coruja
Fixed: Guilds not display notoriety correctly on players with recruit access level.
Fixed: Magic Reflection effect only working on spells with SPELLFLAG_RESIST set. Now only spells with direct target (SPELLFLAG_TARG_CHAR) can be reflected.
Fixed: Spells with SPELLFLAG_HARM flag not flagging the caster criminal when it got resisted/reflected by the target.
Changed: Some improvements on Magic Resistance (skill) effect.
[Sphere.ini]: Added new ColorNotoInvulGameMaster setting to tweak the name notoriety color on invul Game Master chars (purple by default).
[sphere_spells.scp]:
	-Added missing DURATION on Mana Drain spell.
	-Updated SPELLFLAG_RESIST / SPELLFLAG_TARG_NOSELF on some spells.

28-04-2015, Coruja
Fixed: Mounts not creating the corpse when it die while ridden.
Fixed: Corpses not setting MORE2 (last attacker UID) correctly when created.
Fixed: NPCs only showing [npc] tag on name when inside an region with guards.
Changed: Removed max limit of CURFOLLOWER=255 on OF_PetSlots feature.
[sphere_msgs.scp]: Added new 'charinfo_bonded' message to show [bonded] tag on chars with BONDED=1 set (it will override the [tame] tag by default).

02-05-2015, XuN
REMOVED tag.override.noto completely now, @NotoSend was made as an enhanced version of this tag.
Added: argn2 in @NotoSend trigger forcing the character's packet to use this value as character's color but not modifying the real notoriety.
Changed: @NotoSend argn1 value now only can have values between 1 (NOTO_GOOD) and 7 (NOTO_INVUL) if other value is given it will be ignored and default checks will be made, color will still be used (if value >= 0)
Updated http://wiki.sphere.torfo.org/index.php/@NotoSend information.

Fixed some cases in which victims of a crime (attacked characters) became criminals. Also, but not always related to the same scenario, Notoriety not checking flags for MEMORY_HARMEDBY, which was causing the 'criminal issue' and also a bunch of unnecessary checks.
Fixed Guards being able to be flagged as criminals and doing the whole checks: Guards always acts for the law and they will never be criminal (this has been this way always but checks were performed anyway).
All of this fixed too @SeeCrime from combat not always working.
CHANGED: Old @SeeCrime is now @SeeSnoop http://wiki.sphere.torfo.org/index.php/@SeeSnoop
ADDED: New @SeeCrime trigger for every crime unrelated to Snooping: http://wiki.sphere.torfo.org/index.php/@SeeCrime
Updated: http://wiki.sphere.torfo.org/index.php/Override_TAGs
Fixed some compiling warnings.

03-05-2015, XuN
When a thread is hang it will now release the stack trace to be able to follow what caused the freeze.
Some fixes on experience and level system blocking changes on some circunstances and an infinite loop freezing server.
Updated sphere_item_typedef_equipitem.scp commenting from @Equip and @UnEquip the variables we are already setting from the source.

05-05-2015, XuN
Removed 'glow effect' from parrying in the source and added it under @UseQuick in parrying skill in sphere_skills.scp
Fixed @Eat not setting values correctly in some cases.
Fixed argn2 on @NotoSend not working as intended (notice that PetsInheritNotoriety may affect and block this).

07-05-2015, XuN
Updated sphere_serv_triggers.scp with some information/comments and values for newly created characters.
Added Notoriety values changed via @NotoSend to be sent in character's names: 
	-argn2 has priority over anything else, if it's value is 0, lesser or not present at all then argn1 will be used, if there's no argn1 either then default checks will be made.
	-argn2 values from 1 to 7 will read color hues from ini ones (NOTO_GOOD,NOTO_CRIMINAL...NOTO_INVUL,etc).
Poison spell and habilities based on it are now affected by SPELLFLAG_NoUnparalyze (if set).
Fixed some errors appearing when a character dies while poisoned conflicting with PacketDeathAnimation.
Poison damage has now DAM_MAGIC flag set.
Uncommented EFFECT value for Poison spell in sphere_spells.scp

08-05-2015, Coruja
Added: New 'Add/Remove Party Member' missing popup button when click on another player to invite/remove him from an party.
Changed: Some updates/optimizations on party engine.
[sphere_msgs.scp]: Updated 'party_*' messages.
[sphere_defs.scp]: Added missing 'attr_opened' value on [DEFNAME attr_flags] list.

09-05-2015, XuN
Fixed: Ignored 'attackers' will not be chosen as targets anymore, even if they are the only enemies on the list.
Added: Field spells will fire @Create for their itemdefs/events, also @ItemCreate for characters with a 'tag.BadLoc' which will be true if they are going to be placed above any character.
	If tag keeps at 1 after the @Create trigger the field will be removed like it's been doing recently.
	Since fields will not be placed until they are allowed to (to avoid 'ghost' walls dissapearing), items will have a 'tag.pos' with the placement position.

09-05-2015, Coruja
Added: New updated Swing Speed combat formula. It's almost the same as the previous formula (pre-AOS) but more accurate and with support to Swing Speed Increase property (INCREASESWINGSPEED).
[sphere.ini]: Updated 'SpeedScaleFactor' setting to the recommended value for the new Swing Speed formula [15000 -> 80000]. Although the old (or any other value) can be used, it's HIGHLY recommended update it to get better results.
[npcs/sphere_monsters.scp]: Added MAXFOLLOWER, RESPHYSICALMAX, RESFIREMAX, RESCOLDMAX, RESPOISONMAX, RESENERGYMAX properties on playable chars (c_man, c_woman, c_elf_male, c_elf_female, c_gargoyle_male, c_gargoyle_female).
[sphere_serv_triggers.scp]: Removed RES*MAX from f_onchar_create (it was moved directly to chardefs).

10-05-2015, Ben
Added: ABS() intrinsic function wich returns the absolute of any number ( <eval abs(5)> = 5, <eval abs(-5)> = 5 )

13-05-2015, XuN
  Receiving 0 damage will not generate blood anymore.
  Improved the code for 'Attacker'.
  
  Updated/improved/cleaned Spells:
    - Added internal definitions for all spells
    - Added support for spells with id 1000 to 1055 for custom spells and other old spells, reflected changes in sphere_spells.scp*
    - t_spellbook_extra works with values 1000+
    - Changed NPCs formulas to make them able to cast spells from other books than MAGERY one, selected from skills with SKF_MAGIC**:
    - Fixed the formula to select the maximum spell NPCs can cast because any npc with magery > 10.0 could cast all spells, now maxspell is calculated like this (using magery as example):
      maxspell = MULDIV(Skill_GetValue(magery),Spells_GetMax(magery),Skill_GetMax(magery)). To get a real progression for skill's capabilities this adjusts automatically to each skill's max spells, so 78.2 necromancy will let npcs cast up to spell 12 and 71.4 magery will let npc cast up to spell 37 for example.
      Skill_GetValue() returns the current value for this skill,
      Spells_GetMax() returns the total amount of spells for this skill (64 for magery, 17 for necromancy...),
      SkillGetMax() returns the maximum amount of this skill (Based on skillclass for players and 100.0 (or tag.override.skillcap_&skill if present) for NPCs)
    - NOTE: This has not been changed, and it's ONLY for magery as it was before (since other skills was not being checked): spells are selected in a FOR loop so, for magery and to avoid big loops each time a spell must be selected, first spell being checked is <r<maxspell>>. So if maxspell = 50 it will choose spells between <r50> and 50.

  [sphere_defs.scp]:
    - added spellflag_heal             040000000  // spell used to heal hitpoints or resurrect
    - added LAYER_* definitions for all spells that need a layer item to handle their behaviour (behaviours not added).
  
  * [sphere_spells.scp]: 
    - Changed ID for spell number 64 to 1000 and so on with the next ones until spell 99.
    - Added spellflag_heal to s_heal,s_greater_heal,s_close_wounds,s_noble_sacrifice,s_gift_of_life,
    - Added flags to Spellweaving spells.
  ** [sphere_skills]: Added SKF_MAGIC to MAGERY,NECROMANCY,SPELLWEAVING,MYSTICISM and CHIVALRY
    - Added NPC_AI setting: 
      // NPC_AI_STRICTCAST    01000 NPC's will only select spells they really have in their spellbook. Old behaviour let them to select any spell with SPELLFLAG_HARM if they have magery enough to cast it regardless of spellbook.
      FIXED i_spellbook_spellweaving was MOREZ=0600, it should be 600
      FIXED argn2 for @SpellSelect couldn't be overriden for spells casted from T_WAND or T_SCROLL. ARGN2 is also set to the proper mana value (0 for T_WAND and RequiredMana /2 for I_SCROLL) for reading purposes.
      Updated comment for t_spellbook_extra       186   // some spellbook for script purposes (MOREZ=basic offset, should 1000 or more) in sphere_defs.scp
      Added morex for t_spellbook_extra to set the max amount of spells for this book, so morez = first spell and morex = last spell , for example morey=1000, morez=1016 will hold spells from 1000 to 1016

16-05-2015, Ben
- Fixed #2510: deathshroud not removing on resurrection in all cases.

17-05-2015, XuN
Updated @NPCActFight:
	Added - local.skill // Setting this to any skill will make the NPC begin this skill
	Added - local.spell // For magic skills this will be the casted spell
	Added - ACT // This will refer to the target, must be set since the trigger is using SRC for the first enemy
	Added - return 2 // The code above will only work when return = 2
Removed NPC_AI_STRICTCAST and all the invented casts from npcs.This can be reverted applying a trigger for npcs like this:
	ON=@NPCActFight
	if (<magery> > 0)
		local.spell=<r1,64>
		while (<local.spell> < 64)
			if (<CanCast <local.spell>>)
				local.skill=magery
				return 2
			else
				local.spell ++
			endif
		endwhile
	endif	//same for the other magic skills.

Added vector list storing all spells that npcs can cast and removed tons of lines of code to increase the performance of CPU when NPCs cast some spells.
WARNING:
	Added LAYER variable to spells, ALL SPHERE_SPELLS.SCP MUST BE UPDATED or spells with some effect, like polymorphs, summons, stat spells, and all that have a determinated duration will stop working
	[sphere_spells.scp]	//Seriously, this script must be updated.
		-Added LAYER=layer_spell_* to all magery, necromancy, spellweaving,chivalry and mysticism spells, ie LAYER=layer_spell_stats for s_bless,s_cunning, etc
Changed default formulas to make spells work with LAYER instead of hardcoded checks, this will help making custom spells by giving the customization enough to handle every possible effect.

Changed: MemoryEquip won't be called anymore for the memories of spell's effects.
Added character trigger @EffectAdd: This will be called when any type of effect memory is being added, like stat changes for s_bless, s_cunning... s_weaken ...
	Argo = memory item
	argn1 = spellid
returns: 
	return 0: Let default checks to happen.
	return 1: Blocks any action and stops everything, also deletes the memory (Blocking any changes, this will cause also the effect to do not have duration)
	return 2: Let the memory exist but block default checks, perfect to override default effects and do some custom stuff.
To simulate something like '@EffectEnd' just apply an event with @Timer to the memory since the 'default changes' are happening after @UnEquip and, at this point, the item must be removed in any case... so preventing this must be done before (@Timer fits perfectly).

19-05-2015, Coruja
Added: New animation on dragon breath attack.
Changed: Reduced SAY/speech max text length (1024 -> 256 chars). Client is limited to 128 chars on default speech and 256 chars on journal, so this can avoid some exploits from 3rd party assists/tools without affect the gameplay.
Changed: Major optimizations on walk, skills and general ticks code. It's working fine, but needs some heavy testing until we mark it as 100% stable.
	-IMPORTANT: Be sure to update your sphere_skills.scp with proper FLAGS on all fight/ranged/magic/craft/gather skills, otherwise these skills will not work correctly.

20-05-2015, Coruja
Fixed: Parrying skill check always returning 'true' (success) on chars with GM=1 set, making the char never receive any damage on combat even without invul flag set.
Fixed: Mounts disappearing on worldsave on some specific situations.
Changed: Improved Teleport/Dispel spell smoke animation.
Changed: Another huge optimization on skills code.
[Sphere.ini]: Updated TeleportEffectNPC / TeleportEffectPlayers settings with correct values.

22-05-2015, Coruja
Fixed: NPCs not following his owner/target correctly.
Changed: Some improvements on pet follower slots and pet bonding engine.
[sphere_defs.scp]: Added missing 't_healing_stone' on [TYPEDEFS] section.

22-05-2015, XuN
Major updates on code to fix compiler LVL4 warnings.
Changed sector's size for map 4 from 8 to 16  (so we only have 5k sectors on this map instead of 31k), improving heavily performance when this map is enabled.
NOTE: Disabling unused maps / using the less possible will increase the performance exponentially since each tick a loop for all maps and all it's sectors is fire, take this in count.

28-05-2015, Coruja
- Fixed: Spell buff/debuff icons showing wrong info on client login.
- [maps/sphere_map3.scp]: Added missing AREADEF a_isle_of_divide
- [maps/sphere_map4.scp]: Updated header comments
- [sphere_defs.scp]: Updated some cliloc values on 'buff_clilocs'
- [sphere_spells.scp]: Fixed Dispel Field spell flags [spellflag_targ_obj -> spellflag_targ_item]

29-05-2015, Coruja
- Some minor design updates on SphereSvr.exe file/console.

30-05-2015, XuN
- Added: TAG.SeenBy_uid for items with attr_invis allow these items to be seen by characters with the given uid, ie: tag.SeenBy_015af=1 will allow player with uid 015af to see this item, usefull for traps/quest items/etc.

- Changed return 2 from EffectAdd to return 0 to avoid some problems.
  Added only if FEATURE_AOS_B is enabled:
  - Behaviour for HitLeechMana on weapons: Returned mana = 0 - X. Where X is the HitLeechMana% of (Damage dealt * 0.4). More info in: http://www.uoguide.com/Hit_Mana_Leech
  - Behaviour for HitLeechLife on weapons: On every successful hit you will leech 0 to X percent health of (Damage done * 0.3) where X is the Hit Life Leech value on your weapon. (This means the same as HitLeechMana but using *0.3 instead of *0.4)
  - Behaviour for HitManaDrain on weapons: %of draining a 20% of the damage dealt from the enemy's mana. so HitManaDrain = 50 means a 50% of draining mana to the target. Mana drained = 20% of the damage done.
  - Behaviour for EnhancePotions on characters: Effect of the potion is increased by the % set on this property.
  
  Added default behaviours for the following necromancy spells (some of them was already working but not with their full effects):
  - s_curse_weapon = Adds +x HitLeechLife to any equipped weapon, while the spell is in effect unequiped weapons will get this bonus removed and equipped weapons will gain the bonus. X is stored at memory's morey (50 by default).
  - s_blood_oath = When a target of s_blood_oath damages the caster... the damage amount is increased, the target also receives the x% of damage than the caster. X by default should be 100, but its lowered to this formula: ((Resisting Spells Skill x 10) / 20) + 10. X is stored at memory's morey.
  - s_corpse_skin = Turns the victim's skin dry and corpse like. This temporarily decreases the target's fire and poison resists (Fire and Poison resist decreased by 15 (more1h) each), while increasing resistance to cold and physical damage (increasing both by 10 (more1L) each).
  - s_evil_omen = http://www.uoguide.com/Evil_Omen
  - s_pain_spike = http://www.uoguide.com/Pain_Spike
  - s_wraith_form = Gets + 15 Resphysical (more1h) and -5(more1l) ResEnergy/ResFire while the effect is active, it also grants the same effect (but not working with it's property) as HitLeechMana returning a % of the target's mana calculated from = Spirit Speak / 50 (24% at 120.0 Spirit Speak), also grants the ability to walk through creatures and players in Felucca
  - s_mind_rot = Decreases the LowerManaCost property on the character.
  - s_horrific_beast = Provides a bonus of unarmed damage (stored in more1l & more1h on the spell's memory, default = 5,9), Gains a +20 RegenHitsVal (more2) and +25 Melee damage increase (morey). It's also unable to cast other spells than polymorphing ones (@SpellCast in c_horrific_beast).
  - s_poison_strike = scripted.
  - s_wither = scripted.
  - s_strangle = Info here: http://www.uoguide.com/Strangle
  - s_lich_form = +13 RegenValMana (more1l), -5 RegenValHits (more1h), -10 ResFire and +10 ResPoison/ResCold ( all three stored in more2).
  - s_vampiric_embrace = +20% HitLeechLife (more1l), +15 RegenStamVal (more1h), +3 RegenManaVal (more2), -25 ResFire (morey).

  NOTES:
    - Almost all graphical effects for these spells are still not applied yet. Same for RUNE_ITEMs.
    - Polymorphs from Necromancy have an increased damage received from Undead Slayer Weapons, since there's no hardcoded support for Slayer Weapons (yet?) I didn't add it. Feel free to script it.
    - These Spells may not be working at 100% yet, just sent 'initial' code. sphere_spells.scp MUST be updated.
    - Some behaviours related to spells and props are going to change in the following days.
  
[sphere_defs.scp]
  - Added LAYER_Spell_BLood_Oath and modified the following values to match it's order.
[sphere_spells.scp]
  - Changed LAYER for s_strangle to LAYER_Spell_Strangle
  - Behaviour for s_wither
  - Behaviour for s_poison_strike
  - Flags, RUNE_ITEM and more values for spells 100+.
  - Added code under @Select for all spellflag_polymorph spells to unpolymorph who is already polymorphed (same as s_polymorph).
[sphere_monsters.scp]
  - Added: c_horrific_beast -> ON=@SpellCast trigger avoiding any casts for this creature if a player is morphed on it.
[sphere_item_deco_signs.scp] (Darksun)
  - Added missing definitions for all signs.
[sphere_item_magic_necromancer_aos.scp]
  - Added fake runes for all necromancy spells, they don't have real entries in tiledata but i'm using custom itemdefs with their scrolls as baseid.

- Taking in count lot of recent changes realized that some properties must properly shown or hidden according to some ini flags, so ResFire,ResPhysical, etc will only be shown on item's ToolTips if COMBAT_ELEMENTAL_ENGINE is enabled

31-05-2015, Coruja
- Changed: Some small code improvements on HITLEECH[LIFE/MANA/STAM] properties.
- Changed: Messsage 'Expansion maps supported' on server startup now will show the real map name (Felucca, Ilshenar, Malas, ...) instead UO expansion name (T2A, LBR, AOS, ...)
- [Sphere.ini]: Changed all MAPx settings to use -1 as sector size. This will make sphere use the default sector size value (64x64) instead .ini value (32x32).

01-06-2015, Coruja
- Fixed: ABS() intrinsic function not working correctly.
- Changed: Some small improvements on AddContextMenuEntry function.

02-06-2015, Coruja
- Fixed: Console error when players die.
- Fixed: PacketDeathAnimation .ini setting not working correctly.
- Changed: Some improvements on 'death' / 'make corpse' internal code. Now any NPC will have corpse when it die (unless it was an summoned NPC). So don't get confused if you see corpses of some NPCs which previously doesn't have corpse (elementals, etc), it's the default OSI behavior. Also TAG.DEATHFLAGS can be used to force removal/creation of the corpse on @Death

03-06-2015, Coruja
Changed: Paralyze spell formula (AOS -> pre-AOS) when MAGICF_OSIFORMULAS is enabled.
Added: Functionality for BONUS[STR/DEX/INT], BONUS[HITS/STAM/MANA] and LOWERMANACOST properties.

04-06-2015, Coruja
Fixed: Damages not removing Paralyze effect.
Fixed: Console error when casting spells that have effect duration.
Changed: Some improvements on Blood Oath and Evil Omen spells (necromancy).

06-06-2015, XuN
Added some missing casts
Fixed DEBUG errors when entering/leaving RED areas.
Reverted back m_uidKiller in m_itCorpse to CGrayUIDBase to fix build not compiling.

06-06-2015, Coruja
Fixed: Field spells and triggers @Step (items) / @ItemStep (chars) not working correctly.

08-06-2015, Coruja
Fixed: Function AddContextEntry not working correctly on HS clients >= 7.0.0.0
Fixed: Dead bonded pets not updating the ghost corpse correctly on resurrect.
Fixed: Explosion potions causing damage to nearby items when it explodes.

10-06-2015, Coruja
Added: Player corpses now will turn into bones when it got carved or before it decay. Also improved the corpse carving behavior, and now when the corpse got carved it will place all items inside the bone container instead drop everything on the ground.
Fixed: Wrong message appearing when the char get flagged criminal (changed 'msg_criminal' to 'msg_guards').
Fixed: Poison/Paralyze Field spells continuously hitting the player at every second instead just hit when needed.
Fixed: Console error when an NPC cast Nightsight spell or use Meditation skill.
Changed: Invulnerable chars (FLAGS=statf_invul) now are able to attack another char instead get the attack "magically blocked".
[sphere_item_deco_dungeons_traps_dead.scp]: Removed TYPE=t_meat_raw, TDATA1 and VALUE from all 'i_flesh_*' items (they aren't foot and nor sellable items).
[sphere_msgs.scp]: Updated all 'carve_corpse_*' messages and removed 'msg_criminal', 'msg_magic_block'.
[sphere_spells.scp]: Added missing 'spellflag_tard_dead' on s_resurrection spell.
	-IMPORTANT: It's HIGHLY recommended update it, or Resurrection spell will stop working.

10-06-2015, XuN
Fixed: Res* not reducing damage anymore
Fixed: Having RegenHits/Mana/Val greater than ini's setting stoping the regen process forever for this character.

11-06-2015, Coruja
Changed: Some small improvements on explosion potion effect.
Fixed: Console error "Hair/Beard not in a corpse" when corpse bones got saved on worldsave.

12-06-2015, XuN
Changed all TAG.TamingSlots entries to FollowerSlots in: sphere_monsters.scp, sphere_monsters_custom.scp and spherechar_evil.scp.
Added @FollowersUpdate trigger called in any update of followers related to OF_PetSlots:
	argn1 (R/W): 0 = Adding followers (taming, unshrinking, summoning, buying ...), 1 = sustracting followers (release, transfer ...)
	argn2 (R/W): FollowerSlots used.
	SRC: Pet causing the trigger to run, when buying in vendors there's no PET yet, so SRC will point to the vendor.
	Return 1 will not allow following actions to occur: Transfer, Summon, UnShrinks from t_figurine, Buy from vendors. Any other actions (like release, set owner...) will not take in count returns.

13-06-2015, XuN
Fixed #2515: Added local.sound to @Effect and @SpellEffect triggers, by default it uses spell->sound excepting effects from potions which will have a random value between 0x030 and 0x031 (old value), this is writable, 0 means no sound.
Fixed #2517: Added BREATH.TYPE to Breath's animation, this will tell Sphere what type of effect to use (same types as .effect).
	- To help keeping old behaviour (explosion on target instead of following fireball) I added BREATH.ANIM and BREATH.TYPE to every brain_dragon in sphere_monsters.scp and sphere_monsters_custom.scp, just remove the // on these lines with a quick find&replace to enable old style breath.

14-06-2015, Coruja
Fixed: Summoned NPCs incorrectly creating corpses on death.
Fixed: Summoned mounts not disappearing on summon timer expiration if it was mounted.
Fixed: Region flags REGION_ANTIMAGIC_RECALL_IN and REGION_ANTIMAGIC_TELEPORT incorrectly blocking Resurrection spell effect.
Fixed: Client screen not being updated correctly when ghosts got resurrected.
Fixed: Possible console error when players/NPCs try pick/drop some specific items.
Fixed: Combat not flagging the attacker criminal if the attack was parried by the target.

16-06-2015, Coruja
Changed: Some optimizations on internal walk code and spell add/remove behavior.
Fixed: Paralyze effect not updating the client immediatelly when it goes off, making the client only able to walk after ~100ms on next tick update.
Fixed: Function SERV.MAP(x,y,z,m) returning console error instead '0' when 'm' is a invalid/disabled map.
[Sphere.ini]: Added new ItemsMaxAmount .ini setting. This will globally set max allowed amount for all stackable items (default is 60000).
[sphere_msgs.scp]: Removed 'msg_invisible' and 'msg_tingling' messages.

17-06-2015, Coruja
Fixed: Stamina not decreasing correctly when walk over another char.
Fixed: Packet to update char hitpoints being sent twice to nearby party members.
Fixed: Properties like STR/ModSTR/MaxHits/etc making the char have current status value > max allowed value when the status got lowered.

18-06-2015, Coruja
Changed: Combat now will make blood effects only for physical damage (wrestling / weapons).
Changed: Field spells casted over the same field already created on ground now will make the previous field tile got replaced with the new one.
Changed: Trigger @DropOn_Ground / @ItemDropOn_Ground now is fired when the item is already on the ground instead get fired before place it on ground. So there's no more ARGS showing the drop location P (use <ACT.P> instead) and also 'return 1' will disable drop sound and decay timer.
Fixed: ATTR 'attr_magic' and 'attr_newbie' incorrectly affecting the item decay timer when it got dropped on ground.
[Sphere.ini]: Updated ClientLinger setting with correct value.

19-06-2015, Coruja
Changed: NEWNPC function won't automatically place the created NPC on source P anymore. Like NEWITEM, the NPC will be created virtually and must be placed on the world using P=x,y. This will prevent the server send unnecessary/duplicated 'update' packets to clients.
Fixed #2514: Hiding / Stealth skills and Poison / Poison Field spells not updating the client screen correctly on action success.
Fixed #2518: Mounts losing bonded status on dismount.

21-06-2015, Coruja
Changed: Improved stamina checks when walking.
Fixed: Possible console error on specific char actions like walk, teleport and cast spells.

23-06-2015, Coruja
Changed: Some internal improvements on explosion potions code.
Changed: Items dropped on invalid location on ground now will get bounced to char backpack instead get moved to char P.
Fixed: Items being able to be dropped on ground inside walls tiles.
Fixed: Possible console error when casting field spells.
Fixed: CUSTOMIZE function on customizable multis not hiding correctly all house dynamic items on ground when client enter on customization mode.
Fixed: House customization menu making the char get moved to multi center when it switch to another floor level.

23-06-2015, matex
Changed: Disabled assertions in non-debug Linux builds. This should not be necessary anymore because there is a SIGSEGV handler in linux builds.
Added: Experimental feature for Sectorsleeping which can be enabled during compilation by using _SECTOR_INTTICK. 
It basically checks in a 3x3 matrix around each sector if there are any players around to determine if the sector is sleeping. 
This leads to a more intelligent distribution of available compute power on small maps (because then the Sectorsleepmask can be 
increased without any immediately 'noticeable' effects). It is not yet available in nightly builds because I consider it too performance 
critical to make it available via a Sphere.ini setting (this would induce an additional comparison in each tick.)

24-06-2015, XuN
Added TithingUse variable for [SPELL ] working like ManaUse but for Tithing Points.
Fixed #2521: delay reseting after the the trigger, so it was impossible to change it.
Added support for Tithing in spells, note that LowerManaCost doesn't affect Tithing points but LowerReagentsCost does it unlike for mana.
Fixed a typo causing humans to create 10% of t_hide when carving corpses instead of applying a bonus of 10%
sphere_msgs.scp: Added //spell_try_notithing			"You must have at least %s Tithing Points to use this ability"	//1060173
sphere_item_provisions_armor.scp: Updated Description and Subsection for gargoyle leather armor.
sphere_spells.scp: Added TithingUse to chivalry spells.

25-06-2015, Coruja
Fixed: Walking over ghosts requiring stamina to pass.
Fixed: Mounts disappearing on worldsave on some specific situations.
Added: New REFUSETRADES (bool 0/1) char property. If set to true (1), it will prevent others clients to open secure trades with this char.
Added: New 'Allow Trades' / 'Refuse Trades' context menu buttons to toggle REFUSETRADES property. Unfortunately only clients >= 7.0.30 can see these buttons because OSI added these cliloc texts only on this client version.
Added: New Hit Chance combat formula (more info: http://uo.stratics.com/content/arms-armor/combat.php#hitchance)
[sphere_msgs.scp]: Added new message 'msg_trade_refuse'.

26-06-2015, Coruja
Fixed: Sphere crash when drop an item on a invalid ground location.
Fixed: Function GOLD creating gold piles with max amount 65000 instead use ItemsMaxAmount value.

26-06-2015, XuN
Added left Racial bonuses for Elfs, Added all for Gargoyles excepting Master Artisan.
Added a missing call to Calc_CombatChanceToHit() from Fight_Attack(), making it to no check the chances to hit.
For more info about Racial bonuses, read here: http://www.uoguide.com/Racial_Abilities .
[sphere.ini]
	-Added FEATURE_ML_RACIAL_BONUS and FEATURE_SA_RACIAL_BONUS to FeatureML and FeatureSA respectively, each one activating the bonuses for human/elfs or gargoyles.

28-06-2015, Coruja
Changed: REFUSETRADES property now can be only used on players. NPCs won't use it anymore, since NPCs can't open trade windows.
Changed: Huge optimization on NPC_AI_EXTRA code. This is a heavy code called thousands of times per second, so unfortunately some features got removed to improve Sphere performance overall:
	-Animals (brain_animal) wont poop on ground anymore.
	-Animal Trainers (brain_animal_trainer) won't give food to nearby pets anymore.
	-Vendors won't go off-duty (brain_vendor_offduty) at night time anymore.
	PS: If someone still need these features, it can be done by scripts using @NPCAction trigger or at BUY/SELL functions on file /speech/speakshopkeep.scp
[sphere_msgs.scp]: Removed messages 'animal_dung' and 'npc_animal_poop'.

29-06-2015, Coruja
[sphere_defs.scp]: Removed 'brain_beggar', 'brain_thief', 'brain_undead' and 'brain_vendor_offduty'. Unfortunately these NPC brains never had worked correctly so it won't make much difference if they got removed to clean some obsolete internal codes.
[sphere_msgs.scp]: Removed messages 'npc_beggar_*' and 'npc_vendor_offduty'.
[speakhuman.scp]: Changed a single 'brain_thief' line to 'brain_animal_trainer' brain check on train command to match these brain changes [brain_thief -> brain_animal_trainer]
[sphere_backward_compatibility.scp]: Added backward compatibility to these 4 removed NPC brains.
[sphere_skills.scp]: Added (<ISPLAYER>) check on Tracking skill to prevent console error when an NPC try to use this skill.
[sphere_menu.scp]: Updated all obsolete ADDITEM and ADDNPC lines to ADD.

03-07-2015, Coruja
Fixed: Wrong console error text when trying to set NPC brains on players.
Fixed: Dead bonded NPCs losing gray color on corpse when client redraw the NPC on screen.
Fixed: @PersonalSpace trigger not being called when walking over chars on stairs.
Changed: Improved frozen check on walk routines and ISSTUCK function.
[sphere_monsters.scp / sphere_monsters_custom.scp]: Updated obsolete NPCs brain 'brain_undead' to 'brain_monster'.

04-07-2015, Coruja
Fixed: Combat creating blood on the attacker instead target.
Fixed: Dragons (brain_dragon) always hitting breath attack even when the target get out of LOS.
Changed: Decreased dragon breath damage. The previous formula was causing too high damages when the dragon has high hitpoints.

08-07-2015, XuN
[sphere.ini]:
-Added CombatSpeedEra to switch between speed formulas that has been changed over the years, also updated the source to reflect this addition and added fully back the formula for Legacy, it was a little tweaked.
// CombatSpeedEra
// 0 = Legacy, T2A, 55x versions..., Recommended SpeedScaleFactor = 15000, Use DEX by default to calc speed, all others use stam
// 1 = AOS,							 Recommended SpeedScaleFactor = 40000
// 2 = SE, 							 doesn't use m_iSpeedScaleFactor and it's only compatible with ML speed format eg. 0.25 ~ 5.00 seconds instead 0 ~ 50
// 3 = ML, 							 Recommended SpeedScaleFactor = 80000
CombatSpeedEra= 3	// Default is ML (3)

Note that SpeedScaleFactor must be changed along with this setting.
Tweaked CombatFormulas, they were using iDelay/2 when Fighting Skill started and generating another iDelay/2 after that period of time making it impossible to fully rewrite the value under argn1 in @HitTry.

[sphere_backwards_compatibility]:
Added some more items.

09-07-2015, Coruja
Changed: Improved some internal actions to update the client screen using less packets instead always do a full resend.
Fixed: Client screen not being updated correctly on death/resurrect when PacketDeathAnimation .ini setting is disabled.
Fixed: MAGICF_OSIFORMULAS .ini setting not calculating Inscription bonus correctly.
Fixed: REVEAL function not removing 'Invisibility' buff icon correctly.
Fixed: Major walk exploit when Injection clients press 'Chat' button.
Fixed: Anti-magic regions blocking resurrect on ankh's (t_shrine).

10-07-2015, Coruja
Fixed: Status (hits/mana/stam) of all chars going down to ~15 at server startup.
Changed: Small improvement on EF_Item_Strict_Comparison .ini experimental feature.
[Sphere.ini]:
	-Removed obsolete EF_Size_Optimise and EF_Intrinsic_Locals experimental flags.
	-Added missing descriptions on Experimental and OptionFlags features.

16-07-2015, Coruja
Fixed #2538: BOUNCE function not activating item decay if it got dropped on ground by overweight.
Fixed: NPCs Healer (brain_healer) resurrecting dead bonded pets (only the pet owner can resurrect it).
Fixed: Combat hit chance formula being called twice, resulting a double chance to miss the attack.

17-07-2015, Coruja
Added: New improved NPC looting AI (NPC_AI_LOOTING).
[sphere_msgs.scp]: Added 'loot_rummage' and removed 'loot_item_from', 'skillact_looting' messages.
[sphere_dialog]: Updated dialog d_charprop1 button 18.

22-07-2015, Coruja
Changed: Some improvements on OF_PetSlots engine.
Fixed: Removed unnecessary full update on client when the player try to use any mount.
Fixed: Function MOD[STR/DEX/INT] not fixing hits/stam/mana max value after decreased.
Fixed: Magic Reflection spell not reflecting spells with SPELLFLAG_DAMAGE set.

23-07-2015, Coruja
Fixed: Function REVEAL not working correctly when used with empty args.
Fixed: Invisible chars not getting revealed when looting items from corpses.
Fixed: Telekinesis spell not flagging criminal when used to loot items from corpses.
Fixed: Paralyze spell effect not getting removed correctly.
Fixed: Clients not entering on warmode correctly after get hit by someone.

24-07-2015, XuN
Added TAG.OVERRIDE.SPEED for ITEMDEFS and Items overriding the current speed for weapons.
Fixed #2535: NPCRestock is now accepting code like any other triggers.
Added: Setting RegenX=-1 in the ini will disable regens for that stat, also the @RegenStat trigger and every related code.
[Items/Sphere_item_provisions_weapons.scp]:
	-Added TAG.OVERRIDE.SPEED for all weapons to match new speeds on OSI, uncomment these lines to enable them (These speeds are meant to be used with CombatSpeedEra=3).
Re-added detail check for parrying messages, they were being sent always regardless of the detail flag on the character.
Re-Adeed EF_Intrinsic_Locals with a warning comment in the ini.
Fixed a check in CChar::NPC_ExtraAI() giving errors when trying to find items inside a container when there was no container to search on.

25-07-2015, Coruja
Changed: Optimized many spells and some others functions to avoid send unnecessary 'update' packets to client when it's not needed (or send it using less packets when needed).

26-07-2015, XuN
Enabled again movement packet for newer clients since blocking it was causing newer clients to do not move at all and getting 'freezed' after some steps. Added a few lines of code to UserChatButton to make this packet restrict movement when this button is being pressed, hence avoiding these injection problems.

26-07-2015, Ben
Added support for future Axis connection... (details will be available when the time comes)
Added internal support for Category,Subsection.Description and ID in SPAWN and TEMPLATE sections. they can now be accessed with (eg: serv.spawn.defname_here.category)
Also added access to ID in CHARDEF to return the real anim id of the chardef in hex. (serv.chardef.c_man.id should return 0190)

28-07-2015, Coruja
[sphere_skills.scp]: Updated TITLE on skills ArmsLore, Blacksmithing and MagicResistance.
[spheretables.scp]:
	-Updated RESOURCES using an better file order to prevent some 'undefined keyword' errors on sphere startup.
	-Fixed a small notoriety typo [Imfamous -> Infamous]

04-08-2015, Coruja
[Sphere.ini]: Added new magic flag MAGICF_OVERRIDEFIELDS to prevent cast multiple field spells on the same tile, making the new field tile remove the previous field.
Changed: If there's multiple field spells on the same tile and MAGICF_OVERRIDEFIELDS is disabled, now only the first field will make effect (this will prevent some weird exploits like cast multiple Fire Field spells on the same tile to take more damage, etc).

06-08-2015, Coruja
Fixed #2541: Client screen not being updated correctly on resurrect.
Fixed: Players randomly switching to previous targets on combat.
Fixed: Client sending unnecessary mana/stam update to party members when opening the status menu.
Added: Missing Polymorph spell duration formula when MAGICF_OSIFORMULAS feature is enabled.

07-08-2015, Coruja
Fixed: Random 'walk resync' problems.
Fixed: Incorrect full update packet sent to clients when it' ID (body) got changed.
Fixed: Combat swings between attacks not working correctly.
Fixed #2539: Combat damages always creating blood using default color (red) instead follow BLOODCOLOR property.

09-08-2015, Coruja
Changed: Major improvements and optimizations on internal Hit / HitTry combat calls.
Changed: Combat swing behavior got slightly changed to be more accurate.
	-Now instead the animation speed match the swing delay duration and only do the damage at the end, the animation/damage will always occour on first 7ms and then it will keep waiting the remaining time until next swing.
	-This makes all anims/sounds perfectly match the damage timer no matter the weapon type or swing delay timer.

13-08-2015, matex
Added: OVERRIDE.NPCAI to control AI-flags on a per character basis if necessary. Otherwise NPCAI flag from sphere.ini is used.

15-08-2015, matex
Added: EF_DynamicBackgroundsave. This will enable, if necessary, if a backgroundsave tick is triggered to save more than only one Sector. 
This especially makes sense if the map has a lot of sectors. E.g. if the sectorsize deviates from 64x64 as completion of a single backgroundsave
takes circa 40 minutes with a sectorsize of 32x32 and BACKGROUNDSAVE set to 1. Using dynamic backgroundsaving this can be sped up at the cost of
some performance. You can approximately limit the amount of items/characters that will be saved as the Operation will just stop if it estimated that
saving another sector would exceed SaveStepMaxComplexity. You can further limit how many sectors will be saved at maximum per backgroundsave-tick using SaveSectorsPerTick. This is a maximum value. If the maximum complexity is exceeded it may not reach that maximum value.
Added: SECTOR.INACTIVECOUNT. Will report the number of logged-out chararacters inside that sector.

16-08-2015, Coruja
Fixed: Walk packet events causing excessive CPU/bandwidth usage.

17-08-2015, Coruja
Fixed: Char property Regen[Hits/Mana/Stam] not working correctly.
Changed: Updated internal MySQL libs version 4.1.18 to 6.1.6. 

19-08-2015, Coruja
Fixed: Combat randomly not starting the first swing.
Fixed: Rubberband when using combat skills while running.
Fixed: World teleports incorrectly showing teleport spell animation.
Fixed: Tracking skill showing empty messages instead not show any message at all when the tracking messages are blank on sphere_msgs.scp.

21-08-2015, Coruja
Fixed: NPCs (brain_monster) always trying to apply poison on hit, even if the NPC doesn't have poisoning skill or poisoned weapons.
Fixed: NPCs not moving when step on Fire Field spell.
Fixed: Tactics skill too difficult to gain on combat.
Fixed: Explosion potion not flagging criminal when hit someone.
Fixed: Spells disturb not working correctly in some specific cases.
Fixed: Missing paperdoll update when char ID (body) get changed.
[Sphere.ini] Removed COMBAT_PREHIT combat flag, it can be replaced by AttackingIsaCrime which does the same thing.
[sphere_defs.scp]: Added new 'dam_nodisturb' damage flag.

25-08-2015, Coruja
Fixed: Food items not restoring char FOOD correctly.
Fixed: HitLeech[Life/Mana/Stam] and HitManaDrain properties making hits/mana/stam rise over the max char limit.
[sphere_spells.scp]: Removed SOUND / EFFECT_ID from Teleport spell. These values are already handled by Sphere.ini settings, and sphere_spells.scp values was making it play twice.

27-08-2015, Coruja
Added: New STEPSTEALTH char property to set how many steps the char can walk invisible while using Stealth skill. This property is set when using Stealth skill, will decrease -1 on each walk step (or -2 if running) and will reveal when reach 0.
Changed: Trigger @StepStealth no longer use ARGN1 to force reveal, the ARGN1=1 can be replaced by STEPSTEALTH=0.
Fixed: Missing buff icon when using INVIS (GM command).
[sphere_skills.scp]: New Stealth softcoded skill.
	-IMPORTANT: It's HIGHLY recommended update it, or this skill will stop working.

28-08-2015, XuN
Changed the way SPAWNS works, improved them and added more access functions:
	- Removed MEMORY_ISPAWNED from source (still present as a def in sphere_defs.scp for backwards-compat)
	- Updated SpawnItem to point directly to the spawn instead of redirecting to memory's link.
	- Moved SpawnItem (R) to COjbBase to affect both chars and items.
	- Spawned OBJs are now stored in the spawn, so SpawnItem only gives quick access to the spawn.
	- Functions added to spawns:
		- AT.n.KEY (R): Retrieves the 'KEY' val for the 'n' spawned item/char, examples: <at.0.name>, <at.0.str>...
		- COUNT (R): Returns the total count of spawned items or chars.
		- RESET (W): Removes every spawned Item/Char.
		- STOP (W): Removes every spawned Item/Char and stops the Spawn.
		- START (W): Same as DClicking the Spawn, but from function, without LOS/Distance/etc limitations (It just makes it start, doesn't reset it, so won't work if it's already working).
		- ADDOBJ uid (W): Adds the given UID(the Item/Char must exist obviously, so it must be created before) to the Spawned list, it doesn't check for MORE2 < AMOUNT or anything, it's a forced add. Example:
				ON=@GetHit
					REF1=<SpawnItem>
					SERV.NEWNPC=<baseid>
					NEW.P=<P>
					NEW.FLAGS |= STATF_CONJURED
					REF1.ADDOBJ=<NEW>
		- DELOBJ uid (W): The opossite of ADDOBJ, removes one OBJ from this list (just remove from the list, it's not removing the OBJ itself).
NOTE: While updating for this build, when server is loading for first time and converting MEMORY_ISPAWNED to SpawnItem and removing these memories, Sphere will throw a memory_leak exception after loading the world because of the difference between items before loading (chars with memory_ispawned) and items after loading (memory_ispawned removed).

Added PREVBUILD storing in the worldsaves the current BUILD (__GITREVISION__), usefull to apply changes when updating the bin. Usage: <SERV.PrevBuild>


Changed iSwingDelay from CChar::Fight_Hit to CResource::Calc_CombatAttackSpeed to prevent double checks for speeds 'lower than' and to avoid guard's speed to be overriden if GuardsInstantKill=1
Also changed AnimDelay from @HitTry to initially have a duration of argn1 -=7, so this can be softcoded to match 'old style' by just adding a simple +=7
Updated fighting delays to match again the 'real' delay removing a tick from the delay (as the fighting proccess is starting in the next tick).
Fixed #2554: SkillUseQuick not checking for SKF_SCRIPTED
Fixed #2553: Animations not being displayed when fighting with COMBATF_NODIRCHANGE
Fixed #2547: Dragons will be tracked as Monsters
Fixed Tracking not displaying the direction of the target in the given message.
Fixed ML SpeedEra's formula not giving correct delays.

15-09-2015, XuN
Fixed #2542: NPCs ridden by GMs deleted on WorldSave.
Fixed #2554: UseQuick not returning false for Skills with SKF_SCRIPTED.

17-09-2015, Coruja
Fixed: Combat swing behavior not working correctly.
[sphere_skills.scp]: Updated Parrying skill to fix glow effect appearing even on failure.

18-09-2015, Coruja
[sphere_monsters.scp]: Added new dinosaurs CHARDEFs from UO Time of Legends (still incomplete yet).
[sphere_item_char_icons.scp]: Added ITEMDEF i_pet_tiger.

19-09-2015, Coruja
Fixed: LOCAL.AnimDelay on @HitTry trigger not working correctly.

25-09-2015, XuN
Fixed #2558: errors thrown when CombatSpeedEra=0 and Weapons had no SPEED defined.
Fixed #2556: Added GetDefKeyNum/Str as shortcut to get directly the values, used in CChar::Fight_Hit to send correct values to CChar::OnTakeDamage
Fixed HitLeechLife/Stam/Mana not giving the corrent amount of hits/stam/mana
CHANGED tag.override.sound_hit to AMMOSOUNDHIT and tag.override.sound_miss to AMMOSOUNDMISS to match other AMMO* properties.

25-09-2015, Coruja
Fixed: Console error when players call "Guards".
Added: Better user-friendly description to server exit codes. Now the console will show "Server terminated: [reason][code]" instead "Server terminated by error [code]".

28-09-2015, Coruja
Fixed: NPCs not facing target when starting combat swings.
Added: New 'DYE <uid>' function to open dye gump on selected UID.

01-10-2015, XuN
Fixed combat swings being aborted when range was not in the required limits regardless of COMBATF_STAYINRANGE enabled or disabled.
ReAdded COMBATF_PREHIT since AttackingIsaCrime is the setting used now to handle notoriety checks, and prehit is used to create a different combat style on some servers dealing damage first and recoaling after.
Added #2560: @TARGON_CANCEL will fire on chars now when closing a target created by TARGETF*, ARGS = function.
[sphere.ini]
	-Added: LootingReveal, setting this to 1 will force your character to be revealed when looting corpses that don't belong to you.

03-10-2015, Coruja
Fixed: Console error when using some specific functions on NPCs or offline players.
Changed: Default timer to close doors after open it changed from 60sec to 20sec.
[items/sphere_item_magic_ninjitsu_bushido.scp]: Fixed wrong MOREZ on i_spellbook_bushido, i_spellbook_ninjitsu.
[maps/sphere_map5.scp]: Added new regions from UO Time of Legends expansion.

04-10-2015, Coruja
Fixed: Hit Chance combat formula not working correctly.
Fixed: sphereworld.scp file saving many [SECTOR] templates for the same sector separately instead save everything related to this same sector on the same template.
[sphere.ini]: Removed EF_Specific / OF_Specific settings, which was incomplete since 7 years ago and was never released to public.

05-10-2015, Coruja
Added: Basic support for UO Time of Legends (TOL)
	-Added RESDISP 9 (TOL) support.
	-Added VIRTUALGOLD function to store virtual gold of chars.
	-Added support for the new trade window changes.
	-Added new 'Trade' popup button to open a trade window when click on another player (enabled only on TOL clients 7.0.46.0+)
	[sphere_admin.scp]: Added 'admin_resdisp_9' def.

08-10-2015, Coruja
[Sphere.ini]:
	-Added new FeatureTOL and FeatureExtra settings (some flags still incomplete)
	-Moved FEATURE_ML_NINTHAGE (FeatureML) to FEATURE_EXTRA_CRYSTAL (FeatureExtra)

09-10-2015, Coruja
Added: Small improvements on TOL trade window.
Added: 'physical' gold piles now will be converted to 'virtual' gold when dropped on bankbox (if FEATURE_TOL_VIRTUALGOLD is enabled).
[sphere_msgs.scp]: Added new messages 'bvbox_deposited', 'msg_trade_sent_*', 'msg_trade_received_*'.
[sphere_map_points5.scp]: Updated [MoonGates] values.

16-10-2015, Coruja
Fixed: TOL trade window not allowing trade gold when the char have 1 or more platinum.

29-10-2015, Coruja
Fixed: Context menu not working on items.
Fixed: Spells memories incorrectly being dropped to backpack instead get removed when the char is already under a spell effect and cast it again.
Fixed: Spells memories intentionally created with TIMER=-1 not being removed when the char cast the spell again to cancel the current effect.
Changed: Buff/debuff spells now will get the memory effect layer from scripts instead use hardcoded values.
	-IMPORTANT: It's HIGHLY recommended check if your sphere_spells.scp is updated and have LAYER value properly set on buff/debuff spells, or these spells will stop working.

30-10-2015, XuN
Added EquipSound to override sounds for items when equipping them.
Changed tag.override.dropsound to DropSound.

03-11-2015, Coruja
Fixed: Possible Sphere crash when DClick on items with long LINK sequence (thx roberpot).
Fixed: Key items linked to houses/boats not being recognized correctly on backpack when using locked items.

04-11-2015, Coruja
Changed: NPC Banker (brain_banker) is now considered an NPC vendor and can use BUY/SELL commands.
[Sphere.ini]:
	-Added new NPCTrainCost setting to tweak the cost of skills trained on NPCs vendors (credits to Nazghul, he did this setting 7 years ago but never enabled it, I just made some improvements and enabled it).
	-Updated NPCTrainMax value.

05-11-2015, XuN
Fixed NPCs not reacting instantly when they see a new target, they stand in the place for some random time without moving against their target.
Fixed Spawns having no NPC limit.
Added MAGIFC_NOREVEALINVISIBLE		02000	// (Old style backwards) Casts won't reveal you on SpellCast if you are under Invisible spelleffect.

07-11-2015, Coruja
[Sphere.ini]
	-Added new ClientLoginTempBan setting to tweak the temporary ban duration of client IP when it reach max wrong password tries
	-Renamed MaxAccountLoginTries setting to ClientLoginMaxTries

09-11-2015, Coruja
Fixed: Mounts disappearing on world save when ridden by NPCs.

13-11-2015, Coruja
[sphere_skills.scp]: Fixed console error when an NPC try to use Tracking skill.
[items/sphere_item_char_icons.scp]: Added TOL NPCs icons.
[npcs/sphere_monsters.scp]:
	-Updated NPCs Wild Tiger and TOL dinosaurs.
	-Added new TOL NPCs Silverback Gorilla, Infernus, Greater Phoenix, Myrmidex Drone.

16-11-2015, Coruja
Fixed #2563: FasterCasting char property incorrectly affecting spell cast delay on chars with GM=1 set.

19-11-2015, Coruja
Fixed: Items inside Trade Window container becoming unreachable after server worldsave + shutdown while the trade window is open.
Fixed: Tracking skill not aborting the action when the client logout.
[sphere_skills.scp]: Fixed console error on Tracking skill.

20-11-2015, Coruja
Fixed: Combat exploit to force start next swing immediately instead wait proper delay between swings.
Changed: Now instead char spawns (t_spawn_char) block the char creation when it reach sector max char complexity, it will spawn the char but throwing an 'Sector too complex' console warning.

24-11-2015, Coruja
Fixed: Buffs not reloading correct remaining timer on client login.
Fixed: Spiderweb (t_web) making chars stay stuck even after the spiderweb get removed.

28-11-2015, Coruja
Fixed: Protection spell not working when COMBAT_ELEMENTAL_ENGINE .ini setting is disabled.

01-12-2015, Coruja
Fixed: Players randomly switching to another target on combat.

03-12-2015, Coruja
[Sphere.ini]: Removed InitHiddenSkills setting. Now player characters are created with base values set on all skills set instead set only on skills that the player client version can see.

04-12-2015, Coruja
[Sphere.ini]:
	-Added new RacialFlags setting to tweak human/elf/gargoyle racial traits individually.
	-Removed FEATURE_ML_RACIAL_BONUS and FEATURE_SA_RACIAL_BONUS settings (they got moved to RacialFlags).

06-12-2015, Coruja
Changed: Improved walk packets on classic/enhanced clients.
[Sphere.ini]: Moved DEBUGF_WALKCODES to new EF_FastWalkPrevention experimental setting (also improved, but still incomplete yet).

17-12-2015, Coruja
Fixed: House customization not allowing clients to walk.
Fixed: Backpack not updating on death.
[Sphere.ini]: Added new pre-AOS option on CombatSpeedEra setting.
	-IMPORTANT: Option values got changed, check if the selected option is correct after update the script.

18-12-2015, Coruja
Changed: Improved the event handler when an item equip/drop request was denied. Now the item is dropped on its last location instead always drop it on player backpack.

30-12-2015, Coruja
Fixed: New player chars not creating MALE_DEFAULT / FEMALE_DEFAULT newbie items when the player select Necromancer/Paladin/Ninja/Samurai as profession on character creation screen.
Fixed: Potions not removing previous memories on layer 'layer_flag_potion' before equip new memories on this layer.
Fixed: Curse spell not working correctly when COMBAT_ELEMENTAL_ENGINE is enabled.

03-01-2016, Coruja
[sphereCrypt.ini]: Added crypt keys for clients 7.0.46 and 7.0.47 (thx XuN and Feeh, I found these values on their forum posts)
[sphere_map_points0.scp]: Updated new player start locations.

08-01-2016, Coruja
Fixed: Clients requesting unnecessary 'resync' packets to server.

10-01-2016, Coruja
Fixed: Client packet problems when players teleport while walking.

11-01-2016, Coruja
Fixed: return 1 on char trigger @EquipTest / @ItemEquipTest making the item drop on char backpack instead on its last location.

12-01-2016, Coruja
Fixed: MAGICF_STACKSTATS magic flag not working correctly.

15-01-2016, Coruja
Fixed: Damage spells disturbing the caster if casted on himself.
Changed: Telnet connections will not receive B (broadcast) messages anymore.
[Sphere.ini]: Changed AutoResDisp default value and functionality.
	Previously this setting was used to set an fixed RESDISP value to new created accounts.
	Now it's a boolean (1=on/0=off) and if enabled it will automatically set account RESDISP on @Login based on player client version.

16-01-2016, Coruja
Fixed: Exploit allowing instant hit on combat.
Fixed: TARG/TARGPROP/TARGPRV char properties returning decimal values instead hex.
Fixed: OF_ScaleDamageByDurability flag not working correctly on items using min durability (MORE1L) = 0.

19-01-2016, Coruja
Changed: Improved Detecting Hidden skill behavior.
[Sphere.ini]: Changed GameMinuteLength default value.
[sphere_monsters.scp]: Added missing stats/skills values on TOL dinosaurs.
[sphere_item_char_icons.scp]: Renamed i_pet_anchisaurus -> i_pet_anchisaur
[sphere_item_animations.scp/sphere_item_deco_lightsources.scp/sphere_item_deco_virtues.scp/sphere_item_profession_alchemist.scp/sphere_item_unsorted.scp]: Removed unused TDATA4 from all t_light_lit items.

20-01-2016, Coruja
Fixed: Console error when GM use commands to add objects on undefined regions.

21-01-2016, Coruja
Added: Missing tame/bonded/summoned tooltips on NPCs.
Fixed: t_spawn_item not saving/loading correctly spawned items.
Fixed: Spawns (worldgem bit) not updating the tooltip when add/delete objects.
Changed: Summon spells now will create NPCs with HOME and HOMEDIST=10 set by default.

22-01-2016, Coruja
Added: New pet command '* unfriend'.
Changed: Many improvements on pet commands engine.
[sphere_speech.scp]: Added UNFRIEND line on speech lists.
[sphere_msgs.scp]: Added new messages 'npc_pet_confused' and 'npc_pet_targ_*'.
[sphere_spells.scp]: Removed 'spellflag_targ_xyz' from most summon spells. The only summon spells that uses target is Blade Spirits and Energy Vortex.
[items/sphere_item_magic_spellweaving.scp]: Added missing color on i_spellbook_spellweaving.

23-01-2016, Coruja
Fixed: Pets accepting items from its owner even when the owner can't access the pet backpack.
Fixed: Polymorph spell and POLY function not working correctly.

27-01-2016, Coruja
Fixed: Items disappearing when players try equip it without have required STR.
Fixed: LOWERREQ item property not working correctly.

28-01-2016, Coruja
Fixed: Summon Creature spell not working correctly.

31-01-2016, Coruja
Fixed: Character stats gump (hits/mana/stam) showing wrong info for players on same party.
Added: New function OPENTRADEWINDOW to start an trade window between 2 players (both clients must be in range and visible).
	Usage: OPENTRADEWINDOW player_uid, item_uid (item uid is optional)

05-02-2016, Vjaka
Fixed: applied a patch by cbnolok fixing xmfhtmltok and sphere crashing on custom skils with index > 57.
    Maximal skills has been set to 99

11-02-2016, Coruja
Fixed: Hiding skill not removing previous Invisibility spell effect on success.
Fixed: Char STEPSTEALTH value being reseted to 0 when function REVEAL is called to clear a single flag but the char still invisible using other flags.
Changed: Improved handling of 'Open Spellbook' and 'Open Door' client macro.
[sphere_msgs.scp]: Added new message 'macro_opendoor' and removed 'msg_nospellbook', 'npc_generic_thanks', 'npc_pet_drop'

13-02-2016, Coruja
Fixed: Buff/Debuff bar showing wrong time left on spells memories using TIMER=-1.
Fixed: Some skills not calling skillgain when action difficulty > skill value, making the skillgain chance always be 0%.

16-02-2016, Coruja
Changed: Improved Sphere main timestamp engine.

16-02-2016, Nolok
Fixed: Ships moving but not updating the multi part on Enhanced Client with smooth sailing disabled.
Changed: Removed useless screen updates when smooth sailing is on, making sailing more fluid.
Fixed: Price of items sold by the vendor swapped on Enhanced Client.
Changed: Removed useless packets sent when opening vendor sell gump on Enhanced Client.

17-02-2016, Nolok
Fixed #2576: SpawnItem value is now readable under @Create trigger.

17-02-2016, XuN
Fully enabled MT_NONMOVER from source, NPC's with this CAN flag will not move at all (avoiding glitching with dex 0 or using tag.nomovetill, which both could screw some things). Updated on sphere_defs.scp too.
Added GetSight() to Char's range in NPC_LookAround to get a dynamic value of the VisualRange property, which was not working on NPCs.
Changed: ARGN1 = 1 in @Stroke trigger(s) calling UpdateDir on character against it's target instead of forcing it to always turn if SKF_GATHER was present.

17-02-2016, Coruja
Fixed: Functions ATTACK/FACE/SALUTE crashing Sphere if called using too many args.

19-02-2016, XuN
Fixed: T_SPAWN_ITEM not working when DClicking the Spawn.

19-02-2016, Nolok
Fixed: ACT not being updated when using .add to add an item. This solves also AxisII being unable to initialize placed spawn items.

22-02-2016, Nolok
Fixed: T_SPAWN_ITEM not automatically setting attr_invis, whereas it happened with T_SPAWN_CHAR.
Fixed: T_SPAWN_ITEM not removing spawned items when it got deleted.
Fixed: forced T_SPAWN_ITEM and T_SPAWN_CHAR to be unstackable through an internal workaround, stopping the Enhanced Client behaviour
	of "unstacking" spawn items with amount > 1 when trying to move them.
Changed: T_SPAWN_ITEM now colours itself red, like t_spawn_char, and when initialized it changes the DispID to i_worldgem_lg,
	in order to differentiate it from worldgem bits related to resource gathering and to make it more visible.
Changed: the MORE2 of a T_SPAWN_CHAR does no more indicate the amount of chars spawned, for that there is the COUNT property
	(read only, introduced time ago), which works also for T_SPAWN_ITEM.
	MORE2 is used only by T_SPAWN_ITEM to indicate the maximum pile amount	of the spawned item (if this is 0, spawn up to the total amount).
	COUNT property does not sum the amount of each spawned item.
	This resolves the ambiguity of MORE2 meaning and saves some space in the save files (you may want to set MORE2=0 to your old T_SPAWN_CHARs).

	-IMPORTANT: this change means that if in your scripts you get the amount of spawned chars with MORE2,
		you should now reference to it with COUNT!

Fixed: MORE2 property for T_SPAWN_ITEM not working as intended.
Changed: now double clicking a T_SPAWN_ITEM spawnitem has the same effect it has on T_SPAWN_CHAR, that is resetting it
	(remove existing items spawned from it) if the timer is running, otherwise starting it (forcing the spawn to work and create some items).
[sphere_msgs.scp] Removed ITEMUSE_SPAWNCHAR_NEG, ITEMUSE_SPAWNCHAR_RSET, ITEMUSE_SPAWNITEM_TRIG and unified them as:
	ITEMUSE_SPAWN_NEG and ITEMUSE_SPAWN_RESET.

22-02-2016, Coruja
Fixed: Enhanced clients not placing items on correct container GRID slot when using containers on 'list view' mode.

23-02-2016, Coruja
Fixed: Some clients not parsing correctly the last number/letter of client version.
Fixed: Spawn items resetting COUNT and AMOUNT values to 0 on server restart.

25-02-2016, XuN
Improved the code of NPC's SpellCasting engine: removed some code and updated a bit the current. Also moved some spells to give them higher priority (Healing > cure poison > buffs ...)
Added SKF_DISABLED, setting this flag on skills will not allow to use them by players or npcs
Added Skill_CanUse(skill) checking if the skill is disabled. Maybe this can be expanded to differ Players from NPCs , adding expansion & resdisp checks, etc.
WARNING: Following changes won't affect current scripts, but adapting them will remove the performance impact (Read NOTE for more tips about what to update).
CHANGED: Moved formulas for SpellEffect's damage above @SpellEffect trigger, so these formulas will be calculated regardless of the returns of the trigger,
			this will allow working with precise numbers instead of wondering what ARGN1 may be and creating own formulas to handle it.
	Also added for this trigger:
		-local.dam with final damage received (if any).
		-local.resist: Damage reduction to apply, it's set to 25 automatically when the spell is going to be resisted, then sysmessage <DEFMSG.RESISTMAGIC> will be shown. Setting it to 0 will result in no resist and no sysmessage. You can force or totally remove resists here.
NOTE: Since formulas will be calculated yes or yes from now, checks about spell's affecting this char or not should be moved to @SpellSuccess ( they should've been there from an start, but we all placed them in @SpellEffect :P) so @Effect won't even be called.
Fixed some spells not being correctly found in case of having multiple books since the code for GetSpellbook() returned the first found book, and this may not have the requested spell.

Script Pack:
	-sphere_defs.scp: Added SKF_DISABLED

25-02-2016, Nolok
Fixed: Spawn items sometimes created with random COUNT property.

28-02-2016, Coruja
Fixed: Buff spells acting like damage spells.
Changed: Some changes on spell triggers (@Effect [spells] / @SpellEffect [chars]) to allow more user customization
	-Renamed LOCAL.Dam to LOCAL.Effect, now it can be used on all spells (damage, buff, etc) instead only on damage spells
	-Added new LOCAL.Duration to change spell duration
	-ARGN2 [skill level] is now read-only
	-ARGN3 [effect multiplicator] got removed, it's no longer needed since now the spell effect value/duration can be changed using LOCAL.Effect/LOCAL.Duration

29-02-2016, Coruja
Changed: Function REPORTEDCLIVER now will return the full client version string (eg: 5.0.2d) and REPORTEDCLIVER.1 will return the raw version number (eg: 5.0.2d = 5000204).
Added: Support for [*]UpdateRange client macros.

01-03-2016, Coruja
Fixed: Sphere crash when any old UO:3D client try to connect.
Fixed: Chars not checking if it still have enough STR to use equipped items when decrease STR/MODSTR.

05-03-2016, Coruja
[sphere_monsters.scp]: Added new TOL NPCs Giant Gorilla, Tiger Cub, Tyrannosaurus Rex (incomplete yet).
[sphere_map_points0/1.scp]: Updated MoonGates template.

07-03-2016, Coruja
Fixed: Invisibility spell not removing previous Hiding skill effect on success.
Changed: SPEECHCOLOR property now can be used on players too (read-only).
Changed: WOPColor .ini setting now will inherit color from char SPEECHCOLOR value if set to 0.

08-03-2016, Coruja
Fixed: NPCs permanently adding target to ignore list when they can't see it.
Fixed: NPCs getting stuck over traps / field spells without walk away.

10-03-2016, Coruja
Fixed: Typedef t_booze returning console error when used more than once.
Changed: SRC on char trigger @EffectAdd now will point to the spell caster instead target.

11-03-2016, Coruja
Fixed: Magic Reflection spell effect not working correctly.
Fixed: Poison / Poison Field spells not calling trigger @EffectAdd on chars.
Fixed: Console error when call ATTACKER.x function using invalid 'x' value.

14-03-2016, Coruja
Added: ARCSIN, ARCCOS, ARCTAN intrinsic functions.
Fixed: Console error when NPCs cast buff/debuff spells on players and die, leaving the spell memory linked on an invalid UID.
Changed: Slightly changed armor % distribution between layers to match old T2A style.
	-Distribution on shields is now 7% of ARMOR value instead [Item ARMOR * (Char PARRYING / 10)]. This could reduce a lot of ARMOR on shields, but there's no problem since shields are used to block the entire damage (parrying) and not to raise ARMOR.

15-03-2016, Nolok
Changed: Reverted ARGN2 on @Effect and @SpellEffect to be Read/Write, since someone still may need it, but keep in mind that effect/duration/etc are calculated before these triggers.
	Also, since some commit, ARGN2 is the randomized spell "potency" used internally, not the original one used to cast/spelleffect the spell.

16-03-2016, Coruja
Fixed: Console error (object not placed in the world) when casting spells that equip memories with TIMER=-1.
Fixed: Weird walk animation when NPCs step on traps / field spells.

17-03-2016, Coruja
Fixed: Spells WOP sending an extra whitespace at the end (eg: "Rel Por ") breaking Razor/UOSteam WOP formatting feature.
[Sphere.ini]:
	-Removed COMBAT_OSIDAMAGEMOD combat flag.
	-Added new CombatDamageEra setting, which does exactly the same thing using the same formulas, but now able to switch between 3 damage formulas instead 2.

18-03-2016, Coruja
Fixed: NPCs getting stuck without move when their combat target use hiding/invisibility.
Added: New LOCAL.ItemDamageLayer (read/write) on trigger @GetHit to get/select the char LAYER that will be damaged on hit.

20-03-2016, Coruja
Fixed: Sphere not storing correct client version on some specific clients, making it send unsupported packets to these clients (resulting in client crash).

21-03-2016, Coruja
Changed: Multi placement target now will center to the multi front door (as OSI does) instead multi center.

24-03-2016, Coruja
Changed: As many users requested, walk through hidden/invisible chars won't require full stamina to pass anymore (this can be customized using ARGN1 on @PersonalSpace trigger)

25-03-2016, Coruja
[sphere_msgs.scp]: Added new CMSG_DEF_FONT and CMSG_DEF_UNICODE settings to customize character name on single click.

30-03-2016, Coruja
Added: TAG.OVERRIDE.TRAINSKILLCOST on NPCs vendors to override NPCTrainCost value from sphere.ini
[sphere_map0.scp]: Fixed RECT values on Green Acres and Green Acres 3.

05-04-2016, Coruja
Fixed: Ship planks allowing usage from distances > MaxShipPlankTeleport setting on Sphere.ini, allowing the player enter on the ship on locations that he won't be able to exit.
Fixed: Magic Reflection flagging criminal the char receiving the spell instead the caster.
Fixed: Chars creating blood on combat even when BLOODCOLOR=-1 is set to prevent the blood creation.

09-04-2016, Coruja
Changed: Reverted changes on pet command STOP. Now it will act as an duplicated command of STAY instead make the pet stop all current actions and start follow his owner again.
[sphereCrypt.ini]: Updated all crypts to use the new client version format.

0.56d, Current Nightly

----0.56d --------------------------------------------------------------------
---- 10/04/2016
10-04-2016, Coruja
Changed: Food level won't decrease on GM chars anymore.
[sphere_msgs.scp]: Removed messages 'npc_text_murd_*'.
[sphere_speech.scp]: Moved hardcoded speech commands 'I must consider my sins', 'I resign from my guild' and 'I resign from my town' to scripts.
	-IMPORTANT: It's HIGHLY recommended update this script, or these speech commands will stop working.

18-04-2016, XuN
Removed TAG.OVERRIDE.MAXWEIGHT and added ModMaxWeight on it's place for Banks and Corpses.
Fixed stackable items not checking maxweight on corpses.
Removed all references to MEMORY_WAR_TARG since they are not needed anymore, targets are handled by 'Attacker' now.
Added back old HitChance formula under CombatDamageEra = 0
Updated checks on @NotoSend trigger: it will not check anymore if ARGN1 > NOTO_INVUL, so you can create custom notoriety.

19-04-2016, Coruja
Fixed: Protection spell not working correctly if COMBAT_ELEMENTAL_ENGINE combat flag is disabled.
[Sphere.ini]: Added new CombatHitChanceEra setting to switch between Hit Chance formulas on physical combat.

20-04-2016, Coruja
Changed: Console errors/warnings now will be colored white again (as it was on old sphere builds).
Fixed: Movement checks not allowing climb some stairs/mounds.

21-04-2016, Coruja
Added: New guild functions ISALLY/WEALLIANCE/THEYALLIANCE, it works exactly in the same way as ISENEMY/WEWAR/THEYWAR but used to set alliances instead wars.

29-04-2016, Coruja
Fixed: COMBAT_ARCHERYCANMOVE combat feature not working correctly.
Fixed: Sphere internal FastLoot prevention not working correctly.
Fixed: Invisible (statf_invisible) chars not being revealed when others chars walk over him.
Fixed: Vendor buy menu showing wrong char 'gold available' value.

30-04-2016, Coruja
Fixed: Mounts disappearing on worldsave on some specific situations.

04-05-2016, Coruja
Fixed: Wrestling using wrong attack animation when unmounted.

07-05-2016, Coruja
Changed: Enhanced clients now will always have tooltips enabled (even if this feature is disabled on Sphere.ini). These clients uses tooltips instead @Click calls, so it's a must-have feature.
Fixed: Spellbook gump not working correctly on enhanced clients.
Fixed: Criminal notoriety incorrectly overriding guild notoriety (war/ally) on chars.

08-05-2016, Coruja
Fixed: Explosion potions not working correctly.
Fixed: Functions SKILLLOCK/STATLOCK not updating the lock icon on client skills/stats window.

15-05-2016, Coruja
Changed: Updated internal Libev libs v4.1 to v4.22.
Changed: Updated internal SQLite libs v3.8.11 to v3.12.2.

19-05-2016, Nolok
Fixed #62: High value FLAGS showing wrong value when retrieved.

21-05-2016, Coruja
[sphere_item_unsorted.scp]: Updated giftbox itemdefs.
[sphere_map_points0/1.scp]: Fixed Hythloth entrance and updated Covetous teleports.

24-05-2016, Coruja
Fixed: Tooltips not showing on disconnected chars when ALLSHOW is enabled.

28-05-2016, Coruja
Fixed: Function MOVENEAR not working correctly.

29-05-2016, Coruja
Fixed: Pet command 'guard me' making the pet follow the owner instead guard him.
Fixed: Jailed players being teleported to the same jail region with no reason when the client login.
Changed: Improved text formatting of basic console commands.

06-06-2016, Coruja
Fixed: Paperdoll and character profile gump showing wrong info.
[sphere_msgs.scp]: Added message 'msg_acc_age' and removed unused 'tooltip_tag_armor', 'tooltip_tag_destination', 'incognito_name_male', 'incognito_name_female'.
[sphereCrypt.ini]: Added crypt key for client 7.0.50

07-06-2016, Coruja
Fixed: Incognito spell considering char notoriety neutral/not-neutral on different actions. To avoid problems, now Incognito will always consider the char neutral (gray), which is the correct effect.
Added: Missing features on Incognito spell
	-It will change char name to a random human male/female name instead always use Man/Woman.
	-It will change char body/hair/beard to a random color temporarily.
	-It won't hide guild abbreviation anymore (the player can choose hide/show it using guild menu).

13-06-2016, Coruja
Fixed: Boat/ship parts resetting TYPE after use 'turn' commands.
Fixed: Server crash when Injection clients connect using fake client version exploit.
Changed: Renamed file Sphere.ini -> sphere.ini to avoid case-sensitive problems on Linux builds.
Changed: Updated internal SQLite libs v3.12.2 to v3.13.0.

17-06-2016, Coruja
Fixed: Paralyze / Paralyze Field making NPCs flood too many attack actions.
Fixed: Console error when for some reason an NPC got created/moved to an invalid region.

22-06-2016, Coruja
Added: Support for colored multis on target functions (only compatible with HS clients 7.0.9.0+)
	-Target functions can set the multi color using TARGETM [multiID, color] and TARGETFM [function, multiID, color]
	-Target will inherit the deed color when got triggered from an deed

27-06-2016, Coruja
Fixed: Function f_onchar_delete not being called if the player char get deleted in any other way different from client Character Selecion menu.
Fixed: Multi dynamic regions getting replaced by script static regions on server resync.
Fixed: EF_FastWalkPrevention not working correctly.
Fixed: Popup menu on players returning parsing error when send Party clilocs to unsupported clients < 6.0.0.0

28-06-2016, Coruja
[sphere_item_unsorted.scp]: Fixed wrong TYPE / TDATA2 on i_fountain_life, i_chest_combination.
[sphere_item_deco_carvings_statues.scp]: Fixed wrong TYPE / TDATA2 on i_statue_stone_blessed.
[sphere_item_deco_furniture.scp]: Fixed wrong TDATA2 on i_chest_kings_collection.
[sphere_serv_triggers.scp]: Updated 'f_onchar_delete' comments.
[sphere_defs.scp]: Updated 'mount_items' and 'mem_flags' values.
[sphere_skills.scp]: Reordered properties to follow the same default order on all skills (nothing was changed, just reordered).
[speakhuman.scp]: Fixed 'train' command returning console error when used on guards NPCs.

29-06-2016, Coruja
Fixed: Attack/Kill command on pets allowing select the pet itself as target, making it attack his owner.
Fixed: WOP flood when casting spells using extremely short delays.
Fixed: Containers using wrong rect area.

30-06-2016, Coruja / azmanomer
[sphere_item_unsorted.scp/sphere_template.scp]: Updated more giftbox itemdefs.

08-07-2016, Coruja
Changed: Some misc improvements and optimizations on combat engine.

13-07-2016, Coruja
Fixed: Chars not able to climb some small mounds.
Fixed: Spawns (worldgem bit) not updating DISPID when set SPAWNDEF on MORE1.

14-07-2016, Coruja
Changed: Improved some NPCs interactions with players.
Fixed: Spawns (worldgem bit) creating chars on stuck locations.

22-07-2016, Coruja
Fixed: Security issue setting account login as chat name when newest clients try to setup the chat window for the first time and the char name is not available.
Fixed: Invisible chars being incorrectly revealed by REVEALF_LOOTINGOTHERS reveal flag when picking items from the ground.
Fixed: Return 0/1 on spell triggers not working correctly.
Fixed: Function MOVENEAR not working correctly.

23-07-2016, Coruja
Fixed: Corpses being created without MORE2 set (last attacker UID) when the char die.
Changed: Updated pick/drop sound on items/containers.

01-08-2016, Coruja
Added: ADD function now supports a new 2nd arg to set the obj amount (eg: 'add i_bandage 10', 'add c_gargoyle 3', ...)
Fixed: Items inside trade window not firing @DropOn_Item trigger when the trade move the item to player bacpkack.
	PS: Using return 1 here will not cancel the trade, this must be done directly on @TradeAccepted/@CharTradeAccepted triggers.

03-08-2016, Coruja
Changed: Max item capacity on containers changed from 255 to 125. This is required to make containers work properly on Enhanced Clients.

05-08-2016, Coruja
Fixed: Combat swing delay not getting updated immediately when the char switch weapons on hands.

07-08-2016, Coruja
Fixed: ARGN1 on char trigger @SkillPreStart not working correctly.

10-08-2016, Coruja
[sphereCrypt.ini]: Added crypt keys for clients 7.0.51 and 7.0.52.
[sphere_monsters.scp]: Added new TOL chardefs (Turanchula, Myrmidex Drone, Myrmidex Warrior, Myrmidex Queen, Dr. Spector, Golem Aztec).

12-08-2016, Coruja
Fixed: SA+ clients showing corpses on wrong direction.
Fixed: pre-SA clients showing wrong light pattern on light sources (candle, torch, etc).
Fixed: Client war mode flag not being removed on death.
Fixed: Multi regions not reloading correctly after server resync.

13-08-2016, Coruja
Fixed: Guards not working correctly.

19-08-2016, Coruja
Changed: Updated internal SQLite libs v3.13.0 to v3.14.1.

20-08-2016, Coruja
Changed: Small improvements on tooltip engine.
Added: Missing RESDISP/RESLEVEL 0 (pre-T2A). Default RESDISP/RESLEVEL value for new created objects is now 0 (pre-T2A) instead 1 (T2A).

21-08-2016, Coruja
Fixed: Internal check to prevent drop items inside walls preventing the item drop even when the wall is on another floor.
Fixed: Message "Too many items here!" not showing correctly when items are dropped on areas with too many items.

22-08-2016, Coruja
Added: ISNEARTYPE function now supports an new 4th argument to only search objects on the same floor.
	-Syntax: ISNEARTYPE item_type, distance, check_multi, check_floor

26-08-2016, Coruja
Changed: Some internal improvements on Tracking skill.
[sphere_msgs.scp]: Updated messages 'tracking_*'.

27-08-2016, Coruja
Changed: Small improvements on container grid engine.

31-08-2016, Coruja
Changed: Some improvements to make client login proccess more reliable.

02-09-2016, Coruja
Fixed: Console error when an online account got deleted.
Fixed: Function f_onchar_delete not being called correctly when the account get deleted.
Fixed: Players with STATF_Stone flag set taking 1hr to disconnect (client linger time) after logout.

03-09-2016, Coruja
Fixed: NPCs not clearing fight action correctly when the current target get out of sight.

05-09-2016, Coruja
Fixed: TimerCall setting on sphere.ini using wrong time format (hours instead minutes) to call f_onserver_timer function.
[sphere.ini]: Removed unused FEATURE_KR_UPDATE_B feature flag.

06-09-2016, Coruja
Added: Support for races on MALE_DEFAULT / FEMALE_DEFAULT starting items template.
Fixed: Items getting equipped on invalid layer or unplaced on world when EQUIP / NEWITEM functions can't equip the item on char.
	-This also fixes new account characters being created with some starting items missing.
[sphere_newb.scp]: Added gargoyle race templates.

07-09-2016, Coruja
Changed: Temporarily disabled ATTACKER.x.IGNORE function and @HitIgnore trigger until we find a way to fix its broken functionality.

14-09-2016, Coruja
Fixed: Rubberband effect when using @Step trigger with MOVE/GO function + return 1.
Changed: return 1 now can be used on @[Item]DropOn_Ground trigger, it will cancel the drop and return the item to its previous location.

16-09-2016, Coruja
Fixed: DAM/ARMOR properties going to 65535 when set any value > 255.
Fixed: NPCs not looking around anymore after start wandering action.
[sphere_msgs.scp]: Updated messages 'skillact_*'.

23-09-2016, Coruja
Fixed: Items not going to backpack when dropped over backpack icon on char paperdoll.

26-09-2016, Coruja
Fixed: HTTP server not working correctly.
Fixed: Console error when deleting account characters.
Fixed: Account character creation not coloring skirt on female characters.
[sphere_msgs.scp]: Removed message 'msg_guildresign'.

27-09-2016, Coruja
Changed: Updated internal SQLite libs v3.14.1 to v3.14.2.

05-10-2016, Coruja
Fixed: Guards NPCs already placed on world not attacking criminal/murderer chars walking nearby.
Fixed: Potions creating cooldown memory (layer_flag_potionused) using wrong name.

06-10-2016, Ares
Changed: New Options for export to exclude own character (SRC) when performing export. The options are now:
	- 1: Only items
	- 2: Only characters without own character.
	- 3: Items and characters without own character. [1+2]
	- (4: Include own Character. But this is meaningless without flag 2)
	- (5: Only items including own character makes no sense. ;-) )
	- 6: Only characters including own character. [2+4]
	- 7: Items and characters including own character. [1+2+4]
Fixed: A rarely occuring bug when importing characters: Sometimes when characters are imported, there is a chance for identical items at same place (in backpack), which are deleted. This shouldn't happen anymore.
Fixed: Importing items with same BASEID and different DISPID at the same place in world removes one of the items unexpectedly. This is especially the case for WSC imports, where same DISPIDs of the same BASEID are is almost always intended. (For example when a part of the static is in game for a while, or migrated between CentrED and a Building-Sphere-Server) The fix is: Such items are not deleted anymore, only when the dispid (and other stuff) matches as well.

08-10-2016, Ares
Fixed: Critical Bug in background save mechanism where an unsaved offline player character disappears from worldsave when moved to an already saved sector.

17-10-2016, Coruja
Fixed: NPCs losing 'statf_spawned' flag after server restart.
Fixed: Nightsight buff icon not being enabled/disabled when using NIGHTSIGHT function or changing 'statf_nightsight' char flag.
Changed: Updated internal SQLite libs v3.14.2 to v3.15.0.

06-11-2016, Coruja
Changed: Updated internal SQLite libs v3.15.0 to v3.15.1.
[sphere_item_char_icons.scp]: Added char icons for Tarantula, Dr. Spector, Tyrannosaurus Rex, Unicorn (Rainbow)
[sphere_item_unsorted.scp]: Added ITEMDEF for TOL christmas giftbox (i_giftbox_christmas)
[sphere_monsters.scp]: Updated some TOL chardefs
[sphere_map0_ml.scp]: Added TOL regions
[sphere_map5.scp]: Moved a_valley_of_eodon, a_shadowguard to sphere_map0_ml.scp
[sphere_defs.scp]: Added mount memory for Ancient Hellhound, Tarantula, Unicorn (Rainbow)
[sphereCrypt.ini]: Added crypt key for classic client 7.0.53 and enhanced clients 4.0.33 ~ 4.0.53

12-11-2016, Coruja
Fixed: Resurrect, Reveal, Meteor Swarm and Lightning spells showing effect animation even when EFFECT_ID=0 is set
[sphereCrypt.ini]: Added crypt key for classic clients 7.0.54 ~ 7.0.55 and enhanced clients 4.0.54 ~ 4.0.55
[sphere_map0.scp]: Added missing 'region_flag_guarded' on a_townOcclo
[sphere_map1.scp]: Added missing 'region_flag_guarded' on a_old_haven_town and a_new_haven_town

27-11-2016, Coruja
Fixed: Console error related to client internal chat engine when some clients connect on server
Fixed: Worldsave not saving DAM/ARMOR properties set manually on chars/items already placed on world
	-NOTE: Changing DAM/ARMOR directly on ITEMDEF/CHARDEF scripts won't update all objects already created anymore, because Sphere will now read DAM/ARMOR values from save files instead read from scripts.
	 To update DAM/ARMOR on objects already created, it will be needed an function like FORINSTANCES to loop through all objects where the value must be updated
Added: Support for items health bar on HS clients >= 7.0.30.0
[sphere_defs.scp]: Added new CAN flag 'can_i_damageable' to enable health bar on items (MORE1L = cur hitpoints / MORE1H = max hitpoints)

30-11-2016, Coruja
Fixed: Server crash when custom clients connect using invalid client version.
Fixed: Ghost mode not setting desolated season on clients.
Changed: Small changes on some console messages to make them standard and provide more relevant data.
Changed: Updated internal SQLite libs v3.15.1 to v3.15.2.

09-12-2016, Coruja
Changed: Sphere can now startup properly without save files instead return "FATAL: missing save files" and close the server. This can make Sphere setup easier for new users.
Changed: Merged TNGSTRIP, STRIP AXIS, STRIP TNG console commands into a single STRIP command.

17-12-2016, Coruja
Fixed: Stealing skill not working correctly.
Changed: Users doesn't have to write AGREE=1 on sphere.ini to use nightly builds anymore. Sphere 56d nightlies are really stable and bug-free so it's safe to use on live servers.

21-12-2016, Coruja
Changed: Updated functionality of all polymorph-like spells (Polymorph, Horrific Beast, Lich Form, Vampiric Embrace, Wraith Form, Reaper Form, Stone Form)
Fixed: Mass Curse spell not working correctly.

22-12-2016, Coruja
Added: Missing buff icon for Criminal flag.
Fixed: Enhanced clients not able to login on accounts with no created chars.
Changed: Improved console startup messages to provide more user-friendly information.
[sphere_defs.scp]: Updated DEFs 'passive_buff_icons', 'debuff_icons', 'buff_icons', 'buff_clilocs'
[sphere_admin.scp]: Dialog 'd_sphereplayertweak' now show the client type (classic/enhanced) being used
[sphere_monsters.scp]: Updated some chardefs (Turkey, Giant Turkey, Tyrannosaurus Rex)

24-12-2016, Coruja
Added: Support for character face style on enhanced clients. It works like hairs/beards, just create the item and equip it on character.
[sphere_item_profession_barber.scp]: Added character face styles ITEMDEFs
[sphere.ini]: Added new FEATURE_EXTRA_ROLEPLAYFACES feature to enable extra roleplay face styles on character creation
[sphere_defs.scp]: Renamed layer 'layer_light' to 'layer_face'
[sphere_newb.scp]: Fixed wrong ITEMDEF on elf templates (i_leaf_tunic -> i_leaf_chest)

28-12-2016, Coruja
Removed: Support for CHARLIST function on enhanced clients, they don't have support for this packet anymore, so disabling it will prevent client crash.

05-01-2017, Coruja
Changed: Updated internal SQLite libs v3.15.2 to v3.16.1.
Changed: Item i_light_source (function EQUIPHALO) now will be equipped on layer_hand2 (2) instead layer_face (15), which previously was an unused layer but now is used by character faces on enhanced clients.
[sphere_item_unsorted.scp]: Updated LAYER value on i_dark_source / i_light_source
[sphere_spells.scp]: Fixed Blade Spirits spell using wrong RUNES value
[sphere_newb.scp]: Fixed typo i_sword_dream -> i_sword_dread

07-01-2017, Coruja
[sphere_map*.scp]: Reworked all maps files moving regions/teleports to new files based on map/expansion, and also added many missing SE/ML/SA/TOL info.
[spheretables.scp]: Updated RESOURCES list with the new map files.

08-01-2017, Coruja
Changed: Updated internal Libev libs v4.22 to v4.24.
Changed: Updated internal Zlib libs v1.2.8 to v1.2.10.
Fixed: Function 'CRIMINAL 0' not updating char notoriety/buff when removing criminal flag.

12-01-2017, Coruja
Fixed: Char death counting kill/fame/karma gain for killers that started the attack but don't have caused any damage yet.
Fixed: FeatureSE setting on sphere.ini not working correctly.
Changed: Guild function ISALLY won't consider guild alignment on alliances anymore.
[sphere_genericstone_functions.scp]: Updated f_stonesys_internal_isalliedwith function

15-01-2017, Coruja
Changed: Updated internal MySQL libs v6.1.6 to v6.1.9.
	-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.

17-01-2017, Coruja
Fixed: Functions SYSMESSAGELOC / SYSMESSAGELOCEX using wrong default color.
[sphere_item_magic_skillmasteries.scp]: Added new file with basic i_spellbook_mastery functionality
[sphere_item_unsorted.scp]: Removed i_spellbook_bard (Bard Masteries is now Skill Masteries)
[sphere_defs.scp]: Renamed typedef 't_spellbook_bard' to 't_spellbook_mastery'

20-01-2017, Coruja
Added: New function MAPWAYPOINT to add/remove waypoints on client radar map (enhanced clients only).
	Sintax: MAPWAYPOINT ObjectUID, WaypointType
	Waypoint types:
		0 = Remove waypoint
		1 = Corpse
		2 = Party Member
		4 = Quest Giver
		5 = New Player Quest
		6 = Healer
		11 = Shrine
		12 = Moongate
		14 = Green Dot
		15 = Green Dot (flashing)

25-01-2017, Coruja
Fixed: Client encryption not being decrypted correctly on login process.
[sphereCrypt.ini]: Added crypt key for classic client 7.0.56 and enhanced client 4.0.56
[sphere_defs.scp]: Renamed 'bufficon_SavingThrow' to 'bufficon_WarriorsGifts' and added new 'mapwaypoint_types' defs
[sphere_map*.scp]: Updated some few regions and teleports (note: added new file 'sphere_map_points0_hs.scp' and removed 'sphere_map0_tol.scp')
[spheretables.scp]: Updated RESOURCES list with the new map files

26-01-2017, Coruja
[sphere_monsters.scp]: Renamed char 'c_unicorn_rainbow' to 'c_lasher'. Updated 'c_skree', 'c_dragon_turtle_hatchling', 'c_myrmidex_queen'. Added new 'c_palomino', 'c_windrunner'
[sphere_item_char_icons.scp]: Renamed item 'i_pet_unicorn_rainbow' to 'i_pet_lasher' and added new 'i_pet_myrmidex_queen', 'i_pet_palomino', 'i_pet_windrunner'
[sphere_defs.scp]: Added mount defs for new TOL mounts Palomino and Windrunner

29-01-2017, Coruja
[sphere_item_building_doors.scp]: Added Jungle / Shadowguard doors
[sphere_item_building_roofs.scp]: Added Jungle / Shadowguard roofs
[sphere_item_building_walls.scp]: Added Jungle / Shadowguard walls
[sphere_item_building_floors.scp]: Added Jungle / Shadowguard floors
[sphere_item_building_stairs.scp]: Added Jungle / Shadowguard stairs

30-01-2017, Coruja
Fixed: HS/TOL items not showing correctly on client screen.
Fixed: ML/SA/HS/TOL doors not working correctly.
[sphere.ini]: Fixed wrong SpeedScaleFactor default value and changed NPCNoFameTitle to be enabled by default

07-02-2017, Coruja
Fixed: Char flag 'statf_hovering' (gargoyle fly ability) not clearing when gargoyle chars polymorph into non-gargoyle char ID.
Fixed: Hidden/Invisible chars not getting revealed when being stumbled.
Changed: Updated internal Zlib libs v1.2.10 to v1.2.11.

09-02-2017, Coruja
Changed: Small fixes and improvements on vendor buy/sell engine.
[sphereCrypt.ini]: Added crypt key for classic client 7.0.57 and enhanced client 4.0.57
[sphere_item_wedding.scp]: Added new wedding items from latest UO patch (publish 96 / client 7.0.57)
[multis_magincia_bazaar.scp]: Updated all stalls to use proper multis instead standalone items

10-02-2017, Coruja
Fixed: Function SHRINK not working correctly.
[sphere_monsters.scp]: Added missing data on some monsters
[sphere_defs.scp]: Updated 'color_*' defs, added new sound def 'snd_monster_wildtiger'
[sphere_item_resources.scp]: Added new resources 'Tiger Pelt' (found on Wild Tiger) and 'Dragon Scute' (found on Dragon Turtle)
[sphere_item_profession_tailor_tanner.scp / sphere_item_profession_cook_barkeep_baker.scp]: Removed some obsolete code
[sphere_item_animations.scp / sphere_item_unsorted.scp]: Changed all t_telepad items to be created using MOREP=-1,-1 instead MOREP=0,0 by default (this will prevent misconfigured t_telepad items teleporting to wrong coord 0,0)

13-02-2017, Coruja
Changed: Spellbooks now store spell offset / max spells using TDATA3/TDATA4 instead MOREZ/MOREX. This will optimize worldsave files, because TDATA* can be used directly from itemdef script and doesn't need to be saved on worldfiles.
	-IMPORTANT: It's HIGHLY recommended update these scripts above, otherwise spellbooks will stop working.
[sphere_item_magic_magery.scp]: Updated i_spellbook
[sphere_item_magic_necromancer_aos.scp]: Updated i_spellbook_necromancy
[sphere_item_magic_chivalry.scp]: Updated i_spellbook_chivalry
[sphere_item_magic_ninjitsu_bushido.scp]: Updated i_spellbook_bushido, i_spellbook_ninjitsu
[sphere_item_magic_spellweaving.scp]: Updated i_spellbook_spellweaving
[sphere_item_magic_mysticism.scp]: Updated i_spellbook_mystic
[sphere_item_magic_skillmasteries.scp]: Updated i_spellbook_mastery

14-02-2017, Coruja
Fixed: Combat Hit Chance formulas incorrectly assuming that defender is always using the same combat skill as the attacker.

15-02-2017, Coruja
Fixed: Functions ATTACK / ATTACKER.ADD not working correctly on NPCs.
Fixed: Enhanced clients not updating backpack content on death.
Added: Enhanced clients now will show an map waypoint of player own corpse when it die.
Added: Better LOS support for bigger screen resolutions of TOL clients 7.0.55.27+ that uses char VISUALRANGE > 18.
[sphere.ini]: Removed 'DistanceTalk' setting, it's no longer needed because talk distance is now set automatically based on char VISUALRANGE.

20-02-2017, Coruja
[sphere_item_ship_parts.scp]: Added missing i_mt_* mount defnames
[sphere_item_building_other.scp]: Fixed Winch using wrong animation list

26-02-2017, Coruja
Added: Support to map waypoints of party members on enhanced clients.
Fixed: Linked doors not opening at the same time on DClick.

28-02-2017, Coruja
Changed: Optimized and added new security checks on account character creation to block the character creation if the client try to exploit it sending fake packets.

12-03-2017, Coruja
Added: Basic internal packet filters that will make Sphere avoid crash or consume excessive resources when under DDoS attack.
Changed: Updated internal SQLite libs v3.16.1 to v3.17.0.

14-03-2017, Coruja
Fixed: NPCs AI interacting with items out of range (eg: loot unreachable corpses, open doors on different floors, etc).
Fixed: Skill triggers not reading ARGN1 (skill number) correctly.

19-03-2017, Coruja
Fixed: Swing Speed calculation making combat stop suddenly when swing speed < attack anim speed.
Fixed: NPC_AI_LOOTING not working correctly.
Fixed: NPCs not clearing 'statf_war' char flag at combat end.
Fixed: NPCs not running away from threats like fire/fields/traps after step on them.
Fixed: NPCs trying to attack his target even when the target is out of sight.

20-03-2017, Coruja
Fixed: Message 'World save completed in X seconds' not showing correct timing precision on Linux builds.

22-03-2017, Coruja
Changed: Small improvements on EF_FastWalkPrevention experimental feature.

01-04-2017, Coruja
Changed: Updated internal SQLite libs v3.17.0 to v3.18.0.
[sphereCrypt.ini]: Added crypt key for classic client 7.0.58 and enhanced client 4.0.58

12-04-2017, Coruja
[sphere_map*.scp]: Updated some regions and teleports
[sphere_defs.scp]: Added sound def 'snd_animal_llama1' and buff/debuff defs for Sparks, Swarm and Bone Breaker
[sphere_item_char_icons.scp]: Added new char icons from publish 97
[sphere_serv_triggers.scp]: Added missing function 'f_onserver_timer' and updated description of all others functions
[sphere_monsters.scp / sphere_events_human.scp]: Fixed missing ENDDO line making sphere crash on infinite loop
	-IMPORTANT: It's HIGHLY recommended update these scripts above to prevent server crash.

16-04-2017, Coruja
Fixed: Poisoning spell not working correctly.
Fixed: Poisoning effect causing damage on items equipped on char.

19-04-2017, Coruja
Changed: Huge improvements on internal chat system, now it works fine on both SA (new chat system) and pre-SA (old chat system) clients.

21-04-2017, Coruja
Fixed: Tooltip "(tame)" not being updated correctly when pets got tamed/released.
Changed: Mount memories now can have their own i_mt_* ITEMDEFs instead use DEFNAME=i_mt_* directly on base items (usually 'boat parts').
Changed: Small improvements on gargoyle fly ability.
Changed: Function WEBLINK now will show an message telling the web browser is starting.
[sphere_msgs.scp]: Added new messages 'gargoyle_fly_cantcurrentform', 'gargoyle_fly_cantdead', 'web_browser_start'
[sphere_defs.scp]: Updated 'mount_items' section to use the new mount memories format (i_mt_* DEFNAME instead hex BASEID)
[items/sphere_item_ship_parts.scp]: Removed all i_mt_* mount memories DEFNAME from boat items to make these items be considered only boat items
[items/sphere_item_memories.scp]: Added all updated i_mt_* mount memories here
	-IMPORTANT: It's HIGHLY recommended update these scripts above to prevent conflicts between mount memories and boat items.

01-05-2017, Coruja
[items/sphere_item_char_icons.scp]: Fixed Crimson/Platinum/Stygian Dragon icons using wrong defname
[items/sphere_item_deco_carvings_statues.scp]: Added swan statues
[items/sphere_item_deco_furniture.scp]: Added vice/virtue pillows
[items/sphere_item_deco_wall_hangings.scp]: Added TOL trophies/banners/paintings
[items/sphere_item_provisions_jewelry.scp]: Added craftsman talismans
[items/sphere_item_provisions_misc.scp]: Added fletching/woodworking containers
[items/sphere_item_unsorted.scp]: Added new easter eggs (2017)
[items/sphere_item_wedding.scp]: Added missing tables
[maps/sphere_map_points5.scp]: Fixed teleport 'tp_StygianDragonsLair1_Teleport7' using wrong P
[speech/job*]: Removed many job*.scp unused speech files
[npcs/sphere_monsters.scp]: Updated status of many chardefs
[npcs/sphere_citizens.scp]: Removed unused speeches from NPCs
[npcs/sphere_guildmasters.scp]: Removed unused speeches from NPCs
[npcs/sphere_vendors.scp]: Removed unused speeches from NPCs
[npcs/spherechar_evil.scp]: Removed unused speeches from NPCs
[npcs/spherechar_human]: Removed unused speeches from NPCs
[sphere_defs.scp]: Added new sound def 'sound_monster_shadows'

06-05-2017, Coruja
[items/sphere_item_magic_armor.scp]: Removed RESOURCES from all items
[items/sphere_item_magic_leather.scp]: Removed RESOURCES from all items
[sphere_skillmenu.scp]: Removed Sphere custom menu 'sm_magic_armor', 'sm_magic_defense_armor', 'sm_magic_guarding_armor', 'sm_magic_hardening_armor', 'sm_magic_fortification_armor', 'sm_magic_invulnerability_armor', 'sm_leather_armor_magic', 'sm_leather_studded_magic'
[sphere_template_magic.scp]: Updated TEMPLATE 'random_magic_custom_greater'

07-05-2017, Coruja
[npcs/sphere_vendors.scp]: Updated CHARDEFs 'c_beekeeper', 'c_beekeeper_f', 'c_scribe', 'c_scribe_f'
[sphere_menu.scp]: Updated menu 'm_addi_weparm_vanq'
[sphere_skillmenu.scp]: Updated skillmenu 'sm_bowcraft', 'sm_wood_misc', 'sm_jewelry', and removed 'sm_bows_excep'
[sphere_template_misc.scp]: Updated template 'random_item_misc_rare'
[sphere_template_vend.scp]: Updated vendor template 'vendor_s_tavernkeeper', 'vendor_b_tavernkeeper', 'vendor_s_mage_1st'

08-05-2017, Coruja
[items/sphere_item_artifacts.scp]: Updated all artifacts info
[items/sphere_item_artifacts_minor.scp]: Updated all artifacts info
[items/sphere_item_artifacts_tokuno.scp]: Updated all artifacts info

12-05-2017, Coruja
Changed: Updated internal MySQL libs v6.1.9 to v6.1.10.
	-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.

14-05-2017, Coruja
[items/sphere_item_building_roofs.scp]: Removed RESOURCES of non-crafted items
[items/sphere_item_building_walls.scp]: Removed RESOURCES of non-crafted items
[items/sphere_item_buildings.scp]: Removed RESOURCES of non-crafted items
[items/sphere_item_deco_carpet_rugs.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_deco_carvings_statues.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_deco_dungeons_traps_dead.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_deco_furniture.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_deco_wall_hangings.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_profession.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_profession_alchemist.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_provisions_jewelry.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_unsorted.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items
[items/sphere_item_vegetation.scp]: Removed RESOURCES/SKILLMAKE of non-crafted items

16-05-2017, Coruja
[items/sphere_item_artifacts.scp]: Updated ID of itemdef 'i_yomotsu_mines_tower_lantern'
[items/sphere_item_deco_furniture.scp]: Added new items 'i_bar_marble'
[items/sphere_item_deco_lightsources.scp]: Updated RESOURCES/SKILLMAKE of many items and renamed all generic defnames 'i_lantern_paper*' (1, 2, 3, ...) to correct lantern names
[items/sphere_item_deco_signs.scp]: Added new items 'i_sign_customizable' and 'i_sign_bar'
[items/sphere_item_magic_weapon.scp]: Removed all custom weapons
[items/sphere_item_misc.scp]: Removed all custom resources
[items/sphere_item_profession.scp]: Removed all custom items
[items/sphere_item_profession_barber.scp]: Updated RESOURCES/SKILLMAKE of item 'i_scissors_barber' and removed custom item 'i_hair_dyes'
[items/sphere_item_profession_cook_barkeep_baker.scp]: Removed custom resources and updated RESOURCES/SKILLMAKE of many items
[items/sphere_item_provisions_armor.scp]: Removed RESOURCES/SKILLMAKE and armor properties of decorative armors that can't be crafted and weared
[items/sphere_item_provisions_clothing.scp]: Removed custom item 'i_hat_wizards_magic' and updated RESOURCES/SKILLMAKE of many items
[items/sphere_item_provisions_deed.scp]: Removed RESOURCES of non-crafted deeds
[items/sphere_item_provisions_misc.scp]: Removed RESOURCES of item 'i_bedroll_open'
[items/sphere_item_provisions_weapons.scp]: Updated RESOURCES/SKILLMAKE of many weapons
[items/sphere_item_resources.scp]: Removed all custom resources
[sphere_backward_compatibility.scp]: Added backward compatibility defs for Bonsai and Paper Lantern items
[sphere_template_misc.scp]: Removed unused items and templates

21-05-2017, Coruja
[items/sphere_item_deco_furniture.scp]: Fixed item 'i_chest_kings_collection' using wrong ID
[items/sphere_item_profession.scp]: Updated item 'i_book_giant' to 'i_unabridged_atlas_eodon' and added its dialog 'd_unabridged_atlas_eodon'
[items/sphere_item_unsorted.scp]: Updated item 'i_chest_gothic' to 'i_chest_sending'
[items/sphere_item_vegetation.scp]: Updated item 'i_bonsai_tree' to 'i_bonsai_ancient_oak'
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list
[sphere_template.scp]: Fixed wrong itemdefs on def 'random_other_food'

22-05-2017, Coruja
[items/multis/multis_foundations.scp]: Updated code syntax
[items/multis/multis_houses.scp]: Updated code syntax
[items/multis/multis_misc.scp]: Updated code syntax
[items/multis/multis_ships.scp]: Updated code syntax
[items/multis/multis_stairs.scp]: Updated code syntax
[items/multis/multis_wandering_camps.scp]: Updated code syntax

24-05-2017, Coruja
[items/sphere_item_char_icons.scp]: Added new icon 'i_pet_kotl_automaton'
[items/sphere_item_deco_wall_hangings.scp]: Removed items 'i_tapestry_elven_3' and 'i_tapestry_map_eodon' (these items got moved to the script above using correct defname)
[items/sphere_item_profession_cartographer.scp]: Added items 'i_tattered_wall_map', 'i_wall_map_eodon', renamed 'i_map' to 'i_map_blank', and removed all custom map items
[npcs/sphere_monsters.scp]: Updated some chardefs (Gallusaurus, Kotl Automaton, Lasher, Palomino, Windrunner) and added new publish 97 monsters (Triceratops, Saber-Toothed Tiger, Platinum Drake, Crimson Drake, Stygian Drake, Blood Fox, Frost Mite, Ossein Ram, Lion)
[sphere_defs.scp]: Added new sound defs 'snd_monster_blade' and 'snd_animal_lion'

28-05-2017, Coruja
Changed: Updated internal SQLite libs v3.18.0 to v3.19.2.
[maps/sphere_map0_hs.scp]: Renamed region 'Wreck of the Ararat' to 'Underwater World'
[maps/sphere_map3.scp]: Added missing region 'Gravewater Lake'
[maps/sphere_map5.scp]: Fixed 'Royal City' region RECT
[maps/sphere_map_points5.scp]: Removed moongate def 'mg_valley_of_eodon' (it got moved to the script below)
[maps/sphere_map_points5_tol.scp]: Added moongate def 'mg_valley_of_eodon'

29-05-2017, Coruja
Changed: Misc improvements on cartography maps packets.
[items/sphere_item_treasure_maps.scp]: File removed (this old system got replaced by the new system below)
[systems/]: Added this new folder to store Sphere default systems
[systems/sphere_system_treasure_maps.scp]: Added new treasure maps system. The script got entirely redone, now easy to customize and updated with latest OSI features
[spheretables.scp]: Added scripts/systems/ folder on RESOURCES list

30-05-2017, Coruja
Changed: Misc improvements on spells Recall, Gate Travel and Mark
	-Recall now can be used on ship keys to recall to boats
	-Gate Travel now will fail if there's already another moongate/teleport on the same spot where moongates will be created
[sphere_msgs.scp]: Updated messages 'spell_gate_*', 'spell_recall_*' and 'spell_mark_*'

31-05-2017, Coruja
Fixed: Skillgain not working correctly when SKILLSUM value is > 6553.5 on sphere_skills.scp.

02-06-2017, Coruja
Changed: Misc fixes and improvements on training items (Training Dummy, Pickpocket Dip and Archery Butte)
[items/sphere_item_profession.scp]: Added CAN=can_i_dcignoredist on item 'i_archery_butte' and fixed 'i_pickpocket_dip' using wrong ID
[sphere_msgs.scp]: Replaced messages 'itemuse_archb_*' with 'itemuse_archbutte_*', 'itemuse_pdummy_*' with 'itemuse_pickpocket_*', 'itemuse_tdummy_*' with 'itemuse_trainingdummy_*'

04-06-2017, Coruja
Fixed: Added missing 'dam_nounparalyze' flag on damage of Poison spell.

06-06-2017, Coruja
Fixed: Throwing weapons not working correctly.
Added: Missing animation of throwing weapons returning after throw it.

08-06-2017, Coruja
Fixed: NPCs canceling combat immediately when its target get out of LOS.
Fixed: NPCs vendors not calculating skill train price correctly.
[sphere_events_npcs.scp]: Fixed event 'e_trainer' showing wrong trainable skill list on vendor's context menu

09-06-2017, Coruja
Changed: Updated internal SQLite libs v3.19.2 to v3.19.3.

16-06-2017, Coruja
Added: New item property PICKUPSOUND to override default pickup sound for items (it can be used together with DROPSOUND).
Changed: DeadCannotSeeLiving setting on sphere.ini now will always show GM chars.
Changed: NPCAI flags NPC_AI_FOOD/NPC_AI_INTFOOD on sphere.ini now will make NPCs search for food only when food level percent (<FOOD>*100/<MAXFOOD>) is < 40% instead (<FOOD> < 10).
[sphere.ini]: Removed unused 'AutoPrivFlags' setting and updated description of NPCAI flags

17-06-2017, Coruja
Fixed: Function BADSPAWN not working correctly.
Changed: Default region flags for MULTIDEF items without REGIONFLAGS set is now 'region_flag_nobuilding' instead 'region_flag_nodecay|region_antimagic_teleport|region_antimagic_recall_in|region_flag_nobuilding'.
Changed: 'return 1' on char trigger @Rename of account characters being created now will block the character creation instead create the character using generic names.
Changed: Server trigger 'f_onchar_create' now is called after skills/stats are already set on the character being created.
	-This will allow users to create characters with custom skills/stats without get these values overridden by default values later.

20-06-2017, Coruja
[items/sphere_item_provisions_armor.scp]: Fixed item 'i_gargish_leather_leggings' returning console error calling an undefined function
[npcs/sphere_citizens.scp]: Fixed NAME/TITLE of all CHARDEFs
[npcs/sphere_guildmasters.scp]: Fixed NAME/TITLE of all CHARDEFs
[npcs/sphere_vendors.scp]: Fixed NAME/TITLE of all CHARDEFs
[sphere_region.scp]: Fixed REGIONTYPE 'r_default' making the client play the same region music again when walking through regions that have the same music

05-07-2017, Coruja
Changed: Reverted Energy Vortex new chardef '023d' to old '0a4' (OSI created this new chardef on AOS age but it was never really used).
[npcs/sphere_monsters.scp]: Removed chardef 023d (the new/broken AOS Energy Vortex) and renamed old chardef 0a4 'c_elemental_swamp' back to 'c_energy_vortex'. Also updated Blade Spirit and Energy Vortex stats
[sphere_spawns.scp]: Removed 'c_elemental_swamp' from spawn lists
[sphere_template_loot.scp]: Removed template 'loot_elem_swamp'

06-07-2017, Coruja
Fixed: Vendor NPCs not training player skills correctly.
[npcs/spherechar_evil.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations
[npcs/sphere_monsters.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations
[npcs/sphere_monsters_custom.scp]: Replaced CAN 'mt_fly' with 'mt_run' on all chardefs that doesn't have flying animations

25-07-2017, Coruja
Changed: Updated internal MySQL libs v6.1.10 to v6.1.11.
	-IMPORTANT: It's HIGHLY recommended update libmysql.dll file on Sphere folder (Windows users) or MySQL packages (Linux users) to prevent errors when using MySQL.

26-07-2017, Coruja
[sphereCrypt.ini]: Added crypt key for classic client 7.0.59 and enhanced client 4.0.59

27-07-2017, Coruja
[sphere_defs.scp]: Added missing sounds 'snd_monster_orc2', 'snd_animals_panther2', and removed unused typedefs 't_telescope', 't_bed', 't_it_stone', 't_garbage', 't_table', 't_hair_dye'
[items/sphere_item_buildings.scp]: Removed typedef 't_telescope' from items
[items/sphere_item_deco_furniture.scp]: Removed typedef 't_table', 't_bed' from items
[items/sphere_item_profession.scp]: Removed typedef 't_table' from items
[items/sphere_item_profession_alchemist.scp]: Removed typedef 't_table' from items
[items/sphere_item_provisions_misc.scp]: Removed typedef 't_garbage' from items
[items/sphere_item_unsorted.scp]: Removed typedef 't_garbage' from items

04-08-2017, Coruja
Changed: Updated internal SQLite libs v3.19.3 to v3.20.0.
Added: New function CHANGEFACE to open client internal 'Face Selection' dialog (enhanced clients only).
[items/sphere_item_profession_barber.scp]: Updated all items
[npcs/sphere_vendors.scp]: Removed obsolete vendor 'c_barber' and added new 'c_body_sculptor', 'c_hairstylist'
[speech/speakshopkeep.scp]: Updated speech 'spk_shopkeep' and added new 'spk_bodysculptor', 'spk_hairstylist'
[sphere_dialog.scp]: Updated dialog 'd_hair_dye' and added new 'd_body_sculptor', 'd_hairstylist', 'd_hair_style', 'd_beard_style'
[sphere_menu.scp]: Removed obsolete 'i_bottle_hair_dye' from menus
[sphere_template_vend.scp]: Removed obsolete 'i_bottle_hair_dye' from vendor templates

10-08-2017, Coruja
Fixed: Weapons not playing hit/miss sounds on combat.
[npcs/sphere_monsters_custom.scp]: Changed obsolete MODAR to RESPHYSICAL
[npcs/sphere_monsters.scp]: Changed obsolete MODAR to RESPHYSICAL and updated NAME of some named NPCs
[npcs/spherechar_evil.scp]: Changed obsolete MODAR to RESPHYSICAL and updated NAME of some named NPCs
[sphere_name.scp]: Updated many names lists

11-08-2017, Coruja
[items/sphere_item_deco_furniture.scp]: Renamed some defnames (i_table_elven_ornate_2 -> i_table_hardwood, i_table_elven_storage -> i_chest_ornate_elven, i_chest_gargoyle -> i_chest_gargish)
[items/sphere_item_unsorted.scp]: Renamed some defnames (i_chest_ornate_elven -> i_chest_rarewood, i_chest_ornate_elven_2 -> i_box_decorative)
[items/sphere_item_misc.scp]: Added missing TDATA2 on items 'i_checkerboard' and 'i_chessboard'
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list

12-08-2017, Coruja
[items/sphere_item_ship_parts_britannian.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
[items/sphere_item_ship_parts_gargish.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
[items/sphere_item_ship_parts_orcish.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
[items/sphere_item_ship_parts_tokuno.scp]: Fixed ship hatches type (t_container -> t_ship_hold) and added its missing TDATA2
[items/sphere_item_unsorted.scp]: Fixed item 'i_dice_cup' not working correctly and removed unused triggers from items 'i_person_lord_british', 'i_person_black_thorne', 'i_deathshroud', 'i_robe_gm'

15-08-2017, Coruja
[items/sphere_item_deco_carvings_statues.scp]: Added publish 98 statues
[items/sphere_item_halloween.scp]: Added new file with publish 98 halloween items
[items/sphere_item_provisions_armor.scp]: Added publish 90 armors
[items/sphere_item_provisions_clothing.scp]: Added publish 90 clothes
[items/sphere_item_provisions_misc.scp]: Added publish 98 items
[items/sphere_item_vegetation.scp]: Added publish 94 plants
[items/sphere_item_wedding.scp]: Added publish 98 wedding items


16-08-2017, Coruja
[speech/jobbanker.scp]: File removed
[speech/speakshopkeep.scp]: Added new speech 'spk_banker' with updated commands: bank, balance, check, withdraw (all commands are fully compatible with FEATURE_TOL_VIRTUALGOLD setting)
[npcs/sphere_vendors.scp]: Renamed speech 'jobBanker' to 'spk_banker' on Banker/Minter NPCs
[items/sphere_item_provisions_deed.scp]: Added new item 'i_bank_check'

18-08-2017, Coruja
[items/sphere_item_deco_carvings_statues.scp]: Moved all halloween items to sphere_item_halloween.scp
[items/sphere_item_deco_dungeons_traps_dead.scp]: Moved all halloween items to sphere_item_halloween.scp
[items/sphere_item_deco_lightsources.scp]: Moved all halloween items to sphere_item_halloween.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all halloween items to sphere_item_halloween.scp
[items/sphere_item_halloween.scp]: Added publish 98 halloween items
[items/sphere_item_profession.scp]: Moved all halloween items to sphere_item_halloween.scp
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all halloween items to sphere_item_halloween.scp
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list

21-08-2017, Coruja
[items/sphere_item_christmas.scp]: File renamed to 'sphere_item_holiday_christmas.scp' 
[items/sphere_item_halloween.scp]: File renamed to 'sphere_item_holiday_halloween.scp'

26-08-2017, Coruja
[items/sphere_item_theme_pack_kings_collection.scp]: Added new file with King's Collection theme pack items
[items/sphere_item_deco_furniture.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
[items/sphere_item_deco_lightsources.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
[items/sphere_item_resources.scp]: Added missing itemdef 'i_workable_glass'
[items/sphere_item_unsorted.scp]: Moved all Kings's Collection items to sphere_item_theme_pack_kings_collection.scp
[sphere_backward_compatibility.scp]: Added some few itemdefs on backward compatibility list

27-08-2017, Coruja
[items/sphere_item_theme_pack_gothic.scp]: Added new file with Gothic theme pack items
[items/sphere_item_building_stairs.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
[items/sphere_item_building_walls.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
[items/sphere_item_deco_carvings_statues.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
[items/sphere_item_deco_furniture.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
[items/sphere_item_profession.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp
[items/sphere_item_unsorted.scp]: Moved all Gothic items to sphere_item_theme_pack_gothic.scp

28-08-2017, Coruja
[items/sphere_item_theme_pack_rustic.scp]: Added new file with Rustic theme pack items
[items/sphere_item_building_stairs.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
[items/sphere_item_building_walls.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
[items/sphere_item_deco_carvings_statues.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
[items/sphere_item_deco_furniture.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp
[items/sphere_item_unsorted.scp]: Moved all Rustic items to sphere_item_theme_pack_rustic.scp

02-09-2017, Coruja
[items/sphere_item_holiday_valentines.scp]: Added new file with Valentine's Day items
[items/sphere_item_animations.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
[items/sphere_item_deco_carvings_statues.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
[items/sphere_item_unsorted.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp
[items/sphere_item_vegetation.scp]: Moved all Valentine's items to sphere_item_holiday_valentines.scp

04-09-2017, Coruja
[items/sphere_item_animations.scp]: Add publish 98 items
[items/sphere_item_deco_lightsources.scp]: Update all lightsource items with correct light pattern and others misc infos
[items/sphere_item_holiday_christmas.scp]: Fixed some wrong ITEMDEF names

09-09-2017, Coruja
[items/sphere_item_char_icons.scp]: Added publish 98 items
[items/sphere_item_provisions_jewelry.scp]: Updated gargish jewelry properties
[items/sphere_item_unsorted.scp]: Removed some duplicated ITEMDEFs
[items/sphere_item_vegetation.scp]: Added some missing trees and potted plants

17-09-2017, Coruja
[items/sphere_item_theme_pack_shadow.scp]: Added new file with Shadow theme pack items
[items/sphere_item_animations.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_boulders_rocks.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_building_doors.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_building_floors.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_building_roofs.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_building_stairs.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_building_walls.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_deco_carvings_statues.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_deco_fireplace_chimney_oven.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_profession_cartographer.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp
[items/sphere_item_unsorted.scp]: Moved all Shadow items to sphere_item_theme_pack_shadow.scp

18-09-2017, Coruja
[items/sphere_item_theme_pack_crystal.scp]: Added new file with Crystal theme pack items
[items/sphere_item_building_doors.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_building_floors.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_building_roofs.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_building_stairs.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_building_walls.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_deco_carvings_statues.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_deco_furniture.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_profession.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp
[items/sphere_item_unsorted.scp]: Moved all Crystal items to sphere_item_theme_pack_crystal.scp

19-09-2017, Coruja
Fixed: Client 'Open Spellbook' macro making the client crash if it try to open the requested spellbook gump when the spellbook item is not loaded yet.
Fixed: Recall spell always using default teleport effect/sound values set on sphere.ini instead EFFECT_ID/SOUND values set on sphere_spells.scp.
[sphere_spells.scp]: Added missing EFFECT_ID value on Recall spell

29-09-2017, Coruja
[items/sphere_item_quests.scp]: Added new file with The Shattered Obelisk (publish 98) quest items
[items/sphere_item_deco_wall_hangings.scp]: Added missing publish 97/98 items

01-10-2017, Coruja
Changed: Updated internal SQLite libs v3.20.0 to v3.20.1.
Fixed: Lightsource items not updating tooltip after toggle light state.

03-10-2017, Coruja
Fixed: AutoTooltipResend .ini setting not working on equipped items.
Fixed: Summoned NPCs not showing smoke effect when they got released.

08-10-2017, Coruja
[maps/sphere_map0_hs.scp]: Updated 'Sea Market' region
[maps/sphere_map1_tol.scp]: Added new file with 'Event Arenas' regions
[maps/sphere_map1.scp]: Updated 'New Haven' regions
[maps/sphere_map_points1.scp]: Added missing 'New Haven Mine' teleports
[npcs/sphere_monsters.scp]: Added publish 98 monsters

15-10-2017, Coruja
Fixed: MODMAXWEIGHT property not working correctly
Changed: Updated 'weight' tooltip on containers

17-10-2017, Coruja
[items/multis/multis_misc.scp]: Added publish 98 / 98.2 multis
[items/sphere_item_char_icons.scp]: Added publish 98.2 items
[items/sphere_item_holiday_christmas.scp]: Updated some item names
[items/sphere_item_memories.scp]: Added publish 98.2 items
[items/sphere_item_provisions_misc.scp]: Added publish 98 / 98.2 items
[items/sphere_item_wedding.scp]: Added 'undead wedding veil/hat' missing functionality
[npcs/sphere_monsters.scp]: Added publish 98.2 mount (Ethereal Serpentine Dragon)
[sphere_defs.scp]: Added mount def for 'Ethereal Serpentine Dragon'
[sphereCrypt.ini]: Added crypt key for classic client 7.0.60 and enhanced client 4.0.60

18-10-2017, Coruja
[items/sphere_item_vice_virtue.scp]: Added new file with Vice vs Virtue items
[items/sphere_item_deco_wall_hangings.scp]: Moved all Vice vs Virtue items to sphere_item_vice_virtue.scp

21-10-2017, Coruja
[items/sphere_item_veteran_rewards.scp]: Added new file with Veteran Rewards items
[items/sphere_item_deco_furniture.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
[items/sphere_item_provisions_misc.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp
[items/sphere_item_unsorted.scp]: Moved all Veteran Rewards items to sphere_item_veteran_rewards.scp

23-10-2017, Coruja
[items/sphere_item_holiday_anniversary.scp]: Added new file with Anniversary items
[items/sphere_item_deco_carvings_statues.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_deco_furniture.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_deco_signs.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_deco_virtues.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_holiday_halloween.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_profession.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_provisions_clothing.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_provisions_shields.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_unsorted.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp
[items/sphere_item_vegetation.scp]: Moved all Anniversary items to sphere_item_holiday_anniversary.scp

24-10-2017, Nolok
Fixed: Skillgain never occurred when using SkillUseQuick.

28-10-2017, Coruja
[items/sphere_item_deco_themed_collections.scp]: Added new file with themed collection items (Spring Decor / Evil Home Decor)
[items/sphere_item_deco_carvings_statues.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_deco_furniture.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_deco_lightsources.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_profession.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp
[items/sphere_item_unsorted.scp]: Moved all themed collection items to sphere_item_deco_themed_collections.scp

05-11-2017, Coruja
[items/sphere_item_holiday_easter.scp]: Added new file with Easter items
[items/sphere_item_deco_carvings_statues.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
[items/sphere_item_deco_wall_hangings.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
[items/sphere_item_unsorted.scp]: Moved all Easter items to sphere_item_holiday_easter.scp
[items/sphere_item_vegetation.scp]: Moved all Easter items to sphere_item_holiday_easter.scp

12-11-2017, Coruja
[items/sphere_item_holiday_thanksgiving.scp]: Added new file with Thanksgiving items
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all Thanksgiving items to sphere_item_holiday_thanksgiving.scp

26-11-2017, Coruja
Changed: Updated internal SQLite libs v3.20.1 to v3.21.0.
[items/sphere_item_artifacts.scp]: Added missing Doom, Shadowguard and Enchanted Origin artifacts
[items/sphere_item_deco_furniture.scp]: Fixed wrong info on many gargish items and also removed unused typedef 't_chair' lines
[items/sphere_item_deco_wall_hangings.scp]: Fixed wrong info on some few items

05-12-2017, Coruja
[systems/sphere_system_aquarium.scp]: Added new file with aquarium system (still incomplete yet)
[items/sphere_item_deco_furniture.scp]: Moved all aquarium items to sphere_system_aquarium.scp
[items/sphere_item_profession_cook_barkeep_baker.scp]: Moved all aquarium items to sphere_system_aquarium.scp
[items/sphere_item_unsorted.scp]: Moved all aquarium items to sphere_system_aquarium.scp

10-12-2017, Coruja
[systems/sphere_system_secret_chest.scp]: Added new file with 'secret chest' system
[items/sphere_item_deco_lightsources.scp]: Fixed lantern items using wrong id
[items/sphere_item_theme_pack_kings_collection.scp]: Added missing King's Collection items
[items/sphere_item_unsorted.scp]: Moved 'secret chest' item to sphere_system_secret_chest.scp

12-12-2017, Coruja
[items/multis/multis_houses.scp]: Updated COMPONENT/DUPEITEM of some MULTIDEFs and moved m_blue_tent, m_green_tent, m_wheat_cottage to multis_misc.scp
[items/multis/multis_ships.scp]: Updated VALUE of some MULTIDEFs
[items/sphere_item_provisions_deed.scp]: Added missing VALUE of vendable deeds

13-12-2017, Drk84
Possible fix for stat cap issue when the sum of the char stats reach StatCap - 1.

20-12-2017, Coruja
[items/sphere_item_boulders_rocks.scp]: Updated crystals/geodes and added new moonstone items
[items/sphere_item_deco_carvings_statues.scp]: Updated all items with correct info
[items/sphere_item_deco_dungeons_traps_dead.scp]: Added missing Kotl City items

26-12-2017, Coruja
Fixed: Deeds not setting ATTR=attr_move_never on multi parent item after create it.
Fixed: Deeds showing multi targets on wrong Y position.
Fixed: 'memory_guard' memories not being removed after its linked item get deleted.

29-12-2017, Drk84
Fixed: SPELLCHANNELING item property not working correctly.

02-01-2018, Coruja
Changed: Improved how ranged weapons handle ammo.
Fixed: ENHANCEPOTIONS item property only working when FEATURE_AOS_UPDATE_B feature is enabled on sphere.ini.

03-01-2018, Nolok
Fixed: when playing a sound from a character from Samurai Empire and later expansions, it was chosen the wrong sound ID for the given action.
	This is caused by the different order of IDs in the sound file after that expansion.
[sphere_defs.scp + npcs/sphere_monsters.scp]: Updated lots of old sounds, added new ones. Still, some are missing.
[sphere_defs.scp]: Added SOUNDTYPE_RAND, SOUNDTYPE_IDLE, SOUNDTYPE_NOTICE, SOUNDTYPE_HIT, SOUNDTYPE_GETHIT, SOUNDTYPE_DIE defs. They are meant to be used with BARK, which has always accepted as parameter the sound type (even if the wiki at this day doesn't say so), not the sound ID (use SOUND for this).
[items/sphere_item_deco_dungeons_traps_dead.scp]: Fixed typo (09cdc item).
[items/sphere_item_deco_furniture.scp]: Changed defname of 03d8a from i_bed_ruined to i_bed_ruined_dupe, because there was already a i_bed_ruined (0c26), plus they look very similar, if not identical.
[items/sphere_item_provisions_armor.scp + items/sphere_item_provisions_clothing.scp]: Added to the defname the suffix "_3d" to the items which gumpart is only available in the old 3D Client. This also solves the presence of two i_shoes_jester.
[items/sphere_item_vegetation.scp]: Changed 026ef (plum blossoms) defname from i_foliage_plum to i_blossoms_plum, because there was already another i_foliage_plum.
[sphere_backward_compatibility.scp]: Removed duplicated defnames i_post_stone, i_rail_stone_4, i_floor_cracks, i_wall_cracks, i_ladder_wood_tall, i_chest_ornate_elven, i_fountain_splash, i_fx_oil_flask, i_chest_gothic.

04-01-2018, Coruja
Added: SOUND property on chars now can be splitted into SOUNDHIT, SOUNDGETHIT, SOUNDDIE, SOUNDIDLE, SOUNDNOTICE
	-SOUND* splitted values are optional, and when set it will have priority over default SOUND value.

04-01-2018, Nolok
Added: SOUNDIDLE, SOUNDNOTICE, SOUNDHIT, SOUNDGETHIT, SOUNDDIE CharDef properties can now have -1 as value: this value prevents that action-related sound to be played.

18-01-2018, Coruja
Changed: Updated MySQL engine
	-All functions got optimized
	-Function DB.CONNECT now will warn if MySQL client (win: libmysql.dll file / linux: libmysqlclient package) or MySQL server are outdated
	-Function DB.QUERY now can handle results with up to 64 columns instead 12
	-Added more info on error messages
	-Fixed some console exceptions

22-01-2018, Coruja
Changed: Updated internal SQLite libs v3.21.0 to v3.22.0.
Fixed: Spells being disturbed even when they have INTERRUPT=0.0 set.

27-01-2018, Coruja
Fixed: Items placed on char backpack not checking char weight limit correctly before get equipped.

30-01-2018, Coruja
Fixed: Ship commands not working correctly.
Fixed: Items not getting amount stacked when dropped on ground.
Fixed: EF_ItemStacking .ini feature stacking items on unreachable Z heights.

31-01-2018, Coruja
Changed: Increased char max stats value from 32.767 to 65.535.

09-02-2018, Coruja
Changed: Linux builds now will require MySQL libs package 'libmysqlclient20' (MySQL 5.7) instead obsolete 'libmysqlclient18' (MySQL 5.5).
	-This doesn't affect Windows builds, because libmysql.dll is already updated since a long time ago.
[sphere.ini]: Added new ChatStaticChannels and ChatFlags settings to set server static channels and customize chat features.

13-02-2018, Coruja
[items/multis/multis_misc.scp]: Removed duplicated MULTIDEFs
[items/sphere_item_buildings.scp]: Added 'Dragon Turtle Fountain' MULTIDEFs
[items/sphere_item_deco_carpet_rugs.scp]: Added 'World Tree' ITEMDEFs/MULTIDEFs
[items/sphere_item_deco_wall_hangings.scp]: Fixed tribal banners using wrong names
[items/sphere_item_holiday_anniversary.scp]: Added 'Codex of Virtue' items and fixed color of 'Enormous Venus Flytrap', 'Japanese Maple', 'Harpsichord Deed'
[items/sphere_item_holiday_thanksgiving.scp]: Added publish 98 items
[items/sphere_item_profession.scp]: Removed duplicated ITEMDEFs
[items/sphere_item_provisions_misc.scp]: Added 'Hildebrandt Dragon Rug' MULTIDEFs
[items/sphere_item_theme_pack_kings_collection.scp]: Fixed 'Dragon Lantern' using wrong ID
[items/sphere_item_veteran_rewards.scp]: Added missing Veteran Rewards items

19-02-2018, Coruja
Fixed: Sphere console not closing correctly when it get closed before load startup files.
Fixed: Function CANSEELOS not working correctly on clients with increased view distance (screen resolution > 800x600).
Fixed: Multis (houses/boats) not being loaded at proper distance when client is walking.

25-02-2018, Coruja
Fixed: Server sending unnecessary 'update' packets to clients.

01-03-2018, Coruja
[sphereCrypt.ini]: Added crypt key for classic client 7.0.61 and enhanced client 4.0.61

02-03-2018, Coruja
[items/sphere_item_holiday_valentines.scp]: Added new Valentine's Day 2018 items
[items/sphere_item_provisions_clothing.scp]: Added new Hooded Britannia Robes
[items/sphere_item_unsorted.scp]: Updated some item names

03-03-2018, Coruja
Fixed: MOUNT property/function not working correctly.

06-03-2018, Coruja
Fixed: Console error when PetsInheritNotoriety .ini setting is enabled.

09-03-2018, Coruja
Fixed: Multi placement making players get stuck when place the multi over his own char.
Fixed: Multi placement being incorrectly blocked by region flags region_flag_underground, region_flag_guarded, region_flag_safe

12-03-2018, Coruja
[sphere.ini]: Removed unused ContextMenuLimit setting

14-03-2018, Coruja
Fixed: Combat swing speed formula not working correctly.
Fixed: Server function 'f_onaccount_connect' not being called correctly when AccApp=2 (free/auto account) is set on sphere.ini.

24-03-2018, Coruja
[items/sphere_item_deco_wall_hangings.scp]: Updated city banners and added missing shard symbols
[items/sphere_item_quests.scp]: Added Prism of Light and Twisted Weald quest items
[items/sphere_item_resources.scp]: Added some missing SA resources
[items/sphere_item_unsorted.scp]: Removed duplicated ITEMDEFs
[items/sphere_item_veteran_rewards.scp]: Added some missing items

02-04-2018, Coruja
Changed: Updated internal SQLite libs v3.22.0 to v3.23.0.
Added: New char trigger @UserUltimaStoreButton, fired when click on 'Ultima Store' button on new clients 7.0.62+
[sphereCrypt.ini]: Added crypt key for classic client 7.0.62 and enhanced client 4.0.62

08-04-2018, Coruja
Added: RES*MAX properties functionality, now they are fully working
	-When RES*MAX is set on chars, RES* will be limited to RES*MAX value

09-04-2018, Coruja
[items/sphere_item_holiday_halloween.scp]: Added missing item 'shackled heart'
[items/sphere_item_magic_magery.scp]: Fixed 'recall rune' being created using wrong MOREP value
[items/sphere_item_profession.scp]: Removed duplicated ITEMDEFs
[items/sphere_item_profession_cartographer.scp]: Added missing TYPE=t_map on cartography maps
[npcs/sphere_monsters.scp]: Fixed NPCs with 'spawn creature' special ability summoning too many creatures

10-04-2018, Coruja
Changed: Updated internal SQLite libs v3.23.0 to v3.23.1.

17-04-2018, Coruja
Fixed: Animal Taming skill not checking follower slots limit when OF_PetSlots is enabled.
[sphereCrypt.ini]: Added crypt key for classic client 7.0.63 and enhanced client 4.0.63

18-04-2018, Coruja
Changed: Small improvements on tooltip engine.

26-04-2018, Coruja
Changed: Connections from 'localserver' won't bypass 'ClientLoginMaxTries' .ini setting anymore.
[sphere.ini]: Changed 'ClientLoginMaxTries' default value [0 -> 10] to increase security against brute-force password attacks

28-04-2018, Coruja
Fixed: Random 'CChar::OnTick' console exception when clients connect.

06-05-2018, Coruja
Fixed: Worldsave not writing [EOF] at the end of sphereaccu.scp file.
Fixed: Worldsave not creating sphereacct.scp file when it doesn't exist.
Fixed: Console command 'I' (view server info) showing wrong server AGE value.
Fixed: Console command 'L' (toggle log file) not working correctly.

21-05-2018, Coruja
Fixed: Console error when TradeWindowSnooping=0 is set on sphere.ini.
[items/sphere_item_animations.scp]: Fixed wrong lightsource pattern (MOREZ) on energy/fire/paralyze field items
[items/sphere_item_building_doors.scp]: Updated some doors DEFNAMEs
[items/sphere_item_building_floors.scp]: Updated some floors DEFNAMEs
[items/sphere_item_deco_virtues.scp]: Removed duplicated DEFNAMEs
[sphere_backward_compatibility.scp]: Updated doors/floors ITEMDEFs on backward compatibility list

25-05-2018, Coruja
Fixed: Lumberjacking skill not working correctly.

26-05-2018, Coruja
Fixed: Sphere crash when call GOLD/NEWGOLD function with args > 65535.

01-06-2018, Coruja
Changed: Updated SQLite engine
	-All functions got optimized
	-Added more info on error messages
	-Fixed some console exceptions

03-06-2018, Coruja
Fixed: <SERV.BUILD> function returning build date instead build number.
Fixed: Containers showing wrong weight on item tooltip when FEATURE_ML_UPDATE feature is enabled on sphere.ini.