This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Grymskvll

Pages: [1] 2 3 ... 5
1
You can use AIO to communicate between server and client (for UI updates): https://github.com/Rochet2/AIO
Have a look at this Eluna VIP token system to get an idea of how you can manage your new resource: https://github.com/BlackWolfsDen/Eluna-Grumboz_VIP_System-Complete

Check the readme, notice how they add columns to the account table for tracking values per account.

2
Miscellaneous / Re: Creating a Raise Dead spell
« on: June 27, 2019, 02:04:26 pm »
Woops I forgot by default ghouls are summoned as guardians (see https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Spells/spell_dk.cpp#L2053)
Also Raise Dead (46584) doesn't start cooling down until the ghoul dies (see https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Spells/spell_dk.cpp#L2069)

Army of the Dead starts cooling down immediately. Maybe try to copy and modify the spell triggered by Army of the Dead (think it was 42651), otherwise you'll have to change it in the client (flags I guess) and server (linked above)

3
Miscellaneous / Re: Creating a Raise Dead spell
« on: June 27, 2019, 12:04:50 pm »
Players can only have 1 pet you have direct control over (with a pet bar). You can have multiple Guardians (see the DK spell Army of the Dead for example).

To make corpses only usable once, you could alternatively turn it into gibs like Corpse Explosion does. I think this is where TC checks whether the target has been exploded (I guess you would have to change the DisplayID when you raise a minion from the corpse):
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Spells/spell_dk.cpp#L625

Be sure to check out relevant/similar spell scripts.

4
Showoff - what you are working on / Re: Completely Playable map
« on: April 23, 2019, 03:42:27 pm »
Nice. I like the layers of trees in the back. Looks more interesting than the usual bare hilltops.

5
Resources and Tools / [TOOL] Item Balancer
« on: January 23, 2019, 08:01:13 am »
Download: https://github.com/Grymskvll/WoW-Item-Balancer/releases
Demo:


Major inaccuracies can occur, especially if it's something like mail armor with int. The budget mod is probably different for such stats.
Socket budget is also kind of a rough guess.

Sorry for my bad programming. I tried to rewrite it, but it just became a different kind of bad.

6
Miscellaneous / Re: Question custom talent tree
« on: October 11, 2018, 02:36:02 pm »
The icon is probably spilling past the scrollframe boundary.

This might help:
https://github.com/Gethe/wow-ui-textures
https://github.com/tekkub/wow-ui-source/releases

7
Serverside Modding / Re: Custom Stances
« on: October 10, 2018, 09:53:21 am »
Did you try what Schlumpf suggested and just use one of the unused shapeshift IDs? I just tried it and it seemed to work fine.

How did you even set the Stances mask for Void missile to such a high value (assuming you did it right)? I tried setting a spell to use a 33rd shapeshift ID, but all the editors/converter I tried refused the value because of the reason Schlumpf mentions.

Are you setting the mask properly? For example, to use the 5th shapeshift ID, you set the Stances mask to:
Code: [Select]
Stances = 1 << (5-1)
Result:
dec 16
hex 0x10
bin 0001 0000 i.e. the 5th bit

Or for multiple forms:
Code: [Select]
Stances = (1<<(5 - 1)) | (1<<(32 - 1))
Result:
dec 2147483664
hex 0x80000010
bin 10000000000000000000000000010000 i.e. the 5th and 32nd bits

Bit calculation: https://www.wolframalpha.com
Dec to hex (for inputting in Spell.dbc): https://www.binaryhexconverter.com/decimal-to-hex-converter
Dec to bin (if you want to verify): https://www.binaryhexconverter.com/decimal-to-binary-converter

8
Showoff - what you are working on / Re: [VIDEO] Coffee Induced Dreams
« on: June 03, 2018, 06:14:20 pm »
Nice! The "Behind the scenes" video is just as cool.

9
Miscellaneous / Re: Creating a new item quality color?
« on: April 15, 2018, 08:31:33 am »
In the WotLK client, you need to change colors in (at least) two places in Wow.exe. One for chat links, one for tooltips.

Search for the hex color code in IDA and you'll find the one used for chat links at this address:
Code: [Select]
00A24644
Keep in mind it's stored as a string (https://www.asciitohex.com/)

For the other place, I looked around for GetItemQualityColor and found something pointing to:
Code: [Select]
0AD2D84
Keep in mind these are just stored as hex directly AND they're stored as BGR from top to bottom, rather than RGB.

Apologies if I fucked something up.
Am I correct in understanding that to safely add more color codes, you would change offsets to the end of the file where there's plenty of space?

10
Miscellaneous / Re: How would I create a new menu?
« on: December 12, 2017, 04:45:20 pm »
Look at Blizzard's XML+Lua to get an idea of how it's done.

It might be a little easier to make it a standalone frame, rather than making it part of CharacterFrame. It's understandable if you want to make it part of CharacterFrame, but consider that (in WotLK) there's no room left under the frame for another tab.

If you're talking about changing CharacterFrame, look at these files for a start:

Code: [Select]
Interface\FrameXML\CharacterFrame.xml
Interface\FrameXML\CharacterFrame.lua
Interface\FrameXML\CharacterFrameTemplates.xml

CharacterFrame.xml sets up the frames, CharacterFrame.lua handles the logic and CharacterFrameTemplates.xml has the template for tab buttons.

Taking a quick look at CharacterFrame.lua, there's this function that handles switching tabs:
Code: [Select]
function CharacterFrameTab_OnClick (self, button)
local name = self:GetName();

if ( name == "CharacterFrameTab1" ) then
ToggleCharacter("PaperDollFrame");
elseif ( name == "CharacterFrameTab2" ) then
ToggleCharacter("PetPaperDollFrame");
elseif ( name == "CharacterFrameTab3" ) then
ToggleCharacter("ReputationFrame");
elseif ( name == "CharacterFrameTab4" ) then
ToggleCharacter("SkillFrame");
elseif ( name == "CharacterFrameTab5" ) then
ToggleCharacter("TokenFrame");
end
PlaySound("igCharacterInfoTab");
end

You could overwrite this, or just have a new function handle the OnClick for your new tab, but then you can't use the same tab button template (or you have to overwrite the onclick script).

The actual contents of the tabs are just child frames of CharacterFrame.

function ToggleCharacter (tab) is defined in CharacterFrame.lua, and calls this function:
Code: [Select]
function CharacterFrame_ShowSubFrame (frameName)
for index, value in pairs(CHARACTERFRAME_SUBFRAMES) do
if ( value == frameName ) then
getglobal(value):Show()
else
getglobal(value):Hide();
end
end
end

CHARACTERFRAME_SUBFRAMES is defined right at the top, it's just a list of string names of the subframes:
Code: [Select]
CHARACTERFRAME_SUBFRAMES = { "PaperDollFrame", "PetPaperDollFrame", "SkillFrame", "ReputationFrame", "TokenFrame" };
I don't know what kind of collections you had in mind, but if you intend to ask the server for data you can use AIO to give the client a way to do it.

For example, in Blizzard_TokenUI.lua (which handles the logic for the currency tab of CharacterFrame):
Code: [Select]
TokenFrameHonorFrameHonor:SetText(GetHonorCurrency());
TokenFrameHonorFrameArena:SetText(GetArenaCurrency());

You can add functions similar to GetHonorCurrency and GetArenaCurrency to the client, but for whatever you're trying to ask the server about. You could make a GetCollection function to the client which gets called when your frames are done setting up which asks the server to get your character's collection info and sends it back. Then the client listens for a message back, and when it's received you can populate/update your menu. You'll need to set up a table for all characters' collection info in your CharDB and put it in memory using Eluna's CharDBQuery on server start, and save changes using CharDBExecute.

Eluna supports database queries.
Look at the PingPong.lua example in AIO for back-and-forth communication.

11
"Retro-Porting" / Re: LF M2TBC
« on: July 29, 2017, 06:18:04 pm »
I've only used this once but it seemed to work well: https://github.com/Koward/jM2converter
If you have issues converting, try adding the full filepath for the input and output file, wrapped in quotes.

12
In world.quest_template, if you look at one of the quests that teaches Training Lesson (for example quest ID 6089 (WotLK)), there's a RewardDisplaySpell column and a RewardSpell column.

RewardDisplaySpell  is 23357: Taming Lesson (it only has a dummy effect, so it doesn't do anything)
RewardSpell  is 5300: Beast Training which has these two effects:
Quote
Effect #1    Learn Spell:
   Feed Pet       
Effect #2    Learn Spell:
   Revive Pet

Dunno why they do this

13
Serverside Modding / Re: Auras: Unknown Shapeshift Type: XX
« on: July 03, 2017, 11:31:38 am »
Best guess is that the game simply runs out of actionbars. You can maybe test this by restricting the actionbar number for your shapeshift forms to 0-4 in SpellShapeshiftForm, like Blizzard seems to do.

http://wowwiki.wikia.com/wiki/ActionSlot
Quote
As of 1.11, World of Warcraft allows 120 Action Slot IDs, numbered from 1-120.
Quote
As of WoW 2.3, action slots 121-132 exist but are not settable: they refer to the default UI's main action bar while possessing a target
Quote
Druid Bonus Action Bars

ActionBar page 1 Cat Form: slots 73 to 84
ActionBar page 1 Prowl: slots 85 to 96
ActionBar page 1 Bear Form: slots 97 to 108
ActionBar page 1 Moonkin Form: slots 109 to 120

You can see that druids with their 4 extra actionbar pages use up the very last actionslot that's settable. So why can't you set the actionbar number to 5-9 in SpellShapeshiftForm? For some reason those actionbar IDs start at the 7th actionbar, so with 0 you get the first actionbar (or no change?), and with 1-3 you get the 7-10th actionbars.

I don't immediately know if it's possible to add more, or what you have to change.

14
Probably look for bits like this (from wotlk moneyframe.lua):
Code: [Select]
-- Breakdown the money into denominations
local gold = floor(money / (COPPER_PER_SILVER * SILVER_PER_GOLD));
local silver = floor((money - (gold * COPPER_PER_SILVER * SILVER_PER_GOLD)) / COPPER_PER_SILVER);
local copper = mod(money, COPPER_PER_SILVER);

I guess copper should just be set to money.
Gold and silver and their related frames should be removed ideally, rather than just hidden or set to 0.

15
^ that's really cool. are the power lines separate objects from the poles?

I needed to mod the castbar visual for something I'm working on, but then I got the idea that I could use 3D modeling to create interface textures. I decided to recreate the original castbar as a test:


Pages: [1] 2 3 ... 5