Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Point Blank (Piercing Blow) (https://forum.zone-game.info/forumdisplay.php?f=204)
-   -   Coupon effect (https://forum.zone-game.info/showthread.php?t=40359)

nikolen 24.03.2016 12:23

Coupon effect
 
hi everybody. i want to know how to use this coupons enum for working effect. if anybody know please help me.
credits of enum > PROGRAMMATOR
Цитата:

[Flags]
enum SlotItemEffect
{
QUICK_CHANGE_WEAPON = 0x8000,
QUICK_CHANGE_MAGAZINE = 0x4000,
MEGA_HP10 = 0x2000,
INCREASE_INVINCIBLE_TIME = 0x1000,
BULLET_PROOF_VEST = 0x800,
FULLMETALJACKETAMMO = 0x400,
HOLLOW_POINT_AMMO = 0x200,
C4_SPEED_KIT = 0x100,
INCREASE_GRENADE_SLOT = 0x80,
JACKETED_HELLOW_POINT_AMMO = 0x40,
MEGA_HP5 = 0x20,
BULLET_PROOF_VEST_PLUS = 0x10,
HOLLOW_POINT_AMMO_PLUS = 0x08,
BULLET_PROOF_VEST_METAL = 0x04,
KETUPAT = 0x02, // 르바란 이벤트 관련 ( 2010.09.07 ~ 2010.09.14 이벤트 기간 종료 후 삭제 )
}

PROGRAMMATOR 24.03.2016 13:06

Re: Coupon effect
 
PROTOCOL_ROOM_GET_SLOTINFO_ACK

nikolen 24.03.2016 17:41

Re: Coupon effect
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 408863)

like that?
Цитата:

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(0x8000); // Coupons (QUICK CHANGE WEAPON)
WriteS("", Clan.NAME_LENGTH);
WriteD(0); // ?
WriteC(0); // ClanNameColor

PROGRAMMATOR 24.03.2016 23:56

Re: Coupon effect
 
Yes like that.

As these are flags so you also can use:

Код:

Effect1 | Effect2 | Effect3

Yusqa 25.03.2016 00:47

Re: Coupon effect
 
@PROGRAMMATOR
http://i.hizliresim.com/3Lzp1p.jpg
http://i.hizliresim.com/BPzyRQ.jpg
работа, но 0-часовое шоу.
Как это можно исправить

PROGRAMMATOR 25.03.2016 08:00

Re: Coupon effect
 
Что прописываете в Quantity при активации предмета?

Yusqa 25.03.2016 15:53

Re: Coupon effect
 
SM_INVENTORY_ITEM_EQUIP
Цитата:

public class SM_INVENTORY_ITEM_EQUIP : SendBaseGamePacket
{
private int _objId;
private Account _p;
private int _type;
private int item_id;

public SM_INVENTORY_ITEM_EQUIP(int id, int type, Account player)
{
base.makeme();
this._objId = id;
this._type = type;
this._p = player;
}

protected internal override void write()
{
base.writeH(0x217);
if (this._type == 2)
{
if (DAOM.getInstance().getItem(this._objId) != null)
{
this.item_id = DAOM.getInstance().getItem(this._objId).id;
}
else
{
this.item_id = 0;
}
base.writeD(1);
base.writeD(Convert.ToInt32(DateTime.Now.ToString( "yyMMddHHmm")));
base.writeQ((long) this._objId);
if ((this.item_id < 0x8000) && (this.item_id > 0x4000) && (this.item_id > 0x20) && (this.item_id > 0x08))
{
base.writeD(this.item_id);
base.writeC(1);
base.writeD(1);
}
else
{
base.writeD(this.item_id);
base.writeC(2);
int count = 0x15180;
if (DAOM.getInstance().getItem(this._objId) != null)
{
count = DAOM.getInstance().getItem(this._objId).count;
}
int num2 = count / 0x15180;
DateTime time = new DateTime();
time.AddDays((double) num2);
int num3 = Convert.ToInt32(time.ToString("yyMMddHHmm"));
base.writeD(num3);
}
}
else
{
base.writeD(1);
base.writeD(Convert.ToInt32(DateTime.Now.ToString( "yyMMddHHmm")));
base.writeD(1);
base.writeD(0);
base.writeD(0);
base.writeC(1);
base.writeD(0);
}
}
}
}
это пакет, Что дает ошибку здесь?

PROGRAMMATOR 25.03.2016 16:46

Re: Coupon effect
 
Увы, это не возможно прочитать.

