Git Product home page Git Product logo

warrior-of-dreamworld's People

Contributors

dontworry33 avatar krofna avatar raitobezarius avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

warrior-of-dreamworld's Issues

Client GUI

  • Drop SFGUI (Leaks & doesnt like SFML)
  • Create minimal widget library
  • Create new login screen
  • Create a bottom bar in World GameState For spells/item shortcuts &

[Server crash] Pathfinder seems to be the reason

Reproducing this bug:

  1. Aggro 2 mobs
  2. Collide with them

Backtrace from gdb:
0x0812599e in Pathfinder::CheckNode (this=0x81ac8e8, pCurrent=0x81b7fe0, x=1, y=1, Cost=14)
at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/AI/Pathfinder.cpp:211
211 if(!(*pTileGrid)[pCurrent->Position.y+y][pCurrent->Position.x+x])
(gdb) bt
#0 0x0812599e in Pathfinder::CheckNode (this=0x81ac8e8, pCurrent=0x81b7fe0, x=1, y=1, Cost=14)

at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/AI/Pathfinder.cpp:211

#1 0x0812581e in Pathfinder::GeneratePath (this=0x81ac8e8)

at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/AI/Pathfinder.cpp:195

#2 0x0812530a in Pathfinder::Update (this=0x81ac8e8, diff=50)

at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/AI/Pathfinder.cpp:82

#3 0x081334a4 in Creature::Update (this=0x81ac4e0, diff=50)

at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/Entities/WorldObject/Creature.cpp:54

#4 0x08137fd4 in Map::UnitUpdate (this=0x81ab948, pUnit=0x81ac4e0, diff=50)

at /home/ryan/Documents/Développement/Projets/C++/Games/Warrior-of-Dreamworld/branch_master/server/Map/Map.cpp:113

Quit Anime

No, seriously. We totally should. I just wasted whole saturday...

Exception threw when three MSG_ADD_OBJECT are received (client-side)

Tested with branch working (last commit) Ubuntu 12.04 - g++ 4.6.3

Log is here:
Guessing screen resolution [FIXME]: Select configuration in game and save it in Config.conf
My guess is: 1680x1050
Sending Packet: MSG_LOGIN,
Successful!
Got packet, size: 12
Received Packet: MSG_LOGIN,
Packet is good!
Got packet, size: 43
Received Packet: MSG_ADD_OBJECT,
Packet is good!
Got packet, size: 58
Received Packet: MSG_ADD_OBJECT,
Packet is good!
Got packet, size: 39
Received Packet: MSG_ADD_OBJECT,
Packet is good!
EXCEPTION occured: vector::_M_fill_insert
Got packet, size: 39
Failed to receive packet

I'm using gdb to find the source, but this is (very) hard.
EDIT: Seems that is not related to MSG_ADD_OBJECT but World::Load ?
EDIT 2: Found, it'(s threw when WorldObject::WorldObject is called, but why ?!
EDIT 3: WorldObject::WorldObject() is not the problem... WTF.
EDIT 4: A lots of class using ObjID are uint32 -_-", I'm fixing them, and I'll check if that correct the problem.
EDIT 5: Nothing was corrected (except server-side SQL exception :D)
EDIT 6: There is only 2 std::vector client-side, in Animation.hpp and MessageChatArea.hpp.
EDIT 7: Is there other container using vector in internal ? Seems to be a length_error.
EDIT 8: GOTCHA :D In World::Load, sf::VertexArray::resize.
EDIT 9: map0.map is damaged :D
EDIT 10: Fixed, I'll push the fix in 30 minutes.

Pathfinding is broken

Pathfinding not works anymore for 2 NPCs
Try to attack FullMetal-Alchimist and Krofnica.
One of them would not move.

[Could not generate path]

Organize files a lil bit

/server/ has 40+ files... We should group them in subfolders. Would this also break cmake build?
@FullMetal-Alchimist

44kb Memory leak

==23467== HEAP SUMMARY:
==23467== in use at exit: 45,244 bytes in 102 blocks
==23467== total heap usage: 3,178 allocs, 3,076 frees, 628,727 bytes allocated
==23467==
==23467== LEAK SUMMARY:
==23467== definitely lost: 680 bytes in 11 blocks
==23467== indirectly lost: 44,564 bytes in 91 blocks
==23467== possibly lost: 0 bytes in 0 blocks
==23467== still reachable: 0 bytes in 0 blocks
==23467== suppressed: 0 bytes in 0 blocks

Client GUI

I just finished rewriting ugly parts of client and its now ready for SFGUI. I'm a big fan of WoW GUI, but if you have better ideas post drafts here!

