Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Iambian

Pages: 1 ... 28 29 [30] 31 32 ... 52
436
Humour and Jokes / Re: Hell's Newest Knight
« on: March 13, 2010, 09:29:21 pm »
* Iambian sits contentedly as a cherry-flavoured dragon would and watches the show from underneath the IRC Omnimaga couch

437
Computer Projects and Ideas / Re: mIRC Lag script
« on: March 13, 2010, 12:52:35 am »
Update to the script. The lag timer is now automatically enabled and is more resilient to nickchanges.

Code: [Select]
on *:START: {
  echo -a -- Setting up scripts
  if (!$exists(htabs)) { mkdir htabs }

  echo -a -- Finished setting up scripts  
}

on *:CONNECT: {
  set %z.htmp adrnick $+ $network | connecthashmake
  set %z.htmp nickadr $+ $network | connecthashmake
  unset %z.htmp
  togglelagtimer
}
alias connecthashmake {
  hmake %z.htmp 100
  if ($exists(htabs\ $+ %z.htmp)) { hload %z.htmp htabs\ $+ %z.htmp }
}

on *:DISCONNECT: {
  unset %z.chmod.*. $+ $network
  timer $+ conn $+ $cid off
  set %z.htmp adrnick $+ $network | hsave %z.htmp htabs\ $+ %z.htmp | hfree %z.htmp
  set %z.htmp nickadr $+ $network | hsave %z.htmp htabs\ $+ %z.htmp | hfree %z.htmp
  unset %z.htmp
}

on *:EXIT: {
  echo -a Cleaning up scripts
  unset %z.chmod*
  echo -a Done
}

;Performing who on join allows population of address list checker
;$timestamp
on ^*:JOIN:*: {
  updatehashtable $site $nick
  set %z.htab.adni adrnick $+ $network
  if (($gettok($hget(%z.htab.adni,$site),2,32)) && ($nick != $me)) {
    set %z.htab.time $gettok($hget(%z.htab.adni,$site),3,32)
    set %z.htab.nick $gettok($hget(%z.htab.adni,$site),2,32)
    if ($nick != %z.htab.nick) {
      echo $target  $+ $color(join) $+ $timestamp * $nick has joined $chan $+ , using %z.htab.nick ( $+ $duration($calc($ctime - %z.htab.time)) $+ ) ago.
      haltdef
    }
  }
  unset %z.htab*

  if (($nick != $me ) && ($ialchan($address($nick,2),$chan,0) > 1 )) {
    var %a $ialchan($address($nick,2),$chan,0)
    while (%a) {
      if ($nick != $ialchan($address($nick,2),$chan,%a).nick) {
        set %b %b $ialchan($address($nick,2),$chan,%a).nick
      }
      dec %a
    }
    echo $target  $+ $color(join) $+ $timestamp * $nick has joined $chan $+ , with clones $calc($ialchan($address($nick,2),$chan,0)-1) clone $+ $iif($calc($ialchan($address($nick,2),$chan,0)-1) > 1,s) ( %b ) $address($nick,2)
    unset %b
    haltdef
  }
  if ($nick == $me) {
    .who $chan
    .timerj1 $+ $chan 1 2 .signal joinsect 1 $chan
    .timerj2 $+ $chan 1 2 .signal joinsect 2 $chan
    .timerj3 $+ $chan 1 4 .signal joinsect 3 $chan
    .timerj4 $+ $chan 1 6 .signal joinsect 4 $chan
    set %z.chmod. $+ $chan $+ . $+ $network $iif($nick($chan,0) == 1,3,0)
    ;set %z.chmod. $+ $chan $+ . $+ $network $pos(+%@&~,$left($nick($chan,$me).pnick,1),1)
  }
}

on *:SIGNAL:joinsect: {
  if ($1 == 1) { set %z.chmod. [ $+ [ $2 ] $+ ] . $+ $network $iif($nick($chan,0) == 1,3,0) }
  if ($1 == 2) { mode $2 b }
  if ($1 == 3) { mode $2 e }
  ;  if ($1 == 4) { mode $2 i }
}

