Difference between revisions of "User:QQuix"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>QQuix
(→‎Observations: World spaces at load time)
imported>QQuix
(→‎My Tests: New test environments)
Line 93: Line 93:


=My Tests=
=My Tests=
====On Dynamic Items and Savegame Bloating====
===On Dynamic Items and Savegame Bloating===
Tests with Dynamic and Non-Dynamic items and their effect on savegame size
Tests with Dynamic and Non-Dynamic items and their effect on savegame size
::[[User:QQuix/On Dynamic Items and Savegame Bloating]]
::[[User:QQuix/On Dynamic Items and Savegame Bloating]]


===GetLOS===
This is a test mod  used to get an understanding of how the GetLOS function really behaves ingame.
It is intended to modders/scripters interested in using the GetLOS function: it will give you a 'feeling' on where GetLOS starts returning 0
This mod contains a decent arrow-like projectile script, if you need one.
This mod was built to determine whether GetLOS is a reliable way to determine collision while moving objects around with SetPos.
And it is kind of fun for the first few minutes.
The mod is here: [http://www.tesnexus.com/downloads/file.php?id=19980 TES Nexus]
There is a video here:[http://www.youtube.com/watch?v=nsRRsvYd_hc YouTube]
===Moving Objects and Marker Rats===
by QQuix  - Oct/2008  -  Version 1
This mod contains a ‘generic’ approach to move Statics, Activators and Containers.
It includes a Marker Rat script that recovers from/prevents the following characteristics/limitations/bugs(?) of the game engine:
-Objects moved to an unloaded cell (never?/seldom?) show up when the player enters the cell
-Objects moved to different world spaces snap back after save+load
-The typical Marker Rat approach is not generic enough as, being an actor, it will fall to the ground, losing the Z axis info
-It also (always?/sometimes?) snaps to a path grid node when the cell is reset.
It works both indoors and outdoors
It is intended to modders/scripters that need to move statics, activators and/or containers
The mod is here: [http://www.tesnexus.com/downloads/file.php?id=19980 TES Nexus]


=My Mods=
=My Mods=

Revision as of 10:09, 28 October 2008



Under construction----

I thought it better to dump my things here instead of editing WIKI pages for several reasons (language, not being sure where it should go, lack of talent for writing, etc)

I anybody considers anything worthy of being somewhere else, just let me know.

QQuix 20:14, 26 August 2008 (EDT)

Script code

Distances and angles

(WIP)

Three angle systems

The game uses three angle ‘systems’:

World Angle

Range – 0-360 - 0 degrees is up, increasing clockwise up to 360. (e.g: 90 = Right, 180 = Down, 270 = Left).

This is the most common. It is the angle you find in the CS for Reference Rotation.

This type of angle is returned by: GetAngle Z, GetStartingAngle

This type of angle must be provided for: SetAngle Z

Heading Angle

Range – -180 to +180 - 0 degrees is up, increasing clockwise up to 180 and decreasing counterclockwise down to -180. (e.g: 90 = Right, 180 = Down, -90 = Left, -180 = Down).

This is used to tell how a second object is positioned in relation to a first object heading

This type of angle is returned by: GetHeadingAngle

Trigonometric Angle

Range – 0 to 360 - 0 degrees is right, increasing counterclockwise up to 360. (e.g: 90 = Up, 180 = Left, 270 = Down). This is the standard trigonometric angle system.

This type of angle must be provided for OBSE trigonometric functions: Sin, Cos, Tan, etc

Sample code (2D)

DeltaX & DeltaY from Angle and distance

Useful when positioning an object at a given distance and angle from another object

;=================================
; Get:  DeltaX and DeltaY
; From:	Angle and distance
;=================================
set xAngle to xxx
set xDistance to xxx
if  xAngle <= 90
  set xxTrigAngle  to 90 - xAngle
else
  set xxTrigAngle to 450 - xAngle
endif 
set xDeltaX to xDistance * cos xxTrigAngle 
set xDeltaY to xDistance * sin xxTrigAngle 

Angle and distance from DeltaX & DeltaY

Useful to calculate the horizontal (2D) distance between two objects or in situations where GetDistance is not reliable.

Useful to calculate the heading angle in situations where GetHeadingAngle is not reliable (non-actors).

;=================================
; Get:  Angle and distance
; From: DeltaX and DeltaY
;=================================
set xAngle to atan2 xDeltaX xDeltaY   	;	returns -180 to +180
if xAngle  < 0
  set xAngle to xAngle + 360   		;	convert to 0-360
endif

set xDistance to ( xDeltaX * xDeltaX ) + ( xDeltaY * xDeltaY )
set xDistance to sqrt xDistance

Adding two angles

Self explanatory

;=================================
; Get:  Angle 
; From: Adding two angles
;=================================
set xAngle to xAngleA + xAngleB
if xAngle > 360
  set xAngle to xAngle - 360
endif
if xAngle < 0
  set xAngle to xAngle + 360
endif

Sample code (3D)

WIP

Observations

(Miscellaneous observations of mine)

Game engine

It seems the engine does not load all world spaces when the game is loaded, so persistent objects in some world spaces are not loaded in memory as they are supposed to (maybe some persistent objects are more persistent than others. lol) [Oct/2008]

My Tests

On Dynamic Items and Savegame Bloating

Tests with Dynamic and Non-Dynamic items and their effect on savegame size

User:QQuix/On Dynamic Items and Savegame Bloating

GetLOS

This is a test mod used to get an understanding of how the GetLOS function really behaves ingame.

It is intended to modders/scripters interested in using the GetLOS function: it will give you a 'feeling' on where GetLOS starts returning 0

This mod contains a decent arrow-like projectile script, if you need one.

This mod was built to determine whether GetLOS is a reliable way to determine collision while moving objects around with SetPos.

And it is kind of fun for the first few minutes.

The mod is here: TES Nexus

There is a video here:YouTube

Moving Objects and Marker Rats

by QQuix - Oct/2008 - Version 1

This mod contains a ‘generic’ approach to move Statics, Activators and Containers.

It includes a Marker Rat script that recovers from/prevents the following characteristics/limitations/bugs(?) of the game engine:

-Objects moved to an unloaded cell (never?/seldom?) show up when the player enters the cell -Objects moved to different world spaces snap back after save+load -The typical Marker Rat approach is not generic enough as, being an actor, it will fall to the ground, losing the Z axis info -It also (always?/sometimes?) snaps to a path grid node when the cell is reset.

It works both indoors and outdoors

It is intended to modders/scripters that need to move statics, activators and/or containers

The mod is here: TES Nexus

My Mods

QQuix Divine Elegance Showroom

This mod creates a showroom in Divine Elegance’s basement where live models will wear whatever Palonirya has for sale (Fashion Show style).

And Palonirya is so proud of her showroom that she decided to share it with all clothes and armor merchants in Cyrodill. ANY store.

This Mod is designed to show clothes and armor from any mod that adds them to one of the game shops. Even items/shops that will be created in the future.

QQuix Divine Elegance Showroom at TESNexus

WIP

QQuix Fly Away

I am writing a lot of complex scripts to make the PC and NPCs fly. This work is intended to the Dragon City Mod and, after the DC mod is released, I intend to add Creature and Object fights and release the whole thing as a Modder’s resource.

Personal info

I enjoy figuring out how to do things with the CS script. For this reason, I rarely, if ever, look into existing scripts from other modders. So, I may be reinventing the wheel all the time and may not come out with the best solution, but it is a conscious decision to improve learning and enjoy what I like to do.

Professional experience: IT. Started as a programmer, for a few years, long time ago. Since then, did a lot of other things in the IT business. Some experience coding Genetic Algorithms

Location: Brazil

Site: QQuix Quintessencials at the Wormhole