| 1 | This is the changelog for the Idle RPG bot by jotun, jotun@idlerpg.net,
 | 
|---|
| 2 | http://idlerpg.net. Entries are written backwards. That is, items at the bottom
 | 
|---|
| 3 | of the file were added first, and each subsequent addition is placed on a line
 | 
|---|
| 4 | before it. Don't ask me why I do it that way: I do not know.
 | 
|---|
| 5 | 
 | 
|---|
| 6 | Thanks for your interest in the Idle RPG! Feel free to contact me with ideas and
 | 
|---|
| 7 | comments, or post them in the forum on the website for public view.
 | 
|---|
| 8 | 
 | 
|---|
| 9 | --------------------------------------------------------------------------------
 | 
|---|
| 10 |   v3.1.2+johm+chschu: released -/-/04
 | 
|---|
| 11 | --------------------------------------------------------------------------------
 | 
|---|
| 12 |   - setup !idle@IRCnet [johm]
 | 
|---|
| 13 |   - added ipv6 support [johm]
 | 
|---|
| 14 |   - added auto-login (after netsplit, ping timeout ...) if you haven't
 | 
|---|
| 15 |     changed your nick!user@host [johm]
 | 
|---|
| 16 |      * made auto-login optional [johm]
 | 
|---|
| 17 |   - fixed lvl60+ penalty bug [johm]
 | 
|---|
| 18 |   - fixed possible $rpreport timer bug [johm+chschu]
 | 
|---|
| 19 |   - team battles are now fought out around random points on the map [chschu]
 | 
|---|
| 20 |   - added wars of northern half against southern half of the map [chschu]
 | 
|---|
| 21 |      * made wars quadrant-based [chschu]
 | 
|---|
| 22 |   - dropped items stay on the map, lose 1 level every 30 minutes and are
 | 
|---|
| 23 |     found if somebody enters the same spot [chschu]
 | 
|---|
| 24 |      * changed downgrading time to 1 day, limited downgrading of uniques [chschu]
 | 
|---|
| 25 |      * only drop items of level > 0, downgrade uniques to non-uniques
 | 
|---|
| 26 |        below their minimum level [chschu]
 | 
|---|
| 27 |      * downgrading now depends on item level (higher => slower) [chschu]
 | 
|---|
| 28 |   - added reload of quest on startup [chschu]
 | 
|---|
| 29 |   - fixed bug with int() applied on non-numeric strings (item levels) [chschu]
 | 
|---|
| 30 |   - fixed config bug on empty value [chschu]
 | 
|---|
| 31 |   - fixed warning on undefined username in ha() [chschu]
 | 
|---|
| 32 |   - fixed bug breaking userhost on nick change [chschu]
 | 
|---|
| 33 |   - fixed voice on login bug (less nicks than flags) [chschu]
 | 
|---|
| 34 | 
 | 
|---|
| 35 | 
 | 
|---|
| 36 | --------------------------------------------------------------------------------
 | 
|---|
| 37 |   v3.1.2: released 6/6/04
 | 
|---|
| 38 | --------------------------------------------------------------------------------
 | 
|---|
| 39 |   - applied a user-submitted patch to fix a sprintf() bug (anonymous @ forum)
 | 
|---|
| 40 |   - quest() now calls writequestfile() when it completes
 | 
|---|
| 41 |   - loaddb() now calls backup() before it starts
 | 
|---|
| 42 | 
 | 
|---|
| 43 | 
 | 
|---|
| 44 | --------------------------------------------------------------------------------
 | 
|---|
| 45 |   v3.1.1: released 6/3/04
 | 
|---|
| 46 | --------------------------------------------------------------------------------
 | 
|---|
| 47 |   - fixed 2 typos having to deal with die() messages when reading the config
 | 
|---|
| 48 |     file (meij, et al)
 | 
|---|
| 49 |   - quest() now calls writequestfile() when it completes so that it is
 | 
|---|
| 50 |     immediately available
 | 
|---|
| 51 |   - loaddb() now calls backup() before it starts so you always have an
 | 
|---|
| 52 |     up-to-date backup if your bot mangles your db
 | 
|---|
| 53 |   - readconfig() now strips out \r and \n (meij, kylemson, et al)
 | 
|---|
| 54 | 
 | 
|---|
| 55 | 
 | 
|---|
| 56 | --------------------------------------------------------------------------------
 | 
|---|
| 57 |   v3.1.0: released 6/2/04
 | 
|---|
| 58 | --------------------------------------------------------------------------------
 | 
|---|
| 59 |   - added a config file so you don't have to re-setup configuration options
 | 
|---|
| 60 |     everytime you upgrade. added a function readconfig() to read this file or
 | 
|---|
| 61 |     die() if it cannot be found
 | 
|---|
| 62 |   - SIGHUP will now call readconfig()
 | 
|---|
| 63 |   - added a DELADMIN command to remove admin status from a username. format:
 | 
|---|
| 64 |         /msg bot DELADMIN <account>
 | 
|---|
| 65 |     owner account cannot be DELADMINed. DELADMIN may be limited to owner account
 | 
|---|
| 66 |     depending on configuration (TGS)
 | 
|---|
| 67 |   - added an 'owner' account option. owner cannot be DELADMINed, among other
 | 
|---|
| 68 |     things
 | 
|---|
| 69 |   - added an 'owneraddonly' option. if set, only owner account can MKADMIN
 | 
|---|
| 70 |   - added an 'ownerdelonly' option. if set, only owner account can DELADMIN
 | 
|---|
| 71 |   - renamed disablepeval to ownerpevalonly. if set, only owner account can PEVAL
 | 
|---|
| 72 |   - added missing command line options for %opts options
 | 
|---|
| 73 |   - fq() will limit itself to either 1 message or <= 768 bytes output per call,
 | 
|---|
| 74 |     regardless of $freemessages
 | 
|---|
| 75 |   - added an option to turn off the sending of the list of users automatically
 | 
|---|
| 76 |     logged back in on a bot restart, even if the list < 1 k
 | 
|---|
| 77 |   - added an option to limit the penalty a single event can incur, 'limitpen'.
 | 
|---|
| 78 |     set to 0 to disable the feature, otherwise is taken to be an integral number
 | 
|---|
| 79 |     of seconds
 | 
|---|
| 80 |   - Win32 no longer tries to turn terminal echo on/off via "stty"
 | 
|---|
| 81 |   - tarball now unpacks files to their own directory instead of .
 | 
|---|
| 82 |   - removed unused $v, $debug variables
 | 
|---|
| 83 |   - auto-login would not voice users that it logged in even if voiceonlogin was
 | 
|---|
| 84 |     set, fixed (wogi, et al)
 | 
|---|
| 85 |   - fixed a comment having to do with auto login
 | 
|---|
| 86 |   - $rpreport should not have been adjusted by $curtime, but by
 | 
