jsb / Gatherer

Vanilla World of Warcraft (v.1.12.1) AddOn
31 stars 17 forks source link

broadcast nodes are not recorded on clients with a different language #1

Open jsb opened 8 years ago

jsb commented 8 years ago

as reported by http://forum.nostalrius.org/viewtopic.php?f=63&t=18362#p176594

theoden-dd commented 7 years ago

Hello, jsb.

I've met the issue in my fork with periodic broadcasting: https://github.com/theoden-dd/gatherer_p2p/commits/release/1.0.0

I want to solve this before pull-requesting, but personally I can't find a solution without breaking a message format. The root of the problem is that there are 2 strings in message (and database key/values):

  1. gather
  2. gatherIcon

Please share your considerations regarding exclusion of these strings from message and database or any other solutions. This may include links to some places where you've described that already (blog posts, forum posts, comments, etc.)

Thanks in advance.

PS: And a separate thanks for this addon patch, that serves as a solid foundation for vanilla gatherer development.

ghost commented 7 years ago

I'm not sure what you mean by broadcast nodes, but in my spanish client whenever I gather an herb, the location with the icon of the herb does not go on the map in the location I picked the herb.

theoden-dd commented 7 years ago

That's "just as planned" (c) Unfortunately, no spanish support atm: https://github.com/jsb/Gatherer/blob/master/localization.lua Only en/fr/de/ru/cn

On Sat, Jul 29, 2017 at 1:51 AM, woopydalan notifications@github.com wrote:

I'm not sure what you mean by broadcast nodes, but in my spanish client whenever I gather an herb, the location with the icon of the herb does not go on the map in the location I picked the herb.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jsb/Gatherer/issues/1#issuecomment-318786466, or mute the thread https://github.com/notifications/unsubscribe-auth/ACER8WvJx5ouLyIEcEedV5tBk6IBCUt8ks5sSnQegaJpZM4GYADF .

-- Sincerely, Denis Untevskiy

ghost commented 7 years ago

I am working on the spanish localization right now, I translated the names of the herbs and it still won't show the locations on the map. Do you know which files need to be translated for it to work?

ghost commented 7 years ago

I have been doing some work on it, and it seems I can only show on the map herbs that I don't have enough skill to collect. But if its something I can already gather, then it won't show on the map.

ghost commented 7 years ago

I've only shown bruiseweed so far, when I tried earth root on a new character who didn't have enough skill, I got this:

[2017/08/07 21:24:51-379]: Gatherer\GatherBroadcast.lua:30: assertion failed!

: in function `assert' Gatherer\GatherBroadcast.lua:30: in function `Gatherer_BroadcastGather' Gatherer\Gatherer.lua:795: in function Gatherer\Gatherer.lua:843: in function `Gatherer_TimeCheck' :"Gatherer:OnUpdate":2: in main chunk ---
theoden-dd commented 7 years ago

Just look at the assertion it names: assert(type(iconIndex) == 'number'). This guarantees that when broadcasting we send an index of an icon, not its name.

Debug your code to determine, why the icon name wasn't converted to index.

I translated the names of the herbs

Also I guess that with the current code you can't translate partially. Try to translate all the words, then test.

Another approach to try here is to only collect the nodes you translated (e.g. herbs) and start from clean database. If in doubt, delete {{ wow_folder }}/WTF/Account/{{ acc_name }}/SavedVariables/Gatherer.lua to reset your Gatherer settings and database. This file is common for all chars/relams.

ghost commented 7 years ago

@theoden-dd I deleted the gatherer database. All herbs, minerals, and treasures have been translated. This is the code you are referring to. I don't know why it only worked for bruiseweed but not other herbs. Also I saw in my I am not a programmer so I am unsure how to fix it. Maybe I can send you my localization file??

assert(type(iconIndex) == 'number')
local iconName = Gatherer_GetDB_IconIndex(nodeInfo.icon, gatherType);
    if debug_first_icon and gatherName == 'school' then
    Gatherer_ChatNotify(
'Icon on global map: '..Gatherer_table_to_string({
gatherType=gatherType, specificType=specificType,
gatherTypeName= gatherTypeName,
iconIndex=iconIndex, iconName=iconName,})..'\nIcons: '..Gatherer_table_to_string(
Gather_IconSet["iconic"][gatherTypeName]),
Gatherer_ENotificationType.debug);
debug_first_icon = false;
end
theoden-dd commented 7 years ago

@woopydalan I'm not sure, which version of code you're using.

The stack trace you provided is very useful. However, look at the lines 780 and 843 in the Gatherer.lua after your localization commit.

As a programmer I guarantee, that keyword end and simple assignment cant't produce the error described in the stack trace.

So, the very first thing to start from is to check which version of code are you running? Please give a link for a specific commit or branch. We need to look at the same code at least.

ghost commented 7 years ago

@theoden-dd

I forked from your version and uploaded a file called Gatherer which is what I am using. Mine was based on yours. The one Jsb has gave me those errors in the spanish client. Yours does not give any errors, but it does not show the herbs/minerals/etc that are collected.

https://github.com/woopydalan/gatherer_p2p/tree/master/Gatherer

ghost commented 7 years ago

@theoden-dd

Any idea how to fix it?