PDA

View Full Version : Vote: Subaquatic lifeform battle


pom
10-13-2003, 05:17 AM
All right people of Kirupaland, vote for the best coded fish :)

McGiver
10-13-2003, 07:52 AM
no, you chose the right one! :)
:trout: (<-there is a smilie for every situation)

Kitiara
10-13-2003, 08:08 AM
I hate all four of you on principle. :)

They're all great... My vote goes to Ilyas, that 3D style fish is just incredible.

comicGeek
10-13-2003, 08:38 AM
Senocular rules! Man his fish reminds me of the fish character with a light in Finding Nemo! :thumb:

Cello
10-13-2003, 08:57 AM
Kit is never wrong... Pom's is great.

pom
10-13-2003, 09:01 AM
Mmm... I wish I could split my vote in 3 :-\ Since I can't do that, I'll give it to Master64 :thumb:

Johnny64
10-13-2003, 09:26 AM
Originally posted by Ilyas da Pom
Mmm... I wish I could split my vote in 3 :-\

me too

but voted for sen :P but pom is good too ;)

McGiver
10-13-2003, 10:15 AM
0 votes till now. Is that a good sign?
hmm this must be one of those election where you vote for the one you want out?!? :block:

Coppertop
10-13-2003, 11:53 AM
I voted McGiver!

McGiver
10-13-2003, 12:26 PM
thanks guys! :)
by the way, I voted for master64

Voetsjoeba
10-13-2003, 01:11 PM
Sen :love:

awligon
10-13-2003, 01:39 PM
Had to vote for McGiver, Wasn't too impressed at first, but as I watched it interact, I was increasingly amazed. These are all awesome. Great job Sen. I'm jealous. :P

McGiver
10-13-2003, 02:04 PM
thanks @ awligon :)
I remembered something I saw a long time ago, had to search for a while
for those who are intrested in more sea creatures
http://www.r-a-n-d-o-m.com/index2.html
take a look at his experiment nr5

nobody
10-13-2003, 02:05 PM
That was a really hard choice between sen and mcgiver. I eventually went with sen though.
Great job everyone though.

ahmed
10-13-2003, 02:11 PM
Originally posted by McGiver
thanks @ awligon :)
I remembered something I saw a long time ago, had to search for a while
for those who are intrested in more sea creatures
http://www.r-a-n-d-o-m.com/index2.html
take a look at his experiment nr5 That site is ****in awesome!!

Johnny64
10-13-2003, 03:40 PM
I guess i will start with showing my AS

so here it is :cap:


_root.StageWidth = 200;
_root.StageHeight = 200;
_root.beginFill(0x0000ff, 100);
_root.lineTo(0, StageWidth);
_root.lineTo(StageHeight, StageWidth);
_root.lineTo(StageHeight, 0);
_root.endFill();
_root.dir = -50;
for (var i = 0; i<200; i++) {
var fish_mc = this.createEmptyMovieClip("fish"+i+"_mc", i);
fish_mc._x = Math.random()*StageWidth;
fish_mc._y = Math.random()*StageHeight;
fish_mc.matrix = {matrixType:"box", x:-7.5, y:-25, w:15, h:50, r:0};
fish_mc.beginGradientFill("radial", [i+55, 0x00ffff], [100, 0], [0, 255], fish_mc.matrix);
fish_mc.moveTo(0, -25);
fish_mc.curveTo(-17.5, -10, 7.5, 25);
fish_mc.lineTo(-7.5, 25);
fish_mc.curveTo(17.5, -10, 0, -25);
fish_mc.endFill();
fish_mc.point = (_root.StageWidth/4)*Math.ceil(Math.random()*3);
fish_mc.onEnterFrame = function() {
this.num++;
this.rotation = (Math.atan2(this.point-this._y, this.point-this._x)/Math.PI*180)+_root.dir+2.5;
this._rotation = this.rotation+(Math.sin(this.num)*5);
this._x += Math.sin(this.rotation*Math.PI/180)*10+Math.ceil(Math.random()*3-2);
this._y -= Math.cos(this.rotation*Math.PI/180)*10+Math.ceil(Math.random()*3-2);
};
}
_root.onEnterFrame = function() {
this.dir == 50 ? l=-5 : undefined;
this.dir == -50 ? l=5 : undefined;
this.dir += l;
};