|---|
| 87 |     $opts{self_clock} to keep it reliable. this may have caused some loss of
 | 
|---|
| 88 |     data as the bot neglected to properly backup its database. so sorry! should
 | 
|---|
| 89 |     now be fixed (many)
 | 
|---|
| 90 |   - item godsend was removing 10% of item's value instead of adding it. another
 | 
|---|
| 91 |     copy/paste error. sorry! (Jim Dew)
 | 
|---|
| 92 |   - fixed a bug that resulted in users that caused quests to fail not being
 | 
|---|
| 93 |     penalized, as they were set as 'offline' before the bot had a chance to
 | 
|---|
| 94 |     penalize them (Jim Dew)
 | 
|---|
| 95 |   - added options to define the size of your IRPG grid, 'mapx' and 'mapy' (Rick)
 | 
|---|
| 96 |   - team battle now shows roll/sum like other battles (anonymous @ forum)
 | 
|---|
| 97 |   - added REHASH command to call readconfig()
 | 
|---|
| 98 |   - added an option to define the number of modes per line to use when voicing
 | 
|---|
| 99 |     users after an auto login. this variable may be overriden by the server's
 | 
|---|
| 100 |     directive (Rick)
 | 
|---|
| 101 | 
 | 
|---|
| 102 | 
 | 
|---|
| 103 | --------------------------------------------------------------------------------
 | 
|---|
| 104 |   v3.0.2: released 5/30/04
 | 
|---|
| 105 | --------------------------------------------------------------------------------
 | 
|---|
| 106 |   - calls evilness() and goodness() should have been checking against the number
 | 
|---|
| 107 |     of online evil users and good users respectively, not the total number of
 | 
|---|
| 108 |     online users (SickMind)
 | 
|---|
| 109 |   - changed max length of auto-login text to 1k before bot will refuse to send
 | 
|---|
| 110 |   - fixed a problem with the bot penalizing the kicker instead of the kickee
 | 
|---|
| 111 |     when someone was kicked (Preston, anonymous, Soc @ idlerpg.net forum)
 | 
|---|
| 112 | 
 | 
|---|
| 113 | 
 | 
|---|
| 114 | --------------------------------------------------------------------------------
 | 
|---|
| 115 |   v3.0.1: released 5/29/04
 | 
|---|
| 116 | --------------------------------------------------------------------------------
 | 
|---|
| 117 |   - forgot to add some sort of mechanism for setting up admins for new bots.
 | 
|---|
| 118 |     whoops. bot will now prompt for an owner's account details if it cannot find
 | 
|---|
| 119 |     $opts{dbfile} (Secret, anonymous @ idlerpg.net forum)
 | 
|---|
| 120 |   - fixed a typo in the ChangeLog ;)
 | 
|---|
| 121 |   - Vayanla noted that there was STILL a time discrepancy for very large games
 | 
|---|
| 122 |     (or very slow computers). many thanks to him for his help! this is now
 | 
|---|
| 123 |     fixed
 | 
|---|
| 124 | 
 | 
|---|
| 125 | --------------------------------------------------------------------------------
 | 
|---|
| 126 |   v3.0: released 5/29/04
 | 
|---|
| 127 | --------------------------------------------------------------------------------
 | 
|---|
| 128 |   - fixed a bug causing RESTART not to work unless the bot's filename happened
 | 
|---|
| 129 |     to be the same as its nickname
 | 
|---|
| 130 |   - item modifiers as well as time modifiers are now stored in the modifiers
 | 
|---|
| 131 |     file. changed name of tlog sub to clog (time -> character)
 | 
|---|
| 132 |   - changed database write to every minute instead of every $opts{self_clock}.
 | 
|---|
| 133 |     to lower the chance of lost stats, the bot calls writedb() if you request a
 | 
|---|
| 134 |     DIE, JUMP, or RESTART. this should cut down on much of the cpu usage
 | 
|---|
| 135 |   - added a function writedb() which writes out the bot's db from memory so it
 | 
|---|
| 136 |     can be done outside of rpcheck()
 | 
|---|
| 137 |   - the team battle code would choose 6 random users to participate in a team
 | 
|---|
| 138 |     battle, but would not then randomize these users as far as teams go. that
 | 
|---|
| 139 |     is, if a username generally appeared at the end of a keys(%rps) list, and
 | 
|---|
| 140 |     made it into the list of 6 random users, that user would always defend
 | 
|---|
| 141 |     instead of attacking, as he would be at the end of the list. the list of 6
 | 
|---|
| 142 |     users is now shuffled using a Fisher-Yates shuffle, code from The Perl
 | 
|---|
| 143 |     Cookbook (by O'Reilly. a really great read!) (Peter Beentje)
 | 
|---|
| 144 |   - added a "user alignment" feature. users may align with good, neutral, or
 | 
|---|
| 145 |     evil. 'good' users have a 10% boost to their item sum for battles, and a
 | 
|---|
| 146 |     1/12 chance each day that they, along with a 'good' friend, will have the
 | 
|---|
| 147 |     light of their god shine upon them, accelerating them 5-12% toward their
 | 
|---|
| 148 |     next level. 'evil' users have a 10% detriment to their item sum for battles
 | 
|---|
| 149 |     (ever forsaken in their time of most need...), but have a 1/8 chance each
 | 
|---|
| 150 |     day that they will either a) attempt to steal an item from a 'good' user
 | 
|---|
| 151 |     (whom they cannot help but hate) or b) be forsaken (for 1-5% of their TTL)
 | 
|---|
| 152 |     by their evil god. after all, we all know that crime doesn't pay. also,
 | 
|---|
| 153 |     'good' users have only a 1/50 chance of landing a critical strike when
 | 
|---|
| 154 |     battling, while 'evil' users (who always fight dirty) have a 1/20 chance.
 | 
|---|
| 155 |     neutral users haven't had anything changed, and all users start off as
 | 
|---|
| 156 |     neutral. to change your alignment:
 | 
|---|
| 157 |         /msg bot ALIGN <good|neutral|evil>
 | 
|---|
| 158 |     I haven't run the numbers to see which alignment it is better to follow, so
 | 
|---|
| 159 |     the stats for this feature may change in the future (FishyTowel @
 | 
|---|
| 160 |     idlerpg.net forum)
 | 
|---|
| 161 |   - added new item, Juliet's Glorious Ring of Sparkliness, item level 50-74,
 | 
|---|
| 162 |     required user level 25+, chance 1/40, tag 'h'
 | 
|---|
| 163 |   - rather than error when PEVAL produces > 15 lines of output, PEVAL will now
 | 
|---|
| 164 |     queue its text if lines of output created >= 4 or size of text > 1k
 | 
|---|
| 165 |   - LOGIN command now responds via notice rather than privmsg
 | 
|---|
| 166 |   - added "named items," meaning that unique items have a letter appended to
 | 
