AlignChar (CMS)

From The Official Visionaire Studio: Adventure Game Engine Wiki
Revision as of 14:06, 15 August 2014 by AFRLme (talk) (Created page with "{| class="wikitable" style="width:100%" |- ! style="text-align:left" | Name !! style="text-align:left" | Type !! style="text-align:left" | By |- | alignChar("c", "t") || Defin...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Name Type By
alignChar("c", "t") Definition AFRLme

This small function allows you to quickly align a character to another character.

Instructions

1. Add the main script to the Visionaire Studio Script Editor & set the script as a definition script.
2a. To align current character to another character...

alignChar("", "character_name")

2b. To align a specific character to another character...

alignObj("character_name", "character_name")

2c. To align a specific character to current character...

alignObj("character_name", "")

Main Script

function alignChar(c, t)
 if c == "" then c = game:getLink(VGameCurrentCharacter) else c = getObject("Characters[" .. c .. "]") end
 if t == "" then t = game:getLink(VGameCurrentCharacter) else t = getObject("Characters[" .. t .. "]") end
 -- + --
 local p1 = c:getPoint(VCharacterPosition)
 local p2 = t:getPoint(VCharacterPosition)
 -- + --
 local ax, ay
 ay = p1.y - p2.y
 ax = p2.x - p1.x
 -- + --
 local angle = math.deg( math.atan2(ay, ax) )
 if angle < 0 then angle = 360 + angle end
 -- + -- 
 c:setValue(VCharacterDirection, angle)
end

Syntax Breakdown

Name Type Description
c "string" This should be a "string" value containing the name of the character you want to affect; if string is empty it will default to current character.
t "string" This should be a "string" value containing the name of the character you want to align to; if string is empty it will default to current character.