Page 1 of 2

Spawn Commands

Posted: Sun Dec 16, 2007 9:09 am
by LethalEncounter
Most of you are probably unaware of this, but I made a change to the emu that will be in version 0.5 affecting commands. Instead of using a underscore to differentiate between separate commands, I implemented John Adams idea of allowing commands to have subcommands like '/spawn add' (add being the subcommand). This makes commands easier to use, but more importantly it gives us the advantage of being able to specify minimum status requirements for each subcommand. If adding your own subcommands remember that all subcommands must have a parent command.
Anyways getting back to the point of this post. Below are a list of the spawn commands that I am implementing in accordance with #3 on my priority list. If you see one that I missed or you feel should be added/changed, let me know ASAP before I am finished with them.
Legend: parameters enclosed in [ ] are mandatory, those enclosed in ( ) are optional

Code: Select all

/spawn add [spawn group id] [spawn group name] (percentage)
Saves the Targeted spawn to DB using the given spawn group id.  You can specify [i]new[/i] for [spawn group id] to generate a new spawn group id for this spawn.  Put quotes around [spawn group name] if it is more than one word.  Percentage defaults to 100 if not given

Code: Select all

/spawn create [spawn type] [race type] [class type] [level] [name] (difficulty) (size)
Unlike the original /spawn command which required an NPC or Object ID, this creates a new spawn that can be added to your database. Valid types are Object or NPC

Code: Select all

/spawn details 
This will list details about the targeted spawn

Code: Select all

/spawn equipment [slot] [appearance id] (red) (green) (blue) (highlight red) (highlight green) (highlight blue) 
Set the visual textures for a NPC.  Slot is 0 to 24

Code: Select all

/spawn list [spawn type] [name]
Name can be a partial portion of the NPC/Object's name.

Code: Select all

/spawn set [option] [value]
Sets the option to the selected value for the Targeted spawn.  Spawn must be targeted for this to work.  Options for this command havent been finalized yet but will include things like name, level, class, race, size, etc.  Just about any option that I can think of that affects the display of the mob I will include.

Code: Select all

/spawn remove 
Removes the Targeted spawn from the zone.  Note that this does not delete them from the NPC or Object tables.

Code: Select all

/spawn target [spawn type] [id] 
This will set the given spawn as targetable.  Used to change a spawn if it was set to untargetable.

Code: Select all

/spawn [spawn type] [id] (x) (y) (z) (heading) (location)
I modified the spawn command to get rid of the parameters that were obsolete when the /spawn create command was added.
The commands that modify the spawn's information immediately save the new information to the database if the given spawn was previously added to the database.
I didn't feel a need to add a /spawn delete command because once spawns are in the NPC or Object table they don't table up much space and if you use the /spawn remove command to get rid of all of them in your zones they won't be loaded. By not deleting them from your NPC or Objects table you can always re-add them to your zone. Note that names with spaces in them can be set by enclosing the name in quotes (" or '). If you don't, the parser will think the rest of the name is a separate parameter.

Posted: Sun Dec 16, 2007 11:36 am
by CrabClaw
Excellent! I can't wait to get started playing around populating zones and such, I've played the game for so long I practically memorized the tier 1 - 3 zones, monster and resource-wise on both sides. I'll try to share whatever data I work on if anyone wants, when it becomes available and I test it a bunch.

Posted: Sun Dec 16, 2007 12:07 pm
by LethalEncounter
Have you thought about joining the DB project team? I'm sure they could use your help :)

Posted: Sun Dec 16, 2007 4:15 pm
by CrabClaw
Sure! I'd be glad to help. I have to get get me a fresh RoK client first (asap) and un-install my old one and re-install. I want to have a non-patched vanilla starting point for work. But as I did with quests back in EQEmu, I am always willing to help out where I can.
I do have my own server setup here as well for private experimentation.
The quests though, I only have a copy of the original EQ2 hintbook/prima-guide, so the quest data I have is a bit like "at-launch" though.

Posted: Sun Dec 16, 2007 7:24 pm
by LethalEncounter
heh np, I personally liked the old quests. Especially the old class quests and the citizen quest. It was much more interesting than it is on live now.

