idleRPG V1.21

By Jonesy44 on Jul 06, 2008

For any of you that have come accross the "idleRPG" this is a great script to keep track on your status stuff.

This is set for idlebot name: IdleBot and channel: #idlerpg you can change these of course ;]

;; idleRPG Script by Jonesy44
;; Version 1.21
;; First Release: 01 July, 2008
;;;;;;;;;;;;;;;
;;; ALIASES ;;;
;;;;;;;;;;;;;;;
alias idlerpg {
  if ($server) {
    dialog $iif($dialog(idlerpg),-v,-m) idlerpg idlerpg
  }
  else {
    echo -a Error; Not connected to server
  }
}
alias title.idlerpg {
  titlebar $iif($calc(%idle.nl - $gmt) >= 0,$duration($calc(%idle.nl - $gmt),1) until next level,)
  if ($calc(%idle.nl - $gmt) == %idle.titlewarn) {
    echo -a 4NOTICE! YOU LEVEL UP IN 30 MINUTES
  }
}
alias idlerpgset {
  if ($2) {
    var %idle.days = $calc($1 * 86400), %idle.tot = $remove($2,.,:,;), %idle.hrs = $calc($mid(%idle.tot,1,2) * 60 * 60), %idle.mins = $calc($mid(%idle.tot,3,2) * 60), %idle.secs = $mid(%idle.tot,5,2) 
    set %idle.nl $calc($gmt + %idle.days + %idle.hrs + %idle.mins + %idle.secs)
  }
}
alias idlerpgadd {
  if ($2) {
    var %idle.days = $calc($1 * 86400), %idle.tot = $remove($2,.,:,;), %idle.hrs = $calc($mid(%idle.tot,1,2) * 60 * 60), %idle.mins = $calc($mid(%idle.tot,3,2) * 60), %idle.secs = $mid(%idle.tot,5,2)
    set %idle.nl $calc(%idle.nl + %idle.days + %idle.hrs + %idle.mins + %idle.secs)
  }
}
alias idlerpgrem {
  if ($2) {
    var %idle.days = $calc($1 * 86400), %idle.tot = $remove($2,.,:,;), %idle.hrs = $calc($mid(%idle.tot,1,2) * 60 * 60), %idle.mins = $calc($mid(%idle.tot,3,2) * 60), %idle.secs = $mid(%idle.tot,5,2)
    set %idle.nl $calc(%idle.nl - %idle.days - %idle.hrs - %idle.mins - %idle.secs)
  }
}
alias idlerpgds {
  if ($2) {
    var %idle.days = $calc($1 * 86400), %idle.tot = $remove($2,.,:,;), %idle.hrs = $calc($mid(%idle.tot,1,2) * 60 * 60), %idle.mins = $calc($mid(%idle.tot,3,2) * 60), %idle.secs = $mid(%idle.tot,5,2)
    set %idle.ti $calc((%idle.days + %idle.hrs + %idle.mins + %idle.secs) - $gmt)
  }
}
alias idle.login {
  if (%idle.me && %idle.pass && $address(IdleBot,0)) {
    .msg idlebot login %idle.me %idle.pass
  }
}
alias idle.sync {
  if (%idle.me && !%idle.sync) {
    idlerpg
    did -b idlerpg 107-112
    did -ra idlerpg 108,110,112 Sending for Data ..
    set %idle.sync $calc($gmt + $iif($1,$1,10))
    set %idle.syncx 1
    closemsg IdleBot
    .msg idlebot status %idle.me 
  }
}
alias idlerpg.init {
  did -ra idlerpg 102 %idle.me
  did -ra idlerpg 104 $iif($me ison #idlerpg,$iif($calc(%idle.nl - $gmt) >= 0,$duration($calc(%idle.nl - $gmt),1),-),-)
  did -ra idlerpg 106 $iif(%idle.level,%idle.level,-)
  did - $+ $iif(!%idle.me || !%idle.pass,ub,e) $+ $iif(%idle.autol,c,u) idlerpg 205
  set %idle.me $did(idlerpg,202).text
  set %idle.pass $did(idlerpg,204).text
  if (!$me ison #idlerpg) {
    did -b idlerpg 206
  }
  if ($calc(%idle.sync - $gmt) <= 0) {
    unset %idle.sync
  }
  did $iif(%idle.syncx,-b,-e) idlerpg 107-112
  did $iif(%idle.sync,-rab,-rae) idlerpg 113 $iif(%idle.sync,Please Wait .. $calc(%idle.sync - $gmt),Re-Sync)
  did -ra idlerpg 110 $iif(!%idle.syncx,$duration($calc($gmt + %idle.ti)),Sending for Data ..)
}
alias fight {
  if ($1) {
    set %idle.fight.nick $1
    closemsg IdleBot
    .msg idlebot status $1
    .msg idlebot status %idle.me
    dialog $iif($dialog(idle.fight),-v,-m) idle.fight idle.fight
  }
}

;;;;;;;;;;;;;
;;; TRIGS ;;;
;;;;;;;;;;;;;
on *:JOIN:#idlerpg: {
  if (%idle.title) {
    .timerrpgtitle 0 1 title.idlerpg
  }
  if ($nick == $me && %idle.me && %idle.pass && %idle.autol) {
    idle.login
  }
}
on *:PART:#idlerpg: {
  if ($nick == $me) {
    set %idle.nl -
    .timerrpgtitle off
    titlebar 
  }
}
on *:DISCONNECT: {
  set %idle.nl -
  .timerrpgtitle off
  titlebar 
}
on *:TEXT:*, the *, has attained level *! Next level in * days, *:#idlerpg: {
  if ($remove($1,$chr(44)) == %idle.me) {
    idlerpgset $gettok($1-,$calc($0 - 2),32) $gettok($1-,$0,32)
    set %idle.level $remove($gettok($1-,$calc($0 - 7),32),!)
    $tip(idleRPG,idleRPG,You have gained level $remove($gettok($1-,$calc($0 - 7),32),!),idlerpg)
  }
}
on *:TEXT:Penalty of * days, * added to *'s timer for LOGOUT command.:#idlerpg: {
  if ($mid($8,1,$calc($len($8) - 2)) == %idle.me) {
    idlerpgadd $3 $gettok($1-,5,32)
  }
}
on *:TEXT:* has been set upon by a * and gets savagely beaten! * days, * is added to *'s clock.:#idlerpg: {
  if ($1 == %idle.me) {
    idlerpgadd $gettok($1-,$calc($0 - 8),32) $gettok($1-,$calc($0 - 6),32)
  }
}
on *:TEXT:* [*/*] has been set upon by a * [*/*] and fights it off! * day, * is removed from *'s clock.:#idlerpg: {
  if ($mid($calc($0 - 1),1,$calc($len($calc($0 - 1)) - 2)) == %idle.me) {
    idlerpgrem $gettok($1-,$calc($0 - 8),32) $gettok($1-,$calc($0 - 6),32)
  }
}
on *:TEXT:*, the level *, is now online from nickname *. Next level in * days, *.:#idlerpg: {
  if ($remove($1,$chr(44)) == %idle.me) {
    idlerpgset $gettok($1-,$calc($0 - 2),32) $gettok($1-,$0,32)
    set %idle.level $remove($gettok($1-,4,32),$chr(44))
    $tip(idlerpglogin,idleRPG,You have logged on as %idle.me $+ !,10,,,idlerpg)
  }
}
on *:TEXT:* reaches next level in * days, *.:#: {
  if ($1 == %idle.me) {
    idlerpgset $gettok($1-,$calc($0 - 2),32) $gettok($1-,$0,32)
  }
}
on ^*:OPEN:?:*: {
  if ($nick == IdleBot) {
    if ($mid($1,1,$calc($len($1) - 1)) == %idle.me) {
      if (%idle.fight.nick && $dialog(idle.fight)) {
        set %idle.level $3
        did -rae idle.fight 5 $3
      }
      else {
        idlerpg
        set %idle.level $3
        idlerpgset $gettok($1-,$calc($0 - 9),32) $gettok($1-,$calc($0 - 7),32)
        did -ra idlerpg 108 $remove($gettok($1-,4- $calc($0 - 13),32),;)
        idlerpgds $gettok($1-,$calc($0 - 5),32) $remove($gettok($1-,$calc($0 - 3),32),;)
        did -ra idlerpg 112 $gettok($1-,$0,32)
        did -e idlerpg 107-112
        did $iif($remove($gettok($1-,$calc($0 - 11),32),;) == Online,-b,-e) idlerpg 206
        unset %idle.syncx
      }
      halt
    }
    elseif ($mid($1,1,$calc($len($1) - 1)) == %idle.fight.nick) {
      if ($dialog(idle.fight)) {
        did -rae idle.fight 7 $3
        did -e idle.fight 8
        did -ra idle.fight 3 $mid($1,1,$calc($len($1) - 1))
      }
      halt
    }
    elseif ($1- == No Such User. && %idle.fight.nick) {
      did -b idle.fight 8
      did -ra idle.fight 3 No such user
      halt
    }
    elseif ($1- == You are not logged in*) {
      if (!$me ison #idlerpg) {
        j #idlerpg
      }
      if (!%idle.autol) {
        idle.login
      }
    }
    idle.sync
  }
}

