Guild package, please read!

Open discussion forum. For topics that do not fit anywhere else.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Guild package, please read!

Post by MontuZ »

It's nearing completion and all I need for now is people to test it out, maybe look over the code for any mistakes I may have made.

If you find anything just post it here.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

Anyone looking?

Or am I just that good? 8)

Hehe.
User avatar
tekproxy
Forum Regular
Posts: 352
Joined: Thu Apr 06, 2006 5:11 pm

Post by tekproxy »

I really intend to go through and try and break it, erm, use it as soon as I stop working 10-13 hours a day programming at work. :-D

Is it mostly like OSI? Does it include factions? Did you know there is a tech-demo server that people could get on and start testing? It updates, recompiles and reboots nightly and datafiles are restarted weekly.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

I've been testing what I can on my computer, but it's limited to only 2 guilds, I'm far to lazy to make 20-50 chars and 4-15 guilds, ya know.

But if people could make some on the test server, make guilds, recruite, play around with it, that would help out a lot. I'll eventually log into it and make one.

It's fairly similar to OSI, not 100% though. It has ranks(All osi, including permissions), promoting/demoting, warring/allying and all the other basic guild functions. I still have to add voting for a new guild master.

Factions need to be finished, I think just being able to choose is all that needs to be done for that. Few minutes work there, hopefully.

Guild wars is held off until chrdeath.ecl is run inside of packages. If/when it is I'll make it OSI like. For now they can just war/ally.
User avatar
tekproxy
Forum Regular
Posts: 352
Joined: Thu Apr 06, 2006 5:11 pm

Post by tekproxy »

Until that change is made you could write up the code and put it in the distro. :)
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

Is there a way for the current guildmaster to transfer that position to a new one in the event there is a need to switch guildmasters? That was one thing missing from the old Distro version.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

Yukiko wrote:Is there a way for the current guildmaster to transfer that position to a new one in the event there is a need to switch guildmasters? That was one thing missing from the old Distro version.
I will add that to it.

If any of you have any more suggestions, features you'd like me to add, just tell me and I'll see what I can do for ya.

I made it large so people in the future will notice it. =P
User avatar
tekproxy
Forum Regular
Posts: 352
Joined: Thu Apr 06, 2006 5:11 pm

Post by tekproxy »

If anyone has a shard going and they have some good, smart players who know how to test things and have some free, tell them to hop on the distro tech-demo server Austin is hosting and see what they can find, especially when it comes to guilds. The more players, the more feedback, I reckon.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

And it'll give me motivation to get stuff finished! =D
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

MontuZ,
How complete is the distro GUILD system?
I was about to rip out my old Bishop version of the guild system and put the '097 distro one in, but you tend to put lots of questions in the comments in your code that say it's not finished. So what's working and what's not working and is it likely to get heavily re-worked. I am prepared to spend the time learning and adapting it, but not if you plan a re-write!

Oh, and not everyone runs a client with the GUILD button on the paper doll. Probably need a dot command to see/create guild too.

It does need some sort of removal system too - eg ondelete scripts. Would also need at least 2 gm commands - eg disband guild, and promote member to leader. Old guilds tend to stick around and never get cleaned up so it probably also needs some sort of autopruning system too.

You wanted more ideas? These are just the ones I think it needs right now.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Okay, so I am guessing this won't be finished now.
Has anyone used it to know how much still needs to be done?
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

OldNGrey wrote:
Okay, so I am guessing this won't be finished now.
Why would it not be finished?
Xenawar
New User
Posts: 13
Joined: Thu May 03, 2007 2:23 pm

Post by Xenawar »

Yukiko wrote:OldNGrey wrote:
Okay, so I am guessing this won't be finished now.
Why would it not be finished?
No word for three months?
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

It'll be finished, no idea when though.

It wont get heavily re-worked, I may change how everything is done, like the gumps, but functionality will stay the same, so people will still be able to update and not have to change anything, unless they have custom work in it them selfs.