Код:

int num2 = count / 0x15180;
DateTime time = new DateTime();
time.AddDays((double) num2);

...

var expiredAt = DateTime.Now.AddSeconds(count);
 
Code: C#

count / 0x15180 - вот тут могло и потеряться, если изначально count < 86400. Смотрите, что там в базе прописано у этого предмета. Да и проверки эти должны быть как минимум в клиентском пакете, а не серверном.

Yusqa 25.03.2016 17:23

Re: Coupon effect
 
хорошо,
Я был бы рад, если вы поможете в теме ))
Цитата:

WriteD(0x8000); // Cupon

код гиперссылок при вводе Cupon "QUICK_CHANGE_WEAPON" это просто пытается
все работы на том, что должно быть сделано?

Sojang 26.03.2016 00:48

Re: Coupon effect
 
Цитата:

Сообщение от Yusqa (Сообщение 408941)
Цитата:

WriteD(0x8000); // Cupon

код гиперссылок при вводе Cupon "QUICK_CHANGE_WEAPON" это просто пытается
все работы на том, что должно быть сделано?

Лучше писать английском чем пользоваться переводчиком:)ибо получается белиберда

Henrique 10.06.2016 04:00

Re: Coupon effect
 
Hey PROGRAMMATOR

Как я могу получить больше эффект купоны?

writeD(0x8000 * 0x4000 * 0x40); ??

PROGRAMMATOR 10.06.2016 07:15

Re: Coupon effect
 
https://forum.zone-game.info/showpos...09&postcount=4

Henrique 13.06.2016 00:48

Re: Coupon effect
 
SM_ROOM_SLOT_INFO

Correct ?

Код:

                                writeC((byte)_room.getSlotState(slot)); // Slot.State
                                writeC((byte)playerBySlot.getRank()); // Player.Rank
                                if (clan.clan_id != 0) // ClanId
                                {
                                    writeD(1);
                                    writeD(1);
                                }
                                else
                                {
                                    writeB(new byte[8]);
                                }
                                writeC((byte)clan.clan_rank); // Clan.Rank
                                writeC((byte)clan._logo1); // Clan.Mark
                                writeC((byte)clan._logo2); // Clan.Mark
                                writeC((byte)clan._logo3); // Clan.Mark
                                writeC((byte)clan._logo4); // Clan.Mark
                                writeC((byte)clan._color); // ClanNameColor
                                writeC((byte)playerBySlot.pc_cafe);
                                if ((obj_id > 0x8000) | (obj_id > 0x80))
                                {
                                    writeD(obj_id);
                                }
                                writeB(new byte[] { 3, 4, 5, 6, 7 });
                                writeS(clan.clan_name, 16);
                                writeH(0);
                                writeC(0);
                                writeC(0);


PROGRAMMATOR 13.06.2016 09:28

Re: Coupon effect
 
Код:

if ((obj_id > 0x8000) | (obj_id > 0x80))
{
        writeD(obj_id);
}

What is it?

It is active effects mask or 0.

Henrique 13.06.2016 17:36

Re: Coupon effect
 
SM_ROOM_SLOT_INFO

