---- 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 as a shortcut to > 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 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 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 -------------------------------------------------------------------- ---- * 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 as a shortcut to . Can take either one, two or no arguments like , , . 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 .PARTY refer to the current party of the char. .PARTY.MEMBER.x refer to any member of the party. .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 @ remove the Nth member PARTY.REMOVEMEMBER remove a member in the party with the UID given (if is the master the party is disbanded) PARTY.SYSMESSAGE @ TEXT send a party sysmessage to the Nth member PARTY.SYSMESSAGE 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 @ TEXT send a message from the Mth member to the party PARTY.MESSAGE @, TEXT send a message from the Mth member to the Nth member PARTY.MESSAGE TEXT send a message from the to the party PARTY.MESSAGE , TEXT send a message from member to - Added: TAG/TAG0 for party. 24-01-05, Vjaka - Fixed bug with some keywords recognition caused by 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=''" SERV.log "Got 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.=,[args] note that 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. and ROW.. 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.query "SELECT * FROM mytable" for R 0 -1> SERV.log "--- ROW #> ---" for C 0 -1> SERV.log ".. COLUMN # : >.>>" 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 ,[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 ". - 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: . 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: 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 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: 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 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: 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: .member.X.IsCandidate not working. 11-11-2005, Furio - Fixed #186: ).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 . - 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: 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: 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 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: 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: - 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 operator which converts string with separators other than ',' to commas making possible to operate with such string using strarg/streat. Sample: LOCAL.S= 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. 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: 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: 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 , which consumes amount of an item with id 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,,1,2,3 will call @MyTest with ARGN1=1 ARGN2=2 ARGN3=3. - TAT_AS_ARGS (2): uses arguments as ARGS. Example: TRIGGER @MyTest,,hi you 2,yo ! will call @MyTest with ARGS=hi you 2,yo !. - TAT_AS_ARGO (3): uses arguments as ARGN. Example: TRIGGER @MyTest,,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 (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 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 = 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 >= 99.9 LOCAL.CREATEOBJECT1 = LOCAL.CREATEOBJECT2 = 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: > or >. - Fixed: Addspell not working if used like . 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: returns amount of attackers returns UID of the attacker (or 0 if there is no attacker) 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: 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: 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 " to add 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: - 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 - 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 "". 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_ = 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 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 returns 1 when the id is a different resource type (e.g. (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. 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 = 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 to <> 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. 22-02-2009, nazghul ALPHA additions: - Added: ARROWQUEST x,y command now addts TAG.arrowquest_x and TAG.arrowquest_y to the character it was used on; ARROWQUEST without arguments (to remove the quest arrow) clears these tags. - Added: Character trigger @UserQuestArrowClick now has ARGN2 (x-ccord) and ARGN3 (y-coord). Just rightclicking the arrow does not clear the tags mentioned above, so the quest arrow can be restarted by script if the user illegitimely switched it off 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 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 @ 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. 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 #1770: 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.