

Patman128
Members-
Posts
1090 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by Patman128
-
Yeah. The API is well documented: http://www.wowwiki.com/API Why are you reviving this thread?
-
* What bug does the patch fix? What features does the patch add? Fixes the spell Animal Blood (http://www.wowhead.com/spell=46221) The spell should cause the player to cast Spawn Blood Pool (http://www.wowhead.com/spell=63471) when they enter water. This is necessary to acquire the quest items (http://www.wowhead.com/item=45905) for the quest Blood Is Thicker (http://www.wowhead.com/quest=13833) * For which repository revision was the patch created? Master * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. I could not find any * Who has been writing this patch? Please include either forum user names or email addresses. Myself (patman128) Patch: http://paste2.org/p/768912 diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 35362de..302dba1 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4649,6 +4649,14 @@ void Aura::HandlePeriodicTriggerSpell(bool apply, bool /*Real*/) if (m_removeMode == AURA_REMOVE_BY_DEFAULT && GetEffIndex() + 1 < MAX_EFFECT_INDEX) m_target->CastSpell(m_target, m_spellProto->CalculateSimpleValue(SpellEffectIndex(GetEffIndex()+1)), true); return; + case 46221: // Animal Blood + if (m_removeMode == AURA_REMOVE_BY_DEFAULT && m_target->IsInWater()) + { + LiquidData liquid_status; + + if (m_target->GetMap()->getLiquidStatus(m_target->GetPositionX(), m_target->GetPositionY(), m_target->GetPositionZ(), MAP_ALL_LIQUIDS, &liquid_status)) + m_target->CastSpell(m_target->GetPositionX(), m_target->GetPositionY(), liquid_status.level, 63471, true, NULL, this); + } case 51912: // Ultra-Advanced Proto-Typical Shortening Blaster if (m_removeMode == AURA_REMOVE_BY_DEFAULT && m_duration <= 0) {
-
Reminds of a certain joke: http://github.com/blog/31-back-to-subversion
-
I'm sorry, but I don't quite follow. Can you give an actual example of a quest that has this problem?
-
Just tested, and it works perfectly. I was also wrong about the spells: mind control does work properly for some NPCs but not others; however, this is off-topic.
-
Git is not SVN. Git is a lot more advanced than SVN. To get mangos: - Right click on directory and click Git Bash here - git init - git remote add origin git://github.com/mangos/mangos.git - git pull origin master To update mangos: - Right click on directory and click Git Bash here - git pull origin master
-
I just assumed it had something to do with it. Apparently it did not. I will test what you said. It's a nice step in the right direction.
-
I tried it, and found no noticable difference. Mind control and Eye of Kilrogg are still just as bad as before (get interrupted as soon as you move) Maybe this is because the spells need more work. Didn't test with Eyes of the Beast.
-
Is there a chance you could update it? I'll be testing anyway, it would just be nice.
-
I'll be testing it, still very impressive work.
-
This is the changelog: http://github.com/mangos/mangos/commits/master/ If you look at the top of the Installation & Configuration section there are guides to compiling and installing stickied for every platform. I wrote a guide to making C++ scripts. You can view it here: http://www.scriptdev2.com/scriptdev2-t4779.html
-
.maps/0004331.map is non-compatible
Patman128 replied to Auntie Mangos's topic in OldInstallation, configuration & upgrades
Check the FAQ for seeing which version your mangos supports. -
Compiling x64 version on x32 Operation System?
Patman128 replied to Auntie Mangos's topic in OldCore modifications
If it compiles without errors, what's the problem? -
UNIT_FLAG_ANIMATION_FROZEN maybe?
-
SOAP is good for executing commands on server from remote software, for examples, from PHP script on a website (for sending mail, etc.) There are many guides on here for using SOAP.
-
Some stuff is going to be inherently complicated. ACE is inherently complicated, but it works, and it works well, and that's why it's used. I've found that a lot of things in mangos are actually written well and can be picked up easily by new developers (the database stuff, for example.)
-
I believe that this is what the patch is supposed to fix.
-
Very nice. Just wondering: does this has anything to do with grids not being loaded going through a cinematic?
-
Update.
-
Hey, does Blueboy or any other patch authors still read this thread? I was just wondering about working towards extending this to specific creature/boss encounters and battlegrounds, and perhaps doing it inside of a seperate DLL and starting a seperate project for this.
-
Unless it's absolute garbage SD2 would never accept, like 99% of the "work" I see coming out of Arc/Ascent's various Lua projects. But you know what, I'm a man of choice, and I say go forward. If you want my advice, start from the ground up with Lunar, because the old mangos Lua system is a clusterfuck.
-
Gotisch, the file you posted doesn't include GridMapManager.cpp/h. Could you post these? I would like to generate some mmaps for testing. Also, I can't get the included RecastDemo to read the mmap. Does it need to be rebuilt first?
-
Mangos does use the heap quite a bit. The reason you can declare instances of objects like you would int is because this is creating them on the stack (temporarily storage) like any other variable (if you want an int to not be deleted, you need to create it on the heap too with new int) Pointers are also important due to the way C++ calls functions. If I have a function like this: void function(Object object) { object.x = 5; } this means that every time I call this object, C++ will make a copy of the object I pass to it. This copy will be deleted once the function returns (function arguments are in the stack) but the original object will remain unmodified, since only the x of the copy was changed. To get around this, you can either use the & sign. This forces C++ to pass the original variable instead of a copy: void function(Object &object) { object.x = 5; } However, this still isn't very efficient, because an Object might be a huge data construct! Instead, you can pass a pointer: void function(Object * object) { object->x = 5; } Since a pointer is really just a number, this is very quick.
-
Pointers are probably the most difficult concept to grasp when learning C/C++, however they are surprisingly simple with practice and experience. You can create a pointer to any variable. You can create a pointer to an instance of a class, an integer, a floating-point number, etc. Even pointers to pointers are allowed. Here is an example of creating a pointer to an object: Object object; Object* objectPointer; objectPointer = &object; The important thing to remember is that a pointer is just a memory address (i.e. an integer, 32-bits on 32-bit computer, 64-bits on 64-bit computer, etc.) & gets this memory address from a variable and you can put this into a pointer. Now let's say I wanted to call a member of each: object.function(x); objectPointer->function(x); (*objectPointer).function(x); The second and third are exactly the same thing. In the second and third case, it just gets the object being pointed at by the pointer ("object", and this process is called dereferencing) and then uses it like it normally would. The -> operator simply combines the dereferencing (*stuff) and function calling into one operator. Now, the other thing you wanted to know about is the new operator. You must know already about variable scope. When a function returns, any variables created in that function are automatically deleted. Consider this: void a_function() { int x; Object object; x = 3; object.function(); std::cout << x; } This will print out the value of x and then return. But as soon as it returns, x and object are deleted. Let's say I wanted it to not delete object when it returns. One way of doing this is to create the variable with the new operator. Then, the variable will be retained until I explicitly delete it. void a_function() { int x; Object * objectPointer = new Object; x = 3; objectPointer->function(); std::cout << x; } Good, now object will not be deleted. There is one problem though: object won't be deleted until the program exits, so every time the function is called, more memory is taken up and never freed! Also interesting to note is that although the actual Object we created will be stored until it is deleted, the pointer to it, objectPointer, will be deleted upon the function returning. Since this is the only way to find the Object stored in memory, we can't find it anymore and it is lost forever! (until the program exits) One thing to note though: when you create something with new, it always returns a pointer to the object, rather than the object itself. Another thing to note is that when you create a variable in the first example, it is created on the stack, which is sort of like temporary storage. When you create an object with new, it is instead created on the heap, which is permanent storage. So, to re-cap: Using normal declaration a variable: - created on the stack (temporary storage) - deleted when the function returns, or the object it is a member of is deleted (automatically deleted) - returns the object itself Using new to create the variable: - created on the heap ("permanent" storage) - delete only when you call delete on a pointer to it (or the program exits) (manually deleted) - returns a pointer to the object
-
Skip C, go into C++, its better to learn object-oriented concepts earlier on, and most of the C-specific stuff you aren't going to use regularily. Going from C to C++ is quite the leap, because you have to learn all the object-oriented stuff, but going from C++ to C# or Java is easy, because for the most part they are the same thing but with some complicated stuff removed (pointers are non-existant, automatic memory management, etc.)
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions

You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®