[WoW] [7.1.5.23360] menu

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 41
  1. #16
    lolp1's Avatar Site Donator CoreCoins Purchaser
    Reputation
    190
    Join Date
    Feb 2013
    Posts
    210
    Thanks G/R
    43/77
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by NotJuJuBoSc View Post
    Some stuff i'm using in WoWSharp (rebased) :
    ..
    Hey that is my frame works name

    Anyways, since people love the auras offsets sometimes and the aura struct change was mentioned, here is the offsets for x64, threw spell db in there..

    Code:
    // x64 
    internal const int AuraSize = 0x88;
    internal const int AuraTable = 0x1DB0;
    internal const int AuraCount = 0x2630;
    internal const ulong Spells = 0x15D9D10;

    [WoW] [7.1.5.23360]
  2. #17
    lalai's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    5
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Guys anybody knows by any chance where garrison mission rewards are read from in legion? it used to be GarrMissionReward db2 back in WOD but that is gone and there are no new columns on the other GarrMission storage files.

  3. #18
    CrimeTime's Avatar Active Member
    Reputation
    20
    Join Date
    Dec 2007
    Posts
    83
    Thanks G/R
    16/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @lalai: I'm not 100% sure, but for me it looks like that blizzard did just added the new legion missions to the garrmission.db2

  4. #19
    lalai's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    5
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by CrimeTime View Post
    @lalai: I'm not 100% sure, but for me it looks like that blizzard did just added the new legion missions to the garrmission.db2
    Yes they did those are for the Order Halls.

    The problem is the actual rewards data is gone completely since GarrMissionRewards.db2 disappeared. The fields were not merged into any other garrison db2 as far as i saw.

    Interface data shows GetMissionPage().RewardsFrame.Rewards is the same and there is no hint to where they moved.
    As the client simply works with lua data, CGarrison::GetMissionRewardInfo contains no db2 trace callbacks to the actual storage location of the rewards. They are sent to the client as part of GarrisonMissionReward struct, part of GarrisonInfo struct in SMSG_GET_GARRISON_INFO_RESULT (ClientGetGarrisonInfoResult(NetClient *,WowConnection *,CDataStore *,uint)). From there the client gets them and builds the frame to display the mission rewards for you on the screen when you open the command tables.

    I simply cannot understand where the data in the SMSG is coming from since the WOD db2 vanished. There must be some client storage they moved to in Legion containing the item, currency, gold and experience rewards for each mission, and that is what I am trying to find :P.
    Last edited by lalai; 01-19-2017 at 05:14 PM.

  5. #20
    air999's Avatar Contributor
    Reputation
    131
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    9/62
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by lalai View Post

    I simply cannot understand where the data in the SMSG is coming from since the WOD db2 vanished. There must be some client storage they moved to in Legion containing the item, currency, gold and experience rewards for each mission, and that is what I am trying to find :P.
    Hello,

    there is Lua script C_Garrison.GetAvailableMissions([missionList,] garrFollowerTypeID)

    you can use it like:

    /dump C_Garrison.GetAvailableMissions(LE_FOLLOWER_TYPE_GARRISON_6_0)
    /dump C_Garrison.GetAvailableMissions(LE_FOLLOWER_TYPE_SHIPYARD_6_2)
    /dump C_Garrison.GetAvailableMissions(LE_FOLLOWER_TYPE_GARRISON_7_0)

    it dump all mission info, including rewards
    [WoW] [7.1.5.23360]-missions-gif

    i think you need to dig in that direction.
    Last edited by air999; 01-19-2017 at 08:34 PM. Reason: add

  6. Thanks lalai (1 members gave Thanks to air999 for this useful post)
  7. #21
    lalai's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    5
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks a lot!

    Edit: The lua function retrieves the current available missions, which are populated with data from ClientGetGarrisonInfoResult on receive. As the rewards are added to the missions on SMSG building, so passed indirectly to the client, the function can point back to it, but not to the client storage place used to add the rewards from, so it still doesn't help solve the problem :P. The only interesting thing i traced it back to is sub_1407B4730 -> sub_1407B7110 (x64 not rebased).
    Last edited by lalai; 01-19-2017 at 09:41 PM.

  8. #22
    air999's Avatar Contributor
    Reputation
    131
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    9/62
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    JamGarrisonMissionReward is 28 bytes
    Code:
    namespace WowJamMessages
    {
      public class JamGarrisonMissionReward
      {
        public int ItemFileDataID { get; set; }
        public int ItemID { get; set; }
        public int CurrencyType { get; set; }
        public uint FollowerXP { get; set; }
        public uint CurrencyQuantity { get; set; }
        public uint ItemQuantity { get; set; }
        public uint GarrMssnBonusAbilityID { get; set; }
      }
    }
    from Lua Script_C_Garrison_GetBasicMissionInfo
    code from 23420 PTR
    Code:
    int __fastcall sub_1408DE6F0(__int64 a1, __int64 a2, int a3)
    {
      int v3; // ebx@1
      __int64 v4; // rsi@1
      __int64 v5; // rdi@1
      __int64 v6; // rax@1
      const char *v7; // rcx@4
      __int64 v8; // rax@6
      __int64 v9; // rax@6
      signed int v10; // ebp@7
      __int64 v11; // rax@9
      __int64 v12; // r14@9
      _BYTE *v13; // rax@12
      _BYTE *v14; // rbx@12
      const char *v15; // rcx@12
      __int64 v16; // rax@14
      unsigned int v17; // edx@15
      __int64 v18; // rbp@16
      __int64 v19; // r14@17
      __int64 v20; // r15@18
      char *v21; // rbx@19
      __int64 v22; // rax@20
      char *v23; // rsi@20
      char *v24; // rdx@20
      __m128d v25; // xmm1@22
      __int64 v26; // rdx@22
      __m128d v27; // xmm1@22
      __int64 v28; // rdx@22
      __int64 v29; // rax@22
      __int128 v30; // xmm1@24
      __int64 v31; // rdx@24
      char v33; // [sp+30h] [bp-A18h]@6
      char v34; // [sp+130h] [bp-918h]@6
      char v35; // [sp+230h] [bp-818h]@24
    
      v3 = a3;
      v4 = a2;
      v5 = a1;
      LODWORD(v6) = lua_createtable(a1, 0i64, 0i64);
      if ( *(_DWORD *)v4 )
      {
        lua_pushstring(v5, (__int64)"itemID");
        lua_pushinteger(v5, *(_DWORD *)v4);
        lua_settable(v5, 0xFFFFFFFD);
        lua_pushstring(v5, (__int64)"quantity");
        lua_pushinteger(v5, *(_DWORD *)(v4 + 4));
        LODWORD(v6) = lua_settable(v5, 0xFFFFFFFD);
      }
      else if ( *(_DWORD *)(v4 + 16) )
      {
        lua_pushstring(v5, (__int64)"followerXP");
        lua_pushinteger(v5, *(_DWORD *)(v4 + 16));
        lua_settable(v5, 0xFFFFFFFD);
        lua_pushstring(v5, (__int64)"icon");
        lua_pushstring(v5, (__int64)"Interface\\Icons\\XPBonus_Icon");
        lua_settable(v5, 0xFFFFFFFD);
        lua_pushstring(v5, (__int64)"title");
        v7 = "GARRISON_SHIPYARD_REWARD_XP";
        if ( v3 != 3 )
          v7 = "GARRISON_REWARD_XP";
        v8 = sub_1400C42A0((__int64)v7);
        lua_pushstring(v5, v8);
        lua_settable(v5, 0xFFFFFFFD);
        lua_pushstring(v5, (__int64)"tooltip");
        sub_1400C2670(&v33, 256i64, *(_DWORD *)(v4 + 16));
        v9 = sub_1400C42A0((__int64)"XP_GAIN");
        sub_1402FB110(&v34, 256i64, v9, &v33);
        lua_pushstring(v5, (__int64)&v34);
        lua_settable(v5, 0xFFFFFFFD);
        lua_pushstring(v5, (__int64)"name");
        lua_pushstring(v5, (__int64)&v34);
        LODWORD(v6) = lua_settable(v5, 0xFFFFFFFD);
      }
      else
      {
        v10 = *(_DWORD *)(v4 + 12);
        if ( v10 )
        {
          lua_pushstring(v5, (__int64)"currencyID");
          lua_pushinteger(v5, *(_DWORD *)(v4 + 8));
          lua_settable(v5, 0xFFFFFFFD);
          if ( *(_DWORD *)(v4 + 8) )
          {
            lua_pushstring(v5, (__int64)"icon");
            LODWORD(v11) = sub_14036DA10((__int64)&qword_141805B50, *(_DWORD *)(v4 + 8), &xmmword_141B100F8, 0i64, 0i64, 0);
            v12 = v11;
            if ( v11 && *(_BYTE *)(v11 + 20) & 8 )
              v10 /= 100;
            LODWORD(v13) = sub_140363600(3i64);
            v14 = v13;
            sub_140927450(*(_DWORD *)(v4 + 8), v12);
            *v14;
            sub_1402FB110(&v33, 256i64, "%s%s%s", v14);
            lua_pushstring(v5, (__int64)&v33);
            lua_settable(v5, 0xFFFFFFFD);
            lua_pushstring(v5, (__int64)"title");
            v15 = "GARRISON_REWARD_CURRENCY";
          }
          else
          {
            lua_pushstring(v5, (__int64)"icon");
            lua_pushstring(v5, (__int64)"Interface\\Icons\\inv_misc_coin_01");
            lua_settable(v5, 0xFFFFFFFD);
            lua_pushstring(v5, (__int64)"title");
            v15 = "GARRISON_REWARD_MONEY";
          }
          v16 = sub_1400C42A0((__int64)v15);
          lua_pushstring(v5, v16);
          lua_settable(v5, 0xFFFFFFFD);
          lua_pushstring(v5, (__int64)"quantity");
          lua_pushinteger(v5, v10);
          LODWORD(v6) = lua_settable(v5, 0xFFFFFFFD);
        }
        else
        {
          v17 = *(_DWORD *)(v4 + 20);
          if ( v17 )
          {
            LODWORD(v6) = sub_14036DA10((__int64)&qword_14180C010, v17, &xmmword_141B100F8, 0i64, 0i64, 0);
            v18 = v6;
            if ( v6 )
            {
              LODWORD(v6) = sub_14036DA10((__int64)&qword_141809430, *(_WORD *)(v6 + 8), &xmmword_141B100F8, 0i64, 0i64, 0);
              v19 = v6;
              if ( v6 )
              {
                LODWORD(v6) = sub_14036DA10(
                                (__int64)&qword_14180B990,
                                *(_BYTE *)(v18 + 11),
                                &xmmword_141B100F8,
                                0i64,
                                0i64,
                                0);
                v20 = v6;
                if ( v6 )
                {
                  LODWORD(v6) = sub_14036DA10(
                                  (__int64)&qword_14182C090,
                                  *(_WORD *)(v6 + 8),
                                  &xmmword_141B100F8,
                                  0i64,
                                  0i64,
                                  0);
                  v21 = (char *)v6;
                  if ( v6 )
                  {
                    lua_pushstring(v5, (__int64)"bonusAbilityID");
                    lua_pushinteger(v5, *(_DWORD *)(v4 + 20));
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"textureAtlas");
                    v22 = *(_DWORD *)v21;
                    v23 = &buf;
                    v24 = &buf;
                    if ( (_DWORD)v22 )
                      v24 = &v21[v22];
                    lua_pushstring(v5, (__int64)v24);
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"posX");
                    v25 = _mm_cvtps_pd((__m128)*(_DWORD *)v20);
                    sub_1401D4610(v5, v26);
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"posY");
                    v27 = _mm_cvtps_pd((__m128)*(_DWORD *)(v20 + 4));
                    sub_1401D4610(v5, v28);
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"name");
                    v29 = *(_DWORD *)v19;
                    if ( (_DWORD)v29 )
                      v23 = (char *)(v19 + v29);
                    lua_pushstring(v5, (__int64)v23);
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"description");
                    sub_1408D43D0(v19, &v35, 2048i64);
                    lua_pushstring(v5, (__int64)&v35);
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"icon");
                    sub_1400CAB30(v5, *(_DWORD *)(v19 + 8));
                    lua_settable(v5, 0xFFFFFFFD);
                    lua_pushstring(v5, (__int64)"duration");
                    v30 = COERCE_UNSIGNED_INT64((double)*(signed int *)(v18 + 4));
                    sub_1401D4610(v5, v31);
                    LODWORD(v6) = lua_settable(v5, 0xFFFFFFFD);
                  }
                }
              }
            }
          }
        }
      }
      return v6;
    }

  9. #23
    lalai's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    5
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Aye this fills the mission data for available missions from garrison info smsg (PlayerCliGetGarrisonInfo -> ClientGetGarrisonInfoResult -> all data is in there regarding followers, missions, buildings -> gets passed to the client -> gets passed to lua and the frames are built for player viewing) but still there is no pointing or comparison to any client storage where the rewards are kept / read from. There are also the reward request / response opcodes that update it realtime (0x3323 - 0x292D) which are new in 7.1 but it's same data coming from thin air with no callback to client db2 storage. The rewards info is sent in the server opcodes using the JamGarrisonMissionReward you showed me (although i think you got ItemFileDataID wrong - that from my findings is GoldQuantity).

    Code:
    struct GarrMissionDB2
    {
        int32 MissionDuration;
        uint32 MissionAvailableDuration;
        StringLocale* Name;
        StringLocale* Description;
        StringLocale* Location;
        float  MapPositionX[2];
        float  MapPositionY[2];
        uint16 RequiredFollowerItemLevel;
        uint16 UITextureKitID;
        uint16 Subcategory1;
        uint16 Subcategory2;
        uint16 CurrencyCostType;
        uint16 MissionGroup; // 124 - Dungeon, 125 - Raid.
        int8 MissionLevel;
        uint8 MissionMechanicType;
        uint8 FollowerSlotsCount;
        uint8 ShipyardBlockadeMissionGroup;
        uint8 MissionType;
        uint8 FollowerType;
        uint8 BaseSuccessChance;
        uint8 MinSuccessChanceNeeded;
        uint8 GarrisonType;
        uint32 ID;
        uint32 Unk1_7x; // All 0.
        uint32 CurrencyCostCount;
        uint32 Flags;
        uint32 BaseExperienceGain;
        uint32 MissionZoneId;
        uint32 Flags2; // UNK.
    };
    This is the structure as far as i could sort it out for 23360 and as you can see although it cointains some of the data fields, the reward columns are not present here. There are other storage files containing data for followers / mission encounters etc but none contain this data in Legion regarding mission rewards. GarrMissionReward did it in WOD and is gone since Legion hit. I was hoping to find a comparison in the client or any lead towards a db2 storage file but it has eluded me so far. I am starting to think they created some sort of serverside database table for holding the rewards and i am just hoping somebody can prove me wrong because i would need that data.
    Last edited by lalai; 01-19-2017 at 10:44 PM.

  10. #24
    air999's Avatar Contributor
    Reputation
    131
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    9/62
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    look for string "overmaxRewards", open xref function, it's only one here.

    you will get something
    Code:
      lua_pushstring(v8, (__int64)"inProgress");
      sub_1401D40F0(v8, *(_DWORD *)(v6 + 104) == 1);
      lua_settable(v8, 0xFFFFFFFD);
      lua_pushstring(v8, (__int64)"completed");
      sub_1401D40F0(v8, *(_DWORD *)(v6 + 104) >= 2);
      lua_settable(v8, 0xFFFFFFFD);
      lua_pushstring(v8, (__int64)"rewards");
      v62 = *(_BYTE *)(v5 + 53);
      lua_createtable(v8, 0i64, 0i64);
      v64 = 0;
      v65 = *(_QWORD *)(vars18 + 208);
      for ( j = v65 + 28i64 * *(_DWORD *)(vars18 + 200); v65 != j; v65 += 28i64 )
      {
        sub_1401D4610(v8, v63, COERCE__INT64((double)++v64));
        sub_1408DE6F0(v8, v65, v62);
        lua_settable(v8, 0xFFFFFFFD);
      }
      lua_settable(v8, 0xFFFFFFFD);
      lua_pushstring(v8, (__int64)"overmaxRewards");
    put breakpoint on lua_pushstring(v8, (__int64)"rewards");

    and run ingame lua script GetBasicMissionInfo(missionID)

  11. #25
    shauren's Avatar Established Member
    Reputation
    65
    Join Date
    Feb 2009
    Posts
    60
    Thanks G/R
    2/28
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yes, mission rewards are now handled serverside because they can be different rewards every time
    Some examples:
    Class hall raid quest mission rewards you a different quest item depending on your raid progression, in WoD this was done by having multiple different copies of the same mission
    Class hall missions rewarding reputation tokens give you a different token when you are already exalted with that faction (it is BoA instead of BoP)

  12. Thanks culino2, lalai (2 members gave Thanks to shauren for this useful post)
  13. #26
    lalai's Avatar Member
    Reputation
    1
    Join Date
    Mar 2008
    Posts
    5
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yeah I was afraid of that... thanks!

  14. #27
    kita12's Avatar Member
    Reputation
    1
    Join Date
    Jan 2017
    Posts
    5
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Why does target GUID give back an array of bytes? How do we match it up with an NPC id from wowhead?

  15. #28
    Torpedoes's Avatar ★ Elder ★ Doomsayer
    Authenticator enabled
    Reputation
    1147
    Join Date
    Sep 2013
    Posts
    956
    Thanks G/R
    148/415
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by kita12 View Post
    Why does target GUID give back an array of bytes? How do we match it up with an NPC id from wowhead?
    See EntityID in the descriptor structure.

  16. Thanks kita12 (1 members gave Thanks to Torpedoes for this useful post)
  17. #29
    kita12's Avatar Member
    Reputation
    1
    Join Date
    Jan 2017
    Posts
    5
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Okay, will try that. Out of curiosity what does the Target GUID represent in the game if its from a different table than entity ID?

  18. #30
    Torpedoes's Avatar ★ Elder ★ Doomsayer
    Authenticator enabled
    Reputation
    1147
    Join Date
    Sep 2013
    Posts
    956
    Thanks G/R
    148/415
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by kita12 View Post
    Okay, will try that. Out of curiosity what does the Target GUID represent in the game if its from a different table than entity ID?
    Target GUID = GUID of your current target (i.e. if you're targeting a player or NPC then their GUID will be there). Mouse GUID = GUID of your mouse over target.

Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. Nude WoW Pics!
    By janzi9 in forum Community Chat
    Replies: 34
    Last Post: 01-12-2007, 04:41 PM
  2. Get your first mount in WoW easily
    By Matt in forum World of Warcraft Guides
    Replies: 3
    Last Post: 11-03-2006, 09:46 PM
  3. World of Warcraft WoW!Bot (GetALifeBot) 0.61 for WoW 1.9.4 + FishBot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 43
    Last Post: 04-18-2006, 04:55 AM
  4. AutoIt Macro for WoW AFK Bot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 8
    Last Post: 04-06-2006, 06:01 AM
  5. Free WoW Glider 0.5.3 Loader
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 5
    Last Post: 03-12-2006, 01:00 PM
All times are GMT -5. The time now is 12:11 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search