@FullMetal-Alchimist /poke

Stable server

Test every possible scenario to see if there is still a way to crash the server.

Crash due to NPC or Spells ?

Ubuntu 12.04 - g++ 4.6.3
This crash happen after 5 seconds of playing.

Backtrace here:
#0 0x0812fad8 in ?? ()
#1 0x080c7050 in std::mem_fun1_t<void, Map, boost::shared_ptr >::operator()(Map*, boost::shared_ptr) const ()
#2 0x080c64a3 in std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > >::operator()(boost::shared_ptr const&) const ()
#3 0x080c5715 in std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > > std::for_each<__gnu_cxx::_normal_iteratorboost::shared_ptr<Player, std::vectorboost::shared_ptr<Player, std::allocatorboost::shared_ptr > >, std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > > >(__gnu_cxx::_normal_iteratorboost::shared_ptr<Player, std::vectorboost::shared_ptr<Player, std::allocatorboost::shared_ptr > >, __gnu_cxx::__normal_iteratorboost::shared_ptr<Player*, std::vectorboost::shared_ptr<Player, std::allocatorboost::shared_ptr > >, std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > >) ()
#4 0x080c46e3 in Map::Update(int) ()
#5 0x080c9645 in World::Update() ()
#6 0x080adb52 in boost::_mfi::mf0<void, World>::operator()(World*) const ()
#7 0x080d15e0 in void boost::_bi::list1boost::_bi::value<World* >::operator()<boost::_mfi::mf0<void, World>, boost::_bi::list1<boost::system::error_code const&> >(boost::_bi::type, boost::_mfi::mf0<void, World>&, boost::_bi::list1<boost::system::error_code const&>&, int) ()
#8 0x080d1545 in void boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >::operator()boost::system::error_code(boost::system::error_code const&) ()
#9 0x080d149f in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>::operator()() ()
#10 0x080d1365 in void boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code> >(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>, ...) ()
#11 0x080d115a in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > > >(boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>&, boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >&) ()
#12 0x080d0d42 in boost::asio::detail::wait_handler<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::bi::list1boost::bi::value<World* > > >::do_complete(boost::asio::detail::task_io_service, boost::asio::detail::task_io_service_operation, boost::system::error_code const&, unsigned int)

()

#13 0x080b2c3f in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned int) ()
#14 0x080ca615 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lockboost::asio::detail::posix_mutex&, boost::asio::detail::task_io_service::thread_info&, boost::asio::detail::op_queueboost::asio::detail::task_io_service_operation&, boost::system::error_code const&) ()
#15 0x080ca3bf in boost::asio::detail::task_io_service::run(boost::system::error_code&) ()
#16 0x080ca758 in boost::asio::io_service::run() ()
#17 0x080c93ff in World::Run() ()
#18 0x080a83b5 in main ()

After more tests, a new backtrace is available:
#0 0x00000081 in ?? ()
#1 0x080bded5 in boost::checked_delete (x=0x811d548)

at /usr/local/include/boost/checked_delete.hpp:34

#2 0x080bdf3e in boost::detail::sp_counted_impl_p::dispose (this=0x812fa58)

at /usr/local/include/boost/smart_ptr/detail/sp_counted_impl.hpp:78

#3 0x080a9d1a in boost::detail::sp_counted_base::release (this=0x812fa58)

at /usr/local/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145

#4 0x080a9db0 in boost::detail::shared_count::~shared_count (this=0xbfffecdc,

__in_chrg=<optimized out>) at /usr/local/include/boost/smart_ptr/detail/shared_count.hpp:305

#5 0x080b22ce in boost::shared_ptr::~shared_ptr (this=0xbfffecd8, __in_chrg=)

at /usr/local/include/boost/smart_ptr/shared_ptr.hpp:164

#6 0x080c7a80 in boost::shared_ptr::operator=(boost::shared_ptr&&) (this=0x811fadc,

r=...) at /usr/local/include/boost/smart_ptr/shared_ptr.hpp:377

#7 0x080c7536 in SpellBox::operator=(SpellBox&&) (this=0x811fad8)

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/SpellBox.hpp:28

#8 0x080c7ee5 in std::__copy_move<true, false, std::random_access_iterator_tag>::__copy_m<SpellBox*, SpellBox*> (__first=0x811fb00, __last=0x811fce0, __result=0x811fad8)

at /usr/include/c++/4.6/bits/stl_algobase.h:348

#9 0x080c79ce in std::__copy_move_a<true, SpellBox*, SpellBox*> (__first=0x811fb00,

