Commit graph

32 commits

Author SHA1 Message Date
arrai
a24f39a36f [8378] Use exceptions instead of explicit size checking for each packet
CHECK_PACKET_SIZE was pretty error prone; once it was forgotten mangosd
could crash due to the asserts in ByteBuffer.h. That was exploitable by
malicious players.
Furthermore, there were duplicate checks: Additionally to
CHECK_PACKET_SIZE, the ByteBuffer assertions keept an eye
on not exceeding the packet boundaries - just to crash the server for
sure in such a case.
To prevent memory leaks or other undesirable states, please read in
every handler all variables _before_ doing any concrete handling.
2009-08-16 23:50:22 +02:00
freghar
cd17ada2e5 [8221] Removed trailing whitespaces
With excluded dep/ - as usual.

Signed-off-by: freghar <compmancz@gmail.com>
2009-07-20 17:53:14 +02:00
VladimirMangos
0b9e41332c Allow cancel mind control spells while control target. 2009-07-07 00:12:18 +04:00
VladimirMangos
2061939428 [8019] Prevent npc spell click when player or target in combat. 2009-06-15 02:47:53 +04:00
VladimirMangos
5254a498df [8016] Work at npc click table data use.
* New fields in `npc_spellclick_spells` for allow set npc spell click mode from quest to infinity
  or to another quest, or from reward quest.
* Not expect (and forbid set UNIT_NPC_FLAG_SPELLCLICK in DB and set it at `npc_spellclick_spells` loading.
* Apply some speedups for creature checks affected by spel click state
2009-06-15 01:01:38 +04:00
VladimirMangos
07fa9cc8d7 [7983] Make static Spell::SendCastResult accessable from script DLL. 2009-06-09 14:47:28 +04:00
NoFantasy
6a1b4e5729 [7980] Implement item use target requirements store and check (new table item_required_target).
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

* Also implement this table reload
* Static Spell::SendCastResult function for call not from spell code.
  Can be also used in scripts where need send explicitly spell cast error to client.
2009-06-09 00:26:36 +04:00
tomrus88
42f8ce5f3e [7911] Applied coding style. 2009-05-29 19:07:28 +04:00
arrai
fefe56e3c5 [7776] Completed implementation of CMSG_SPELLCLICK
For vehicles, you have to add the correct SPELL_AURA_CONTROL_VEHICLE spells to
npc_spellclick_spells, otherwise you won't be able to use them
2009-05-05 18:58:58 +02:00
VladimirMangos
fc0e1ecdf1 [7690] Move GetCreature/GetGameobject to class Map.
* This let get objects at map without reference to player or another object.
* Simplify future implementation for per-map storage for like objects
2009-04-20 19:08:13 +04:00
VladimirMangos
56350b32ed [7663] Fixed crash at interrupting channeled spell. Cleanup spell interrupt code. 2009-04-13 10:48:26 +04:00
VladimirMangos
485eb8adb1 [7611] Prevent casting owner spell/use item or gameobject by mind controlled player or creature.
This also prevent some crashes in like wrong case.
2009-04-04 01:23:08 +04:00
VladimirMangos
99fe98169a [7608] Implement ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT. 2009-04-03 07:01:17 +04:00
VladimirMangos
c4d4bb5620 [7552] Move client version dependend DBC code to src/game. 2009-03-27 01:59:26 +03:00
VladimirMangos
f4482f247f [7532] Avoid warnings at use size_t with printf fromat strings. 2009-03-24 06:03:22 +03:00
balrok
54f2dbefa0 [7403] much more unneeded includes removed
now i extended my script:
NAME="Chat"; ack -c $NAME | ack ":1$" | sed 's/:1//' | xargs /usr/bin/ack-grep -l "include \""$NAME".h\"" | xargs /bin/sed -i '/include "'$NAME'.h"/d'

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-03-08 02:22:17 +03:00
balrok
6c39db38f4 removed unneeded World.h includes
this is done by this script:
ack -c "World.h" | ack :1 | sed 's/:1//' | xargs grep -c sWorld | grep :0 | sed 's/:0//' | xargs sed -i '/#include "World.h"/d'
i didn't checked every change but gcc haven't complained
2009-03-08 01:26:52 +03:00
VladimirMangos
b9326100ea [7360] Use defines instead harcoded item prototype array sizes. 2009-03-01 00:32:37 +03:00
VladimirMangos
df13468ee1 [7165] More strict checking for client casted spells.
Allow explictly cast character spell from client only if it non-passive and show in spellbook/etc base at server data.
2009-01-25 00:13:33 +03:00
VladimirMangos
0798b151cc Small vehicle related code cleanup. 2009-01-24 01:45:57 +03:00
VladimirMangos
633cad5a56 [7089] Implement ITEM_ENCHANTMENT_TYPE_USE_SPELL support.
This allow cast spells at item used from engineering recipes 54999, 54736, 54998, 55002, 55016, 54793.
2009-01-15 03:08:45 +03:00
arrai
c6f48843ad [7017] Updated copyright notice for new year 2009-01-03 18:09:51 +01:00
VladimirMangos
cc4b43c65d [6952] Add packet size check for CMSG_GAMEOBJ_REPORT_USE. 2008-12-27 15:13:25 +03:00
VladimirMangos
871ea8a3be [6950] Allow CMSG_GAMEOBJ_REPORT_USE client packet recieve by server. 2008-12-27 02:09:34 +03:00
tomrus88
52b0ab1f89 Merge branch 'master' into 303 2008-11-17 01:50:37 +03:00
VladimirMangos
0ae2133254 [6833] More correct aura cancel for channeled spells.
Remove auras at channeled target.
Cancel channeled spell at spell aura cancel.
Also move battleground resurection spell code to more appropriate place.
2008-11-16 23:33:22 +03:00
arrai
d7f8a60835 Implemented ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM and ACHIEVEMENT_CRITERIA_TYPE_LOOT_ITEM
Fixed CMSG_CANCEL_CAST opcode
2008-11-07 16:21:30 +01:00
VladimirMangos
88b1974df6 Fixed warnings, unused code and typos.
Including fix  _SCallback for 3 params, triggred mode correct call for .cast back and .cast target.
Remove outdated code for support old 19421 (and ranks) implementation in client data.
2008-11-05 05:06:35 +03:00
tomrus88
9cc6f1f3ec Merge branch 'master' into 303
Conflicts:
	src/game/Level2.cpp
	src/game/Pet.cpp
	src/game/Player.cpp
2008-11-03 14:44:58 +03:00
VladimirMangos
166007525e More fixes for wrong format arg/value pairs. 2008-11-03 01:48:16 +03:00
tomrus88
629da9de32 Updated spells stuff 2008-10-26 10:15:52 +03:00
TheLuda
800ee76535 Imported MaNGOS revision 6767 from http://mangos.svn.sourceforge.net/svnroot/mangos/trunk/ 2008-10-14 00:29:20 +02:00