No categories assigned

DBEditor:Admin

DBEditor: Admin

The Admin Editor option is not really editing at all, but more of a grouping of Content Management features, such as spawning a zone, or building dialogs. Not all menu options are available to all team members, as some of them are specific to the Project Admin's work, but the ones shown here should be for general use by the Content Design team.

DBE Admin.jpg

A look into the individual menu items:


Admin

The Admin section are just general lookups and validation options.


Server Stats

This option gives a quick overview of the current Development and Live (EQ2TC) servers; both the players and content. For example:

DBE Admin1.jpg

You can see here the average players on the Test Center server, the quests they have done, highest levels, etc. You can also see who the last 10 players to login were, so you can get an idea if the server is still running emoticon


Log Files

This is a special menu meant only to review changes made by team members, or to observe the logging happening on your server at this time (using an AJAX "tail" call to the server's log file).

DBE Admin2.jpg

In this example, you would click on the link for Show DBEditor Logs and it would pull up a directory listing of all current Editor logs. These are every SQL change submitted by a team member via the DB Editor. Clicking on an individual team member's log by week, a simple text display of SQL statements are shown.


NOTE: This is why all work MUST be done via this DB Editor, because the changes made here provide the SQL statements necessary to update everyone elses servers via the Patch Server service!


Validate Scripts

This option will check the Database for LUA script assignments, then chase down the path of the physical file on the developer server hard disk in order to reconcile that every script on the drive is in use in the database, or that every database entry has a valid script file. An example of this is as follows:

DBE Admin3.jpg

Since our Database got wiped of content, you can see in this example we have all the scripts physically on the drive for these spawns, but the tie between the spawn itself, and the file, is broken... so the script file is considered "an orphan". You can fix this by going to the spawn, item, quest, spell or zone editors themselves and re-attaching the script to the proper owner.

More on this later.


Migrate

There are a few Migrate Data options, but the only one available to the Content Designers is Migrate Zone (at this time).


Migrate Zone

This is a huge system, and a very critical one, so I will be covering it on it's own page here - Migrate Zone


Purge Zone

THIS IS A VERY DESTRUCTIVE COMMAND!!!

As the name sounds, this command will erase every spawn in a zone, no matter what type. Use this ONLY if you are certain you want to start completely from scratch populating a zone.

Be sure to check with your other team members before purging a zone!

DBE Admin5.jpg

Selecting Purge Zone will bring you to a zone picker. The zones listed are only zones that contain spawns, keeping it simple. Note that the command "Purge All Zones" currently does not do so, because that was deemed far too dangerous to use. It is only an option for the Project Admin while testing this editor and migration scripts.

Once you select to Purge a zone, you are shown a list of spawns that will be deleted, and given one last option to abort. If you click "Purge Zone", they are gone forever.

The Spawn ID's that get purged in this manner DO get reset to unprocessed in the RAW database, 
so they can be re-populated again using Migrate Zone.


Scripting

These commands are based around building LUA scripts or their functions as automatically as possible.


Build Dialogs

"Dialogs" are what we call the conversations back-and-forth that players have with the NPCs. The NPC will say something, and the player is prompted with a series of options to answer. Depending on the answer, the conversation takes a different path, and possibly a different outcome.

The packet collector can collect these dialogs in various packets which we can parse out, and stuff into a database table in order to build as much of a live-like experience as we can. Not all our data is perfect, and every script generated automatically in this manner will require some form of cleanup... but this option is provided so we do not have to type every scrap of dialog manually ourselves!

DBE Admin6.jpg

Select Build Dialogs, and then pick a Zone you wish to work on. Once the zone comes up, you have an option to select an individual NPC within that zone to work on. A Project Admin Only option is to process all SpawnScripts in the entire zone - which for now, we are not doing.


Once you select an NPC to work with, you can see the screen below:

DBE Admin6a.jpg

1. The Zone/Spawn picker
2. The relative path from your world server where the script will be written to
   (folders will be created for you if they do not exist)
3. The script body, automatically generated and formatted to EQ2Emulator Scripting Standards
4. The Save To button writes the current text block to the drive, 
   and inserts the link between the current NPC and it's script
5. The fully-qualified path to the SpawnScript file


Note the Script Header at the top. This is mandatory!!! Every script must have a Header detailing what the script is for. Some scripts come with additional options not shown here, but discussed elsewhere in this WIKI. This data is imperative that it is accurate because tools development in the future will depend heavily on this Script Header Format.


Building Dialogs in this way saves an impossible amount of time, and we're getting better at manipulating the raw data each time we encounter something new.


For more information, see Building Dialogs from Raw Data.

Build Conversations

Conversations are a little bit misleading, but that's what they are called. A Conversation is nothing more than a shout-out from an NPC to a player - no response necessary... such as a Hail reply, or random dialog as you are walking by, or emotes the NPCs do (like saluting) when a player approaches. These are known to us as PlayFlavor commands. More details on this can be found in the LUA Commands WIKI pages.


Note:

When using Build Dialogs to build a SpawnScript, 90% of the time all the "Conversations" 
that spawn might have will also be built with the Dialog scripting. There will be no need
to also Build Conversations for that NPC.

This option is available for those NPCs that LACK a dialog option, and are merely shouters.
Always check all NPCs you are scripting to be sure there are not dialogs or conversations
you are missing!


Build Conversations picker and editor is no different than Build Dialogs, so I won't show those details again. But I will show off one of the PlayFlavor functions so you see what it looks like:

function hailed(NPC, Spawn)
       FaceTarget(NPC, Spawn)
       
       PlayFlavor(NPC, "voiceover/english/rok_combat_vo/a_myconid/ft/_exp04/fungusman/fungusman_aggro_a03aa9ef.mp3", "Protect the fungus!", "", 3940860725, 3507858242, Spawn)
end

In this sample, you see the NPC is who is saying it, the internal client path-to-mp3-file, the text that appears above the spawns head "Protect the fungus!", an optional sub-function that could be called, and the 2 "keys" needed to decrypt this internal MP3 file.


Very Important! That very last parameter "Spawn" is you, the player. This ensures that only YOU hear this PlayFlavor conversation, and not everyone in the zone around you... because that sure could get annoying! There are options where NPC conversation with players is not muted for other players, but for this example, it is.


Build Movement

Build Movement is a completely optional script generator that has since been replaced by Scatman's Movement Loop Generator application. Similar to how Scatman's app works, if you go into the live game and follow around a wandering NPC while doing /loc commands every time they shift direction or distance, you can "parse" those LOC statements here, and generate MovementLoop() LUA statements based on speed and delay-at-waypoint.


Since this function is obsolete, I won't go into anymore detail. I recommend using the Movement Loop Generator instead.


List Voiceovers

This is a very basic lookup script that will search our raw conversation data for PlayFlavor file-path names for specific keywords. Like the example in the editor page itself, if you wanted to see PlayFlavor's for all darkelf guards, you would enter

darkelf, guard

in the box and click Search. What is returned is a copy/paste-able script with a random of all the PlayFlavors found. This option is also not used too much anymore, but could come in handy if you wanted to spice an area up and give an NPC something to say who had nothing to say before... you could look up it's race/gender/class combo and toss the PlayFlavor into that NPCs script. Voila! The NPC is no longer silent.


Back to DB Editor