Citizens icon indicating copy to clipboard operation
Citizens copied to clipboard

SQL Support

Open ghost opened this issue 14 years ago • 2 comments

SQL Chart

Most of the values should be correct (yellow = int / float, blue = enum / boolean, red = string). I most of the tables could be merged into the NPC table, but I think it helps the expandability for later features and makes the structure clearer.

[Profession]_Active determines whether the NPC has the profession or not. Example:

  • A NPC that just has been created doesn't have any entries in any Profession table, therefore returning NULL if checked for Guard_Active.
  • A NPC that has been paid to be a Trader, but has been toggled again to be a normal NPC will have Trader_Active = false.
  • A Wizard will have Wizard_Active.

About the WP (Waypoints) table:

  • I think X, Y, Z, Delay are pretty clear, as are the primary keys NPC_ID and WP_ID.
  • WP_Text could be a text that the NPC says when he passes the waypoint (I think that has been requested in the bukkit forum?)

About the Stock table:

  • I think this table would allow the same item to be sold in multiple ways. (i.e. 1 dirt for 1 gold, 64 dirt for 64 gold, depending on the amount the trader has in the inventory. Could be used with spout for a better interface)
  • Stock_Buy and Stock_Sell determine the price of the item. If an item is not for Sale, Stock_Sell would return NULL.

About the other tables:

  • Healer: I don't know if you need Health_Max and Health_Rate (regeneration rate), you can leave them out.
  • List: Basically the blacklist / whitelist for the guards.
  • Location: Pitch should be the direction the player faces when he is teleported.
  • Blacksmith: Expertise maybe something like the Level of the Healer, so that the Blacksmith has a higher chance to break things instead of repairing them the lower his expertise is? :D
  • Inventory: Inventory_Inv is basically the inventory... couldn't find a better way than what you currently have in the .yml file.

ghost avatar Aug 14 '11 09:08 ghost

Thanks! It's looking really good :). After I get guards + questers finished, I may get the chance to look into adding SQL support. One question - should yml be an option as well?

fullwall avatar Aug 14 '11 11:08 fullwall

I think it should be. As far as I know, all plugins with SQL support have a flatfile (most of the times in .yml) support, because many serveradmins don't have access to a MySQL server.

ghost avatar Aug 14 '11 11:08 ghost