Attempt to STORE non Actor reference to the hash of actors

This place is for Closed bug reports only. NOT for asking help!

Moderators: Moderators, Developers

Message
Author
Dark Airnel
Been there done that!
Been there done that!
Posts: 133
Joined: 09 Oct 2009, 01:43
Noob?: No

Attempt to STORE non Actor reference to the hash of actors

#1 Post by Dark Airnel »

I have been experiencing this error lately and it happens when a specific block containing the following options are triggered:

Code: Select all

        equip_topHead
	equip_midHead
	equip_lowHead
	equip_leftHand
	equip_rightHand
	equip_leftAccessory
	equip_rightAccessory
	equip_robe
	equip_armor
	equip_shoes
	equip_arrow
I am using SVN r8600

Code: Select all

OpenKore version what-will-become-2.1
@ai_seq = skill_use
Network state = 5
Network handler = Network::XKore
SVN revision: unknown
Loaded plugins:
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/alertsound.pl (alertsound; description: plays sounds on certain events)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/autoLockMapChanger.pl (autoMapChange; description: CODE(0x3c4ae3c))
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/autoTalk.pl (autotalk; description: talks to NPC after death or via command)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/breakTime.pl (breakTime; description: config.autoBreakTime)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/checkSelfCondition.pl (checkSelfCondition; description: enable custom conditions)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/macro.pl (macro; description: allows usage of macros)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/monsterDB.pl (monsterDB; description: extends Monster infos)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/reactOnActor.pl (reactOnActor; description: automatically react on certain actors)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/tele-search-v2.pl (Tele-Search v2; description: Alternative tele-search v2.)
  D:\Openkore Workshop\SVN 8600\BotOrganizer\Profiles\Main GvG Sura\Plugin/xconf.pl (xConf; description: commands for change items_control, mon_control, pickupitems, priority)

Error message:
Attempt to STORE non Actor reference to the hash of actors
Key:
61726d6f72
Value:
$VAR1 = {};

Stack trace:
Attempt to STORE non Actor reference to the hash of actors
Key:
61726d6f72
Value:
$VAR1 = {};
 at src/Utils/ActorHashTie.pm line 18
	Tie::ActorHash::STORE('Tie::ActorHash=ARRAY(0x65bb61c)', 'armor', 'HASH(0x65d74dc)') called at src/Actor/Item.pm line 234
	Actor::Item::scanConfigAndCheck('useSelf_skill_3_equip') called at src/AI/CoreLogic.pm line 643
	AI::CoreLogic::processSkillUse() called at src/AI/CoreLogic.pm line 82
	AI::CoreLogic::iterate() called at src/functions.pl line 758
	main::mainLoop_initialized() called at src/functions.pl line 70
	main::mainLoop() called at src/Interface.pm line 75
	Interface::mainLoop('Interface::Console::Win32=HASH(0x9b2a74)') called at openkore.pl line 97
	main::__start() called at start.pl line 136

Kaspy
Halfway to Eternity
Halfway to Eternity
Posts: 398
Joined: 08 Jun 2012, 15:42
Noob?: No
Location: Brazil

Re: Attempt to STORE non Actor reference to the hash of actors

#2 Post by Kaspy »

These settings were removed
Image

Dark Airnel
Been there done that!
Been there done that!
Posts: 133
Joined: 09 Oct 2009, 01:43
Noob?: No

Re: Attempt to STORE non Actor reference to the hash of actors

#3 Post by Dark Airnel »

May I know why? And are there new conditions introduced to replace it's very valuable function? I believe those conditions are very useful specially when you want the bot to wear something to do something.

For instance:
If my bot is attacking something this is the block it will use:

Code: Select all

attackSkillSlot Severe Rainstorm {
	lvl 5
	dist 10
	sp > 120
	whenStatusActive
	whenStatusInactive Severe RainstormDelay, Action Delay
	inLockOnly 0
	notInTown 1
	timeout 3
	disabled 0
	monsters
	notMonsters Iceicle
	equip_leftHand +7 Elven Bow [Turtle General] [1]
	equip_rightHand +7 Elven Bow [Turtle General] [1]
}
My bot buff "MI_RUSH_WINDMILL" ran out and it needs an instrument to cast it:

Code: Select all

useself_Skill MI_RUSH_WINDMILL {
	lvl 5
	dist 10
	sp > 120
	whenStatusActive
	whenStatusInactive Windmill RushDelay, Action Delay
	inLockOnly 0
	notInTown 1
	timeout 3
	disabled 0
	equip_leftHand Violin [4]
	equip_rightHand +20 Orlean's Server [Thara Frog] [1] #just an exageration
}
I think this configuration saves space and time. Using "whenEquipped" would require additional blocks. First you will create a condition as to when Violin [4] will be equipped etc.
Using whenEquipped:

Code: Select all

attackSkillSlot Severe Rainstorm {
	lvl 5
	dist 10
	sp > 120
	whenStatusActive
	whenStatusInactive Severe RainstormDelay, Action Delay
	inLockOnly 0
	notInTown 1
	timeout 3
	disabled 0
	monsters
	notMonsters Iceicle
	equip_leftHand +7 Elven Bow [Turtle General] [1]
	equip_rightHand +7 Elven Bow [Turtle General] [1]
}

Code: Select all

