![]() |
ActionScripts.TXT Смотрите <-- здесь мои Flash MX исходники
// 3D CUBE
vertex = function (x, y, z) { this.x = x; this.y = y; this.z = z; }; vertex.prototype.rotateXY = function(sinX, cosX, sinY, cosY) { //rotation around of axes X and Y var yp = this.y*cosY-this.z*sinY; var zp = this.y*sinY+this.z*cosY; var xp = this.x*cosX+zp*sinX; var zp = -this.x*sinX+zp*cosX; this.x = xp; this.y = yp; this.z = zp; }; vertex.prototype.perspective = function() { //calculation 3d to 2d var perRatio = 1/(this.z/dist+1); this.rx = cnx+this.x*perRatio; this.ry = cny+this.y*perRatio; }; face = function (c, v1, v2, v3, v4) { this.c = c; this.v1 = v1; this.v2 = v2; this.v3 = v3; this.v4 = v4; }; face.prototype.draw = function() { var shadow = 140+((v[this.v1].rx+v[this.v2].rx+v[this.v3].rx+v[this.v4].rx)-(v[this.v1].ry+v[this.v2].ry+v[this.v3].ry+v[this.v4].ry))/4; _root.lineStyle(0, 0x000000, 100); _root.beginFill(shadow << 16 | shadow << 8 | shadow << 0, 100); _root.moveTo(v[this.v1].rx, v[this.v1].ry); _root.lineTo(v[this.v2].rx, v[this.v2].ry, v[this.v3].rx, v[this.v3].ry); _root.lineTo(v[this.v3].rx, v[this.v3].ry, v[this.v4].rx, v[this.v4].ry); _root.lineTo(v[this.v4].rx, v[this.v4].ry, v[this.v1].rx, v[this.v1].ry); _root.endFill(); }; face.prototype.fill = function() { var vis = ((v[this.v2].rx-v[this.v1].rx)*(v[this.v3].ry-v[this.v1].ry)-(v[this.v2].ry-v[this.v1].ry)*(v[this.v3].rx-v[this.v1].rx)); if ((this.c+2)%2) { vis *= -1; } if (vis>=0) { this.draw(); } }; _root.onLoad = function() { cnx = 250; cny = 250; dist = 200; var sx = 75; var sy = 75; var sz = 75; rad = Math.PI/180; amount = 7; // initialization of the vertex v = new Array(); v[0] = new vertex(sx, -sy, sz); v[1] = new vertex(sx, sy, sz); v[2] = new vertex(sx, sy, -sz); v[3] = new vertex(sx, -sy, -sz); v[4] = new vertex(-sx, -sy, -sz); v[5] = new vertex(-sx, sy, -sz); v[6] = new vertex(-sx, sy, sz); v[7] = new vertex(-sx, -sy, sz); // initialization of the faces f = new Array(); f[0] = new face(0, 0, 1, 2, 3); f[1] = new face(1, 2, 3, 4, 5); f[2] = new face(2, 4, 5, 6, 7); f[3] = new face(3, 0, 1, 6, 7); f[4] = new face(4, 0, 3, 4, 7); f[5] = new face(5, 1, 2, 5, 6); }; // #################################################### // -- © 2002-2003 Grigory Ryabov. // -- http://www.flash.plux.ru // #################################################### this.onEnterFrame = function() { var xa = -(cnx-_ymouse)*rad/25; var ya = (cny-_xmouse)*rad/25; var sinY = Math.sin(ya); var cosY = Math.cos(ya); var sinX = Math.sin(xa); var cosX = Math.cos(xa); for (var i = 0; i<=amount; i++) { v[i].rotateXY(sinY, cosY, sinX, cosX); v[i].perspective(); } _root.clear(); // fill the right side face f[0].fill(); // fill the front face f[1].fill(); // fill the left side face f[2].fill(); // fill the back face f[3].fill(); // fill the bottoms face f[4].fill(); // fill the top face f[5].fill(); }; stop(); ------------------------------------------------------------------------------------ // 3D Splines Like initialization = function () { cnx = 250; cny = 250; mas = new Array(0, 0.5, 0, -0.5, 1, 1.23, 1, 1, 1.23, 1); radius = 120; spline = 10; amount = spline*3; rad = Math.PI/180; i = 0; v = new Array(); for (var next = 0; next<=3; next++) { var am = amount*next/3; do { var angle = (i*Math.PI*6)/amount; v[i] = new ver(Math.cos(angle)*radius*mas[next+3], Math.sin(angle)*radius*mas[next+6], radius*mas[next]); } while (i++<am); } dist = radius*((mas[5]+mas[8])*0.5)*2.5; }; ver = function (x, y, z) { this.x = x; this.y = y; this.z = z; }; ver.prototype.rotate3d = function(ya, xa) { var zp = (this.z*Math.cos(ya*rad))-(this.x*Math.sin(ya*rad)); var xp = (this.z*Math.sin(ya*rad))+(this.x*Math.cos(ya*rad)); var yp = (this.y*Math.cos(xa*rad))-(zp*Math.sin(xa*rad)); var zp = (this.y*Math.sin(xa*rad))+(zp*Math.cos(xa*rad)); this.x = xp; this.y = yp; this.z = zp; }; ver.prototype.perspective = function() { var perRatio = 1/(this.z/dist+1); this.rx = cnx+this.x*perRatio; this.ry = cny+this.y*perRatio; }; curveThree = function (x1, y1, x2, y2, x3, y3) { var nx = 2*x2-0.5*(x1+x3); var ny = 2*y2-0.5*(y1+y3); this.moveTo(x1, y1); this.curveTo(nx, ny, x3, y3); }; splines = function () { var df = amount/3; clear(); lineStyle(16, 0xFFFFFF, 100); for (var i = 1; i<=df; i++) { curveThree(v[i].rx, v[i].ry, v[i+df].rx, v[i+df].ry, v[i+df*2].rx, v[i+df*2].ry); } lineStyle(14, 0x000000, 100); for (var i = 1; i<=df; i++) { curveThree(v[i].rx, v[i].ry, v[i+df].rx, v[i+df].ry, v[i+df*2].rx, v[i+df*2].ry); } }; // ################################################################## // -- 3D SPLINES LIKE v2.0 // -- © 2002-2003 Grigory Ryabov. // -- http://www.flash.plux.ru // -- original idea - Den Ivanov | CleoAG.com // ################################################################## initialization(); this.onEnterFrame = function () { for (var i = 0; i<=amount; i++) { v[i].rotate3d(-(cnx-_xmouse)*0.05, (cny-_ymouse)*0.05); v[i].perspective(); } splines(); }; stop(); |
Ещё чуток... исходников
------------------------------------------------------------------------------------
// 3D Boxes Engine insertSort = function (a, lb, ub) { for (i=lb+1; i<=ub; i++) { t = a[i].z; temp = a[i].i; for (j=i-1; j>=lb && (a[j].z>t); j--) { a[j+1].z = a[j].z; a[j+1].i = a[j].i; } a[j+1].z = t; a[j+1].i = temp; } return (a); }; ver = function (x, y, z) { this.x = x; this.y = y; this.z = z; }; ver.prototype.rotateXY = function(sinX, cosX, sinY, cosY) { //rotation around of axes X and Y var yp = this.y*cosY-this.z*sinY; var zp = this.y*sinY+this.z*cosY; var xp = this.x*cosX+zp*sinX; var zp = -this.x*sinX+zp*cosX; this.x = xp; this.y = yp; this.z = zp; }; ver.prototype.perspective = function() { //calculation 3d to 2d var perRatio = 1/(this.z/dist+1); this.rx = cnx+this.x*perRatio; this.ry = cny+this.y*perRatio; }; face = function (c, v1, v2, v3, v4) { this.c = c; this.v1 = v1; this.v2 = v2; this.v3 = v3; this.v4 = v4; }; face.prototype.draw = function() { var shadow = 140+((v[this.v1].rx+v[this.v2].rx+v[this.v3].rx+v[this.v4].rx)-(v[this.v1].ry+v[this.v2].ry+v[this.v3].ry+v[this.v4].ry))/55; //var shadow = 255; _root.lineStyle(0, 0x000000, 100); _root.beginFill(shadow << 16 | shadow << 8 | shadow << 0, 100); _root.moveTo(v[this.v1].rx, v[this.v1].ry); _root.lineTo(v[this.v2].rx, v[this.v2].ry, v[this.v3].rx, v[this.v3].ry); _root.lineTo(v[this.v3].rx, v[this.v3].ry, v[this.v4].rx, v[this.v4].ry); _root.lineTo(v[this.v4].rx, v[this.v4].ry, v[this.v1].rx, v[this.v1].ry); _root.endFill(); }; face.prototype.zindex = function() { return (Math.round(v[this.v1].z+v[this.v2].z+v[this.v3].z+v[this.v4].z)); }; face.prototype.fill = function() { var vis = ((v[this.v2].rx-v[this.v1].rx)*(v[this.v3].ry-v[this.v1].ry)-(v[this.v2].ry-v[this.v1].ry)*(v[this.v3].rx-v[this.v1].rx)); if ((this.c+2)%2) { vis *= -1; } if (vis>=0) { this.draw(); } }; box3d = function (f0, f1, f2, f3, f4, f5) { this.f0 = f0; this.f1 = f1; this.f2 = f2; this.f3 = f3; this.f4 = f4; this.f5 = f5; }; box3d.prototype.fill = function() { // fill the right side face f[this.f0].fill(); // fill the front face f[this.f1].fill(); // fill the left side face f[this.f2].fill(); // fill the back face f[this.f3].fill(); // fill the bottoms face f[this.f4].fill(); // fill the top face f[this.f5].fill(); }; box3d.prototype.zindex = function() { return (f[this.f0].zindex()+f[this.f1].zindex()+f[this.f2].zindex()+f[this.f3].zindex()+f[this.f4].zindex()+f[this.f5].zindex()); }; _root.onLoad = function() { cnx = 250; cny = 250; dist = 500; boxes = 13; amount = 111; rad = Math.PI/180; v = new Array(); f = new Array(); box = new Array(); // center_X, center Y, center Z, size_X, size_Y, size_Z box0 = [0, 0, 0, 50, 50, 10]; box1 = [-110, 0, 0, 50, 50, 10]; box2 = [110, 0, 0, 50, 50, 10]; box3 = [-110, 110, 0, 50, 50, 10]; box4 = [110, 110, 0, 50, 50, 10]; box5 = [-110, -110, 0, 50, 50, 10]; box6 = [110, -110, 0, 50, 50, 10]; box7 = [-110, 110, 110, 50, 50, 10]; box8 = [110, 110, 110, 50, 50, 10]; box9 = [0, 0, -110, 50, 50, 10]; box10 = [0, 110, 0, 50, 50, 10]; box11 = [-110, -110, 110, 50, 50, 10]; box12 = [110, -110, 110, 50, 50, 10]; box13 = [0, -110, 0, 50, 50, 10]; // for (var i = 0; i<=boxes; i++) { var c = i*8; var c1 = i*6; var cx = eval("box"+i)[0]; var cy = eval("box"+i)[1]; var cz = eval("box"+i)[2]; var sx = eval("box"+i)[3]; var sy = eval("box"+i)[4]; var sz = eval("box"+i)[5]; // initialization of the vertex v[0+c] = new ver(sx+cx, -sy+cy, sz+cz); v[1+c] = new ver(sx+cx, sy+cy, sz+cz); v[2+c] = new ver(sx+cx, sy+cy, -sz+cz); v[3+c] = new ver(sx+cx, -sy+cy, -sz+cz); v[4+c] = new ver(-sx+cx, -sy+cy, -sz+cz); v[5+c] = new ver(-sx+cx, sy+cy, -sz+cz); v[6+c] = new ver(-sx+cx, sy+cy, sz+cz); v[7+c] = new ver(-sx+cx, -sy+cy, sz+cz); // initialization of the faces f[0+c1] = new face(0+c1, 0+c, 1+c, 2+c, 3+c); f[1+c1] = new face(1+c1, 2+c, 3+c, 4+c, 5+c); f[2+c1] = new face(2+c1, 4+c, 5+c, 6+c, 7+c); f[3+c1] = new face(3+c1, 0+c, 1+c, 6+c, 7+c); f[4+c1] = new face(4+c1, 0+c, 3+c, 4+c, 7+c); f[5+c1] = new face(5+c1, 1+c, 2+c, 5+c, 6+c); // initialization of the boxes box[i] = new box3d(0+c1, 1+c1, 2+c1, 3+c1, 4+c1, 5+c1); } }; // #################################################### // -- © 2002-2003 Grigory Ryabov. // -- http://www.flash.plux.ru // #################################################### _root.onEnterFrame = function() { var xa = -(cnx-_ymouse)*rad/15; var ya = (cny-_xmouse)*rad/15; var sinY = Math.sin(ya); var cosY = Math.cos(ya); var sinX = Math.sin(xa); var cosX = Math.cos(xa); for (var i = 0; i<=amount; i++) { v[i].rotateXY(sinY, cosY, sinX, cosX); v[i].perspective(); } _root.clear(); if ((df++)%10 == 1) { count = new Array(); for (var i = 0; i<=boxes; i++) { count[i] = new Object(); count[i].z = box[i].zindex(); count[i].i = i; } // insert Sort count = insertSort(count, 0, boxes); } for (var i = 0; i<=boxes; i++) { box[count[boxes-i].i].fill(); } }; stop(); ------------------------------------------------------------------------------------ // Outline // ################################################################ // -- © 2002 - 2003 Grigory Ryabov. // -- http://www.flash.plux.ru // ################################################################ max = 40; this.createEmptyMovieClip("layer2_", 2); this.createEmptyMovieClip("layer1_", 1); this["layer2_"].beginFill(0xFF9900, 100); this["layer2_"].moveTo(-100, -100); this["layer2_"].lineTo(100, -100); this["layer2_"].lineTo(100, 100); this["layer2_"].lineTo(-100, 100); this["layer2_"].lineTo(-100, -100); this["layer1_"].beginFill(0x000000, 100); this["layer1_"].moveTo(-100, -100); this["layer1_"].lineTo(100, -100); this["layer1_"].lineTo(100, 100); this["layer1_"].lineTo(-100, 100); this["layer1_"].lineTo(-100, -100); for (i=0; i<=max; i++) { duplicateMovieClip("layer1_", "layer1_" add i, 100-i); duplicateMovieClip("layer2_", "layer2_" add i, 50-i); this["layer1_"+i]._visible = i%5 ? 0 : 1; this["layer2_"+i]._visible = i%5 ? 0 : 1; } layer1_._visible = 0; layer2_._visible = 0; layer1_0._visible = 0; layer2_0._visible = 0; this.onEnterFrame = function() { px += (_xmouse-this.layer1_0._x)/3, py += (_ymouse-this.layer1_0._y)/3; layer1_0._x=layer2_0._x=px, layer1_0._y=layer2_0._y=py; xs=Math.sin(count += 0.3)*6, ys=Math.cos(count)*6; for (i=max; i>0; i--) { this["layer1_"+i]._x = this["layer2_"+i]._x=this["layer1_"+(i-1)]._x; this["layer1_"+i]._y = this["layer2_"+i]._y=this["layer1_"+(i-1)]._y; this["layer1_"+i]._xscale = this["layer1_"+(i-1)]._xscale-xs; this["layer1_"+i]._yscale = this["layer1_"+(i-1)]._yscale-ys; this["layer2_"+i]._xscale = this["layer1_"+(i-1)]._xscale-xs+7; this["layer2_"+i]._yscale = this["layer1_"+(i-1)]._yscale-ys+7; this["layer1_"+i]._rotation = this["layer2_"+i]._rotation=this["layer1_"+(i-1)]._rotation-3; } }; ------------------------------------------------------------------------------------ // Outline 2 // ################################################################ // -- © 2002 - 2003 Grigory Ryabov. // -- http://www.flash.plux.ru // -- OUTLINE 2 // ################################################################ MovieClip.prototype.newCurve = function(x1, y1, x2, y2, x3, y3) { var nx = 2*x2-0.5*(x1+x3); var ny = 2*y2-0.5*(y1+y3); this.curveTo(nx, ny, x3, y3); }; MovieClip.prototype.drawCircle = function(c, wd, hg) { var mas = new Array(); var angle = 360/c; for (var i = 0; i<=c; i++) { mas[i] = new Object(); mas[i].x = Math.cos(angle*(Math.PI/180)*i)*wd; mas[i].y = Math.sin(angle*(Math.PI/180)*i)*hg; } this.moveTo(mas[0].x, mas[0].y); for (var i = 0; i<c; i += 2) { this.newCurve(mas[i].x, mas[i].y, mas[i+1].x, mas[i+1].y, mas[i+2].x, mas[i+2].y); } }; max = 40; radius = 100; this.createEmptyMovieClip("layer2_", 2); this.createEmptyMovieClip("layer1_", 1); this["layer2_"].beginFill(0xFF9900, 100); this["layer2_"].drawCircle(16, radius, radius); this["layer2_"].endFill(); this["layer1_"].beginFill(0x000000, 100); this["layer1_"].drawCircle(16, radius, radius); this["layer1_"].endFill(); for (i=0; i<=max; i++) { duplicateMovieClip("layer1_", "layer1_" add i, 100-i); duplicateMovieClip("layer2_", "layer2_" add i, 50-i); this["layer1_"+i]._visible = i%5 ? 0 : 1; this["layer2_"+i]._visible = i%5 ? 0 : 1; } layer1_._visible = 0; layer2_._visible = 0; layer1_0._visible = 0; layer2_0._visible = 0; this.onEnterFrame = function() { px += (_xmouse-this.layer1_0._x)/3, py += (_ymouse-this.layer1_0._y)/3; layer1_0._x=layer2_0._x=px, layer1_0._y=layer2_0._y=py; xs=Math.sin(count += 0.3)*6, ys=Math.cos(count)*6; for (i=max; i>0; i--) { this["layer1_"+i]._x = this["layer2_"+i]._x=this["layer1_"+(i-1)]._x; this["layer1_"+i]._y = this["layer2_"+i]._y=this["layer1_"+(i-1)]._y; this["layer1_"+i]._xscale = this["layer1_"+(i-1)]._xscale-xs; this["layer1_"+i]._yscale = this["layer1_"+(i-1)]._yscale-ys; this["layer2_"+i]._xscale = this["layer1_"+(i-1)]._xscale-xs+8; this["layer2_"+i]._yscale = this["layer1_"+(i-1)]._yscale-ys+8; this["layer1_"+i]._rotation = this["layer2_"+i]._rotation=this["layer1_"+(i-1)]._rotation-3; } }; |
И ещё чуток исходников
------------------------------------------------------------------------------------
// SUN // ################################################################ // -- © 2002 - 2003 Grigory Ryabov. // -- http://www.flash.plux.ru // -- SUN // ################################################################ this.createEmptyMovieClip("mc", 1); MovieClip.prototype.newCurve = function(x1, y1, x2, y2, x3, y3) { var nx = 2*x2-0.5*(x1+x3); var ny = 2*y2-0.5*(y1+y3); this.curveTo(nx, ny, x3, y3); }; MovieClip.prototype.drawCircle = function(c, wd, hg) { var mas = new Array(); var angle = 360/c; for (var i = 0; i<=c; i++) { mas[i] = new Object(); mas[i].x = Math.cos(angle*(Math.PI/180)*i)*wd; mas[i].y = Math.sin(angle*(Math.PI/180)*i)*hg; } this.moveTo(mas[0].x, mas[0].y); for (var i = 0; i<c; i += 2) { this.newCurve(mas[i].x, mas[i].y, mas[i+1].x, mas[i+1].y, mas[i+2].x, mas[i+2].y); } }; radius = 80; matrix = {matrixType:"box", x:-radius, y:-radius, w:radius*2, h:radius*2, r:radius*Math.PI}; this["mc"].beginGradientFill("radial", [0xFFFF00, 0xFF0000, 0xFFFF00], [100, 100, 100], [0, 0xCC, 0xFF], matrix); this["mc"].lineStyle(0, 0x000000, 100); this["mc"].drawCircle(16, radius, radius); this["mc"].endFill(); stop(); max = 12; for (i=0; i<=max; i++) { this["mc"].duplicateMovieClip("ko"+i, 1000-i); } this["mc"].removeMovieClip(); ko0._visible = 0; ko1._visible = 0; this.onEnterFrame = function() { if (ct%2 != 1) { count++; bg0._x = ko0._x=posx += (Math.cos(count/6)*420-ko0._x)/2+stage.width/4; bg0._y = ko0._y=posy += (Math.sin(count/6)*200-ko0._y)/2+stage.height/4; for (i=max; i>0; i--) { eval("ko"+i)._x = eval("ko"+(i-1))._x; eval("ko"+i)._y = eval("ko"+(i-1))._y; eval("ko"+i)._xscale = eval("ko"+(i-1))._xscale-(130-Math.cos(count/3)*30); eval("ko"+i)._yscale = eval("ko"+(i-1))._yscale-(130-Math.cos(count/3)*30); } } }; _root.onMouseDown = function() { ct++; }; stop(); ------------------------------------------------------------------------------------ // WOOL // ################################################################## // WOOL EFFECT // © 2002 - 2003 Grigory Ryabov. All Rights Reserved. // http://www.flash.plux.ru // ################################################################## c._x = 95; c._y = 55; max = 10; dist = 35; rad = Math.PI/180; createEmptyMovieClip("c", 300); for (i=1; i<=(max*max); i++) { c.duplicateMovieClip("c"+i, i); this["c"+i]._x = this["c"+(i-1)]._x+dist; this["c"+i]._y = this["c"+(i-1)]._y; this["c"+i].lineStyle(2, 0x000000, 100); this["c"+i].moveTo(0, 0); this["c"+i].lineTo(35, 35); this["c"+i].onEnterFrame = function() { this.angle = Math.atan2(_ymouse-this._y, _xmouse-this._x)/rad; this._rotation = this.angle+135; }; if (i%max == 1) { this["c"+i]._y += dist; this["c"+i]._x = this["c"]._x; } } c.removeMovieClip(); stop(); ------------------------------------------------------------------------------------ // FLAME // ############################################################## // (c) 2003 Grigory Ryabov // http://www.flash.plux.ru // FLASH MX FLAME EFFECT // ############################################################## if (frst != 10) { frst = 10; this.createEmptyMovieClip("c_", 2); this.createEmptyMovieClip("worm1", 3); this.createEmptyMovieClip("worm2", 1); max = 30; for (i=0; i<=max; i++) { duplicateMovieClip("c_", "c1_"+i, i+400); duplicateMovieClip("c_", "c2_"+i, i+100); } this.onEnterFrame = function() { count++; c1_0._x = 250+Math.cos(count/2)*3; c1_0._y = 250; c2_0._x = 250+Math.cos(count/2)*3; c2_0._y = 250; this["worm"+1].clear(); this["worm"+1].moveTo(this["c"+1+"_"+max]._x, this["c"+1+"_"+max]._y); this["worm"+2].clear(); this["worm"+2].moveTo(this["c"+2+"_"+max]._x, this["c"+2+"_"+max]._y); for (i=max; i>0; i--) { this["c1_"+i]._x = this["c1_"+(i-1)]._x; this["c1_"+i]._y = this["c1_"+(i-1)]._y+Math.cos(count/10)*3-4; this["c2_"+i]._x = this["c2_"+(i-1)]._x; this["c2_"+i]._y = this["c2_"+(i-1)]._y+Math.cos(count/10)*3-4; r = -(Math.abs(Math.sin(count/20))*i+1)*8; g = -(Math.abs(Math.sin(count/20))*i+1)*8; b = 0; worm1.lineStyle((max-i)*1.5, r << 16 | g << 8 | b,40); worm1.lineTo(this["c1_"+i]._x, this["c1_"+i]._y); worm2.lineStyle((max-i)*2, 255 << 16 | 00 << 8 | 00, 50); worm2.lineTo(this["c2_"+i]._x, this["c2_"+i]._y); } }; } ------------------------------------------------------------------------------------ ну и как Вам??? ещё хотите??? прошу ко мне в гости http://www.flash.plux.ru Григорий А. Рябов (nuran) Россия г.Тюмень |
как всегда, смешно,а особенно веселит слово "мои".
|
ты идиот или как ???
с глупыми не спорю |
вопрос Автору
ну вопщем я во флешь загнал один - запарился набивать!
я конешно сомневаюсь, но без вот этих строк Цитата:
|
молодец
хороший код |
:\
А есть ли какой-то основно принцип построения этих поделей..?ведь это псевдо 3д....
|
Есть такой дядька AHAB ака Brandon Williams (с бывшего were-here.com) - вот у него был хороший набор ... vector2DClass, vector3DClass, matrixClass и т д ...
http://www.galaxygoo.org/blogs/mathLinks/ тут Math in Flash ... там тоже можно погулять :) :) :) |
Re: :\
Цитата:
это как раз риал-тайм-просчет. вот только флэша мало тянет, а так... ждем "централа" |
| Часовой пояс GMT +4, время: 03:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.