Page 9 of 12

Re: iRO 21.12.2012 server merge

Posted: 01 Jan 2013, 06:52
by rhinoos
Hi guys !!! My autostorage didn't work since the last server merge.. Anybody could fix it for me??

The bot successfully go to the storage when reach certain weight limit, but it does not put any item into the storage...
It just open and close the storage simultaneously, then leave to the lock map...

Here is my setting.. Thanks a lot for your helps and happy new year all !!!

storageAuto 1
storageAuto_npc comodo 195 150
storageAuto_distance 5
storageAuto_npc_type 3
storageAuto_npc_steps c r1 c r0 n
storageAuto_password
storageAuto_keepOpen 0
storageAuto_useChatCommand
relogAfterStorage 0
minStorageZeny 50

Re: iRO 21.12.2012 server merge

Posted: 01 Jan 2013, 07:30
by styuwono
rhinoos wrote:Hi guys !!! My autostorage didn't work since the last server merge.. Anybody could fix it for me??

The bot successfully go to the storage when reach certain weight limit, but it does not put any item into the storage...
It just open and close the storage simultaneously, then leave to the lock map...

Here is my setting.. Thanks a lot for your helps and happy new year all !!!

storageAuto 1
storageAuto_npc comodo 195 150
storageAuto_distance 5
storageAuto_npc_type 3
storageAuto_npc_steps c r1 c r0 n
storageAuto_password
storageAuto_keepOpen 0
storageAuto_useChatCommand
relogAfterStorage 0
minStorageZeny 50
Revision:
storageAuto_npc_steps c r1 r0 n

Re: iRO 21.12.2012 server merge

Posted: 02 Jan 2013, 17:05
by Prof Layton
xkoreuser wrote:I have checked my vend position, and tried to vend even outside of town and no luck. and I have downloaded the fresh new version and even used the Tortise version as well. and I got my friend to sent me his working version(works on his pc) and still it doesnt work on mine. OUt of luck, any idea wheres the issue?
I also have this problem. I noticed that these issue arises because of the items being vended. For example, I had various items for sale, one of them is "mace of judgement". When I use the cart command, this item appears to have 0 quantity:
Mace Of Judgement x 0

I tried vending with other items, and they work. Hopefully this problem gets fixed, or we can just omit the items giving problem for the time being.

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 00:09
by Spherical
TO ANYONE WHO USES THIS BEFORE THE REAL FIX COMES OUT, PLEASE RESPECT ME AND DO NOT POST THE EDITED FILES FOR OTHERS TO DOWNLOAD. IF THEY WANT THE TEMPORARY FIX LET THEM APPLY IT THEMSELVES.
Not to be a dick, but I just hate spoonfeeding.


edit: I received a PM stating that this fix does indeed work with vending.
I believe this will fix the problems relating to storage and selling and even vending (though I have no way to test this). In src\network\receive\servertype0.pm edit the following function to what I have:

Code: Select all

sub parse_items_nonstackable {
	my ($self, $args) = @_;

	$self->parse_items($args, $self->items_nonstackable($args), sub {
		my ($item) = @_;
		# message TF("In P_I_N the item %s has an amount of %s\n", $item->{name}, $item->{amount});
		#$item->{placeEtcTab} = $item->{identified} & (1 << 2);
		$item->{amount} = 1 unless ($item->{amount});
		$item->{broken} = $item->{identified} & (1 << 1) unless exists $item->{broken};
		$item->{idenfitied} = $item->{identified} & (1 << 0);
	})
}
Obviously this is not a fix for the real problem in that the item packet was not parsed properly and therefore the item structure is malformed. I am honestly do not know enough about the packets or how to parse them to do much more on this subject.

EVERYTHING BELOW THIS LINE IS OUTDATED
-----------------------------------------------------------------------------

I don't have all the zeny or characters in the world to test all this stuff out (I just started last night). However ChrstphR and myself have come up with a workaround for the autosell problem:

after the line in \src\network\receive\ServerType0.pm (around 3600~)

Code: Select all

my $item = $char->inventory->getByServerIndex($index);
add in:

Code: Select all

if ($item->{amount} == 0) {
	$item->{amount} = 1; # why would that ever return 0 in the first place is beyond me.
}
I am well aware this does nothing to address the underlying issue of why the items are returning 0 for the amount value, however I don't know perl nor is the source code the easiest thing to navigate in the world, so this workaround can be used until the real devs figure out the root issue.

This same hax concept can be used to "fix" autostorage as well...

in src\network\send.pm
replace the following functions with what I have now:

Code: Select all

sub sendStorageAdd {
	my ($self, $index, $amount) = @_;
	# message TF("%s - Amount trying to add\n", $amount);
	if (!$amount) {
		$amount = 1;
	}
	$self->sendToServer($self->reconstruct({switch => 'storage_item_add', index => $index, amount => $amount}));
	debug "Sent Storage Add: $index x $amount\n", "sendPacket", 2;
}

sub sendStorageGet {
	my ($self, $index, $amount) = @_;
	# message TF("%s - Amount trying to take\n", $amount);
	if (!$amount) {
		$amount = 1;
	}
	$self->sendToServer($self->reconstruct({switch => 'storage_item_remove', index => $index, amount => $amount}));
	debug "Sent Storage Get: $index x $amount\n", "sendPacket", 2;
}
These were the only two problems relating to items that effect me currently so I will not be trying to fix the vending or anything like that (I dont have a merchant yet anyway).

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 09:13
by grimey1234
Image


So i'm trying to login using xkore 3 and i keep getting these errors. i've already updated kore to r8357 and i've run out of things to do.

this is the error log i get

Code: Select all

OpenKore version what-will-become-2.1
Network state = 5
Network handler = Network::XKoreProxy
SVN revision: unknown
Loaded plugins:
  plugins/macro/macro.pl (macro)

Error message:
Attempt to STORE non blessed reference (or not a reference)
Value:
$VAR1 = undef;

Stack trace:
Attempt to STORE non blessed reference (or not a reference)
Value:
$VAR1 = undef;
 at src/Utils/BlessedRefTie.pm line 10
	Tie::BlessedRef::STORE('Tie::BlessedRef=SCALAR(0x59e599c)', undef) called at src/Network/Receive/ServerType0.pm line 955
	Network::Receive::ServerType0::map_loaded('Network::Receive::ServerType0=HASH(0x5e886a4)', 'HASH(0x5e7ec7c)') called at src/Network/PacketParser.pm line 260
	Network::PacketParser::parse('Network::Receive::ServerType0=HASH(0x5e886a4)', '\x{eb}\x{2}\x{a1}\x{aa}\x{c}I\x{10}\x{c8}`\x{5}\x{5}\x{0}\x{0}', 'Network::Receive::ServerType0=HASH(0x5e886a4)') called at src/Network/Receive.pm line 53
	Network::Receive::parse('Network::Receive::ServerType0=HASH(0x5e886a4)', '\x{eb}\x{2}\x{a1}\x{aa}\x{c}I\x{10}\x{c8}`\x{5}\x{5}\x{0}\x{0}', 'Network::Receive::ServerType0=HASH(0x5e886a4)') called at src/Network/PacketParser.pm line 394
	Network::PacketParser::process('Network::Receive::ServerType0=HASH(0x5e886a4)', 'Network::MessageTokenizer=HASH(0x39a327c)', 'Network::Receive::ServerType0=HASH(0x5e886a4)') called at src/functions.pl line 703
	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(0x8f0a04)') called at openkore.pl line 97
	main::__start() called at start.pl line 136