Код:

  public class SM_ROOM_SLOT_INFO : SendBaseGamePacket
    {
        private Room _room;
        private int item_id;
         
        public SM_ROOM_SLOT_INFO(Room r)
        {
            _room = r;
            makeme();
        }

        protected internal override void write()
        {
            try
            {
                if (_room != null)
                {
                    writeH(3861);
                    if (_room.getLeader() == null)
                    {
                        _room.setNewLeader(0);
                    }
                    if (_room.getLeader() != null)
                    {
                        writeD(_room.getLeader().getSlot());
                        for (int slot = 0; slot < 16; slot++)
                        {
                            Account playerBySlot = _room.getPlayerBySlot(slot);
                            if (playerBySlot != null)
                            {
                                int obj_id = AccountManager.getInstance().getItemIdForOBID(this.item_id);
                                Clan clan = new Clan();
                                if (ClanManager.getInstance().@get(playerBySlot.clan_id) != null)
                                {
                                    clan = ClanManager.getInstance().@get(playerBySlot.clan_id);
                                }
                                writeC((byte)_room.getSlotState(slot)); // Slot.State
                                writeC((byte)playerBySlot.getRank()); // Player.Rank
                                if (clan.clan_id != 0)
                                {
                                    writeD(1);
                                    writeD(1);
                                }
                                else
                                {
                                    writeB(new byte[8]);
                                }
                                writeC((byte)clan.clan_rank); // Clan.Rank
                                writeC((byte)clan._logo1); // Clan.Mark
                                writeC((byte)clan._logo2); // Clan.Mark
                                writeC((byte)clan._logo3); // Clan.Mark
                                writeC((byte)clan._logo4); // Clan.Mark
                                writeC((byte)clan._color); // ClanNameColor
                                writeC(0);
                                writeC((byte)playerBySlot.pc_cafe);
                                switch (obj_id)
                                {
                                    case 1:
                                    {
                                        writeD(32768); // QUICK_CHANGE_WEAPON десятичный
                                        break;
                                    }
                                    case 2:
                                    {
                                        writeD(16384); // QUICK_CHANGE_MAGAZINE десятичный
                                        break;
                                    }
                                    case 3:
                                    {
                                        writeD(8192); // MEGA_HP10 десятичный
                                        break;
                                    }
                                    case 4:
                                    {
                                        writeD(2048); // BULLET_PROOF_VEST десятичный
                                        break;
                                    }
                                    case 5:
                                    {
                                        writeD(128); //  INCREASE_GRENADE_SLOT десятичный
                                        break;
                                    }
                                    case 6:
                                    {
                                        writeD(8); //  HOLLOW_POINT_AMMO_PLUS десятичный
                                        break;
                                    }
                                }
                                writeB(new byte[] { 3, 4, 5, 6, 7 });
                                writeS(clan.clan_name, 16);
                                writeH(0);
                                writeC(0);
                                writeC(0);
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                CLogger.getInstance().error(exception.ToString());
            }
        }
    }

AccountManager.getInstance().getItemIdForOBID

public int getItemIdForOBID(int obj_id)
        {
            int num;
            Npgsql.NpgsqlConnection NpgsqlConnection = SQLjec.getInstance().conn();
            try
            {
                NpgsqlCommand command = NpgsqlConnection.CreateCommand();
                NpgsqlConnection.Open();
                command.CommandText = string.Concat("SELECT item_id FROM items WHERE object_id='", obj_id, "';");
                command.CommandType = CommandType.Text;
                Npgsql.NpgsqlDataReader NpgsqlDataReader = command.ExecuteReader();
                if (NpgsqlDataReader.Read())
                {
                    int result = NpgsqlDataReader.GetInt32(2);
                    NpgsqlConnection.Close();
                    num = result;
                    return num;
                }
            }
            finally
            {
                if (NpgsqlConnection != null)
                {
                    ((IDisposable)NpgsqlConnection).Dispose();
                }
            }
            num = 0;
            return num;
        }

Я пытался ввести в действие более 1-го купона

Henrique 06.07.2016 06:17

Re: Coupon effect
 
correct?

PROGRAMMATOR 06.07.2016 15:02

Re: Coupon effect
 
Henrique, not correct. This is a mask. It does not need any swith.

Henrique 06.07.2016 17:18

Re: Coupon effect
 
PROGRAMMATOR, I am unable to put more than one effect of coupon

PROGRAMMATOR 06.07.2016 17:33

Re: Coupon effect
 
[Flags]
enum CouponEffect
{
	// ...
	MegaHp10 = 0x2000,
	QuickChangeWeapon = 0x4000,
	QuickChangeMagazine = 0x8000,
	// ...
}
 
Code: C#

var effects = CouponEffect.MegaHp10 | CouponEffect.QuickChangeWeapon | CouponEffect.QuickChangeMagazine;
 
Write<int>(effects);
 
Code: C#

Emperor 06.07.2016 17:36

Re: Coupon effect
 
OFFTOP:
Свернуть ↑Развернуть ↓

PROGRAMMATOR 06.07.2016 17:38

Re: Coupon effect
 
Emperor, рядом с размером шрифта.

http://image.zone-game.info/images/2016/07/06/RdYrU.png

Emperor 06.07.2016 17:40

Re: Coupon effect
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 414896)
рядом с размером шрифта.

Я дурак, спасибо.

ChaosPaladin 06.07.2016 17:55

Re: Coupon effect
 
Цитата:

Сообщение от Emperor (Сообщение 414895)
OFFTOP:
Свернуть ↑Развернуть ↓


Henrique 07.07.2016 00:36

Re: Coupon effect
 
Thank's PROGRAMMATOR :D

PROGRAMMATOR 07.07.2016 18:26

Re: Coupon effect
 
Henrique, Any luck?


Текущее время: 01:15. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot