Jump to content

Mr.Grom

Members
  • Posts

    24
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Mr.Grom

  1. In MovementHandler.cpp : http://pastebin.ca/1947425

    In SpellAuras.cpp : http://pastebin.ca/1947428

    Errors like this > 100 = Fatal error

    Fix for:

    sWorld.BanAccount(BAN_CHARACTER,Player,duration_secs,(char*)"Cheat",(char*)"Anticheat");

    QueryResult *result = LoginDatabase.PQuery("SELECT last_ip FROM account WHERE id=%u", Acc);

    sWorld.BanAccount(BAN_IP,LastIP,duration_secs,(char*)"Cheat",(char*)"Anticheat");

    In SpellAuras.cpp

    GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVE);

  2. wrong fix because - casterGUID is never empty and if it is - problem somewhere else, "return" is wrong because bounds contain all holders for same spell on current Unit - so why check only first one when you need to find exact same from caster who called delay?

    Wrong fix because - casterGUID is never empty - Even creature corpse if ( !caster -> isAlive() || !caster-> IsInWorld()) ?

    "return" is wrong - Then put "break" is also wrong fix ?

  3. Permanent crash on 10429

    Registers:
    EAX:DBF62294
    EBX:F2DDCB80
    ECX:00000000
    EDX:D42FCFE0
    ESI:00000000
    EDI:009737C0
    CS:EIP:0023:0041D40F
    SS:ESP:002B:0B9C1C44  EBP:0B9C1C50
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010216
    
    Call stack:
    Address   Frame     Function      SourceFile
    0041D40F  00000000  std::_Tree<std::_Tmap_traits<unsigned int,SpellAuraHolder *,std::less<unsigned int>,std::allocator<std::Pair<unsigned int const ,SpellAuraHolder *> >,1> >::_Ubound+F
    0049776E  00000000  Unit::DelaySpellAuraHolder+2E
    007CAB52  00000000  DynamicObject::Delay+92
    0077A9C0  00000000  Spell::DelayedChannel+3D0
    004898AD  00000000  Unit::DealDamage+252D
    0048C1A5  00000000  Unit::DealMeleeDamage+4E5
    0048F39D  00000000  Unit::AttackerStateUpdate+1CD
    008CE367  00000000  CreatureEventAI::DoMeleeAttackIfReady+E7
    008CD917  00000000  CreatureEventAI::UpdateAI+337
    004BF420  00000000  Creature::Update+7B0
    004F9CAF  00000000  MaNGOS::ObjectUpdater::Visit+6F
    004F9C32  00000000  VisitorHelper<MaNGOS::ObjectUpdater,Creature>+12
    004F94A0  00000000  VisitorHelper<MaNGOS::ObjectUpdater,Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > >+10
    004F8FD3  00000000  VisitorHelper<MaNGOS::ObjectUpdater,GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > >+23
    004F8860  00000000  VisitorHelper<MaNGOS::ObjectUpdater,TypeList<GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > > >+10
    004F54EF  00000000  Map::Visit<MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > > > >+CF
    004EFE47  00000000  Cell::Visit<MaNGOS::ObjectUpdater,TypeMapContainer<TypeList<GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > > > >+67
    004D9C3B  00000000  Map::Update+33B
    006F4EA0  00000000  MapManager::Update+120
    00650852  00000000  World::Update+832
    004585BE  00000000  WorldRunnable::run+8E
    009737D9  00000000  ACE_Based::Thread::ThreadTask+19
    733C1864  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    73DB3433  00000000  _endthreadex+44
    73DB34C7  00000000  _endthreadex+D8
    760BE3F3  00000000  BaseThreadInitThunk+E
    77E8CFED  00000000  RtlCreateUserProcess+8C
    77E8D1FF  00000000  RtlCreateProcessParameters+4E
    ========================
    Local Variables And Parameters
    
    Call stack:
    Address   Frame     Function      SourceFile
    0041D40F  00000000  std::_Tree<std::_Tmap_traits<unsigned int,SpellAuraHolder *,std::less<unsigned int>,std::allocator<std::Pair<unsigned int const ,SpellAuraHolder *> >,1> >::_Ubound+F
       Local  <user defined> 'this'
       Local  <user defined> '_Keyval'
       Local  <user defined> '_Pnode'
       Local  <user defined> '_Wherenode'
    
    0049776E  00000000  Unit::DelaySpellAuraHolder+2E
       Local  <user defined> 'this'
    punting on symbol spellId
    punting on symbol delaytime
       Local  <user defined> 'bounds'
    
    007CAB52  00000000  DynamicObject::Delay+92
       Local  <user defined> 'iunit'
       Local  <user defined> 'this'
    punting on symbol delaytime
    
    0077A9C0  00000000  Spell::DelayedChannel+3D0
    punting on symbol j
       Local  <user defined> 'ihit'
       Local  <user defined> 'this'
    punting on symbol delayReduce
    punting on symbol delaytime
    
    004898AD  00000000  Unit::DealDamage+252D
    punting on symbol channelInterruptFlags
       Local  <user defined> 'spell'
       Local  <user defined> 'next'
       Local  <user defined> 'i'
    punting on symbol morphSpell
       Local  <user defined> 'vAuras'
       Local  <user defined> 'this'
       Local  <user defined> 'pVictim'
    punting on symbol damage
       Local  <user defined> 'cleanDamage'
       Local  <user defined> 'damagetype'
       Local  <user defined> 'damageSchoolMask'
       Local  <user defined> 'spellProto'
    punting on symbol durabilityLoss
    punting on symbol duel_hasEnded
    punting on symbol health

  4. ofc im learning myself reading some books and some guides from net but im not that pro yet...

    http://pastebin.com/TsH25AWv

    http://pastebin.com/8vDdHPmZ

    Instead, the second script you can use this.

    /* ScriptData
    SDName: item_levelplayer
    SD%Complete: 100
    SDComment: Used for Leveling characters Random
    SDCategory: Items
    EndScriptData */
    
    #include"precompiled.h"
    
    bool ItemUse_item_levelplayer(Player* pPlayer, Item* pItem, const SpellCastTargets &pTargets)
    {
    if ((pPlayer->isInCombat()) || (pPlayer->isInFlight()) || (pPlayer->isDead()))
    {
         pPlayer->SendEquipError(EQUIP_ERR_NOT_IN_COMBAT, pItem, NULL);
           return false;
    }
         pPlayer->RemoveSpellsCausingAura(SPELL_AURA_MOUNTED);
    
       outstring_log("player level %i",pPlayer->getLevel());
       if(((pPlayer->getLevel()) + 5) > 80)
       {
           outstring_log("playerlevel+5 > 80 (%i+5=%i)",pPlayer->getLevel(),pPlayer->getLevel()+5);
           if((80 - (pPlayer->getLevel())) > 0)
           {
               outstring_log("leveling for %i levels",(80-(pPlayer->getLevel())));
               pPlayer->GiveLevel(pPlayer->getLevel()+(80 - (pPlayer->getLevel())));  
           }
           else
           {
               outstring_log("level would be 81+, exiting function");
               return true;
           }
       }
       else
       {
           outstring_log("leveling for 5 levels");
           pPlayer->GiveLevel(pPlayer->getLevel()+5);
       }
       pPlayer->DestroyItemCount(pItem->GetEntry(),1,true);
       return true;
    }
    void AddSC_item_levelplayer()
    {
       Script *newscript;
    
         newscript = new Script;
       newscript->Name="item_levelplayer";
       newscript->pItemUse = &ItemUse_item_levelplayer;
       newscript->RegisterSelf();
       outstring_log("SD2: item_levelplayer loaded");
    }

  5. thx so much kid 10, this version of this patch looks much better now.

    the Problem I have is that the big ships in icecrown (skybreaker and orgrims hammer) do not seem to be normal transports, the patch doesn't work with them anyway. The NPC stands in the air but doesn't move with the ship. Can anyone give me information about this? :( would be very nice

    Add this:

    // transport size limited
    -            m_movementInfo.t_x > 50 || m_movementInfo.t_y > 50 || m_movementInfo.t_z > 50)
    +            m_movementInfo.t_x > 250 || m_movementInfo.t_y > 250 || m_movementInfo.t_z > 250)

  6. Script

    Index: scripts/npc/npcs_special.cpp
    ===================================================================
    --- scripts/npc/npcs_special.cpp    (revision 1262)
    +++ scripts/npc/npcs_special.cpp    (working copy)
    @@ -1288,7 +1288,33 @@
        }
        return true;
    }
    +/* Need more Review!
    +struct MANGOS_DLL_DECL npc_mirror_image : public ScriptedAI
    +{
    +    npc_mirror_image(Creature* pCreature) : ScriptedAI(pCreature) {}
    +    Unit * owner;
    +    void Reset()
    +    {
    +        if (m_creature->isSummon())
    +            owner = ((Summon*)m_creature)->GetOwner();
    +        if (!owner)
    +            return;
    +        m_creature->SetDisplayId(owner->GetDisplayId());
    +        owner->SetLevel(owner->getLevel());
    +        // Inherit Master's Threat List (not yet implemented)
    +        owner->CastSpell((Unit*)NULL, 58838, true);
    +        // here mirror image casts on summoner spell (not present in client dbc) 49866
    +        // here should be auras (not present in client dbc): 35657, 35658, 35659, 35660 selfcasted by mirror images (stats related?)
    +        // Clone Me!
    +        owner->CastSpell(m_creature, 45204, false);
    +    }
    +};
    
    +CreatureAI* GetAI_npc_mirror_image(Creature* pCreature)
    +{
    +    return new npc_mirror_image(pCreature);
    +}
    +*/
    void AddSC_npcs_special()
    {
        Script *newscript;
    @@ -1354,4 +1380,9 @@
        newscript->pGossipHello = &GossipHello_npc_sayge;
        newscript->pGossipSelect = &GossipSelect_npc_sayge;
        newscript->RegisterSelf();
    +
    +    /*newscript = new Script;
    +    newscript->Name = "npc_mirror_image";
    +    newscript->GetAI = &GetAI_npc_mirror_image;
    +    newscript->RegisterSelf();*/

  7. Try it

    
    -        sLog.outError("HandleMoveNotActiveMover: incorrect mover guid: mover is " I64FMT " and should be " I64FMT " instead of " I64FMT, _player->m_mover->GetGUID(), _player->GetGUID(), old_mover_guid);
    +        sLog.outError("HandleMoveNotActiveMover: incorrect mover guid: mover is " I64FMT " (%u) and should be " I64FMT "(%u) instead of " I64FMT "(%u)",
    +            _player->m_mover->GetGUID(),  _player->m_mover->GetGUIDLow(), _player->GetGUID(), _player->GetGUIDLow(), old_mover_guid, GUID_LOPART(old_mover_guid));
    
    

  8. Maybe it will help you: from Vehicle.dbc- vehicle_data_ID and VehicleSeat.dbc- vehicle_seat_data_ID

    enum CustomVehicleFLags
    {
       VF_CANT_MOVE                    = 0x0001,                   // vehicle не может двигаться, только поворачиваться, может быть реализуется специфичными аурами?
       VF_FACTION                      = 0x0002,                   // vehicle не наследует фракцию пассажира
       VF_DESPAWN_NPC                  = 0x0004,                   // vehicle деспавнится после использования
       VF_DESPAWN_AT_LEAVE             = 0x0008,                   // vehicle деспавнится после выхода водителя
       VF_CAN_BE_HEALED                = 0x0010,                   // vehicle может быть вылечено
       VF_GIVE_EXP                     = 0x0020,                   // vehicle разрешить получение XP
       VF_MOVEMENT                     = 0x0040,                   // vehicle двигается самостоятально, не зависимо от водителя, который только может кастовать спелы
       VF_NON_SELECTABLE               = 0x0080                    // vehicle нельзя выделить после входа водителя
       //VF_HAS_FUEL                     = 0x0100,                   // TODO : find out what energy type is fuel and implement this
    };
    
    enum CustomVehicleSeatFLags
    {
       SF_MAIN_RIDER                   = 0x0001,                   // контролирующий vehicle может также кастовать спеллы
       SF_UNATTACKABLE                 = 0x0002,                   // сидящих внутри нельзя атаковать, пока vehicle не будет разрушен
       SF_CAN_CAST                     = 0x0004,                   // игрок/НИП могут поварачиваться и кастовать СОБСТВЕННЫЕ спеллы
       SF_UNACCESSIBLE                 = 0x0008                    // используется в скриптах
    };
    
    

  9. 8877 is working good for me no crash yet but also no new vehicle support eather, I wish NetSky would release those new sql's atleast :cool:

    as of 8896 something has happened again to the branch, I did my normal pull and updated mangos then compiled got a mess of warnings, so I made a new Repo and added the vehicle_mangos_8877.patch to it only and got pa couple patch errors, fixed them and then got the same 24 warnings in the compiler. Can somebody please verify if I made a mistake or not.

    Thank You

    After applying any patch, do komity in your local Git repository and then you do not have to upgrade every time a patch.!

    commit creates a command git

    commit -a -m "resolved confliсts"

  10. i will update mine soon - as long as i am working with a modified version of the actual patch i did not realize which major bugs could be there.... transport unitflag was not added correctly for passive passenngers or passive vehicle pilots, movement packages were not handled correctly...

    btw gathered also data for additional vehicles getting rid of vehicle_data and vehicle_seat_data by generic use of dbc seem to be no good ides since many vehicles need custom flags for correct work.

    NetSky dreamer who works alone in the tank when you sit down, and when a few people, there is a new patch here problemma.

    Patch for 8877 net kernel here

×
×
  • 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