awligon
10-13-2003, 04:03 PM
I saw that site about six months ago and was wondering if I would ever find it again. excellent stuff there.

btw, nice code 64

senocular
10-13-2003, 04:37 PM
Ill clean mine up a bit before showing - its a little messy ;)

prstudio
10-13-2003, 08:26 PM
sen's motion is out of this world

pom
10-14-2003, 05:39 AM
Clever piece of code, M64 :)

And concerning my code, as Dan says, it's some bomb-diggity piggy style code I have going on here. Quite frankly, I have trouble understanding what it does :x

Johnny64
10-14-2003, 05:49 AM
Well show it !?! :P then i can help puzzling it out ;)

pom
10-14-2003, 05:54 AM
I will! :jag: :alien2: :puzzle: :fe: :panda:

senocular
10-14-2003, 08:25 AM
hmmm... was the text of the script supposed to be 2k or the final swf ?

McGiver
10-14-2003, 10:01 AM
ok, here is my one
(I added a short description) :tie:
/*ok, what is this script doing?
On every frame it calculates a point (mpoint) which is exactly 8 pixels away from the last mpoint of the shark.
It lies on a tangent of the circle, with the mouse cursor as center.
The distance between the cursor and the last mpoint is the radius (the -15 makes it swim to smaller orbits).
As a second step it creates a right-angled (right-angled to the line between mpoint and the last mpoint)...
line with curren poistion of "Formarray" as length.
(the right-angled line's length for the newest mpoint and his neighbour would be the last element of Formarray)...
The last step is to connect those outer points and add the upper fins.
*/
function getangle(dx, dy) {
return (Math.atan(dy/dx)/(Math.PI/180)+((dx>=0) ? (dy>=0) ? 540 : 180 : 0));
}
mpointarr = [250, 250, 250, 250];
Formarray = [0, 0, 7, 6, 3, 3, 4, 5, 6, 7, 8, 9, 12, 14, 22, 17, 18, 16, 12, 6];
createEmptyMovieClip("fish", 69);
onEnterFrame = function () {
npangle = getangle(_xmouse-mpointarr[i], mpointarr[i+1]-_ymouse);
mpointarr.push(Math.sin((npangle-15)*Math.PI/180)*8+mpointarr[i+2]);
mpointarr.push(Math.cos((npangle-15)*Math.PI/180)*8+mpointarr[i+3]);
if (mpointarr.length>40) {
mpointarr.splice(0, mpointarr.length-40);
}
fish.clear();
for (i=0; i<mpointarr.length-4; i += 2) {
angle = getangle(mpointarr[i]-mpointarr[i+2], mpointarr[i+3]-mpointarr[i+1]);
ax1 = Math.sin(angle*Math.PI/180)*Formarray[i/2+2]+mpointarr[i+2];
ay1 = Math.cos(angle*Math.PI/180)*Formarray[i/2+2]+mpointarr[i+3];
ax3 = Math.sin((angle+180)*Math.PI/180)*Formarray[i/2+2]+mpointarr[i+2];
ay3 = Math.cos((angle+180)*Math.PI/180)*Formarray[i/2+2]+mpointarr[i+3];
angle2 = getangle(mpointarr[i+2]-mpointarr[i+4], mpointarr[i+5]-mpointarr[i+3]);
ax0 = Math.sin(angle2*Math.PI/180)*Formarray[i/2+3]+mpointarr[i+4];
ay0 = Math.cos(angle2*Math.PI/180)*Formarray[i/2+3]+mpointarr[i+5];
ax2 = Math.sin((angle2+180)*Math.PI/180)*Formarray[i/2+3]+mpointarr[i+4];
ay2 = Math.cos((angle2+180)*Math.PI/180)*Formarray[i/2+3]+mpointarr[i+5];
fish.lineStyle(1, 0xffffff, 50);
fish.beginFill(0x273D52, 90);
fish.moveTo(ax1, ay1);
fish.lineTo(ax0, ay0);
fish.moveTo(ax2, ay2);
fish.lineTo(ax3, ay3);
fish.lineStyle(0, 0, 0);
fish.curveTo(mpointarr[i], mpointarr[i+1], ax1, ay1);
fish.endFill();
}
fish.lineStyle(1, 0xffffff, 50);
if (mpointarr.length>26) {
fish.moveTo(mpointarr[20], mpointarr[21]);
fish.lineTo(mpointarr[22], mpointarr[23]);
fish.lineTo(mpointarr[24], mpointarr[25]);
}
if (mpointarr.length>12) {
fish.moveTo(mpointarr[8], mpointarr[9]);
fish.lineTo(mpointarr[10], mpointarr[11]);
}
};