|---|
| 167 |     them, saying which unique item they are. Mattt's Omniscience Grand Crown is
 | 
|---|
| 168 |     "a," Res0's Protectorate Plate Mail is "b," Dwyn's Storm Magic Amulet is
 | 
|---|
| 169 |     "c," Jotun's Fury Colossal Sword is "d," Drdink's Cane of Blind Rage is "e,"
 | 
|---|
| 170 |     Mrquick's Magical Boots of Swiftness is "f," and Jeff's Cluehammer of Doom
 | 
|---|
| 171 |     is "g"
 | 
|---|
| 172 |   - changed split() on incoming data to split on /\s/ instead of / /; users
 | 
|---|
| 173 |     could otherwise register usernames or classes containing tabs, which would
 | 
|---|
| 174 |     cause the bot to die when reading the (tab-delimited) database (chris young)
 | 
|---|
| 175 |   - changed the SIGHUP handler from '0' to 'sub { };'. should eliminate the
 | 
|---|
| 176 |     "Signal handler '0' not defined" warning (too many to list)
 | 
|---|
| 177 |   - added an item calamity and an item godsend. if you are calamitized, you have
 | 
|---|
| 178 |     a 10% chance of one of your amulet, charm, weapon, tunic, set of leggings,
 | 
|---|
| 179 |     or shield losing 10% of its item value. if you are godsent, you have a 10%
 | 
|---|
| 180 |     chance that one of the above items will gain 10% of its item value (carl
 | 
|---|
| 181 |     wyles @ idlerpg.net forum)
 | 
|---|
| 182 |   - %botnick% in $opts{botopcmd} will be evaluated to the bot's current nickname
 | 
|---|
| 183 |     to avoid opping another, more evil user when the bot's nickname is in use
 | 
|---|
| 184 |   - added an option to give non-admin users limited access to the INFO command.
 | 
|---|
| 185 |     when enabled, non-admin users can use the INFO command to learn to which
 | 
|---|
| 186 |     server the bot is connected and the nicknames of online admins (mike @
 | 
|---|
| 187 |     idlerpg.net forum)
 | 
|---|
| 188 |   - added an option to disallow the registration of usernames and classes
 | 
|---|
| 189 |     containing "non-printable" characters. it's a good idea to leave this option
 | 
|---|
| 190 |     on, as I have had problems in the past with using binary hash keys (TGS)
 | 
|---|
| 191 |   - whenever a non-admin players walks over an admin player on the map, he/she
 | 
|---|
| 192 |     has a 1% chance to bow ;) (mike stewart)
 | 
|---|
| 193 |   - changed sending of WHO and $opts{botopcmd} from numeric 001 to receipt of
 | 
|---|
| 194 |     bot's JOIN
 | 
|---|
| 195 |   - added an option to disable the PEVAL command for users that want to have
 | 
|---|
| 196 |     less than trustworthy admins ;^) (TGS)
 | 
|---|
| 197 |   - Run noted that (undernet?) servers allow you a certain number of "free"
 | 
|---|
| 198 |     messages before output should be limited to 1 message / 2 seconds. fq() now
 | 
|---|
| 199 |     sends as many of these "free" messages as it can, rather than sending only
 | 
|---|
| 200 |     one message per call (Run)
 | 
|---|
| 201 |   - removed some odd sts("MODE $opts{botchan}"); -- not sure why i put that in
 | 
|---|
| 202 |   - added rudimentary netsplit detection, which a) gives no penalty and b) logs
 | 
|---|
| 203 |     users in upon return. will pick up quit messages that match
 | 
|---|
| 204 |     /^\S+\.\S+ \S+\.\S+$/. if your network (or server) does not prefix quit
 | 
|---|
| 205 |     messages with "Quit: " (or some other string), or otherwise disallows faked
 | 
|---|
| 206 |     netsplit quit messages, then users can cheat this at their whim. added
 | 
|---|
| 207 |     option to turn netsplit detection on or off. added option of how long to
 | 
|---|
| 208 |     wait before automatically logging split users out and forgetting they ever
 | 
|---|
| 209 |     existed. added sub checksplits() which will iterate over the list of split
 | 
|---|
| 210 |     nick!user@hosts, remove those which have expired ($opts{splitwait}), and log
 | 
|---|
| 211 |     the user out. would love input on this feature, as i expect bugs
 | 
|---|
| 212 |   - HELP command for non-admins is now less helpful. generates one line of text
 | 
|---|
| 213 |     containing URL for help
 | 
|---|
| 214 |   - attempting to PUSH a user more than their TTL now sets their TTL to 0 as
 | 
|---|
| 215 |     well as generating a notice to the admin. successful PUSH now only
 | 
|---|
| 216 |     chanmsg()s instead of chanmsg()ing and privmsg()ing the admin
 | 
|---|
| 217 |   - $arg[3] changed to lowercased, leading-:-stripped $arg[3] in privmsg block
 | 
|---|
| 218 |   - cleaned up more code. changed (most) elses elsifs where appropriate. cleaned
 | 
|---|
| 219 |     up some logic. dropped all uses of next(). attempted to add () to function
 | 
|---|
| 220 |     calls wherever it was missing
 | 
|---|
| 221 |   - private messages and notices to the bot no longer penalize you (mrChewie)
 | 
|---|
| 222 |   - changed ha() to find access by username instead of nickname
 | 
|---|
| 223 |   - added a finduser() sub to return a logged-in username matching a given
 | 
|---|
| 224 |     nickname.
 | 
|---|
| 225 |   - changed case of $arg[1] after PONG rather than lc()ing it for every
 | 
|---|
| 226 |     comparison (mrChewie)
 | 
|---|
| 227 |   - at least 15% of all online players must be level 45+ for the hourly battle
 | 
|---|
| 228 |     of a level 45+ player to occur (anonymous @ idlerpg.net forum)
 | 
|---|
| 229 |   - fixed a serious bug with the bot not tracking changes to its nick (ie, by
 | 
|---|
| 230 |     NickServ or PEVAL) -- this caused all messages sent to the bot to be
 | 
|---|
| 231 |     penalized (TGS)
 | 
|---|
| 232 |   - added $opts{casematters}, which, when set, will not allow the registration
 | 
|---|
| 233 |     of usernames that already exist in a different case (MeBeHere)
 | 
|---|
| 234 |   - changed db backup, top players report to every 10 hours
 | 
|---|
| 235 |   - added $opts{modsfile}, which is where Time Modifier texts are appended.
 | 
|---|
| 236 |     also, tlog() now debug()s and chanmsg()s an error message if it cannot open
 | 
|---|
| 237 |     the file (MeBeHere)
 | 
|---|
| 238 |   - HOG was only 5-74%, corrected to 5-75% of TTL
 | 
|---|
| 239 |   - added an option $opts{self_clock} which is rather like the old $alrmint var,
 | 
|---|
| 240 |     except this probably works without exploding if you change it. calamities,
 | 
