Jump to content

henhouse

Members
  • Posts

    111
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by henhouse

  1. Yeah patch doesn't work on Wrath anymore sadly. :/

    Works on 2.4.3 still just fine, you just got to change "void Spell::EffectMomentMove(uint32 i)" to "void Spell::EffectLeapForward(uint32 i)" since they renamed it.

    I am a little surprised no "real" Blink patch has ever been written. I mean arena, AV and all that have big patches, but none for Blink? :( Dang :/.

  2. This has to be one of the most interesting pieces of code I've seen in awhile. If I had the C++ experience, I'd help, but my knowledge is limited. I hope someone picks this up, because this is the ideal solution compared to all the other anti cheats out there.

    Yeah, in my opinion if this is truly almost Warden that can stop exploiters, it should be finished an implemented someday.

  3. Well hopefully you understand how the patch works. The "-" means to remove that line and "+" to add. So those are the changes. The lines that don't have those symbols are just for locating where to make the changes. In a text editor (I recommend Notepad++ for Windows) do a Find(Control+F) search of a line that isn't modified like "

    Player* player = (Player*)user;" and then when you find it, press Enter a few times and copy + paste all the lines with the "+" to add them. Remember to delete the little plus signs though.

    That's how you can manually add them. Works great when there's problems patching if it's small.

  4. =/ got this back:

    ..\\..\\src\\game\\SpellEffects.cpp(4925) : error C2065: 'targetAreaEntry' : undeclared identifier
    ..\\..\\src\\game\\SpellEffects.cpp(4925) : error C2227: left of '->flags' must point to class/struct/union/generic type
           type is ''unknown-type''
    ..\\..\\src\\game\\SpellEffects.cpp(4925) : error C3861: 'GetAreaId': identifier not found
    ..\\..\\src\\game\\SpellEffects.cpp(4925) : error C3861: 'GetZoneId': identifier not found

  5. In SpellEffects.cpp I'm trying to edit the line:

        AreaTableEntry const* targetAreaEntry = GetAreaEntryByAreaID(target->GetZoneId());
       if(targetAreaEntry && (targetAreaEntry->flags & AREA_FLAG_CAPITAL ))
       {
           SendCastResult(SPELL_FAILED_NO_DUELING);            // Dueling isn't allowed here
           return;
       }

    and change that line to:

    if(targetAreaEntry && (targetAreaEntry->flags & AREA_FLAG_CAPITAL || (GetAreaId() == 2317) || (GetZoneId() == 3817)) )

    So that those areas will basically have disabled dueling. Now, the C++ might be wrong, I've tried a few other ways, I'm very new with all this stuff anyway, but I always get the error:

    ..\\..\\src\\game\\SpellEffects.cpp(4972) : error C3861: 'GetAreaId': identifier not found

    ..\\..\\src\\game\\SpellEffects.cpp(4972) : error C3861: 'GetZoneId': identifier not found

    So I thought I needed to include some resource file, so I tried stuff like including Map.h, MapManager.h, etc, etc and none of them get rid of this error. So I have a feeling I'm doing something completely wrong :S.

  6. Yeah I normally would clean and stuff, I started noticing when I would recompile ScriptDev2 without cleaning it would just compile it without doing it all over again. I'll give it a try but I wanted to ask because I did it once but the mangosd.exe didn't say last modified and that time, but the last time I compiled. Hm.

    Thanks.

  7. I've been making a bit of edits to some files in MaNGOS and recompiling to then edit again is a waste of 10 minutes. Am I able to compile, then edit something like in Spell.cpp and then recompile only that file? Or do I really have to compile everything over again?

  8. Okay, I've run several test servers on Windows XP and never have this problem. But on vista you get this:

    "Welcome to Ahn'Qiraj Temple. This raid instance is scheduled to reset in 6691 Days 15 Hours."

    I get that in EVERY raid. The timer on the computer is synced with EST online time so there is NO mistake with it.

    Any help for this problem?

  9. I've been searching for a patch to fix blink for some time, and I found one in KAPATEJIb's cumulative patches. I've got to say that patch is really good.

    Blink never fails, always removes stun, will never teleport you under the map, and in 99% teleports forward. Why 99%? Because it doesn't work in tunnels, such as Stormwind tunnels that connect districts. My guess is in that zone maps or vmaps are not generated correct, because at the orgrimmar entrace(tunnel), blink works normally. In other zones, works perfect, including arenas and BGs. Doesn't teleport through objects, brings you up to them. Works only if there are vmaps on.

    Here are the changes:

    Spell.cpp

                case SPELL_EFFECT_LEAP:
                case SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER:
                {
    -                float dis = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i]));
    -                float fx = m_caster->GetPositionX() + dis * cos(m_caster->GetOrientation());
    -                float fy = m_caster->GetPositionY() + dis * sin(m_caster->GetOrientation());
    -                // teleport a bit above terrain level to avoid falling below it
    -                float fz = MapManager::Instance().GetBaseMap(m_caster->GetMapId())->GetHeight(fx,fy,m_caster->GetPositionZ(),true);
    -                if(fz <= INVALID_HEIGHT)                    // note: this also will prevent use effect in instances without vmaps height enabled
    -                    return SPELL_FAILED_TRY_AGAIN;
    -
    -                float caster_pos_z = m_caster->GetPositionZ();
    -                // Control the caster to not climb or drop when +-fz > 8
    -                if(!(fz<=caster_pos_z+8 && fz>=caster_pos_z-8))
    -                    return SPELL_FAILED_TRY_AGAIN;
    -
                    // not allow use this effect at battleground until battleground start
                    if(m_caster->GetTypeId()==TYPEID_PLAYER)
                        if(BattleGround const *bg = ((Player*)m_caster)->GetBattleGround())

    SpellEffects.cpp

    void Spell::EffectMomentMove(uint32 i)
    {
       if(unitTarget->isInFlight())
           return;
    
       if( m_spellInfo->rangeIndex== 1)                        //self range
       {
           uint32 mapid = m_caster->GetMapId();
           float dis = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i]));
    
           // Start Info //
               float cx,cy,cz;
               float dx,dy,dz;
               float angle = unitTarget->GetOrientation();
               unitTarget->GetPosition(cx,cy,cz);
    
               //Check use of vamps//
               bool useVmap = false;
               bool swapZone = true;
               if( MapManager::Instance().GetMap(mapid, unitTarget)->GetHeight(cx, cy, cz, false) <  MapManager::Instance().GetMap(mapid, unitTarget)->GetHeight(cx, cy, cz, true) )
                   useVmap = true;
    
               const int itr = int(dis/0.5f);
               const float _dx = 0.5f * cos(angle);
               const float _dy = 0.5f * sin(angle);
               dx = cx;
               dy = cy;
    
               //Going foward 0.5f until max distance
               for(float i=0.5f; i<dis; i+=0.5f)
               {
                   //unitTarget->GetNearPoint2D(dx,dy,i,angle);
                   dx += _dx;
                   dy += _dy;
                   MaNGOS::NormalizeMapCoord(dx);
                   MaNGOS::NormalizeMapCoord(dy);
                   dz = MapManager::Instance().GetMap(mapid, unitTarget)->GetHeight(dx, dy, cz, useVmap);
    
                   //Prevent climbing and go around object maybe 2.0f is to small? use 3.0f?
                   if( (dz-cz) < 2.0f && (dz-cz) > -2.0f && (unitTarget->IsWithinLOS(dx, dy, dz)))
                   {
                       //No climb, the z differenze between this and prev step is ok. Store this destination for future use or check.
                       cx = dx;
                       cy = dy;
                       cz = dz;
                   }
                   else
                   {
                       //Something wrong with los or z differenze... maybe we are going from outer world inside a building or viceversa
                       if(swapZone)
                       {
                           //so... change use of vamp and go back 1 step backward and recheck again.
                           swapZone = false;
                           useVmap = !useVmap;
                           //i-=0.5f;
                           --i;
                           dx -= _dx;
                           dy -= _dy;
                       }
                       else
                       {
                           //bad recheck result... so break this and use last good coord for teleport player...
                           dz += 0.5f;
                           break;
                       }
                   }
               }
    
               //Prevent Falling during swap building/outerspace
               unitTarget->UpdateGroundPositionZ(cx, cy, cz);
    
           if(unitTarget->GetTypeId() == TYPEID_PLAYER)
               ((Player*)unitTarget)->TeleportTo(mapid, cx, cy, cz, unitTarget->GetOrientation(), TELE_TO_NOT_LEAVE_COMBAT | TELE_TO_NOT_UNSUMMON_PET | (unitTarget==m_caster ? TELE_TO_SPELL : 0));
           else
               MapManager::Instance().GetMap(mapid, unitTarget)->CreatureRelocation((Creature*)unitTarget, cx, cy, cz, unitTarget->GetOrientation());
       }
    }

    In SpellEffects.cpp, the MomentMove function is completely replaced by this one. This function is a modified version of KAPATEJIb's patch, dx, dy coords are computed in other way.

    I tested this patch only for 2.4.3. For 3.0.x I'm not sure if it will work. However it should.

    P.S. I hope it will help finish your work, Tassader2.

    Out of all the Blink patches I've tested, this is BY FAR the most real working one. Why is it not been submitted for review?

  10. Sorry to stick my nose in here, but I really do hope you can get this working like Blizzard's if that's what is trying to be done. Especially if it can be worked on and implemented into MaNGOS. The whole cheat-hacking is a really bad flaw and if there could be a real Warden monitoring it, it would be awesome.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use