senocular
10-14-2003, 10:08 AM
ok, McGiver's text is over 2k, so Im in the clear (mine's like 6+ k after comments - swf is only 1.8 though).

// Fin line segment class
// 3 are made - 1 for the each of the 3 segments
// in one fin 'bone' - each then projecting its
// movement to all other 'bones' in the same joint
// for both fins (one controls six)
Fin = function (t /* sin time */ ,pt /* point in geometry points array */ ){
this.t=t;
this.pt=pt;
// flap rotates and positions fin based on sin wave
// each 3 bones control corresponding bones in other
// joints for each fin
this.flap = function(m){
this.a=-2*Math.max(.1,Math.sin(this.t+=FINFLAP));
pts[this.pt].x = pts[this.pt+3].x = pts[this.pt+6].x = pts[this.pt+9].x = pts[this.pt+12].x = pts[this.pt+15].x = FINPOS[0] += Math.cos(Math.max(Stage._listeners[0].a,this.a))*10;
pts[this.pt].z = pts[this.pt+3].z = pts[this.pt+6].z = FINPOS[1] += Math.sin(Math.max(Stage._listeners[0].a,this.a))*10;
pts[this.pt+9].z = pts[this.pt+12].z = pts[this.pt+15].z = -FINPOS[1];
// extend the last joint in the middle joints of both fins back a little
// to add length (almost curving the fin - not as flat)
pts[this.pt+3].x += 5;
pts[this.pt+12].x += 5;
}
}
// 3D point object "class"
PT = function(x,y,z){return {x:x,y:y,z:z};};

// Transform transforms points in 3d space making array of pts in 2d
Transform = function(p /* points */ , r /* rotations */ ){
var sx=Math.sin(r.x),cx=Math.cos(r.x),sy=Math.sin(r.y) ,cy=Math.cos(r.y),sz=Math.sin(r.z),cz=Math.cos(r.z );
var xy,xz,zx,zy,scale,t=[],i=p.length;
while (i--){
// rotate in 3d along x and z axes
xy = cx*p[i].y - sx*p[i].z;
xz = sx*p[i].y + cx*p[i].z;
zx = cz*p[i].x - sz*xy;
zy = sz*p[i].x + cz*xy;
scale = 200/(200+xz); // 200 for focal length
t[i] = PT(zx*scale,zy*scale); // transformed points
}
return t;
};

