Recently I had asked bum if he could help me create a script for editing. I wanted some way to copy all playerstarts from one side of a mirrored CTF map to the other and flip them 180 degrees to face the right direction. He made one that would do this, but it also would reset playerstarts with value "1" to 0s, so all playerstarts would be neutral and I would have to pick out the team playerstarts and switch them back. Like any impatient non-scripter would do (I think he wasn't around to fix it when I realized the problem), I asked someone else who knew scripting to try it out. Sandy7 created this script here, which will rotate playerstarts (or any entity you want) by 180 degrees (or any value you want), but will also change playerstarts with value "1" to value "2" for you, and keep 0s the same.
So this basically saves a lot of time when doing playerstarts. Instead of having to rotate each one by hand, or even recreating them all together, just do the following:
1. Paste this script into your autoexec.cfg
2. In game, select the side of your map with playerstarts.
3. Type "/entfindinsel playerstart" , then "/entcopy"
4. Select the other side of your map.
5. Type "/entpaste" , then flip the entities with "/entflip".
6. Type "/rotateps1 (degrees) (enttype)". For this case it would be "/rotateps1 180 playerstart"
Hope other people will enjoy this time saving script as much as I do.
All credits for this script go to Sandy7, with the original concept by bum.
// Config script
rotateps1 = " entloop [ if (=s (enttype) $arg2) [ if (= (entattr 1) 1) [entset (enttype) (+ $arg1 (entattr (0)))(2)] [entset (enttype) (+ $arg1 (entattr (0))))(0)][] ] "
//In-Game Command: /rotateps1 (degrees) (enttype)