;;;;;;;;;;;;;
;;; MENUS ;;;
;;;;;;;;;;;;;
menu * {
  - 
  idleRPG {
    idlerpg
  }
}
menu channel,server {
  IdleRPG Fight {
    fight $$?="Enter a username to fight"
  }
  -
}
menu nicklist,query {
  IdleRPG Fight {
    fight $1
  }
}

;;;;;;;;;;;;;;
;;; DIALOG ;;;
;;;;;;;;;;;;;;
dialog idlerpg {
  title "idleRPG Script By Jonesy44"
  size -1 -1 200 100
  option dbu
  tab "General", 100, 0 0 200 100
  text "My Username", 101, 5 18 60 9, tab 100 
  edit %idle.me, 102, 66 17 126 10, tab 100 read
  text "Time until next level", 103, 4 29 60 9, tab 100 
  edit "", 104, 66 28 126 10, tab 100 read
  text "Level", 105, 4 40 60 9, tab 100
  edit %idle.level, 106, 66 39 126 10, tab 100 read
  text "Class", 107, 4 55 60 9, tab 100
  edit "Sending for Data ...", 108, 66 55 126 10, tab 100 read
  text "Total Idle Time", 109, 4 66 60 9, tab 100
  edit "Sending for Data ...", 110, 66 66 126 10, tab 100 read
  text "Item Sum", 111, 4 77 60 9, tab 100
  edit "Sending for Data ...", 112, 66 77 126 10, tab 100 read
  button "Re-Sync", 113, 66 88 126 10, tab 100
  tab "Options", 200
  text "Username", 201, 5 18 60 9, tab 200 
  edit %idle.me, 202, 66 17 126 10, tab 200 
  text "Password", 203, 5 29 60 9, tab 200
  edit %idle.pass, 204, 66 28 126 10, tab 200 pass
  check "Auto Login", 205, 66 38 126 10, tab 200
  button "Login Now", 206, 65 48 126 10, tab 200
  box "Options", 207, 4 65 190 30, tab 200
  check "Next level shown in titlebar", 208, 9 73 126 10, tab 200
  check "Notice", 209, 9 83 23 10, tab 200
  edit %idle.titlewarn, 210, 33 83 14 10, tab 200
  text "minutes before next level up", 211, 49 85 100 9, tab 200
}
dialog idle.fight {
  title IdleRpg - Fight Confirm
  option dbu
  size -1 -1 150 70
  box "Confirm Fight" , 1, 2 2 146 66
  text "Attacking", 2, 7 11 30 10
  edit %idle.fight.nick, 3, 35 10 110 10, read
  text "Your Level", 4, 7 26 30 10
  edit %idle.level, 5, 35 24 110 10, read
  text "Their Level", 6, 7 37 30 10
  edit "Waiting for data ..", 7, 35 35 110 10, read
  button "Fight!", 8, 35 50 55 12
  button "Back Out", 9, 90 50 55 12
}