// points in geometry
pts = [
PT(-40,5,0), /* mouth bottom */
PT(-50,-5,0), /**/
PT(-20,-30,0), /* to top of head */
PT(80,0,0), /**/
PT(-10,20,0), /* belly bottom*/
PT(-50,5,0), /**/
PT(0,-5,0), /* [6] << start of fin joints */
PT(0,-10,0), /**/
PT(0,-15,0), /**/
PT(0,0,0), /* [9] */
PT(0,0,0), /**/
PT(0,0,0), /**/
PT(0,5,0), /* [12] */
PT(0,10,0), /**/
PT(0,15,0), /**/
PT(0,-5,0), /* [15] */
PT(0,-10,0), /**/
PT(0,-15,0), /**/
PT(0,0,0), /* [18] */
PT(0,0,0), /**/
PT(0,0,0), /**/
PT(0,5,0), /* [21] */
PT(0,10,0), /**/
PT(0,15,0), /**/
PT(-10,-50,0), /* [24] top finage */
PT(10,-60,0), /**/
PT(-5,-40,0), /**/
PT(12,-42,0), /**/
PT(10,25,0), /* [28] bottom finage */
PT(15,35,0), /**/
PT(90,-10,0), /* [30] tail finage */
PT(110,-20,0), /**/
PT(90,10,0), /**/
PT(110,20,0), /**/
PT(105,0,0) /**/
];

// put 3 controlling fin instances in
// the stage listeners list
// stage is used to call draw for each of these
Stage._listeners = [
new Fin(.8, 6),
new Fin(.4, 7),
new Fin(0, 8)
];

// create a movieclip for the fish, and a fins movieclip in it for the fins
this.createEmptyMovieClip("Fish_mc", 1);
// fish's starting position
Fish_mc._x = 500;
Fish_mc._y = 300;

// speed of the fish's movement
speed = 0;

// rotation of fish in 3D space
r = PT(0,0,0);