|---|
| 241 |     godsends, etc. should take this number into account when calculating odds
 | 
|---|
| 242 |   - added a server list rather than static server. bot should try each server in
 | 
|---|
| 243 |     the server list twice before giving up (meij)
 | 
|---|
| 244 |   - added a PID filename option, to which the bot will write its PID (meij)
 | 
|---|
| 245 |   - added a few more cattle-themed calamities (anonymous @ idlerpg.net forum)
 | 
|---|
| 246 |   - added a trailing '!' to godsend() text instead of the drab old '.'
 | 
|---|
| 247 |   - added some new quests/calamities/godsends contributed by users. edited some
 | 
|---|
| 248 |     old calamities/quests/godsends. please feel free to post your ideas for more
 | 
|---|
| 249 |     to http://idlerpg.net/forum.php! (anonymous, Afbc0m, anjira, jv, mrChewie,
 | 
|---|
| 250 |     W8TVI, et al)
 | 
|---|
| 251 |   - attempted to scale occurences of HOGs, godsends, calamities, and team
 | 
|---|
| 252 |     battles. HOGs should occur about 1/user/20 days, calamities 1/user/8 days,
 | 
|---|
| 253 |     godsends 1/user/4 days, team battles 1/user/4 days. does this by calculating
 | 
|---|
| 254 |     the odds of a HOG as rand(20*86400/clock) < NUMBER_ONLINE_PLAYERS, odds of
 | 
|---|
| 255 |     calamities as rand(8*86400/clock) < NUMBER_ONLINE_PLAYERS, etc. this appears
 | 
|---|
| 256 |     to work great with at least 10 clients (tested up to 300), but doesn't seem
 | 
|---|
| 257 |     to work as well below that. would appreciate input
 | 
|---|
| 258 |   - debug information is now written to a file instead of STDOUT. bot now
 | 
|---|
| 259 |     daemonizes even though it is in debug mode. added sub debug() which takes an
 | 
|---|
| 260 |     argument of text to write to the debug file (yeoj)
 | 
|---|
| 261 |   - added new item, Jeff's Cluehammer of Doom, item level 300-350, required user
 | 
|---|
| 262 |     level 52+, chance 1/40
 | 
|---|
| 263 |   - bot will try to regain primary nickname if he sees it come open through a
 | 
|---|
| 264 |     /nick or /quit
 | 
|---|
| 265 |   - DELOLD command will removed non-logged-in accounts that have not been logged
 | 
|---|
| 266 |     into in more than N days. format is:
 | 
|---|
| 267 |         /msg bot DELOLD <N days>
 | 
|---|
| 268 |     DELOLD is a p0, admin command (DinTn)
 | 
|---|
| 269 |   - added option to enable a STATUS command. this p0 command gives information
 | 
|---|
| 270 |     on a user, such as level, class, time to level, item sum, etc. useful for
 | 
|---|
| 271 |     those IRPGs that lack a website. format is:
 | 
|---|
| 272 |         /msg bot STATUS [username]
 | 
|---|
| 273 |     if username argument is not passed, returns information on the user issuing
 | 
|---|
| 274 |     command. must be logged in to use STATUS (TGS)
 | 
|---|
| 275 |   - possibly added option to choose which local address/hostname and local port
 | 
|---|
| 276 |     to bind to. let me know if this does/doesn't work (DARKutz, Brad)
 | 
|---|
| 277 |   - added security note to head of file
 | 
|---|
| 278 |   - will not send auto-login user list if text > 2048 bytes
 | 
|---|
| 279 |   - added $opts{botmodes} which will set the bot's usermode to given string on
 | 
|---|
| 280 |     connect
 | 
|---|
| 281 |   - removed reset of last login time on auto-login; last login should be when
 | 
|---|
| 282 |     user last logged in, not when the bot logged them back in
 | 
|---|
| 283 |   - levels after level 60 have a next time to level of (time to level @ 60) +
 | 
|---|
| 284 |     (1 day) * (level - 60). levels below 60 have not changed. the exponential
 | 
|---|
| 285 |     code was getting a little too heavy by itself (TGS)
 | 
|---|
| 286 |   - RELOADDB would log all players out; fixed
 | 
|---|
| 287 |   - sts() & fq() check state of socket before attempting write. if cannot write,
 | 
|---|
| 288 |     outgoing queue is cleared
 | 
|---|
| 289 |   - added new item, Mrquick's Magical Boots of Swiftness, item level 250-300,
 | 
|---|
| 290 |     required user level 48+, chance 1/40
 | 
|---|
| 291 |   - debug messages are now timestamped. added a few extra debug messages, mostly
 | 
|---|
| 292 |     for fun
 | 
|---|
| 293 |   - top player report no longer occurs immediately after startup, but every 6
 | 
|---|
| 294 |     hours from then on
 | 
|---|
| 295 |   - added option to disallow registration of usernames/character classes
 | 
|---|
| 296 |     containing ctrl codes (Skill0)
 | 
|---|
| 297 |   - changed auto-login code from list to hash. would take several minutes to
 | 
|---|
| 298 |     synch to a channel with hundreds of users. now takes < 1s (Vayanla et al)
 | 
|---|
| 299 |   - removed the hard-coded "#G7" from the top players list.. whoops :^) that's
 | 
|---|
| 300 |     been there for some time now, can't believe no one ever noticed (HaRRo)
 | 
|---|
| 301 |   - added option to voice users on login/register. if you +m your channel, this
 | 
|---|
| 302 |     will cut down on spam, but won't allow non-logged-in or devoiced/deopped
 | 
|---|
| 303 |     clients to talk (pingh, wishes, aphade, et al)
 | 
|---|
| 304 |   - added a penalize() sub to make penalties a little cleaner
 | 
|---|
| 305 |   - added %quest hash to keep up with active quest info
 | 
|---|
| 306 |   - added option to write active quest info to file; this makes it readable by
 | 
|---|
| 307 |     outside programs
 | 
|---|
| 308 |   - can now specify multiple words for the advertisement ban, or turn feature
 | 
|---|
| 309 |     off entirely
 | 
|---|
| 310 |   - removed all alarm() code, should now run on any system supporting select(2)
 | 
|---|
| 311 |     (including, but not limited to, Win32). should also fix a nasty, terrible
 | 
|---|
| 312 |     time drift bug; with the amount of processing done in rpcheck(), the next
 | 
|---|
| 313 |     alarm() would come later than expected, awarding the user with idling less
 | 
|---|
| 314 |     than he had actually idled. it's a small amount, but adds up to about 205
 | 
|---|
| 315 |     seconds difference in the clocks after ~9.25 hours (in my tests; will differ
 | 
|---|
| 316 |     from machine to machine). MANY thanks to this bug's reporter, Ville
 | 
|---|
| 317 |     Luolajan-Mikkola
 | 
