defmodule Odinsea.Repo.Migrations.CreateGameDataTables do use Ecto.Migration def up do # ============================================================================ # DROP DATA # ============================================================================ create table(:drop_data) do add :dropperid, :integer, null: false add :itemid, :integer, null: false, default: 0 add :minimum_quantity, :integer, null: false, default: 1 add :maximum_quantity, :integer, null: false, default: 1 add :questid, :integer, null: false, default: 0 add :chance, :integer, null: false, default: 0 end create index(:drop_data, [:dropperid], name: :mobid) create table(:drop_data_global) do add :continent, :integer, null: false add :droptype, :integer, null: false, default: 0 add :itemid, :integer, null: false, default: 0 add :minimum_quantity, :integer, null: false, default: 1 add :maximum_quantity, :integer, null: false, default: 1 add :questid, :integer, null: false, default: 0 add :chance, :integer, null: false, default: 0 add :comments, :string, size: 45 end create index(:drop_data_global, [:continent], name: :mobid_global) create table(:reactordrops) do add :reactorid, :integer, null: false add :itemid, :integer, null: false add :chance, :integer, null: false add :questid, :integer, null: false, default: -1 end create index(:reactordrops, [:reactorid]) # ============================================================================ # SHOP DATA # ============================================================================ create table(:shops) do add :npcid, :integer, default: 0 end create table(:shopitems) do add :shopid, :integer, null: false, default: 0 add :itemid, :integer, null: false, default: 0 add :price, :integer, null: false, default: 0 add :position, :integer, null: false, default: 0 add :reqitem, :integer, null: false, default: 0 add :reqitemq, :integer, null: false, default: 0 add :rank, :integer, null: false, default: 0 end create index(:shopitems, [:shopid]) create table(:shopranks) do add :shopid, :integer, null: false, default: 0 add :rank, :integer, null: false, default: 0 add :name, :string, size: 255, null: false, default: "" add :itemid, :integer, null: false, default: 0 end # ============================================================================ # WZ DATA TABLES (GAME DATA) # ============================================================================ create table(:wz_itemdata) do add :itemid, :integer, null: false, primary_key: true add :name, :string, size: 255 add :msg, :string, size: 4096 add :desc, :string, size: 4096 add :slotmax, :integer, null: false, default: 1 add :price, :string, size: 255, null: false, default: "-1.0" add :wholeprice, :integer, null: false, default: -1 add :statechange, :integer, null: false, default: 0 add :flags, :integer, null: false, default: 0 add :karma, :boolean, null: false, default: false add :meso, :integer, null: false, default: 0 add :monsterbook, :integer, null: false, default: 0 add :itemmakelevel, :integer, null: false, default: 0 add :questid, :integer, null: false, default: 0 add :scrollreqs, :string, size: 255 add :consumeitem, :string, size: 255 add :totalprob, :integer, null: false, default: 0 add :incskill, :string, size: 255, null: false, default: "" add :replaceid, :integer, null: false, default: 0 add :replacemsg, :string, size: 255, null: false, default: "" add :create, :integer, null: false, default: 0 add :afterimage, :string, size: 255, null: false, default: "" end create table(:wz_itemadddata) do add :itemid, :integer, null: false add :key, :string, size: 30, null: false add :value1, :integer, null: false, default: 0 add :value2, :integer, null: false, default: 0 end create table(:wz_itemequipdata) do add :itemid, :integer, null: false add :itemlevel, :integer, null: false, default: -1 add :key, :string, size: 30, null: false add :value, :integer, null: false, default: 0 end create table(:wz_itemrewarddata) do add :itemid, :integer, null: false add :item, :integer, null: false add :prob, :integer, null: false, default: 0 add :quantity, :integer, null: false, default: 0 add :period, :integer, null: false, default: -1 add :worldmsg, :string, size: 255, null: false, default: "" add :effect, :string, size: 255, null: false, default: "" end create table(:wz_questdata) do add :questid, :integer, null: false, primary_key: true add :name, :string, size: 1024, null: false, default: "" add :autostart, :boolean, null: false, default: false add :autoprecomplete, :boolean, null: false, default: false add :viewmedalitem, :integer, null: false, default: 0 add :selectedskillid, :integer, null: false, default: 0 add :blocked, :boolean, null: false, default: false add :autoaccept, :boolean, null: false, default: false add :autocomplete, :boolean, null: false, default: false end create table(:wz_questactdata) do add :questid, :integer, null: false, default: 0 add :name, :string, size: 127, null: false, default: "" add :type, :integer, null: false, default: 0 add :intstore, :integer, null: false, default: 0 add :applicablejobs, :string, size: 1024, null: false, default: "" add :uniqueid, :integer, null: false, default: 0 end create index(:wz_questactdata, [:questid], name: :wz_questactdata_questid_index) create table(:wz_questactitemdata) do add :itemid, :integer, null: false, default: 0 add :count, :integer, null: false, default: 0 add :period, :integer, null: false, default: 0 add :gender, :integer, null: false, default: 2 add :job, :integer, null: false, default: -1 add :jobex, :integer, null: false, default: -1 add :prop, :integer, null: false, default: -1 add :uniqueid, :integer, null: false, default: 0 end create table(:wz_questactquestdata) do add :quest, :integer, null: false, default: 0 add :state, :integer, null: false, default: 2 add :uniqueid, :integer, null: false, default: 0 end create table(:wz_questactskilldata) do add :skillid, :integer, null: false, default: 0 add :skilllevel, :integer, null: false, default: -1 add :masterlevel, :integer, null: false, default: -1 add :uniqueid, :integer, null: false, default: 0 end create table(:wz_questreqdata) do add :questid, :integer, null: false, default: 0 add :name, :string, size: 127, null: false, default: "" add :type, :integer, null: false, default: 0 add :stringstore, :string, size: 1024, null: false, default: "" add :intstoresfirst, :string, size: 1024, null: false, default: "" add :intstoressecond, :string, size: 1024, null: false, default: "" end create index(:wz_questreqdata, [:questid], name: :wz_questreqdata_questid_index) create table(:wz_questpartydata) do add :questid, :integer, null: false, default: 0 add :rank, :string, size: 1, null: false, default: "" add :mode, :string, size: 13, null: false, default: "" add :property, :string, size: 255, null: false, default: "" add :value, :integer, null: false, default: 0 end create index(:wz_questpartydata, [:questid], name: :wz_questpartydata_questid_index) create table(:wz_mobskilldata) do add :skillid, :integer, null: false add :level, :integer, null: false add :hp, :integer, null: false, default: 100 add :mpcon, :integer, null: false, default: 0 add :x, :integer, null: false, default: 1 add :y, :integer, null: false, default: 1 add :time, :integer, null: false, default: 0 add :prop, :integer, null: false, default: 100 add :limit, :integer, null: false, default: 0 add :spawneffect, :integer, null: false, default: 0 add :interval, :integer, null: false, default: 0 add :summons, :string, size: 1024, null: false, default: "" add :ltx, :integer, null: false, default: 0 add :lty, :integer, null: false, default: 0 add :rbx, :integer, null: false, default: 0 add :rby, :integer, null: false, default: 0 add :once, :boolean, null: false, default: false end create table(:wz_oxdata) do add :questionset, :integer, null: false, default: 0 add :questionid, :integer, null: false, default: 0 add :question, :string, size: 200, null: false, default: "" add :display, :string, size: 200, null: false, default: "" add :answer, :string, size: 1, null: false end create unique_index(:wz_oxdata, [:questionset, :questionid]) # ============================================================================ # SERVER CONFIG # ============================================================================ create table(:auth_server_channel_ip) do add :channelid, :integer, null: false, default: 0 add :name, :string, size: 255, null: false add :value, :string, size: 255, null: false end create index(:auth_server_channel_ip, [:channelid]) end def down do drop table(:auth_server_channel_ip) drop table(:wz_oxdata) drop table(:wz_mobskilldata) drop table(:wz_questpartydata) drop table(:wz_questreqdata) drop table(:wz_questactskilldata) drop table(:wz_questactquestdata) drop table(:wz_questactitemdata) drop table(:wz_questactdata) drop table(:wz_questdata) drop table(:wz_itemrewarddata) drop table(:wz_itemequipdata) drop table(:wz_itemadddata) drop table(:wz_itemdata) drop table(:shopranks) drop table(:shopitems) drop table(:shops) drop table(:reactordrops) drop table(:drop_data_global) drop table(:drop_data) end end