Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
Подскажет кто, что отвечает за падение линдвиора на землю, и выстрел пушки?
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
Mifesto Написал:Подскажет кто, что отвечает за падение линдвиора на землю, и выстрел пушки?
за падение - его спавн.
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
12-31-2014, 11:47 AM
(Сообщение последний раз редактировалось: 12-31-2014, 12:52 PM Mifesto.)
Melcor Написал:за падение - его спавн.
т.е. заспавнить 25899 и все? у меня просто он появляется, или же нужно спавнить с флагом isSummonSpawn?
П.С. Спастбо, у меня криво работал isSummonSpawn для монстров.
Сообщений: 202
Тем: 2
Зарегистрирован: Jun 2008
Репутация:
783
Melcor Написал:Кто ковырял итеммол на эртее, подскажите пожалуйста, как разблокировать вкладку с предметцами за Hero Coin?
Настройка Итем-молла производится в localization.ini
Цитата:[English_CashShop_Cateory]
;CATEORY : all(0) enchanting(1),consuming(2),decorating(3),package(4),etc(5)
;TYPE : event(1),best(2),new(4)
;show,cateory,tabtype,showtab,sysstring
;PRESENT_DISABLE=true
TAB_SETTING=true
TAB1=1, 1, 0, 1, 5096
TAB2=1, 0, 0, 0, 5002
TAB3=1, 4, 1, 0, 5008
TAB4=1, 3, 1, 0, 5007
TAB5=1, 6, 1, 0, 5095
TAB6=1, 2, 1, 0, 5006
TAB7=1, 5, 1, 0, 5009
TAB8=1, 7, 1, 0, 2006
;TAB9=1, 0, 2, 0, 5031
[Europe_CashShop_Cateory]
COIN_CHANGE_MONEY=true
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
Bonux Написал:Настройка Итем-молла производится в localization.ini
да про это я в курсе, но толку то, этот конфиг работает только если локализация выбрана Eng =\
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
01-04-2015, 04:46 PM
(Сообщение последний раз редактировалось: 01-04-2015, 05:41 PM elastic.)
Ищу пакет итем-молла для протокола 558+ ExBr_ProductList
Сниф с евро какой-то бредовый пришел :<
Все, не нужно, метод подбора пошел
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Подскажите, пожалуйста, как побороть эту хрень?
Время продаж продукта дефолтно - унлимит, но вылезает эта хрень со своим 1970 годом. Когда у продукта указываю время продаж и дату вручную - меняются только часы, дата стоит такая же.
В структуре пакета проблем, думаю, быть не должно. Разбирал сам, все раз 100 проверил, все подходит. Структуру, естественно, брал из дампа.
Это под 558 протокол:
Пакет ExBr_ProductList
Код: @Override
protected void writeImpl()
{
writeEx(0xD7);
writeQ(0x00);// Adena.
writeQ(0x00);// Хиро коины.
writeD(0x00);// Неизвестное поле.
writeD(_products.size());
for(PrimeProduct product : _products)
{
writeD(product.getProductId());
writeH(product.getCategory());
writeH(0x00);//НЦ_Коины.
writeD(product.getPrice());//Цена за обычную валюту, аля баланс.
writeD(product.getTabType());//Полосочка возле продуктов.
writeD(product.getTabId());//Место отображения на главной.
writeD((int) product.getStartTimeSale() / 1000); // Время начала продаж в unix
writeD((int) product.getEndTimeSale() / 1000); // Время окончания продаж в unix
writeC(product.getDailyWeekLimit());// Ограничение по дням недели.
writeC(product.getStartHour()); // start hour
writeC(product.getStartMin()); // start min
writeC(product.getEndHour()); // end hour
writeC(product.getEndMin()); // end min
writeD(0x00); // Продажи какие-то, хз.
writeD(-1); // Ограниченное предложение.
writeD(0x00); // Предложение со скидкой.
writeD(0x00); // Ограничение по уровню.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Ограничение на аккаунт.
writeD(0x00); // Неизвестное поле.
writeD(product.getComponents().size());
for(PrimeItem component : product.getComponents())
{
//Тут не понятно пока
writeD(component.getCount()); // count
writeD(component.getItemId()); // itemID
writeD(component.getWeight()); // weight
writeD(component.dropable() ? 1 : 0); //0 - dont drop/trade
}
}
}
Молю о помощи!
Сообщений: 406
Тем: 10
Зарегистрирован: Jun 2008
Репутация:
2,862
elastic Написал:Подскажите, пожалуйста, как побороть эту хрень?
Время продаж продукта дефолтно - унлимит, но вылезает эта хрень со своим 1970 годом. Когда у продукта указываю время продаж и дату вручную - меняются только часы, дата стоит такая же.
В структуре пакета проблем, думаю, быть не должно. Разбирал сам, все раз 100 проверил, все подходит. Структуру, естественно, брал из дампа.
Это под 558 протокол:
Пакет ExBr_ProductList
Код: @Override
protected void writeImpl()
{
writeEx(0xD7);
writeQ(0x00);// Adena.
writeQ(0x00);// Хиро коины.
writeD(0x00);// Неизвестное поле.
writeD(_products.size());
for(PrimeProduct product : _products)
{
writeD(product.getProductId());
writeH(product.getCategory());
writeH(0x00);//НЦ_Коины.
writeD(product.getPrice());//Цена за обычную валюту, аля баланс.
writeD(product.getTabType());//Полосочка возле продуктов.
writeD(product.getTabId());//Место отображения на главной.
writeD((int) product.getStartTimeSale() / 1000); // Время начала продаж в unix
writeD((int) product.getEndTimeSale() / 1000); // Время окончания продаж в unix
writeC(product.getDailyWeekLimit());// Ограничение по дням недели.
writeC(product.getStartHour()); // start hour
writeC(product.getStartMin()); // start min
writeC(product.getEndHour()); // end hour
writeC(product.getEndMin()); // end min
writeD(0x00); // Продажи какие-то, хз.
writeD(-1); // Ограниченное предложение.
writeD(0x00); // Предложение со скидкой.
writeD(0x00); // Ограничение по уровню.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Ограничение на аккаунт.
writeD(0x00); // Неизвестное поле.
writeD(product.getComponents().size());
for(PrimeItem component : product.getComponents())
{
//Тут не понятно пока
writeD(component.getCount()); // count
writeD(component.getItemId()); // itemID
writeD(component.getWeight()); // weight
writeD(component.dropable() ? 1 : 0); //0 - dont drop/trade
}
}
}
Молю о помощи!
вся логика есть в клиенте. Дальше сам
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
elastic Написал:Подскажите, пожалуйста, как побороть эту хрень?
Время продаж продукта дефолтно - унлимит, но вылезает эта хрень со своим 1970 годом. Когда у продукта указываю время продаж и дату вручную - меняются только часы, дата стоит такая же.
В структуре пакета проблем, думаю, быть не должно. Разбирал сам, все раз 100 проверил, все подходит. Структуру, естественно, брал из дампа.
Это под 558 протокол:
Пакет ExBr_ProductList
Код: @Override
protected void writeImpl()
{
writeEx(0xD7);
writeQ(0x00);// Adena.
writeQ(0x00);// Хиро коины.
writeD(0x00);// Неизвестное поле.
writeD(_products.size());
for(PrimeProduct product : _products)
{
writeD(product.getProductId());
writeH(product.getCategory());
writeH(0x00);//НЦ_Коины.
writeD(product.getPrice());//Цена за обычную валюту, аля баланс.
writeD(product.getTabType());//Полосочка возле продуктов.
writeD(product.getTabId());//Место отображения на главной.
writeD((int) product.getStartTimeSale() / 1000); // Время начала продаж в unix
writeD((int) product.getEndTimeSale() / 1000); // Время окончания продаж в unix
writeC(product.getDailyWeekLimit());// Ограничение по дням недели.
writeC(product.getStartHour()); // start hour
writeC(product.getStartMin()); // start min
writeC(product.getEndHour()); // end hour
writeC(product.getEndMin()); // end min
writeD(0x00); // Продажи какие-то, хз.
writeD(-1); // Ограниченное предложение.
writeD(0x00); // Предложение со скидкой.
writeD(0x00); // Ограничение по уровню.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Ограничение на аккаунт.
writeD(0x00); // Неизвестное поле.
writeD(product.getComponents().size());
for(PrimeItem component : product.getComponents())
{
//Тут не понятно пока
writeD(component.getCount()); // count
writeD(component.getItemId()); // itemID
writeD(component.getWeight()); // weight
writeD(component.dropable() ? 1 : 0); //0 - dont drop/trade
}
}
}
Молю о помощи!
Мб с этим поколдовать стоит:
[src='java'] writeD((int) product.getStartTimeSale() / 1000); // Время начала продаж в unix
writeD((int) product.getEndTimeSale() / 1000); // Время окончания продаж в unix[/src]
П.С.: Насколько я понял с твоего скрина, тебе нужно поменять местами count и itemId. Возможно я ошибаюсь, но иначе у тебя выйдет с коробки 1 адена, а не 57 Коротких Мечей
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Warencense Написал:Мб с этим поколдовать стоит:
[src='java'] writeD((int) product.getStartTimeSale() / 1000); // Время начала продаж в unix
writeD((int) product.getEndTimeSale() / 1000); // Время окончания продаж в unix[/src]
П.С.: Насколько я понял с твоего скрина, тебе нужно поменять местами count и itemId. Возможно я ошибаюсь, но иначе у тебя выйдет с коробки 1 адена, а не 57 Коротких Мечей Уже поколдовал:
Соснифал пакет с евро-офа, посмотрел значение унлимита там и понял, что в пакете нет нужды делить на 1000.
С отображением продукта тоже решил, я забыл 1 D, кажется, перед размером. Сейчас все в норме
Что получилось в итоге:
Packet
Код: public class ExBR_ProductList extends L2GameServerPacket
{
private final Collection<PrimeProduct> _products;
public ExBR_ProductList()
{
_products = ProductHolder.getInstance().getAllItems();
}
@Override
protected void writeImpl()
{
writeEx(0xD7);
writeQ(0x00);// Adena.
writeQ(0x00);// Хиро коины.
writeD(0x00);// Неизвестное поле.
writeD(_products.size());
for(PrimeProduct product : _products)
{
writeD(product.getProductId());
writeH(product.getCategory());
writeH(0x00);//НЦ_Коины.
writeD((int) product.getPrice());//Цена за обычную валюту, аля баланс.
writeD(product.getTabType());//Полосочка возле продуктов.
writeD(product.getTabId());//Место отображения на главной.
writeD((int) (product.getStartTimeSale())); // Время начала продаж в unix
writeD((int) (product.getEndTimeSale())); // Время окончания продаж в unix
writeC(product.getDailyWeekLimit());// Ограничение по дням недели.
writeC(product.getStartHour()); // start hour
writeC(product.getStartMin()); // start min
writeC(product.getEndHour()); // end hour
writeC(product.getEndMin()); // end min
writeD(-1); // Продажи какие-то, хз.
writeD(-1); // Ограниченное предложение.
writeD(product.getDiscount()); // Предложение со скидкой.
writeD(product.getAllowedLevel()); // Ограничение по уровню.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(0x00); // Неизвестное поле.
writeD(product.getAllowedAccount()); // Ограничение на аккаунт.
writeD(0x00); // Неизвестное поле.
writeD(product.getComponents().size());
for(PrimeItem component : product.getComponents())
{
writeD(component.getItemId());
writeD(component.getCount());
writeD(component.getWeight());
writeD(component.dropable() ? 1 : 0);
}
}
}
}
|