|
Category: CraftingRecipe Tracker v2 |
Interface Information |
|
Name: |
Recipe Tracker v2 |
Author: |
|
Date: |
02-03-2021 09:40 AM |
Size: |
39.56 Kb |
Version: |
2.0.4 |
Rate File: |
|
RecipeTracker V2 Interface
|
|
Scarlim is the original author of this plugin. Unfortunately, he has not updated since 2013, nor has he made it possible for others to submit updates on the original ([url="https://www.lotrointerface.com/downloads/info780-RecipeTracker.html"]RecipeTracker/URL]) page.
Due to the API, tier names after Eastemnet were not being displayed. This has now been fixed.
If you still have the original Recipe Tracker installed, please uninstall it prior to installing this update. Conflicts will arise if both are running.
--------------------------------------------------------------------------------------
RecipeTracker will automatically track all of your known recipes on each of your characters on a server. It allows any characters crafting list to be viewed instantly, without needing to log out and in again. It also includes a quick recipe search which will tell instantly which characters can use that recipe that just dropped, and which characters already know it.
Features:
Tracks/views all known recipes on all alts
Tracks crafting proficiency/mastery status and experience for all alts
Minimized plugin icon (disable from options if you don't want it)
Recipe quick search - just drag a recipe to the quickslot and instantly see which character already know it, and which characters need it. Or search by simply typing part of the recipe name.
Shows ingredients required for a recipe, even for recipes known only by alts.
Commands:
/recipetracker options
/recipetracker show
/recipetracker hide
/recipetracker toggle
Limitations:
There's a bug in the LUA API which means that when you learn a new recipe it won't show up in the list. You'll have to log out and then log in again in order for the new recipe to appear in the characters list.
Only the known recipes can be tracked, there is no way to see a list of the unknown recipes, as the LUA API doesn't show this information yet.
The quickslot search is a bit primitive since it is based only on the recipe name. Let me know if it fails on any recipes and I'll patch it. Also there's no way in the API to tell for what profession a recipe is intended, so the list of characters just says 'All characters' when an unknown recipe is found.
Changelist:
2.0 - 20/11/20 - Corrected a limitation of the API to correctly display crafting tier 9-13 names (Westemnet - Minas Ithil)
2.0.1 - 21/11/20 - Added RecipeTrackerv2.plugincompendium
2.0.2 - 03/02/21 - Applied corrections to the German translation w/ thanks to Dyri
2.0.3 - 03/02/21 - Applied corrections to the French translation w/ thanks to homeopatix
2.0.4 - 03/02/21 - Corrected a Tier typo from "Minas Ithal' to the correct 'Minas Ithil'. Thank you to Dandee for spotting that.
|
Archive List (Old Versions) |
File Name |
Version |
Size |
Author |
Date |
|
2.0.1 |
37.26 Kb |
Bowcosid |
11-21-2020 09:55 AM |
File Statistics |
User Rating: |
|
Downloads: |
34822 |
Views: |
91187 |
Favorites: |
24 |
Uploaded By: |
|
Last Modified: |
N/A |
|
| |
|
|
|
09-12-2024, 08:08 AM
|
|
The Undying
Forum posts: 47
File comments: 112
Uploads: 1
|
Re: Re: Re: Re: Re: Failure with fourth profession
Quote:
Originally Posted by Dandee
Is there anyone who can say something along the lines of, "open the file named <name>.lua, select everything and delete it, and then copy&paste the code I put below and save"?
|
some of the generated +- lines in the original comment does not make sense to me, but i made similar changes and uploaded here https://github.com/Dromo/RecipeTracker
Quote:
Originally Posted by Largo
However, the mod still has other problems, like CTDs when using the command line to try to open the option window.
|
Also fixed this issue there.
|
|
|
09-02-2024, 07:13 PM
|
|
The Wary
Forum posts: 0
File comments: 6
Uploads: 0
|
Re: Re: Re: Re: Re: Failure with fourth profession
Quote:
Tried this, spent 15-20 minutes trying to do everything that was listed, and the addon is all forked up now. I know too little of lua to have any idea what the hell I'm doing.
Is there anyone who can say something along the lines of, "open the file named <name>.lua, select everything and delete it, and then copy&paste the code I put below and save"?
|
It seems that grammar software mangled the code Nyaku posted. If you compare what Nyaku says should be removed to what is actually in the files, lines like
Code:
table.insert(RecipeList, recipeData)
got changed to
Code:
table. Insert(RecipeList, recipeData)
That space after the dot completely changes what the code does. I went through and removed all the spaces after the dots and I did get it to work. However, the mod still has other problems, like CTDs when using the command line to try to open the option window. I spent a few hours trying to chase that down, since it indicates something in the code is very wrong, but there are no comments in the code and it is very fragmented and spaghetti-like. It might just need a re-write at this point.
|
|
|
08-15-2024, 07:49 AM
|
|
The Wary
Forum posts: 0
File comments: 23
Uploads: 0
|
Re: Re: Re: Re: Failure with fourth profession
Quote:
If you want to make the changes manually, here's basically how it works:
|
Tried this, spent 15-20 minutes trying to do everything that was listed, and the addon is all forked up now. I know too little of lua to have any idea what the hell I'm doing.
Is there anyone who can say something along the lines of, "open the file named <name>.lua, select everything and delete it, and then copy&paste the code I put below and save"?
|
|
|
08-10-2024, 09:38 AM
|
|
The Wary
Forum posts: 0
File comments: 28
Uploads: 0
|
Re: Re: Re: Failure with fourth profession
Quote:
How or where we add this code? It's as simple to create a new random named lua file with this code?
|
No. It's not a new file. It's telling you what changes to make to existing files. I'm sure there's a tool that can do it for you automatically, but I'm not familiar with it.
If you want to make the changes manually, here's basically how it works: - The lines beginning "+++" show you what file the following changes should be made to.
- The lines beginning "@@" show you where in that file the changes should be made. The numbers before the comma are line numbers. I'm not sure what the numbers after the commas are.
- The first couple of lines after that, that have a space in the first column, are lines that don't need to change, to help you find the relevant part of the file.
- Lines with a "-" in the first column should be deleted.
- Lines with a "+" in the first column should be inserted.
|
|
|
08-08-2024, 08:48 AM
|
|
The Wary
Forum posts: 0
File comments: 3
Uploads: 0
|
Re: Re: Failure with fourth profession
The following patch file updates 2.0.4 to work with update 41 by incorporating the changes suggested by @Nyry, removing vocation checks, and adding the optional fourth profession slot.
Code:
--- Globals.lua Wed Feb 3 07:27:39 2021
+++ Globals.lua Wed Jul 31 15:17:30 2024
@@ -65,6 +65,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Unheilskluft";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Eisenbruch";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minis Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Schneider";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Drechsler";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Bauer";
@@ -129,6 +131,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Folde du Destin";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Crevasse de fer";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailleur";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Menuisier";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Fermier";
@@ -168,6 +172,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Doomfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Ironfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailor";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Woodworker";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Farmer";
--- Main.lua Wed Feb 3 07:10:01 2021
+++ Main.lua Wed Jul 31 15:15:17 2024
@@ -31,6 +31,8 @@
Turbine.Gameplay.CraftTier.Doomfold = 11;
Turbine.Gameplay.CraftTier.Ironfold = 12;
Turbine.Gameplay.CraftTier.MinasIthil = 13;
+Turbine.Gameplay.CraftTier.Gundabad = 14;
+Turbine.Gameplay.CraftTier.Umbar = 15;
--- MainWindow.lua Wed Feb 3 07:10:01 2021
+++ MainWindow.lua Fri Aug 2 13:44:29 2024
@@ -100,8 +100,8 @@
end
MainWindow.professionButtons = {};
- MainWindow.professionButtonIndices = { 0, 0, 0 };
- for i = 1, 3 do
+ MainWindow.professionButtonIndices = { 0, 0, 0, 0 };
+ for i = 1, 4 do
local professionButton = Turbine.UI.Lotro.Button();
professionButton:SetParent(MainWindow);
professionButton:SetPosition(10+(i-1)*(professionButtonWidth+10), professionButtonTop);
@@ -436,19 +436,16 @@
function UpdateCharacter()
local character = CharacterList[CurrentCharacter];
- if character. Vocation then
- local buttonIndex = 1;
- for profession, professionData in pairs(character. Professions) do
- MainWindow.professionButtons[buttonIndex]:SetVisible(true);
- MainWindow.professionButtons[buttonIndex]:SetText(GetProfessionName(profession));
- MainWindow.professionButtonIndices[buttonIndex] = profession;
- buttonIndex = buttonIndex + 1;
- end
- else
- for i = 1, 3 do
- MainWindow.professionButtons[i]:SetVisible(false);
- end
- MainWindow.professionButtonIndices = { 0, 0, 0 }
+ for i = 1, 4 do
+ MainWindow.professionButtons[i]:SetVisible(false);
+ end
+ MainWindow.professionButtonIndices = { 0, 0, 0, 0 }
+ local buttonIndex = 1;
+ for profession, professionData in pairs(character. Professions) do
+ MainWindow.professionButtons[buttonIndex]:SetVisible(true);
+ MainWindow.professionButtons[buttonIndex]:SetText(GetProfessionName(profession));
+ MainWindow.professionButtonIndices[buttonIndex] = profession;
+ buttonIndex = buttonIndex + 1;
end
MainWindow.refreshIcon:SetVisible(CurrentCharacter == LocalPlayerCharacter);
@@ -459,7 +456,7 @@
function SetCurrentProfession(profession)
-- Update profession button status
- for i = 1, 3 do
+ for i = 1, 4 do
if i == profession then
MainWindow.professionButtons[i]:SetEnabled(false);
else
--- Recipes.lua Wed Feb 3 07:10:01 2021
+++ Recipes.lua Fri Aug 2 13:44:32 2024
@@ -41,91 +41,87 @@
local character = CharacterList[LocalPlayerCharacter];
local playerAttr = player:GetAttributes();
- character.vocation = playerAttr:GetVocation();
- character. Professions = nil;
- if character. Vocation then
- character. Professions = {};
+ character. Professions = {};
- for k,v in pairs(Turbine.Gameplay.Profession) do
- local professionInfo = playerAttr:GetProfessionInfo(v);
+ for k,v in pairs(Turbine.Gameplay.Profession) do
+ local professionInfo = playerAttr:GetProfessionInfo(v);
- if professionInfo then
- local professionData = {};
-
- professionData.proficiencyLevel = professionInfo:GetProficiencyLevel();
- professionData.masteryLevel = professionInfo:GetMasteryLevel();
-
- professionData.proficiencyExp = professionInfo:GetProficiencyExperience();
- professionData.proficiencyExpTarget = professionInfo:GetProficiencyExperienceTarget();
- professionData.masteryExp = professionInfo:GetMasteryExperience();
- professionData.masteryExpTarget = professionInfo:GetMasteryExperienceTarget();
-
- professionData.recipes = {};
- for i = 1, professionInfo:GetRecipeCount() do
- local recipe = professionInfo:GetRecipe(i);
- local recipeName = recipe:GetName();
- local recipeIndex = RecipeHash[recipeName];
- local recipeData = nil;
- if recipeIndex then
- recipeData = RecipeList[recipeIndex];
+ if professionInfo then
+ local professionData = {};
+
+ professionData.proficiencyLevel = professionInfo:GetProficiencyLevel();
+ professionData.masteryLevel = professionInfo:GetMasteryLevel();
+
+ professionData.proficiencyExp = professionInfo:GetProficiencyExperience();
+ professionData.proficiencyExpTarget = professionInfo:GetProficiencyExperienceTarget();
+ professionData.masteryExp = professionInfo:GetMasteryExperience();
+ professionData.masteryExpTarget = professionInfo:GetMasteryExperienceTarget();
+
+ professionData.recipes = {};
+ for i = 1, professionInfo:GetRecipeCount() do
+ local recipe = professionInfo:GetRecipe(i);
+ local recipeName = recipe:GetName();
+ local recipeIndex = RecipeHash[recipeName];
+ local recipeData = nil;
+ if recipeIndex then
+ recipeData = RecipeList[recipeIndex];
+ else
+ recipeData = {};
+ table. Insert(RecipeList, recipeData);
+ recipeIndex = #RecipeList;
+ RecipeHash[recipeName] = recipeIndex;
+ end
+
+ recipeData.name = recipeName;
+ recipeData.category = recipe:GetCategoryName();
+ recipeData.tier = recipe:GetTier();
+
+ local itemInfo = recipe:GetResultItemInfo();
+ if includeItemInfo then
+ recipeData.resultItemInfo = itemInfo;
+ else
+ recipeData.resultItemInfo = nil;
+ end
+ recipeData.resultIcon = itemInfo:GetIconImageID();
+ recipeData.resultIconBack = itemInfo:GetBackgroundImageID();
+
+ recipeData.ingredients = {};
+
+ for j = 1, recipe:GetIngredientCount() do
+ local ingredient = recipe:GetIngredient(j);
+ local ingredientInfo = ingredient:GetItemInfo();
+ local ingredientName = ingredientInfo:GetName();
+
+ local ingredientIndex = IngredientHash[ingredientName];
+ local ingredientData = nil;
+ if ingredientIndex then
+ ingredientData = IngredientList[ingredientIndex];
else
- recipeData = {};
- table. Insert(RecipeList, recipeData);
- recipeIndex = #RecipeList;
- RecipeHash[recipeName] = recipeIndex;
+ ingredientData = {};
+ table. Insert(IngredientList, ingredientData);
+ ingredientIndex = #IngredientList;
+ IngredientHash[ingredientName] = ingredientIndex;
end
- recipeData.name = recipeName;
- recipeData.category = recipe:GetCategoryName();
- recipeData.tier = recipe:GetTier();
-
- local itemInfo = recipe:GetResultItemInfo();
+ ingredientData.name = ingredientName;
if includeItemInfo then
- recipeData.resultItemInfo = itemInfo;
+ ingredientData.itemInfo = ingredientInfo;
else
- recipeData.resultItemInfo = nil;
+ ingredientData.itemInfo = nil;
end
- recipeData.resultIcon = itemInfo:GetIconImageID();
- recipeData.resultIconBack = itemInfo:GetBackgroundImageID();
-
- recipeData.ingredients = {};
-
- for j = 1, recipe:GetIngredientCount() do
- local ingredient = recipe:GetIngredient(j);
- local ingredientInfo = ingredient:GetItemInfo();
- local ingredientName = ingredientInfo:GetName();
-
- local ingredientIndex = IngredientHash[ingredientName];
- local ingredientData = nil;
- if ingredientIndex then
- ingredientData = IngredientList[ingredientIndex];
- else
- ingredientData = {};
- table. Insert(IngredientList, ingredientData);
- ingredientIndex = #IngredientList;
- IngredientHash[ingredientName] = ingredientIndex;
- end
-
- ingredientData.name = ingredientName;
- if includeItemInfo then
- ingredientData.itemInfo = ingredientInfo;
- else
- ingredientData.itemInfo = nil;
- end
- ingredientData.icon = ingredientInfo:GetIconImageID();
- ingredientData.iconBack = ingredientInfo:GetBackgroundImageID();
+ ingredientData.icon = ingredientInfo:GetIconImageID();
+ ingredientData.iconBack = ingredientInfo:GetBackgroundImageID();
- local quantity = ingredient:GetRequiredQuantity();
+ local quantity = ingredient:GetRequiredQuantity();
- recipeData.ingredients[ingredientIndex] = quantity;
- end
-
- professionData.recipes[recipeIndex] = true;
+ recipeData.ingredients[ingredientIndex] = quantity;
end
- character. Professions[v] = professionData;
+ professionData.recipes[recipeIndex] = true;
end
+
+ character. Professions[v] = professionData;
end
end
@@ -137,15 +133,6 @@
function GetProfessionName(profession)
return Strings.ProfessionNames[profession];
-end
-
-function GetVocationName(vocation)
- for k, v in pairs(Turbine.Gameplay.Vocation) do
- if v == vocation then
- return k;
- end
- end
- return "Invalid vocation";
end
function CreateRecipeTree(recipes)
How or where we add this code? It's as simple to create a new random named lua file with this code?
|
|
|
08-07-2024, 08:49 PM
|
|
The Wary
Forum posts: 0
File comments: 28
Uploads: 0
|
Re: Re: Failure with fourth profession
Quote:
The following patch file updates 2.0.4 to work with update 41 by incorporating the changes suggested by @Nyry, removing vocation checks, and adding the optional fourth profession slot.
|
It's not exactly pretty, but if you also want the four buttons to fit into the same space that the three buttons originally did, you can change two lines of MainWindow.lua:
On line 10, change
Code:
local professionButtonWidth = 100;
to
Code:
local professionButtonWidth = 79;
and on line 107, change
Code:
professionButton:SetPosition(10+(i-1)*(professionButtonWidth+10), professionButtonTop);
to
Code:
professionButton:SetPosition(10+(i-1)*(professionButtonWidth+1), professionButtonTop);
I'm sure if someone wanted to mess further with the code, they could come up with something that looks better.
|
|
|
08-01-2024, 01:25 PM
|
|
The Undefeated
Forum posts: 7
File comments: 72
Uploads: 0
|
Re: Failure with fourth profession
The following patch file updates 2.0.4 to work with update 41 by incorporating the changes suggested by @Nyry, removing vocation checks, and adding the optional fourth profession slot.
Code:
--- Globals.lua Wed Feb 3 07:27:39 2021
+++ Globals.lua Wed Jul 31 15:17:30 2024
@@ -65,6 +65,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Unheilskluft";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Eisenbruch";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minis Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Schneider";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Drechsler";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Bauer";
@@ -129,6 +131,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Folde du Destin";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Crevasse de fer";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailleur";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Menuisier";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Fermier";
@@ -168,6 +172,8 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Doomfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Ironfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailor";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Woodworker";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Farmer";
--- Main.lua Wed Feb 3 07:10:01 2021
+++ Main.lua Wed Jul 31 15:15:17 2024
@@ -31,6 +31,8 @@
Turbine.Gameplay.CraftTier.Doomfold = 11;
Turbine.Gameplay.CraftTier.Ironfold = 12;
Turbine.Gameplay.CraftTier.MinasIthil = 13;
+Turbine.Gameplay.CraftTier.Gundabad = 14;
+Turbine.Gameplay.CraftTier.Umbar = 15;
--- MainWindow.lua Wed Feb 3 07:10:01 2021
+++ MainWindow.lua Fri Aug 2 13:44:29 2024
@@ -100,8 +100,8 @@
end
MainWindow.professionButtons = {};
- MainWindow.professionButtonIndices = { 0, 0, 0 };
- for i = 1, 3 do
+ MainWindow.professionButtonIndices = { 0, 0, 0, 0 };
+ for i = 1, 4 do
local professionButton = Turbine.UI.Lotro.Button();
professionButton:SetParent(MainWindow);
professionButton:SetPosition(10+(i-1)*(professionButtonWidth+10), professionButtonTop);
@@ -436,19 +436,16 @@
function UpdateCharacter()
local character = CharacterList[CurrentCharacter];
- if character. Vocation then
- local buttonIndex = 1;
- for profession, professionData in pairs(character. Professions) do
- MainWindow.professionButtons[buttonIndex]:SetVisible(true);
- MainWindow.professionButtons[buttonIndex]:SetText(GetProfessionName(profession));
- MainWindow.professionButtonIndices[buttonIndex] = profession;
- buttonIndex = buttonIndex + 1;
- end
- else
- for i = 1, 3 do
- MainWindow.professionButtons[i]:SetVisible(false);
- end
- MainWindow.professionButtonIndices = { 0, 0, 0 }
+ for i = 1, 4 do
+ MainWindow.professionButtons[i]:SetVisible(false);
+ end
+ MainWindow.professionButtonIndices = { 0, 0, 0, 0 }
+ local buttonIndex = 1;
+ for profession, professionData in pairs(character. Professions) do
+ MainWindow.professionButtons[buttonIndex]:SetVisible(true);
+ MainWindow.professionButtons[buttonIndex]:SetText(GetProfessionName(profession));
+ MainWindow.professionButtonIndices[buttonIndex] = profession;
+ buttonIndex = buttonIndex + 1;
end
MainWindow.refreshIcon:SetVisible(CurrentCharacter == LocalPlayerCharacter);
@@ -459,7 +456,7 @@
function SetCurrentProfession(profession)
-- Update profession button status
- for i = 1, 3 do
+ for i = 1, 4 do
if i == profession then
MainWindow.professionButtons[i]:SetEnabled(false);
else
--- Recipes.lua Wed Feb 3 07:10:01 2021
+++ Recipes.lua Fri Aug 2 13:44:32 2024
@@ -41,91 +41,87 @@
local character = CharacterList[LocalPlayerCharacter];
local playerAttr = player:GetAttributes();
- character.vocation = playerAttr:GetVocation();
- character. Professions = nil;
- if character. Vocation then
- character. Professions = {};
+ character. Professions = {};
- for k,v in pairs(Turbine.Gameplay.Profession) do
- local professionInfo = playerAttr:GetProfessionInfo(v);
+ for k,v in pairs(Turbine.Gameplay.Profession) do
+ local professionInfo = playerAttr:GetProfessionInfo(v);
- if professionInfo then
- local professionData = {};
-
- professionData.proficiencyLevel = professionInfo:GetProficiencyLevel();
- professionData.masteryLevel = professionInfo:GetMasteryLevel();
-
- professionData.proficiencyExp = professionInfo:GetProficiencyExperience();
- professionData.proficiencyExpTarget = professionInfo:GetProficiencyExperienceTarget();
- professionData.masteryExp = professionInfo:GetMasteryExperience();
- professionData.masteryExpTarget = professionInfo:GetMasteryExperienceTarget();
-
- professionData.recipes = {};
- for i = 1, professionInfo:GetRecipeCount() do
- local recipe = professionInfo:GetRecipe(i);
- local recipeName = recipe:GetName();
- local recipeIndex = RecipeHash[recipeName];
- local recipeData = nil;
- if recipeIndex then
- recipeData = RecipeList[recipeIndex];
+ if professionInfo then
+ local professionData = {};
+
+ professionData.proficiencyLevel = professionInfo:GetProficiencyLevel();
+ professionData.masteryLevel = professionInfo:GetMasteryLevel();
+
+ professionData.proficiencyExp = professionInfo:GetProficiencyExperience();
+ professionData.proficiencyExpTarget = professionInfo:GetProficiencyExperienceTarget();
+ professionData.masteryExp = professionInfo:GetMasteryExperience();
+ professionData.masteryExpTarget = professionInfo:GetMasteryExperienceTarget();
+
+ professionData.recipes = {};
+ for i = 1, professionInfo:GetRecipeCount() do
+ local recipe = professionInfo:GetRecipe(i);
+ local recipeName = recipe:GetName();
+ local recipeIndex = RecipeHash[recipeName];
+ local recipeData = nil;
+ if recipeIndex then
+ recipeData = RecipeList[recipeIndex];
+ else
+ recipeData = {};
+ table. Insert(RecipeList, recipeData);
+ recipeIndex = #RecipeList;
+ RecipeHash[recipeName] = recipeIndex;
+ end
+
+ recipeData.name = recipeName;
+ recipeData.category = recipe:GetCategoryName();
+ recipeData.tier = recipe:GetTier();
+
+ local itemInfo = recipe:GetResultItemInfo();
+ if includeItemInfo then
+ recipeData.resultItemInfo = itemInfo;
+ else
+ recipeData.resultItemInfo = nil;
+ end
+ recipeData.resultIcon = itemInfo:GetIconImageID();
+ recipeData.resultIconBack = itemInfo:GetBackgroundImageID();
+
+ recipeData.ingredients = {};
+
+ for j = 1, recipe:GetIngredientCount() do
+ local ingredient = recipe:GetIngredient(j);
+ local ingredientInfo = ingredient:GetItemInfo();
+ local ingredientName = ingredientInfo:GetName();
+
+ local ingredientIndex = IngredientHash[ingredientName];
+ local ingredientData = nil;
+ if ingredientIndex then
+ ingredientData = IngredientList[ingredientIndex];
else
- recipeData = {};
- table. Insert(RecipeList, recipeData);
- recipeIndex = #RecipeList;
- RecipeHash[recipeName] = recipeIndex;
+ ingredientData = {};
+ table. Insert(IngredientList, ingredientData);
+ ingredientIndex = #IngredientList;
+ IngredientHash[ingredientName] = ingredientIndex;
end
- recipeData.name = recipeName;
- recipeData.category = recipe:GetCategoryName();
- recipeData.tier = recipe:GetTier();
-
- local itemInfo = recipe:GetResultItemInfo();
+ ingredientData.name = ingredientName;
if includeItemInfo then
- recipeData.resultItemInfo = itemInfo;
+ ingredientData.itemInfo = ingredientInfo;
else
- recipeData.resultItemInfo = nil;
+ ingredientData.itemInfo = nil;
end
- recipeData.resultIcon = itemInfo:GetIconImageID();
- recipeData.resultIconBack = itemInfo:GetBackgroundImageID();
-
- recipeData.ingredients = {};
-
- for j = 1, recipe:GetIngredientCount() do
- local ingredient = recipe:GetIngredient(j);
- local ingredientInfo = ingredient:GetItemInfo();
- local ingredientName = ingredientInfo:GetName();
-
- local ingredientIndex = IngredientHash[ingredientName];
- local ingredientData = nil;
- if ingredientIndex then
- ingredientData = IngredientList[ingredientIndex];
- else
- ingredientData = {};
- table. Insert(IngredientList, ingredientData);
- ingredientIndex = #IngredientList;
- IngredientHash[ingredientName] = ingredientIndex;
- end
-
- ingredientData.name = ingredientName;
- if includeItemInfo then
- ingredientData.itemInfo = ingredientInfo;
- else
- ingredientData.itemInfo = nil;
- end
- ingredientData.icon = ingredientInfo:GetIconImageID();
- ingredientData.iconBack = ingredientInfo:GetBackgroundImageID();
+ ingredientData.icon = ingredientInfo:GetIconImageID();
+ ingredientData.iconBack = ingredientInfo:GetBackgroundImageID();
- local quantity = ingredient:GetRequiredQuantity();
+ local quantity = ingredient:GetRequiredQuantity();
- recipeData.ingredients[ingredientIndex] = quantity;
- end
-
- professionData.recipes[recipeIndex] = true;
+ recipeData.ingredients[ingredientIndex] = quantity;
end
- character. Professions[v] = professionData;
+ professionData.recipes[recipeIndex] = true;
end
+
+ character. Professions[v] = professionData;
end
end
@@ -137,15 +133,6 @@
function GetProfessionName(profession)
return Strings.ProfessionNames[profession];
-end
-
-function GetVocationName(vocation)
- for k, v in pairs(Turbine.Gameplay.Vocation) do
- if v == vocation then
- return k;
- end
- end
- return "Invalid vocation";
end
function CreateRecipeTree(recipes)
Last edited by bsmorgan : 08-02-2024 at 03:08 PM.
|
|
|
08-01-2024, 12:55 PM
|
|
The Undefeated
Forum posts: 7
File comments: 72
Uploads: 0
|
Failure with fourth profession
Update 41 adds the ability to purchase a fourth profession. After doing this on one character, I get the following error:
[08/01 11:26:41 AM] ...Online\Plugins\Bowcosid\RecipeTracker\MainWindo w.lua:442: attempt to index field '?' (a nil value)
Hopefully, changing some "3"s to "4"s will fix this but I'm not sure which ones to change
|
|
|
07-03-2024, 04:07 PM
|
|
The Wary
Forum posts: 0
File comments: 8
Uploads: 0
|
Quote:
As of today, Recipe Tracker doesn't load anymore and produces the following line upon login:
...gs Online\Plugins\Bowcosid\RecipeTracker\Recipes.lua: 15: attempt to index field '?' (a nil value)
Seeing how the original author hasn't logged to this website in 2,5 years, I worry the addon is abandoned. Is there anyone who knows lua fu and who'd be willing to pick up this project?
|
I don't know squat about LUA, but I took a look at the files to see if I could discern the logic, and it's actually easy to update it by yourself :
- go to the folder where you the plugins files are located, it should be in ...\The Lord of the Rings Online\Plugins\Bowcosid\RecipeTracker
- locate the files called Globals.lua and Main.lua and open them in a text editor (I use Notepad++, it's free and the interface makes everything look better than just using the basic notepadd with your OS)
In the file 'Main.lua', you should find a block of text starting by 'Turbine.Gameplay.CraftTier.Apprentice = 1;' with every crafting tier listed. Just add the following line right under the last line that should be talking about Gundabad :
Turbine.Gameplay.CraftTier.Umbar = 15;
And don't forget to save your changes.
Then, on the file 'Globals.lua', find a line that says 'Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";' and add the following line right under it :
Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar";
Since the plugin contains the three languages that the game can run, French, German and English, there are three lines saying 'Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";', so you'll need to find all three, and add Strings.TierNames[Turbine.Gameplay.CraftTier.Umbar] = "Umbar"; under each of them.
Then don't forget to save your changes.
If you did everything correctly, then the plugin should fetch the Umbari recipes and display them the next time you start LOTRO.
|
|
|
01-27-2024, 12:42 PM
|
|
The Wary
Forum posts: 0
File comments: 23
Uploads: 0
|
As of today, Recipe Tracker doesn't load anymore and produces the following line upon login:
...gs Online\Plugins\Bowcosid\RecipeTracker\Recipes.lua: 15: attempt to index field '?' (a nil value)
Seeing how the original author hasn't logged to this website in 2,5 years, I worry the addon is abandoned. Is there anyone who knows lua fu and who'd be willing to pick up this project?
|
|
|
01-05-2024, 10:39 PM
|
|
The Wary
Forum posts: 0
File comments: 2
Uploads: 0
|
Delete Character's Information
I too was looking for a way to delete some old names from before I transferred servers. I tried to use the /recipetracker options command, and it boots me out of the game completely.
|
|
|
10-15-2022, 02:04 PM
|
|
The Wary
Forum posts: 0
File comments: 1
Uploads: 0
|
Delete Character's Information
Is there a way to delete character's information from the plugin? I've used name changes and have deleted alts but the old names still appear in the plugin. Is there a way for you to add this functionality or something I can change in the plugins' files?
|
|
|
06-22-2022, 03:10 PM
|
|
The Undefeated
Forum posts: 7
File comments: 72
Uploads: 0
|
Update for Gundabad Tier
I believe there are a couple of one line additions in Main.lua and Globals.lua needed to support the Gundabad Tier.
Code:
--- C:/Users/Brad/Downloads/Bowcosid/RecipeTracker/Main.lua Wed Feb 3 07:10:01 2021
+++ C:/Users/Brad/Documents/The Lord of the Rings Online/Plugins/Bowcosid/RecipeTracker/Main.lua Wed Jun 22 14:13:07 2022
@@ -31,6 +31,7 @@
Turbine.Gameplay.CraftTier.Doomfold = 11;
Turbine.Gameplay.CraftTier.Ironfold = 12;
Turbine.Gameplay.CraftTier.MinasIthil = 13;
+Turbine.Gameplay.CraftTier.Gundabad = 14;
--- C:/Users/Brad/Downloads/Bowcosid/RecipeTracker/Globals.lua Wed Feb 3 07:27:39 2021
+++ C:/Users/Brad/Documents/The Lord of the Rings Online/Plugins/Bowcosid/RecipeTracker/Globals.lua Wed Jun 22 14:12:32 2022
@@ -65,6 +65,7 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Unheilskluft";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Eisenbruch";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minis Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Schneider";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Drechsler";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Bauer";
@@ -129,6 +130,7 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Folde du Destin";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Crevasse de fer";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailleur";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Menuisier";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Fermier";
@@ -168,6 +170,7 @@
Strings.TierNames[Turbine.Gameplay.CraftTier.Doomfold] = "Doomfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.Ironfold] = "Ironfold";
Strings.TierNames[Turbine.Gameplay.CraftTier.MinasIthil] = "Minas Ithil";
+ Strings.TierNames[Turbine.Gameplay.CraftTier.Gundabad] = "Gundabad";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Tailor] = "Tailor";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Woodworker] = "Woodworker";
Strings.ProfessionNames[Turbine.Gameplay.Profession.Farmer] = "Farmer";
Last edited by bsmorgan : 06-22-2022 at 03:16 PM.
|
|
|
06-21-2022, 11:31 PM
|
|
The Wary
Forum posts: 1
File comments: 13
Uploads: 0
|
Aah this error is from the client...
Ill get it too and havent know why the Plugin isnt working for me.
Woult really love if it can fixed and used it with the 64bit
|
|
|
04-21-2022, 11:31 AM
|
|
The Wary
Forum posts: 0
File comments: 1
Uploads: 0
|
64 bit client
Dear Bowcosid,
First thank you for this great tool. Since the 32 bit client is going to expire now, I noticed that I still used this client. Switching to the 64 bit client resulted in the following error message for Recipe Tracker:
...\Plugins\Bowcosid\RecipeTracker\Slider.lua:57: attempt to compare string with number
To be sure I returned to 32 bit, and Recipe Tracker worked; back to 64 bit, the error re-appeared. Did I do anything wrong or is this something you must fix? Is there any further information I should give you?
Thank you in advance for your help.
|
|
|
All times are GMT -5. The time now is 10:19 PM.
|
|