Register for your free account! | Forgot your password?

You last visited: Today at 03:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Scatter DC

Discussion on Scatter DC within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
Soulfly25's Avatar
 
elite*gold: 0
Join Date: Mar 2006
Posts: 563
Received Thanks: 59
Scatter DC

Hello Mates,

Good Day!.

I am having a problem of my scatter which is when there's lot of monster surrounded me and when I use scatter it will Disconnected(DC). when the monster is over 14+ then using the scatter it will Disconnected.
this happen when archer will be leveling and hunting because all monster will be gather infront of the character.

So anyone have a solution for this? please share it to me
Or any advice?

thank You Mates.
Soulfly25 is offline  
Old 10/27/2014, 11:25   #2
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 946
Get a new source.
Super Aids is offline  
Old 10/27/2014, 13:15   #3
 
.Ocularis's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 309
Received Thanks: 208
the client is having and issue because it will not handle individual messages over 1016 bytes, plus the seal (8 bytes)
you're sending too many targets in your skill effect message (1105) which causes the length of the message to exceed 1024 bytes.

split the targets among multiple 1105 transfers, limit scatter's max target count to 29 (edit: i came up with 29 by 8 + 20 + 32 + Targets.Count * 32 for latest revision of the 1105 message type because adding one more target would exceed 1016) to reduce bottlenecking the graphics render with tons of skill effects and damage amounts, or reduce the amount of monsters in each screen area then raise the rates to compensate for thinned mobs.

even COSV3 could have this condition if you didn't compensate for it.
some projects had no implementation of scatter.
.Ocularis is offline  
Old 10/27/2014, 13:38   #4
 
elite*gold: 67
Join Date: Aug 2014
Posts: 1,321
Received Thanks: 927
Quote:
Originally Posted by .Ocularis View Post
the client is having and issue because it will not handle individual messages over 1016 bytes...
Do you have an idea when they increased the max. packet size? On 5021 it will close the client if it exceeds 821.
Xio. is offline  
Old 10/27/2014, 14:38   #5
 
.Ocularis's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 309
Received Thanks: 208
No I don't, however.. 821 is an odd overflow length.. are you certain the structuring was valid? You'd do better asking JP that question.
.Ocularis is offline  
Old 10/28/2014, 07:27   #6
 
Soulfly25's Avatar
 
elite*gold: 0
Join Date: Mar 2006
Posts: 563
Received Thanks: 59
Thanks for the Information, But It's kinda I am noob in C# I only know basic. hehe

Code:
  const int TargetLimit = 30;
        public byte[] ToArray()
        {
            if (Targets.Count <= TargetLimit)
            {
                byte[] buffer = new byte[61 + Targets.Count * 32];
                Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
                Writer.WriteUInt16(1105, 2, buffer);
                Writer.WriteUInt32(Attacker, 4, buffer);
                Writer.WriteUInt16(X, 8, buffer);
                Writer.WriteUInt16(Y, 10, buffer);
                Writer.WriteUInt16(SpellID, 12, buffer);
                Writer.WriteUInt16(SpellLevel, 14, buffer);
                Writer.WriteUInt32((uint)Targets.Count, 17, buffer);
                ushort offset = 20;
                foreach (KeyValuePair<uint, DamageClass> target in Targets.Base)
                {
                    Writer.WriteUInt32(target.Key, offset, buffer); offset += 4;
                    Writer.WriteUInt32(target.Value.Damage, offset, buffer); offset += 4;
                    Writer.WriteBoolean(target.Value.Hit, offset, buffer); offset += 4;

                    offset += 6;
                    Writer.WriteUInt32(target.Value.newX, offset, buffer); offset += 4;
                    Writer.WriteUInt32(target.Value.newY, offset, buffer); offset += 8;
                }
                return buffer;
            }
            else
            {
                using (MemoryStream stream = new MemoryStream())
                using (BinaryWriter writer = new BinaryWriter(stream))
                {
                    var array = [COLOR="Red"]Targets.ToArray();[/COLOR]
                    for (int i = 0; i < array.Length; i += TargetLimit)
                    {
                        int targets = array.Length - i;
                        if (targets > TargetLimit) targets = TargetLimit;

                        byte[] buffer = new byte[61 + targets * 32];
                        Writer.WriteUInt16((ushort)(buffer.Length - 8), 0, buffer);
                        Writer.WriteUInt16(1105, 2, buffer);
                        Writer.WriteUInt32(Attacker, 4, buffer);
                        Writer.WriteUInt16(X, 8, buffer);
                        Writer.WriteUInt16(Y, 10, buffer);
                        Writer.WriteUInt16(SpellID, 12, buffer);
                        Writer.WriteUInt16(SpellLevel, 14, buffer);
                        if (Kernel.GamePool.ContainsKey(Attacker))
                            if (Kernel.GamePool[Attacker].Spells != null)
                                if (Kernel.GamePool[Attacker].Spells[SpellID] != null)
                        Writer.WriteUInt32((uint)(targets/* << 8*/), 17, buffer);
                        ushort offset = 20;
                        for (int j = 0; j < targets; j++)
                        {
                            KeyValuePair<uint, DamageClass> target =  [COLOR="Red"]array[i + j][/COLOR];
                            Writer.WriteUInt32(target.Key, offset, buffer); offset += 4;
                            Writer.WriteUInt32(target.Value.Damage, offset, buffer); offset += 4;
                            Writer.WriteBoolean(target.Value.Hit, offset, buffer); offset += 4;
                            offset += 6;
                            offset += 6;
                            Writer.WriteUInt32(target.Value.newX, offset, buffer); offset += 4;
                            Writer.WriteUInt32(target.Value.newY, offset, buffer); offset += 8;
                        }
                        Writer.WriteString("TQServer", buffer.Length - 8, buffer);
                        writer.Write(buffer, 0, buffer.Length);
                    }
                    return stream.ToArray();
                }
            }
        }
