Version 1.3.5 * Added bahamut 1.8.x as a supported ircd - Kain (thanks sheik) * Fixed a bug that would allow a player to run from a player vs. player fight, but still attack - Kain (thanks bernardocr) Version 1.3.4 * Fixed a compile bug for some compilers complaining about cerr not being declared - Kain * Offered a temporary fix for the player vs. player hanging bug. If both players end up locked, priority goes to the first person to attack again - Kain * Added VLife as a new supported ircd - Kain (thanks bernardocr) * Fixed a new bug that crashed gameserv when someone attempted to register a nickname - Kain * SET [playername] HP # now also sets the Max HP for a player if it's lower than what you're setting the hp to. If you type /msg gameserv set player hp 1000, but their maxhp was only 10, their maxhp will now be 1000 also - Kain * Added a new config file directive maxnicklen which lets you enforce a maximum length for registering a new player - Kain (thanks Mauritz) * Fixed a bunch of memory leaks including one when a monster is found in the forest, when the dragon is fought, and when a master is fought - Kain * Fixed a bug that would leave a player logged in after they quit - Kain (thanks Mauritz) Version 1.3.3 * Fixed a bug causing players' HP to be set to 10 on gameserv load - Kain (thanks Mauritz) * Removed the timestamp update from the following commands if the player is fighting: STATS, Inventory, and equip - Kain * Added a parameter to the USE command that allows you to specify how many items to use at once - Kain * Really cleaned up the client/player list code. Converted it all to STL lists and changed the players[] list to be a list type instead of list - Kain * Added PTLink as an officially supported IRCD, although it should have worked with hybrid - Kain * Fixed a memory leak when a player quits - Kain * Fixed a bug that would allow a player to quit the network while fighting the dragon, come back and fight a monster, and would become the new dragon - Kain (thanks Mauritz) * Restricted character names to alphanumeric characters only - Kain (thanks Mauritz) * Added a fair fight checker which won't allow people who can kill others with one hit to even challenge other players - Kain (thanks Mauritz) * Fixed a bug that would delete a user upon reset or defeating the dragon - Kain * Fixed a compile bug for some operating systems in c_forest.cpp - Kain (thanks Mauritz) * Fixed a bug that occured when a player defeated another player and gameserv /noticed the channel with the wrong name - Kain * Added a php directory to the source folder which contains a script for parsing the players.dat file and put all the data into a mySQL database - Kain Version 1.3.2 * Fixed a bug which allowed a player to run from the dragon, then fight a monster from the forest and win the dragon fight - Kain (thanks Kit) * Fixed a bug causing the player to be given the item with id 3001 (stick by default) every time they time out - Kain * Fixed a bug in the do_set() command which caused /msg gameserv set nick alive false/true not to work - Kain (thanks vroomfondel) * Fixed a bug in do_set() which was causing /msg gameserv set seen master false to take off the admin flag - Kain (thanks vroomfondel) * Fixed a few bugs in the do_set() function causing GameServ to crash on /msg gameserv set nick or /msg gameserv set nick action - Kain (thanks vroomfondel) * Fixed a logic error in pouch::addItem() that returned the top inventory item after a resort instead of returning the last item added - Kain * Made gameserv automatically equip the Stick and Clothes on register - Kain * Added a parameter to the TAVERN BUY function that allows you to specify how many items to buy - Kain (Thanks Kit) * Fixed the Player class data to be much more encapsulated. Now, in the code, all access to the data members is through a function - Kain Version 1.3.1 * Added most of the monsters submitted as suggestions from the forums - Kain (Thanks DjSlash and CaliMonk) * Implemented DrLnet's Player Fight Notification mod - Kain * Added a config file directive NUMROLLOVERFIGHTS which is the number of forest fights that roll over every ROLLOVERPERIOD - kain (Thanks thelizno) * Added a config file directive ROLLOVERFORESTFIGHTS which will allow you to keep the forest fights from the previous day - kain (Thanks thelizno) * Added a config file directive ROLLOVERPERIOD which will allow you to specify a period of time to rollover the forest fights - kain (Thanks thelizno) * Added a config file directive MAXFORESTFIGHTS which allows you to specify a maximum amount of forest fights a player can roll over - kain (Thanks thelizno) * Changed the percentage of potions found to be 1% - Kain * Fixed the reset function to make sure it adds the proper inventory - Kain * Fixed a bug causing the gsident config file directive to be ignored on UnrealIRCD - Kain (Thanks tsukasa) * Fixed a bug causing players to be shown their own inventory when someone else requested their stats - Kain (Thanks thelizno) * Fixed a bug causing a crash on /msg GameServ use - kain (Thanks thelizno) * Fixed a bug causing a crash on /msg GameServ equip - Kain (Thanks thelizno) * Fixed a bug causing nothing to happen 2% of the time when you search the forest. This was supposed to be when you find a potion, but it wasn't added since the new Item system. - Kain (Thanks Tsukasa) * Fixed a bug in the masteritems.dat file causing the chain saw to take 1 strength point away instead of add 185 - kain (Thanks Tsukasa) * Fixed a bug causing the amount of gold when you find a sack of gold to be calculated really low - kain Version 1.3.0 * Added a new config file directive "localhost" to specify an address to bind to - kain * Added a new config file directive for maximum number of items a player can carry - kain * Added www.gameserv.us website to the startup banner * Completed new item system: http://www.gameserv.us/viewtopic.php?t=21 - kain * Added a new config file directive for the master item data file - kain Version 1.2.6 * Implemented the new dragon/boss system as suggested by Tsukasa: Whenever someone beats the dragon, their player is placed in the Dragon's spot guarding the lair. All other attempts to fight the dragon will cause a duel between your old character and the challenger. You essentially become the new dragon, but the old character's name gets a DRAGON- next to it. You are also now reset back to level 1 - kain w/ thanks to Tsukasa at watnet.org for the idea * Changed the way the sacks of gold and extra experience point forest events were calculated. It is now just as if you killed a monster and didn't have to fight - kain * Fixed the socket code to allow for hostnames to be put in the gameserv.conf for remoteserver instead of just IP addresses - kain * Added capability for GameServ to identify with NickServ on connection - thank you Tsukasa and watever * Added a /msg GameServ SET command with various options - kain Version 1.2.5 * All level master data is now being stored in data/masters.dat - kain * Added a new config file directive that allows you to specify whether or not you want gameserv to send notices to the channel every time it writes the player database - kain * Some under the scenes changes have been made with the way players' and monsters' names, weapons, and death phrases are being stored which should make for less memory leakage and minimized overall memory usage - kain * Fixed a minor bug where gameserv was not notifying of a syntax error in /msg gameserv store buy x x - kain (thank you wolfgar) Version 1.2.4 * Monsters are completely generated except for the names, weapons, and death cries. A range is set for each level's strength, gold, exp, and hp, and a new monster is generated at random during every forest search. This makes for a more unique gaming experience at the expense of some cpu time on random number generations - kain & wolfgar * The structure for holding monsters is now different. Monsters are all stored in the monsters subdirectory in levelx.dat files where x is the level 1 through 12. This will allow for an arbitrary amount of monsters per level - kain & wolfgar * Every time a new news item is added, GameServ announces it in the forest channel - kain * Added a notice to the forest channel that the player data was saved - kain * Fixed some things with the upper limts of money and experience - kain * Changed the command LIST so it only lists people who are playing. To get a full list, use LIST ALL - kain * Added two new config file options which allow you to specify how long to wait before deleting level 1 and other levels' accounts separately - kain * Added a new command CHECK which will display the amount of time until the next refresh - kain * Added a new config option to specify a refresh period in seconds. Now you can specify how often you want the players to be given new forest fights, etc... - kain * Fixed bug causing negative funds to be deposited into an account (bugID 966653) (thank you Jono H - xjono) * Fixed a bug causing players to be duplicated on /msg gameserv load - kain * Added Ultimate2.8.x support - kain * Healing potions can only add up to 100 over your max HP now - kain * Changed the logic for the wishing well forest event. It now adds back a forest fight if you were broke - kain * Fixed a bug causing the wrong bonuses to be added when a level was gained, and none to be added on the last level - kain * Added daily news with automatic additions when you gain a level, unsuccessfully best your master, kill someone, or are killed - kain Version 1.2.3 * Took experience out of calculating the cost of potions - kain * Added even more strength to masters (your defense bonus for each level) to try to even out the fight - kain * Added more strength to monsters past level 7 and changed the masters' stats accordingly - kain * Changed the fountain forest event to not take a forest fight if your HP is at max - kain * Added more experience per monster past level 7 - kain * Added a new forest event (find a potion) each potion has a 1/5 chance of being the one you found, and you have a 2% chance of incurring this forest event - kain * Added notification that a player used a potion during a fight to the player they are fighting - kain * Added potions to the stats command - kain * Made the code a bit less dependent on 12 levels - kain * Added a new parameter to the list command that allows listing only those that are online and playing - kain * Added a new command "Dragon" which lets you fight the end boss - kain * Doubled the required experience for fighting masters - kain * Fixed a cosmetic bug (sorta) that caused your HP not to read 0 when you're dead (thanks Ricky-S) - kain * Fixed a divide by 0 bug that occurred when you attacked, but had no weapon (BugID 946043) (thank you NOTevil) - kain * Fixed a logic error allowing players to bank during a fight - kain * Added more gold per monster above level 4 - kain Version 1.2.2 * Fixed a logical error causing the ListenOnCF flag to only work in P10 servers - kain * Fixed the store command to display syntax on improper sequence of commands (thanks damaged) - kain * Added monsters for levels 10, 11, and 12 (created by damaged, edited by kain) - kain * Made the masters stats match the next level's monsters' stats a lot closer - kain * Fixed a bug that crashed gameserv on /msg gameserv master - kain * Made welcomemsg an optional config file option. If commented out or deleted, gameserv will not send the welcome message (requested by zshack)- kain * Made the ignoreservers config file option work for Unreal - kain * Fixed a minor logical problem that was causing players to be mugged for 0 gold when they were either dead or had no gold on hand and they timed out (thanks Rehm) - kain * Fixed the bug not allowing different config files to be used - kain * Added an optional config file directive BOPER which makes gameserv become an oper on the network - kain * Added an optional config file directive USEPRIVMSG which makes gameserv use /msg instead of /notice - kain * Made the ignoreservers config file option work for bahamut - kain * Fixed an error in do_register that was not adding the client to the players list correctly, causing newly registered players to be locked out of identifying until the next gameserv restart - kain * Fixed an error that crashed GameServ if you tried to fight a player lower than the configured level - kain * Reduced the effect of potions since the price is down - kain * Reduced the price of potions significantly - kain * Added a few timeout events if you're not in a fight - kain Version 1.2.1 * Included a crontab script in all new distros now - kain * Added a new flag that tells wether a person is playing instead of relying solely on pointers - kain * Added a mechanism to ignore on a nick to nick basis, and implemented code to auto-ignore nicks on certain servers - kain * Changed the HASH command to iHASH (case insensitive) and sHASH (case sensitive) - kain * Gameserv no longer opers - kain * New config file directive: listenonc_forest... see gameserv.example.conf - kain * Fixed a bug in identify that was causing players to be shown as not playing (after the change in functions) - kain * Fixed up the is_playing boolean function to be more strict - kain * A true timestamp is now sent on SJOIN for hybrid servers. TS of 1 was messing things up - kain * Logs are now timestamped as follows: mm/dd/yyyy HH:MM:SS - kain * Added a timeout mechanism with two new config file options - kain - If players are fighting, and the one who's turn it is times out, they lose their turn. If they both timeout after that, they are logged out. - If players are not fighting (player fights), they are simply logged out. * Fixed a major bug causing a crash when players fought - kain * The gameserv server now attempts 3 reconnects if disconnected - kain Version 1.2.0 * Took +devel out of the version reply in gameserv.cpp - kain * Implemented a hashing algorithm for extremely fast searches through the players and clients linked lists - kain & wcampbel * Fixed some of the fight code - kain * Added a logout command so you don't have to quit the IRC Network to stop playing - kain * Fixed a bug that was causing players not to be voiced on the forest channel on P10 servers - kain * Added a missing code segment to decrement the player fights per day when you fight another player (reported by MaCbLiNd) - kain * Fixed a bug that allowed the same player name to be registered any number of times - kain * Fixed a problem in when players quit on a P10 server, the /msg gameserv list shows the irc nick as not NULL because it was only setting the regular nick and not the realnick - kain * Fixed a logic error in the identify command that caused players to be falsely shown as identified - kain * When a player logs off during a player fight, the fight now ends. Before it was held in limbo - kain * Fixed a bug in the fight command requiring you to use an irc nickname to fight (BugID 927789) - kain Version 1.1.9 * Added 2 new config file directives (maxafightdistance and maxbfightdistance) These allow you to set limits on the distance (in levels) two players are allowed to fight with. See gameserv.example.conf for more info. - kain * Fixed a bug in the identify command that falsly showed a player as already being identified. - kain * Created Monsters for level 9 - kain * Added the beginnings of an end monster - kain * Slightly adjust the weapon and armor bonuses to prevent a divide by zero exception (reported by wassup). - wcampbel * Prevent players from issuing a FIGHT against a dead player (reported by wassup). - wcampbel * Fixed a core in RUN if a client wasn't playing. - wcampbel * Added an option to specify the PID file in the config file. - kain Version 1.1.8 * Missing directives now are identified for config files upon startup - kain * Added a --help option to the gameserv binary - kain * Added an optional command line parameter to load a config file - kain * Added a nifty startup intro with the version number. - Kain * Fixed BANK BALANCE (BugID 895157) - wcampbel * Completely removed the midnight() function code, and replaced it with some struct tm functionality with the localtime() function. - kain * Major changes to the Makefile, cleaned up a number of rules and added dependencies (via make depend). - wcampbel * Corrected the VERSION reply, it broke ircII. - wcampbel * Fixed some P10/other protocol issues - wcampbel * Removed the old hard coded monsters entries. - wcampbel * Made gameserv load as a true daemon. gameserv.pid now contains the pid for the gameserv process. No more run script. - kain * Fixed a bug that caused the identify function to segfault. - kain * Fixed some P10 Functionality - kain * Merged in the Hybrid patch - wcampbel Version 1.1.7 * Added P10 Functionality (ircu-2.10.11.x) * Created Monsters for level 8 * Increased the size of the monster struct to account for longer names, weapons, and death phrases. * Created Monsters for level 7 * Fixed a bug causing the bank balance command not to work correctly. (Thank you wcampbel) * Added HP potions to increase maximum HP. * Made strength and defense potions add either 1 or 2 points rather than 0, 1, or 2. * Made the monsters a bit harder. I found that as the game progressed, it got easier and easier instead of harder. * Fixed the forest events from happening too often. Also, the fountain forest event specifically was adding too many forest fights, making the day never end. Version 1.1.6 * Added a Reset command to GameServ that functions the same was as the refresh command, except it completely resets a player to the beginning of the game. * Fixed a bug that would cause monsters to have extremely high HP after loading the monster database. * Tweaked the forest events percentages. They happened too frequently. * New player database format: - Alive/Dead is no longer saved as a word in the database. It is saved as a flag. - 3 new integer values were added to the end of every player string representing their inventory (healing, strength, and defense potions). * Changed the Player structure to use 2 new flags which eliminated 2 boolean values (alive & yourturn) to save a little memory. * Fixed a bug that allowed a player already in a fight to be challenged by another player. The other player was then locked into the fight with no way out. * Added a use command that allows a player to use items in their inventory. Currently the only items are health, strength, and defense potions. Command may be used in battle, but it costs you your turn. * Changed the stats command so that it takes the player name as the stats request. You type /msg GameServ stats nick still, but nick no longer has to be on IRC. You use the player name instead of the IRC Nickname. * Added a new hybrid patch to the contrib dir. (Thank you wcampbel) * Fixed a problem in the display_help() function that could cause a bus error. The problem was with changing literal text when passed to the function as a filename. The function now copies the data as a local variable and modifies that. (Thank you wcampbel) * Fixed a bug that allowed a player to be registered twice if the player was not online. (Thank you wcampbel) * Added an inventory command which allows players to view how many potions they are storing. * Added a tavern command which allows players to buy potions and store them in their inventory for later use. * Made some cosmetic changes to this file. * Added an inventory class Pouch which allows players to carry around things such as potions and such. Version 1.1.5 * Added a missing help file admin_commands. It was written before, but somehow was deleted. * Admins can now identify as any user without having the correct password. * Fixed a bug that allowed for two nicknames to identify for the same player. * Added a forestfights directive to the config file so admins can set the default daily forest fights. * Added a die directive to the config file that will not let you start GameServ if it is present. * Inputted monsters for Level 6. Six more levels left unfinished. * Changed confloadtime directive to welcomedelay directive in the config file. This made more sense. * Added an updateperiod directive to the config file. This represents the period (in seconds) for updating the player data file. Every time the gameserv server gets a message it will check to see if "updateperiod" seconds or more have elapsed since the last update. Version 1.1.4 * Fixed the welcome msg sending "ICK" instead of the nickname of a new aclient. (Thank you wcampbel) * Load now has an optional parameter "monsters" which will force a load of the monsterdata file. This is useful for changing monsters on-the-fly. * Added a load_monsters function that loads from a preconfigured monsters.dat file instead of hard coding the monsters into the array. Users can now change the monster configuration around without knowing C/C++. * Added a new directive to the config file: confloadtime this represents the delay (in seconds) until GameServ sends a welcome message to incoming clients. * Added the welcome message to the config file. See gameserv.example.conf for more info on how to use the variable as a formatted string. Version 1.1.3 * Removed a lot of extra list searches by changing all of the boolean functions to take aClient as a parameter instead of a nickname string. * Added an is_alive boolean function. Players must now wait until the next day to play again. * Saving the player->flags integer to the players.dat file. Old databases will not work. QUICK FIX: put a 0 to the left of the encrypted passwords for all player entries so the database can load properly. Look in flags.h for a description of the way flags work. Version 1.1.2 * Added a /version reply * Fixed the Makefile to include configscript.cpp * Added a join message when people connect to the IRCD. The message is set on a delay so that on the initial nick burst, the services do not send everyone the message. * Changed the admin commands from a simple password interface to a more sophisticated flags approach. Now you have to identify with the administrator password once, and your flags indicate that you are an admin for all commands. * Full help files available in corrected form for the new administrator type commands. Version 1.1.1 * Added some admin features. - Refresh * Added help menu functionality for all commands. * Fixed the register command so it notified the client that registration was successful. * Changed the master command so that you didn't have to fight your master if you had enough experience. There is now a question/fight subcommand set for the master command. * Tweaked the masters a bit. Basically, they were too tough. Once a player had enough experience, they had no chance against their master until they got the next two weapons up. This made the next level too easy. Past level 1 still needs tweaking. * Added functionality for bahamut IRCD Version 1.1.0 * Added autoconf functionality to the gameserv package. Does not compile correctly on SunOS without tweaking. * Fixed the game so that players stats reset at midnight UTC + 8 hours. time(NULL) - (time(NULL) % 86400) + 3600 * 8 * Added a contrib directory with a user submitted patch for hybrid ircd.