Published by request. Draws lines using Chompy's and Sales' DrawLine() function. Hold ctrl and drag yer mouse through Graal, wee~
PHP Code:
//#CLIENTSIDE
function onCreated() {
this.draw = false;
this.ox = nil;
this.oy = nil;
this.iIndex = 0;
}
// erase drawn lines
function onEraseLines()
hideImgs(0, 199);
// mouse stuff
function GraalControl.onMouseDown(kmod) {
if (kmod in |4, 8|) { // ctrl
this.draw = true;
this.ox = mousex;
this.oy = mousey;
cancelEvents("EraseLines");
}
}
function GraalControl.onMouseUp() {
if (!this.draw)
return;
this.draw = false;
cancelEvents("EraseLines");
scheduleEvent(3, "EraseLines", nil);
}
function GraalControl.onMouseDragged() {
if (!this.draw)
return;
temp.dx = abs(this.ox - mousex);
temp.dy = abs(this.oy - mousey);
temp.d = (temp.dx ^ 2 + temp.dy ^ 2) ^ 0.5;
if (temp.d > 0.1) {
temp.i = this.iIndex;
temp.t = 0.5;
DrawLine(temp.i, this.ox, this.oy, mousex, mousey, 2 / 16);
changeImgColors(temp.i, 1, 1, 1, 1);
changeImgVis(temp.i, 3);
this.iIndex++;
this.iIndex %= 200;
this.ox = mousex;
this.oy = mousey;
}
}
// draw-a-line - thanks Chompy & Sales
// http://forums.graalonline.com/forums/showthread.php?t=78427
function DrawLine(idx, sx, sy, tx, ty, w) {
w = (w == nil ? 1 / 16 : w);
temp.ang = getangle(tx - sx, ty - sy) + pi / 2;
showPoly(idx,
{ sx, sy,
tx, ty,
tx + cos(ang) * w, ty - sin(ang) * w,
sx + cos(ang) * w, sy - sin(ang) * w });
}