turn 180 º
Posted: Thu Nov 29, 2012 5:07 pm
i need a simple script for turn 180º the player
Leading the way in newschool multiplayer Doom online
https://zandronum.com/forum/
Code: Select all
script 123 (void) {
SetActorAngle(ActivatorTID(), GetActorAngle(ActivatorTID()) + 0.5);
}Code: Select all
script PARKMORE_TURN (int degrees, int factor, int direction) net clientside
{
if (degrees < 0)
{
degrees *= -1;
direction = cond(direction == CLOCKWISE, COUNTERCLOCKWISE, CLOCKWISE);
}
factor = cond(factor, factor, 4);
int prevDegrees, addDegrees, curAngle;
int curDegrees = 0;
int floatDegrees = itof(degrees);
int dirMult = cond(direction == CLOCKWISE, -1, 1);
while (curDegrees < (floatDegrees - 0.1))
{
prevDegrees = curDegrees;
addDegrees = (floatDegrees - curDegrees) / factor;
curDegrees += addDegrees;
SetActorAngle(0, GetActorAngle(0) + ((addDegrees * dirMult) / 360));
Delay(1);
}
addDegrees = floatDegrees - curDegrees;
SetActorAngle(0, GetActorAngle(0) + ((addDegrees * dirMult) / 360));
}this could work on multiplayer?Ijon Tichy wrote: Well I have a little script that, when run on a player, will smoothly turn them x amount of degrees. You can also specify which way it goes, and the factor argument controls how fast the turning happens. Higher values slow it down.
edit: you might want to #define PARKMORE_TURN or change the PARKMORE_TURN to a script numberCode: Select all
script PARKMORE_TURN (int degrees, int factor, int direction) net clientside { if (degrees < 0) { degrees *= -1; direction = cond(direction == CLOCKWISE, COUNTERCLOCKWISE, CLOCKWISE); } factor = cond(factor, factor, 4); int prevDegrees, addDegrees, curAngle; int curDegrees = 0; int floatDegrees = itof(degrees); int dirMult = cond(direction == CLOCKWISE, -1, 1); while (curDegrees < (floatDegrees - 0.1)) { prevDegrees = curDegrees; addDegrees = (floatDegrees - curDegrees) / factor; curDegrees += addDegrees; SetActorAngle(0, GetActorAngle(0) + ((addDegrees * dirMult) / 360)); Delay(1); } addDegrees = floatDegrees - curDegrees; SetActorAngle(0, GetActorAngle(0) + ((addDegrees * dirMult) / 360)); }
thanks dude i will test this script =)Ijon Tichy wrote: It works in Parkmore, at least on players. If you don't need smooth turning, just add 0.5 to the actor's angle as illustrated above.