* Changed how quests are linked to events (no longer in Quest class)
* Added quest validation when loading game_event_seasonal_questrelation
* Renamed fields in new table to be consistent with game_event* tables
* Corrected db data (some entries had -1 as event id)
Should fix client crash when accepting quest and display the proper npc visual in certain quests (new feature 4.x)
TODO:
- Test
- Update SMSG_QUESTUPDATE_COMPLETE (similar change)
TODO:
- Validate SkillId and reward it
- Validate Currency, add it to the requires and reward it (after being able to read currency dbc)
- Update other quest related opcodes
NoFantasy.
* SkillOrClass is converted to RequiredSkill (and then field can contain skill id only)
* Field ZoneOrSort has no longer a function in quest requirement, and RequiredClasses must be used instead where class limits are expected.
To restrict a quest to one class or more, use bitmask of class in RequiredClasses. RequiredSkill works like before.
Signed-off-by: NoFantasy <nofantasy@nf.no>
Signed-off-by: Stalker_Riddick <nenad_kuza@hotmail.com>
* Fixed pPlayer->player
* Fixed pCreature->creature
~DevNote: codestyle for Player should be (*player), not *plr or *p...
same goes for Creatures (*creature)... more cleaning needed.
We've way too many codestyles happening here.
- Rewrite Field class to be able to store both binary prepared statement data and data from adhoc query resultsets
- Buffer the data of prepared statements using ResultSet and Field classes and let go of mysql c api structures after PreparedResultSet constructor. Fixes a race condition and thus a possible crash/data corruption (issue pointed out to Derex, basic suggestion by raczman)
- Conform PreparedResultSet and ResultSet to the same design standards, and using Field class as data buffer class for both
* NOTE: This means the fetching methods are uniform again, using ¨Field* fields = result->Fetch();¨ and access to elements trough fields[x].
* NOTE: for access to the correct row in prepared statements, ¨Field* fields = result->Fetch();¨ must ALWAYS be called inside the do { }while(result->NextRow()) loop.
* NOTE: This means that Field::GetString() returns std::string object and Field::GetCString() returns const char* pointer.
Still experimental and all that jazz, not recommended for production servers until feedback is given.
--HG--
branch : trunk