;;;;;;;;;;;;;;;;;;;;
;;; DIALOG TRIGS ;;;
;;;;;;;;;;;;;;;;;;;;
on *:DIALOG:idle.fight:init:*: {
  if (%idle.level !isnum) {
    did -rab idle.fight 5 Waiting for data ..
  }
  did -b idle.fight 7,8
}
on *:DIALOG:idle.fight:sclick:*: {
  if ($did == 8) {
    .msg IdleBot fight $did(3).text
  }
  if ($did == 9) {
    unset %idle.fight.nick
    dialog -x idle.fight
  }
}
on *:DIALOG:idlerpg:init:*: {
  idlerpg.init
  idle.sync
  .timeridlerpg 0 0 idlerpg.init
  did $iif(%idle.title,-c,-u) idlerpg 208
  did $iif(!%idle.title,-b,-e $+ $iif(%idle.titlewarn,c,u)) idlerpg 209-211
}
on *:DIALOG:idlerpg:sclick:*: {
  if ($did == 205) {
    set %idle.autol $did(205).state
  }
  if ($did == 206) {
    idle.login
  }
  if ($did == 113) {
    idle.sync
  }
  if ($did == 208) {
    did $iif($did(208).state == 1,-e,-bu) idlerpg 209-211
    if ($did(208).state == 0) {
      unset %idle.timewarn
    }
    set %idle.title $did(208).state
    .timerrpgtitle $iif($did(208).state == 1,0 1 title.idlerpg,off)
    titlebar $iif($did(208).state == 1,$iif($calc(%idle.nl - $gmt) >= 0,$duration($calc(%idle.nl - $gmt),1) until next level,),)
  }
  if ($did == 209) {
    if ($did(209).state == 1) {
      set %idle.titlewarn $calc($iif($did(210).text isnum,$did(210).text,30) * 60)
      did -ra idlerpg 210 %idle.titlewarn
    }
    else {
      unset %idle.titlewarn
    }
  }
}
on *:DIALOG:idlerpg:close:*: {
  idlerpg.init
  .timeridlerpg off
}

