Legacy:ProjectX/Code - Unreal Wiki

# Legacy:ProjectX/Code

### From Unreal Wiki, The Unreal Engine Documentation Site

< Legacy:ProjectX

Ok here is where you will see a lot of code that dont work cos im a n00b at coding, if u can please tell me what ive dun wrong and tell me how to crrect id be really greatful.

When i load the new bulldog in a level, it appears, but when i walk up to it, and press [use] i cant get in it. The code i've changed is:

1. #exec OBJ LOAD FILE=..\staticmeshes\BulldogMeshes.usx
2. #exec OBJ LOAD FILE=..\sounds\WeaponSounds.uax
3. #exec OBJ LOAD FILE=..\textures\VehicleFX.utx
5. class Betterbulldog extends KCar
6. placeable;
8. // triggers used to get into the Bulldog
9. var const vector FrontTriggerOffset;
10. var BulldogTrigger FLTrigger, FRTrigger, FlipTrigger;
13. // headlight projector
14. var const vector HeadlightOffset;
15. var BulldogHeadlight Headlight;
16. var bool HeadlightOn;
18. // Light materials
19. var Material ReverseMaterial;
20. var Material BrakeMaterial;
21. var Material TailOffMaterial;
23. var Material HeadlightOnMaterial;
24. var Material HeadlightOffMaterial;
26. var BulldogHeadlightCorona HeadlightCorona[8];
27. var (Bulldog) vector HeadlightCoronaOffset[8];
29. // Used to prevent triggering sounds continuously
30. var float UntilNextImpact;
32. // Wheel dirt emitter
33. var BulldogDust Dust[4]; // FL, FR, RL, RR
35. // Distance below centre of tire to place dust.
36. var float DustDrop;
38. // Ratio between dust kicked up and amount wheels are slipping
39. var (Bulldog) float DustSlipRate;
40. var (Bulldog) float DustSlipThresh;
42. // Maximum speed at which you can get in the vehicle.
43. var (Bulldog) float TriggerSpeedThresh;
44. var bool TriggerState; // true for on, false for off.
45. var bool FlipTriggerState;
47. // Destroyed Buggy
48. var (Bulldog) class<Actor> DestroyedEffect;
49. var (Bulldog) sound DestroyedSound;
51. // Weapon
52. var float FireCountdown;
53. var float SinceLastTargetting;
54. var Pawn CurrentTarget;
56. var (Bulldog) float FireInterval;
57. var (Bulldog) float TargettingInterval;
58. var (Bulldog) vector RocketFireOffset; // Position (car ref frame) that rockets are launched from
59. var (Bulldog) float TargettingRange;
60. var (Bulldog) Material TargetMaterial;
63. // Bulldog sound things
64. var (Bulldog) float EnginePitchScale;
65. var (Bulldog) sound BulldogStartSound;
66. var (Bulldog) sound BulldogIdleSound;
67. var (Bulldog) float HitSoundThreshold;
68. var (Bulldog) sound BulldogSquealSound;
69. var (Bulldog) float SquealVelThresh;
70. var (Bulldog) sound BulldogHitSound;
72. var (Bulldog) String BulldogStartForce;
73. var (Bulldog) String BulldogIdleForce;
74. var (Bulldog) String BulldogSquealForce;
75. var (Bulldog) String BulldogHitForce;
77. replication
78. {
79. reliable if(Role == ROLE_Authority)
80. HeadlightOn, CurrentTarget;
81. }
83. function PreBeginPlay()
84. {
85. Super.PreBeginPlay();
86. if ( Level.IsDemoBuild() )
87. Destroy();
88. }
90. simulated function PostNetBeginPlay()
91. {
92. local vector RotX, RotY, RotZ;
93. local int i;
95. Super.PostNetBeginPlay();
97. GetAxes(Rotation,RotX,RotY,RotZ);
99. // Only have triggers on server
100. if(Level.NetMode != NM_Client)
101. {
102. // Create triggers for gettting into the Bulldog
103. FLTrigger = spawn(class'BetterbulldogTrigger', self,, Location + FrontTriggerOffset.X * RotX + FrontTriggerOffset.Y * RotY + FrontTriggerOffset.Z * RotZ);
104. FLTrigger.SetBase(self);
105. FLTrigger.SetCollision(true, false, false);
107. FRTrigger = spawn(class'BetterbulldogTrigger', self,, Location + FrontTriggerOffset.X * RotX - FrontTriggerOffset.Y * RotY + FrontTriggerOffset.Z * RotZ);
108. FRTrigger.SetBase(self);
109. FRTrigger.SetCollision(true, false, false);
111. TriggerState = true;
113. // Create trigger for flipping the bulldog back over.
114. FlipTrigger = spawn(class'BetterbulldogTrigger', self,, Location);
115. Fliptrigger.bCarFlipTrigger = true;
116. FlipTrigger.SetBase(self);
117. FlipTrigger.SetCollisionSize(350, 200);
118. FlipTrigger.SetCollision(false, false, false);
120. FlipTriggerState = false;
121. }
123. // Dont bother making emitters etc. on dedicated server
124. if(Level.NetMode != NM_DedicatedServer)
125. {
126. // Create headlight projector. We make sure it doesn't project on the vehicle itself.
127. Headlight = spawn(class'BulldogHeadlight', self,, Location + HeadlightOffset.X * RotX + HeadlightOffset.Y * RotY + HeadlightOffset.Z * RotZ);
128. Headlight.SetBase(self);
129. Headlight.SetRelativeRotation(rot(-2000, 32768, 0));
131. // Create wheel dust emitters.
132. Dust[0] = spawn(class'BulldogDust', self,, Location + WheelFrontAlong*RotX + WheelFrontAcross*RotY + (WheelVert-DustDrop)*RotZ);
133. Dust[0].SetBase(self);
135. Dust[1] = spawn(class'BulldogDust', self,, Location + WheelFrontAlong*RotX - WheelFrontAcross*RotY + (WheelVert-DustDrop)*RotZ);
136. Dust[1].SetBase(self);
138. Dust[2] = spawn(class'BulldogDust', self,, Location + WheelRearAlong*RotX + WheelRearAcross*RotY + (WheelVert-DustDrop)*RotZ);
139. Dust[2].SetBase(self);
141. Dust[3] = spawn(class'BulldogDust', self,, Location + WheelRearAlong*RotX - WheelRearAcross*RotY + (WheelVert-DustDrop)*RotZ);
142. Dust[3].SetBase(self);
144. // Set light materials
145. Skins[1]=BrakeMaterial;
146. Skins[2]=HeadlightOffMaterial;
148. // Spawn headlight coronas
149. for(i=0; i<8; i++)
150. {
151. HeadlightCorona[i] = spawn(class'BulldogHeadlightCorona', self,, Location + (HeadlightCoronaOffset[i] >> Rotation) );
152. HeadlightCorona[i].SetBase(self);
153. }
154. }
156. // For KImpact event
157. KSetImpactThreshold(HitSoundThreshold);
159. // If this is not 'authority' version - don't destroy it if there is a problem.
160. // The network should sort things out.
161. if(Role != ROLE_Authority)
162. {
163. KarmaParams(KParams).bDestroyOnSimError = False;
164. KarmaParams(frontLeft.KParams).bDestroyOnSimError = False;
165. KarmaParams(frontRight.KParams).bDestroyOnSimError = False;
166. KarmaParams(rearLeft.KParams).bDestroyOnSimError = False;
167. KarmaParams(rearRight.KParams).bDestroyOnSimError = False;
168. }
169. }
171. simulated event Destroyed()
172. {
173. local int i;
175. //Log("Betterbulldog Destroyed");
177. // Clean up random stuff attached to the car
178. if(Level.NetMode != NM_Client)
179. {
181. FLTrigger.Destroy();
182. FRTrigger.Destroy();
183. FlipTrigger.Destroy();
184. }
186. if(Level.NetMode != NM_DedicatedServer)
187. {
188. '''Headlight.Destroy();
190. for(i=0; i<4; i++)
191. Dust[i].Destroy();
193. for(i=0; i<8; i++)
194. HeadlightCorona[i].Destroy();'''
195. }
197. // This will destroy wheels & joints
198. Super.Destroyed();
200. // Trigger destroyed sound and effect
201. if(Level.NetMode != NM_DedicatedServer)
202. {
203. spawn(DestroyedEffect, self, , Location );
204. PlaySound(DestroyedSound);
205. }
206. }
208. function KImpact( actor other, vector pos, vector impactVel, vector impactNorm)
209. {
210. /* Only make noises for Bulldog-world impacts */
211. if(other != None)
212. return;
214. if(UntilNextImpact < 0)
215. {
216. //PlaySound(BulldogHitSound);
218. // hack to stop the sound repeating rapidly on impacts
219. //UntilNextImpact = GetSoundDuration(BulldogHitSound);
222. }
223. }
225. simulated function ClientKDriverEnter(PlayerController pc)
226. {
227. //Log("Bulldog ClientKDriverEnter");
229. Super.ClientKDriverEnter(pc);
230. }
232. function KDriverEnter( Pawn p)
233. {
234. //Log("Bulldog KDriverEnter");
236. Super.KDriverEnter(p);
238. //PlaySound(BulldogStartSound);
240. //AmbientSound=BulldogIdleSound;
242. p.bHidden = True;
243. ReceiveLocalizedMessage(class'Vehicles.BulldogMessage', 1);
244. }
246. simulated function ClientKDriverLeave(PlayerController pc)
247. {
248. //Log("Bulldog ClientKDriverLeave");
250. Super.ClientKDriverLeave(pc);
251. }
253. function bool KDriverLeave(bool bForceLeave)
254. {
255. local Pawn OldDriver;
257. //Log("Bulldog KDriverLeave");
259. OldDriver = Driver;
261. // If we succesfully got out of the car, make driver visible again.
262. if( Super.KDriverLeave(bForceLeave) )
263. {
264. OldDriver.bHidden = false;
265. AmbientSound = None;
266. return true;
267. }
268. else
269. return false;
270. }
272. function LaunchRocket(bool bWasAltFire)
273. {
274. local vector RotX, RotY, RotZ, FireLocation;
275. local BulldogRocket R;
276. local PlayerController PC;
278. // Client can't do firing
279. if(Role != ROLE_Authority)
280. return;
282. // Fire as many rockets as we have time to.
283. GetAxes(Rotation, RotX, RotY, RotZ);
284. FireLocation = Location + (RocketFireOffset >> Rotation);
286. while(FireCountdown <= 0)
287. {
288. if(!bWasAltFire)
289. {
290. // Fire a rocket at the current target (starts flying forward and up a bit)
292. R = spawn(class'Vehicles.BulldogRocket', self, , FireLocation, rotator(-1 * RotX + 0.2 * RotZ));
293. R.Seeking = CurrentTarget;
295. // Play firing noise
296. PlaySound( Sound'WeaponSounds.RocketLauncher.RocketLauncherFire', SLOT_None,,,,, false);
297. PC = PlayerController(Controller);
298. if (PC != None && PC.bEnableWeaponForceFeedback)
299. PC.ClientPlayForceFeedback("RocketLauncherFire");
300. }
301. else
302. {
303. //Log("Would AltFire At:"$CurrentTarget);
304. }
306. FireCountdown += FireInterval;
307. }
308. }
310. // Fire a rocket (if we've had time to reload!)
311. function VehicleFire(bool bWasAltFire)
312. {
313. Super.VehicleFire(bWasAltFire);
315. if(FireCountdown < 0)
316. {
317. FireCountdown = 0;
318. LaunchRocket(bWasAltFire);
319. }
320. }
322. // For drawing targetting reticule
323. simulated function DrawHud(Canvas C)
324. {
325. local int XPos, YPos;
326. local vector ScreenPos;
327. local float RatioX, RatioY;
328. local float tileX, tileY;
329. local float SizeX, SizeY, PosDotDir;
330. local vector CameraLocation, CamDir;
331. local rotator CameraRotation;
333. if(CurrentTarget == None)
334. return;
336. SizeX = 64.0;
337. SizeY = 64.0;
339. ScreenPos = C.WorldToScreen( CurrentTarget.Location );
341. // Dont draw reticule if target is behind camera
342. C.GetCameraLocation( CameraLocation, CameraRotation );
343. CamDir = vector(CameraRotation);
344. PosDotDir = (CurrentTarget.Location - CameraLocation) Dot CamDir;
345. if( PosDotDir < 0)
346. return;
348. RatioX = C.SizeX / 640.0;
349. RatioY = C.SizeY / 480.0;
351. tileX = sizeX * RatioX;
352. tileY = sizeY * RatioX;
354. XPos = ScreenPos.X;
355. YPos = ScreenPos.Y;
356. C.Style = ERenderStyle.STY_Additive;
357. C.DrawColor.R = 255;
358. C.DrawColor.G = 255;
359. C.DrawColor.B = 255;
360. C.DrawColor.A = 255;
361. C.SetPos(XPos - tileX*0.5, YPos - tileY*0.5);
362. C.DrawTile( TargetMaterial, tileX, tileY, 0.0, 0.0, 256, 256); //--- TODO : Fix HARDCODED USIZE
363. }
365. simulated function Tick(float Delta)
366. {
367. Local float BestAim, BestDist, TotalSlip, EnginePitch, VMag;
368. Local vector RotX, RotY, RotZ, FireLocation;
369. local pawn NewTarget;
370. local int i;
372. Super.Tick(Delta);
374. // Weapons (run on server and replicated to client)
375. if(Role == ROLE_Authority)
376. {
377. // Only put headlights on when driver is in. Save batteries!
378. if(Driver != None)
379. HeadlightOn=true;
380. else
381. HeadlightOn=false;
383. // Do targetting (do nothing if no controller)
384. SinceLastTargetting += Delta;
385. if(Controller != None && SinceLastTargetting > TargettingInterval)
386. {
387. GetAxes(Rotation, RotX, RotY, RotZ);
389. FireLocation = Location + (RocketFireOffset >> Rotation);
391. // BestAim is zero - so we will only target things in front of the buggy
392. BestAim = 0;
393. NewTarget = Controller.PickTarget(BestAim, BestDist, -1.0 * RotX, FireLocation, TargettingRange);
395. // If this is a new lock - play lock-on noise
396. if(NewTarget != CurrentTarget)
397. {
398. if(NewTarget == None)
399. PlayerController(Controller).ClientPlaySound( Sound'WeaponSounds.SeekLost');
400. else
401. PlayerController(Controller).ClientPlaySound( Sound'WeaponSounds.LockOn');
402. }
404. CurrentTarget = NewTarget;
405. SinceLastTargetting = 0;
406. }
408. // Countdown to next shot
409. FireCountdown -= Delta;
411. // This is for sustained barrages.
412. // Primary fire takes priority
413. if(bVehicleIsFiring)
414. LaunchRocket(false);
415. else if(bVehicleIsAltFiring)
416. LaunchRocket(true);
417. }
419. // Dont bother doing effects on dedicated server.
420. if(Level.NetMode != NM_DedicatedServer)
421. {
422. // Update brake light colors.
423. if(Gear == -1 && OutputBrake == false)
424. {
425. // REVERSE
426. Skins[1] = ReverseMaterial;
427. }
428. else if(Gear == 0 && OutputBrake == true)
429. {
430. // BRAKE
431. Skins[1] = BrakeMaterial;
432. }
433. else
434. {
435. // OFF
436. Skins[1] = TailOffMaterial;
437. }
439. // Set headlight projector state.
440. Headlight.DetachProjector();
441. if(HeadlightOn)
442. {
443. Headlight.AttachProjector();
444. Skins[2] = HeadlightOnMaterial;
445. for(i=0; i<8; i++)
446. HeadlightCorona[i].bHidden = false;
447. }
448. else
449. {
450. Skins[2] = HeadlightOffMaterial;
451. for(i=0; i<8; i++)
452. HeadlightCorona[i].bHidden = true;
453. }
455. // Update dust kicked up by wheels.
456. Dust[0].UpdateDust(frontLeft, DustSlipRate, DustSlipThresh);
457. Dust[1].UpdateDust(frontRight, DustSlipRate, DustSlipThresh);
458. Dust[2].UpdateDust(rearLeft, DustSlipRate, DustSlipThresh);
459. Dust[3].UpdateDust(rearRight, DustSlipRate, DustSlipThresh);
460. }
462. UntilNextImpact -= Delta;
464. // This assume the sound is an idle-ing sound, and increases with pitch
465. // as wheels speed up.
466. EnginePitch = 64 + ((WheelSpinSpeed/EnginePitchScale) * (255-64));
467. SoundPitch = FClamp(EnginePitch, 0, 254);
468. //Log("Engine Pitch:"$SoundPitch);
469. //SoundVolume = 255;
471. // Currently, just use rear wheels for slipping noise
472. TotalSlip = rearLeft.GroundSlipVel + rearRight.GroundSlipVel;
473. //log("TotalSlip:"$TotalSlip);
474. if(TotalSlip > SquealVelThresh)
475. {
476. rearLeft.AmbientSound = BulldogSquealSound;
477. }
478. else
479. {
480. rearLeft.AmbientSound = None;
481. }
483. // Dont have triggers on network clients.
484. if(Level.NetMode != NM_Client)
485. {
486. // If vehicle is moving, disable collision for trigger.
487. VMag = VSize(Velocity);
489. if(!bIsInverted && VMag < TriggerSpeedThresh && TriggerState == false)
490. {
491. FLTrigger.SetCollision(true, false, false);
492. FRTrigger.SetCollision(true, false, false);
493. TriggerState = true;
494. }
495. else if((bIsInverted || VMag > TriggerSpeedThresh) && TriggerState == true)
496. {
497. FLTrigger.SetCollision(false, false, false);
498. FRTrigger.SetCollision(false, false, false);
499. TriggerState = false;
500. }
502. // If vehicle is inverted, and slow, turn on big 'flip vehicle' trigger.
503. if(bIsInverted && VMag < TriggerSpeedThresh && FlipTriggerState == false)
504. {
505. FlipTrigger.SetCollision(true, false, false);
506. FlipTriggerState = true;
507. }
508. else if((!bIsInverted || VMag > TriggerSpeedThresh) && FlipTriggerState == true)
509. {
510. FlipTrigger.SetCollision(false, false, false);
511. FlipTriggerState = false;
512. }
513. }
514. }
516. // Really simple at the moment!
517. function TakeDamage(int Damage, Pawn instigatedBy, Vector hitlocation,
518. Vector momentum, class<DamageType> damageType)
519. {
520. // Avoid damage healing the car!
521. if(Damage < 0)
522. return;
524. if( damageType == class'DamTypeSuperShockBeam')
525. Health -= 100; // Instagib doesn't work on vehicles
526. else
527. Health -= 0.5 * Damage; // Weapons do less damage
529. // The vehicle is dead!
530. if(Health <= 0)
531. {
532. if ( Controller != None )
533. {
534. if( Controller.bIsPlayer )
535. {
536. ClientKDriverLeave(PlayerController(Controller)); // Just to reset HUD etc.
537. Controller.PawnDied(self); // This should unpossess the controller and let the player respawn
538. }
539. else
540. Controller.Destroy();
541. }
543. Destroy(); // Destroy the vehicle itself (see Destroyed below)
544. }
546. //KAddImpulse(momentum, hitlocation);
547. }
549. defaultproperties
550. {
551. DrawType=DT_StaticMesh
552. StaticMesh=StaticMesh'BulldogMeshes.Simple.S_Chassis'
554. Begin Object Class=KarmaParamsRBFull Name=KParams0
555. KInertiaTensor(0)=20
556. KInertiaTensor(1)=0
557. KInertiaTensor(2)=0
558. KInertiaTensor(3)=30
559. KInertiaTensor(4)=0
560. KInertiaTensor(5)=48
561. KCOMOffset=(X=0.8,Y=0.0,Z=-0.7)
562. KStartEnabled=True
563. KFriction=1.6
564. KLinearDamping=0
565. KAngularDamping=0
566. bKNonSphericalInertia=False
567. bHighDetailOnly=False
568. bClientOnly=False
569. bKDoubleTickRate=True
570. Name="KParams0"
571. End Object
572. KParams=KarmaParams'KParams0'
574. DrawScale=0.4
576. FrontTireClass=class'BulldogTire'
577. RearTireClass=class'BulldogTire'
579. WheelFrontAlong=-100
580. WheelFrontAcross=110
581. WheelRearAlong=115
582. WheelRearAcross=110
583. WheelVert=-15
585. DestroyedEffect=class'XEffects.RocketExplosion'
586. DestroyedSound=sound'WeaponSounds.P1RocketLauncherAltFire'
589. //FrontTriggerOffset=(X=174,Y=0,Z=20)
590. FrontTriggerOffset=(X=0,Y=165,Z=10)
592. TriggerSpeedThresh=40
594. HeadlightOffset=(X=-200,Y=0,Z=50)
595. HeadlightOn=false
597. // Light materials
598. ReverseMaterial=Material'VehicleFX.BDReverseLight_ON'
599. BrakeMaterial=Material'VehicleFX.BDTaiLight_ON'
600. TailOffMaterial=Material'VehicleFX.BDTailOff'
602. HeadlightOnMaterial=Material'VehicleFX.BDHeadlights_ON'
603. HeadlightOffMaterial=Material'VehicleFX.BDHeadlights'
605. HeadlightCoronaOffset(0)=(X=-199,Y=51,Z=57)
606. HeadlightCoronaOffset(1)=(X=-199,Y=-51,Z=57)
607. HeadlightCoronaOffset(2)=(X=-128,Y=38,Z=125)
608. HeadlightCoronaOffset(3)=(X=-189,Y=93,Z=28)
609. HeadlightCoronaOffset(4)=(X=-183,Y=-93,Z=26)
610. HeadlightCoronaOffset(5)=(X=-190,Y=-51,Z=77)
611. HeadlightCoronaOffset(6)=(X=-128,Y=63,Z=123)
612. HeadlightCoronaOffset(7)=(X=-185,Y=85,Z=10)
614. // Sounds
615. EnginePitchScale=655350
616. HitSoundThreshold=30
617. SquealVelThresh=15
619. DustSlipRate=2.8
620. DustSlipThresh=0.1
621. DustDrop=30
623. // Weaponary
624. bSpecialHUD=true
625. FireInterval=0.9
626. TargettingInterval=0.5
627. RocketFireOffset=(X=0,Y=0,Z=180)
628. TargettingRange=5000
629. TargetMaterial=Material'InterfaceContent.Hud.fbBombFocus'
632. // Driver positions
634. ExitPositions(0)=(X=0,Y=200,Z=100)
635. ExitPositions(1)=(X=0,Y=-200,Z=100)
636. ExitPositions(2)=(X=350,Y=0,Z=100)
637. ExitPositions(3)=(X=-350,Y=0,Z=100)
639. DrivePos=(X=-165,Y=0,Z=-100)
641. OutputBrake=1
642. Steering=0
643. Throttle=0
644. Gear=1
645. StopThreshold=40
647. MaxSteerAngle=3400
648. MaxBrakeTorque=55
650. TorqueCurve=(Points=((InVal=0,OutVal=270),(InVal=20000,OutVal=170),(InVal=300000,OutVal=0)))
651. TorqueSplit=0.5
652. SteerPropGap=500
653. SteerTorque=15000
654. SteerSpeed=20000
656. TireMass=0.5
657. ChassisMass=8
659. TireRollFriction=1.5
660. TireLateralFriction=1.5
661. TireRollSlip=0.06
662. TireLateralSlip=0.04
663. TireMinSlip=0.001
664. TireSlipRate=0.007
665. TireSoftness=0.0
666. TireAdhesion=0
667. TireRestitution=0
669. HandbrakeThresh=1000
670. TireHandbrakeSlip=0.2
671. TireHandbrakeFriction=-1.2
673. SuspStiffness=150
674. SuspDamping=14.5
675. SuspHighLimit=0.5
676. SuspLowLimit=-0.5
677. SuspRef=0
679. AirSpeed = 5000
681. Health=300
683. // sound
684. SoundRadius=255
686. UntilNextImpact=500
687. }
688. </uscript lines>
689. Pz. help.
691. '''EntropicLqd:''' Is this in a new class? Any reason why you didn't post the whole code segment?
693. '''ProjectX:''' It's a modification of the bulldog, so it has lower acceleration and slightly higher speed, this is the only part i've changed so far, and this is the only part, therefore, where my problem will be.
695. '''ZxAnPhOrIaN:''' I am a n00b at uscripting also.. Look at my new map component at the open source area. It is a multi skybox zone thing similar to slickwilly's UT one, but more "user(or n00b)-friendly". And its for UT2003!
696. '''AlphaOne:''' What happens when you try to run this codes? Does it actually compile?
697. '''ProjectX:''' It compiles fine in UCC make and it appears in-game, i just cant enter it, thats the only thing wrong.
698. '''ProjectX:''' I've found the problem, i forgot to change one of the class names in bulldog trigger. My new problem is now occurring (isn't debugging fun!?!?!?) Its in the uscript section above and heres the error i get in UCC MAKE: Error, type mismatch in '='. Ok, the line is line 292 in the script.
699. '''ProjectX:''' Does anyone know what's wrong?
700. '''AlphaOne:''' You must be really frustrated with this!? Before I try to help you, I would like to know if you modified the '''actuall''' bulldog code or created a subclass of a bulldog? If you modified the original bulldog, then you shouldn't be doing that. Really. That's why most of the original game code says that if you modify it you'll have problems. You either subclass the bulldog, or copy+pase the bulldog code into your own version of the bulldog. You can find how to [[Create A Subclass]] here. Alternatively, you can totally recreate your own bulldog, by creating a new package, creating classes MyBulldog and MyBulldogTires. Then fool around with those variables. The first step is easier (I think). When you subclass the bulldog, only include (in the defaultproperties) those variables that you've changed. If you don't know Object Oriented Programming (OOP), then you should search the net or this site for more info. It is the key to programming in UScript. I hope that helps.
701. '''ProjectX:''' I copied the script to my own folder and compiled with UCC Make, changing the name to "betterbulldog"
702. '''ProjectX:''' so ure all as infuriatingly n00bish as me/ have other stuff to do/ dont like me?
703. '''ProjectX:''' I know this is a lot of code for you to help me with, but this is my first time at coding and if i dont get help now you may forever lose out on some great random insanity (like Food Fight UT2K3 not copyrighted in anyway, i would love to see this idea made)and anyway, the problem is only with 1 line of code, though i recognise that it may be due to another line of code somewhere else.
704. '''Mychaeel:''' What's your problem with that code, again? Compiler error in line 292?
705. '''EntropicLqd:''' Bah - beat me to it.
706. '''Daid303:''' Uh, can't find anything that wrong with line 292. Are you really really sure that this is YOUR code, and that that is the Right error?
707. '''Mychaeel:''' Do you happen to have your ''own'' version of class BulldogRocket in your package? Then that class and class Vehicles.BulldogRocket would indeed mismatch.
708. '''ProjectX:''' That could be it, i shall check
709. '''MythOpus:''' As you may or may not know... line ' 292 ' refers to the class that shoots the rocket. Are you sure you have changed this to the class you have? Ex- Vehicles.OriginalBulldogFire to MyPackage.MyClassFire ?
711. '''Foxpaw:''' I decided to pore over this and figure out "what's down with that." :P
713. This is a part that doesn't work. It may have been an error in the copying, but other than this it compiled fine. (Actually I didn't have any betterbulldogtriggers so I just substituted them for regular bulldog triggers and made it so you can enter an empty betterbulldog by shooting it.. but you would probrably like to retain the method you have now.
714. <uscript>
715. '''Headlight.Destroy();
717. for(i=0; i<4; i++)
718. Dust[i].Destroy();
720. for(i=0; i<8; i++)
721. HeadlightCorona[i].Destroy();'''

''' specifies a name constant, and obviously, is an invalid one.

Other than the bit above, it compiled and drove fine. It flips a lot less than the regular bulldog too.

##### Views

- Legacy
- Discussion
- Current revision

##### Search