For the 1st question, use this
gg1 moveingunner gun1
gg2 assignasgunner gun1
#Loop
?(!alive gg1): goto "Replace"
~0.1
goto "Loop"
#Replace
gg2 ordergetin true
exit
------------------------------------------------------------
For the 2nd question, do this...
In the unit's INIT field, type this...
[unitName] switchMove "effectstandsitdown"
But to make sure he doesn't stand right back up....
[unitName] setBehaviour "CARELESS"; doStop [unitName]
Put this line in BEFORE the script execution.
Hope this helps