|---|
| 318 |   - added CLEARQ command, will clear all items in outgoing message queue
 | 
|---|
| 319 |   - INFO shows outgoing queue status, registrations this period, and total users
 | 
|---|
| 320 |   - cleaned up options section a little bit, made a few other code clean-ups
 | 
|---|
| 321 |   - created this file, ChangeLog.txt. the bot's code was getting too long
 | 
|---|
| 322 |   - registrations are now limited to 1 / sec. this should keep floodbots from
 | 
|---|
| 323 |     registering hundreds of accounts
 | 
|---|
| 324 |   - removed ALERT command
 | 
|---|
| 325 |   - removed $opts{admin} array, there is now a field in the db to mark this.
 | 
|---|
| 326 |     there is also a MKADMIN command to set an account as having admin access.
 | 
|---|
| 327 |     syntax is:
 | 
|---|
| 328 |         /msg bot MKADMIN <username>
 | 
|---|
| 329 |     there is no way to remove an account's administrator privileges, save from
 | 
|---|
| 330 |     editing the database by hand (well, there is PEVAL). so, don't assign this
 | 
|---|
| 331 |     lightly. admins have full access to the account under which you run the bot
 | 
|---|
| 332 |   - die() call if could not write irpg.db is now a chanmsg() instead
 | 
|---|
| 333 |   - added an outgoing message queue. all messages are now output at 1 message /
 | 
|---|
| 334 |     second, unless a non-zero $skipq flag is passed to sts(). privmsg(),
 | 
|---|
| 335 |     notice(), and chanmsg() calls pass their $force flag as a $skipq flag.
 | 
|---|
| 336 |     PONGs pass a $skipq of 1 (LexCyber)
 | 
|---|
| 337 |   - fixed a rather huge bug that someone on slashnet noticed. registering
 | 
|---|
| 338 |     \001PING\001 (or any other ctcp) would send that CTCP to the channel, then
 | 
|---|
| 339 |     penalize any who responded. usernames may no longer include a \001
 | 
|---|
| 340 |   - godsends, calamities, and quests were all moved to one file,
 | 
|---|
| 341 |     $opts{eventsfile}. quests are prefixed with a Q1 or Q2, depending on their
 | 
|---|
| 342 |     type; calamities with a C; and godsends with a G. quests are also prefixed
 | 
|---|
| 343 |     by their required coordinates if the quest type is 2
 | 
|---|
| 344 |   - fixed a typo in the Dwyn's Storm text
 | 
|---|
| 345 |   - changed code indentation to four spaces. reworked a lot of code to fit <= 80
 | 
|---|
| 346 |     columns
 | 
|---|
| 347 |   - changed QUEST command and quest() output to be a little more grammar-
 | 
|---|
| 348 |     friendly
 | 
|---|
| 349 |   - item stealing! if you are level >= 20, and you win a battle against a
 | 
|---|
| 350 |     player, you have a slightly less than 2% chance of stealing an item from
 | 
|---|
| 351 |     them. the 2% comes from a) you have a 1/25 chance to attempt to steal an
 | 
|---|
| 352 |     item and b) you have a 50% chance that your item (type is random) is lower
 | 
|---|
| 353 |     than theirs. the reason it's 'slightly less than' 2% is because you cannot
 | 
|---|
| 354 |     both Critical Strike a user and steal an item, so it's (2 - (1/35))%. you
 | 
|---|
| 355 |     cannot steal an item of lower level than your current item (Afbc0m)
 | 
|---|
| 356 |   - fixed duration() to show 1 day without trailing 's'
 | 
|---|
| 357 |   - re-added report of TTL after battle and after critical strike
 | 
|---|
| 358 |   - quest() function now chanmsg()s an error if it cannot open the
 | 
|---|
| 359 |     $opts{eventsfile} file
 | 
|---|
| 360 |   - INFO command now uses privmsg() force flag
 | 
|---|
| 361 |   - added grid! thanks to Joakim @ orkut for this great idea. within the irpg
 | 
|---|
| 362 |     world are all of the players on a 500x500 "grid" or map. every second, your
 | 
|---|
| 363 |     character has an equal chance to step left, right, or neither, and an equal
 | 
|---|
| 364 |     chance to step up, down, or neither. if your character encounters another
 | 
|---|
| 365 |     player, you have a 1/(# of online players) chance to battle. also, some
 | 
|---|
| 366 |     quests require all characters to reach some point on the map. quest
 | 
|---|
| 367 |     penalties and awards have not changed
 | 
|---|
| 368 |   - added REMOVEME command for users. if you are logged in,
 | 
|---|
| 369 |        /msg bot REMOVEME
 | 
|---|
| 370 |     will delete your account. this is a p0 command :^)
 | 
|---|
| 371 |   - added NEWPASS command for users. if you are logged in,
 | 
|---|
| 372 |        /msg bot NEWPASS <new password>
 | 
|---|
| 373 |     will set a new password. this is a p0 command
 | 
|---|
| 374 | 
 | 
|---|
| 375 | 
 | 
|---|
| 376 | --------------------------------------------------------------------------------
 | 
|---|
| 377 |   v2.4.1: unreleased
 | 
|---|
| 378 | --------------------------------------------------------------------------------
 | 
|---|
| 379 | 
 | 
|---|
| 380 |   - PEVAL will now error and refuse to send output > 15 lines. this is to avoid
 | 
|---|
| 381 |     my own errors
 | 
|---|
| 382 | 
 | 
|---|
| 383 | 
 | 
|---|
| 384 | --------------------------------------------------------------------------------
 | 
|---|
| 385 |   v2.4+fixes: released 2/20/04
 | 
|---|
| 386 | --------------------------------------------------------------------------------
 | 
|---|
| 387 | 
 | 
|---|
| 388 |   - items are set to 0 on account creation; they were previous undefined
 | 
|---|
| 389 |   - bug with QUEST command fixed; would say no active quest even when a quest
 | 
|---|
| 390 |     was active
 | 
|---|
| 391 | 
 | 
|---|
| 392 | 
 | 
|---|
| 393 | --------------------------------------------------------------------------------
 | 
|---|
| 394 |   v2.4: released 10/13/03
 | 
|---|
| 395 | --------------------------------------------------------------------------------
 | 
|---|
| 396 | 
 | 
|---|
| 397 |   - updated privmsg() function to avoid annoying substr()/uninitialized value
 | 
|---|
| 398 |     warnings
 | 
|---|
| 399 |   - few small bugs in battling bot fixed. a win against bot awards you with 20%
 | 
|---|
| 400 |     of your TTL removed. a loss to bot adds 10% of your TTL to your clock
 | 
|---|
| 401 |   - bot's item sum is now the highest item sum of all users + 1 (mumkin)
 | 
|---|
| 402 |   - fixed RESTART command to clear alarm() before trying to exec()
 | 
|---|
| 403 |   - WHOAMI displays class, TTL (Minhiriath)
 | 
