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
|
---|