PDA

View Full Version : [CoD2] SWIMMING



kung foo man
30th November 2012, 17:02
Another great new achievement in the CoD2-Modding-History made by IzNoGod!

http://www.xfire.com/video/5c7323/

Peterlankton
1st December 2012, 06:08
Expected something different :D
I thought by swimming you meant swimming on the surface of the water. This is more like diving.
Anyways, it looks amazing. This guy is so amazing and his newest creation...wow. Honestly, great work.

YuriJurek
12th November 2013, 16:38
IzNoGod would you mind posting source code for this kind of swimming ?! It would be great !
Thanks.

Jeplaa
12th November 2013, 17:32
Swimzoring by IzNoGod:




#include std\player;

swim()
{
swimspeed = 200;
swimfactor = 0.05;
swimcorrection = 35.5; //experimental random number (do not change)
if(isdefined(self.swim_running) && self.swim_running)
return; //dont double-start thread
waters = getentarray("water", "targetname");
touching = false;
wastouching = false;
while(isdefined(self) && isdefined(self.sessionstate) && self.sessionstate == "playing")
{
wastouching = touching;
touching = false;
for(i = 0; i < waters.size; i++)
{
if(self istouching(waters[i]))
{
touching = true;
break;
}
}
vec = (0, 0, 0);
if(touching || wastouching)
{
fw = anglestoforward(self getplayerangles());
rg = anglestoright(self getplayerangles());
if(self leftButtonPressed())
vec -= rg;
if(self rightButtonPressed())
vec += rg;
if(self forwardButtonPressed())
vec += fw;
if(self backButtonPressed())
vec -= fw;
if(self leanleftButtonPressed())
vec -= (0, 0, 1);
if(self leanrightButtonPressed())
vec += (0, 0, 1);
vec = vectornormalize(vec);
vec = maps\mp\_utility::vectorScale(vec, swimspeed);
}
if(touching)
{
currentspeed = self getVelocity();
speed_diff = vec - currentspeed;
speed = (speed_diff[0] * swimfactor, speed_diff[1] * swimfactor, speed_diff[2] * swimfactor + swimcorrection * (1 - 0.5 * self isonground()));
self addVelocity(speed);
}
else if(wastouching && (vec[2] > swimspeed/10 || self jumpButtonPressed()))
{
currentspeed = self getVelocity();
currentspeed = (currentspeed[0], currentspeed[1], 250);
self setvelocity(currentspeed);
}
wait 0.05;
}
if(isdefined(self))
self.swim_running = false;
}


Found something (maybe the same) in thread @1407

YuriJurek
12th November 2013, 19:09
Thank you for your answer, you've been very helpful.

IzNoGoD
12th November 2013, 21:46
http://www.youtube.com/watch?v=le6Rvy5Ccb0