PenUltima Online Forum Index Official Core: 096.7
Official Core: 097 2008-02-26
Donate towards the POL web hosting bill!
 POL Home   FAQ   Search    Memberlist   Usergroups    Register    Profile   Log in to check your private messages   Log in
Party System
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    PenUltima Online Forum Index -> Custom Script Releases
Display posts from previous:   

Author Message
Pierce



Joined: 02 Feb 2006
Posts: 259

PostPosted: Mon May 15, 2006 4:34 pm    Post subject: Reply with quote

Quote:

It sounds like the party prop is not being cleared off of players or something strange is happening to make that loop happen more than 100 times, which should never happen. Normally I put sleepms(2); in my loops but that loop should never iterate more than 10 times... If you find out more about that problem, let me know. I plan to go through all of this code and make the messages more OSI-like and implement a few new things I've learned but I'm kind of busy with a lot of other things.

Thanks for your post. I'm glad someone is making use of it.

First of all, great job Tekproxy. The system works. I tried to make some improvements, but they fail. I get the spam on pol.log again even if i use the improved script. I don't think the party prop is the problem. The packets are sent too often even if it is only a 2 member party. Perhaps the devs can do that as core commands. Don't know if that helps. If i have more time i will take a deeper look, perhaps someone else finds a solution meanwhile.

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Wed May 17, 2006 5:08 pm    Post subject: Reply with quote

Thanks. Smile I found the problem and a bunch of other bugs and I'm uploading the new version now.

Author Message
Harley



Joined: 18 Mar 2006
Posts: 92
Location: World Earth

PostPosted: Sun Jun 18, 2006 3:59 am    Post subject: Reply with quote

Hm, I have compiled thoose scripts, and when I started server, he tell me some error. Look please:

Code:
INSTALLING: Party Status Update PH...
INSTALLING: Party System PH...
Error reading configuration file pkg/opt/packetHooks/PartySystem//uopacket.cfg:
   Parent packet 0xbf does not define SubCommandOffset!
   Element: SubPacket 0xBF, found on line 13
Server Shutdown: loading packet hooks
Execution aborted due to: Configuration file error


Tell me please, how fix this gluk? Smile

Author Message
qrak



Joined: 05 Feb 2006
Posts: 160
Location: Poland

PostPosted: Sun Jun 18, 2006 11:23 am    Post subject: Reply with quote

by thinking Wink

Author Message
Harley



Joined: 18 Mar 2006
Posts: 92
Location: World Earth

PostPosted: Sun Jun 18, 2006 2:47 pm    Post subject: Reply with quote

qrak wrote:
by thinking Wink


It already so answer problems? Thanks... :\ Confused

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Tue Jun 20, 2006 2:13 pm    Post subject: Reply with quote

In the distro, packet 0xBF is already defined properly, and 0xBF is a fairly common packet to hook, so I didn't bother defining it in this package. I'lll fix the readme when I'm not lagging so much.

From your error, it seems you already have 0xBF defined but it is missing the SubCommandOffset. Search your uopacket.cfg files and find the one that defines 0xBF and make sure it looks something like this:
Code:
Packet 0xBF
{
  Length variable
  SubCommandOffset 4
  SubCommandLength 1
}


If you don't have 0xBF already defined, add that code to uopacket.cfg in the PartySystem package.

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Fri Jun 30, 2006 1:39 pm    Post subject: Reply with quote

Uploaded a new version.

Author Message
Repsak



Joined: 05 Feb 2006
Posts: 91
Location: Denmark

PostPosted: Mon Aug 14, 2006 7:47 pm    Post subject: Reply with quote

I just downloaded you party system, and I noticed that every time a client declined an invitation (eigher by /decline or the 10 seconds automatic decline) the invited client would freeze.
I tracked down the problem to this code:
Code:

   var packet := CreatePacket(MSGTYPE_PARTY, 11);
   packet.SetInt16(OFFSET_PARTY_SUBCMD, SUBCMD_PARTY); // Set subcmd to Party
   packet.SetInt8(OFFSET_PARTY_SUBSUBCMD, 2); // Set subsubcmd to Remove
   packet.SetInt8(OFFSET_PARTY_REMOVE_NEWSIZE, 0); // Set 0 party size
   packet.SetInt32(OFFSET_PARTY_REMOVE_PLAYERID, invitee.serial); // Set removed player's serial
   packet.Set16(OFFSET_PARTY_MSGLEN, packet.GetSize()); // Set packet length
   packet.SendPacket(invitee);


After some testing I found that if I replaced the code, with

Code:
        // Send remove packet
        SendRemovePacket(invitee, invitee.serial);

The problem would be fixed.
I did ofcourse move the SendRemovePacket function to a shared .inc before I could compile handlePartyDecline.

Im running pol96.1 using latest clients.

Bug?

PS. I noticed that the 'CoreRequired' was set to 97 in the original pkg.cfg, and I of course had to change it to 96. Not sure if it has anything do with this.

Author Message
Repsak



Joined: 05 Feb 2006
Posts: 91
Location: Denmark

PostPosted: Tue Aug 15, 2006 5:24 am    Post subject: Reply with quote

Another problem seem to be when a client send a party message.
Insted of [Repsak:] Hello buddy
it send:
[Repsak:] [123, 23, 45, 45, 35, 67 etc] (This is just an ex)