|---|
| 404 |   - CALC command removed
 | 
|---|
| 405 |   - added notice() function which mirrors the operation of privmsg()
 | 
|---|
| 406 |   - SILENT command allows admin to switch bot between 4 modes of silence. in
 | 
|---|
| 407 |     mode 0, bot sends all privmsgs. in mode 1, only chanmsg() is disabled. in
 | 
|---|
| 408 |     mode 2, only privmsg()/notice() to non-channels is disabled. in mode 3,
 | 
|---|
| 409 |     privmsgs/notices to users and channels are disabled. silent mode is also
 | 
|---|
| 410 |     configurable as $opts{'silentmode'}, so you can setup a bot in any channel
 | 
|---|
| 411 |     without it interrupting the channel with its privmsgs (???)
 | 
|---|
| 412 |   - third parameter added to privmsg()/notice(); force flag ignores $silentmode
 | 
|---|
| 413 |   - hard-coded check for OKish URLs to bot's 'http:'-style banning now
 | 
|---|
| 414 |     configurable (sean)
 | 
|---|
| 415 |   - JUMP command no longer penalizes if required argument is left blank
 | 
|---|
| 416 |   - BACKUP admin command tells bot to copy $opts{'dbfile'} to
 | 
|---|
| 417 |     .dbbackup/$opts{'dbfile'}TIMESTAMP; added backup() function to handle this
 | 
|---|
| 418 |   - RELOADDB command allows admin to force bot to reload player database file,
 | 
|---|
| 419 |     rewriting all memory. RELOADDB can only be used while in pause mode
 | 
|---|
| 420 |   - PAUSE command allows admin to place bot into pause mode. in pause mode, bot
 | 
|---|
| 421 |     will update player stats, but will not write database. combined with
 | 
|---|
| 422 |     RELOADDB, very effective for updating all players stats through external
 | 
|---|
| 423 |     script without taking bot offline. new accounts cannot be registered
 | 
|---|
| 424 |     while in pause mode
 | 
|---|
| 425 |   - QUEST command (p0) tells the active quest, its participants, and its time
 | 
|---|
| 426 |     left to completion
 | 
|---|
| 427 |   - ban message for 'http:'-type bans now makes unban-time more clear
 | 
|---|
| 428 |   - things have been sped up a bit. random battles for users level 45+ now occur
 | 
|---|
| 429 |     every hour. random chance for HOG, Godsends, Calamities, and Team Battles
 | 
|---|
| 430 |     were increased by a factor of 5
 | 
|---|
| 431 |   - time between quests upped to 12 hours. level requirement for quests upped to
 | 
|---|
| 432 |     40+. in addition, must have been online for at least 10 hours to be selected
 | 
|---|
| 433 |     for quests. number of persons on quest lowered to 4. quest penalty is now a
 | 
|---|
| 434 |     p15 instead of 2% of your TTL. this makes more sense, as users who were very
 | 
|---|
| 435 |     close to leveling were penalized almost nothing (inkblot et al)
 | 
|---|
| 436 |   - fixed spelling of 'caffeinated' (sean)
 | 
|---|
| 437 |   - botchan variable now shows how to join channel with key (Dan)
 | 
|---|
| 438 | 
 | 
|---|
| 439 | 
 | 
|---|
| 440 | --------------------------------------------------------------------------------
 | 
|---|
| 441 |   v2.3.1: released 9/20/03
 | 
|---|
| 442 | --------------------------------------------------------------------------------
 | 
|---|
| 443 | 
 | 
|---|
| 444 |   - fixed bug with item finding; bad logic sometimes resulted in user not
 | 
|---|
| 445 |     finding any item (thanks mumkin!)
 | 
|---|
| 446 | 
 | 
|---|
| 447 | 
 | 
|---|
| 448 | --------------------------------------------------------------------------------
 | 
|---|
| 449 |   v2.3: released 8/29/03
 | 
|---|
| 450 | --------------------------------------------------------------------------------
 | 
|---|
| 451 | 
 | 
|---|
| 452 |   - Jotun's Fury max level dropped back to 174
 | 
|---|
| 453 |   - added the Drdink's Cane of Blind Rage with item level 175-200
 | 
|---|
| 454 |   - all time modifiers (battles, HoG, etc) are now written to modifiers.txt
 | 
|---|
| 455 |   - function tlog() logs a string to modifiers.txt and returns the string
 | 
|---|
| 456 |   - changed WHOAMI to not use $_
 | 
|---|
| 457 |   - fixed another bug where changing your nick would prevent you from being a
 | 
|---|
| 458 |     candidate for auto-login
 | 
|---|
| 459 |   - LOGOUT command added as a p20
 | 
|---|
| 460 |   - you may now only be logged in under one character at a time. this will help
 | 
|---|
| 461 |     protect the bot from being flooded when a single user signs on under 10
 | 
|---|
| 462 |     accounts, then is penalized and warned 10 times. attempts to login under two
 | 
|---|
| 463 |     names are not penalized
 | 
|---|
| 464 |   - fixed a bug where all of your accounts were automatically logged on so long
 | 
|---|
| 465 |     as they shared the same host as you, regardless of whether they were online
 | 
|---|
| 466 |     before (on bot restart)
 | 
|---|
| 467 |   - there is a 1/20,000 chance of a calamity occuring every 5 seconds. the
 | 
|---|
| 468 |     calamity() function chooses a random user, then smites them with bad luck.
 | 
|---|
| 469 |     the penalty for a calamity is a random 5-12% of next TTL. users are only
 | 
|---|
| 470 |     chosen from the pool of online players
 | 
|---|
| 471 |   - there is a 1/10,000 chance of a godsend occuring every 5 seconds. the
 | 
|---|
| 472 |     godsend() function chooses a random user, then betters their luck. the
 | 
|---|
| 473 |     award for a godsend is a random 5-12% of next TTL. users are only chosen
 | 
|---|
| 474 |     from the pool of online players
 | 
|---|
| 475 |   - there are now 'quests' -- six level 30+ users are chosen to go on a quest
 | 
|---|
| 476 |     at a time. if all six users make it to the quest's end, all questers are
 | 