Any advice on what i should do next would be greatly appreciated.

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 13:29
by tuko
Spherical wrote:TO ANYONE WHO USES THIS BEFORE THE REAL FIX COMES OUT, PLEASE RESPECT ME AND DO NOT POST THE EDITED FILES FOR OTHERS TO DOWNLOAD. IF THEY WANT THE TEMPORARY FIX LET THEM APPLY IT THEMSELVES.
Not to be a dick, but I just hate spoonfeeding.

I believe this will fix the problems relating to storage and selling and possibly even vending (though I have no way to test this). In src\network\receive\servertype0.pm edit the following function to what I have:

Code: Select all

sub parse_items_nonstackable {
	my ($self, $args) = @_;

	$self->parse_items($args, $self->items_nonstackable($args), sub {
		my ($item) = @_;
		# message TF("In P_I_N the item %s has an amount of %s\n", $item->{name}, $item->{amount});
		#$item->{placeEtcTab} = $item->{identified} & (1 << 2);
		$item->{amount} = 1 unless ($item->{amount});
		$item->{broken} = $item->{identified} & (1 << 1) unless exists $item->{broken};
		$item->{idenfitied} = $item->{identified} & (1 << 0);
	})
}
Obviously this is not a fix for the real problem in that the item packet was not parsed properly and therefore the item structure is malformed. I am honestly do not know enough about the packets or how to parse them to do much more on this subject.

EVERYTHING BELOW THIS LINE IS OUTDATED
-----------------------------------------------------------------------------

I don't have all the zeny or characters in the world to test all this stuff out (I just started last night). However ChrstphR and myself have come up with a workaround for the autosell problem:

after the line in \src\network\receive\ServerType0.pm (around 3600~)

Code: Select all

my $item = $char->inventory->getByServerIndex($index);
add in:

Code: Select all

if ($item->{amount} == 0) {
	$item->{amount} = 1; # why would that ever return 0 in the first place is beyond me.
}
I am well aware this does nothing to address the underlying issue of why the items are returning 0 for the amount value, however I don't know perl nor is the source code the easiest thing to navigate in the world, so this workaround can be used until the real devs figure out the root issue.

This same hax concept can be used to "fix" autostorage as well...

in src\network\send.pm
replace the following functions with what I have now:

Code: Select all

sub sendStorageAdd {
	my ($self, $index, $amount) = @_;
	# message TF("%s - Amount trying to add\n", $amount);
	if (!$amount) {
		$amount = 1;
	}
	$self->sendToServer($self->reconstruct({switch => 'storage_item_add', index => $index, amount => $amount}));
	debug "Sent Storage Add: $index x $amount\n", "sendPacket", 2;
}

sub sendStorageGet {
	my ($self, $index, $amount) = @_;
	# message TF("%s - Amount trying to take\n", $amount);
	if (!$amount) {
		$amount = 1;
	}
	$self->sendToServer($self->reconstruct({switch => 'storage_item_remove', index => $index, amount => $amount}));
	debug "Sent Storage Get: $index x $amount\n", "sendPacket", 2;
}
These were the only two problems relating to items that effect me currently so I will not be trying to fix the vending or anything like that (I dont have a merchant yet anyway).
^its works for vending. thumbs up. better add it on svn as a fix.

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 18:51
by xkoreuser
wow that works, thanks alot for posting the fix !

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 18:52
by Spherical
No problem, no sense in letting all the RMTers who already fixed it have all the fun xD. Plus it was fun to try and fix it.

Re: iRO 21.12.2012 server merge

Posted: 03 Jan 2013, 20:27
by tuko
the fixes works great but now equipment can't be view from inventory and looted eq won't be store into storage...any fix on that? thanks.

Re: iRO 21.12.2012 server merge

Posted: 04 Jan 2013, 21:46
by guytwo
Great work guys, I really appreciate all the help. But I personally am still having problems with selecting a character. It keeps giving me the :

Packet Tokenizer: Unknown switch: 09A0

Error at the character select part. I have tortoise SVN installed and updated to the latest revision 8357, but I cannot login. What part am I missing or doing wrong? I greatly appreciate the help :)