summaryrefslogtreecommitdiffstats
path: root/src/sql
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2012-04-03 13:29:05 +0200
committerErik Schilling <ablu.erikschilling@googlemail.com>2012-04-04 16:22:11 +0200
commitf8e816d9185c09d1c17d921b775e483d132982e5 (patch)
tree3ab299ab6057db3bfd8feb24130a6fcb7e64a60d /src/sql
parente4baa92aae537921dd17873328a95ab17afcfdfc (diff)
downloadmanaserv-f8e816d9185c09d1c17d921b775e483d132982e5.tar.gz
manaserv-f8e816d9185c09d1c17d921b775e483d132982e5.tar.xz
manaserv-f8e816d9185c09d1c17d921b775e483d132982e5.zip
Enhanced special support
- Made the current charge being saved. - Added script binds: - chr_set_special_recharge_speed - chr_get_special_recharge_speed - chr_set_special_mana - chr_get_special_mana - get_special_info - Added special info lua class. Functions: - name - needed_mana - rechargeable - on_use - on_recharged - category Further the engine no longer sets charge to 0 after using of specials this allows more flexbilillity (like failing specials). Changes on the xml database: - recharge renamed to rechargeable (needed by client and server) - needed - the needed mana to trigger a special (server only) - rechargespeed - the defailt recharge speed in mana per tick (server only) - target - the type of target (either being or point) (server and client) I also made the lua engine pushing nil instead of a 0 light userdata when the pointer was 0. Database update needed. Change is tested. Mana-Mantis: #167, #156 Reviewed-by: bjorn.
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/mysql/createTables.sql7
-rw-r--r--src/sql/sqlite/createTables.sql7
-rw-r--r--src/sql/sqlite/updates/update_20_to_21.sql11
3 files changed, 19 insertions, 6 deletions
diff --git a/src/sql/mysql/createTables.sql b/src/sql/mysql/createTables.sql
index 4917ef4..c47cbd1 100644
--- a/src/sql/mysql/createTables.sql
+++ b/src/sql/mysql/createTables.sql
@@ -117,8 +117,9 @@ DEFAULT CHARSET=utf8;
CREATE TABLE mana_char_specials
(
- `char_id` int(10) unsigned NOT NULL,
- `special_id` int(10) unsigned NOT NULL,
+ `char_id` int(10) unsigned NOT NULL,
+ `special_id` int(10) unsigned NOT NULL,
+ `special_current_mana` int(10) unsigned NOT NULL,
PRIMARY KEY (`char_id`, `special_id`),
FOREIGN KEY (`char_id`)
REFERENCES `mana_characters` (`id`)
@@ -437,7 +438,7 @@ AUTO_INCREMENT=0 ;
INSERT INTO mana_world_states VALUES('accountserver_startup',-1,'0', NOW());
INSERT INTO mana_world_states VALUES('accountserver_version',-1,'0', NOW());
-INSERT INTO mana_world_states VALUES('database_version', -1,'20', NOW());
+INSERT INTO mana_world_states VALUES('database_version', -1,'21', NOW());
-- all known transaction codes
diff --git a/src/sql/sqlite/createTables.sql b/src/sql/sqlite/createTables.sql
index b286467..06dbd19 100644
--- a/src/sql/sqlite/createTables.sql
+++ b/src/sql/sqlite/createTables.sql
@@ -120,8 +120,9 @@ CREATE INDEX mana_char_kill_stats_char on mana_char_kill_stats ( char_id );
CREATE TABLE mana_char_specials
(
- char_id INTEGER NOT NULL,
- special_id INTEGER NOT NULL,
+ char_id INTEGER NOT NULL,
+ special_id INTEGER NOT NULL,
+ special_current_mana INTEGER NOT NULL,
PRIMARY KEY (char_id, special_id),
FOREIGN KEY (char_id) REFERENCES mana_characters(id)
);
@@ -421,7 +422,7 @@ AS
INSERT INTO mana_world_states VALUES('accountserver_startup',-1,'0', strftime('%s','now'));
INSERT INTO mana_world_states VALUES('accountserver_version',-1,'0', strftime('%s','now'));
-INSERT INTO mana_world_states VALUES('database_version', -1,'20', strftime('%s','now'));
+INSERT INTO mana_world_states VALUES('database_version', -1,'21', strftime('%s','now'));
-- all known transaction codes
diff --git a/src/sql/sqlite/updates/update_20_to_21.sql b/src/sql/sqlite/updates/update_20_to_21.sql
new file mode 100644
index 0000000..8456532
--- /dev/null
+++ b/src/sql/sqlite/updates/update_20_to_21.sql
@@ -0,0 +1,11 @@
+BEGIN;
+
+ALTER TABLE mana_char_specials ADD COLUMN special_current_mana INTEGER DEFAULT 0 NOT NULL;
+
+-- Update the database version, and set date of update
+UPDATE mana_world_states
+ SET value = '21',
+ moddate = strftime('%s','now')
+ WHERE state_name = 'database_version';
+
+END;