ID:152869
 
How do you guys do it? Do you make a master mold with all the variables and such and just make instances and change around the variables for them? Thats what Im gonna go ahead with...
Lou wrote:
How do you guys do it? Do you make a master mold with all the variables and such and just make instances and change around the variables for them? Thats what Im gonna go ahead with...

With shopkeepers, yes I would make a "master mold." On the other hand, different NPCs tend to be used differently, so it would be hard to shape a mold to fit them all.

Hiead
I make a basic npc, which handles all the common people that are around and don't really say much. It gets a var that states what it will say (usually a list for randomized messages). For the basic shopkeeper, I do pretty much the same thing but the list is for items it sells. They handle probably 70-90% of my npcs while the remainder are more specialized versions for say, quest people or shops with special qualities like only open at certain times or trade for certain things. These may have many different conversation paths or tasks to do than doing just one simple thing. They have their own procs and vars, while I still try to retain as many of the qualities of the basic npc, to handle this.
In response to Hiead (#1)
Generally what type of NPC it is would depend on the type that I use for it. If it's movable, it's a type of /mob/NPC, if it's non-movable, it's a type of /obj/NPC. Then I break down. If it's a type of /mob/NPC, I try to figure out of AI is required. If AI is required, I create a special datum to handle the tasks. If AI isn't required, I just let the NPC sit there and move a bit. ( When I say AI, I mean it actually performs action A when action B is performed. )
In response to Audeuro (#3)
Of course, objs could be used as well as the moving type, almost interchangeably. Almost. They are, after all, both derived of /atom/movable ... though each is still unique. It's all a matter of what you want, and what you need.

Hiead
I handle NPCs quite well. I program them to be subserviant, so I always get my way in my dealings with them. Here's an example.

mob/NPC/verb/dmb
set name = "do my bidding"
set src in oview()
usr << "Your wish is my command."


Good luck.