__last=0x811fce0, __result=0x811fad8) at /usr/include/c++/4.6/bits/stl_algobase.h:384

#10 0x080c70d7 in std::__copy_move_a2<true, __gnu_cxx::__normal_iterator<SpellBox*, std::vector<SpellBox, std::allocator > >, __gnu_cxx::__normal_iterator<SpellBox*, std::vector<SpellBox, std::allocator > > > (__first=..., __last=..., __result=...)

at /usr/include/c++/4.6/bits/stl_algobase.h:422

#11 0x080c65a2 in std::move<__gnu_cxx::__normal_iterator<SpellBox*, std::vector<SpellBox, std::allocator > >, __gnu_cxx::__normal_iterator<SpellBox*, std::vector<SpellBox, std::allocator > > > (__first=..., __last=..., __result=...) at /usr/include/c++/4.6/bits/stl_algobase.h:486
#12 0x080c594a in std::vector<SpellBox, std::allocator >::erase (this=0x8104f54,

__position=...) at /usr/include/c++/4.6/bits/vector.tcc:139

#13 0x080c4877 in Map::UnitUpdate (this=0x8104f38, pUnit=...)

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/Map.cpp:81

#14 0x080c7050 in std::mem_fun1_t<void, Map, boost::shared_ptr >::operator() (this=0xbfffeeec,

__p=0x8104f38, __x=...) at /usr/include/c++/4.6/bits/stl_function.h:623

#15 0x080c64a3 in std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > >::operator() (

this=0xbfffeeec, __x=...) at /usr/include/c++/4.6/backward/binders.h:115

#16 0x080c57fd in std::for_each<__gnu_cxx::__normal_iteratorboost::shared_ptr<Creature*, std::vectorboost::shared_ptr<Creature, std::allocatorboost::shared_ptr > >, std::binder1st<std::mem_fun1_t<void, Map, boost::shared_ptr > > > (__first=..., __last=..., __f=...)

at /usr/include/c++/4.6/bits/stl_algo.h:4379

#17 0x080c4786 in Map::Update (this=0x8104f38, diff=50)

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/Map.cpp:70

#18 0x080c9645 in World::Update (this=0x81016b0)

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/World.cpp:128

#19 0x080adb52 in boost::_mfi::mf0<void, World>::operator() (this=0xbffff090, p=0x81016b0)

at /usr/local/include/boost/bind/mem_fn_template.hpp:49

#20 0x080d15e0 in boost::_bi::list1boost::_bi::value<World* >::operator()<boost::_mfi::mf0<void, World>, boost::_bi::list1<boost::system::error_code const&> > (this=0xbffff098, f=..., a=...)

at /usr/local/include/boost/bind/bind.hpp:253

#21 0x080d1545 in boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >::operator()boost::system::error_code (this=0xbffff090, a1=...)

at /usr/local/include/boost/bind/bind_template.hpp:47

#22 0x080d149f in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>::operator() (

---Type to continue, or q to quit---
this=0xbffff090) at /usr/local/include/boost/asio/detail/bind_handler.hpp:46
#23 0x080d1365 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code> > (function=...) at /usr/local/include/boost/asio/handler_invoke_hook.hpp:64
#24 0x080d115a in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > > > (function=..., context=...)

at /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:39

#25 0x080d0d42 in boost::asio::detail::wait_handler<boost::_bi::bind_t<void, boost::_mfi::mf0<void, World>, boost::_bi::list1boost::_bi::value<World* > > >::do_complete (owner=0x8101650, base=0x811e290)

at /usr/local/include/boost/asio/detail/wait_handler.hpp:69

#26 0x080b2c3f in boost::asio::detail::task_io_service_operation::complete (this=0x811e290,

owner=..., ec=..., bytes_transferred=0)
at /usr/local/include/boost/asio/detail/task_io_service_operation.hpp:37

#27 0x080ca615 in boost::asio::detail::task_io_service::do_run_one (this=0x8101650, lock=...,

this_thread=..., private_op_queue=..., ec=...)
at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:394

#28 0x080ca3bf in boost::asio::detail::task_io_service::run (this=0x8101650, ec=...)

at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:146

#29 0x080ca758 in boost::asio::io_service::run (this=0xbffff2b8)

at /usr/local/include/boost/asio/impl/io_service.ipp:59

#30 0x080c93ff in World::Run (this=0x81016b0)

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/World.cpp:93

#31 0x080a83b5 in main ()

at /home/ryan/Documents/Développement/Projets/Warrior-of-Dreamworld/branch_thread/server/main.cpp:39