Comments

Sign in to comment.
Jonesy44   -  Jun 25, 2010

The script is run from a bot on an irc server. This script has NOTHING to do with "playing" it. It just shows your stats and stuff at the click of a button. Yeah there are a few instances of #idlerpg i'm sorry. I was not so good at scripting when i released this although it worked fine for me when i use to use it.

There are no instructions provided because it's fairly simple.. Load it into remotes. Open the dialog, enter your settings..:)

 Respond  
Pangaea   -  Jun 25, 2010

how the hell to you play this??

you say:
"This is set for idlebot name: IdleBot and channel: #idlerpg you can change these of course ;]"

must i change every instance of #idlerpg to my chan, and idlebot? there seems to be tons of instances of both the words idlerpg and idlebot, which one do i change?
then once i have that changed, how on earth do i play it? there is no instructions on how to register, how to play it .. nothing.. anyone care to elaborate on how to play this?

 Respond  
Jonesy44   -  Apr 04, 2010

What's the error?

 Respond  
jackster35-1   -  Apr 02, 2010

ok its loged in and stuff but will not sync

 Respond  
Jonesy44   -  Apr 02, 2010

copy & paste the code in again in that case. because there is a title.idlerpg alias just your script reader isn't picking up either because you've missed a bit of the code in a copy & paste or where you've pasted it is after an unclosed bracket which means it's not recognised.

You log in with your details you normally log in with the idle rpg bot.

 Respond  
jackster35-1   -  Apr 02, 2010

im getting TITLE.IDLERPG Unknown command non stop aswell

 Respond  