All things that are done:
Paperdoll Guild button access.
Create your guild.
Remove your guild(guild master only).
Invite members based on your rank.
Remove/Request an alliance with a guild(if no guild master for the guild you're requesting an alliance with is not online, the next time he/she does logon, they will be prompt with your request).
Remove/Request a war with a guild(Works the same as requesting an alliance).
Members can leave guild.
Promoting/Demoting member rank based on your rank is enabled.
Guild charter is setup.
Guild website is setup.
Viewing guild list of all guilds.
Viewing list of guilds that are allies.
Viewing list of guilds that are enemies.
Viewing list of your guild members.
Viewing list of members for a guild.
Guild profiles to request/remove alliances/wars and stats if you have the required rank to do so(NTBD: Will have guild tournaments won/lost and keep track of kills/deaths for that guild).
Profile for guild member, were you can promote/demote/kick view special stats, if you have the required rank to do so.


Need To Be Done:
Factions
Guild Wars, eg - guild war tournament Guild with the most kills after an amount of time, or kills wins.
Selecting a new guild master, either selected by the guild master or by votes.
Removal and cleanup of guilds(Autopruning).
Admin/Dev control of guilds.

Probably some other stuff I'll remember as I test and work on it.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Okay, I've studied the package enough to try it out on my live shard, replacing the one Bishop did.

I will in put a simplified factions creation where you can only set faction at guild creation. The code to check and modify allied/war guilds based on changing factions will come later but hopefully by someone who knows the scripts better! You've written a few functions there that will help.

Haven't looked at the implications of pruning or gm utilities yet. I am not familiar enough with it to even guess how to give ownership to next player in pecking order after a GM character is not online for x days. I doubt character ondelete would be too tough to do though so I might be able to tackle that except for a GM deletion.

One other thing, you have done all the work to enable logging, but you don't actually log anything. Add that to the list of things to finish.

(Must admit, I am afraid of folk who are used to coding the old old gumps system and write the same way in the new GF system. What do I mean? GFGumps allows you to set variables to GFAddButton presses. It really freaks me to still see tests for numbers in the gump return :) )
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

OldnGrey wrote:Must admit, I am afraid of folk who are used to coding the old old gumps system and write the same way in the new GF system. What do I mean? GFGumps allows you to set variables to GFAddButton presses. It really freaks me to still see tests for numbers in the gump return :)
OldnGrey - Can you show me an example in code? I'm not sure exactly what you're talking about :P AND I fixed a possible bug problem, changed mobile.connected to mobile.ip, mobile.connected still isn't working properly(At least as far as I know with the newest core.).

FYI; I believe Austin added logging, I just found out it existed! lol. When I add in Admin/Dev controls I'll be sure to put logging in to that, but I'm not sure what else I could log for players, other than error reports.

Suggestions on the logging for players? AND AND AND .... :eek: If anyone has any suggestions on how I could make my coding more efficient, please do tell.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Dammit man, I'm not criticizing your code! I am just scared of that old gump stuff. And I was thrilled to see the first update in the distro code since May 12!

Oh, by the way, are you dead sure about the uopacket.cfg? Since 0xD7 is a generic packet, I am thinking of putting that initial code into pkg\packethooks.

I got nothing when pressing the Guild button. I can't see how it matches the 0xD7 documentation. Just to prove it all, I tried this which appears to work (for guild button at least):

Code: Select all

Packet 0xD7
{
	Length variable
	SubCommandOffset 8
	SubCommandLength 1
}

SubPacket 0xD7
{
	SubCommandID 0x28
	ReceiveFunction	:playerguilds:hook/guildButton:GuildButtonHook
}

SubPacket 0xD7
{
	SubCommandID 0x32
	ReceiveFunction	:playerguilds:hook/guildButton:QuestButtonHook
}
It's gotta be shared with the combat book and one day the housing package.

Ah, an example of gumpiness then for your amusement!

Original gump style would be to have:

Code: Select all

GFAddButton(gump, 125, 113, 2117, 2118, GF_CLOSE_BTN, 8);
And then in the return you go:

Code: Select all

case (result[0] )
  8: ShowGuilds(character);

My way to code this stuff (because it makes a bunch more sense to me anyway) would be:

Code: Select all

var shguild := GFAddButton(gump, 125, 113, 2117, 2118, GF_CLOSE_BTN);
And then in the return:

Code: Select all