I think that this is due to the NPC, but I'm not sure yet.
Not tested with last branch thread (Maybe corrected with the series of asio_x correction ?)

World editing

Instead of world_edit, implement live world editing into client, and allow only admins to do that.

Client data

All data from templates should be available to client.

2 players can't connect to server

So, the title explains all.
Two players can't connect at the same time to server.
Also, one player can't connect to a external server (I mean with 82...** IP)

Need confirmation also that it's not my firewall who blocks data.

WorldObject collision

Player-Player collision would be abusable (path blocking).
Player-Creature/Object collision is needed for interaction (quests/vendors/random objects), and nicer melee attack.

Getting massive leaks

For some reason, I am getting massive mem leaks whenever we bind &operator delete to std::for_each. I am unable to reproduce this on simple programs...

==4057==
==4057== HEAP SUMMARY:
==4057== in use at exit: 7,322 bytes in 46 blocks
==4057== total heap usage: 825 allocs, 779 frees, 569,958 bytes allocated
==4057==
==4057== 16 bytes in 1 blocks are definitely lost in loss record 1 of 13
==4057== at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4057== by 0x5056C6: GetScript_map_test_map(Map_) (map_test_map.cpp:37)
==4057== by 0x4D889E: AIFactory::CreateMapScript(std::string const&, Map_) (AIFactory.cpp:63)
==4057== by 0x4CCD21: CreateScript(std::string const&, Map_) (MapScript.cpp:25)
==4057== by 0x4C490E: Map::Map(MapTemplate_, unsigned int) (Map.cpp:37)
==4057== by 0x4DC82F: World::Load() (World.cpp:104)
==4057== by 0x4D1B81: main (main.cpp:31)
==4057==
==4057== 29 bytes in 1 blocks are definitely lost in loss record 3 of 13
==4057== at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4057== by 0x58273B8: std::string::Rep::S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x5828D94: char* std::string::S_construct<char const*>(char const, char const
, std::allocator const&, std::forward_iterator_tag) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x5828EAC: std::basic_string<char, std::char_traits, std::allocator >::basic_string(char const
, unsigned long, std::allocator const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x54D55F8: sql::SQLString::SQLString(char const_, unsigned long) (in /usr/lib/libmysqlcppconn.so.5.1.1.0)
==4057== by 0x5518DE4: sql::mysql::MySQL_Prepared_ResultSet::getString(unsigned int) const (in /usr/lib/libmysqlcppconn.so.5.1.1.0)
==4057== by 0x4F87C4: ObjectMgr::LoadPlayersLoginInfo() (ObjectMgr.cpp:221)
==4057== by 0x4DC5B7: World::Load() (World.cpp:86)
==4057== by 0x4D1B81: main (main.cpp:31)
==4057==
==4057== 29 bytes in 1 blocks are definitely lost in loss record 4 of 13
==4057== at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4057== by 0x58273B8: std::string::Rep::S_create(unsigned long, unsigned long, std::allocator const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x5828D94: char* std::string::S_construct<char const*>(char const, char const
, std::allocator const&, std::forward_iterator_tag) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x5828EAC: std::basic_string<char, std::char_traits, std::allocator >::basic_string(char const
, unsigned long, std::allocator const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.17)
==4057== by 0x54D55F8: sql::SQLString::SQLString(char const_, unsigned long) (in /usr/lib/libmysqlcppconn.so.5.1.1.0)
==4057== by 0x5518DE4: sql::mysql::MySQL_Prepared_ResultSet::getString(unsigned int) const (in /usr/lib/libmysqlcppconn.so.5.1.1.0)
==4057== by 0x4F880D: ObjectMgr::LoadPlayersLoginInfo() (ObjectMgr.cpp:221)
==4057== by 0x4DC5B7: World::Load() (World.cpp:86)
==4057== by 0x4D1B81: main (main.cpp:31)
==4057==
==4057== 48 (24 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 6 of 13
==4057== at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4057== by 0x4CAE24: __gnu_cxx::new_allocatorstd::List_node<Creature* >::allocate(unsigned long, void const) (new_allocator.h:94)
==4057== by 0x4CA353: std::List_base<Creature, std::allocator<Creature*> >::_M_get_node() (stl_list.h:335)
==4057== by 0x4C93EC: std::_List_node<Creature*>* std::list<Creature*, std::allocator<Creature*> >::_M_create_node<Creature* const&>(Creature* const&&&) (stl_list.h:500)
==4057== by 0x4C7F41: void std::list<Creature*, std::allocator<Creature*> >::M_insert<Creature* const&>(std::List_iterator<Creature*>, Creature* const&&&) (stl_list.h:1533)
==4057== by 0x4C6BCF: std::list<Creature*, std::allocator<Creature*> >::push_back(Creature* const&) (stl_list.h:997)
==4057== by 0x4C4FBE: Map::Load() (Map.cpp:75)
==4057== by 0x4DC83F: World::Load() (World.cpp:105)
==4057== by 0x4D1B81: main (main.cpp:31)
==4057==
==4057== 7,200 (720 direct, 6,480 indirect) bytes in 1 blocks are definitely lost in loss record 13 of 13
==4057== at 0x4C2AF8E: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==4057== by 0x4CAC66: _gnu_cxx::new_allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > >::allocate(unsigned long, void const) (new_allocator.h:94)
==4057== by 0x4CA06C: std::Vector_base<std::vector<WorldObject, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > >::M_allocate(unsigned long) (in /home/krofna/Dev/Warrior-of-Dreamworld/build/bin/Server/Debug/Server)
==4057== by 0x4C8F50: std::vector<std::vector<WorldObject*, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > >::M_fill_insert(__gnu_cxx::__normal_iterator<std::vector<WorldObject*, std::allocator<WorldObject*> >, std::vector<std::vector<WorldObject
, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > > >, unsigned long, std::vector<WorldObject*, std::allocator<WorldObject*> > const&) (vector.tcc:481)
==4057== by 0x4C7B59: std::vector<std::vector<WorldObject*, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > >::insert(__gnu_cxx::__normal_iterator<std::vector<WorldObject*, std::allocator<WorldObject*> >
, std::vector<std::vector<WorldObject
, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > > >, unsigned long, std::vector<WorldObject*, std::allocator<WorldObject*> > const&) (stl_vector.h:1004)
==4057== by 0x4C661A: std::vector<std::vector<WorldObject*, std::allocator<WorldObject*> >, std::allocator<std::vector<WorldObject*, std::allocator<WorldObject*> > > >::resize(unsigned long, std::vector<WorldObject*, std::allocator<WorldObject*> > const&) (stl_vector.h:667)
==4057== by 0x4C496E: Map::Map(MapTemplate*, unsigned int) (Map.cpp:38)
==4057== by 0x4DC82F: World::Load() (World.cpp:104)
==4057== by 0x4D1B81: main (main.cpp:31)
==4057==
==4057== LEAK SUMMARY:
==4057== definitely lost: 818 bytes in 5 blocks
==4057== indirectly lost: 6,504 bytes in 41 blocks
==4057== possibly lost: 0 bytes in 0 blocks
==4057== still reachable: 0 bytes in 0 blocks
==4057== suppressed: 0 bytes in 0 blocks
==4057==
==4057== For counts of detected and suppressed errors, rerun with: -v
==4057== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 2 from 2)

Spell bolts are messed up

If I change the window size (For example to 1024x768) angle of spell bolts shot by player (mouse click) gets incorrect.
They are also not synced on client/server sides, since packets do not say when was the spell shot.
They are also never cleaned on server side, wasting memory and CPU.

Double message with notifications

This bug occur when we try to use a command.
Try in chat : ".help teleport at"
You will have two times the same message.

It seems that it can't be debugged easily because, when I try to make a step by step debugging, this bug not occur... Strange.

I'm working on.

Intuition: Something with OnChat and Say player-side ? Broken by emotes ?
My intuitions are always true :D
Fixed in 7f18055

Clean agro when disconnect

Currently, when we disconnect from server and we were in combat mode, the agro still because unit pointer is still allocated, so when we reconnect, the creatures still attack us. This should be handle it.

Method for making this bug:

  • Start client
  • Start server
  • Login
  • Attack creature
  • Log out
  • Re-Login

/doc/

Finish Ubuntu/Debian compile tutorial. Fix bad engrish.
Write Windows compile tutorial (Related to #22)
Offer prebuilt binaries, and tutorial for setup.

Client crashes on spell cast

Program received signal SIGSEGV, Segmentation fault.
0x00000000004aca32 in WorldObject::GetPosition (this=0x0)
at /home/krofna/Dev/Warrior-of-Dreamworld/client/WorldObject.cpp:67
67 return ObjectSprite.getPosition();

Cmake build on windows

There are 2 issues.

  1. It cant find boost, even tho I am specifying the right directory
  2. set(MYSQLCONNECTORCPP_ROOT_DIR /home/ryan/Documents/Développement/mysql-connector-c++)

Seriously? Thats pretty nasty hack, ryan.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.