Been at this stupid thing for adges. (Impulse's source)

07/17/2010 22:47 MonstersAbroad#1
I have this item
Code:
#region Firwork EndlessLove
                case 720031:
                    {
[COLOR="Red"][B]client.Send(GamePackets.StringPacket.Effect(client.Entity.UID, "firework-1love"));[/B][/COLOR]
                        client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
                        //MyClient.AddSend(Packets.String(MyClient.MyChar.EntityID, 10, "firework-1love"));
                    }
                    break;
                #endregion
and tryed changing whats in red to
Code:
client.Send(GamePackets.StringPacket(client.Entity.UID, GamePackets.StringPacket.Effect, "firework-1love"));
But it doesnt seem to work
Error on red "not a member so it cant be used as a method" <- I know but worth a try
Error not in red: Packet is a type witch isnt vaild.
Packet
Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace Conquer_Online_Server.Network.GamePackets
{
    public class StringPacket : Writer, Interfaces.IPacket
    {
        public const byte GuildName = 3,
        Spouse = 6,
        Effect = 10,
        GuildList = 11,
        Unknown = 13,
        ViewEquipSpouse = 16,
        StartGamble = 17,
        EndGamble = 18,
        Sound = 20,
        GuildEnemies = 21,
        GuildAllies = 22,
        WhisperDetails = 26;

        byte[] Buffer;

        public StringPacket(bool Create)
        {
            if (Create)
            {
                Buffer = new byte[19];
                WriteUInt16(11, 0, Buffer);
                WriteUInt16(1015, 2, Buffer);
                Texts = new List<string>();
            }
        }
        public uint UID
        {
            get { return BitConverter.ToUInt32(Buffer, 4); }
            set { WriteUInt32(value, 4, Buffer); }
        }
        public byte Type
        {
            get { return Buffer[8]; }
            set { Buffer[8] = value; }
        }
        public byte TextsCount
        {
            get { return Buffer[9]; }
            set { Buffer[9] = value; }
        }
        public List<string> Texts;

        public void Send(Client.GameState client)
        {
            client.Send(Buffer);
        }
        public byte[] ToArray()
        {
            ushort entirelength = 19;
            foreach (string list in Texts)
                entirelength += (ushort)list.Length;
            byte[] buffer = new byte[entirelength];
            WriteUInt16((ushort)(entirelength - 8), 0, buffer);
            WriteUInt16(1015, 2, buffer);
            WriteUInt32(UID, 4, buffer);
            buffer[8] = Type;
            Buffer = buffer;
            WriteStringList(Texts, 9, Buffer);
            return Buffer;
        }
        public void Deserialize(byte[] buffer)
        {
            Buffer = buffer;
            Texts = new List<string>(buffer[9]);
            ushort offset = 10;
            byte count = 0;
            while (count != TextsCount)
            {
                ushort textlength = buffer[offset]; offset++;
                string text = Encoding.ASCII.GetString(buffer, offset, textlength); offset += textlength;
                Texts.Add(text);
                count++;
            }            
        }
    }
}
:/ Been at this for sometime
07/18/2010 11:33 tanelipe#2
Try this

PHP Code:
GamePackets.StringPacket Packet = new GamePackets.StringPacket(true);
Packet.UID client.Entity.UID;
Packet.Type GamePackets.StringPacket.Effect;
Packet.TextsCount 1;
Packet.Texts.Add("firework-1love");
Packet.Send(client); 
07/18/2010 12:26 MonstersAbroad#3
No effect shows. :( No errors tho.
07/18/2010 13:29 tanelipe#4
How about

PHP Code:
GamePackets.StringPacket Packet = new GamePackets.StringPacket(true);
Packet.UID client.Entity.UID;
Packet.Type GamePackets.StringPacket.Effect;
Packet.TextsCount 1;
Packet.Texts.Add("firework-1love");
client.Send(Packet.ToArray()); 
07/18/2010 13:46 MonstersAbroad#5
Thanks!!! btw client.Send(Packet.ToArray()); can just be client.Send(Packet);, Both work THANKS!
07/18/2010 14:28 MonstersAbroad#6
#Bump + Another problem :D
It's changing the screen color I have this
Code:
#region Night
                                    case "night":
                                        {
                                            Client.GameState.ScreenColor = 5855577;
                                            GamePackets.GeneralData Packet = new GamePackets.GeneralData(true);
                                            Packet.UID = client.Entity.UID;
                                            Packet.GetType();
                                            Packet.ID = (ushort)Client.GameState.ScreenColor;
                                            foreach (Client.GameState pclient in ServerBase.Kernel.GamePool.Values)
                                            {
                                                pclient.Send(Packet);
                                            }
                                            //pclient.Send(GeneralData(pclient.Entity.UID, Client.GameState.ScreenColor, 0, 0, 104));
                                            //pclient.Send(GamePackets.GeneralData(pclient.Entity.UID, Client.GameState.ScreenColor, 0, 0, 104));
                                        }
                                        break;
                                    #endregion
But it fails hardcore. No errors but it fails.