Difference between revisions of "ContentDesigner:Creating Movement"
| Line 39: | Line 39: | ||
The first MovementLoopAddLocation() ends the parameters just after the delay. The function name is optional and is not used throughout most of this code. This line looks like this... | The first MovementLoopAddLocation() ends the parameters just after the delay. The function name is optional and is not used throughout most of this code. This line looks like this... | ||
MovementLoopAddLocation(NPC, -407.46, -60.48, 174.23, 2, 8) | MovementLoopAddLocation(NPC, -407.46, -60.48, 174.23, 2, 8) | ||
| − | If the MovementLoopAddLocation() parameters are compared to the parameters guide listed above we can see that -407.46 is the X coords, -60.48 is the y coords, 174.23 is the z coords. We can also see that our speed is set to 2. This should be the average walk speed, and that is what we want to have this NPC do. We end with the delay parameter. This is measured in seconds. So our friend here will pause at this location for 8 seconds before moving to the next location. | + | If the MovementLoopAddLocation() parameters are compared to the parameters guide listed above we can see that -407.46 is the X coords, -60.48 is the y coords, 174.23 is the z coords. We can also see that our speed is set to 2. This should be the average walk speed, and that is what we want to have this NPC do. If we wanted the NPC to run we would set this to 4. If the NPC is to chase something then set this to 6. We end with the delay parameter. This is measured in seconds. So our friend here will pause at this location for 8 seconds before moving to the next location. |
| + | |||
| + | The next line uses math.random() to set our delay. | ||
| + | MovementLoopAddLocation(NPC, -420.76, -60.86, 180.15, 2, math.random(5, 15)) | ||
| + | It is easy to see that ''math.random(5, 15)'' is telling us that 5 seconds is the lowest number to choose from and to go as high as 15 seconds. Now it will make each NPC different than the next when moving from point to point. On thing to keep in mind is when an NPC is spawned and math.random() chooses the number to use for the delay it will keep using that number until the end of that spawns life cycle. Do instance he is killed. | ||
Revision as of 17:34, 14 June 2016
ContentDesigner:SpawnScripts - Creating Movement
Return to: ContentDesigner:SpawnScripts | Tutorials | Portal | Forum | Project Manager | Bug Tracker
The Creating Movement guide will show you how to get your NPC's to walk and run around. With many different combinations you can make a specific path for the NPC to follow to walking in circles if you choose.
There are two functions that can be used to make an NPC move. Below you will find examples of how to use both to make an NPC move around in Norrath.
The MovementLoopAddLocation() function will allow an NPC to move along a given set of coordinates. This can be along a path, in a circle, or random locations. The below example will show a simple movement script. There must be at least two MovementLoopAddLocation() functions in the script for this to work, and the parameters used are as follows... NPC, x, y, z, speed, delay, function name Note *The delay is in seconds *The function name is optional Now let's see an example function spawn(NPC) MovementLoopAddLocation(NPC, -407.46, -60.48, 174.23, 2, 8) MovementLoopAddLocation(NPC, -420.76, -60.86, 180.15, 2, math.random(5, 15)) MovementLoopAddLocation(NPC, -425.42, -61.32, 186.58, 2) MovementLoopAddLocation(NPC, -424.20, -61.98, 190.47, 2, math.random(5, 15)) MovementLoopAddLocation(NPC, -410.19, -62.87, 189.81, 2, math.random(5, 15)) MovementLoopAddLocation(NPC, -406.82, -60.56, 174.38, 2, math.random(5, 15), "Comment") end This script contains the function spawn(NPC) and will run everything inside this block of code when the NPC spawns. This means everytime the NPC spawns it will begin the movement loop. Taking a closer look at this code we can see there are a few different ways of using the MovementLoopAddLocation() function. Here is breakdown of those lines. The first MovementLoopAddLocation() ends the parameters just after the delay. The function name is optional and is not used throughout most of this code. This line looks like this... MovementLoopAddLocation(NPC, -407.46, -60.48, 174.23, 2, 8) If the MovementLoopAddLocation() parameters are compared to the parameters guide listed above we can see that -407.46 is the X coords, -60.48 is the y coords, 174.23 is the z coords. We can also see that our speed is set to 2. This should be the average walk speed, and that is what we want to have this NPC do. If we wanted the NPC to run we would set this to 4. If the NPC is to chase something then set this to 6. We end with the delay parameter. This is measured in seconds. So our friend here will pause at this location for 8 seconds before moving to the next location. The next line uses math.random() to set our delay. MovementLoopAddLocation(NPC, -420.76, -60.86, 180.15, 2, math.random(5, 15)) It is easy to see that math.random(5, 15) is telling us that 5 seconds is the lowest number to choose from and to go as high as 15 seconds. Now it will make each NPC different than the next when moving from point to point. On thing to keep in mind is when an NPC is spawned and math.random() chooses the number to use for the delay it will keep using that number until the end of that spawns life cycle. Do instance he is killed.
|
The second one MoveToLocation() will allow the NPC to move to a specific location then stop.