Age | Commit message (Collapse) | Author | Files | Lines |
|
Reviewed-by: Crush.
Resolves: Mana-mantis #251.
|
|
We can't leave the obsolete columns around since they are marked as
NOT NULL, so insertion to the table fails if no values are provided for
them.
With SQLite, our only option is to create the table and copy the data
over, which is what the update script now does.
The script was modified so that it is fine to run it again on a database
that was already updated to version 11 before.
|
|
The table mana_char_equips wasn't created due to an SQL error, this led
the account server to not return the player's characters.
Seen in the logs:
[19:40:41] [ERR] (DALStorage::getCharacter #1) SQL query failure:
Table 'bertram.mana_char_equips' doesn't exist
[19:40:41] [ERR] Failed to get character 11 for account 1.
Resolves: Manasource mantices: 189, 230.
Reviewed-by: Thorbjorn.
|
|
Will not drop the attribute columns since this is not supported by
SQLite. I'm just leaving them around for now and see if it causes any
problems.
|
|
It was trying to remove them from the wrong table.
|
|
Conflicts:
src/account-server/storage.cpp
src/game-server/being.cpp
src/game-server/being.hpp
src/game-server/character.cpp
src/game-server/character.hpp
src/game-server/gamehandler.cpp
src/game-server/inventory.cpp
src/scripting/lua.cpp
src/sql/mysql/createTables.sql
src/sql/sqlite/createTables.sql
|
|
Forgotten in commit 81db92232e50d47a318c94bc34fb63b67493559a
|
|
made to mainline
|
|
|
|
|
|
Reviewed-by: Philipp Sehmisch
|
|
Attribute system:
Structure is no longer completely hardcoded. Attributes and structure is
defined by new xml file (defaulting to stats.xml)
Structure defines non-base modifications to an attribute, to be used by
modifiers from items, effects, etc.
Calculating the base value for core attributes is still done in C++ (and for
such fundamental elements the only reason I can think of to do it any other
way is perhaps being able to quickly change scripts without a compile could be
useful for testing, but such things are a low priority anyway)
Item structure:
Modifiers are now through triggers rather than single events. This also
removes hardcoded types - an item could be both able to be equipped and be
able to be activated.
Item activation no longer consumes by default, this must be specified by the
property <consumes /> inside the trigger.
Currently only attribute modifications, autoattacks, and consumes are defined
as effects, but stubs for others do exist. Autoattacks are currently
non-functional, and this should be rectified with some urgency.
Auto Attacks:
AutoAttacks are now separate entities, though not fully complete, nor fully
integrated with all beings yet. Integration with the Character class is
urgent, integration with other Being children less so.
When fully integrated this will allow for multiple autoattacks, through
equipping multiple items with this as an equip effect or even through other
means if needed.
Equipment structure:
As ItemClass types are no longer hardcoded, so too are equip types. An item
have multiple ways to be equipped across multiple equipment slots with any
number in each slot. Character maximums are global but configurable.
Miscellaneous:
Speed, money, and weight are now attributes.
Some managers have been changed into classes such that their associated
classes can have them as friends, to avoid (ab)use of public accessors.
The serialise procedure should also be set as a friend of Character (both in
the account- and game- server) as well; having public accessors returning
iterators is simply ridiculous.
Some start for such cleanups have been made, but this is not the primary focus
here. Significant work will need to be done before this is resolved
completely, but the start is there.
BuySell::registerPlayerItems() has been completely disabled temporarily. The
previous function iterated through equipment, yet in the context I think it is
intended to fill items? I have been unable to update this function to fit the
modifications made to the Inventory/Equipment/Possessions, as I am unsure what
exactly what it should be doing.
ItemClass::mSpriteId was previously unused, so had been removed, but I
notice that it was used when transmitting equipment to nearby clients.
Experimentation showed that this value was never set to anything other than
0, and so has been left out of the ItemManager rewrite.
I am not entirely sure what is happening here, but it should be worth looking
into at a later time, as I am not sure how equipment appearences would be sent
otherwise.
|
|
character.
Added script call for getting the cost of a special (recharge only for now)
Deleting specials works server-sided but the client isn't informed about it properly. Specials without recharge cost don't appear for the player. Both of these features require an additional netcode message.
Reviewed-by: Freeyorp
|
|
Reviewed-by: Jared Adams
|
|
(trivial change)
|
|
Introduced in commit bb7866f0
|
|
|
|
Was forgotten in de7d79c7f42636065ca5281fa3bec151e34a7c48
Problem reported by ChristianK on IRC.
|
|
|
|
Implementing the prepared statements in mysql backend
|
|
|
|
Also updated the headers to refer to the GPL by URL instead of
suggesting to contact the FSF by snail mail, as per the latest
GPL usage instructions.
|
|
Includes a database update. Use update_6_to_7.sql to update existing
sqlite databases.
|
|
|
|
It was causing problems with sqlite 3.6.10.
|
|
Fixed database update "3 to 4".
Added database update "4 to 5".
Added indexes to table tmw_transaction for faster search when it
gets bigger.
Refactored layout of sqlite database script.
|
|
time for password recovery via tmwweb/email.
|
|
Update file... updated ^^'
You can execute it a second time, there's no problem.
|
|
|
|
mysql backend
|
|
|
|
|
|
|
|
|
|
|
|
This upgrade will be the first, we provide database installation scripts
and update scripts to upgrade from the previous version. For more details
about database upgrades see
http://wiki.themanaworld.org/index.php/Upgrade_Database and feel free to
comment.
|
|
Modified column value to be nullable according to the sqlite table specification.
|
|
Easy enough to create, so we shouldn't have this in the repository.
Creating it goes like:
sqlite3 tmw.db < src/sql/sqlite/createTables.sql
|
|
The provided CreateTable.sql scripts store their versions inline of a database table. The account server checks this version number with its known
compatible version. If the numbers don't match, the account server raises an error and shuts down.
|
|
as preparation for unique item attributes. Fixed some formatting issues in mySQL Script.
|
|
functional as long as items not stored as individual items.
|
|
|
|
* Added link to wiki documentation as comment into tmwserv.xml
* Added table tmw_char_skills to store skills of a character and removed weapon skills from table tmw_characters.
|
|
|
|
and postgresql. The create table statements have been completely removed out from the c++ source into separate, provider specific sql files. Accountserver will no longer create a sqlite file if none present.
* Added database specific config parameters to configure each provider independent.
* Simplified the connect routine of DALStorage class since every dataprovider is now responsible to retrieve its own parameters.
* Extended abstract dataprovider to support transactions, functionally implemented for SQLite and mySQL.
* Added methods to retrieve last inserted auto-increment value and the number of modified rows by the last statement.
* Rewrite of DALStorage class to be a little more transactional.
* Fixed a bug when deleting a character. Old function left data in quests table and guilds table.
* Doxygen now also includes non-documented functions and provides a dictionary for all classes
|