All pastes #991599 Raw Edit

physics

public text v1 · immutable
#991599 ·published 2008-04-21 04:51 UTC
rendered paste body
;mIRC Physics Engine 1.03
;Made by BlueThen on March 24, 2008.
;To install, paste this code into your Remotes (Alt + R)
;then type /phys or right click a channel or status window and click "Physics Engine."
;BlueThen.com for more mIRC scripts and snippets!
menu channel,status {
  Physics Engine: {
    phys
  }
}
alias phys {
  window -poCzdk0 +tnbL @Phys1 -1 -1 400 400
  window -poChzdk0 +tnbL @buffer -1 -1 800 800
  %phys.e = n
  phys.spawn
  phys.loop
}
alias -l phys.loop {
  if (%phys.h = 0) {
    if ((%phys.y < 750) && (%phys.d == d)) {
      inc %phys.y %phys.d.v
      %phys.d.v = $calc(%phys.d.v * 1.2)
    }
    if ((%phys.y > 750) && (%phys.d == d)) {
      %phys.d = u
      %phys.d.v = $calc(%phys.d.v * 0.78)
    }
    if ((%phys.d = u) && (%phys.d.v > 2)) {
      dec %phys.y %phys.d.v
      %phys.d.v = $calc(%phys.d.v * 0.7)
    }
    if ((%phys.d = u) && (%phys.d.v < 2)) {
      %phys.d = d
      %phys.d.v = 2
    }
    if (%phys.y < 50) {
      %phys.d = d
    }
    if (%phys.s.v > 0.05) && (%phys.s == r) {
      dec %phys.x %phys.s.v
      %phys.s.v = $calc(%phys.s.v * 0.95)
    }
    if (%phys.s.v > 0.05) && (%phys.s == l) {
      inc %phys.x %phys.s.v
      %phys.s.v = $calc(%phys.s.v * 0.95)
    }
    if (%phys.x > 750) {
      %phys.s = r
    }
    if (%phys.x < 50) {
      %phys.s = l
    }
  }
  else {
    %phys.y = $calc(2*$mouse.y)
    %phys.x = $calc(2*$mouse.x)
  }
  if (%phys.e != y) {
    drawdot @buffer 15 20 %phys.x %phys.y
    drawtext @buffer 12 Tahoma 30 20 25 Made By BlueThen
    drawtext @buffer 12 Tahoma 30 20 55 BlueThen.com
    drawcopy -m @buffer 0 0 800 800 @phys1 0 0 400 400
    clear @buffer
    .timer -ho 1 0 phys.loop
  }
}
alias -l phys.spawn {
  %phys.h = 0
  %phys.d = d
  %phys.d.v = 1
  %phys.x = 400
  %phys.y = 400
  drawdot @buffer 15 20 400 400
}
menu @phys1 {
  sclick: {
    %phys.h = 1
    %phys.x = $calc(2*$mouse.x)
    %phys.y = $calc(2*$mouse.y)
  }
  uclick: {
    %phys.d.v = $calc(4*%phys.m.y.s)
    %phys.d = %phys.m.y.d
    %phys.h = 0
    %phys.s.v = $calc(3*%phys.m.x.s)
    %phys.s = %phys.m.x.d
  }
  leave: {
    if (%phys.h == 1) {
      %phys.h = 0
    }
    %phys.l = y
  }
  mouse: {
    if (%phys.l = y) {
      %phys.l = n
    }
    if ($mouse.y > %phys.m.y) {
      %phys.m.y.d = d
    }
    else {
      %phys.m.y.d = u
    }
    if ($mouse.x > %phys.m.x) {
      %phys.m.x.d = l
    }
    else {
      %phys.m.x.d = r
    }
    %phys.m.x.s = $abs($calc($mouse.x - %phys.m.x))
    %phys.m.y.s = $abs($calc($mouse.y - %phys.m.y))
    %phys.m.x = $mouse.x
    %phys.m.y = $mouse.y
  }
}
on *:close:@phys1: {
  %phys.e = y
  window -c @buffer
  unset %phys.h %phys.d %phys.d.v %phys.x %phys.y %phys.m.y.d %phys.m.x.d %phys.m.x.s %phys.m.y.s %phys.m.x %phys.m.y %phys.s.v %phys.s %phys.l
}