Harry Potter and the Sorcerer's Stone (Windows, Mac OS Classic, Mac OS X)/Unused Scripts
This is a sub-page of Harry Potter and the Sorcerer's Stone (Windows, Mac OS Classic, Mac OS X).
Various Unreal Engine scripts for objects, characters, and functions. All of the scripts come from .u Unreal Engine archives.
Contents
- 1 Menu Scripts
- 2 People
- 3 Interactive Objects
- 4 Static Objects
- 4.1 BedDudley
- 4.2 TV
- 4.3 Toilet
- 4.4 PaintCans
- 4.5 GHallDumbleThrone
- 4.6 GHallSortHat
- 4.7 GHallSortHatStool
- 4.8 GHallBenchTable
- 4.9 GryfBed
- 4.10 GryfsmCauldron
- 4.11 GryfTrunk
- 4.12 ChristmasOrnamentBall
- 4.13 ChristmasOrnamentBird
- 4.14 Telescope
- 4.15 Sundial
- 4.16 CaveBug
- 4.17 ForbidForestTree
- 4.18 ForbidForestTreeMed
- 4.19 ForbidForestTreeSM
- 5 Spell Scripts
- 6 E3 Scripts
- 7 Leftover Unreal Scripts
- 8 Miscellanous
Menu Scripts
FEOptionsPage
A large script for the options menu contains two unused functions: Mouse Smoothing and Difficulty.
/***************Not Used**************************/ MouseSmoothText="Mouse Smoothing"; DifficultyText="Difficulty"; DifficultyLevel[0]="Easy"; DifficultyLevel[1]="Medium"; DifficultyLevel[2]="Hard"; /***************Not Used**************************/ /* // Mouse label MouseLabel = UWindowLabelControl(CreateControl(class'UWindowLabelControl', ctlX-10, ctlY, ctlW, 1)); MouseLabel.SetText(MouseText); MouseLabel.SetFont(F_Normal); ctlY += 25; */ /* // Mouse Smoothing MouseSmoothCheck = UWindowCheckbox(CreateControl(class'UWindowCheckbox', ctlX, ctlY, ctlW, 1)); MouseSmoothCheck.bChecked = GetPlayerOwner().bMaxMouseSmoothing; MouseSmoothCheck.SetText(MouseSmoothText); MouseSmoothCheck.SetFont(F_Normal); MouseSmoothCheck.Align = TA_Right; ctlY += 25; */ /* // Difficulty DifficultyCombo = UWindowComboControl(CreateControl(class'UWindowComboControl', ctlX, ctlY, ctlW, 1)); DifficultyCombo.SetText(DifficultyText); DifficultyCombo.SetFont(F_Normal); DifficultyCombo.SetEditable(False); DifficultyCombo.EditBoxWidth = 100; ctlY += 25; DifficultyCombo.AddItem(DifficultyLevel[0]); DifficultyCombo.AddItem(DifficultyLevel[1]); DifficultyCombo.AddItem(DifficultyLevel[2]); */ /* function difficultyChanged() { switch (difficultyCombo.GetSelectedIndex()) { case 0: GetPlayerOwner().Difficulty = DifficultyEasy; break; case 1: GetPlayerOwner().Difficulty = DifficultyMedium; break; case 2: GetPlayerOwner().Difficulty = DifficultyHard; break; } } */ /* case difficultyCombo: difficultyChanged(); break; */
FELoadPage
This line of code was used to display the menu tabs seen in the demo.
// not needed anymore FEBook(book).ShowTabs(true); //show book tabs now that game has started
HPConsole
An old version of the OpenBook script can be found in HPConsole.
/* function ShowMenuBook (optional string selectPage) //replaced by FEBook.OpenBook(optional string page); { // Take a snapshot of the screen, for a possible save game: viewport.Actor.ConsoleCommand("Snap 3"); //Viewport.Actor.Level.screenShot = Viewport.Actor.Level.CreateTextureFromScreenShot (Viewport); if (bLocked) return; bQuickKeyEnable = False; LaunchUWindow(); if (selectPage != "") menuBook.ChangePageNamed(selectPage); } */
FEStoryBookPage
A large portion of this script was commented out.
//*********************************************************************************************** function bool KeyEvent( byte/*EInputKey*/ Key, byte/*EInputAction*/ Action, FLOAT Delta ) { //All right, smeg all of this... //if(Action==1/*IST_Press*/ && Key==0x1b/*IK_Escape*/) //{ // //All right, go back to the menu, and let the menu know that it came from the StoryBook // if( GetLevel().TimeSeconds - _TimeSecondsSave > _MinTimeOnPage ) // { // //Welcome to hacksville, population me! // FEBook(book).bCameFromStoryBook = true; // root.console.Viewport.Actor.StopSound( , SLOT_Interact ); // FEBook(book).ChangePageNamed("REPORT"); // } // // return true; //} //else //if(Action==1/*IST_Press*/ && Key==0x20/*IK_Space*/) //{ // if( GetLevel().TimeSeconds - _TimeSecondsSave > _MinTimeOnPage // && iCurrentPage != 0 //dont allow skip past the first page. // ) // { // //If we allow page skipping, go to the next page, otherwise use space to skip the whole story book. // if( bAllowPageSkipping ) // GotoNextPage(); // else // SetStoryAndPage( iCurrentStory, NumStoryPages[ iCurrentStory ] ); // } // return true; //} if(Action==1/*IST_Press*/ && Key==0x1b/*IK_Escape*/) { //All right, go back to the menu, and let the menu know that it came from the StoryBook // if( bAllowPageSkipping // && GetLevel().TimeSeconds - _TimeSecondsSave > _MinTimeOnPage // && iCurrentPage != 0 //dont allow skip past the first page. // ) // { // SetStoryAndPage( iCurrentStory, NumStoryPages[ iCurrentStory ] ); // } return true; } else if(Action==1/*IST_Press*/ && Key==0x20/*IK_Space*/) { if( bAllowPageSkipping && GetLevel().TimeSeconds - _TimeSecondsSave > _MinTimeOnPage && iCurrentPage != 0 //dont allow skip past the first page. ) { GotoNextPage(); } return true; } else if(Action==1/*IST_Press*/ && Key==0x46/*IK_F*/) { if( bAllowPageSkipping ) { _bDoFastPageSkipping = true; _PageTimer = 0.25; } return true; } return false; }
hudSpellBook
A small test code was commented out of this script.
// test1=hudSpellButton(CreateWindow(class'hudSpellButton', 10, 10, 100, 100)); // test1.setText("Hello there"); // test1.spellBook=self; // test1.spellId=1;
PrivHud
A script listing the torn letter pieces as hud elements.
//============================================================================= // HPHud //============================================================================= class PrivHud extends baseHUD; #exec TEXTURE IMPORT NAME=LetterBackground1 FILE=TEXTURES\LetterBackground1.BMP GROUP="Icons" MIPS=ON #exec TEXTURE IMPORT NAME=LetterBackground2 FILE=TEXTURES\LetterBackground2.BMP GROUP="Icons" MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece1 FILE=TEXTURES\LetterPiece1.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece2 FILE=TEXTURES\LetterPiece2.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece3 FILE=TEXTURES\LetterPiece3.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece4 FILE=TEXTURES\LetterPiece4.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece5 FILE=TEXTURES\LetterPiece5.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece6 FILE=TEXTURES\LetterPiece6.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterPiece7 FILE=TEXTURES\LetterPiece7.BMP GROUP="Icons" FLAGS=2 MIPS=ON #exec TEXTURE IMPORT NAME=LetterIcon FILE=TEXTURES\LetterIcon.PCX GROUP="Icons" FLAGS=2 MIPS=ON #exec Font Import File=Textures\Lrgred.pcx Name=LargeRedFont var int numLetterTicks; var int numLetterPieces; function LetterAddPiece() { numLetterPieces++; //PlaySound(sound'HPSounds.letterSound', SLOT_Interact,0.5); LetterShow(); } function LetterShow() { numLetterTicks=160; //show for 160 ticks. (~2.5sec) } function LetterHide() { numLetterTicks=0; } function LetterReset() { numLetterPieces=0; numLetterTicks=0; } function DrawLetter(Canvas canvas) { local float w,h; local float fx,fy; local float x,y; local float bx,by; local Texture tex; if(numLetterTicks>0) { fx=(Canvas.SizeX/640.0); fy=(Canvas.SizeY/480.0); fx=1.0; fy=1.0; tex=Texture'LetterBackground1'; w=tex.USize; h=tex.VSize; bx=(Canvas.SizeX/2)-(w); by=(Canvas.SizeY/2)-(h/2); Canvas.SetPos(bx*fx, by*fy); Canvas.DrawIcon(tex,1.0); tex=Texture'LetterBackground2'; w=tex.USize; h=tex.VSize; x=(Canvas.SizeX/2); y=(Canvas.SizeY/2)-(h/2); Canvas.SetPos((bx+256)*fx, by*fy); Canvas.DrawIcon(tex,1.0); Canvas.style=2; if(numLetterPieces>0) { x=87;y=66; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece1',1.0); } if(numLetterPieces>1) { x=180;y=38; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece2',1.0); } if(numLetterPieces>2) { x=0;y=102; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece3',1.0); } if(numLetterPieces>3) { x=256;y=113; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece4',1.0); } if(numLetterPieces>4) { x=0;y=0; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece5',1.0); } if(numLetterPieces>5) { x=256;y=0; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece6',1.0); } if(numLetterPieces>6) { x=307;y=0; Canvas.SetPos((bx+x)*fx, (by+y)*fy); Canvas.DrawIcon(Texture'LetterPiece7',1.0); } Canvas.style=1; } Canvas.SetPos(Canvas.SizeX-68, Canvas.SizeY-36); Canvas.DrawIcon(Texture'LetterIcon',1.0); Canvas.SetPos(Canvas.SizeX-88, Canvas.SizeY-36); Canvas.DrawText(numLetterPieces, False); } simulated function PostBeginPlay() { Super.PostBeginPlay(); // ShowLetter(); } simulated function PostRender( canvas Canvas ) { HUDSetup(canvas); if ( PlayerPawn(Owner) != None ) { if ( PlayerPawn(Owner).PlayerReplicationInfo == None ) return; } DrawLetter(Canvas); DrawIconMessages(Canvas); } simulated function Tick(float DeltaTime) { if(numLetterTicks>0) numLetterTicks--; /* //Test the letter. if(numLetterTicks<=0) { LetterAddPiece(); if(numLetterPieces>7) LetterReset(); } */ }
People
skvernon
//=============================================================================== // [skvernon] //=============================================================================== class skvernon extends vernon; #exec MESH MODELIMPORT MESH=skvernonMesh MODELFILE=models\skvernon.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skvernonMesh X=0 Y=0 Z=50 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skvernonAnims ANIMFILE=models\skvernon.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skvernonMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skvernonMesh ANIM=skvernonAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skvernonAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skvernonTex0 FILE=TEXTURES\VERNON_SKIN00.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skvernonTex1 FILE=TEXTURES\VERNON_SKIN01.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skvernonMesh NUM=0 TEXTURE=skvernonTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=skvernonMesh NUM=1 TEXTURE=skvernonTex1 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: VERNON_SKIN00.bmp Path: H:\Art\Design\Character Development\Vernon // Original material [1] is [SKIN01] SkinIndex: 1 Bitmap: VERNON_SKIN01.bmp Path: H:\Art\Design\Character Development\Vernon
Vernon
/*------------------------------------------------------------------------------------------------------------------------ // Vernon, enemy of all that is true and good ------------------------------------------------------------------------------------------------------------------------*/ class Vernon extends baseChar; var int dialog1[10]; var int currentspeech; var name prevState; var rotator oldRot; var int yellcount; state yellAtHarry { begin: prevState=GetStateName(); playanim('look'); oldRot=rotation; turnto(p.location); SLEEP (5); sleep(5); if(yellCount==0) { //removed by cmp p.dialogResponse(05); yellCount=1; } else { if(yellCount==1) { //removed by cmp p.dialogResponse(06); yellcount++; } } gotostate('wait'); goto 'begin'; } function yellAt() { local sound step; step=speech[01]; PlaySound(step, SLOT_Talk,1.0, false, 1000.0, 0.9); gotostate('yellAtHarry'); } function DialogResponse(int dialogNum) { local sound step; step=speech[dialogNum]; PlaySound(step, SLOT_Talk,1.0, false, 1000.0, 0.9); } /* state faceHag { function Tick(float DeltaTime) { } begin: moveto(forcelocation); Disable( 'tick' ); loopanim('breath'); floop: turnto(forcedir); sleep(1.0); goto 'floop'; } */ state spottedharry { begin: // p.clientMessage("spotted harry"); gotostate('wait'); } state atStation { begin: disable('touch'); disable('tick'); // p.clientmessage("at station"); playAnim('sit'); SetPhysics(PHYS_Rotating); desiredRotation=(destP.rotation); loop: /* sleep(destP.aiData[stationNumber].pauseTime); // p.clientMessage("sleeptime "$destP.aiData[stationNumber].pauseTime); stationDestination=destP.aiData[stationNumber].stationDestination; pathType=destP.aiData[stationNumber].pathType; firstPath=destP.aiData[stationNumber].firstPath; // p.clientMessage("back to patrol"); gotostate('patrol'); */ sleep(1); goto 'loop'; } auto state wait { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } foreach allActors(class 'navigationPoint',navP) { destP=baseStation(navP); if(destP.Name==stationDestination) { break; } } foreach allActors(class 'navigationPoint',navP) { if(navp.Name==firstPath) { break; } } } begin: startup(); SetPhysics(PHYS_Rotating); disable('tick'); loopanim('look'); // p.clientmessage("in wait"); loop: PlaySound(speech[02], SLOT_Talk,1.0, false, 500.0, 0.9); sleep(6.01); goto 'loop'; } state patrol { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } foreach allActors(class 'navigationPoint',navP) { destP=baseStation(navP); if(destP.Name==stationDestination) { break; } } foreach allActors(class 'navigationPoint',navP) { if(navp.Name==firstPath) { break; } } } /* function touch (actor other) { if(other==destp) { gotostate('atstation'); } } */ Begin: Disable( 'Tick' ); Disable('Touch'); SetPhysics(PHYS_Walking); startup(); loopAnim('walk'); moveLoop: next=findPath(navP,stationDestination); // if(next!=none) // p.clientMessage("next is "$next); // if(navp!=none) // p.clientMessage("in patrol towards "$navp); do { moveTo(navP.location); sleep(0.005); }until(vsize(location-(navP.location))<50); if(destp==navP) { gotostate('atstation'); } navP=navigationPoint(next); next=none; goto 'moveLoop'; }
skpetunia
//=============================================================================== // [skpetunia] //=============================================================================== class skpetunia extends petunia; #exec MESH MODELIMPORT MESH=skpetuniaMesh MODELFILE=models\skpetunia.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skpetuniaMesh X=0 Y=0 Z=50 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skpetuniaAnims ANIMFILE=models\skpetunia.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skpetuniaMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skpetuniaMesh ANIM=skpetuniaAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skpetuniaAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skpetuniaTex0 FILE=TEXTURES\PETUNIA_Skin00.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skpetuniaTex1 FILE=TEXTURES\PETUNIA_Skin01.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skpetuniaTex2 FILE=TEXTURES\PETUNIA_Skin02.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skpetuniaTex3 FILE=TEXTURES\pdsponge_32.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skpetuniaMesh NUM=0 TEXTURE=skpetuniaTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=skpetuniaMesh NUM=1 TEXTURE=skpetuniaTex1 #EXEC MESHMAP SETTEXTURE MESHMAP=skpetuniaMesh NUM=2 TEXTURE=skpetuniaTex2 #EXEC MESHMAP SETTEXTURE MESHMAP=skpetuniaMesh NUM=3 TEXTURE=skpetuniaTex3 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: PETUNIA_Skin00.bmp Path: H:\Art\Design\Character Development\Petunia\PetuniaModel // Original material [1] is [SKIN01] SkinIndex: 1 Bitmap: PETUNIA_Skin01.bmp Path: H:\Art\Design\Character Development\Petunia\PetuniaModel // Original material [2] is [SKIN02.TWOSIDED] SkinIndex: 2 Bitmap: PETUNIA_Skin02.bmp Path: H:\Art\Design\Character Development\Petunia\PetuniaModel // Original material [3] is [SKIN03] SkinIndex: 3 Bitmap: pdsponge_32.bmp Path: \\Baker\HPotterPC\Art\Models\Objects\Dursley Props\Sponge
petunia
/*------------------------------------------------------------------------------------------------------------------------ // Petunia, enemy of all that is true and good ------------------------------------------------------------------------------------------------------------------------*/ class petunia extends baseChar; var int dialog1[10]; var int currentspeech; var int status; state spottedharry { } function yellAt() { local sound step; step=speech[01]; PlaySound(step, SLOT_Talk,1.0, false, 1000.0, 0.9); // turnto(p); } state atStation { begin: // p.clientmessage("at station"); loopAnim('scrub'); SetPhysics(PHYS_Rotating); desiredRotation=(destP.rotation); loop: sleep(destP.aiData[stationNumber].pauseTime); // p.clientMessage("sleeptime "$destP.aiData[stationNumber].pauseTime); stationDestination=destP.aiData[stationNumber].stationDestination; pathType=destP.aiData[stationNumber].pathType; firstPath=destP.aiData[stationNumber].firstPath; // p.clientMessage("back to patrol"); gotostate('patrol'); goto 'loop'; } auto state patrol { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } foreach allActors(class 'navigationPoint',navP) { destP=baseStation(navP); if(destP.Name==stationDestination) { break; } } foreach allActors(class 'navigationPoint',navP) { if(navp.Name==firstPath) { break; } } } Begin: Disable( 'Tick' ); SetPhysics(PHYS_Walking); startup(); loopAnim('walk'); moveLoop: next=findPath(navP,stationDestination); // if(next!=none) p.clientMessage("next is "$next); // if(navp!=none) p.clientMessage("in patrol towards "$navp); do { moveTo(navP.location); sleep(0.005); p.clientmessage("distance to navp is "$vsize(location-(navP.location))); }until(vsize(location-(navP.location))<50); if(destp==navP) { gotostate('atstation'); } navP=navigationPoint(next); next=none; goto 'moveLoop'; }
skdudley
//=============================================================================== // [skdudley] //=============================================================================== class skdudley extends dudley; #exec MESH MODELIMPORT MESH=skdudleyMesh MODELFILE=models\skdudley.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skdudleyMesh X=0 Y=0 Z=40 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skdudleyAnims ANIMFILE=models\skdudley.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skdudleyMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skdudleyMesh ANIM=skdudleyAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skdudleyAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skdudleyTex0 FILE=TEXTURES\Dudley_SKIN00.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skdudleyMesh NUM=0 TEXTURE=skdudleyTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: Dudley_SKIN00.bmp Path: \\Baker\HPotterPC\Art\Design\Character Development\Dudley #exec MESH WEAPONATTACH MESH=skdudleyMesh BONE="RightHand" #exec MESH WEAPONPOSITION MESH=skdudleyMesh YAW=0 PITCH=0 ROLL=10 X=0.0 Y=0.0 Z=0.0
Dudley
/*------------------------------------------------------------------------------------------------------------------------ Dudley, enemy of all that is true and good ------------------------------------------------------------------------------------------------------------------------*/ class Dudley extends baseChar; var int dialog1[10]; var int currentspeech; var name prevState; var rotator oldRot; var weapon weap; state yellAtHarry { begin: prevState=GetStateName(); playanim('look'); oldRot=rotation; turnto(p.location); SLEEP (5); gotostate(prevstate); goto 'begin'; } function yellAt() { local sound step; step=speech[01]; PlaySound(step, SLOT_Talk,1.0, false, 1000.0, 0.9); gotostate('yellAtHarry'); } function DialogResponse(int dialogNum) { local sound step; step=speech[dialogNum]; PlaySound(step, SLOT_Talk,1.0, false, 1000.0, 0.9); } /* state faceHag { function Tick(float DeltaTime) { } begin: moveto(forcelocation); Disable( 'tick' ); loopanim('breath'); floop: turnto(forcedir); sleep(1.0); goto 'floop'; } */ state spottedharry { begin: // p.clientMessage("spotted harry"); gotostate('wait'); } state atStation { begin: desiredRotation=(destP.rotation); loop: sleep(destP.aiData[stationNumber].pauseTime); // p.clientMessage("sleeptime "$destP.aiData[stationNumber].pauseTime); stationDestination=destP.aiData[stationNumber].stationDestination; pathType=destP.aiData[stationNumber].pathType; firstPath=destP.aiData[stationNumber].firstPath; // p.clientMessage("back to patrol"); gotostate('patrol'); sleep(1); goto 'loop'; } auto state wait { function startup() { local weapon weap; foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } foreach allActors(class 'navigationPoint',navP) { destP=baseStation(navP); if(destP.Name==stationDestination) { break; } } foreach allActors(class 'navigationPoint',navP) { if(navp.Name==firstPath) { break; } } PendingWeapon = spawn(class'RCTruckControl'); ChangedWeapon(); weap.WeaponSet(self); } begin: startup(); SetPhysics(PHYS_Rotating); disable('tick'); loopanim('smash'); loop: sleep(2.01); PendingWeapon = spawn(class'WTruck'); ChangedWeapon(); sleep(3); goto 'loop'; } state patrol { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } foreach allActors(class 'navigationPoint',navP) { destP=baseStation(navP); if(destP.Name==stationDestination) { break; } } foreach allActors(class 'navigationPoint',navP) { if(navp.Name==firstPath) { break; } } } function touch (actor other) { if(other==destp) { gotostate('atstation'); } } Begin: Disable( 'Tick' ); Enable('Touch'); SetPhysics(PHYS_Walking); startup(); loopAnim('walk'); moveLoop: next=findPath(navP,stationDestination); // if(next!=none) // p.clientMessage("next is "$next); // if(navp!=none) // p.clientMessage("in patrol towards "$navp); do { moveTo(navP.location); sleep(0.005); }until(vsize(location-(navP.location))<50); if(destp==navP) { gotostate('atstation'); } navP=navigationPoint(next); next=none; goto 'moveLoop'; } state takeRemote { function startTruck() { local truck t; foreach allactors(class'truck',t) { t.bHidden=false; t.gotostate('patrol'); break; } } begin: playanim('sit2stand'); startTruck(); loop: sleep(2); PendingWeapon = spawn(class'RCTruckControl'); ChangedWeapon(); weap.WeaponSet(self); gotostate('patrol'); }
skdevilharry
//=============================================================================== // [skdevilharry] //=============================================================================== class skdevilharry extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skdevilharryMesh MODELFILE=models\skdevilharry.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skdevilharryMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skdevilharryAnims ANIMFILE=models\skdevilharry.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skdevilharryMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skdevilharryMesh ANIM=skdevilharryAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skdevilharryAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skdevilharryTex0 FILE=TEXTURES\HARRY_SKIN00.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skdevilharryTex1 FILE=TEXTURES\HARRY_SKIN01.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skdevilharryTex2 FILE=TEXTURES\HARRY_SKIN03.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skdevilharryTex3 FILE=TEXTURES\HARRY_SKIN05.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skdevilharryTex4 FILE=TEXTURES\DEVILPLANT_SKIN02.bmp GROUP=Skins #exec MESH WEAPONATTACH MESH=skDevilHarryMesh BONE="RightHand" #exec MESH WEAPONPOSITION MESH=skDevilHarryMesh YAW=0 PITCH=0 ROLL=10 X=0.0 Y=0.0 Z=0.0 #EXEC MESHMAP SETTEXTURE MESHMAP=skdevilharryMesh NUM=0 TEXTURE=skdevilharryTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=skdevilharryMesh NUM=1 TEXTURE=skdevilharryTex1 #EXEC MESHMAP SETTEXTURE MESHMAP=skdevilharryMesh NUM=2 TEXTURE=skdevilharryTex2 #EXEC MESHMAP SETTEXTURE MESHMAP=skdevilharryMesh NUM=3 TEXTURE=skdevilharryTex3 #EXEC MESHMAP SETTEXTURE MESHMAP=skdevilharryMesh NUM=4 TEXTURE=skdevilharryTex4 #exec ANIM NOTIFY ANIM=skDevilHarryAnims SEQ=Cast TIME=0.1 FUNCTION=Cast // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: HARRY_SKIN00.bmp Path: \\Baker\HPotterPC\Art\Design\Character Development\Harry // Original material [1] is [SKIN01.TWOSIDED] SkinIndex: 1 Bitmap: HARRY_SKIN01.bmp Path: \\Baker\HPotterPC\Art\Design\Creatures\Devil's Snare // Original material [2] is [SKIN02.MASKED] SkinIndex: 2 Bitmap: HARRY_SKIN03.bmp Path: H:\Art\Design\Character Development\Harry\Textures // Original material [3] is [SKIN03] SkinIndex: 3 Bitmap: HARRY_SKIN05.bmp Path: H:\Art\Design\Creatures\Devil's Snare // Original material [4] is [SKIN04] SkinIndex: 4 Bitmap: DEVILPLANT_SKIN02.bmp Path: H:\Art\Design\Creatures\Devil's Snare
skSmallHarry
//=============================================================================== // [skSmallHarry] //=============================================================================== class skSmallHarry extends harry; #exec MESH MODELIMPORT MESH=skSmallharryMesh MODELFILE=models\skharry.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skSmallharryMesh X=0 Y=0 Z=150 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skSmallharryAnims ANIMFILE=models\skharry.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skSmallharryMesh X=0.3 Y=0.3 Z=0.3 #exec MESH DEFAULTANIM MESH=skSmallharryMesh ANIM=skSmallharryAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skSmallharryAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skSmallharryTex0 FILE=TEXTURES\HARRY_SKIN00t.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=skSmallharryTex1 FILE=TEXTURES\HARRY_SKIN01t.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skSmallharryMesh NUM=0 TEXTURE=skSmallharryTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=skSmallharryMesh NUM=1 TEXTURE=skSmallharryTex1 #EXEC MESHMAP SETTEXTURE MESHMAP=skSmallharryMesh NUM=2 TEXTURE=skharryTex2 #exec MESH WEAPONATTACH MESH=skSmallharryMesh BONE="RightHand" #exec MESH WEAPONPOSITION MESH=skSmallharryMesh YAW=0 PITCH=0 ROLL=10 X=0.0 Y=0.0 Z=0.0 #exec ANIM NOTIFY ANIM=skSmallharryAnims SEQ=Cast TIME=0.1 FUNCTION=Cast #exec ANIM NOTIFY ANIM=skSmallharryAnims SEQ=Run TIME=0.99 FUNCTION=PlayFootStep #exec ANIM NOTIFY ANIM=skSmallharryAnims SEQ=Run TIME=0.5 FUNCTION=PlayFootStep // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: HARRY_SKIN00t.bmp Path: \\Baker\HPotterPC\Art\Design\Character Development\Harry\Nathan'sTest // Original material [1] is [SKIN01.TWOSIDED] SkinIndex: 1 Bitmap: HARRY_SKIN01t.bmp Path: H:\Art\Design\Character Development\Harry // Original material [2] is [SKIN02.MASKED] SkinIndex: 2 Bitmap: HARRY_SKIN03.bmp Path: \\Baker\HPotterPC\Art\Design\Character Development\Harry\Nathan'sTest
Interactive Objects
MatchBox
//=============================================================================== // [MatchBox] //=============================================================================== class MatchBox extends HProps; #exec MESH MODELIMPORT MESH=MatchBoxMesh MODELFILE=models\MatchBox.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=MatchBoxMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=MatchBoxAnims ANIMFILE=models\MatchBox.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=MatchBoxMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=MatchBoxMesh ANIM=MatchBoxAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=MatchBoxAnims VERBOSE #EXEC TEXTURE IMPORT NAME=MatchBoxTex0 FILE=TEXTURES\matchbox_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=MatchBoxMesh NUM=0 TEXTURE=MatchBoxTex0 // Original material [0] is [Material #26] SkinIndex: 0 Bitmap: matchbox_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\General Objects auto state droptoground { begin: setphysics(Phys_falling); loop: sleep(5); goto 'loop'; }
WizardHat
//=============================================================================== // [WizardHat] //=============================================================================== class WizardHat extends HProps; #exec MESH MODELIMPORT MESH=WizardHatMesh MODELFILE=models\WizardHat.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=WizardHatMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=WizardHatAnims ANIMFILE=models\WizardHat.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=WizardHatMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=WizardHatMesh ANIM=WizardHatAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=WizardHatAnims VERBOSE #EXEC TEXTURE IMPORT NAME=WizardHatTex0 FILE=TEXTURES\wizardhat_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=WizardHatMesh NUM=0 TEXTURE=WizardHatTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: wizardhat_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\General Objects
skcanary
//=============================================================================== // [skcanary] //=============================================================================== class skcanary extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skcanaryMesh MODELFILE=models\skcanary.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skcanaryMesh X=0 Y=0 Z=2 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skcanaryAnims ANIMFILE=models\skcanary.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skcanaryMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skcanaryMesh ANIM=skcanaryAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skcanaryAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skcanaryTex0 FILE=TEXTURES\canary.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skcanaryMesh NUM=0 TEXTURE=skcanaryTex0 // Original material [0] is [Material #7] SkinIndex: 0 Bitmap: canary.bmp Path: H:\Art\Design\Creatures\Canary
canary
class canary extends baseChar; var rotator rotval; auto state pause { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } } begin: // PlaySound(sound 'HPSounds.Critters_sfx.s_canary_twip', SLOT_Interact, 1.0, false, 1000.0, 1.0); setPhysics(PHYS_walking); startup(); rotval=rotation; loopanim('idle'); lcloop: sleep(1.0); // if(abs(vsize(location-p.location))<100) // { gotostate('fly'); // } goto 'lcloop'; } state fly { ignores SeePlayer, HearNoise, KilledBy, Bump, HitWall, HeadZoneChange, FootZoneChange, ZoneChange, Falling, TakeDamage, PainTimer, Died; function tick(float Deltatime) { local vector offset; super.tick(deltatime); offset.x=100*deltatime; offset.z=100*deltatime; offset=offset>>rotation; rotval.yaw=rotval.yaw+(16000*deltatime); setrotation(rotval); if(!move(offset)) { destroy(); } } begin: loopanim('fly'); setphysics(phys_none); //PlaySound(sound 'HPSounds.Critters_sfx.s_canary_flap_loop', SLOT_Interact, 1.0, false, 500.0, 1.0); flyloop: sleep(1); if(abs(location.z-p.location.z)>1000) { destroy(); } }
tConProp
//=============================================================================== // [RCTruckControl] //=============================================================================== class tConProp extends baseChar; #exec MESH MODELIMPORT MESH=RCTruckControlMesh MODELFILE=models\RCTruckControl.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=RCTruckControlMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=RCTruckControlAnims ANIMFILE=models\RCTruckControl.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=RCTruckControlMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=RCTruckControlMesh ANIM=RCTruckControlAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=RCTruckControlAnims VERBOSE #EXEC TEXTURE IMPORT NAME=RCTruckControlTex0 FILE=TEXTURES\rccontol_64.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=RCTruckControlMesh NUM=0 TEXTURE=RCTruckControlTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: rccontol_64.bmp Path: D:\Harry Potter\A Lorian's Stuff\privet function float RateSelf( out int bUseAltMode ) { return 10; }
WTruck
There's a copy named Truck that combines this script and the Dudley script.
//=============================================================================== // [Truck] //=============================================================================== class WTruck extends Weapon; #exec MESH MODELIMPORT MESH=TruckMesh MODELFILE=models\Truck.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=TruckMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=TruckAnims ANIMFILE=models\Truck.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=TruckMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=TruckMesh ANIM=TruckAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=TruckAnims VERBOSE #EXEC TEXTURE IMPORT NAME=TruckTex0 FILE=TEXTURES\ambulanc_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=TruckMesh NUM=0 TEXTURE=TruckTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: ambulanc_128.bmp Path: H:\Art\Models\Objects\Dursley Props\Toys\Truck function float RateSelf( out int bUseAltMode ) { return -20; }
skwizardcracker
//=============================================================================== // [skwizardcracker] //=============================================================================== class skwizardcracker extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skwizardcrackerMesh MODELFILE=models\skwizardcracker.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skwizardcrackerMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skwizardcrackerAnims ANIMFILE=models\skwizardcracker.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skwizardcrackerMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skwizardcrackerMesh ANIM=skwizardcrackerAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skwizardcrackerAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skwizardcrackerTex0 FILE=TEXTURES\wzrdcrkr_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skwizardcrackerMesh NUM=0 TEXTURE=skwizardcrackerTex0 // Original material [0] is [CRACKER_SKIN00] SkinIndex: 0 Bitmap: wzrdcrkr_128.bmp Path: C:\Nathan
skgoldcauldron
//=============================================================================== // [skgoldcauldron] //=============================================================================== class skgoldcauldron extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skgoldcauldronMesh MODELFILE=models\skgoldcauldron.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skgoldcauldronMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skgoldcauldronAnims ANIMFILE=models\skgoldcauldron.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skgoldcauldronMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skgoldcauldronMesh ANIM=skgoldcauldronAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skgoldcauldronAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skgoldcauldronTex0 FILE=TEXTURES\flipcouldrongld_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skgoldcauldronMesh NUM=0 TEXTURE=skgoldcauldronTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: flipcouldrongld_128.bmp Path: C:\potter\ART\Objects\FLIPENDO\Flipendo Cauldrons
sksilvercauldron
//=============================================================================== // [sksilvercauldron] //=============================================================================== class sksilvercauldron extends HPMesh abstract; #exec MESH MODELIMPORT MESH=sksilvercauldronMesh MODELFILE=models\sksilvercauldron.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=sksilvercauldronMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=sksilvercauldronAnims ANIMFILE=models\sksilvercauldron.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=sksilvercauldronMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=sksilvercauldronMesh ANIM=sksilvercauldronAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=sksilvercauldronAnims VERBOSE #EXEC TEXTURE IMPORT NAME=sksilvercauldronTex0 FILE=TEXTURES\flipcouldronslv_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=sksilvercauldronMesh NUM=0 TEXTURE=sksilvercauldronTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: flipcouldronslv_128.bmp Path: C:\potter\ART\Objects\FLIPENDO\Flipendo Cauldrons
PeevesThrowBook
//=============================================================================== // [PeeveThrowBook] //=============================================================================== class PeeveThrowBook extends HProps; #exec MESH MODELIMPORT MESH=PeeveThrowBookMesh MODELFILE=models\PeeveThrowBook.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=PeeveThrowBookMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=PeeveThrowBookAnims ANIMFILE=models\PeeveThrowBook.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=PeeveThrowBookMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=PeeveThrowBookMesh ANIM=PeeveThrowBookAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=PeeveThrowBookAnims VERBOSE #EXEC TEXTURE IMPORT NAME=PeeveThrowBookTex0 FILE=TEXTURES\pevebook_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=PeeveThrowBookMesh NUM=0 TEXTURE=PeeveThrowBookTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: pevebook_128.bmp Path: D:\Harry Potter\Art\Objects\Peeves Throwing Objects
PeevesThrowPot
//=============================================================================== // [PeeveThrowPot] //=============================================================================== class PeeveThrowPot extends HProps; #exec MESH MODELIMPORT MESH=PeeveThrowPotMesh MODELFILE=models\PeeveThrowPot.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=PeeveThrowPotMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=PeeveThrowPotAnims ANIMFILE=models\PeeveThrowPot.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=PeeveThrowPotMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=PeeveThrowPotMesh ANIM=PeeveThrowPotAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=PeeveThrowPotAnims VERBOSE #EXEC TEXTURE IMPORT NAME=PeeveThrowPotTex0 FILE=TEXTURES\peevepot_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=PeeveThrowPotMesh NUM=0 TEXTURE=PeeveThrowPotTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: peevepot_128.bmp Path: D:\Harry Potter\Art\Objects\Peeves Throwing Objects
PeevesThrowSpoon
//=============================================================================== // [PeeveThrowSpoon] //=============================================================================== class PeeveThrowSpoon extends HProps; #exec MESH MODELIMPORT MESH=PeeveThrowSpoonMesh MODELFILE=models\PeeveThrowSpoon.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=PeeveThrowSpoonMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=PeeveThrowSpoonAnims ANIMFILE=models\PeeveThrowSpoon.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=PeeveThrowSpoonMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=PeeveThrowSpoonMesh ANIM=PeeveThrowSpoonAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=PeeveThrowSpoonAnims VERBOSE #EXEC TEXTURE IMPORT NAME=PeeveThrowSpoonTex0 FILE=TEXTURES\pvespoon_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=PeeveThrowSpoonMesh NUM=0 TEXTURE=PeeveThrowSpoonTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: pvespoon_128.bmp Path: D:\Harry Potter\Art\Objects\Peeves Throwing Objects
skbat
//=============================================================================== // [skbat] //=============================================================================== class skbat extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skbatMesh MODELFILE=models\skbat.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skbatMesh X=0 Y=0 Z=16 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skbatAnims ANIMFILE=models\skbat.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skbatMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skbatMesh ANIM=skbatAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skbatAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skbatTex0 FILE=TEXTURES\Bat_SKIN00.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skbatMesh NUM=0 TEXTURE=skbatTex0 // Original material [0] is [Bat_SKIN00] SkinIndex: 0 Bitmap: Bat_SKIN00.bmp Path: \\Baker\HPotterPC\Art\Design\Creatures\Bat
bat
class bat extends baseChar; var rotator rotval; var float offsetDir; auto state pause { function startup() { foreach allActors(class'baseHarry', p) { if( p.bIsPlayer&& p!=Self) { break; } } } begin: setPhysics(PHYS_none); startup(); rotval=rotation; loopanim('hang'); offsetdir=-10; lcloop: sleep(0.5); if(abs(vsize(location-p.location))<300) { gotostate('fly'); } goto 'lcloop'; } state fly { ignores SeePlayer, HearNoise, KilledBy, Bump, HitWall, HeadZoneChange, FootZoneChange, ZoneChange, Falling, TakeDamage, PainTimer, Died; function tick(float Deltatime) { local vector offset; super.tick(deltatime); if(offsetdir<0) { if(abs(location.z-p.location.z)<60) { offsetdir=10; } } else { if(abs(location.z-p.location.z)>140) { offsetdir=-10; } } offset.x=100*deltatime; offset.z=offsetdir*deltatime; offset=offset>>rotation; rotval.yaw=rotval.yaw+(16000*deltatime); setrotation(rotval); movesmooth(offset); } begin: loopanim('fly'); setphysics(phys_none); // PlaySound(sound 'HPSounds.critters_sfx.bats_squeaking1', SLOT_Interact, 1.0, false, 1000.0, 1.0); flyloop: sleep(4); }
skrabbit
//=============================================================================== // [skrabbit] //=============================================================================== class skrabbit extends HPMesh abstract; #exec MESH MODELIMPORT MESH=skrabbitMesh MODELFILE=models\skrabbit.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=skrabbitMesh X=0 Y=0 Z=3 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=skrabbitAnims ANIMFILE=models\skrabbit.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=skrabbitMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=skrabbitMesh ANIM=skrabbitAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=skrabbitAnims VERBOSE #EXEC TEXTURE IMPORT NAME=skrabbitTex0 FILE=TEXTURES\rabbit.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=skrabbitMesh NUM=0 TEXTURE=skrabbitTex0 // Original material [0] is [RABBIT_SKIN00] SkinIndex: 0 Bitmap: rabbit.bmp Path: H:\Art\Design\Creatures\Rabbit
rabbit
class rabbit extends baseChar; var rotator rotval; auto state lookcute { begin: setPhysics(PHYS_walking); rotval=rotation; loopanim('idle'); lcloop: sleep(5.0); gotostate('hop'); } state hop { function tick(float Deltatime) { local vector offset; offset.x=100*deltatime; offset=offset>>rotation; rotval.yaw=rotval.yaw+(10000*deltatime); setrotation(rotval); movesmooth(offset); super.tick(deltatime); } begin: setPhysics(PHYS_walking); loopanim('hop'); hoploop: sleep(5.1); gotostate('lookcute'); }
Static Objects
BedDudley
//=============================================================================== // [BedDudley] //=============================================================================== class BedDudley extends DProps; #exec MESH MODELIMPORT MESH=BedDudleyMesh MODELFILE=models\BedDudley.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=BedDudleyMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=BedDudleyAnims ANIMFILE=models\BedDudley.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=BedDudleyMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=BedDudleyMesh ANIM=BedDudleyAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=BedDudleyAnims VERBOSE #EXEC TEXTURE IMPORT NAME=BedDudleyTex0 FILE=TEXTURES\BedDudley_256.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=BedDudleyMesh NUM=0 TEXTURE=BedDudleyTex0 // Original material [0] is [SKIN00.MASKED] SkinIndex: 0 Bitmap: BedDudley_256.bmp Path: C:\UNREAL\DProps\Textures
TV
//=============================================================================== // [TV] //=============================================================================== class TV extends baseProps; #exec MESH MODELIMPORT MESH=TVMesh MODELFILE=models\TV.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=TVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=TVAnims ANIMFILE=models\TV.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=TVMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=TVMesh ANIM=TVAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=TVAnims VERBOSE #EXEC TEXTURE IMPORT NAME=TVTex0 FILE=TEXTURES\televisn_128.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=TVTex1 FILE=TEXTURES\televisn_129.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=TVMesh NUM=0 TEXTURE=TVTex0 // Original material [0] is [SKIN00] SkinIndex: 0 Bitmap: televisn_128.bmp Path: H:\Art\Models\Objects\Dursley Props\TV function turnOn() { skin=texture'tvTex1'; //cmp PlaySound(waterstep, SLOT_Interact, 2.2, false, 1000.0, 1.0); }
Toilet
//=============================================================================== // [Toilet] //=============================================================================== class Toilet extends DProps; #exec MESH MODELIMPORT MESH=ToiletMesh MODELFILE=models\Toilet.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ToiletMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ToiletAnims ANIMFILE=models\Toilet.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ToiletMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ToiletMesh ANIM=ToiletAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ToiletAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ToiletTex0 FILE=TEXTURES\Toilet_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ToiletMesh NUM=0 TEXTURE=ToiletTex0 // Original material [0] is [Material #2] SkinIndex: 0 Bitmap: Toilet_128.bmp Path: \\Baker\HPotterPC\Art\Models\Objects\Dursley Props
PaintCans
//=============================================================================== // [PaintCans] //=============================================================================== class PaintCans extends DProps; #exec MESH MODELIMPORT MESH=PaintCansMesh MODELFILE=models\PaintCans.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=PaintCansMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=PaintCansAnims ANIMFILE=models\PaintCans.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=PaintCansMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=PaintCansMesh ANIM=PaintCansAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=PaintCansAnims VERBOSE #EXEC TEXTURE IMPORT NAME=PaintCansTex0 FILE=TEXTURES\paintcan_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=PaintCansMesh NUM=0 TEXTURE=PaintCansTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: paintcan_128.bmp Path: H:\Art\Models\Objects\Dursley Props
GHallDumbleThrone
//=============================================================================== // [GHallDumbleThrone] //=============================================================================== class GHallDumbleThrone extends HProps; #exec MESH MODELIMPORT MESH=GHallDumbleThroneMesh MODELFILE=models\GHallDumbleThrone.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GHallDumbleThroneMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GHallDumbleThroneAnims ANIMFILE=models\GHallDumbleThrone.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GHallDumbleThroneMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GHallDumbleThroneMesh ANIM=GHallDumbleThroneAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GHallDumbleThroneAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GHallDumbleThroneTex0 FILE=TEXTURES\ghthrone_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GHallDumbleThroneMesh NUM=0 TEXTURE=GHallDumbleThroneTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: ghthrone_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Great Hall
GHallSortHat
//=============================================================================== // [GHallSortHat] //=============================================================================== class GHallSortHat extends HProps; #exec MESH MODELIMPORT MESH=GHallSortHatMesh MODELFILE=models\GHallSortHat.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GHallSortHatMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GHallSortHatAnims ANIMFILE=models\GHallSortHat.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GHallSortHatMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GHallSortHatMesh ANIM=GHallSortHatAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GHallSortHatAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GHallSortHatTex0 FILE=TEXTURES\sortghat_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GHallSortHatMesh NUM=0 TEXTURE=GHallSortHatTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: sortghat_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Great Hall
GHallSortHatStool
//=============================================================================== // [GHallSortHatStool] //=============================================================================== class GHallSortHatStool extends HProps; #exec MESH MODELIMPORT MESH=GHallSortHatStoolMesh MODELFILE=models\GHallSortHatStool.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GHallSortHatStoolMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GHallSortHatStoolAnims ANIMFILE=models\GHallSortHatStool.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GHallSortHatStoolMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GHallSortHatStoolMesh ANIM=GHallSortHatStoolAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GHallSortHatStoolAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GHallSortHatStoolTex0 FILE=TEXTURES\sortstol_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GHallSortHatStoolMesh NUM=0 TEXTURE=GHallSortHatStoolTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: sortstol_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Great Hall
GHallBenchTable
//=============================================================================== // [GHallBenchTable] //=============================================================================== class GHallBenchTable extends HProps; #exec MESH MODELIMPORT MESH=GHallBenchTableMesh MODELFILE=models\GHallBenchTable.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GHallBenchTableMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GHallBenchTableAnims ANIMFILE=models\GHallBenchTable.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GHallBenchTableMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GHallBenchTableMesh ANIM=GHallBenchTableAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GHallBenchTableAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GHallBenchTableTex0 FILE=TEXTURES\tablbnch_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GHallBenchTableMesh NUM=0 TEXTURE=GHallBenchTableTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: tablbnch_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Great Hall
GryfBed
//=============================================================================== // [GryfBed] //=============================================================================== class GryfBed extends HProps; #exec MESH MODELIMPORT MESH=GryfBedMesh MODELFILE=models\GryfBed.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GryfBedMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GryfBedAnims ANIMFILE=models\GryfBed.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GryfBedMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GryfBedMesh ANIM=GryfBedAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GryfBedAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GryfBedTex0 FILE=TEXTURES\gryffbed_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GryfBedMesh NUM=0 TEXTURE=GryfBedTex0 // Original material [0] is [Material #3] SkinIndex: 0 Bitmap: gryffbed_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Seventh Floor
GryfsmCauldron
//=============================================================================== // [GryfsmCauldron] //=============================================================================== class GryfsmCauldron extends HProps; #exec MESH MODELIMPORT MESH=GryfsmCauldronMesh MODELFILE=models\GryfsmCauldron.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GryfsmCauldronMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GryfsmCauldronAnims ANIMFILE=models\GryfsmCauldron.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GryfsmCauldronMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GryfsmCauldronMesh ANIM=GryfsmCauldronAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GryfsmCauldronAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GryfsmCauldronTex0 FILE=TEXTURES\couldron_64.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GryfsmCauldronMesh NUM=0 TEXTURE=GryfsmCauldronTex0 // Original material [0] is [SKIN00.TWOSIDED] SkinIndex: 0 Bitmap: couldron_64.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Seventh Floor
GryfTrunk
//=============================================================================== // [GryfTrunk] //=============================================================================== class GryfTrunk extends HProps; #exec MESH MODELIMPORT MESH=GryfTrunkMesh MODELFILE=models\GryfTrunk.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=GryfTrunkMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=GryfTrunkAnims ANIMFILE=models\GryfTrunk.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=GryfTrunkMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=GryfTrunkMesh ANIM=GryfTrunkAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=GryfTrunkAnims VERBOSE #EXEC TEXTURE IMPORT NAME=GryfTrunkTex0 FILE=TEXTURES\hogtrunk_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=GryfTrunkMesh NUM=0 TEXTURE=GryfTrunkTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: hogtrunk_128.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\Seventh Floor
ChristmasOrnamentBall
//=============================================================================== // [ChristmasOrnamentBall] //=============================================================================== class ChristmasOrnamentBall extends HProps; #exec MESH MODELIMPORT MESH=ChristmasOrnamentBallMesh MODELFILE=models\ChristmasOrnamentBall.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ChristmasOrnamentBallMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ChristmasOrnamentBallAnims ANIMFILE=models\ChristmasOrnamentBall.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ChristmasOrnamentBallMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ChristmasOrnamentBallMesh ANIM=ChristmasOrnamentBallAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ChristmasOrnamentBallAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ChristmasOrnamentBallTex0 FILE=TEXTURES\xmasball_64.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ChristmasOrnamentBallMesh NUM=0 TEXTURE=ChristmasOrnamentBallTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: xmasball_64.bmp Path: D:\Harry Potter\Art\Objects\General Objects\Christmas ornaments
ChristmasOrnamentBird
//=============================================================================== // [ChristmasOrnamentBird] //=============================================================================== class ChristmasOrnamentBird extends HProps; #exec MESH MODELIMPORT MESH=ChristmasOrnamentBirdMesh MODELFILE=models\ChristmasOrnamentBird.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ChristmasOrnamentBirdMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ChristmasOrnamentBirdAnims ANIMFILE=models\ChristmasOrnamentBird.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ChristmasOrnamentBirdMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ChristmasOrnamentBirdMesh ANIM=ChristmasOrnamentBirdAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ChristmasOrnamentBirdAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ChristmasOrnamentBirdTex0 FILE=TEXTURES\xmasbird_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ChristmasOrnamentBirdMesh NUM=0 TEXTURE=ChristmasOrnamentBirdTex0 // Original material [0] is [SKIN00.MASKED] SkinIndex: 0 Bitmap: xmasbird_128.bmp Path: D:\Harry Potter\Art\Objects\General Objects\Christmas ornaments
Telescope
//=============================================================================== // [Telescope] //=============================================================================== class Telescope extends HProps; #exec MESH MODELIMPORT MESH=TelescopeMesh MODELFILE=models\Telescope.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=TelescopeMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=TelescopeAnims ANIMFILE=models\Telescope.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=TelescopeMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=TelescopeMesh ANIM=TelescopeAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=TelescopeAnims VERBOSE #EXEC TEXTURE IMPORT NAME=TelescopeTex0 FILE=TEXTURES\Telescope.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=TelescopeMesh NUM=0 TEXTURE=TelescopeTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: Telescope.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures
Sundial
//=============================================================================== // [Sundial] //=============================================================================== class Sundial extends HProps; #exec MESH MODELIMPORT MESH=SundialMesh MODELFILE=models\Sundial.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=SundialMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=SundialAnims ANIMFILE=models\Sundial.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=SundialMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=SundialMesh ANIM=SundialAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=SundialAnims VERBOSE #EXEC TEXTURE IMPORT NAME=SundialTex0 FILE=TEXTURES\sundial_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=SundialMesh NUM=0 TEXTURE=SundialTex0 // Original material [0] is [Material #2] SkinIndex: 0 Bitmap: sundial_128.bmp Path: D:\Harry Potter\Art\Objects\General Objects\sundial
CaveBug
//=============================================================================== // [CaveBug] //=============================================================================== class CaveBug extends HProps; #exec MESH MODELIMPORT MESH=CaveBugMesh MODELFILE=models\CaveBug.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=CaveBugMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=CaveBugAnims ANIMFILE=models\CaveBug.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=CaveBugMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=CaveBugMesh ANIM=CaveBugAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=CaveBugAnims VERBOSE #EXEC TEXTURE IMPORT NAME=CaveBugTex0 FILE=TEXTURES\CaveBug.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=CaveBugMesh NUM=0 TEXTURE=CaveBugTex0 // Original material [0] is [skin00.MASKED] SkinIndex: 0 Bitmap: CaveBug.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures
ForbidForestTree
//=============================================================================== // [ForbidForestTree] //=============================================================================== class ForbidForestTree extends HProps; #exec MESH MODELIMPORT MESH=ForbidForestTreeMesh MODELFILE=models\ForbidForestTree.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ForbidForestTreeMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ForbidForestTreeAnims ANIMFILE=models\ForbidForestTree.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ForbidForestTreeMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ForbidForestTreeMesh ANIM=ForbidForestTreeAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ForbidForestTreeAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ForbidForestTreeTex0 FILE=TEXTURES\FirtreeBark.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=ForbidForestTreeTex1 FILE=TEXTURES\FirtreeBows.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeMesh NUM=0 TEXTURE=ForbidForestTreeTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeMesh NUM=1 TEXTURE=ForbidForestTreeTex1 // Original material [0] is [skin00] SkinIndex: 0 Bitmap: FirtreeBark.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures // Original material [1] is [skin01.MASKED] SkinIndex: 1 Bitmap: FirtreeBows.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures
ForbidForestTreeMed
//=============================================================================== // [ForbidForestTreeMed] //=============================================================================== class ForbidForestTreeMed extends HProps; #exec MESH MODELIMPORT MESH=ForbidForestTreeMedMesh MODELFILE=models\ForbidForestTreeMed.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ForbidForestTreeMedMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ForbidForestTreeMedAnims ANIMFILE=models\ForbidForestTreeMed.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ForbidForestTreeMedMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ForbidForestTreeMedMesh ANIM=ForbidForestTreeMedAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ForbidForestTreeMedAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ForbidForestTreeMedTex0 FILE=TEXTURES\FirtreeBark.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=ForbidForestTreeMedTex1 FILE=TEXTURES\FirtreeBows.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeMedMesh NUM=0 TEXTURE=ForbidForestTreeMedTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeMedMesh NUM=1 TEXTURE=ForbidForestTreeMedTex1 // Original material [0] is [skin00] SkinIndex: 0 Bitmap: FirtreeBark.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures // Original material [1] is [skin01.MASKED] SkinIndex: 1 Bitmap: FirtreeBows.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures
ForbidForestTreeSM
//=============================================================================== // [ForbidForestTreeSM] //=============================================================================== class ForbidForestTreeSM extends HProps; #exec MESH MODELIMPORT MESH=ForbidForestTreeSMMesh MODELFILE=models\ForbidForestTreeSM.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=ForbidForestTreeSMMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=ForbidForestTreeSMAnims ANIMFILE=models\ForbidForestTreeSM.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=ForbidForestTreeSMMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=ForbidForestTreeSMMesh ANIM=ForbidForestTreeSMAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=ForbidForestTreeSMAnims VERBOSE #EXEC TEXTURE IMPORT NAME=ForbidForestTreeSMTex0 FILE=TEXTURES\BirchBark.bmp GROUP=Skins #EXEC TEXTURE IMPORT NAME=ForbidForestTreeSMTex1 FILE=TEXTURES\BirchtreeBows.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeSMMesh NUM=0 TEXTURE=ForbidForestTreeSMTex0 #EXEC MESHMAP SETTEXTURE MESHMAP=ForbidForestTreeSMMesh NUM=1 TEXTURE=ForbidForestTreeSMTex1 // Original material [0] is [skin00] SkinIndex: 0 Bitmap: BirchBark.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures // Original material [1] is [skin01.TWOSIDED] SkinIndex: 1 Bitmap: BirchtreeBows.bmp Path: C:\Project Files\Harry Potter PC\HP Object Textures
Spell Scripts
spellFlint
//=============================================================================== //=============================================================================== class spellFlint extends BASESPELL; #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=SPELLLEVMesh X=2.0 Y=2.0 Z=2.0 #exec MESH DEFAULTANIM MESH=SPELLLEVMesh ANIM=SPELLLEVAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage #EXEC TEXTURE IMPORT NAME=flintSpellIcon FILE=..\HPMenu\TEXTURES\HUD\flintSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p function PostBeginPlay() { Super.PostBeginPlay(); LoopAnim('all', 2.0, 0.0); }
spellVerd
//=============================================================================== class spellVerd extends BASESPELL; #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=SPELLLEVMesh X=2.0 Y=2.0 Z=2.0 #exec MESH DEFAULTANIM MESH=SPELLLEVMesh ANIM=SPELLLEVAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage #EXEC TEXTURE IMPORT NAME=verdSpellIcon FILE=..\HPMenu\TEXTURES\HUD\verdSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p function PostBeginPlay() { Super.PostBeginPlay(); LoopAnim('all', 2.0, 0.0); }
spellRepairo
//=============================================================================== class spellRepairo extends BASESPELL; #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=SPELLLEVMesh X=2.0 Y=2.0 Z=2.0 #exec MESH DEFAULTANIM MESH=SPELLLEVMesh ANIM=SPELLLEVAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage #EXEC TEXTURE IMPORT NAME=alohoSpellIcon FILE=..\HPMenu\TEXTURES\HUD\alohSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p function PostBeginPlay() { Super.PostBeginPlay(); LoopAnim('all', 2.0, 0.0); }
spellAvif
//=============================================================================== class spellAvif extends BASESPELL; #exec MESH MODELIMPORT MESH=SPELLLEVMesh MODELFILE=models\LevProjectile.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=SPELLLEVMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=SPELLLEVAnims ANIMFILE=models\LevProjectile.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=SPELLLEVMesh X=2.0 Y=2.0 Z=2.0 #exec MESH DEFAULTANIM MESH=SPELLLEVMesh ANIM=SPELLLEVAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=SPELLLEVAnims VERBOSE #exec OBJ LOAD FILE=..\textures\HP_FX.utx PACKAGE=HPBase.FXPackage #EXEC TEXTURE IMPORT NAME=avifSpellIcon FILE=..\HPMenu\TEXTURES\HUD\avifSpellIcon.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC MESHMAP SETTEXTURE MESHMAP=SPELLLEVMesh NUM=0 TEXTURE=HPBase.FXPackage.win_p // Import the pattern #exec PATTERN IMPORT PATTERN=AvifPattern FILE=Patterns/Avifores.hpg function PostBeginPlay() { Super.PostBeginPlay(); // LoopAnim('all', 2.0, 0.0); }
Spell Variables
These are leftover variable names for spells not in the final game. Majority of these spells found their way into the Game Boy Color version of the game.
- Petrificus Totalus - A petrification spell used a couple of times in the book and movie.
- Nox - According to the lore (and the third movie), this spell nullifies the effects of the Lumos spell, but since the Lumos spell is used to hit gargoyles, it couldn't have been used in this game.
- Locomotor Wibbly - A leg-collapsing spell. This was used in the Game Boy Color version as a petrification spell.
- Vermillious - According to the Harry Potter lore, this spell is a combat-oriented variant of Verdimillious. Projects red sparks and smoke that hurt a little bit.
- Mucor Ad Nauseum - Probably a spelling error from Mucus ad Nauseam. According to the lore, this curse gives its victim a small cold.
- Transfiguration - Probably a variant of the Avifors or Flintifors unused spells.
E3 Scripts
Harrye3
//============================================================================= // Harry -- hero character //============================================================================= class Harrye3 extends Harry; function PostBeginPlay() { Super.PostBeginPlay(); baseWand(weapon).addSpell(Class'spellAloho'); }
demoHarry
//============================================================================= // Harry -- hero character //============================================================================= class demoHarry extends Harry;
Generic NPC Script
With the exception of each class name, this script is identical for the following files:
E3Crabbe
E3Draco
E3Fred
E3George
E3Goyle
class E3Crabbe extends baseChar; function PostBeginPlay() { Super.PostBeginPlay(); LoopAnim('plot', 1.0, 0.0); } auto state idle{ begin: loop: LoopAnim('lookdownhall', 1.0, 0.0); finishanim(); goto 'loop'; }
demoscroll
//=============================================================================== // [HedwigsScroll] //=============================================================================== class demoscroll extends basescroll; #exec MESH MODELIMPORT MESH=HedwigsScrollMesh MODELFILE=models\HedwigsScroll.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=HedwigsScrollMesh X=0 Y=0 Z=00 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=HedwigsScrollAnims ANIMFILE=models\HedwigsScroll.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=HedwigsScrollMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=HedwigsScrollMesh ANIM=HedwigsScrollAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=HedwigsScrollAnims VERBOSE #EXEC TEXTURE IMPORT NAME=HedwigsScrollTex0 FILE=TEXTURES\HedwScrl_64.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=HedwigsScrollMesh NUM=0 TEXTURE=HedwigsScrollTex0 // Original material [0] is [Material #1] SkinIndex: 0 Bitmap: HedwScrl_64.bmp Path: D:\Harry Potter\A Lorian's Stuff\Hogwarts\General Objects function PreBeginPlay() { local rotator rot; scrollparticle=spawn(class'scrollfx'); rot.pitch=-16000; rot.roll=0; rot.yaw=0; scrollparticle.setrotation(rot); Super.PreBeginPlay(); } function touch(actor other) { if(other==playerharry) { // AE: PlaySound(sound 'HPSounds.magic_sfx.pickup_page'); playerharry.clientMessage("demo scroll touch"); baseHud(playerharry.myHud).ShowPopup(class'hagletter2'); popup=baseHud(playerharry.myHud).curPopup; gotostate('popstate'); scrollparticle.destroy(); } }
E3Knight
class E3Knight extends Knight;//baseChar; //var int NumSpellHits; // ////************************************************************** //auto state idle //{ // function bool HandleFlipSpell() // { // local FireCracker a; // local byte b; // local int i; // // NumSpellHits++; // // if( NumSpellHits >= 3 ) // { // Playsound( sound 'HPSounds.hub1_sfx.MAL_candy_explodes'); // PlaySound( sound'HPSounds.menu_sfx.s_menu_click', SLOT_Interact, 1.0, false, 1000.0, 1.0); // // for( i = 0; i < 10; i++ ) // { // a = spawn( class'FireCracker' ); //cWizCrackerConfetti' ); // // b = 127 + Rand(128); // a.ColorStart.Base.r = b; // a.ColorStart.Base.g = b; // a.ColorStart.Base.b = b; // a.ColorEnd.Base.r = b; // a.ColorEnd.Base.g = b; // a.ColorEnd.Base.b = b; // // a.Gravity.z = -(30 + Rand(4)*30); // } // // Destroy(); // } // else // { // GotoState('stateWobble'); // } // } // // begin: // loop: // LoopAnim('IDLE2LOOKRIGHT', 1.0, 0.0); // finishanim(); // LoopAnim('LOOKRIGHT', 1.0, 0.0); // sleep(frand()*2); // finishanim(); // LoopAnim('LOOKRIGHT2IDLE', 1.0, 0.0); // finishanim(); // LoopAnim('IDLE', 1.0, 0.0); // sleep(frand()*3); // finishanim(); // // LoopAnim('IDLE2LOOKLEFT', 1.0, 0.0); // finishanim(); // LoopAnim('LOOKLEFT', 1.0, 0.0); // sleep(frand()*2); // finishanim(); // LoopAnim('LOOKLEFT2IDLE', 1.0, 0.0); // finishanim(); // LoopAnim('IDLE', 1.0, 0.0); // sleep(frand()*3); // finishanim(); // // goto 'loop'; //} // ////************************************************************** //state stateWobble //{ // Begin: // PlayAnim('wobble'); // FinishAnim(); // GotoState('idle'); //} // ////************************************************************** //defaultProperties //{ // DrawType=DT_Mesh // Mesh=SkeletalMesh'HarryPotter.skKnightMesh' // eVulnerableToSpell=SPELL_Flipendo //}
demoLetter
class demoLetter expands basePopup; #exec TEXTURE IMPORT NAME=welcomeLetter1 FILE=TEXTURES\welcome1.BMP GROUP="Icons" FLAGS=2 MIPS=off #exec TEXTURE IMPORT NAME=welcomeLetter2 FILE=TEXTURES\welcome2.BMP GROUP="Icons" FLAGS=2 MIPS=off function Draw(Canvas canvas) { local float fx,fy,bx,by; local float x,y,w,h; local Texture tex; fx=(Canvas.SizeX/640.0); fy=(Canvas.SizeY/480.0); fx=1.0; fy=1.0; tex=Texture'welcomeLetter1'; w=tex.USize; h=tex.VSize; bx=(Canvas.SizeX/2)-(w); by=(Canvas.SizeY/2)-(h/2); Canvas.SetPos(bx*fx, by*fy); Canvas.DrawIcon(tex,1.0); tex=Texture'welcomeLetter2'; w=tex.USize; h=tex.VSize; x=(Canvas.SizeX/2); y=(Canvas.SizeY/2)-(h/2); Canvas.SetPos((bx+256)*fx, by*fy); Canvas.DrawIcon(tex,1.0); }
avifPage
class avifPage expands baseSpellPage; //#EXEC TEXTURE IMPORT NAME=avifPageTexture1 FILE=TEXTURES\HUD\avifPage1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=avifPageTexture2 FILE=TEXTURES\HUD\avifPage2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=avifPageTexture3 FILE=TEXTURES\HUD\avifPage3.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=avifPageTexture4 FILE=TEXTURES\HUD\avifPage4.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=avifPageTexture1 FILE=TEXTURES\HUD\letters\avifors1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=avifPageTexture2 FILE=TEXTURES\HUD\letters\avifors2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
flintPage
class flintPage expands baseSpellPage; #EXEC TEXTURE IMPORT NAME=flintPageTexture1 FILE=TEXTURES\HUD\flintPage1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=flintPageTexture2 FILE=TEXTURES\HUD\flintPage2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=flintPageTexture3 FILE=TEXTURES\HUD\flintPage3.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=flintPageTexture4 FILE=TEXTURES\HUD\flintPage4.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
verdPage
class verdPage expands baseSpellPage;
//#EXEC TEXTURE IMPORT NAME=verdPageTexture1 FILE=TEXTURES\HUD\verdPage1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
//#EXEC TEXTURE IMPORT NAME=verdPageTexture2 FILE=TEXTURES\HUD\verdPage2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
//#EXEC TEXTURE IMPORT NAME=verdPageTexture3 FILE=TEXTURES\HUD\verdPage3.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
//#EXEC TEXTURE IMPORT NAME=verdPageTexture4 FILE=TEXTURES\HUD\verdPage4.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
- EXEC TEXTURE IMPORT NAME=verdPageTexture1 FILE=TEXTURES\HUD\letters\verdimillious1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
- EXEC TEXTURE IMPORT NAME=verdPageTexture2 FILE=TEXTURES\HUD\letters\verdimillious2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
wingPage
Although Wingardium Leviosa is a used spell, this script has a commented out placeholder that uses the Verdimillious script.
class wingPage expands baseSpellPage; //#EXEC TEXTURE IMPORT NAME=verdPageTexture1 FILE=TEXTURES\HUD\verdPage1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=verdPageTexture2 FILE=TEXTURES\HUD\verdPage2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=verdPageTexture3 FILE=TEXTURES\HUD\verdPage3.bmp GROUP="Icons" FLAGS=2 MIPS=OFF //#EXEC TEXTURE IMPORT NAME=verdPageTexture4 FILE=TEXTURES\HUD\verdPage4.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=wingPageTexture1 FILE=TEXTURES\HUD\letters\wingardium1.bmp GROUP="Icons" FLAGS=2 MIPS=OFF #EXEC TEXTURE IMPORT NAME=wingPageTexture2 FILE=TEXTURES\HUD\letters\wingardium2.bmp GROUP="Icons" FLAGS=2 MIPS=OFF
Leftover Unreal Scripts
Eightball
//============================================================================= // Eightball. //============================================================================= class Eightball extends Weapon; // 3rd person perspective version #exec MESH IMPORT MESH=8Ball3rd ANIVFILE=MODELS\8ball3_a.3D DATAFILE=MODELS\8ball3_d.3D X=0 Y=0 Z=0 #exec MESH ORIGIN MESH=8Ball3rd X=0 Y=-430 Z=-45 YAW=-64 ROLL=9 #exec MESH SEQUENCE MESH=8Ball3rd SEQ=All STARTFRAME=0 NUMFRAMES=10 #exec MESH SEQUENCE MESH=8Ball3rd SEQ=Idle STARTFRAME=0 NUMFRAMES=1 #exec MESH SEQUENCE MESH=8Ball3rd SEQ=Fire STARTFRAME=1 NUMFRAMES=9 //#exec TEXTURE IMPORT NAME=JEightB1 FILE=MODELS\eightbal.PCX GROUP="Skins" #exec MESHMAP SCALE MESHMAP=8Ball3rd X=0.065 Y=0.065 Z=0.13 //#exec MESHMAP SETTEXTURE MESHMAP=8Ball3rd NUM=1 TEXTURE=JEightB1 //#exec MESHMAP SETTEXTURE MESHMAP=8Ball3rd NUM=0 TEXTURE=UnrealShare.Effect18.FireEffect18
BabyCowCarcass
//============================================================================= // BabyCowCarcass. //============================================================================= class BabyCowCarcass extends pawn;
Carcass
//============================================================================= // Carcass. //============================================================================= class Carcass extends Decoration native; // Sprite. #exec Texture Import File=Textures\Corpse.pcx Name=S_Corpse Mips=Off Flags=2 // Variables. var bool bPlayerCarcass; var() byte flies; var() byte rats; var() bool bReducedHeight; var bool bDecorative; var bool bSlidingCarcass; var int CumulativeDamage; var PlayerReplicationInfo PlayerOwner; var Pawn Bugs; function CreateReplacement() { if (Bugs != None) Bugs.Destroy(); } function Destroyed() { local Actor A; if (Bugs != None) Bugs.Destroy(); Super.Destroyed(); } function Initfor(actor Other) { //implemented in subclasses } function ChunkUp(int Damage) { destroy(); } static simulated function bool AllowChunk(int N, name A) { return true; } function TakeDamage( int Damage, Pawn instigatedBy, Vector hitlocation, Vector momentum, name damageType) { if ( !bDecorative ) { bBobbing = false; SetPhysics(PHYS_Falling); } if ( (Physics == PHYS_None) && (Momentum.Z < 0) ) Momentum.Z *= -1; Velocity += 3 * momentum/(Mass + 200); if ( DamageType == 'shot' ) Damage *= 0.4; CumulativeDamage += Damage; if ( (((Damage > 30) || !IsAnimating()) && (CumulativeDamage > 0.8 * Mass)) || (Damage > 0.4 * Mass) || ((Velocity.Z > 150) && !IsAnimating()) ) ChunkUp(Damage); if ( bDecorative ) Velocity = vect(0,0,0); } auto state Dying { ignores TakeDamage; Begin: Sleep(0.2); GotoState('Dead'); } state Dead { function Timer() { local bool bSeen; local Pawn aPawn; local float dist; if ( Region.Zone.NumCarcasses <= Region.Zone.MaxCarcasses ) { if ( !PlayerCanSeeMe() ) Destroy(); else SetTimer(2.0, false); } else Destroy(); } function AddFliesAndRats() { } function CheckZoneCarcasses() { } function BeginState() { if ( bDecorative ) lifespan = 0.0; else SetTimer(18.0, false); } Begin: FinishAnim(); Sleep(5.0); CheckZoneCarcasses(); Sleep(7.0); if ( !bDecorative && !bHidden && !Region.Zone.bWaterZone && !Region.Zone.bPainZone ) AddFliesAndRats(); }
Miscellanous
DProps
//============================================================================= // HProps //============================================================================= class DProps expands baseProps;
PotCam
// HARRY POTTER camera code //________________________________________________________________________________________ class PotCam extends BaseCam; // @PAB this is just an historical stub. BaseCam should be used.
StoryBookDialog
//Yet another file by me, which does nothing, and is full of commented out code. class StoryBookDialog expands baseDialog; /* struct DialogLine { var string name; var sound sound; var string text; }; */ /* const MAX_LINES = 20; //var string DlgLineNames[200]; var int DlgLineBook[20]; var int DlgLinePage[20]; var sound DlgLineSounds[20]; var string DlgLineText[20]; */ var baseNarrator _narrator; //*********************************************************************************************************** function bool FindDialog2(string PageName, /*int Book, int Page,*/ out sound dlgSound, out float SoundLen, out string dlgText) { local int i; local bool bReturnVal; //local bool bFakeTut1Dialog; bReturnVal = true; //bFakeTut1Dialog = false; if( _narrator == none ) { foreach AllActors(class'baseNarrator', _narrator) break; if( _narrator == None ) { Log("*********** No Tut1Dialog found"); //_narrator = spawn(class'narrator'); //bFakeTut1Dialog = true; } } _narrator.FindDialog( PageName, dlgSound, dlgText ); /* if( PageName ~= "CommonRoom" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "HarryGetsBroom" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "HarryStudy" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "3_1_" ) _narrator.FindDialog( "StoryBook1", dlgSound, dlgText ); else if( PageName ~= "3_2_" ) _narrator.FindDialog( "StoryBook2", dlgSound, dlgText ); else if( PageName ~= "3_3_" ) _narrator.FindDialog( "StoryBook3", dlgSound, dlgText ); else if( PageName ~= "3_4_" ) _narrator.FindDialog( "StoryBook4", dlgSound, dlgText ); else if( PageName ~= "3_5_" ) _narrator.FindDialog( "StoryBook5", dlgSound, dlgText ); else if( PageName ~= "3_6_" ) _narrator.FindDialog( "StoryBook6", dlgSound, dlgText ); else if( PageName ~= "3_7_" ) _narrator.FindDialog( "StoryBook7", dlgSound, dlgText ); else if( PageName ~= "4_1_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "4_2_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "HermioneLibrary" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "5_1_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "5_2_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "5_3_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "5_4_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "5_6_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_1_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_2_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_3_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_4_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_5_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_6_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_7_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "6_8_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "7_1_" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "QuidditchVictory" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else if( PageName ~= "RunDownHall" ) _narrator.FindDialog( "StoryBook8", dlgSound, dlgText ); else bReturnVal = false; */ if( dlgSound != none ) SoundLen = GetsoundDuration(dlgSound); else SoundLen = 2; //switch( Book ) //{ // case 0: //intro dialog // Page = Clamp( Page, 0, 7 ); // _narrator.FindDialog( "StoryBook" $ (Page+1), dlgSound, dlgText ); // SoundLen = GetsoundDuration(dlgSound); // bReturnVal = true; // break; // // case 1: // ? // //Page = Clamp( Page, 0, 7 ); // Page = 0; // //_narrator.FindDialog( "StoryBook" $ (Page+1), dlgSound, dlgText ); // _narrator.FindDialog( "StoryBook9", dlgSound, dlgText ); // SoundLen = GetsoundDuration(dlgSound); // bReturnVal = true; // break; // // case 2: // ? // Page = Clamp( Page, 0, 7 ); // Page = 0; // //_narrator.FindDialog( "StoryBook" $ (Page+1), dlgSound, dlgText ); // _narrator.FindDialog( "StoryBook10", dlgSound, dlgText ); // SoundLen = GetsoundDuration(dlgSound); // bReturnVal = true; // break; //} /* //log("Looking for " $tstr); for( i = 0; i < MAX_LINES; i++ ) { //log("Checking " $Tut1DlgLineNames[i] $"->" $Tut1DlgLineText[i]); if( DlgLineBook[ i ] == Book && DlgLinePage[ i ] == Page ) { //log("Found " $lineName); dlgSound = DlgLineSounds[i]; dlgText = DlgLineText[i]; SoundLen = GetsoundDuration(dlgSound); return(true); } } dlgSound=None; // dlgText="Cant find Dialog called:" $lineName; //dlgText=":" $lineName; */ //if( bFakeTut1Dialog ) // _Tut1Dialog.Destroy(); return bReturnVal; } /* DlgLineBook(0)=0 DlgLinePage(0)=0 DlgLineSounds(0)=HPSounds.tut1_dlg.TUT1_DUMINTRO_1 DlgLineText(0)="Welcome to Hogwarts, the school for Witches and Wizards. I am Albus Dumbledore, your Headmaster." DlgLineBook(1)=0 DlgLinePage(1)=1 DlgLineSounds(1)=HPSounds.tut1_dlg.TUT1_DUMINTRO_2 DlgLineText(1)="Hogwarts is full of secrets, Harry, so search behind every." DlgLineBook(2)=0 DlgLinePage(2)=2 DlgLineSounds(2)=HPSounds.tut1_dlg.TUT1_DUMINTRO_2 DlgLineText(2)="Hogwarts is full of secrets, Harry, so search behind every door." DlgLineBook(3)=0 DlgLinePage(3)=3 DlgLineSounds(3)=HPSounds.tut1_dlg.TUT1_DUMINTRO_2 DlgLineText(3)="Hogwarts is full of secrets, Harry, so search behind every door. But." DlgLineBook(3)=1 DlgLinePage(3)=0 DlgLineSounds(3)=HPSounds.tut1_dlg.TUT1_DUMINTRO_2 DlgLineText(3)="Hogwarts is full of secrets, Harry, so search behind every door. But." */
XLandingMarkerSpot
//=============================================================================== // [XLandingMarkerSpot] //=============================================================================== class XLandingMarkerSpot extends HProps; #exec MESH MODELIMPORT MESH=XLandingMarkerSpotMesh MODELFILE=models\XLandingMarkerSpot.PSK LODSTYLE=10 #exec MESH ORIGIN MESH=XLandingMarkerSpotMesh X=0 Y=0 Z=0 YAW=0 PITCH=0 ROLL=0 #exec ANIM IMPORT ANIM=XLandingMarkerSpotAnims ANIMFILE=models\XLandingMarkerSpot.PSA COMPRESS=1 MAXKEYS=999999 IMPORTSEQS=1 #exec MESHMAP SCALE MESHMAP=XLandingMarkerSpotMesh X=1.0 Y=1.0 Z=1.0 #exec MESH DEFAULTANIM MESH=XLandingMarkerSpotMesh ANIM=XLandingMarkerSpotAnims // Digest and compress the animation data. Must come after the sequence declarations. // 'VERBOSE' gives more debugging info in UCC.log #exec ANIM DIGEST ANIM=XLandingMarkerSpotAnims VERBOSE #EXEC TEXTURE IMPORT NAME=XLandingMarkerSpotTex0 FILE=TEXTURES\landingx_128.bmp GROUP=Skins #EXEC MESHMAP SETTEXTURE MESHMAP=XLandingMarkerSpotMesh NUM=0 TEXTURE=XLandingMarkerSpotTex0 // Original material [0] is [SKIN00.MASKED] SkinIndex: 0 Bitmap: landingx_128.bmp Path: D:\Harry Potter\Art\Objects\General Objects\X marks the spot
TestInfo
//============================================================================= // For internal testing. //============================================================================= class TestInfo extends Info; var() bool bTrue1; var() bool bFalse1; var() bool bTrue2; var() bool bFalse2; var bool bBool1; var bool bBool2; var() int xnum; var float ppp; var string sxx; var int MyArray[2]; var vector v1,v2; var string TestRepStr; //var string[32] teststring; const Pie=3.14; const Str="Tim"; const Lotus=vect(1,2,3); var struct STest { var bool b1; var int i; var bool b2; var bool b3; } ST; function TestQ() { local vector v; v.x = 2; v.y = 3; v.z = 4; assert(v==vect(2,3,4)); assert(v.z==4); assert(v.y==3); assert(v.x==2); } static function test() { class'testinfo'.default.v1 = vect(1,2,3); } function PostBeginPlay() { local object o; local actor TempActor; log("!!BEGIN"); default.v1=vect(5,4,3); assert(default.v1==vect(5,4,3)); test(); assert(default.v1==vect(1,2,3)); BroadcastMessage(Tag); BroadcastMessage(string(Tag)); BroadcastMessage("test "$string(Tag)); assert(IsA('Actor')); assert(IsA('TestInfo')); assert(IsA('Info')); assert(!IsA('LevelInfo')); assert(!IsA('Texture')); //o=dynamicloadobject( "UnrealShare.AutoMag.Reload", class'object' ); //assert(o!=None); //assert(o==None); log("!!END"); } function TestStructBools() { assert(ST.b1==false); assert(ST.b2==false); assert(ST.b3==false); ST.b1=true; assert(ST.b1==true); assert(ST.b2==false); assert(ST.b3==false); ST.b2=true; assert(ST.b1==true); assert(ST.b2==true); assert(ST.b3==false); ST.b3=true; assert(ST.b1==true); assert(ST.b2==true); assert(ST.b3==true); ST.b1=false; ST.b2=false; ST.b3=false; } function BeginPlay() { local testobj to; local object oo; to = new class'TestObj'; to = new()class'TestObj'; to = new(self)class'TestObj'; to = new(self,'')class'TestObj'; to = new(self,'',0)class'TestObj'; to.Test(); TestStructBools(); } function TestX( bool bResource ) { local int n; n = int(bResource); MyArray[ int(bResource) ] = 0; MyArray[ int(bResource) ]++; } function bool RecurseTest() { bBool1=true; return false; } function TestLimitor( class c ) { local class<actor> NewClass; NewClass = class<actor>( c ); } static function int OtherStatic( int i ) { assert(i==246); assert(default.xnum==777); return 555; } static function int TestStatic( int i ) { assert(i==123); assert(default.xnum==777); assert(OtherStatic(i*2)==555); } function TestContinueFor() { local int i; log("TestContinue"); for( i=0; i<20; i++ ) { log("iteration "$i); if(i==7||i==9||i==19) continue; log("..."); } log("DoneContinue"); } function TestContinueWhile() { local int i; log("TestContinue"); while( ++i <= 20 ) { log("iteration "$i); if(i==7||i==9) continue; log("..."); } log("DoneContinue"); } function TestContinueDoUntil() { local int i; log("TestContinue"); do { i++; log("iteration "$i); if(i==7||i==9||i>18) continue; log("..."); } until( i>20 ); log("DoneContinue"); } function TestContinueForEach() { local actor a; log("TestContinue"); foreach AllActors( class'Actor', a ) { log("actor "$a); if(light(a)==none) continue; log("..."); } log("DoneContinue"); } function SubTestOptionalOut( optional out int a, optional out int b, optional out int c ) { a *= 2; b = b*2; c += c; } function TestOptionalOut() { local int a,b,c; a=1; b=2; c=3; SubTestOptionalOut(a,b,c); assert(a==2); assert(b==4); assert(c==6); SubTestOptionalOut(a,b); assert(a==4); assert(b==8); assert(c==6); SubTestOptionalOut(,b,c); assert(a==4); assert(b==16); assert(c==12); SubTestOptionalOut(); assert(a==4); assert(b==16); assert(c==12); SubTestOptionalOut(a,b,c); assert(a==8); assert(b==32); assert(c==24); log("TestOptionalOut ok!"); } function TestNullContext( actor a ) { bHidden = a.bHidden; a.bHidden = bHidden; } function TestSwitch() { local string s; local int i; local bool b; s="Tim"; i=2; switch( i ) { case 0: assert(false); break; case 2: b=true; break; default: assert(false); break; } assert(b); switch( s ) { case "": assert(false); break; case "xyzzy": assert(false); break; default: b=false; break; } assert(!b); log("testswitch succeeded"); } function Tick( float DeltaTime ) { local class C; local class<testinfo> TC; local actor a; log("time="$Level.TimeSeconds); TestOptionalOut(); TestNullContext( self ); TestNullContext( None ); TestSwitch(); v1=vect(1,2,3); v2=vect(2,4,6); assert(v1!=v2); assert(!(v1==v2)); assert(v1==vect(1,2,3)); assert(v2==vect(2,4,6)); assert(vect(1,2,5)!=v1); assert(v1*2==v2); assert(v1==v2/2); assert(Pie==3.14); assert(Pie!=2); assert(Str=="Tim"); assert(Str!="Bob"); assert(Lotus==vect(1,2,3)); assert(GetPropertyText("sxx")=="Tim"); assert(GetPropertyText("ppp")!="123"); assert(GetPropertyText("bogus")==""); xnum=345; assert(GetPropertyText("xnum")=="345"); SetPropertyText("xnum","999"); assert(xnum==999); assert(xnum!=666); assert(bTrue1==true); assert(bFalse1==false); assert(bTrue2==true); assert(bFalse2==false); assert(default.bTrue1==true); assert(default.bFalse1==false); assert(default.bTrue2==true); assert(default.bFalse2==false); assert(class'TestInfo'.default.bTrue1==true); assert(class'TestInfo'.default.bFalse1==false); assert(class'TestInfo'.default.bTrue2==true); assert(class'TestInfo'.default.bFalse2==false); TC=Class; assert(TC.default.bTrue1==true); assert(TC.default.bFalse1==false); assert(TC.default.bTrue2==true); assert(TC.default.bFalse2==false); C=Class; assert(class<testinfo>(C).default.bTrue1==true); assert(class<testinfo>(C).default.bFalse1==false); assert(class<testinfo>(C).default.bTrue2==true); assert(class<testinfo>(C).default.bFalse2==false); assert(default.xnum==777); TestStatic(123); TC.static.TestStatic(123); class<testinfo>(C).static.TestStatic(123); bBool2=RecurseTest(); assert(bBool2==false); TestStructBools(); TestQ(); log( "All tests passed" ); } function f(); function temp() { local int i; local playerpawn PlayerOwner; local name LeftList[20]; for( i=0; i<20; i++ ) PlayerOwner.WeaponPriority[i] = LeftList[i+1]; temp(); } state AA { function f(); } state BB { function f(); } state CCAA extends AA { function f(); } state DDAA extends AA { function f(); } state EEDDAA extends DDAA { function f(); }
TestObj
//============================================================================= // TestObj: A purely scripted object for internal testing. //============================================================================= class TestObj extends Object; function Test() { log( "TestObj.Test" ); }