case (result[0] )
  shguild: ShowGuilds(character);
Big deal? Then code GFRadioButton this way and notice how nice the results are to extract.

Just to further frustrate you - you have another bug in ranks.inc in the SetGuildRank function. The way it's set now, the creater is not given a Guild_Rank cprop. Look for the "<<" and ">>".
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

I might try to use gumps that way here in a little.

*Fixed the << >> thingy, missed that one. I'll commit changes when I do more work on it.

And I'll change the way the packet's handled, I knew it would soon grow into an issue.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Is it normal for a change of faction to remove ALL allies and enemies or leaving enemies if it's still a different faction? I am writing this bit now but don't know the convention.

What sort of voting for new leader system are you suggesting? Would you have it activate at "member" logon or use Austin's mail system? I've been putting lots of things through the mail system lately (and a 30 day mail prune too keeps it tidy for all those prople who never bother to read them).

It's a lot of fun doing guilds! A pity my code isn't up to distro standard. However, I am happy to send you the changes I've done in case it helps you at all.
Last edited by OldnGrey on Wed Jul 04, 2007 6:43 pm, edited 1 time in total.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Some assistance from anyone who knows the conventions please.....

What is the definition of an opposing faction?

The way the distro is written:
If you are order, an opposing faction is chaos but not neutral
If you are chaos, an opposing faction is order but not neutral
However if you are neutral, an opposing faction is chaos and order.

That means an order can request alliance with neutral, but a neutral cannot request alliance with order.

Since I have no clue about the convention, I'd only be guessing.


* I have added an email notification when you remove alliances or war or when changing factions breaks relationship, or when you demote, promote or kick a member.
* Fixed a bug where you could promote or demote members of different guild.
* Fixed a bug where you could promote a guild member to Guild Master.
User avatar
MontuZ
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am

Post by MontuZ »

Thanks for bringing that up OldnGrey. I'll fix the opposing factions thing when I get a chance too.

I meant to have Neutral an opposing faction to Chaos/Order and Chaos/Order shouldn't be able to request an alliance with them. I don't know what I was thinking when I wrote it, lol.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Sorry, my fault. I've been playing with factions too much. Cross that off your list.

As far as actual bugs go, only 2 so far.
* you can promote/demote/remove members from a different guild
* you can promote someone to be another GuildMaster.
Both easily fixed.

I seem to have gotten factions, ondelete and monthly cleanups written without much drama and mailouts to effected guilds with the SendEmail function.
Also I've moved the hook to its own package under packethooks because it's more generic than just guilds.

Now for the one I've been dreading: the "In Vote" bit at logon. :)

By the way, events.inc seems to be redundant.

What has been of most interest in this package is the fact that your style is very easy to follow even if you do use Austin's settings functions.

All my comments here are not so much for you to use what I've written, it's more to get your interest fired up again :)
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

I've finished the player guilds package, including autopruning of members and guilds, voting, factions, changing titles etc. It makes extensive use of logging and the Distro's email package.

But I can't post it in the scripts forum because it's not allowing any attachments.

If you are interested, let me know. Feel free to get it and tear it apart - it might help you finish the real distro package a bit faster.

Mine is not a drop in for the distro because I use my own logging (096 distro actually) and use the title_guild for other things too, but it's pretty much compatible.
User avatar
ncrsn
Grandmaster Poster
Posts: 255
Joined: Fri Feb 10, 2006 12:15 am

Post by ncrsn »

Can't wait.

We are currently using somewhat tuned guild package from D95 and it's quite... Outdated. I have started scripting a new version several times but never really got it done, so I'm really looking forward for this.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

If you mean Bishop's guildstone package, then I have been using that too.

Part of the autocleanup is to look for guilds using the guildstone system and remove members and guilds. (My itemdesc.cfg contains blanks for the old guildstone and guilddeed so you can disable the old package entirely.)

For a long time I was toying with the Guildstone package to update it to 097, but it had 2 hurdles - it was written in the first version of GFGumps, plus I had already decided to use as much of the 097 distro as possible. So my challenge was to take MontuZ's guild system and finish it. I hope MontuZ does finish it and I'd be honoured if my version helped in any way.
Locked