Fish_mc.onEnterFrame = function(){
// mouse relation in array d
var d = [this._y-this._parent._ymouse,this._x-this._parent._xmouse];
d[2] = Math.sqrt(d[0]*d[0]+d[1]*d[1]);

// handle speed
// flap fins based on distance from mouse
FINFLAP = d[2]/1000;
// stop fin flapping if close enough to the mouse but
// dont let it go below .18 - Stage._listeners[0] is
// the fin on which the 'flap' is based on
if (FINFLAP < .04 && Stage._listeners[0].t % (Math.PI*2) > Math.PI) FINFLAP = 0;
else if (FINFLAP < .18) FINFLAP = .18;

// increase speed of fish based on flapping of fins
if (Stage._listeners[0].t % (Math.PI*2) > Math.PI/2+.15) speed -= Stage._listeners[0].a*FINFLAP/20;
// decrease speed due to water resist
speed *= .9;

// trow in some recoil of some geometry
// points based on fish speed. This way
// the fins and tail seem to go back
// when the fish is swimming faster
// top fin
pts[24].y = -50 + speed*90;
pts[25].y = -60 + speed*100;
pts[26].y = -40 + speed*40;
pts[27].y = -42 + speed*50;

// tail
pts[30].y = -10 + speed*50;
pts[31].y = -20 + speed*100;
pts[32].y = 10 - speed*50;
pts[33].y = 20 - speed*100;

// rotate towards mouse
var angle = Math.atan2(d[0],d[1]);
var diff = r.z - angle;
if (Math.abs(diff) < speed) r.z = angle;
else if (FINFLAP) { // only change rotation if flapping
if (diff > Math.PI) angle += Math.PI*2;
else if (diff < -Math.PI) angle -= Math.PI*2;
// calculate direction need to go which will rotate
// to the mouse the quickest. change of angle is also
// based on speed. The faster you go, the less sharp
// turns can be
r.z += (r.z < angle) ? speed/(Math.min(FINFLAP,.5)*6) : -speed/(Math.min(FINFLAP,.5)*6);
}

// keep rotation in usable span
if (r.z > Math.PI) r.z -= Math.PI*2;
else if (r.z <= -Math.PI) r.z += Math.PI*2;

// move this fish clip in direction of rotation
this._x -= Math.cos(r.z)*speed*100;
this._y -= Math.sin(r.z)*speed*100;

// x rotation is based on z rotation. When you rotate
// to a certain point up or down around z, start changing
// x to make sure that when the fish is completely turned,
// its still upright
if (r.z > Math.PI*7/8 || r.z < -Math.PI*7/8) r.x = Math.PI;
else if (r.z < Math.PI/8 && r.z > -Math.PI/8) r.x = 0;
else if (r.z <= Math.PI*7/8 && r.z >= Math.PI/8) r.x = (r.z-Math.PI/8)*4/3;
else r.x = Math.PI*5/8+(Math.PI*7/8-r.z)*4/3;

// flap fins. FINPOS is the position of each fin
// each joint after the next bases its position on the
// previous fin's position - kept in FINPOS which is
// assigned within the flap method. Stage then calls
// flap for each fin in its _listeners list
FINPOS = [0,0];
Stage.broadcastMessage("flap",Fish_mc);

// 3d-isize points based on rotation
var pts = Transform(pts, r);

// draw on screen
with (this){
clear();
// body
lineStyle(4,0x003366,100);
beginFill(0x003366,10)
moveTo(pts[0].x, pts[0].y);
for (var i=1; i<=5; i++) lineTo(pts[i].x, pts[i].y);
lineTo(pts[0].x, pts[0].y);
endFill();

// fins
lineStyle(2,0xFF9900,100);
for (i=6; i<=23; i++){
if (!(i%3)) moveTo(0,0);
lineTo(pts[i].x, pts[i].y);
}
// top fins
lineStyle(1,0xFF9900,100);
moveTo(pts[2].x, pts[2].y);
lineTo(pts[24].x, pts[24].y);
lineTo(pts[25].x, pts[25].y);
moveTo(pts[2].x, pts[2].y);
lineTo(pts[26].x, pts[26].y);
lineTo(pts[27].x, pts[27].y);
// bottom fins
moveTo(pts[4].x, pts[4].y);
lineTo(pts[28].x, pts[28].y);
moveTo(pts[4].x, pts[4].y);
lineTo(pts[29].x, pts[29].y);
// tail fins
moveTo(pts[3].x, pts[3].y);
lineTo(pts[30].x, pts[30].y);
lineTo(pts[31].x, pts[31].y);
moveTo(pts[3].x, pts[3].y);
lineTo(pts[32].x, pts[32].y);
lineTo(pts[33].x, pts[33].y);
moveTo(pts[3].x, pts[3].y);
lineTo(pts[34].x, pts[34].y);
}
};

McGiver
10-14-2003, 10:16 AM
@ seno: It wouldn't make sense to say:
let's ignore the linecount, because it can be manipulated, we only count the letters :)

by the way: my swf is 828 byte on my pc

senocular
10-14-2003, 10:26 AM
still.. the more letters you have the bigger your swf so it still kind of goes hand in hand. I was ready to start doing other tricks to make the swf smaller too... like only having one array variable to hold all other variables and functions, and reusing variables for other purposes (I actually did re-use te Fin class def for the FINPOS variable but I changed that in the post)... there are ways around everything ;) 2K is a comfy swf size though :beam:

McGiver
10-14-2003, 10:46 AM
one problem with 3d is, that you always get a lot of code, even for drawing something very simple like a triangle.

Johnny64
10-14-2003, 11:49 AM
Fin = function (t /* sin time */,pt /* point in geometry points array */ ){}
Transform = function(p /* points */,r /* rotations */ ){}


you forgot the ) in the Fin Transform Class's


or is it some thing new in flash MX 04 :trout:

McGiver
10-14-2003, 12:11 PM
It think this is a general bug in many forums.
the */
in actionscript tags makes the following character invisible
test/*test*/test

Johnny64
10-14-2003, 12:16 PM
Yeah your right :P ;)

pom
10-14-2003, 12:48 PM
Wow, impressive pieces of code :stunned:

senocular
10-14-2003, 01:09 PM
Originally posted by Master64
you forgot the ) in the Fin Transform Class

fixed it ;)

Voetsjoeba
10-14-2003, 03:27 PM
Wow ! Great stuff in here !

Johnny64
10-17-2003, 04:06 PM
Originally posted by Ilyas da Pom
I will! :jag: :alien2: :puzzle: :fe: :panda:


Well where is it? i want to see your code :D

McGiver
10-17-2003, 04:13 PM
well after all, we got a winner (I don't the poll will change a lot from now on)!

congratulations Senocular ;)

(still waiting for you to join the footer contest! :fe: )

mlk
10-17-2003, 04:48 PM
*think*

senocular
10-17-2003, 05:33 PM
YAY!

Ok, since I won this, Ill do the footer contest. :D

pom
10-18-2003, 07:51 AM
I'll post my code tonight, M64 :beam: Sorry for the delay.

And the battle is not over yet, McGiver can still win it :)

senocular
10-18-2003, 10:08 AM
oh shush ;)

pom
10-18-2003, 12:40 PM
:D

And here's my code:Mouse.hide();

/*** Variables ***/
amplitudes = [] ;
amp = 40 ;
size = 30 ;
incr_red = Math.random() / 10 ;
incr_green = Math.random() / 10 ;
incr_blue = Math.random() / 10 ;
a = 0.1 ;
for (var p=0; p < size; p++) {
amplitudes.push(amp*Math.sin(a += .12)) ;
}
amplitudes[10] += 10;
amplitudes[20] += 10;
myClips=[];
friction=.96;
amplitudeBrown=.45;
amplitudeSpring=.002;
radius=80;
nClip=7;
depth=100;
centre = {x:250, y:200}

function init (){
this.createEmptyMovieClip("container", 0) ;
container.createEmptyMovieClip("d",0)._visible=0;
for (var p=0;p < nClip;p++){
myClips.push(container.d.duplicateMovieClip("d"+p,p+1));
myClips[p].centx=radius*Math.cos(p*Math.PI*2/nClip);
myClips[p].centy=radius*Math.sin(p*Math.PI*2/nClip);
myClips[p].onEnterFrame=effect;
};
};
function grow () {
this.ind ++ ;
if (this.ind < amplitudes.length) {
var dx = _xmouse-centre.x ;
var dy = _ymouse-centre.y ;
this._x += d_x / 30 ;
this._y += d_y / 30 ;
this._xscale = this._yscale = amplitudes[this.ind] ;
}
else {
// if (random(2)) makeBubble(this._x, this._y) ;
this.removeMovieClip () ;
}
};
MovieClip.prototype.effect=function(){
this.loop++;
this.loop=this.loop % 5;
if (!this.loop) {
this.brownX = (Math.random() - .5) * amplitudeBrown;
this.brownY = (Math.random() - .5) * amplitudeBrown;
};
var springX = amplitudeSpring * (this.centx - this._x);
var springY = amplitudeSpring * (this.centy - this._y);
this.velX += springX + this.brownX;
this.velY += springY + this.brownY;
this.velX *= friction;
this.velY *= friction;
this._x += this.velX;
this._y += this.velY;
};
function drawShape(){
var mc=container.createEmptyMovieClip("c"+(++depth),depth);
// depth = depth % 1000 ;
d_x = _xmouse - pos_x ;
d_y = _ymouse - pos_y ;
pos_x += d_x / 7 ;
pos_y += d_y / 7 ;
mc._x = pos_x ;
mc._y = pos_y ;
if (random(2)) makeBubble(mc._x, mc._y) ;
mc.lineStyle(0, 0x999999, 50);
var red = 127 * (1 + Math.sin(angle1 += incr_red)) ;
var green = 127 * (1 + Math.sin(angle2 += incr_green)) ;
var blue = 127 * (1 + Math.sin(angle3 += incr_blue)) ;
var colRand = red << 16 | green << 8 | blue ;
mc.beginFill(colRand, 100);
var end = [] ;
for (j=0; j < nClip; j++) {
var dx = (myClips[j]._x + myClips[(j+1)%nClip]._x) / 2 ;
var dy = (myClips[j]._y + myClips[(j+1)%nClip]._y) / 2 ;
end.push({x:dx, y:dy}) ;
};
this.clear() ;
mc.moveTo(end[0].x, end[0].y) ;
for (j=1; j <= nClip; j++){
mc.curveTo(myClips[j%nClip]._x, myClips[j%nClip]._y, end[j%nClip].x, end[j%nClip].y);
};
mc.endFill();
mc.ind = 0 ;
mc._xscale = mc._yscale = amplitudes[mc.ind] ;
mc.onEnterFrame = grow ;
};

