Februar 07, 2005 20:23

debugmo.de

Ok, ok, es mag so anmuten, als ob ich hier Schleichwerbung für LucasArts machen würde, da es mal wieder um Grim Fandango gehen soll.
Nur diesmal geht es nicht um das (zugegeben grandiose) Gameplay, sondern, um es kurz zu machen, darum, daß Half-Life nicht erste und einzige Spiel ist, welches prädestiniert ist zum "modden".. Ich stieß, als ich mit SCUMM Revisited in den Innereien des Spieles herumstocherte, in der Hilfe, in der auch erklärt wird, wie das SCUMM-Dateiformat aufgebaut ist - interessant zu lesen, auf folgende Passage: "Writing your own Grim Fandango scripts
Yep! You can write your own scripts using the GrimE engine. In general, it seems that GRIME is very likely to support the making of games by normal users. It has a preference for non-bundled files on the harddrive when choosing which files to use for a game. In order to go explore in the world of GRIME scripting, you need to do at least two things: Learn the Lua language."
Vollständige Dokumentation findet man unter lua.org. "Tweak your settings a bit.
The second part is the easiest: Open the registry, find the Grim Fandango entry (usually placed at HKEY_LOCAL_MACHINE/Software/LucasArts Entertainment Company LLC/Grim Fandango/v1.0). Inside this key, add a new string value. Name it "TextAllowed" and give it the value "TRUE". Now, make a directory within the Grim directory on your harddrive called "Scripts". Inside this directory you can place scripts to be run by the engine. By default, GrimE loads the script _system.lua first, and starts executing the function BOOT()."
Hiermit.. GRIME Script Functions
Following is a total list of script function names and identifiers defined by GRIME. In addition to these are the internal Lua functions and identifiers. Notice that Lua is case sensitive. GRIME functions
EnumerateVideoDevices Enumerate3DDevices SetHardwareState SetVideoDevices GetVideoDevices Is3DHardwareEnabled PurgePrimitiveQueue KillPrimitive ChangePrimitive DrawRectangle DrawPolygon DrawLine SetOffscreenTextPos SetEmergencyFont LocalizeString GetTextCharPosition GetTranslationMode SetTranslationMode GetColorComponents MakeColor PurgeText ExpireText BlastText KillTextObject ChangeTextObject GetFontDimensions GetTextObjectDimensions MakeTextObject PrintLine SayLine GetActorTalkColor SetActorTalkColor SetSayLineDefaults IsMessageGoing GetSmushLength GetKeyLength GetMemoryUsage RestoreIMuse SaveIMuse SetWalkSystemFadeTime GetDiskFreeSpace SetActorInvClipNode NukeResources GetShrinkPos UnShrinkBoxes ShrinkBoxes RestoreCache BuildCache ResetTextures DumpMemoryLog JustLoaded ActorVoiceIs3D GetTickCount ActorPuckOrient TEST GetSoundParameters SetSoundParameters AttachToResources DetachFromResources FindFileOnAnyCD GetTextSpeed SetTextSpeed GetSaveGameData SubmitSaveGameData BlastRect BlastImage FreeImage GetImage GetSaveGameImage SaveScreen ScreenShot TextFileGetLine TextFileGetLineCount IrisClear IrisComplete IrisUp IrisDown FadeInChore FadeOutChore SetActorClipPlane SetActorClipActive HardwareAccelerated ResReport RestoreCacheRect CacheRect MarkDirtyRect SetActorCollisionScale SetActorCollisionMode FlushControls ActorToClean SendObjectToFront SendObjectToBack SetObjectType FreeObjectState NewObjectState SetActorShadowValid AddShadowPlane KillActorShadows ActorDistToShadowPlane SetActiveShadow SetActorShadowPoint SetActorShadowPlane ActorShadow ActivateActorShadow SetShadowColor GetSpeechMode SetSpeechMode Display CleanBuffer DimRegion DimScreen ForceRefresh RenderModeUser SetActorConstrain SetActorWalkDominate SetGamma UnloadBundle LoadBundle ImGetSoundCacheSize ImGetMemoryFootprint ImSetVoiceEffect vfx ImResume ImPause ImSetCuePoint ImSetAttribute ImSetSequence ImSetState ImStopVoice ImStartVoice ImSetMusicVol ImGetMusicVol ImSetVoiceVol ImGetVoiceVol ImSetSfxVol ImGetSfxVol ImSetMasterVol ImGetMasterVol ImFadeParam ImSetParam ImGetParam quiet ImStopAllSounds ImStopSound play ImStartSound ImStopRecording ImStartRecording LightMgrSetChange LightMgrShutdown LightMgrStartup PointLightAt GetLightIntensity SetLightIntensity GetLightAngles SetLightAngles GetLightRotation SetLightRotation GetLightPosition SetLightPosition GetLightType SetLightType IsLightOn TurnLightOn FindLight SetAmbientLight GetAngleBetweenActors GetAngleBetweenVectors SnapToPlane PerSecond TurnActorTo PointActorAt GetCameraLookVector SetCameraRoll GetCameraRoll SetCameraFOV GetCameraFOV SetCameraInterest GetCameraInterest SetCameraPosition GetCameraPosition RotateVector SetMemoryUsage GetPhysicalBytes LoadCostume PopActorCostume PushActorCostume PrintActorCostumes GetCurrentScript SpewShutdown SpewStartup PreRender MakeSectorActive IsSectorActive GetSectorOppositeEdge GetSectorVertices ReadRegistryValue WriteRegistryValue QueryDialog InputDialog FileFindDispose FileFindNext FileFindFirst SetSoundPosition IsSoundPlaying PlaySoundAttached PlaySoundAt PlaySound IsMoviePlaying PauseMovie StopMovie StartMovie IsFullscreenMoviePlaying StartFullscreenMovie PreviousSetup NextSetup GetCurrentSetup MakeCurrentSetup UnLockSet LockSet MakeCurrentSet PrintDebug PrintWarning PrintError PrintMessage GetControlState DisableControl EnableControl UnlockCostume LockCostume UnlockSound LockSound UnLockFont LockFont EnableDebugKeys FunctionName ScreenToWorld WorldToScreen GetActorCostumeDepth GetActorLoopingChores GetActorChores SetActorChoreLooping IsActorResting IsActorChoring IsActorMoving CompleteActorChore StopActorChore PlayActorChoreLooping PlayActorChore IsActorTurning SetActorRoll SetActorPitch SetActorRot GetActorRot TurnActor GetPointSector IsPointInSector GetActorSector IsActorInSector SetActorFrustrumCull ShutUpActor SetActorFollowBoxes SetActorVisibility SetActorHead GetCameraActor GetVisibleThings CanActorSee GetActorLookRate SetActorLookRate IsActorLooking ActorLookAt WalkActorToInterest WalkActorToAvoiding WalkActorTo DriveActorTo WalkActorForward WalkActorVector GetClippedPos PutActorInSet PutActorAt PutActorAtOrigin PutActorAtInterest SetActorOffsetYaw SetActorReflection GetActorYawToPoint GetActorPuckVector GetActorRect GetActorPos LoadActor SetSelectedActor GetActorTurnRate SetActorTurnRate GetActorWalkRate SetActorWalkRate SetActorTalkChore SetActorMumblechore SetActorRestChore SetActorTurnChores SetActorWalkChore GetActorNodeLocation SetActorTimeScale GetActorTimeScale SetActorScale GetActorScale SetActorCostume GetActorCostume SetActorColormap Save Load CheckForFile SearchForFileOrSwapCDs EngineDisplay EngineResume EnginePause
..(und dem Spiel oder gar nur der Demo) sollte man also in der Lage sein, sein eigenes kleines Grafik-Adventure herzustellen, oder aber einen Remix des Original-Spiels zu machen (Auch in GF steckt bestimmt eine Menge nicht verwendetes Material.) oder, oder, oder..
Wenn man denn wollte, könnte, usw. :( Zum Herumspielen hat es bei mir immerhin gereicht, siehe Bild. Und das möchte ich auch allen LeserInnen ans Herz legen:
Holt die alten LucasArts-Adventures aus dem Schrank, saugt euch von mix’n’mojo, unter Tools, SCUMM Revisited, den SCUMM-File-Explorer, und geht damit ein wenig auf Entdeckungsreise - Und immer dran denken: Das X markiert die Stelle.
Unter der oben genannten URL sind auch noch andere "Lucas Hacks" aufgeführt, unter anderem die GF-Developer-Keys, mit denen man auch noch einiges anstellen kann. manny x 10 Die Rache des King Ko..ähh..Calavera - Obacht, ihr Tauben

Author: nille | Permalink | Category: games