Reason for this are:
1) We don't want them saved/loaded between bg games
2) Saving cp slider is done by go id and would not work for instances
3) There are visual-only capture points in bg (eots)
4) It would be possible to only enable the capture points on bg start
TODO: Move this to OutdoorPvP base class
* Remove warning: enumeration value '<value>' not handled in switch
* Remove warning: enumeral and non-enumeral type in conditional expression
* Remove warning: too many arguments for format
Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
This fixes m_UniqueUsers not being cleared for example if grid is set to idle and would therefore think that some players are still in range on grid reactivation causing the slider not to appear
Add a new table `gameobject_template_scripts` to start scripts for any type gameobject.
Scripts in this table are triggered for all gameobjects on GameObject::Use
Note: The table `gameobject_scripts` is expected to not be required very much longer, and will most likely be removed someday
Remove the actually not required faction check in Player::GetNPCIfCanInteractWith - this is done by IsHostileTo a line before
Improve the Player-login AtWar selection to also consider forced reactions
Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
The way to filter by display id is rather ugly, but no better solution is in sight. This should be good enough until better (likely model-data) support can be implemented.
Also it must be changed if more Traps with this behaviour are found.
Signed-off-by: Schmoozerd <schmoozerd@scriptdev2.com>
Transport rotation transforms transport path - this makes possible to have few transports with same entry but with modified paths.
This also solvers problems with some transports (like deeprun tram).
TODO: some transports has non standart rotations, that must be stored in db
Signed-off-by: SilverIce <slifeleaf@gmail.com>
* Not reset lock/interact state in instances (so until instance reset)
* Do unti-cheating checks for use attempts locked/non-intareactive GOs
* Implement SCRIPT_COMMAND_GO_LOCK_STATE for control lock/interact state of GOs from scripts.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
Inspired by patch provided by darkstalker.
Client expected receive form field change at form switing including case with switch to same form.
In fact problem too good mangos optimization in part avoid send unchanged values in update fields.
* Added function Object::SendForcedObjectUpdate()
* It used in form apply code for make sure received by client non-form applied state in middle form shifting state.
* It also used for fishing code when client also expected received some update fields chnages before
animation update. New function send update to all all client instead before used code that send it to fishing player
and resend later one more time to other players and player itself as normal update.
Update '.gobject turn' command, now you have to specify 3 rotations to turn gameobject: rotation angles around z, y and x axes.
Note to DB devs: use QuaternionCompressed::Unpack to extract rotations from the data that came with UPDATEFLAG_ROTATION.
Now safe allow this casts in like way after completed convertion to ObjectGuid use.
Also simplify code in result allowed auto cast to uint64.
Please _not_ add new uint64 storages (local and in structures) for guid values.
Note that code is only a tiny start to implement these gameobjects, and are most likely wrong in itself as conditions for calling events does not exist yet.
To be used in further development.
Signed-off-by: NoFantasy <nofantasy@nf.no>
* Direct store pool system dynamic data in sPoolMgr replaced by
shared pool system data object (for all non instanceable maps)
into WorldPersistentState, and own copies of pool system data
object in DungeonPersistentState/BattlegroundPersistentState.
This let have pools with object at many non-instanceable maps,
and single map pools with unique state for each instance.
* Avoid direct global grid data modify from pool system, and use for this also
recently added local for MapPersistentState grid spawn data.
* Implemented proper API for update pool system data in MapPersistentStates
from GameEvent system.
* Initialize pool system state at MapPersistendState creating.
For shared pool system state for non-instanceable maps initilized at first map state
creating.
Now pool system propertly work in instance also!
Now any creatures/gameobjects loaded base at DB data
in non-instanceable/instanceable maps always have same guid
as in DB data.
* Also remove useless by same reasons MaNGOS::GameObjectWithDbGUIDCheck
* Creature/GameObject guid generators moved to Map
* For avoid wrong not converted cases generic function in ObjectMgr has been replaced by
specilized guid generation function like sObjectMgr.GeneratePlayerLowGuid().
This let catch all cases that need update in custom code or scripts.
* Drop many ObjectAcessor.h now dead code. This is also make mangos more thread safe.
* Restore one more time unix build broken in prev. commits.
Note: many cases when something not wotk in instance but work in continents
possible magicly start work after this commit. For example, some gm commands.
From large systems that need more chnages for start work in full power in instances
can be referecned pool/gamevent system. Last need just small hacks drop changes but
in will addded in independent commit.