|---|
| 477 |     awarded by removing 25% of their TTL (ie, their TTL at quest's end). to
 | 
|---|
| 478 |     complete a quest, no user can be penalized until the quest's end. quests
 | 
|---|
| 479 |     last a random time between 12 and 24 hours. if the quest is not completed,
 | 
|---|
| 480 |     ALL online users are penalized 2% of their time as punishment. users are
 | 
|---|
| 481 |     only chosen from the pool of online players (original idea from Nerje; quest
 | 
|---|
| 482 |     ideas from Tristan, brt)
 | 
|---|
| 483 |   - quests are read from file 'quests.txt' every time quest() is called. this
 | 
|---|
| 484 |     allows you to add or remove quests while the bot is still running. quests
 | 
|---|
| 485 |     are not picked in order, but chosen at random from the file
 | 
|---|
| 486 |   - fixed bug in PUSH, allowing to push into negative TTL
 | 
|---|
| 487 |   - db times changed to ctime format in lieu of scalar localtime() (now
 | 
|---|
| 488 |     sortable)
 | 
|---|
| 489 |   - added db fields for total time idled; total times penalized for privmsg,
 | 
|---|
| 490 |     nick change, part, kick, LOGOUT, quest, and quit; and time account created
 | 
|---|
| 491 |   - REGISTER no longer penalizes if you are already logged in and the command
 | 
|---|
| 492 |     fails
 | 
|---|
| 493 |   - fixed 'http:' checking to only look at message text, not entire string
 | 
|---|
| 494 |   - messages passed through privmsg() are split into 450-byte chunks and then
 | 
|---|
| 495 |     passed to their target
 | 
|---|
| 496 |   - bans put into place by the 'http:' method are now removed after 1 hour to
 | 
|---|
| 497 |     prevent filling the banlist. bans are stored in @bans, which will hold at
 | 
|---|
| 498 |     most 12 bans to prevent the bot from flooding on unban. after 12, bans are
 | 
|---|
| 499 |     still set, but not stored
 | 
|---|
| 500 |   - 'license' in header slightly changed
 | 
|---|
| 501 |   - battle results now include item sums and the random number rolled for each
 | 
|---|
| 502 |     player. format is [roll/sum]
 | 
|---|
| 503 |   - bot will try to regain his nickname every 30 mins if it is in use at
 | 
|---|
| 504 |     sign-on. added vars $primnick and $opts{'botghostcmd'}. $primnick is set
 | 
|---|
| 505 |     to $opts{'botnick'} (which may change) on load, and $opts{'botghostcmd'}
 | 
|---|
| 506 |     is a nickserv ghost command string
 | 
|---|
| 507 |   - the bot's nick ($opts{'botnick'} and $primnick) cannot be registered as
 | 
|---|
| 508 |     character names
 | 
|---|
| 509 |   - bot is now a fightable player. his item sum is random 250-650. (someone;
 | 
|---|
| 510 |     mail me if this was your idea). chances of fighting him are equal to
 | 
|---|
| 511 |     fighting any other player
 | 
|---|
| 512 |   - bot now daemonizes when starting (jwbozzy)
 | 
|---|
| 513 |   - fixed duration code to use the correct secs/day (drdink/inkblot)
 | 
|---|
| 514 |   - added a penalty to Team Battle. players will now receive or lose 20% of the
 | 
|---|
| 515 |     lowest team member's TTL (drdink)
 | 
|---|
| 516 |   - changed battling to award tie to challenger, not challengee. random number
 | 
|---|
| 517 |     is also, now, an integer, not a float
 | 
|---|
| 518 |   - every 3.5 hours, a level 45+, online player will battle; this will make it
 | 
|---|
| 519 |     easier for high-level users to level
 | 
|---|
| 520 |   - added function itemsum() to return item sum for supplied username
 | 
|---|
| 521 |   - battle results written to battles.txt are now timestamped (Juliet)
 | 
|---|
| 522 | 
 | 
|---|
| 523 | 
 | 
|---|
| 524 | --------------------------------------------------------------------------------
 | 
|---|
| 525 |   v2.2.2 (schmolli): released 7/18/03
 | 
|---|
| 526 | --------------------------------------------------------------------------------
 | 
|---|
| 527 | 
 | 
|---|
| 528 |   * The changes in this version are based almost completely on a patch sent to
 | 
|---|
| 529 |     me by Ed Schmollinger, schmolli@IRC. Many thanks to him for his help! Here
 | 
|---|
| 530 |     are his changes:
 | 
|---|
| 531 |   - SECURITY: added subroutine mksalt to generate random salt for passwds
 | 
|---|
| 532 |   - CLEANUP: added subroutines chanmsg and privmsg to send messages to
 | 
|---|
| 533 |     bot's channel and to a specified user, respectively
 | 
|---|
| 534 |   - FEATURE: added command line argument processing and removed TEST_MODE
 | 
|---|
| 535 |     (TEST_MODE is no longer necessary.)  Part of this includes moving most
 | 
|---|
| 536 |     of the variables into %opts.
 | 
|---|
| 537 |   - FIX: added check for number of existing players when printing top 3
 | 
|---|
| 538 |   - CLEANUP: changed "in:" and "out:" debug message to "<-" and "->"
 | 
|---|
| 539 |   - CLEANUP: indented concatenated lines
 | 
|---|
| 540 | 
 | 
|---|
| 541 | 
 | 
|---|
| 542 | --------------------------------------------------------------------------------
 | 
|---|
| 543 |   v2.2.1: released 7/16/03
 | 
|---|
| 544 | --------------------------------------------------------------------------------
 | 
|---|
| 545 | 
 | 
|---|
| 546 |   - fixed a bug in item finding; if unique item was better than helm, not
 | 
|---|
| 547 |     better than its class, you would get the item (emad)
 | 
|---|
| 548 | 
 | 
|---|
| 549 | 
 | 
|---|
| 550 | --------------------------------------------------------------------------------
 | 
|---|
| 551 |   v2.2
 | 
|---|
| 552 | --------------------------------------------------------------------------------
 | 
|---|
| 553 | 
 | 
|---|
| 554 |   - added 1/20000 chance of 'team battle' every 5 seconds. team battle is 3
 | 
|---|
| 555 |     players versus 3 other players. if the first three players win, their time
 | 
|---|
| 556 |     is lowered by 20% of the lowest of the three's TTL. if they lose, no time is
 | 
|---|
| 557 |     removed from any players. there is no chance for critical strike in a team
 | 
|---|
| 558 |     battle (Asterax)
 | 
|---|
| 559 |   - max level of Jotun's Fury Colossal Sword changed to 175
 | 
|---|
| 560 |   - fixed 'kick' bug; users that were kicked were not logged out
 | 
|---|
| 561 |   - kick added as a p250
 | 
|---|
| 562 |   - bot now only bans those non-logged in users that say 'http:' that've been in
 | 
|---|
| 563 |     the channel < 90 seconds
 | 
|---|
| 564 |   - bot won't ban for #G7-type URLs
 | 
|---|
| 565 |   - bot now shows nick of user when new account is registered
 | 
|---|
| 566 |   - forgot to close filehandle in loaddb(); fixed
 | 
|---|
| 567 |   - added a db backup every 6 hours
 | 
|---|
| 568 | 
 | 
|---|
| 569 | 
 | 
|---|
| 570 | --------------------------------------------------------------------------------
 | 
|---|
| 571 |   v2.1.3
 | 
|---|
| 572 | --------------------------------------------------------------------------------
 | 
|---|
| 573 | 
 | 
|---|
| 574 |   - fixed bug where users changing their nick would not be candidates for
 | 
|---|
| 575 |     auto-login on a bot restart
 | 
|---|
| 576 |   - changed some messages to make them more friendly to female players (LapCat)
 | 
|---|
| 577 | 
 | 
|---|
| 578 | 
 | 
|---|
| 579 | --------------------------------------------------------------------------------
 | 
|---|
| 580 |   v2.1.2
 | 
|---|
| 581 | --------------------------------------------------------------------------------
 | 
|---|
| 582 | 
 | 
|---|
| 583 |   - HoG can now carry or displace a player 5 - 75% toward the next level
 | 
|---|
| 584 |   - fixed CTCP version bug
 | 
|---|
| 585 |   - battling was changed from all users within 7 levels of you to all online
 | 
|---|
| 586 |     users
 | 
|---|
| 587 |   - added "unique" items, or a chance starting at level 25 to roll
 | 
|---|
| 588 |     higher-than-normal items
 | 
|---|
| 589 | 
 | 
|---|
| 590 | 
 | 
|---|
| 591 | --------------------------------------------------------------------------------
 | 
|---|
| 592 |   v2.1.1
 | 
|---|
| 593 | --------------------------------------------------------------------------------
 | 
|---|
| 594 | 
 | 
|---|
| 595 |   - DIE, JUMP, RESTART, INFO, and PEVAL now send warnings to users that don't
 | 
|---|
| 596 |     have access to tell them so. they are still penalized
 | 
|---|
| 597 |   - bot will now penalize users without the proper access that try to use an
 | 
|---|
| 598 |     admin command
 | 
|---|
| 599 |   - add commands CHCLASS, CHUSER, and PUSH to adjust class names, usernames,
 | 
|---|
| 600 |     and next time to level, respectively
 | 
|---|
| 601 |   - HoG could occur for offline users; this is no longer the case
 | 
|---|
| 602 |   - bot now responds to CTCP version requests (drdink)
 | 
|---|
| 603 | 
 | 
|---|
| 604 | 
 | 
|---|
| 605 | --------------------------------------------------------------------------------
 | 
|---|
| 606 |   v2.1
 | 
|---|
| 607 | --------------------------------------------------------------------------------
 | 
|---|
| 608 | 
 | 
|---|
| 609 |   - bot bans non-logged-in users that say 'http:'
 | 
|---|
| 610 |   - INFO did not check ha(); fixed
 | 
|---|
| 611 |   - bot will automagically log you back in if you were logged in before a bot
 | 
|---|
| 612 |     restart, and if you haven't changed your nick!user@host since then
 | 
|---|
| 613 |   - removed logging
 | 
|---|
| 614 |   - dropped functions relating to old database in favor of the new one
 | 
|---|
| 615 |   - changed level up report from seconds to duration()
 | 
|---|
| 616 |   - changed item/userinfo db's to one file; battles still in battles.txt
 | 
|---|
| 617 |   - changed challenge report from seconds to duration()
 | 
|---|
| 618 |   - changed penalty text to display duration() instead of seconds
 | 
|---|
| 619 |   - added critical strike, 1/35 chance upon winning battle to cause opponent to
 | 
|---|
| 620 |     lose time (dwyn)
 | 
|---|
| 621 |   - changed summon text for HoG (res0)
 | 
|---|
| 622 |   - changed access to base off of irpg username in lieu of host
 | 
|---|
| 623 |   - changed top player report to every 6 hours
 | 
|---|
| 624 |   - changed positive HoG text (res0)
 | 
|---|
| 625 |   - changed random HoG chance to 1/20000 every 5 seconds
 | 
|---|
| 626 | 
 | 
|---|
| 627 | 
 | 
|---|
| 628 | --------------------------------------------------------------------------------
 | 
|---|
| 629 |   v2.0.3
 | 
|---|
| 630 | --------------------------------------------------------------------------------
 | 
|---|
| 631 | 
 | 
|---|
| 632 |   - dropped top players back to 3
 | 
|---|
| 633 |   - removed STATUS; TTL available through website.
 | 
|---|
| 634 |   - battle history added to website; added logging of battles to battles.txt
 | 
|---|
| 635 |   - peval did not next(); fixed.
 | 
|---|
| 636 |   - added HOG command, randomly chooses someone, then randomly raises/lowers
 | 
|---|
| 637 |     their TTL (20% raise, 80% lower). HOG is, of course, an abbreviation for
 | 
|---|
| 638 |     Hand of God
 | 
|---|
| 639 |   - added a 1/7500 random HoG into rpcheck()
 | 
|---|
| 640 | 
 | 
|---|
| 641 | 
 | 
|---|
| 642 | --------------------------------------------------------------------------------
 | 
|---|
| 643 |   v2.0.2
 | 
|---|
| 644 | --------------------------------------------------------------------------------
 | 
|---|
| 645 | 
 | 
|---|
| 646 |   - STATUS would log you out; fixed.
 | 
|---|
| 647 |   - could STATUS if not online; fixed.
 | 
|---|
| 648 |   - added DEL command to remove accounts
 | 
|---|
| 649 |   - added ALERT command to make channel alerts
 | 
|---|
| 650 |   - changed admin HELP command text to display website
 | 
|---|
| 651 | 
 | 
|---|
| 652 | 
 | 
|---|
| 653 | --------------------------------------------------------------------------------
 | 
|---|
| 654 |   v2.0.1
 | 
|---|
| 655 | --------------------------------------------------------------------------------
 | 
|---|
| 656 | 
 | 
|---|
| 657 |   - fixed self-battle bug
 | 
|---|
| 658 |   - changed chance to battle from 20% to 25% if level < 25, 100% if >= 25
 | 
|---|
| 659 |   - setup companion website
 | 
|---|
| 660 |   - updated HELP command to reflect website
 | 
|---|
| 661 |   - changed battle gain to (max(7,opplevel/4)/100)*your_next_ttl
 | 
|---|
| 662 |   - added battle loss of (max(7,opplevel/7)/100)*your_next_ttl
 | 
|---|
| 663 | 
 | 
|---|
| 664 | 
 | 
|---|
| 665 | --------------------------------------------------------------------------------
 | 
|---|
| 666 |   v2.0
 | 
|---|
| 667 | --------------------------------------------------------------------------------
 | 
|---|
| 668 | 
 | 
|---|
| 669 |   - added item finding and battling
 | 
|---|
| 670 |   - added penalties for QUIT, PART, instead of resetting time to the beginning
 | 
|---|
| 671 |     of that level
 | 
|---|
| 672 | 
 | 
|---|
| 673 | 
 | 
|---|
| 674 | --------------------------------------------------------------------------------
 | 
|---|
| 675 |   v1.0
 | 
|---|
| 676 | --------------------------------------------------------------------------------
 | 
|---|
| 677 | 
 | 
|---|
| 678 |   - initial version
 | 
|---|