Difference between revisions of "Page Design Test 1"

Line 2: Line 2:
  
 
A content designer's task involve spawning signs, objects, widgets, ground spawns, and NPCs in that order. This is achieved by using a combination of the web database editor, commonly known as DB Editor, and the client itself. Below is information to help turn a unpopulated zone into one filled with everything from harvest nodes to monsters.
 
A content designer's task involve spawning signs, objects, widgets, ground spawns, and NPCs in that order. This is achieved by using a combination of the web database editor, commonly known as DB Editor, and the client itself. Below is information to help turn a unpopulated zone into one filled with everything from harvest nodes to monsters.
 
 
 
{{Header|assign quest to a local variable|BackgroundColor=3d78b4|FontColor=ffffff}}
 
{{Header|assign quest to a local variable|BackgroundColor=3d78b4|FontColor=ffffff}}
 
The very first thing that has to be done is to assign the quest ID to a local variable. This will be inserted just below the comments section. For this guide I am using Verex N'Za spawnscript so everyone can refer to that script if needed.
 
The very first thing that has to be done is to assign the quest ID to a local variable. This will be inserted just below the comments section. For this guide I am using Verex N'Za spawnscript so everyone can refer to that script if needed.
Line 36: Line 34:
  
 
Setting up a quest function is similar to wedding a chat function. For a refresher on addind chat function refer to [[ContentDesigner:Creating_Conversations | creating conversations]] page at the bottom.
 
Setting up a quest function is similar to wedding a chat function. For a refresher on addind chat function refer to [[ContentDesigner:Creating_Conversations | creating conversations]] page at the bottom.
 
{|style="table-layout:fixed; width: 100%;"
 
|{{TextBox
 
|Developer Task
 
|*Verify position, '''size''', heading of all Zone objects
 
*Delete duplicates of static Objects, like tents, sign posts, statues, etc.
 
*When object placement/correction is done, disable name, attack, targeting, level, etc.
 
|BackgroundColor=ffffff
 
|FontColor=000000}}
 
|}
 
 
 
{{Header|Widgets|BackgroundColor=3d78b4|FontColor=ffffff}}
 
Widgets are interactive objects in the world, such as Doors or clickable objects for quests/triggers, etc. The biggest issue with doors is the open/close coordinates are off, or backwards. Due to a math flaw in the parser/population routines, 50% of our doors are wrong and must be fixed.
 
{|style="table-layout:fixed; width: 100%;"
 
|{{TextBox
 
|Developer Task
 
|*Verify open and close heading of doors.
 
*Elevators/Lifts are not parsed properly, and must be setup.
 
*Verify coordinates (x,y,z), location and heading settings of all doors/clickables
 
*Build functionality of levers and switches
 
|BackgroundColor=ffffff
 
|FontColor=000000}}
 
|}
 
 
 
{{Header|Groundspawns|BackgroundColor=3d78b4|FontColor=ffffff}}
 
