[Arena]Avatars

01/28/2011 14:02 Sp!!ke#1
[Only registered and activated users can see links. Click Here To Register...]

I send
Code:
uint.Parse(client.Entity.Face.ToString() + client.Entity.Body.ToString());
but not work at all avatars...
01/28/2011 14:24 pro4never#2
Sounds to me like your packet isn't structure properly.

To show the faces in there you need to make sure you're writing the full mesh (face + body as you are) at the correct offsets. The fact that it works for the first entry but not the ones following it says to me that you have the packet structure wrong.
01/28/2011 14:46 Sp!!ke#3
#deleted by me ! Thanks 12tails...
01/28/2011 15:13 pro4never#4
The structure looks correct but why are you doing Level & 255 and stuff? Just writing the job/level works perfectly fine.

I would worry more about how your loop is running things..

Also you have the issue of that you're hard coding the arena count (offset 4) yet allowing it to sometimes do an unfixed count.

I'd just run through all your offsets again, make sure your loops are correct and then double check the avatar values you are writing... Everything in theory looks ok but it's obviously not or it would be working.

I'm really confused why you are doing a foreach loop... then a for loop...

Just pull your top 10 ranks on server load by whatever methods you want and then write them to the packet...

I'd suggest hard coding the packet for testing purposes (that way you don't need to worry about any errors with loading ranks or w/e. just see if you can get it to display all 10 entries)
01/28/2011 15:25 12tails#5
just for simple toughts...

Code:
                if (client.Rank == i2)
                        {
                            if (i2 == 10)
                                break;
make just if i2 < 11... maybe its better

make differents collections like this:

Code:
        public static Dictionary<uint, Ranking> Top1000 = new Dictionary<uint, Ranking>();
        public static Dictionary<uint, Groups> Fighters = new Dictionary<uint, Groups>();
        public static Dictionary<uint, Groups> Counting = new Dictionary<uint, Groups>();
        public static Dictionary<uint, GameState> Signed = new Dictionary<uint, GameState>();
        public static Dictionary<uint, GameState> A = new Dictionary<uint, GameState>();
        public static Dictionary<uint, GameState> B = new Dictionary<uint, GameState>();
        public static Counter GroupID = new Counter(9999);
        public static Timer ArenaTimer;
        public static TimerCallback ArenaCallBack;
make each one with a single function.... will get it working better and faster witouth problems...

^^

//EDIT: and for structure... with patch is that?? 5180??
01/28/2011 16:29 Sp!!ke#6
#request close problem solved ! thanks leo