init();
this.onEnterFrame=drawShape;

Soul
10-18-2003, 01:16 PM
All good, but Sen gets mine ;)

radicaljugnu
10-18-2003, 01:49 PM
whoa! i can't make out anything of that code, pom!

pom
10-18-2003, 07:37 PM
As I said before, me neither :-\ I'm surprised it worked the way it was expected to work :P

senocular
10-18-2003, 07:38 PM
looks pretty good to me - actually a little impressed that its structured as well as it is for a little battle like this :).

pom
10-18-2003, 07:44 PM
Once again, I can't find the blushing smiley... :alien2: will do.

senocular
10-18-2003, 07:50 PM
its just :blush: pom ;) :blush:

vulcanpimmmmp
10-19-2003, 08:28 AM
I'm sorry but i've looked and looked and I can't find POM's entry for this anywhere. I know its on 3 seperate threads and each has about 4 pages.

OOOOh I'm :bu: mad

:hair:

vulcanpimmmmp
10-19-2003, 08:34 AM
ooops - found POM's after all. But tough look POM I voted for mcgiver cos I couldn't find yours.

senocular
10-19-2003, 10:09 AM
click on the names in the poll to see the entries

Jasninder
10-20-2003, 08:47 AM
awesome entries all of ya, congratulations :thumb:
I chose pom for the color and 3d fish, although i would love to see some fins too:)

lunatic
10-20-2003, 07:31 PM
Sen, you know you are my hero, but McGiver drew a cool fish dammit.:)

pom
10-21-2003, 04:25 AM
McGiver is coming back!!

Jasninder >> some fins? What do you mean?

vulcanpimmmmp
10-21-2003, 08:18 AM
I'm surprised Master64 hasn't got more votes - But having said that I didn't vote for him.

:esmirk:

Johnny64
10-21-2003, 01:29 PM
better next time :P

McGiver
10-23-2003, 04:04 PM
well, looks like our great master senocular is winning :P

Johnny64
10-23-2003, 04:32 PM
Congratulations Sen :P

:D

Lacuna
10-26-2003, 08:19 PM
** Sen great job!! Can I purchase I fish for myself?

pom
10-27-2003, 05:11 AM
All right, time is up! Sen, you win this battle :) Congratulations to everyone :love:

McGiver
10-28-2003, 07:54 AM
congratulations senocular! <:} you won the battle, but the war isn't over jet :evil: ;)

senocular
10-28-2003, 07:56 AM
Im za beeg weener! :D

McGiver
10-28-2003, 08:00 AM
you have a big wiener???

senocular
10-28-2003, 08:12 AM
you should tell me :love:

McGiver
10-28-2003, 08:29 AM
no he hasn't :bad:

kirupa
12-04-2003, 11:44 PM
If all of you guys could PM me the SWFs (if you want to), I can add them up in the kirupaLab's Battle section :blush:

muffins
06-22-2004, 11:53 AM
me too

but voted for sen :P but pom is good too ;)

might want to look @ your footer dude.... :\ jus letttin you know.