Jump to content
TrinityCore

Rochet2

Members
  • Posts

    967
  • Joined

  • Last visited

  • Days Won

    83

Everything posted by Rochet2

  1. openwow probably uses the DBC data (see itemdisplayinfo.dbc) wowhead on the other hand maybe uses methods like http://wowwiki.wikia.com/wiki/API_GetItemIcon and or they get the info by reading the UI data from client addons if they cant read / extract the DBC files for some (legal?) reasons. For example if an achievement shows in the UI, we can access that UI element and read what the texture path is.
  2. Edit the sent game time and speed: data.Initialize(SMSG_LOGIN_SETTIMESPEED, 4 + 4 + 4); data.AppendPackedTime(sWorld->GetGameTime()); data << float(0.01666667f); // game speed data << uint32(0); // added in 3.1.2 GetSession()->SendPacket(&data);in Player::SendInitialPacketsBeforeAddToMap https://github.com/TrinityCore/TrinityCore/blob/db8aba662ae94aeaab74ae2ae29c38cf0b8bffb4/src/server/game/Entities/Player/Player.cpp#L22543-L22547 However this will make the world clock not show correct time. http://prntscr.com/8u164v Looks fun when game time is high (IE 120)
  3. ​^ dead link. ​http://www.yegor256.com/2015/06/22/valid-reasons-to-reject-bug-fix.html
  4. Try follow this guide: https://github.com/ElunaLuaEngine/Eluna/blob/master/docs/INSTALL.md At the top of it is also a link to how you can try merge if you need that. If your merges fail, TC has done changes or you have some custom changes of your own that need to be manually fitted to the eluna core changes. Eluna is a fork of TC. The default installation guide instructs to use Eluna repositories so you can easily pull the latest changes from us without having to do manual updating to fit latest TC yourself. Otherwise some ingenuity and knowledge is needed to be able to fix merge conflicts and other.
  5. I have not seen patches for arcemu. Not that I have looked for some really so there might exist some .. But in like 5 years even seeing ~1 patches for one of the major emulators used doesnt sound like a whole lot was made ever. Even before TC was born there were patches for mangos from which TC apparently is a fork of. I could be entirely wrong here so correct me if I am wrong ofcourse.To clari To clarify what I meant with blizzlike.. Even if blizzlike content is a goal for most emulators .. emulating retail(durr), a lot of the data for example on some cataclysm databases and other are not blizzlike. What I mean for example is the spawns and waypoints and so on. Im sure there is a lot of unverified data on TC as well, but quite some waypoint movement and spawn coordinates are not hand placed but sniffed from retail (or so they let me believe). Blizzlike is blizzlike once its only truely blizzlike, if you know what I mean I actually worked on some cataclysm database some years ago. (skyfire DB most likely) I didnt add any spawns though, just worked on some scripts d: The plus in not branching out is that the project does not fall apart. When a lot of things are supported it seems there is little development on any of them. There is only so much "resources" to be used here. But you are right that its not really a plus not to support different things. Pointing a lot of things on active development only would be like saying TC has been the only core having active development in the last ~5 years. (I realized this sounds like Im saying every point was directed to development, but thats not what I mean) And if thats how it is, then that would be a pretty big reason to keep developing TC. And I see that was actually what you said in the end I guess. Its true it might be hard to compare the two, could always take a leap back in the git history though the codebases are very different. The thing with having everything developed under the same groups of ppl makes the quality better since its never "someone else's job". The group can talk with each other and improve faster with no need for for example DB to catch up to the core changes. Sure there can be a group of ppl doing only DB work for example, but they would still be working on the same project. Guess what you mean with iphone was android + samsung for example. There are some issues with phones like that and some guess it might be that the hardware is just not designed for the OS, which means Iphone would run better since it would have that (or nexus phone?). Dont have any real articles or data etc for that though : ) Eluna was not a result of the hibernation. Eluna was created in 2011 or earlier - before arcemu went to hibernation. It was more because there was no scripting language for mangos and TC based cores and they had gained more popularity...I think. The creators used arcemu and were used to having lua and then switched to mangos and TC and created lua since it wasnt there .. probably. I cant say why exactly it was originally created since I was not there creating it, just developing after creation and I dont have data about usage statistics :3 ps. The points were not exactly directed to be something other emulators than TC does not have. They were just some positive notes from the top of my head. I have not used arcemu in years and even then I just used some repack and coded in Lua.
  6. ​You should probably test yourself. Also maybe should have some points about what is better. "is better" is not really a proper argument. Here are some points I just made up about TC: active development many custom patches broad scripting capabilities through C++ and database as well widely used developed using static analysis and tools to detect threading issues and memory issues server, database and scripts are developed by the same group and community (this is a good thing) lots of content blizzlike content as a goal not branching too much - supporting two+? patches though there is actually some API there instead of random SetUint32 values for everything, though there is some of that as well.
  7. Nothing is perfect, both are glitchy at places. I would not say ArcEmu is less glitchy .. And I could say that TC is more blizzlike and has more content than arcemu. If you know a glitch, make an issue and something can be done about it if it is not yet known. Both have lua. check out Eluna.
  8. http://collab.kpsn.org/display/tc/item_template#item_template-socketContent What is the SocketContent column in item_template exactly? Its 0 for all items in the database: select * from item_template where socketcontent_1 <> 0 or socketcontent_2 <> 0 or socketcontent_3 <> 0;and it is not used in server code anywhere except for loading it to memory and then sending directly to client with other item template data. The wiki says "Amount of Gems of SocketColor1", but there is no visual impact from what I can see when I use different values.
  9. Have you tried using NULLAI? (see creature_template AIname column) Maybe you could try using a C++ AI that has nothing in it.
  10. Hmm, I looked around the code and in place is handled in map tick OR the world tick and threadsafe is handled in map tick and unthreadsafe is handled in world tick. If this is true, then you are right that should get two map update threads going. From the comments in code I imagined earlier that there was a separate thread handling receiving opcodes and executing them unless they needed to be map specific or were unthread safe.
  11. Map update threads were default (1) From what I understand, the "in place" handled opcodes are handled by a separate thread that is not the main "world" thread nor the map threads. That is why it wouldnt be needed to have more map threads as the bug happens with the packet handler thread and the world thread.
  12. I tried to run it and have a group of 3 players where each is on own map Then one joins wintergrasp and thus leaves the party (this opcode is handled in place, so by a separate thread from maps and world) and then a player leaves the party (this opcode is handled by world thread). So 2 threads would be editing the group, though the other was disbanding it since there were only 2 players left while the other edit was to remove a player. However I cant see anything related to this in the log: https://gist.github.com/Rochet2/7ea280d21add3b5edaeb
  13. Try log in with 2 characters do .bf enable 1 to enable wintergrasp, go to the area with .tele wintergrasp and join the que. Then use .bf start 1 to start it. Everyone should have got the joining message which when you click you get entered to new group. Mixed battlefield and battleground in earlier description : / ps. I might be able to test this myself now that I got myself a bigger C drive that can fit the VM
  14. It looks like you would need to be in a group (probably that isnt even necessary since you are also added to a group) and accept a battlefield invite. Group object editing is not safe from multiple threads (member add, remove, disband) and when you join, the code seems to quit your current group and join the battlefield group. Two players would need to be doing this at the exact same time. I mean that two players in same group that are the only players in the group must accept invite it would look like. Or similar conditions where either the battlefield group is edited (added players should trigger it) or when the group that is left is edited (two players leave the same group by joining BF)
  15. Try using this: https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/AI/ScriptedAI/ScriptedGossip.h#L96 It allows adding an option from the gossip_menu_option table, meaning it will most likely also use the gossip locales from the locale table.
  16. No, I dont have space to have or run a VM. I have less than 2 GB drive space.
  17. I was trying to locate if Group::Disband is safe to call anywhere or if it is not thread safe. My assumption was that it is not thread safe since it is calling ObjectAccessor::FindConnectedPlayer, Player::GetGroup and Player::SetGroup I tried tracking where Group::Disband is called and everywhere it was in opcode handlers that were marked as threadunsafe. However I found one or more that were not threadunsafe. WorldSession::HandleBfEntryInviteResponse is STATUS_LOGGEDIN, PROCESS_INPLACE, which would mean it is executed when received. And since it seems packets are handled on a separate thread the code must be safe to call anywhere (is thread safe). The function however calls Battlefield::PlayerAcceptInviteToWar which calls Battlefield::AddOrSetPlayerToCorrectBfGroup which calls Group::RemoveMember which calls Group::Disband and that was assumed not to be thread safe. Conclusion is that if someone sends the packet for HandleBfEntryInviteResponse and someone in the same group is also removed from the group in any other code (for example the normal group leave opcode?) it would cause a race condition. Is there something guaranteeing the safety or is this a possible race condition? FFR: I used 3.3.5a https://github.com/TrinityCore/TrinityCore/commit/239f0b4ad0e83da9d31c8031aa2e50c294bfc913
  18. Read the TC requirements (its at the bottom of windows requirements) http://collab.kpsn.org/display/tc/TrinityCore+Requirements#TrinityCoreRequirements-Windows
  19. Personal experience about the problems.
  20. You should not set it to the boost subdirectories. But the installation folder itself. At least for the root path And download 32 bit boost if you have 64 now.
  21. cross faction chat is probably enabled from rbac
  22. Apparently you didnt follow it to the letter :3 I installed 4.3.4 DB first time yesterday and naturally ignored the same thing. However I read the guide carefully after hitting the error and the problem solved itself. Here is a direct quote from the installation guide: What this means is that you should go to https://github.com/TrinityCore/TrinityCore_4.3.4_DB_Alpha/commits/master See the last sync commit and use the hash provided there for your core and the DB should then work. The guide on the wiki does not have a link to the repo directly though : |
  23. I would guess that you already had the world database there to beginwith. Then as the create SQL runs, it fails since it tries to add the world database first and as it exists and the SQL doesnt drop or do IF NOT EXISTS or similar, it fails. Due to failing the SQL is likely stopped ?_? so the databases are not created. Dont run the SQL as an HeidiSQL startup script. Run it normally through the query after starting heidi. And before running it, you should not have the databases yet at all. https://github.com/TrinityCore/TrinityCore/blob/master/sql/create/create_mysql.sql
×
×
  • Create New...