diff --git a/data/dk.db b/data/dk.db index f32aefa..4e86411 100644 Binary files a/data/dk.db and b/data/dk.db differ diff --git a/moonshark b/moonshark index a234a20..8d4c1de 100755 Binary files a/moonshark and b/moonshark differ diff --git a/routes/install/first/get.lua b/routes/install/first/get.lua deleted file mode 100644 index eb2cdbf..0000000 --- a/routes/install/first/get.lua +++ /dev/null @@ -1,14 +0,0 @@ -http.set_content_type("text/html") -return [[ - -
-Installation for Dragon Knight is a simple two-step process: set up the database tables, then create the admin user. After that, you're done.
+ + + +]] diff --git a/routes/install/second/get.lua b/routes/install/second/get.lua index ac8189d..a9e500d 100644 --- a/routes/install/second/get.lua +++ b/routes/install/second/get.lua @@ -1,6 +1,8 @@ local start = microtime(true) local db = sqlite("dk") +db:begin() + db:create_table("babble", "id INTEGER PRIMARY KEY AUTOINCREMENT", "posted TEXT NOT NULL DEFAULT '00:00:00'", @@ -24,6 +26,130 @@ db:create_table("control", "show_online INTEGER NOT NULL DEFAULT 0" ) +db:create_table("drops", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "name TEXT NOT NULL", + "level INTEGER NOT NULL DEFAULT 0", + "type INTEGER NOT NULL DEFAULT 0", + "attribute_1 TEXT NOT NULL DEFAULT ''", + "attribute_2 TEXT NOT NULL DEFAULT ''" +) + +db:create_table("forum", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "author INTEGER NOT NULL", + "parent INTEGER NOT NULL DEFAULT 0", + "replies INTEGER NOT NULL DEFAULT 0", + "title TEXT NOT NULL", + "content TEXT NOT NULL", + "posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", + "latest DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP" +) + +db:create_table("items", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "type INTEGER NOT NULL DEFAULT 0", + "name TEXT NOT NULL", + "value INTEGER NOT NULL DEFAULT 0", + "attribute INTEGER NOT NULL DEFAULT 0", + "special TEXT NOT NULL DEFAULT ''" +) + +db:create_table("monsters", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "name TEXT NOT NULL", + "max_hp INTEGER NOT NULL DEFAULT 1", + "max_dmg INTEGER NOT NULL DEFAULT 0", + "armor INTEGER NOT NULL DEFAULT 0", + "level INTEGER NOT NULL DEFAULT 0", + "max_exp INTEGER NOT NULL DEFAULT 0", + "max_gold INTEGER NOT NULL DEFAULT 0", + "immune INTEGER NOT NULL DEFAULT 0" +) + +db:create_table("news", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "author TEXT NOT NULL DEFAULT 'Guild Master'", + "postdate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", + "content TEXT NOT NULL" +) + +db:create_table("spells", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "name TEXT NOT NULL", + "mp INTEGER NOT NULL DEFAULT 0", + "power INTEGER NOT NULL DEFAULT 0", + "type INTEGER NOT NULL DEFAULT 0" +) + +db:create_table("towns", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "name TEXT NOT NULL", + "lat INTEGER NOT NULL DEFAULT 0", + "lon INTEGER NOT NULL DEFAULT 0", + "inn_price INTEGER NOT NULL DEFAULT 0", + "map_price INTEGER NOT NULL DEFAULT 0", + "tp_cost INTEGER NOT NULL DEFAULT 0", + "items TEXT NOT NULL" +) + +db:create_table("users", + "id INTEGER PRIMARY KEY AUTOINCREMENT", + "username TEXT NOT NULL", + "password TEXT NOT NULL", + "email TEXT NOT NULL", + "verified INTEGER NOT NULL DEFAULT 0", + "verify_token TEXT NOT NULL DEFAULT ''", + "registered DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", + "last_login DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", + "auth INTEGER NOT NULL DEFAULT 0", + "lat INTEGER NOT NULL DEFAULT 0", + "lon INTEGER NOT NULL DEFAULT 0", + "class_id INTEGER NOT NULL DEFAULT 1", + "currently TEXT NOT NULL DEFAULT 'In Town'", + "fighting INTEGER NOT NULL default 0", + "monster_id INTEGER NOT NULL default 0", + "monster_hp INTEGER NOT NULL default 0", + "monster_sleep INTEGER NOT NULL default 0", + "monster_immune INTEGER NOT NULL default 0", + "uber_dmg INTEGER NOT NULL default 0", + "uber_def INTEGER NOT NULL default 0", + "hp INTEGER NOT NULL default 15", + "mp INTEGER NOT NULL default 0", + "tp INTEGER NOT NULL default 10", + "max_hp INTEGER NOT NULL default 15", + "max_mp INTEGER NOT NULL default 0", + "max_tp INTEGER NOT NULL default 10", + "level INTEGER NOT NULL default 1", + "gold INTEGER NOT NULL default 100", + "exp INTEGER NOT NULL default 0", + "gold_bonus INTEGER NOT NULL default 0", + "exp_bonus INTEGER NOT NULL default 0", + "strength INTEGER NOT NULL default 5", + "dexterity INTEGER NOT NULL default 5", + "attack INTEGER NOT NULL default 5", + "defense INTEGER NOT NULL default 5", + "weapon_id INTEGER NOT NULL default 0", + "armor_id INTEGER NOT NULL default 0", + "shield_id INTEGER NOT NULL default 0", + "slot_1_id INTEGER NOT NULL default 0", + "slot_2_id INTEGER NOT NULL default 0", + "slot_3_id INTEGER NOT NULL default 0", + "weapon_name TEXT NOT NULL default 'None'", + "armor_name TEXT NOT NULL default 'None'", + "shield_name TEXT NOT NULL default 'None'", + "slot_1_name TEXT NOT NULL default 'None'", + "slot_2_name TEXT NOT NULL default 'None'", + "slot_3_name TEXT NOT NULL default 'None'", + "drop_code INTEGER NOT NULL default 0", + "spells TEXT NOT NULL default '0'", + "maps TEXT NOT NULL default '0'" +) + +db:commit() + +db:begin() + db:insert("control", { game_name = "Dragon Knight", game_size = 250, @@ -39,15 +165,6 @@ db:insert("control", { show_online = 1 }) -db:create_table("drops", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "level INTEGER NOT NULL DEFAULT 0", - "type INTEGER NOT NULL DEFAULT 0", - "attribute_1 TEXT NOT NULL DEFAULT ''", - "attribute_2 TEXT NOT NULL DEFAULT ''" -) - db:insert("drops", { {"Life Pebble", 1, 1, "maxhp,10", ""}, {"Life Stone", 10, 1, "maxhp,25", ""}, @@ -83,26 +200,6 @@ db:insert("drops", { {"Fortune Drop", 5, 1, "goldbonus,10", ""} }, {"name", "level", "type", "attribute_1", "attribute_2"}) -db:create_table("forum", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "author INTEGER NOT NULL", - "parent INTEGER NOT NULL DEFAULT 0", - "replies INTEGER NOT NULL DEFAULT 0", - "title TEXT NOT NULL", - "content TEXT NOT NULL", - "posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "latest DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP" -) - -db:create_table("items", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "type INTEGER NOT NULL DEFAULT 0", - "name TEXT NOT NULL", - "value INTEGER NOT NULL DEFAULT 0", - "attribute INTEGER NOT NULL DEFAULT 0", - "special TEXT NOT NULL DEFAULT ''" -) - db:insert("items", { {1, "Stick", 10, 2, ""}, {1, "Branch", 30, 4, ""}, @@ -139,18 +236,6 @@ db:insert("items", { {3, "Destiny Aegis", 25000, 100, "maxhp,50"} }, {"type", "name", "value", "attribute", "special"}) -db:create_table("monsters", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "max_hp INTEGER NOT NULL DEFAULT 1", - "max_dmg INTEGER NOT NULL DEFAULT 0", - "armor INTEGER NOT NULL DEFAULT 0", - "level INTEGER NOT NULL DEFAULT 0", - "max_exp INTEGER NOT NULL DEFAULT 0", - "max_gold INTEGER NOT NULL DEFAULT 0", - "immune INTEGER NOT NULL DEFAULT 0" -) - db:insert("monsters", { {"Blue Slime", 4, 3, 1, 1, 1, 1, 0}, {"Red Slime", 6, 5, 1, 1, 2, 1, 0}, @@ -305,23 +390,8 @@ db:insert("monsters", { {"Lucifuge", 600, 600, 400, 50, 10000, 10000, 2} }, {"name", "max_hp", "max_dmg", "armor", "level", "max_exp", "max_gold", "immune"}) -db:create_table("news", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "author TEXT NOT NULL DEFAULT 'Guild Master'", - "postdate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "content TEXT NOT NULL" -) - db:insert("news", {content = "This is the first news post. Please use the admin control panel to add another one and make this one go away."}) -db:create_table("spells", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "mp INTEGER NOT NULL DEFAULT 0", - "power INTEGER NOT NULL DEFAULT 0", - "type INTEGER NOT NULL DEFAULT 0" -) - db:insert("spells", { {"Heal", 5, 10, 1}, {"Revive", 10, 25, 1}, @@ -344,17 +414,6 @@ db:insert("spells", { {"Barrier", 30, 50, 5} }, {"name", "mp", "power", "type"}) -db:create_table("towns", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "name TEXT NOT NULL", - "lat INTEGER NOT NULL DEFAULT 0", - "lon INTEGER NOT NULL DEFAULT 0", - "inn_price INTEGER NOT NULL DEFAULT 0", - "map_price INTEGER NOT NULL DEFAULT 0", - "tp_cost INTEGER NOT NULL DEFAULT 0", - "items TEXT NOT NULL" -) - db:insert("towns", { {"Midworld", 0, 0, 5, 0, 0, "1,2,3,17,18,19,28,29"}, {"Roma", 30, 30, 10, 25, 5, "2,3,4,18,19,29"}, @@ -366,58 +425,20 @@ db:insert("towns", { {"Endworld", -250, -250, 125, 9000, 160, "16,27,33"} }, {"name", "lat", "lon", "inn_price", "map_price", "tp_cost", "items"}) -db:create_table("users", - "id INTEGER PRIMARY KEY AUTOINCREMENT", - "username TEXT NOT NULL", - "password TEXT NOT NULL", - "email TEXT NOT NULL", - "verified INTEGER NOT NULL DEFAULT 0", - "verify_token TEXT NOT NULL DEFAULT ''", - "registered DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "last_login DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP", - "auth INTEGER NOT NULL DEFAULT 0", - "lat INTEGER NOT NULL DEFAULT 0", - "lon INTEGER NOT NULL DEFAULT 0", - "class_id INTEGER NOT NULL DEFAULT 1", - "currently TEXT NOT NULL DEFAULT 'In Town'", - "fighting INTEGER NOT NULL default 0", - "monster_id INTEGER NOT NULL default 0", - "monster_hp INTEGER NOT NULL default 0", - "monster_sleep INTEGER NOT NULL default 0", - "monster_immune INTEGER NOT NULL default 0", - "uber_dmg INTEGER NOT NULL default 0", - "uber_def INTEGER NOT NULL default 0", - "hp INTEGER NOT NULL default 15", - "mp INTEGER NOT NULL default 0", - "tp INTEGER NOT NULL default 10", - "max_hp INTEGER NOT NULL default 15", - "max_mp INTEGER NOT NULL default 0", - "max_tp INTEGER NOT NULL default 10", - "level INTEGER NOT NULL default 1", - "gold INTEGER NOT NULL default 100", - "exp INTEGER NOT NULL default 0", - "gold_bonus INTEGER NOT NULL default 0", - "exp_bonus INTEGER NOT NULL default 0", - "strength INTEGER NOT NULL default 5", - "dexterity INTEGER NOT NULL default 5", - "attack INTEGER NOT NULL default 5", - "defense INTEGER NOT NULL default 5", - "weapon_id INTEGER NOT NULL default 0", - "armor_id INTEGER NOT NULL default 0", - "shield_id INTEGER NOT NULL default 0", - "slot_1_id INTEGER NOT NULL default 0", - "slot_2_id INTEGER NOT NULL default 0", - "slot_3_id INTEGER NOT NULL default 0", - "weapon_name TEXT NOT NULL default 'None'", - "armor_name TEXT NOT NULL default 'None'", - "shield_name TEXT NOT NULL default 'None'", - "slot_1_name TEXT NOT NULL default 'None'", - "slot_2_name TEXT NOT NULL default 'None'", - "slot_3_name TEXT NOT NULL default 'None'", - "drop_code INTEGER NOT NULL default 0", - "spells TEXT NOT NULL default '0'", - "maps TEXT NOT NULL default '0'" -) +db:commit() local time = math.roundto(microtime(true) - start, 4) -return "Complete! Took "..time.." seconds!" + +http.set_content_type("text/html") +return [[ + + +Database setup complete in ]]..time..[[ seconds.
+ + + +]]