Changeset 1978

Show
Ignore:
Timestamp:
05/18/08 19:03:11 (8 months ago)
Author:
evil4zerggin
Message:

Trying out new script for Arm commander. Hopefully this will be more responsive.

Location:
trunk/mods/ca/scripts
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/mods/ca/scripts/armcom.bos

    r1725 r1978  
    88       lthigh, rthigh, nanolath, biggun, rleg, lleg, ground; 
    99 
    10 static-var  bMoving, bAiming, Static_Var_3, Static_Var_4; 
     10static-var  action, isMoving; 
    1111 
    1212// Signal definitions 
    13 #define SIG_AIM                         2 
    14  
    15  
    16 walk() 
    17 { 
    18         if( bMoving ) 
     13#define SIG_LASER                               2 
     14#define SIG_DGUN                                4 
     15 
     16#define ACT_DGUN                                4 
     17#define ACT_LASER                               2 
     18 
     19#define TORSO_SPEED_YAW                 <300> 
     20#define ARM_SPEED_PITCH                 <180> 
     21 
     22#define RESTORE_DELAY_DGUN              2000 
     23#define RESTORE_DELAY_LASER             2000 
     24 
     25WalkArms() 
     26{ 
     27        if( !action && isMoving ) 
    1928        { 
    2029                move pelvis to y-axis [-0.700000] now; 
     
    2534                turn torso to y-axis <4.219780> now; 
    2635                turn ruparm to x-axis <-11.252747> now; 
    27                 turn luparm to x-axis <11.252747> now; 
    28                 turn nanolath to x-axis <-41.846154> now; 
    29                 turn biggun to x-axis <-62.593407> now; 
     36                turn luparm to x-axis <11.252747> now;   
    3037                turn rleg to x-axis <39.384615> now; 
    3138                turn lleg to x-axis <41.846154> now; 
    3239                sleep 40; 
    3340        } 
    34         if( bMoving ) 
     41        if( !action && isMoving ) 
    3542        { 
    3643                turn torso to y-axis <3.868132> now; 
    3744                turn ruparm to x-axis <-13.362637> now; 
    3845                turn luparm to x-axis <12.307692> now; 
    39                 turn nanolath to x-axis <-41.840659> now; 
    40                 sleep 40; 
    41         } 
    42         if( bMoving ) 
     46                sleep 40; 
     47        } 
     48        if( !action && isMoving ) 
    4349        { 
    4450                move pelvis to y-axis [-0.550000] now; 
     
    4955                turn ruparm to x-axis <-8.087912> now; 
    5056                turn luparm to x-axis <6.329670> now; 
    51                 turn nanolath to x-axis <-41.840659> now; 
    52                 turn biggun to x-axis <-62.593407> now; 
    5357                turn rleg to x-axis <51.686813> now; 
    5458                turn lleg to x-axis <28.483516> now; 
    5559                sleep 100; 
    5660        } 
    57         if( bMoving ) 
     61        if( !action && isMoving ) 
    5862        { 
    5963                move pelvis to y-axis [-0.300000] now; 
     
    6468                turn ruparm to x-axis <-3.159341> now; 
    6569                turn luparm to x-axis <0.000000> now; 
    66                 turn nanolath to x-axis <-41.840659> now; 
    67                 turn biggun to x-axis <-62.593407> now; 
    6870                turn rleg to x-axis <58.016484> now; 
    6971                turn lleg to x-axis <16.175824> now; 
    7072                sleep 90; 
    7173        } 
    72         if( bMoving ) 
     74        if( !action && isMoving ) 
    7375        { 
    7476                move pelvis to y-axis [0.000000] now; 
     
    7981                turn ruparm to x-axis <3.164835> now; 
    8082                turn luparm to x-axis <-6.329670> now; 
    81                 turn nanolath to x-axis <-41.846154> now; 
    8283                turn rleg to x-axis <44.307692> now; 
    8384                turn lleg to x-axis <5.626374> now; 
    8485                sleep 90; 
    8586        } 
    86         if( bMoving ) 
     87        if( !action && isMoving ) 
    8788        { 
    8889                move pelvis to y-axis [-0.200000] now; 
     
    9394                turn ruparm to x-axis <6.681319> now; 
    9495                turn luparm to x-axis <-8.087912> now; 
    95                 turn nanolath to x-axis <-41.840659> now; 
    96                 turn biggun to x-axis <-62.593407> now; 
    9796                turn rleg to x-axis <71.384615> now; 
    9897                turn lleg to x-axis <20.043956> now; 
    9998                sleep 80; 
    10099        } 
    101         if( bMoving ) 
     100        if( !action && isMoving ) 
    102101        { 
    103102                move pelvis to y-axis [-0.300000] now; 
     
    110109                sleep 70; 
    111110        } 
    112         if( bMoving ) 
     111        if( !action && isMoving ) 
    113112        { 
    114113                move pelvis to y-axis [-0.400000] now; 
     
    119118                turn ruparm to x-axis <10.197802> now; 
    120119                turn luparm to x-axis <-10.197802> now; 
    121                 turn nanolath to x-axis <-41.840659> now; 
    122                 turn biggun to x-axis <-62.593407> now; 
    123120                turn rleg to x-axis <34.461538> now; 
    124121                turn lleg to x-axis <20.043956> now; 
    125122                sleep 80; 
    126123        } 
    127         if( bMoving ) 
     124        if( !action && isMoving ) 
    128125        { 
    129126                move pelvis to y-axis [-0.700000] now; 
     
    134131                turn ruparm to x-axis <11.252747> now; 
    135132                turn luparm to x-axis <-11.252747> now; 
    136                 turn nanolath to x-axis <-41.840659> now; 
    137                 turn biggun to x-axis <-62.593407> now; 
    138133                turn rleg to x-axis <40.439560> now; 
    139134                turn lleg to x-axis <30.587912> now; 
    140135                sleep 40; 
    141136        } 
    142         if( bMoving ) 
     137        if( !action && isMoving ) 
    143138        { 
    144139                turn ruparm to x-axis <13.362637> now; 
    145140                turn luparm to x-axis <-12.307692> now; 
    146                 turn nanolath to x-axis <-41.840659> now; 
    147                 turn biggun to x-axis <-62.593407> now; 
    148                 sleep 40; 
    149         } 
    150         if( bMoving ) 
     141                sleep 40; 
     142        } 
     143        if( !action && isMoving ) 
    151144        { 
    152145                move pelvis to y-axis [-0.550000] now; 
     
    157150                turn ruparm to x-axis <8.439560> now; 
    158151                turn luparm to x-axis <-8.439560> now; 
    159                 turn nanolath to x-axis <-41.846154> now; 
    160                 turn biggun to x-axis <-62.236264> now; 
    161152                turn lleg to x-axis <43.950549> now; 
    162153                sleep 100; 
    163154        } 
    164         if( bMoving ) 
     155        if( !action && isMoving ) 
    165156        { 
    166157                move pelvis to y-axis [-0.300000] now; 
     
    171162                turn ruparm to x-axis <3.159341> now; 
    172163                turn luparm to x-axis <-3.164835> now; 
    173                 turn biggun to x-axis <-62.593407> now; 
    174164                turn lleg to x-axis <54.500000> now; 
    175165                sleep 90; 
    176166        } 
    177         if( bMoving ) 
     167        if( !action && isMoving ) 
    178168        { 
    179169                move pelvis to y-axis [0.000000] now; 
     
    184174                turn ruparm to x-axis <-3.164835> now; 
    185175                turn luparm to x-axis <3.868132> now; 
    186                 turn nanolath to x-axis <-41.846154> now; 
    187                 turn biggun to x-axis <-62.593407> now; 
    188176                turn rleg to x-axis <8.082418> now; 
    189177                turn lleg to x-axis <60.483516> now; 
    190178                sleep 80; 
    191179        } 
    192         if( bMoving ) 
     180        if( !action && isMoving ) 
    193181        { 
    194182                move pelvis to y-axis [-0.200000] now; 
     
    199187                turn ruparm to x-axis <-6.675824> now; 
    200188                turn luparm to x-axis <8.791209> now; 
    201                 turn biggun to x-axis <-62.593407> now; 
    202189                turn rleg to x-axis <26.021978> now; 
    203190                turn lleg to x-axis <56.263736> now; 
    204191                sleep 80; 
    205192        } 
    206         if( bMoving ) 
     193        if( !action && isMoving ) 
    207194        { 
    208195                move pelvis to y-axis [-0.300000] now; 
     
    222209        turn ruparm to x-axis <-8.785714> now; 
    223210        turn luparm to x-axis <10.197802> now; 
    224         turn biggun to x-axis <-62.593407> now; 
    225211        turn lleg to x-axis <25.670330> now; 
    226212        sleep 80; 
    227213} 
    228214 
    229 walklegs() 
    230 { 
    231         if( bMoving ) 
     215WalkNoArms() 
     216{ 
     217        if( action && isMoving ) 
    232218        { 
    233219                move pelvis to y-axis [-0.700000] now; 
     
    240226                sleep 40; 
    241227        } 
    242         if( bMoving ) 
    243         { 
    244                 sleep 40; 
    245         } 
    246         if( bMoving ) 
     228        if( action && isMoving ) 
     229        { 
     230                sleep 40; 
     231        } 
     232        if( action && isMoving ) 
    247233        { 
    248234                move pelvis to y-axis [-0.550000] now; 
     
    254240                sleep 100; 
    255241        } 
    256         if( bMoving ) 
     242        if( action && isMoving ) 
    257243        { 
    258244                move pelvis to y-axis [-0.300000] now; 
     
    264250                sleep 90; 
    265251        } 
    266         if( bMoving ) 
     252        if( action && isMoving ) 
    267253        { 
    268254                move pelvis to y-axis [0.000000] now; 
     
    274260                sleep 90; 
    275261        } 
    276         if( bMoving ) 
     262        if( action && isMoving ) 
    277263        { 
    278264                move pelvis to y-axis [-0.200000] now; 
     
    284270                sleep 80; 
    285271        } 
    286         if( bMoving ) 
     272        if( action && isMoving ) 
    287273        { 
    288274                move pelvis to y-axis [-0.300000] now; 
     
    292278                sleep 70; 
    293279        } 
    294         if( bMoving ) 
     280        if( action && isMoving ) 
    295281        { 
    296282                move pelvis to y-axis [-0.400000] now; 
     
    302288                sleep 80; 
    303289        } 
    304         if( bMoving ) 
     290        if( action && isMoving ) 
    305291        { 
    306292                move pelvis to y-axis [-0.700000] now; 
     
    312298                sleep 40; 
    313299        } 
    314         if( bMoving ) 
    315         { 
    316                 sleep 40; 
    317         } 
    318         if( bMoving ) 
     300        if( action && isMoving ) 
     301        { 
     302                sleep 40; 
     303        } 
     304        if( action && isMoving ) 
    319305        { 
    320306                move pelvis to y-axis [-0.550000] now; 
     
    325311                sleep 100; 
    326312        } 
    327         if( bMoving ) 
     313        if( action && isMoving ) 
    328314        { 
    329315                move pelvis to y-axis [-0.300000] now; 
     
    334320                sleep 90; 
    335321        } 
    336         if( bMoving ) 
     322        if( action && isMoving ) 
    337323        { 
    338324                move pelvis to y-axis [0.000000] now; 
     
    344330                sleep 80; 
    345331        } 
    346         if( bMoving ) 
     332        if( action && isMoving ) 
    347333        { 
    348334                move pelvis to y-axis [-0.200000] now; 
     
    354340                sleep 80; 
    355341        } 
    356         if( bMoving ) 
     342        if( action && isMoving ) 
    357343        { 
    358344                move pelvis to y-axis [-0.300000] now; 
     
    370356} 
    371357 
    372 MotionControl(moving, aiming, justmoved) 
    373 { 
    374         justmoved = TRUE; 
    375         while( TRUE ) 
    376         { 
    377                 moving = bMoving; 
    378                 aiming = bAiming; 
    379                 if( moving ) 
    380                 { 
    381                         if( aiming ) 
    382                         { 
    383                                 Static_Var_3 = 1; 
    384                                 call-script walklegs(); 
    385                         } 
    386                         if( !aiming ) 
    387                         { 
    388                                 Static_Var_3 = 0; 
    389                                 call-script walk(); 
    390                         } 
    391                         justmoved = TRUE; 
    392                 } 
    393                 if( !moving ) 
    394                 { 
    395                         Static_Var_3 = 1; 
    396                         if( justmoved ) 
    397                         { 
    398                                 move pelvis to y-axis [0.000000] speed [1.000000]; 
    399                                 turn rthigh to x-axis <0.000000> speed <200.043956>; 
    400                                 turn rleg to x-axis <0.000000> speed <200.043956>; 
    401                                 turn lthigh to x-axis <0.000000> speed <200.043956>; 
    402                                 turn lleg to x-axis <0.000000> speed <200.043956>; 
    403                                 if( !aiming ) 
    404                                 { 
    405                                         turn torso to x-axis <0.000000> speed <90.021978>; 
    406                                 } 
    407                                 justmoved = FALSE; 
    408                         } 
     358RestoreLegs() { 
     359        move pelvis to y-axis [0.000000] speed [1.000000]; 
     360        turn rthigh to x-axis <0.000000> speed <200.043956>; 
     361        turn rleg to x-axis <0.000000> speed <200.043956>; 
     362        turn lthigh to x-axis <0.000000> speed <200.043956>; 
     363        turn lleg to x-axis <0.000000> speed <200.043956>; 
     364} 
     365 
     366MotionControl() 
     367{ 
     368        while( 1 ) { 
     369                if (isMoving) { 
     370                        if (action) call-script WalkNoArms(); 
     371                        else call-script WalkArms(); 
     372                } else { 
     373                        call-script RestoreLegs(); 
    409374                        sleep 100; 
    410375                } 
     
    418383        hide lfirept; 
    419384        hide nanospray; 
    420         bMoving = FALSE; 
    421         bAiming = FALSE; 
    422         Static_Var_3 = 1; 
    423         Static_Var_4 = 0; 
     385        action = 0; 
     386        isMoving = 0; 
    424387        start-script MotionControl(); 
    425388        start-script AmphSpeed(); 
    426         //sleep 2000; 
    427         //emit-sfx 1024 from ground; 
    428 } 
    429  
    430 StartMoving() 
    431 { 
    432         bMoving = TRUE; 
    433 } 
    434  
    435 StopMoving() 
    436 { 
    437         bMoving = FALSE; 
    438 } 
    439  
    440 SweetSpot(piecenum) 
     389} 
     390 
     391StartMoving() { 
     392        turn nanolath to x-axis <-40> speed ARM_SPEED_PITCH; 
     393        turn biggun to x-axis <-62.5> speed ARM_SPEED_PITCH; 
     394        isMoving = 1; 
     395} 
     396 
     397StopMoving() { 
     398        isMoving = 0; 
     399} 
     400 
     401AimFromWeapon1(piecenum) 
    441402{ 
    442403        piecenum = torso; 
    443404} 
    444405 
    445 QueryNanoPiece(piecenum) 
    446 { 
    447         piecenum = nanospray; 
    448 } 
    449  
    450 RestorePosition() 
    451 { 
    452         Static_Var_4 = 0; 
    453         turn torso to y-axis <0.000000> speed <90.000000>; 
    454         turn ruparm to x-axis <0.000000> speed <45.000000>; 
    455         turn luparm to x-axis <0.000000> speed <45.000000>; 
     406QueryWeapon1(piecenum) 
     407{ 
     408        piecenum = lfirept; 
     409} 
     410 
     411RestoreLaser(){ 
     412        sleep RESTORE_DELAY_LASER; 
     413        turn luparm to x-axis 0 speed ARM_SPEED_PITCH; 
     414        if (!action) turn torso to y-axis 0 speed TORSO_SPEED_YAW; 
     415        wait-for-turn luparm around x-axis; 
     416        wait-for-turn torso around y-axis; 
     417        action = action & (~ACT_LASER); 
     418} 
     419 
     420AimWeapon1(heading, pitch) 
     421{ 
     422        signal SIG_LASER; 
     423        set-signal-mask SIG_LASER; 
     424        action = action | ACT_LASER; 
     425        if (!(action & ACT_DGUN)) { 
     426                turn torso to y-axis heading speed TORSO_SPEED_YAW; 
     427        } 
     428        turn luparm to x-axis <0.000000> - pitch - <30> speed ARM_SPEED_PITCH; 
     429        wait-for-turn luparm around x-axis; 
     430        start-script RestoreLaser(); 
     431        return (1); 
     432} 
     433 
     434AimFromWeapon3(piecenum) 
     435{ 
     436        piecenum = torso; 
     437} 
     438 
     439QueryWeapon3(piecenum) 
     440{ 
     441        piecenum = rbigflash; 
     442} 
     443 
     444RestoreDgun(){ 
     445        sleep RESTORE_DELAY_DGUN; 
     446        turn ruparm to x-axis 0 speed ARM_SPEED_PITCH; 
     447        if (!action) turn torso to y-axis 0 speed TORSO_SPEED_YAW; 
     448        wait-for-turn ruparm around x-axis; 
     449        wait-for-turn torso around y-axis; 
     450        action = action & (~ACT_DGUN); 
     451} 
     452 
     453AimWeapon3(heading, pitch) 
     454{ 
     455        signal SIG_DGUN; 
     456        set-signal-mask SIG_DGUN; 
     457        action = action | ACT_DGUN; 
     458        turn torso to y-axis heading speed TORSO_SPEED_YAW; 
     459        turn ruparm to x-axis <0.000000> - pitch - <30> speed ARM_SPEED_PITCH; 
    456460        wait-for-turn torso around y-axis; 
    457461        wait-for-turn ruparm around x-axis; 
    458         wait-for-turn luparm around x-axis; 
    459         bAiming = FALSE; 
    460 } 
    461  
    462 AimFromPrimary(piecenum) 
     462        start-script RestoreDgun(); 
     463        return (1); 
     464} 
     465 
     466FireWeapon3() { 
     467        show rbigflash; 
     468        hide rbigflash; 
     469} 
     470 
     471StopBuilding(){ 
     472        set INBUILDSTANCE to 0; 
     473        if (!(action & ACT_LASER)) turn luparm to x-axis 0 speed ARM_SPEED_PITCH; 
     474        if (!action) turn torso to y-axis 0 speed TORSO_SPEED_YAW; 
     475} 
     476 
     477StartBuilding(heading, pitch) { 
     478        if (!(action & ACT_LASER)) { 
     479                turn luparm to x-axis <0.000000> - pitch - <30> speed ARM_SPEED_PITCH; 
     480                if (!(action & ACT_DGUN)) turn torso to y-axis heading speed TORSO_SPEED_YAW; 
     481        } 
     482        set INBUILDSTANCE to 1; 
     483} 
     484 
     485QueryNanoPiece(piecenum) 
     486{ 
     487        piecenum = nanospray; 
     488} 
     489 
     490SweetSpot(piecenum) 
    463491{ 
    464492        piecenum = torso; 
    465493} 
    466  
    467 QueryPrimary(piecenum) 
    468 { 
    469         piecenum = lfirept; 
    470 } 
    471  
    472 AimPrimary(heading, pitch) 
    473 { 
    474         if( Static_Var_4 == 1 ) 
    475         { 
    476                 return (0); 
    477         } 
    478         signal SIG_AIM; 
    479         set-signal-mask SIG_AIM; 
    480         bAiming = TRUE; 
    481         while( !Static_Var_3 ) 
    482         { 
    483                 sleep 100; 
    484         } 
    485         turn torso to y-axis heading speed <300.000000>; 
    486         turn luparm to x-axis <0.000000> - pitch - <30> speed <180>; 
    487         wait-for-turn torso around y-axis; 
    488         wait-for-turn luparm around x-axis; 
    489         return (1); 
    490 } 
    491  
    492 FirePrimary() 
    493 { 
    494 } 
    495  
    496 AimFromTertiary(piecenum) 
    497 { 
    498         piecenum = torso; 
    499 } 
    500  
    501 QueryTertiary(piecenum) 
    502 { 
    503         piecenum = rbigflash; 
    504 } 
    505  
    506 AimTertiary(heading, pitch) 
    507 { 
    508         signal SIG_AIM; 
    509         set-signal-mask SIG_AIM; 
    510         Static_Var_4 = 1; 
    511         bAiming = TRUE; 
    512         while( !Static_Var_3 ) 
    513         { 
    514                 sleep 100; 
    515         } 
    516         turn torso to y-axis heading speed <300.000000>; 
    517         turn ruparm to x-axis <0.000000> - pitch - <30> speed <250>; 
    518         wait-for-turn torso around y-axis; 
    519         wait-for-turn ruparm around x-axis; 
    520         return (1); 
    521 } 
    522  
    523 FireTertiary() 
    524 { 
    525         show rbigflash; 
    526         sleep 100; 
    527         hide rbigflash; 
    528 } 
    529  
    530 StartBuilding(Func_Var_1, Func_Var_2) 
    531 { 
    532         bAiming = TRUE; 
    533         while( !Static_Var_3 ) 
    534         { 
    535                 sleep 100; 
    536         } 
    537         turn torso to y-axis Func_Var_1 speed <300.071429>; 
    538         turn luparm to x-axis <0.000000> - Func_Var_2 - <30> speed <45.010989>; 
    539         wait-for-turn torso around y-axis; 
    540         wait-for-turn luparm around x-axis; 
    541         set INBUILDSTANCE to 1; 
    542 } 
    543  
    544 TargetCleared(Func_Var_1) 
    545 { 
    546         signal SIG_AIM; 
    547         set-signal-mask SIG_AIM; 
    548         call-script RestorePosition(); 
    549 } 
    550  
    551 StopBuilding() 
    552 { 
    553         set INBUILDSTANCE to 0; 
    554         signal SIG_AIM; 
    555         set-signal-mask SIG_AIM; 
    556         call-script RestorePosition(); 
    557 }