Posted: Sun Dec 16, 2007 7:50 pm
by alfa
LethalEncounter wrote:heh np, I personally liked the old quests. Especially the old class quests and the citizen quest. It was much more interesting than it is on live now.
100% agree T5 (original game) for ever and ever :P

Posted: Mon Dec 17, 2007 1:14 am
by CrabClaw
Wow nice! I love them a lot too! I really liked the feeling of "earning my wings" as a Paladin or a Swashie, it was part of the original charm the game had, before they started 'tweaking' it.
Poor Captain Vargas. :)

Posted: Mon Dec 17, 2007 12:18 pm
by John Adams
CrabClaw, it would be an honor to work with you on the DB team. Definitely, sign up! But you and I need to argue manual spawn vs collected data first. LOL

Posted: Fri Dec 21, 2007 11:48 am
by palaxe
What about a '/respawn all' command? or am I on a differnt page... sorry.

Posted: Fri Dec 21, 2007 12:01 pm
by CrabClaw
Yes a '/respawn' or '/spawn update' type re-pop would complete the set.
Maybe a /respawn <zone> so you could do it remotely would be nice so an admin could re-pop a zone that he wasn't in (only if it was active of course.). :)

Posted: Fri Dec 21, 2007 6:42 pm
by LethalEncounter
Great idea, I'll add it in.

Posted: Sun Dec 30, 2007 9:27 pm
by LethalEncounter
I'm almost done with these. I added /spawn target to the list because when I was testing the /spawn set targetable 0 command I found that there was no way of setting it back without changing it in the DB and restarting the server :P I figured that would happen and thought I would add a command to fix it before it was requested.
The following values are able to be set using the /spawn set command. If you see anything else you would like me to add to the set command let me know ASAP. Oh and btw, all available options can be seen with /spawn set list

Code: Select all

attackable
chest_type
class
difficulty
display_hand_icon
facial_hair_type
gender
hair_type
heading
heroic
hp
legs_type
level
location
name 
power
race_type
respawn
show_command_icon
show_level
show_name
size
soga_facial_hair_type
soga_hair_type
soga_race_type
targetable
wing_type
x
y
z

Posted: Mon Dec 31, 2007 12:16 pm
by CrabClaw
Good show! Now that the Emu has stabilized for me I am going to get on this. This is a very useful thread, maybe a sticky?
After making a bunch of Evil Captain Varlos spawns, stocking lighthouse dock with them, and farming them, I found I would like a couple commands to make adjusting spawns (NPCs and objects) easier. (Note: The exact names type are open for adjustment and discussion, these are just examples.)

Code: Select all

/target comehere
/target faceme
One though came to mind when I was making my test - 'Attack of the Varlos Clones' spawns was a database table for spawn group presets. This would come in handy for quickly placing a group of critters. Like this:

Code: Select all

spawn_templates <-Table name
id
groupname
creatureid_01
creatureid_02
creatureid_03
creatureid_04
creatureid_05
creatureid_06...to 10?
Then all you'd have to do is:
/spawn template [templateid] [newname] (percentage) (patrolpathid) [? maybe some more params]
Then a fresh group of critters would be copied and given a new id on the zone spawns table. This would give you a shorthand way to make groups and have them handy in a 'macro-y table'.
Then, all you would have to do is /target come and /target faceme to get them all set up pretty (with possibly a /zone save(?) afterwards).
Also maybe spawns and spawn groups could have a day/night tag as well. I think the bats in the Peat Bog did this. They would de-pop at the changing from dusk to dawn and vice versa. Kind of like:

Code: Select all

0 default
1 day only
2 night only
3 dusk time period (~an hour or so)
4 dawn time period (~an hour or so)
The only other thing at the moment would be a set of:

Code: Select all

/lookup name [NPC, Item or Object id] (returns a list of names on a search string)
/lookup stats [NPC, Item or Object id] (returns a dump of the stats)
Just a couple ideas off the top of my head after messing with things a bit. Excuse me if I repeated anything.

Posted: Sat Jan 19, 2008 10:30 am
by Jabantiz
How about options to change the skin color? Playing with these commands I noticed most player models and some npc models show up black. I attempted to add this myself but I don't know enough to get it to work.

Posted: Tue Jan 22, 2008 1:21 pm
by CrabClaw
I think if you log in and out your client will re-up the skins. I noticed that when I was making my own test NPCs. It may be something else though.