Подсчитываем ид купонов - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Point Blank (Piercing Blow)

Point Blank (Piercing Blow)
Общие вопросы по написанию эмулятора. General questions on developing emulator. При поддержке: Lucera 2 - разработка Java Interlude

Ответ
Опции темы
Непрочитано 12.01.2016, 13:30   #1
Аватар для Sojang
Пользователь

Автор темы (Топик Стартер) Подсчитываем ид купонов

Решил выложить небольшую информацию по купонам,а именно как получить ид активированного купона.Формула следующая ид купона - количество дней(в конце ида последние две цифры) + 1000000000 достаточно просто добавить итем с получившемся идом в инвентарь и у вас будет эффект от купона.Да кстати если кому интересно для активации купона нужно отправлять два пакета.Сначала нужно послать пакет удаления старого купона(со старым статусом не активен),а далее добавить новый купон с новым идом(со статусом активен).
Тестировалось на клиенте Project Blackout и по Point Blank(tahadi)
Sojang вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 12.01.2016, 13:52   #2
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Подсчитываем ид купонов

Цитата:
Сообщение от Dom2 Посмотреть сообщение
Сначала нужно послать пакет удаления старого купона
Это нужно делать, если всего 1 купон.

Для примера в Piercing Blow активация купона C4 Speed Kit (Id предметов отличаются от старых клиентов в остальном всё тоже самое):

Код:
// PROTOCOL_BASE_GET_INVEN_INFO_ACK

FC 74 0C 00 00 00 00 00 
AA F4 19 00 // 1701034
01 
05 00 00 00 // изначально имеем 5 купонов

// PROTOCOL_AUTH_SHOP_ITEM_AUTH_ACK

FC 74 0C 00 00 00 00 00 
AA F4 19 00 // 1701034
01 
04 00 00 00 // 1 купон из 5 использован

// PROTOCOL_INVENTORY_GET_INFO_ACK

E5 62 16 00 00 00 00 00 
22 6A 18 00 // 1600034 (1701034 - 101000) новый предмет
02 // тип использования
04 4F 6F 5F // действует до yyMMddHHmm
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 17.01.2016, 20:13   #3
Аватар для Exile03
Пользователь

По умолчанию Re: Подсчитываем ид купонов

PROGRAMMATOR
for work effect coupon Player need fix ROOM_INFO?
for work Effect player Coupon?
i try insert two writeD(0);
ROOM_INFO but i not actived coupon he send info for my player i'm using coupon but i not using.
how i can fix this effect player coupon
Exile03 вне форума Ответить с цитированием
Непрочитано 17.01.2016, 20:57   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Подсчитываем ид купонов

PROTOCOL_ROOM_GET_SLOTINFO_ACK
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 17.01.2016, 21:22   #5
Аватар для Exile03
Пользователь

По умолчанию Re: Подсчитываем ид купонов

yes this locate i add two writeD(0);
effect work but i not use coupon
when i respawn map he seeding info i use coupon but i' am not using coupon

Код:
public class SM_ROOM_INFO extends ServerPacket {

	private final Room room;

	public SM_ROOM_INFO(Room room) {
		super(0xf15);
		this.room = room;
	}

	@Override
	public void writeImpl() {

		if(room.getRoomSlotByPlayer(room.getLeader()) == null)
			room.setNewLeader();

		writeD(room.getRoomSlotByPlayer(room.getLeader()).getId());
	                writeD(0); // Effect Coupon but i'm not equiped Coupon he seend info i'm using coupon but i' am not equiped coupon
	                writeD(0);// Effect Coupon but i'm not equiped Coupon he seend info i'm using coupon but i' am not equiped coupon
		for(int i = 0; i < 16; i++) {
			RoomSlot slot = room.getRoomSlot(i);
			if(slot.getPlayer() != null) {
			writeC(slot.getState().ordinal());
			writeC((byte) (slot.getPlayer() == null ? 0 : slot.getPlayer().getRank()));
	                writeB(new byte[9]);
	                writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0xff : slot.getPlayer().getClan().getLogo1());
			writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0xff : slot.getPlayer().getClan().getLogo2());
			writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0xff : slot.getPlayer().getClan().getLogo3());
			writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0xff : slot.getPlayer().getClan().getLogo4());
			writeC(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? 0 : slot.getPlayer().getClan().getColor());
	                writeB(new byte[6]);
	                writeS(slot.getPlayer() == null || slot.getPlayer().getClan() == null ? "" : slot.getPlayer().getClan().getName(), Clan.CLAN_NAME_SIZE);
	                writeH(0);
	                writeC(0);
	                writeC(0);
				}
}
}

how i can fix he right man for work right effect
Exile03 вне форума Ответить с цитированием
Непрочитано 17.01.2016, 21:30   #6
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Подсчитываем ид купонов

Код:
                    WriteC(8); // Slot.State
                    WriteC(0); // Player.Rank
                    WriteD(0); // ClanId
                    WriteD(0); // ClanRole
                    WriteC(0); // Clan.Rank
                    WriteD(-1); // Clan.Mark
                    WriteC(0); // Player.Premium
                    WriteC(0); // Player.TournamentRank
                    WriteD(0); // Coupons
                    WriteS("", Clan.NAME_LENGTH);
                    WriteD(0); // ?
                    WriteC(0); // ClanNameColor
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 17.01.2016, 21:53   #7
Аватар для Exile03
Пользователь

По умолчанию Re: Подсчитываем ид купонов

Thakyou so much man
Exile03 вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раздача купонов на рекламу! L2-Start Курилка / Yak floor 46 23.01.2013 11:21


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 20:08. Часовой пояс GMT +3.

Вверх