on *:NICK: {
  if (($nick == $me) && $iif($scid($cid).status == connected,$iif($timer(conn $+ $cid) == $null,0,1),0)) {
    togglelagtimer 1337
    echo -a Cycling LAG TIMER for nickchange
    .signal mynickchanged
  }

  updatehashtable $site $newnick
}

on *:QUIT: {
  updatehashtable $site $nick $ctime
}

on *:PART:*: {
  updatehashtable $site $nick $stime
}


on *:RAWMODE:*: {

  if ($me == $2) {
    ;Sets variable for channel on network for mode number
    set %z.chmod. $+ $chan $+ . $+ $network $pos(+%@&~,$left($nick($chan,$me).pnick,1),1)
  }
}

on ^*:NOTICE:*:*: {

  if (($1 == $me) && ($3 == $null)) {
    echo -a ::: (LAG) : ( $+ $calc($uptime(mirc)-$2) $+ )msec.
    haltdef
  }
  if (($1 == $scid($4).me) && ($3 != $null)) {
    if ($calc($uptime(mirc)-$2) > 10000) {
      echo -a ::: (AUTOLAG WARNING) There is too much lag on ( $+ $3 $+ ). ( $+ $calc($uptime(mirc)-$2) $+ )msec.
    }
    haltdef
  }

}

on *:SIGNAL:mynickchanged: {
  togglelagtimer 1337
}

;########################################################################
; RAW COMMAND INTERCEPTS FOR REMOTE SCRIPT MAINTENANCE

;RPL_WHOREPLY
raw 352:*: {
  if ($chr(35) isin $2) { updatehashtable $4 $6 }

}
;RPL_ENDOFWHO
raw 315:*: {

}

;########################################################################
; MENUS SECTION OF REMOTE SCRIPT


menu nicklist {
  UserInfo
  .Get Info:/uwho $$1
  .Whois:/whois $$1
  .Query:/query $$1
  -
  Controls:
  .$iif(%z.chmod. [ $+ [ $chan ] $+ . $+ [ $network ] ] > 4,$iif($nick($chan,$1,q) != $null,Remove Owner,Set Owner)):$listmode(q,$iif($nick($chan,$1,q) != $null,-,+),$chan)
  .$iif(%z.chmod. [ $+ [ $chan ] $+ . $+ [ $network ] ] > 3,$iif(& isin $nick($chan,$1).pnick,Remove Protect,Set Protect)):$listmode(a,$iif(& isin $nick($chan,$1).pnick,-,+),$chan)
  .$iif(%z.chmod. [ $+ [ $chan ] $+ . $+ [ $network ] ] > 2,$iif($1 isop $chan,Remove Op,Set Op)):$listmode(o,$iif($1 isop $chan,-,+),$chan)
  .$iif(%z.chmod. [ $+ [ $chan ] $+ . $+ [ $network ] ] > 2,$iif($1 ishop $chan,Remove HalfOp,Set HalfOp)):$listmode(h,$iif($1 ishop $chan,-,+),$chan)
  .$iif(%z.chmod. [ $+ [ $chan ] $+ . $+ [ $network ] ] > 1,$iif($1 isvoice $chan,Remove Voice,Set Voice)):$listmode(v,$iif($1 isvoice $chan,-,+),$chan)
  CTCP/DCC:
  .Get VERSION: ctcp $$1 VERSION
  .Get TIME: ctcp $$1 TIME
  .Get PING: ctcp $$1 PING
  .Custom CTCP: ctcp $$1 $$?="Custom CTCP command:"
  .Chat via DCC: dcc chat $$1
  .Send via DCC: dcc send $$1

}
menu channel {
  Channel Modes: channel
  Channel CTCPs
  .Send PING to $chan : ctcp $chan PING
  .Send TIME to $chan : ctcp $chan TIME
  .Send VERSION to $chan : ctcp $chan VERSION
  Check Lag: .notice $me $me $uptime(mirc)
  Check for clones: clonecheck
}

