PDA

Просмотр полной версии : [11964] Implement new conditions system


newsbot
16.04.2012, 01:22
Автор: Schmoozerd


<pre>+ contrib/convertConditions/ConvertConditions.py
+ contrib/convertConditions/README.txt
m sql/mangos.sql
+ sql/updates/11964_01_mangos_conditions.sql
m src/game/Chat.cpp
m src/game/Chat.h
m src/game/CreatureEventAI.cpp
m src/game/CreatureEventAIMgr.cpp
m src/game/Level3.cpp
m src/game/LootMgr.cpp
m src/game/ObjectMgr.cpp
m src/game/ObjectMgr.h
m src/game/Player.cpp
m src/game/SQLStorages.cpp
m src/game/SQLStorages.h
m src/game/World.cpp
m src/shared/revision_nr.h
m src/shared/revision_sql.h
</pre>
<pre style='white-space:pre-wrap;width:81ex'>[11964] Implement new conditions system

Tree-like design idea by Faramir118, thanks for that!

* Add `conditions` table to store conditions.
* REPLACE current handling of conditions for the *_loot_template tables
Convert the old conditions in *_loot_template to the new system by SQL-Queries
* ADD support for new conditions to gossip_menu and gossip_menu_option.
If for these tables no condition_id (new system) is provided, the old conditions will still be used
* Add a small helper python script to contrib/convertConditions, see README there for details
* Add new command to reload the `conditions` table (.reload conditions)
* Add two Meta-Condition types CONDITION_AND (-1) and CONDITION_OR (-2) which are used as:
value1 (as condition_entry) AND / OR value2 (as condition_entry)

With these meta-conditions it is possible to create tree like and very complicated combined conditions (like HasAura && (HasItem || HasQuest))

NOTE about conversion:
For easier convertion all the old table data is still preserved, but will be removed eventually (within a circle of the moon approximately)
The python script will not create an optimal initial fill of the `conditions` table. You might want to tweak it manually or suggest some optimized algorithm :)

Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com></pre>


Подробнее... (https://github.com/mangos/mangos/commit/ccfeefbc01734bd25a6499abc46733fd0963a8e0)