166 lines
5.5 KiB
Lua
166 lines
5.5 KiB
Lua
if fs.exists(".installed") then
|
|
print("Game is already installed! Stopping script.")
|
|
return false
|
|
end
|
|
|
|
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'",
|
|
"user_id INTEGER NOT NULL",
|
|
"babble TEXT NOT NULL",
|
|
"visible INTEGER NOT NULL DEFAULT 1"
|
|
)
|
|
|
|
db:create_table("items",
|
|
"id INTEGER PRIMARY KEY AUTOINCREMENT",
|
|
"type INTEGER NOT NULL DEFAULT 0",
|
|
"name TEXT NOT NULL",
|
|
"lore TEXT",
|
|
"base_value INTEGER NOT NULL DEFAULT 0",
|
|
"attributes_id INTEGER NOT NULL DEFAULT 0",
|
|
"special TEXT NOT NULL DEFAULT ''"
|
|
)
|
|
|
|
db:create_table("attributes",
|
|
"id INTEGER PRIMARY KEY AUTOINCREMENT",
|
|
"power INTEGER NOT NULL DEFAULT 0",
|
|
"toughness INTEGER NOT NULL DEFAULT 0",
|
|
"agility INTEGER NOT NULL DEFAULT 0",
|
|
"dexterity INTEGER NOT NULL DEFAULT 0",
|
|
"magic INTEGER NOT NULL DEFAULT 0",
|
|
"luck INTEGER NOT NULL DEFAULT 0",
|
|
"perception INTEGER NOT NULL DEFAULT 0",
|
|
"uber_power INTEGER NOT NULL DEFAULT 0",
|
|
"uber_resist INTEGER NOT NULL DEFAULT 0"
|
|
"hp INTEGER NOT NULL DEFAULT 0",
|
|
"mp 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("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",
|
|
)
|
|
|
|
db:create_table("town_shop_items",
|
|
"town_id INTEGER NOT NULL",
|
|
"item_id INTEGER NOT NULL",
|
|
"buy_value INTEGER NOT NULL DEFAULT 1",
|
|
"sell_value INTEGER NOT NULL DEFAULT 1"
|
|
)
|
|
|
|
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)
|
|
print(iparse("Game installed in <!> seconds.", {time}))
|
|
return true
|