jackster35-1   -  Apr 02, 2010

Wait a min im lost what details do i log in with the window?

 Respond  
Jonesy44   -  Sep 04, 2009

The IdleBot i was using was taken offline -- so i never really added to the project, tell me what server you're on and i'll come see what i can do -- I'm sure i could greatly improve this script since i made this quite a long time ago :)

 Respond  
VinX   -  Sep 04, 2009

I would really like to see this one updated

 Respond  
Jonesy44   -  Aug 19, 2009

Noo this is a client side info box for the popular shell script on IRC. Sorry for the confusion.

 Respond  
Aerialman   -  Aug 18, 2009

No wait I too thought this was an IdleRPG script. Oh well.

 Respond  
Aerialman   -  Aug 18, 2009

I completely failed at trying to make my own version of this: http://www.hawkee.com/snippet/6602/ . Connect to aerialman.homeip.net (my server).

 Respond  
Flustered   -  Aug 17, 2008

It would be handy also to use an alias for the botname and channel name so you only have to change 2 instances, as it is a bit confusing since it looks like "idlerpg" is also used a reference for other things.

 Respond  
Jonesy44   -  Aug 16, 2008

Hate to say; there could be an error! bare with me whilst i correct the warnings and add more retard info in there. .. not logged in etc. :]

 Respond  
Jonesy44   -  Aug 16, 2008

Okay.. well i took on all the problems that were found and updated this script a while back but forgot to update on here. sorry for the jump from

1.14 => 1.21

But this version works tried and tested. If you use idleRPG 1.1x i strongly recommend you upgrade to 1.2x

 Respond  
Flustered   -  Jul 20, 2008

I tried the script some seems to work except for the Class,Total Idle Time, and Item Sum, they seem to be constantly saying \"Sending for data\" Any ideas??

It would be handy to have the titlebar option add to whatever you had, the way it is, it deletes previous titlebar options

update;
I also just found its blocking pm messages. When somebody tried to pm message me, the message was blocked and the idlerpg dialog box popped up to middle of screen. I had to unload the script to get query msg\'s to work again.

 Respond  
Fuzion   -  Jul 08, 2008

thought it was an rpg bot :S oh well

 Respond  
Jonesy44   -  Jul 07, 2008

Updates; Level notice (will be editable soon)
disabled bug fixed.

 Respond  
Jonesy44   -  Jul 07, 2008

Yep, cos the command is no longer there, turn off the timer? :P

 Respond  
Jamiie   -  Jul 06, 2008

jonsey44, when i unloaded the script. I keep getting this:

TITLE.IDLERPG Unknown command
TITLE.IDLERPG Unknown command
TITLE.IDLERPG Unknown command

nonstop >_<

 Respond  
Jamiie   -  Jul 06, 2008

Logs me in, just doesn\'t display time until next level.

 Respond  
Jamiie   -  Jul 06, 2008

Yeah, I\'m not on #idlerpg.

 Respond  
Jonesy44   -  Jul 06, 2008

Also, the problem might be cos it blanks ouot the login button if you\'re not on channel #idlerpg, so you may not have changed that?

try the updates script. the bug may have been fixed.

 Respond  
Jonesy44   -  Jul 06, 2008

and does it sync okay??

 Respond  
Jamiie   -  Jul 06, 2008

I\'m logged on now.

 Respond  
Jonesy44   -  Jul 06, 2008

Hmm, i\'ll try testing it some more in a bit, off on holidays now, no more coding to drown out work :D back in 8 weeks :P

 Respond  
Jamiie   -  Jul 06, 2008

Oh, no I\'m not logged in on the idlebot. Will do now. :D

 Respond  
Jonesy44   -  Jul 06, 2008

But were you logged in on the idlebot?
Cos that\'s where it streams the info from ..

 Respond  
Jamiie   -  Jul 06, 2008

Well, when I loaded the script. I still couldn\'t press the login button.

 Respond  
Jonesy44   -  Jul 06, 2008

Are you already logged in .. ?

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.