menu menubar {
  $iif($scid($cid).status == connected,$iif($timer(conn $+ $cid) == $null,Start Lag Timer,Stop Lag Timer)): togglelagtimer
  Output Hash Tables:renderhashtabs

}

menu query {
  Check Lag: .notice $me $me $uptime(mirc)
}

menu status {
  Check Lag: .notice $me $me $uptime(mirc)
  User Modes
  .$iif(i isincs $usermode,Remove User Invisible,Set User Invisible):$iif(i isincs $usermode, mode $me -i, mode $me +i)
  .$iif(p isincs $usermode,Remove Channel Invisible,Set Channel Invisible):$iif(p isincs $usermode, mode $me -p, mode $me +p)
  .$iif(d isincs $usermode,Remove Deaf,Quit listening to channel chatter):$iif(d isincs $usermode, mode $me -d, mode $me +d)
  .$iif(w isincs $usermode,Don't listen to Wallops,Listen to Wallops):$iif(w isincs $usermode, mode $me -w, mode $me +w)
  .$iif(s isincs $usermode,Don't listen to server notices,Listen to server notices):$iif(s isincs $usermode, mode $me -s, mode $me +s)
  .$iif(R isincs $usermode,Allow PRIVMSGs/NOTICEs from Unregistered users,Don't allow PRIVMSGs/NOTICEs from Unregistered users):$iif(R isincs $usermode, mode $me -R, mode $me +R)
  .$iif(T isincs $usermode,Recieve CTCPs,Filter Out CTCPs):$iif(T isincs $usermode, mode $me -T, mode $me +T)
  .$iif(W isincs $usermode,Don't see WHOIS requests,See WHOIS attempts (IRCops Only)):$iif(W isincs $usermode, mode $me -W, mode $me +W)
  Stats
  .Check Banversion (B):stats B
  .Check Bad Words List (b):stats b
  .Check Spam Filter(f):stats f
  .Check G-Line/GZ-Line list:stats g
  .Check K-Line list:stats K
  .Check Oper block list:stats O
  .Check Shun list:stats s
  .Check Traffic list:stats T
  .Check U-Line list:stats U
  .Check V-Host list:stats V



}

;########################################################################
; ALIASES SECTION OF REMOTE SCRIPT

alias massmode { if ( $1 == $null ) { return }
  if ($1 !isin eb) {
    var %_a $nick($3,0)
    unset %_b
    while (%_a) { set %_b %_b $nick($3,%_a) | dec %_a }
    var %_a %_b | unset %_b
    modeall $3 $1 $2 %_a
  }
  else {
    var %_a $nick($3,0)
    unset %_b
    while (%_a) { set %_b %_b $address($nick($3,%_a),2) | dec %_a }
    var %_a %_b | unset %_b
    modeall $3 $1 $2 %_a
  }
}


;Arg1 = string of mode (w/o + or -, one letter ). Arg2 = String of change ( this is + or - ). Arg3 = channel name
alias listmode { if ( $1 == $null ) { return }
  if ($1 !isin eb) {
    var %_a $nick($3,0)
    unset %_b
    while (%_a) { set %_b %_b $snick($3,%_a) | dec %_a }
    var %_a %_b | unset %_b
    modeall $3 $1 $2 %_a
  }
  else {
    var %_a $nick($3,0)
    unset %_b
    while (%_a) { set %_b %_b $address($snick($3,%_a),2) | dec %_a }
    var %_a %_b | unset %_b
    modeall $3 $1 $2 %_a
  }
}

alias modeall {
  var %_a $modespl
  var %_c $calc($0 - 3)
  while ( %_c > 0 ) {
    var %_d %_a
    if ( %_c < %_d ) { var %_d %_c }
    var %_b %_d | var %_g %_c
    while ( %_d != 0 ) {
      var %_e %_e $ [ $+ [ $calc(%_g + 3) ] ]
      dec %_d | dec %_g
    }
    var %_d %_b
    while ( %_d != 0 ) {
      var %_f [ [ %_f ] $+ [ $2 ] ]
      dec %_d
    }
    mode $1 $3 $+ %_f %_e
    unset %_e
    %_c = %_c - %_b
  }
}

;Used in the menubar so I don't clutter that section up
alias renderhashtabs {
  window -x @htabs
  set %z.htab.numtables $hget(0)
  aline @htabs Hash Table Count: %z.htab.numtables
  while (%z.htab.numtables) {
    set %z.htab.itemcount $hget(%z.htab.numtables,0).item
    aline @htabs Hash Table: $hget(%z.htab.numtables)
    aline @htabs ------------------------------------
    while (%z.htab.itemcount) {
      aline @htabs $hget(%z.htab.numtables,%z.htab.itemcount).item : $hget(%z.htab.numtables,%z.htab.itemcount).data
      dec %z.htab.itemcount
    }
    aline @htabs ------------------------------------
    dec %z.htab.numtables
  }
  aline @htabs Done generating tables
  aline @htabs ##########################################
  unset %z.htab*
}

;/updatehashtable <hostmask> <nick>
alias updatehashtable {
  ;Schema: address contains number of long entries
  ;^n^ contains nth entry consisting of up to 10 nicks, preceded by nick count.
  ;
  set %z.htab.adni adrnick $+ $network
  hadd nickadr $+ $network $2 $1
  if (!$gettok($hget(%z.htab.adni,$1),1,32)) {
    hadd %z.htab.adni $1 1
    hadd %z.htab.adni ^1^ $+ $1 1 $2
  }
  else {
    set %z.htab.count $gettok($hget(%z.htab.adni,$1),1,32)
    set %z.htab.verify 0
    while (%z.htab.count) {
      if ($istok($hget(%z.htab.adni, ^ $+ %z.htab.count $+ ^ [ $+ [ $1 ] ]),$2,32) == $true) { set %z.htab.verify 1 }
      dec %z.htab.count
    }
    if (!%z.htab.verify) {
      set %z.htab.tempcnt $gettok($hget(%z.htab.adni,$1),1,32)
      if ($gettok($hget(%z.htab.adni,^ $+ %z.htab.tempcnt $+ ^ [ $+ [ $1 ] ]),1,32) > 25) {
        inc %z.htab.tempcnt
        set %z.htab.temp %z.htab.tempcnt $gettok($hget(%z.htab.adni),2-,32)
        hadd %z.htab.adni $1 %z.htab.temp
      }
      set %z.htab.temp ^ $+ %z.htab.tempcnt $+ ^ [ $+ [ $1 ] ]
      set %z.htab.temp2 $hget(%z.htab.adni,%z.htab.temp)
      hadd %z.htab.adni %z.htab.temp $calc($gettok(%z.htab.temp2,1,32)+1) $gettok(%z.htab.temp2,2-,32) $2
    }
  }
  if ($3) {
    ;sets main with additional about nick on this change
    set %z.htab.temp $gettok($hget(%z.htab.adni,$1),1,32) $2-
    hadd %z.htab.adni $1 %z.htab.temp
  }
  unset %z.htab*
}

alias clonecheck {
  hmake clones 16
  set %z.cc.count $nick($chan,0)
  while (%z.cc.count) {
    set %z.cc.mask $hget(nickadr $+ $network,$nick($chan,%z.cc.count))
    if (!$hget(clones,%z.cc.mask)) {
      hadd clones %z.cc.mask 1 $nick($chan,%z.cc.count)
    }
    else {
      set %z.cc.temp $calc($gettok($hget(clones,%z.cc.mask),1,32) + 1) $nick($chan,%z.cc.count) $gettok($hget(clones,%z.cc.mask),2-,32)
      hadd clones %z.cc.mask %z.cc.temp
    }
    dec %z.cc.count
  }
  set %z.cc.count $hget(clones,0).item
  if (!%z.cc.count) { halt }
  window -x @clones
  aline @clones Nick count: %z.cc.count
  aline @clones ------------------------------------
  while (%z.cc.count) {
    if ($gettok($hget(clones,%z.cc.count).data,1,32) > 1) {
      set %z.cc.temp $hget(clones,%z.cc.count).data
      set %z.cc.tcnt $gettok(%z.cc.temp,1,32)
      set %z.cc.tnik $gettok(%z.cc.temp,2-,32)
      aline @clones %z.cc.tcnt clones ( $+ %z.cc.tnik $+ ) at $hget(clones,%z.cc.count).item
    }
    dec %z.cc.count
  }
  aline @clones ------------------------------------
  unset %z.cc*
  hfree clones
}

alias togglelagtimer {
  $iif($timer(conn $+ $cid) == $null, .timer $+ [ conn $+ [ $cid ] ] 0 30 scid [ [ $cid ] ] .notice $!me $me $!uptime(mirc) $!network $cid, .timer $+ conn $+ $cid off ) | $iif($1 != 1337,echo -a Timer on $network is now $iif($timer(conn $+ $cid) == $null,Off,On))
}

438
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: March 12, 2010, 11:42:01 pm »
Enemy data is now coded in. Gotta choose a working structure for the battle engine to easily interface with, and then I'll be working on victory conditions.

Because you know. It would suck if you win a fight and something goes wrong.

I'm also thinking about turning the maze in a certain optional place into a warping hypercube maze. Won't code that in 'till much later, tho. Can't let extras prevent me from getting the core in.

439
TI-BASIC / Re: What BASIC supplements/libraries are there?
« on: March 12, 2010, 09:52:09 pm »
Celtic III is a great FlashAPP but it doesn't fully replace xLIB due to various display bugs. Most games written for xLIB will work fine under Celtic III but you need to be warned that the compatibility isn't perfect. You can go to UnitedTI to read up on some of its compatibility problems. The FlashAPP has its own subforum here: http://www.unitedti.org/forum/index.php?s=4ff01c228c1faee28bd9026b500a76ea&showforum=62

I've also written Xcopy, which many before me has posted about. It was designed to be as minimalistic as possible while still providing a great function. A copy of it can be found here: http://ourl.ca/4025/74169

EDIT: IIRC, Celtic II weighed in at a little under 1000 bytes. It was the Celtic III program version that got a bit heavier.

440
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: March 08, 2010, 03:13:08 pm »
Lack of progress on my part is making me somewhat unhappy. Even more so if nothing gets done on this wonderful spring break that started just today.

Just letting ya know. Started working on some "victory" conditions and getting the code looking the way it needs to be. Testing a few conditions there, and then throwing together the data needed for all them monster-y goodness. Keep ya posted on that respect.

441
Escheron: Shadow over Ragnoth / Re: Escheron: Presage of Darkness
« on: March 05, 2010, 10:00:27 pm »
I think Zera wanted that project done in ASM, since he asked me about the project before I went ahead in started playing PvZ. (I still am, but I get some nice time in between the endless sea of zombies)

I wasn't sure about how ASM is accomplished on the 86 models, but I did mention to Zera that the audience for the TI-86 is rather poor. I suggested the Nspire since I ventured to say that more people have those calcs, but a monocrhomatic game wouldn't sit very well with that calc's superior specs.

EDIT: Dang. This thread's going FAST! (lol)

442
Escheron: Shadow over Ragnoth / Re: Pick the best transition!
« on: March 05, 2010, 12:02:15 am »
I post this here because it's the most appropriate topic. I didn't post the image to the front page because this is unofficial and I was playing around with a blurring effect suggested (for other things) on IRC. This is the result, and does get strange results due to the dealings with grayscale.

EDIT: Augh. It was shot at high FPS mode. IE and Chrome users will see it rather slow-mo. but that's okay.
EDIT2: Grammatical typos. Argh "cold" Florida weather and sitting outside.

443
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: February 27, 2010, 09:25:16 pm »
I don't think we'll have to worry about older calcs, since this game isn't designed for them. For the 83+SE and 84+(SE).

Maybe 83+SE. I don't really know.

444
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: February 24, 2010, 08:14:06 pm »
...
If you end up going with the typewritter effect, maybe you could implement a configuration menut that includes a speed adjustment option. (perhaps pressing a specifc button while on the map will bring you straight to this menu) I wonder what other settings could appear in that menu, though...

User-specific settings for grayscale. Not every TI-84+(SE) is made the same, and some of them have wildly varying specs when you speak of grayscale, all affected by what LCD TI chose to put into those calculators at the time and perhaps the age of the calculator itself.

There may be other settings that need to be addressed, but that is the only thing I can think of at this moment.


445
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: February 24, 2010, 03:07:19 pm »
I was wondering if anyone would've wanted to see some sort of typewriter effect?

Just... wondering. I was wondering about a varying text display rate, with the fastest being what you see above.

446
Escheron: Shadow over Ragnoth / Re: Escheron: Shadow over Ragnoth
« on: February 24, 2010, 02:34:28 am »
Marginal progress. Not enough to justify this delay, though. I'll work on it as soon as I get some time. Got a paper due yesterday to do.

Still gotta render them enemy sprites. They won't draw themselves. That's why there's a large blank space above.

447
Escheron: Shadow over Ragnoth / Re: E:SoR Synopsis
« on: February 18, 2010, 12:31:07 am »
Nice ^^, that's a lot of equipment too ^^
And all of that equipment has stats to them. While it wasn't fun to put them all in at the same time, I'll admit that the addition of some "special" items was quite a bit of fun to throw in. You'll never get to know, tho :P

For everyone else:
They're for ... uhm... uhh... "debugging" purposes only! Want more info? Join the Omnimaga chat! Up front exclusives on how the project progresses (or fails to do so) in real-time!

448
Other Calculators / Re: Super Secret E:SoR Transition
« on: February 17, 2010, 07:34:09 pm »
Oh, man. Someone already posted before I can edit.

For the keywait version, you may have to hold some of these buttons a while after the song's over to make it back to the homescreen (or press ON if you're really impatient). I did this to give a little extra time with the black screen when it was running on a timer. The number of cycles chosen for that timer wasn't an exact science. I just guessed some number that looked good and called it done.

Sorry if this is causing anyone any trouble.

449
Other Calculators / Re: Super Secret E:SoR Transition
« on: February 17, 2010, 07:16:50 pm »
The app's already named "SST" unless you're talking about having it... you know, rely on case-sensitivity. Related to that, I just named it "SST2" for the sake of convenience.

This version will not scroll until you've pushed any of these buttons: Y= , MODE, DEL, 2nd, arrow keys

There is a key hold delay. After holding one of the mentioned keys for a certain amount of time, it will treat any further holding as repeated keypresses.

EDIT: As before, the source for this app is included.

450
Other Calculators / Re: Super Secret E:SoR Transition
« on: February 17, 2010, 12:20:05 am »
The best of all :D

Altough in a game ppl would probably not like to have to wait through it XD
I took it out of the game because it took up loads of space, and for that reason. I would not want to force the player to endure a rickroll if they're trying to grind. Unless ... it might work its way into the secret secret boss battle simply to help discourage savescumming.

This is soooo much fun!  I love rickrolling people, but using this in conjunction with the Start-Up App. :P
Excellent job!  I can't wait until I can get this on my math teacher's calc! ;D
I'm glad you're having fun with it! If you haven't noticed, you can exit the app using the ON key in much the same way that you can (or will once the game's out) in the real game. There's so much of E:SoR code left in that, you can probably get a good idea of how E:SoR works just by viewing the source that's attached to the project.

If you want, I can probably remove the ON key quick exit (and force the user to sit through the rickroll) or add a key combination requirement like ON+CLEAR or something (if you want to obfuscate the method of getting out but still have a way).

This standalone thing is your idea. Whatcha want?

Pages: 1 ... 28 29 [30] 31 32 ... 52