PDA

Просмотр полной версии : sendBuyBulkVender


kkim
26.03.2011, 18:43
Как правильно передать параметры в этот метод?
Пишу как в cmd
$messageSender->sendBuyBulkVender($venderID, [{$number, $maxAmount}],$venderCID);
выдает Failed to buy 0 of item #0 from vender (unknown code 4).

4epT
27.03.2011, 11:16
а что ты хочешь сделать?

kkim
27.03.2011, 13:51
В shopper плагине стоит старый пакет покупки с венда. Хочу шоб покупал.

manticora
27.03.2011, 17:39
В плагине shopper.pl (http://openkore.svn.sourceforge.net/viewvc/openkore/plugins/shopper/trunk/) стоит сейчас:
$messageSender->sendBuyVender($venderID, $number, $maxAmount);

В Commands.pm (http://openkore.svn.sourceforge.net/viewvc/openkore/openkore/trunk/src/Commands.pm?view=log) стоит сейчас:
$messageSender->sendBuyBulkVender($venderID, [{itemIndex => $arg2, amount => $arg3}], $venderCID);

kkim пробует написать в плагине shopper.pl (http://openkore.svn.sourceforge.net/viewvc/openkore/plugins/shopper/trunk/) так:
$messageSender->sendBuyBulkVender($venderID, [{$number, $maxAmount}],$venderCID);

Я думаю, что в плагине shopper.pl (http://openkore.svn.sourceforge.net/viewvc/openkore/plugins/shopper/trunk/) надо попробовать написать вот так:
$messageSender->sendBuyBulkVender($venderID, [{itemIndex => $number, amount => $maxAmount}]);

Если не получится, то следует попробовать добавить $venderCID:
$messageSender->sendBuyBulkVender($venderID, [{itemIndex => $number, amount => $maxAmount}], $venderCID);


Смысл в чем? Смысл в том, что передаётся массив хэшей. Массив у нас имеет один элемент. В хэше используются два ключа: itemIndex и amount.

Метод sendBuyBulkVender пришел на смену методу sendBuyVender в ревизии r7027 (http://openkore.svn.sourceforge.net/viewvc/openkore?view=revision&revision=7027).

P.S. А сервертип какой?

kkim
28.03.2011, 00:18
Спасибо за разжевывание.Надо все-таки почитать че-нить по perl.Север fro.
Думаю так должно заработать.

Добавлено через 2 часа 18 минут
Почему там в плагине пакет отправляется внутри цикла?Не проще тогда в цикле инициализировать массив а при выходе послать пакет и купить у вендера все что нужно за 1 мессэдж? Или просто плагин старый и раньше на покупку каждой шмотки посылался отдельный пакет?

manticora
28.03.2011, 00:50
Или просто плагин старый и раньше на покупку каждой шмотки посылался отдельный пакет?
Да. Ты прав, покупалось по одной вещи за пакет. Плагин старый. Его уже больше двух лет никто не правил.

Кстати, у тебя плагин заработал-то?

kkim
28.03.2011, 22:11
$messageSender->sendBuyBulkVender($venderID, [{itemIndex => $number, amount => $maxAmount}], $venderCID);

так работает

manticora
28.03.2011, 23:21
Отлично, спасибо.

manticora
04.04.2011, 21:40
r7700 (http://openkore.svn.sourceforge.net/viewvc/openkore?view=revision&revision=7700)