Ground spawns are harvestable items usually picked up by Gathering. These items are made up of things like harvest nodes, ? or shiny, ! or pages, and quest items on the ground.
 
 
{|style="table-layout:fixed; width: 100%;"
 
{|style="table-layout:fixed; width: 100%;"
 
|{{TextBox
 
|{{TextBox
|Developer Task
+
|Quest Function
|*[[ContentDesigner:Groundspawns#EQ2_Live|Observe Live]] - Observe the same area in EQ2Live's version of this zone and identify the Ground Spawn placements
+
|function QuestOffer(NPC, Spawn)<br/>
*[[ContentDesigner:Groundspawns#RAW_Data|Pop Raw Data]] and observe areas to clean up
+
&nbsp;&nbsp;&nbsp;&nbsp;if not HasQuest(Spawn, ASolidifiedFront) then<br/>
*[[ContentDesigner:Groundspawns#Building_Your_First_Node|First Node]] - decide where you want your "main" node to spawn
+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OfferQuest(NPC, Spawn, ASolidifiedFront)<br/>
*[[ContentDesigner:Groundspawns#Combining_Nodes|Combine Nodes]] - Combine all nodes in the surrounding area to build an ''estimated'' '''spawn percentage''' value
+
&nbsp;&nbsp;&nbsp;&nbsp;elseif HasQuest(Spawn, ASolidifiedFront) then<br/>
*[[ContentDesigner:Groundspawns#Cleanup_Remaining_Junk|Remove excess nodes]]
+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dlg_0_4(NPC, Spawn)<br/>
*[[ContentDesigner:Groundspawns#Designing_Offsets|Offsets]] - Create valid Offsets for spawn location placements to emulate seemingly random spawn locations
+
&nbsp;&nbsp;&nbsp;&nbsp;end<br/>
*[[ContentDesigner:Groundspawns#Respawn/Expire_Timers|Pop/Depop]] - Determine depop/repop rates for a node.
+
end
*[[ContentDesigner:Groundspawns#Assigning_Rewards|Groundspawn Items]] - Build the Ground Spawn '''Items''' lists
 
*[[ContentDesigner:Groundspawns#Advanced_Groundspawns|Advanced Groundspawns]] - Advanced Groundspawn "grouping" options
 
 
|BackgroundColor=ffffff
 
|BackgroundColor=ffffff
 
|FontColor=000000}}
 
|FontColor=000000}}
 
|}
 
|}
 
+
This function has a check to see if the player has the quest or not. Theses checks can be done using the if/elsif statements. You can see here we are using our variable ASolidifiedFront. We are also using the OfferQuest
 
 
{{Header|NPC|BackgroundColor=3d78b4|FontColor=ffffff}}
 
NPCs are the humanoid, interactive spawns in a zone that players communicate, accept quests from, and engage in combat with.
 
{|style="table-layout:fixed; width: 100%;"
 
|{{TextBox
 
|Developer Task
 
|*[[ContentDesigner:NPCs#Verify_Locations|Verify Spawn Locations]] - spawns are in their proper positions (static spawns, x,y,z,heading)
 
*[[ContentDesigner:NPCs#Verify_Appearances|Verify Spawn Appearances]] - that their colors/equipment are reasonable to what is in EQ2 Live
 
*[[ContentDesigner:NPCs#Wanderers|Wandering Dupes]] - starting point and paths, plus remove duplicates
 
*[[ContentDesigner:NPCs#Consolidation|Consolidate Spawns]] - that have level, size, or appearance differences only (see note)
 
*[[ContentDesigner:NPCs#Linked_Spawn_Groups|Linked Spawn Groups]] - (multi-spawn parties) of 2-6 NPCs and/or Boss encounters
 
*[[ContentDesigner:NPCs#Entity_Commands|Entity Commands]] - the right-click menus for each spawn
 
*[[ContentDesigner:NPCs#Spawn_Customization|Special Setups]] - special Equipment, Skills and Spells so they behave accordingly
 
*[[ContentDesigner:NPCs#Spawn_Scripts|Spawn Scripts]] - Design, develop and assign spawn scripts
 
|BackgroundColor=ffffff
 
|FontColor=000000}}
 
|}
 
 
 
 
 
{{Header|Links|BackgroundColor=3d78b4|FontColor=ffffff}}
 
[[ContentDesigner:Verify_&_Observe|Verify & Observe]]
 

Revision as of 20:38, 25 September 2015

ContentDesigner:SpawnScripts - Calling Quests

Return to: ContentDesigner:SpawnScripts | Tutorials | Portal | Forum | Project Manager | Bug Tracker


A content designer's task involve spawning signs, objects, widgets, ground spawns, and NPCs in that order. This is achieved by using a combination of the web database editor, commonly known as DB Editor, and the client itself. Below is information to help turn a unpopulated zone into one filled with everything from harvest nodes to monsters.

assign quest to a local variable

The very first thing that has to be done is to assign the quest ID to a local variable. This will be inserted just below the comments section. For this guide I am using Verex N'Za spawnscript so everyone can refer to that script if needed.

Comments Section with quest variable

--[[
Script Name : <script-name>
Script Purpose : <purpose>
Script Author : <author-name>
Script Date : 9/7/2015
Script Notes : <special-instructions>
--]]

local ASolidifiedFront = 120

A breakdown of the new line local ASolidifiedFront = 120.

Starting off we use the word local to let the script know that this variable is to be used in this script only, and no where else.

Next I gave the variable the name ASolidifiedFront. This can be anything you want, but to make the script easier to understand later it is our requirement to name the variable after the quest. As you can see here it is easy to tell that the quest here is A Solidified Front.

The variable ASolidifiedFront has to be assigned to the quest ID. This way when the function sees the variabl ASolidifiedFront in the code it will know what quest to look for. Here it is set to 120 and is the quest ID of A Solidified Front.

To get the quest ID you can log on to the web database editor and find it under the quest section. If you are working on a local, or private, server you will need to look in your database.


Quest Function

We need to add a new function to our script. Choose a name for this function that will resemble what you want to accomplish like QuestOffer.

Setting up a quest function is similar to wedding a chat function. For a refresher on addind chat function refer to creating conversations page at the bottom.

Quest Function

function QuestOffer(NPC, Spawn)
    if not HasQuest(Spawn, ASolidifiedFront) then
        OfferQuest(NPC, Spawn, ASolidifiedFront)
    elseif HasQuest(Spawn, ASolidifiedFront) then
        dlg_0_4(NPC, Spawn)
    end
end

This function has a check to see if the player has the quest or not. Theses checks can be done using the if/elsif statements. You can see here we are using our variable ASolidifiedFront. We are also using the OfferQuest