Changeset 1978
- Timestamp:
- 05/18/08 19:03:11 (8 months ago)
- Location:
- trunk/mods/ca/scripts
- Files:
-
- 2 modified
-
armcom.bos (modified) (28 diffs)
-
armcom.cob (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
trunk/mods/ca/scripts/armcom.bos
r1725 r1978 8 8 lthigh, rthigh, nanolath, biggun, rleg, lleg, ground; 9 9 10 static-var bMoving, bAiming, Static_Var_3, Static_Var_4;10 static-var action, isMoving; 11 11 12 12 // 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 25 WalkArms() 26 { 27 if( !action && isMoving ) 19 28 { 20 29 move pelvis to y-axis [-0.700000] now; … … 25 34 turn torso to y-axis <4.219780> now; 26 35 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; 30 37 turn rleg to x-axis <39.384615> now; 31 38 turn lleg to x-axis <41.846154> now; 32 39 sleep 40; 33 40 } 34 if( bMoving )41 if( !action && isMoving ) 35 42 { 36 43 turn torso to y-axis <3.868132> now; 37 44 turn ruparm to x-axis <-13.362637> now; 38 45 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 ) 43 49 { 44 50 move pelvis to y-axis [-0.550000] now; … … 49 55 turn ruparm to x-axis <-8.087912> now; 50 56 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;53 57 turn rleg to x-axis <51.686813> now; 54 58 turn lleg to x-axis <28.483516> now; 55 59 sleep 100; 56 60 } 57 if( bMoving )61 if( !action && isMoving ) 58 62 { 59 63 move pelvis to y-axis [-0.300000] now; … … 64 68 turn ruparm to x-axis <-3.159341> now; 65 69 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;68 70 turn rleg to x-axis <58.016484> now; 69 71 turn lleg to x-axis <16.175824> now; 70 72 sleep 90; 71 73 } 72 if( bMoving )74 if( !action && isMoving ) 73 75 { 74 76 move pelvis to y-axis [0.000000] now; … … 79 81 turn ruparm to x-axis <3.164835> now; 80 82 turn luparm to x-axis <-6.329670> now; 81 turn nanolath to x-axis <-41.846154> now;82 83 turn rleg to x-axis <44.307692> now; 83 84 turn lleg to x-axis <5.626374> now; 84 85 sleep 90; 85 86 } 86 if( bMoving )87 if( !action && isMoving ) 87 88 { 88 89 move pelvis to y-axis [-0.200000] now; … … 93 94 turn ruparm to x-axis <6.681319> now; 94 95 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;97 96 turn rleg to x-axis <71.384615> now; 98 97 turn lleg to x-axis <20.043956> now; 99 98 sleep 80; 100 99 } 101 if( bMoving )100 if( !action && isMoving ) 102 101 { 103 102 move pelvis to y-axis [-0.300000] now; … … 110 109 sleep 70; 111 110 } 112 if( bMoving )111 if( !action && isMoving ) 113 112 { 114 113 move pelvis to y-axis [-0.400000] now; … … 119 118 turn ruparm to x-axis <10.197802> now; 120 119 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;123 120 turn rleg to x-axis <34.461538> now; 124 121 turn lleg to x-axis <20.043956> now; 125 122 sleep 80; 126 123 } 127 if( bMoving )124 if( !action && isMoving ) 128 125 { 129 126 move pelvis to y-axis [-0.700000] now; … … 134 131 turn ruparm to x-axis <11.252747> now; 135 132 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;138 133 turn rleg to x-axis <40.439560> now; 139 134 turn lleg to x-axis <30.587912> now; 140 135 sleep 40; 141 136 } 142 if( bMoving )137 if( !action && isMoving ) 143 138 { 144 139 turn ruparm to x-axis <13.362637> now; 145 140 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 ) 151 144 { 152 145 move pelvis to y-axis [-0.550000] now; … … 157 150 turn ruparm to x-axis <8.439560> now; 158 151 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;161 152 turn lleg to x-axis <43.950549> now; 162 153 sleep 100; 163 154 } 164 if( bMoving )155 if( !action && isMoving ) 165 156 { 166 157 move pelvis to y-axis [-0.300000] now; … … 171 162 turn ruparm to x-axis <3.159341> now; 172 163 turn luparm to x-axis <-3.164835> now; 173 turn biggun to x-axis <-62.593407> now;174 164 turn lleg to x-axis <54.500000> now; 175 165 sleep 90; 176 166 } 177 if( bMoving )167 if( !action && isMoving ) 178 168 { 179 169 move pelvis to y-axis [0.000000] now; … … 184 174 turn ruparm to x-axis <-3.164835> now; 185 175 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;188 176 turn rleg to x-axis <8.082418> now; 189 177 turn lleg to x-axis <60.483516> now; 190 178 sleep 80; 191 179 } 192 if( bMoving )180 if( !action && isMoving ) 193 181 { 194 182 move pelvis to y-axis [-0.200000] now; … … 199 187 turn ruparm to x-axis <-6.675824> now; 200 188 turn luparm to x-axis <8.791209> now; 201 turn biggun to x-axis <-62.593407> now;202 189 turn rleg to x-axis <26.021978> now; 203 190 turn lleg to x-axis <56.263736> now; 204 191 sleep 80; 205 192 } 206 if( bMoving )193 if( !action && isMoving ) 207 194 { 208 195 move pelvis to y-axis [-0.300000] now; … … 222 209 turn ruparm to x-axis <-8.785714> now; 223 210 turn luparm to x-axis <10.197802> now; 224 turn biggun to x-axis <-62.593407> now;225 211 turn lleg to x-axis <25.670330> now; 226 212 sleep 80; 227 213 } 228 214 229 walklegs()230 { 231 if( bMoving )215 WalkNoArms() 216 { 217 if( action && isMoving ) 232 218 { 233 219 move pelvis to y-axis [-0.700000] now; … … 240 226 sleep 40; 241 227 } 242 if( bMoving )243 { 244 sleep 40; 245 } 246 if( bMoving )228 if( action && isMoving ) 229 { 230 sleep 40; 231 } 232 if( action && isMoving ) 247 233 { 248 234 move pelvis to y-axis [-0.550000] now; … … 254 240 sleep 100; 255 241 } 256 if( bMoving )242 if( action && isMoving ) 257 243 { 258 244 move pelvis to y-axis [-0.300000] now; … … 264 250 sleep 90; 265 251 } 266 if( bMoving )252 if( action && isMoving ) 267 253 { 268 254 move pelvis to y-axis [0.000000] now; … … 274 260 sleep 90; 275 261 } 276 if( bMoving )262 if( action && isMoving ) 277 263 { 278 264 move pelvis to y-axis [-0.200000] now; … … 284 270 sleep 80; 285 271 } 286 if( bMoving )272 if( action && isMoving ) 287 273 { 288 274 move pelvis to y-axis [-0.300000] now; … … 292 278 sleep 70; 293 279 } 294 if( bMoving )280 if( action && isMoving ) 295 281 { 296 282 move pelvis to y-axis [-0.400000] now; … … 302 288 sleep 80; 303 289 } 304 if( bMoving )290 if( action && isMoving ) 305 291 { 306 292 move pelvis to y-axis [-0.700000] now; … … 312 298 sleep 40; 313 299 } 314 if( bMoving )315 { 316 sleep 40; 317 } 318 if( bMoving )300 if( action && isMoving ) 301 { 302 sleep 40; 303 } 304 if( action && isMoving ) 319 305 { 320 306 move pelvis to y-axis [-0.550000] now; … … 325 311 sleep 100; 326 312 } 327 if( bMoving )313 if( action && isMoving ) 328 314 { 329 315 move pelvis to y-axis [-0.300000] now; … … 334 320 sleep 90; 335 321 } 336 if( bMoving )322 if( action && isMoving ) 337 323 { 338 324 move pelvis to y-axis [0.000000] now; … … 344 330 sleep 80; 345 331 } 346 if( bMoving )332 if( action && isMoving ) 347 333 { 348 334 move pelvis to y-axis [-0.200000] now; … … 354 340 sleep 80; 355 341 } 356 if( bMoving )342 if( action && isMoving ) 357 343 { 358 344 move pelvis to y-axis [-0.300000] now; … … 370 356 } 371 357 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 } 358 RestoreLegs() { 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 366 MotionControl() 367 { 368 while( 1 ) { 369 if (isMoving) { 370 if (action) call-script WalkNoArms(); 371 else call-script WalkArms(); 372 } else { 373 call-script RestoreLegs(); 409 374 sleep 100; 410 375 } … … 418 383 hide lfirept; 419 384 hide nanospray; 420 bMoving = FALSE; 421 bAiming = FALSE; 422 Static_Var_3 = 1; 423 Static_Var_4 = 0; 385 action = 0; 386 isMoving = 0; 424 387 start-script MotionControl(); 425 388 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 391 StartMoving() { 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 397 StopMoving() { 398 isMoving = 0; 399 } 400 401 AimFromWeapon1(piecenum) 441 402 { 442 403 piecenum = torso; 443 404 } 444 405 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>; 406 QueryWeapon1(piecenum) 407 { 408 piecenum = lfirept; 409 } 410 411 RestoreLaser(){ 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 420 AimWeapon1(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 434 AimFromWeapon3(piecenum) 435 { 436 piecenum = torso; 437 } 438 439 QueryWeapon3(piecenum) 440 { 441 piecenum = rbigflash; 442 } 443 444 RestoreDgun(){ 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 453 AimWeapon3(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; 456 460 wait-for-turn torso around y-axis; 457 461 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 466 FireWeapon3() { 467 show rbigflash; 468 hide rbigflash; 469 } 470 471 StopBuilding(){ 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 477 StartBuilding(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 485 QueryNanoPiece(piecenum) 486 { 487 piecenum = nanospray; 488 } 489 490 SweetSpot(piecenum) 463 491 { 464 492 piecenum = torso; 465 493 } 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 }