To fix this, I removed:
Code:

   if ( Lower(TypeOf(targ)) == "array" )
      message := CAscZ(message);
   endif

in function SendPartymessage()

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Wed Aug 23, 2006 5:28 pm    Post subject: Reply with quote

Thank you kindly for reporting these bugs. I moved a lot of code around and tried to optimize it as much as possible so there would be as little duplicated code as possible and to make it more friendly for others to read and understand. I think with the /decline thing I tested it and it worked but I didn't notice that a few seconds later the client would crash and I just closed it and then I only tested private messages and not normal chat! By the way your fixes were correct.

Oh it should work with 096. I was just a little paranoid since I'm so used to 097 and I think for a time it did require 097 for some small things but it doesn't anymore. I'm not sure. I changed the core required to 096 (which I'm fairly sure it does require at least 096). If it works ok for you let me know. Smile

Author Message
Repsak



Joined: 05 Feb 2006
Posts: 91
Location: Denmark

PostPosted: Thu Aug 24, 2006 1:25 pm    Post subject: Reply with quote

Thanks, he is a few more bug reports (and fixed when I was able):

BUG1: P1 send an invitation to P2. When P2 declines(either automatic or /decline), he is informed that “You notify them that you do not wish to join the part.” But no message it send to P1/the party.

BUG2: P1 and P2 has formed a party. P1 click ‘add member’ and select P3, but P1 is informed right away that “This person is already in a party!”. This seem to be due
From HandlePartyAdd line 45:

Code:

   elseif ( targ.acctname )
      if ( targ.serial == character.serial )
         SendSysMessage(character, "You cannot add yourself to a party.");
         return 0;
      elseif ( GetObjProperty(targ, PARTY_JOINING_PROP) )
         SendSysMessage(character, "That person is already considering joining a party.");
         return 0;
      elseif ( party )
         if ( targ.serial in (party) )
            SendSysMessage(character, "This person is already in your party!");
         else
            SendSysMessage(character, "This person is already in a party!");
         endif
         return 0;
      endif
   endif

A suggestion to fix it would be:
Code:

   elseif ( targ.acctname )
      if ( targ.serial == character.serial )
         SendSysMessage(character, "You cannot add yourself to a party.");
         return 0;
      elseif ( GetObjProperty(targ, PARTY_JOINING_PROP) )
         SendSysMessage(character, "That person is already considering joining a party.");
         return 0;
      elseif ( party )
         if ( targ.serial in (party) )
            SendSysMessage(character, "This person is already in your party!");
                                return 0;
         elseif(GetObjProperty(targ, PARTY_PROP))
            SendSysMessage(character, "This person is already in a party!");
                                return 0;
         endif
         
      endif
   endif



BUG3: With the fix in bug 2, I was able for form a part containing 3 members (P1, P2 and P3). P1 is the leader of the party. Now P2 desides to leave the party, so he click 'Leave the party. Now his party manifest is updated correct and #Party prop is removed. The problem is that the party manifest gump for P1 and P3 are also updated, but it look like the part is resolved, yet they still have #Party prop, only containing there 2 serials.
So when someone leaves a party containing more then 3 members, the party is semi resolved (and a relog on required to fix the party manifest), but the #Party prop is handled correct on all 3 members.
I was not able to fix it, but the problems seem to be that the remaining clients do not recieve the correct packet from the shard.

BUG4: This is a minor one, but still a bug. P1 invites P2. P2 wait for the auto decline, and the type /accept. He is then told "You have not been invited to a party." as it should, but right after he also recieves the message "You have chosen to prevent your party from looting your corpse". This last message should not be send, since he never joined a party (he did'nt even have an invitation when he ysed /accept)

That is all for now, ill await another release and continue my testing when it does. Keep up the good work.

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Thu Aug 24, 2006 2:33 pm    Post subject: Reply with quote

I'm not sure how I missed all of these. I tested all of this stuff and now it's broken. Wahh. Ok, fixing now...

[edit]
Ok fixed the first two bugs. The third looks like the packets are not formed correctly. The fourth bug has to do with looting, but that text about "You've chosen bla bla." is handled entirely by the client. I'll have to check if I am not forming the packet correctly.

Author Message
Repsak



Joined: 05 Feb 2006
Posts: 91
Location: Denmark

PostPosted: Thu Aug 24, 2006 2:59 pm    Post subject: Reply with quote

Thats what I call fast responce.
Let me/us know when you make a release, and ill start the testing right away.

Author Message
tekproxy
Distro Developer


Joined: 06 Apr 2006
Posts: 350
Location: Nederland, Texas

PostPosted: Thu Aug 24, 2006 5:23 pm    Post subject: Reply with quote

Ok fixed the first three bugs and tested it. The fourth one I mention in the readme and I don't think I'll be able to fix that without some time or some packet logs. Thanks for testing it and lemme know if I messed something up.

Author Message
Repsak



Joined: 05 Feb 2006
Posts: 91
Location: Denmark

PostPosted: Thu Aug 24, 2006 5:49 pm    Post subject: Reply with quote

Fast worker.
Ill start testing tomorrow. Smile

Post new topic   Reply to topic    PenUltima Online Forum Index -> Custom Script Releases All times are GMT - 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 




Powered by phpBB © 2001, 2005 phpBB Group :: Theme & Graphics by GHS & Scott E. Royalty