Openkore: After last ubdate, @eval($::questList->{62816}->{missions}->{1063}->{count}) failed

Created on 2 Jun 2017  路  12Comments  路  Source: OpenKore/openkore

[macro] QuestRun error: error in 25: @eval($::questList->{62816}->{missions}->{1063}->{count}) failed
Help me, pls.

Most helpful comment

TL;DR Using the mob id to look up the current quest kill count doesn't work anymore. See the end of this comment for replacement code.

The problem is the episode 16.1 achievement system. The new quest packets no longer provide the mob id for every quest-related packet. Instead, they provide a quest condition id, which is _only_ related to the mob id for the quest_add and quest_all_list packets. Meaning, the mob id is not provided for quest_update packets. To support quest_update packets, I changed the key to the condition ID, which breaks the code you're trying to run.

Note that it's not impossible to keep it the way it was (using the mobID) but I'm assuming that there's a reason for the abstraction, and that not all quests with missions will be killcount missions in the future. If/when that happens, we won't be able to use mobID anymore.

The mob ID is still part of the quest data structure, but now you will have to search for it. Here's some equivalent code which should still work:

((grep { $::_->{mobID} == 1063 } values %{$::questList->{62816}->{missions} || {}})[0] || {})->{count}

All 12 comments

if (@eval(($::questList->{62816}->{active})?1:0) == 0) goto StartOneQuest
$Lunatic = @eval($::questList->{62816}->{missions}->{1063}->{count})
if ($Lunatic == 150) goto FinishOneQuest

server?

iRO
I cant take "count" . Something has changed in src/Network/Receive.pm

Yea. i'm noob about scripting but when i delete "eval" line it can detect the macro.
But the macro is not complete and showing error in console such " munch munch ignore line".

hmn, I have taken a look at the updates made by @allanon and I couldn't find anything that would make the quest system not work properly. You could try to use the plugin killcountfix (https://github.com/OpenKore/openkore/tree/master/plugins/killcountFix), it may not be a solution but it can probably fix the problem for now.

Hello, yes I already checked they should be no prob, but I think the MobID is the problem.
Originally MobID is not that quite long according to RMS and in monster.txt.
When i change the mobID as below the macro work properly.
image

Thx again @Henrybk for ur time.

TL;DR Using the mob id to look up the current quest kill count doesn't work anymore. See the end of this comment for replacement code.

The problem is the episode 16.1 achievement system. The new quest packets no longer provide the mob id for every quest-related packet. Instead, they provide a quest condition id, which is _only_ related to the mob id for the quest_add and quest_all_list packets. Meaning, the mob id is not provided for quest_update packets. To support quest_update packets, I changed the key to the condition ID, which breaks the code you're trying to run.

Note that it's not impossible to keep it the way it was (using the mobID) but I'm assuming that there's a reason for the abstraction, and that not all quests with missions will be killcount missions in the future. If/when that happens, we won't be able to use mobID anymore.

The mob ID is still part of the quest data structure, but now you will have to search for it. Here's some equivalent code which should still work:

((grep { $::_->{mobID} == 1063 } values %{$::questList->{62816}->{missions} || {}})[0] || {})->{count}

Note that it's not impossible to keep it the way it was (using the mobID) but I'm assuming that there's a reason for the abstraction, and that not all quests with missions will be killcount missions in the future. If/when that happens, we won't be able to use mobID anymore.

For info after the achievement update some quests use the mob race and level as target.

thx @allanon for clarification.

Trying to use @allanon suggestion but the output I am getting isn't just a raw count. I am attempting to use it in the novice training grounds on the first quest.

When I do this

    $mon_count =  @eval(((grep { $::_->{mobID} == 1002 } values %{$::questList->{7122}->{missions} || {}})[0] || {})->{count})

It returns
[macro] check_novice_quest_1.call error: error in 0: unrecognized assignment

When I attempt to print out the eval with

    log  @eval(((grep { $::_->{mobID} == 1002 } values %{$::questList->{7122}->{missions} || {}})[0] || {})->{count})

The output is
11|1|111|1|111

Any suggestions for making this functional? Working on a macro to get through the entire training grounds (unless of course this is already something someone has done in iRO (Re:Start) but I haven't been able to find any after a lot of digging)

Hey guys, just curious if there's any progress on this one? Without the evaluation method, there's no way to check quest progress. I'm not seeing any console output for achievement update, so it leads me to believe there's a packet that isn't being parsed/analyzed? I'm willing to test/modify code if someone can point me in the direction on what would need to be modified to fix this for iRO.

I'm seeing no indication that the killcountfix is even working -- I pasted the .txt file into the tables folder and I still don't see anything in the console after monsters die.

See #914

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lututui picture lututui  路  5Comments

kumulo123 picture kumulo123  路  5Comments

ncplay91 picture ncplay91  路  4Comments

fotuoh picture fotuoh  路  3Comments

Queroz picture Queroz  路  4Comments