equipAuto Notwindmill {
	rightHand Violin [4]
	whenStatusActive
	whenStatusInactive Windmill Rush
	aggressives
	stopWhenHit 0
	inLockOnly 0
	notWhileSitting 0
	notInTown 0
	timeout 0
	disabled 0
	inInventory
	manualAI 0
}

Code: Select all

useself_Skill MI_RUSH_WINDMILL {
	lvl 5
	sp > 120
	whenEquipped Violin [4]
	whenStatusInactive Windmill RushDelay, Action Delay
	inLockOnly 0
	notInTown 1
	timeout 3
	disabled 0
}

Kaspy
Halfway to Eternity
Halfway to Eternity
Posts: 398
Joined: 08 Jun 2012, 15:42
Noob?: No
Location: Brazil

Re: Attempt to STORE non Actor reference to the hash of actors

#4 Post by Kaspy »

You can use the conditions whenEquipped and whenNotEquipped

See: http://forums.openkore.com/viewtopic.php?f=36&t=31103
Image

Dark Airnel
Been there done that!
Been there done that!
Posts: 133
Joined: 09 Oct 2009, 01:43
Noob?: No

Re: Attempt to STORE non Actor reference to the hash of actors

#5 Post by Dark Airnel »

Yes I know I can use whenEquipped and whenNotEquipped and it's not that I don't want to write additional blocks to execute what I want accomplished. I just find those conditions to be so useful and practical to be removed/unimplemented. And since you have to manage more blocks, then the configuration is also prone to errors.

EternalHarvest
Developers
Developers
Posts: 1798
Joined: 05 Dec 2008, 05:42
Noob?: Yes

Re: Attempt to STORE non Actor reference to the hash of actors

#6 Post by EternalHarvest »

KeplerBR wrote:These settings were removed
They are still right there in AI::CoreLogic. Can you show the commit they were "removed" in?

philounet
Noob
Noob
Posts: 3
Joined: 03 Jun 2013, 05:22
Noob?: No

Re: Attempt to STORE non Actor reference to the hash of actors

#7 Post by philounet »

I'm using :

Code: Select all

attackEquip_leftHand Shield
attackEquip_rightHand Flamberge
And, same thing, openkore is crashing !

I'm using this when doing a physical attack because got this for skill :

Code: Select all

attackSkillSlot Pierce {
	lvl 10
	dist 1.5
	sp > 10%
	inLockOnly 1
	notInTown 1
	equip_rightHand Lance
}
After the skill openkore is using "attackEquip_..." to re-requip default equip (when not using a skill) to re use a shield.

How to do without "attackEquip_..." & "equip_..." ? :?

There is the error detail :

Code: Select all

OpenKore version what-will-become-2.1
@ai_seq = attack route
Network state = 5
Network handler = Network::DirectConnection
SVN revision: unknown
No loaded plugins.

Error message:
Attempt to STORE non Actor reference to the hash of actors
Key:
726967687448616e64
Value:
$VAR1 = {};

Stack trace:
Attempt to STORE non Actor reference to the hash of actors
Key:
726967687448616e64
Value:
$VAR1 = {};
 at src/Utils/ActorHashTie.pm line 18
	Tie::ActorHash::STORE('Tie::ActorHash=ARRAY(0x3af9d6c)', 'rightHand', 'HASH(0x3c68094)') called at src/Actor/Item.pm line 234
	Actor::Item::scanConfigAndCheck('attackEquip') called at src/AI/Attack.pm line 563
	AI::Attack::main() called at src/AI/Attack.pm line 97
	AI::Attack::process() called at src/AI/CoreLogic.pm line 79
	AI::CoreLogic::iterate() called at src/functions.pl line 764
	main::mainLoop_initialized() called at src/functions.pl line 70
	main::mainLoop() called at src/Interface.pm line 75
	Interface::mainLoop('Interface::Console::Win32=HASH(0x291b42c)') called at openkore.pl line 97
	main::__start() called at start.pl line 136

philounet
Noob
Noob
Posts: 3
Joined: 03 Jun 2013, 05:22
Noob?: No

Re: Attempt to STORE non Actor reference to the hash of actors

#8 Post by philounet »

Hum ...

All seems to be fine if I comment theses lines in src/Actor/You.pm (78-79) :

Code: Select all

	require Utils::ActorHashTie;
	tie %{$self->{equipment}}, 'Tie::ActorHash';
These lines were added in rev 8580 (05/16/13).

Dark Airnel
Been there done that!
Been there done that!
Posts: 133
Joined: 09 Oct 2009, 01:43
Noob?: No

Re: Attempt to STORE non Actor reference to the hash of actors

#9 Post by Dark Airnel »

philounet wrote:Hum ...

All seems to be fine if I comment theses lines in src/Actor/You.pm (78-79) :

Code: Select all

	require Utils::ActorHashTie;
	tie %{$self->{equipment}}, 'Tie::ActorHash';
These lines were added in rev 8580 (05/16/13).
Yeah, this is exactly what I was thinking, was causing the error. The vivification thing.

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: Attempt to STORE non Actor reference to the hash of actors

#10 Post by kLabMouse »

philounet wrote:Hum ...

All seems to be fine if I comment theses lines in src/Actor/You.pm (78-79) :

Code: Select all

	require Utils::ActorHashTie;
	tie %{$self->{equipment}}, 'Tie::ActorHash';
These lines were added in rev 8580 (05/16/13).
That's no good to do!.
Thus lines where added, to prevent any other bug's that might happen.
The Real thing is in where it's reported to be bug present.

Post Reply