I am workin now, and I've got this error . Please help me please Im stuck with this part
Error in this part:
1. = var array = Targets.ToArray();
2. = KeyValuePair<uint, DamageClass> target = array[i + j];

Here is the ScreenShot error
Soulfly25 is offline  
Old 10/28/2014, 11:38   #7
 
elite*gold: 67
Join Date: Aug 2014
Posts: 1,321
Received Thanks: 927
Quote:
Originally Posted by .Ocularis View Post
the client is having and issue because it will not handle individual messages over 1016 bytes, plus the seal (8 bytes)
you're sending too many targets in your skill effect message (1105) which causes the length of the message to exceed 1024 bytes.

limit scatter's max target count to 29
PHP Code:
const int TargetLimit 30
Can you see it? Can you? xD

Replace SafeDictionary with ConcurrentDictionary. I'm pretty sure the implementation of SafeDict is worse than Microsofts implementation ;D
Xio. is offline  
Old 10/28/2014, 11:57   #8
 
Soulfly25's Avatar
 
elite*gold: 0
Join Date: Mar 2006
Posts: 563
Received Thanks: 59
as I sad I am still noob in C#
wanna help me? can I have your skype?
if you are willing
Soulfly25 is offline  
Old 10/28/2014, 12:30   #9
 
elite*gold: 67
Join Date: Aug 2014
Posts: 1,321
Received Thanks: 927
EDIT:

Sittin here on TeamViewer, watching him undo his "fix" because scatter doesnt work at all anymore haha

--

There is more wrong with it than just the amount of targets. We've limited to 2 Targets and it still disconnects.

Anyone else cares to help him? I don't know that source well enough nor do I have the time to dig through everything at this moment.
Xio. is offline  
Thanks
1 User
Old 10/28/2014, 13:55   #10
 
Soulfly25's Avatar
 
elite*gold: 0
Join Date: Mar 2006
Posts: 563
Received Thanks: 59
and Thanks for Xio for helping me but still not working and still thinking of it to limit the target count in scatter skill id

and Problem Solve I think It's solved now coz when I scatter it won't DC. but sometimes it give me lag.
Soulfly25 is offline  
Reply


Similar Threads Similar Threads
Scatter
03/10/2013 - CO2 Private Server - 1 Replies
Hello pvpers Can someone englighten me here about the scatter issue. When i scatter on huge spawn i get dced.. Heres the code: case 8001: { if (CanUseSpell(spell, attacker.Owner)) {
scatter bug
01/09/2011 - CO2 Private Server - 9 Replies
im using 5165 NewestCoServer source. i fixed the damage bug with regualar archer attacks, but ive been trying to fix the damage bug when they use scatter. at the moment i hit 210kk from people when i scatter. ive tried differrent things to fix this bug now idk what to do. any ideas?
Archer scatter bot
12/13/2009 - CO2 Exploits, Hacks & Tools - 25 Replies
So you guys must be thinking an archer scatter bot. Well its not a bot really the thing is that you use CID and Conquer Clicky both together to make a Archer scatter bot. To Do that 1) Get CID 2) Get Conquer Clicky 3) Start CID and Conquer Clicky 4) Then chose a place which is appropriate for you. (I will go in detail for this) 5) Then turn on auto loot (make sure that !aloot picks up gold) 6) Then turn on right click in Conquer Clicky 7) There we go you have Archer scatter
TG Scatter & Bow LVL
06/02/2008 - CO2 Bots & Macros - 24 Replies
Hello Every1. I think this is my 1 post on this acc ;) and my 1 home made macro :) I dunno if any1 already made a macro for TG scatter+bow lvler, but here is mine hope it will be usefull. U will need: 1. MacroScheduler (google it :D) 2. To have CO 1024- 768 FULL Screen 3. Use PEACE mode in tg 4. Download the Macro (its rar. u will also have the EXE for the macro in it) 5. Have Fun
Scatter With Bot
08/08/2007 - CO2 Guides & Templates - 5 Replies
Um ok I know most people might know this who arent noobs....but i am a noob and i had a few problems with this my self.....after playing around with bot and going through the ReadMe and stuff....i found out how to scatter in bot, which i had a problem with. Just simply set the scatter on an F key (mines is on f2 since u have a choice of how many times you want to click per seconds) and then leave ur acc to bot...and it should scatter if im correct...it did for me and i hope it will help for...



All times are GMT +1. The time now is 03:07.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.