ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/python/guilds/README.txt
Revision: 1.1.1.1 (vendor branch)
Committed: Sun Feb 5 00:02:09 2006 UTC (18 years, 3 months ago) by root
Content type: text/plain
Branch: UPSTREAM, MAIN
CVS Tags: post_fixaltar, last_stable, post_fixaltar2, rel-2_82, rel-2_81, rel-2_80, pre_coinconvert, UPSTREAM_2006_03_15, rel-3_0, rel-2_6, rel-2_7, rel-2_4, rel-2_5, rel-2_2, rel-2_0, rel-2_1, rel-2_72, rel-2_73, rel-2_71, rel-2_76, rel-2_77, rel-2_74, rel-2_75, rel-2_54, rel-2_55, rel-2_56, rel-2_79, UPSTREAM_2006_02_01, rel-2_53, pre_material_cfarch_normalize_run, rel-2_32, pre_fixconverter, post_coinconvert, pre_fixaltar2, pre_map_rename, UPSTREAM_2006_02_22, rel-2_90, rel-2_92, rel-2_93, rel-2_78, post_fixconverter, pre_fixaltar, rel-2_61, rel-2_43, rel-2_42, rel-2_41, HEAD
Changes since 1.1: +0 -0 lines
Log Message:
Initial Import

File Contents

# Content
1 Python Guilds
2
3 Quick outline
4
5 Add a guild (mapmakers): To add a guild copy the guild maps from the templates/guild folder, change the exit to the world on mainfloor, find and replace GUILD_TEMPLATE in the maps with the name of your guild and add the guild name to the templates/guild/GuildList file (one guild name per line).
6
7 Buy a guild (players): Find an inactive guild and say buy (Guardian will tell you if the guild is inactive or not). You will need three players and 5000 imperials to purchase a guild.
8
9 Manage a guild (players): Use the Guild Oracle in the guild HQ. Only GMs can enter here. You can remove members, change their status (good, probation or suspended), promote ore demote members or get info on members or a member.
10
11 Manage a guild (DMs): use the Guild Oracle to change the status of the guild (probation, suspended, good, inactive). DMs can also add members to the guild or use the GM guild functions but SHOULD NOT in most cases.
12
13 Join a guild(players): Player enters Hall of joining and sits in chair of peril. a GM must pull the 'lock' lever to secure the player, then the 'load' lever to have them join the guild. You cannot join a guild if you belong to a guild already.
14
15 Pay Dues(players): Paying Dues and doing guild quests are the way to get noticed and promoted in your guild. Differnet guilds have different requirements but all gain status by having members generating dues and quest points.
16
17 QuestPoints(mapmakers): put a call to the appropriate guildquest script (currently only guild_questpoints_apply.py but a 'say' script coming soon...) to give guild quest points in your maps. In the plugin options you will have to specify the number of points to be given. They should be appropriate to the task. Quests giving points should not be easily repeatable and should try to avoid things like players camping or knowledge based access (don't use hidden or password activated only).
18
19
20 ########################
21 Brief history of development
22
23 Update 05-12-04
24
25 Uploaded guild package to CVS.
26 Changes - the cauldrons and the charging room I spent a while agonizing over. They were natural guild enhancements but much too much value for any reasonable expense to buy them. Then I thought that they should be pay access but at a greatly reduced rate. SO when you buy a forge or whatever for your guild it is available on a perplayer daily rate of 50pl (compared to 200pl for access in Scorn). This is I think a good comprimise. The charging room should work the same way but be more expensive (?). Changing this in the maps took me some time so I didn't get a chance to test all the connects yet however. I still wanted to get the maps and scripts in to CVS so they could be versioned.
27 The other change was to the storage house. I basically removed the seperate storage house and added member 'lounges' for all the different guild member ranks above the first (Initiate) - Ryo's building system will get more use this way and players will have another reward for advancement. - a custom lounge. There are no links to the lounges from the main guild maps yet.
28
29 Update 04-11-30
30
31 As soon as I write the DM command script and double check my names I will commit this to CVS. I'm adding the scripts under /python naturally and will commit a folder called templates/guild - the guilds will still not be in the game unless the admin puts them in, but it will be accessable for testing and to DMs to play with. Like I said lots still to do with the maps, especially comingt up with quest items for buying things like the new workshops and stuff.
32
33 One of the things I would like some input on would be proposals for additional fields for either the guildhouses or guild datafiles to play with.
34
35 Currently the Guildhouse is:
36
37 NAME | FOUNDED_DATE | POINTS | STATUS
38
39 of which only points is really used for game play (the rest are administrative) . Points is directly updated when guild members pay dues - this was to pull money out of the economy, but there is no reason we can't have more than one measure of a guild performance, perhaps have dues relate to 'Dues' and use points for some other reward (DM awards, some other measure?) Status is set by the DM (probation, suspended or inactive) or when a guild is founded inactive -> active
40
41 Guilds have the format:
42
43 NAME | JOIN_DATE |RANK | STATUS | DUES | DEMERITS
44
45 Which has more measures (Demerits and Rank namely) but which naturally could have more to drive more functions. Basically I see it working that Rank is gained as members pay dues and otherwise do stuff for the guild (the guild would determine how much and what) and that demerits are applied a worked off as a precondition for adbvancement or even palyer status. Status is set by higher ranked players and players can be put on probation or even suspended from the guild for accumulating demerits or other infractions.
46
47 So before this is committed I wouldn't mind a few comments - just don't suggest stuff that is going to require a complete rewrite or anything. Adding a new field is easier now then later when a conversion of existing records would be required.
48
49 Update 04-11-29
50
51 Fixed nasty bug where find_player on square functions crashed server. Fixed up the hall of joining so it works nice (pull Lock to secure member, pull Load to join em up.) The maps still need some work and there are probably more little functions here and there (especially DM toys) but the *basic* code stuff is all done IMHO. You can add guilds, buy guilds, add new members, pay dues administrate... also the plain text format allows for ease of editing.
52 I'm thinking about adding a CFFindPlayerOnSquare() and CFGetDate(), CFGetTime() functions to the python plugin. Useful for mail system, Guild foundings and other python scripts.
53
54 Update 04-11-28
55
56 Added in scripts for guild joining (the chair), and removing player who quit form the guilds they belong to. Renamed guildmember_say to guildoracle.py and fixed some bugs here and there. Made guild board script that displays the points of the guilds in decending order.
57
58 *04-11-28
59
60 more to clean up still, have to write bit that checks if player is already in a guild as well as hook up joingroom chair to a script.
61
62 04-11-27
63
64 Modified the guild entry script so that you can buy a guild on site instead of using a guildhousesinc type building. This should make adding a guild as simple as putting the maps somewhere, making up a name (probably use a script to change the maps...) and adding it to the GuildList file. It also gets rid of keys entirely and ensures that you can't get a guild unless the Python functions are working to run it. Also added in methods for DMs to put a guild on probation or suspension if desired. The current price for one of these new guilds is 5000 imperials (or 1,000,000 platinum) - split among three founders, I think that's fair. This is negotiable (anyone have any ideas on this?) and easily modified naturally.
65
66 Update 04-11-22
67
68 So up late last night making changes to the guild map, basically moving the sleeping area to another floor(unfinished) and making the main room bigger. Put a dues collector in the corner below the GM entry to the HQ. I also got the GuildList thing working so it reads in the list of guild from the map set so that a map maker can add a guild pretty easily without having to touch the server stuff.
69 I added in a status check to the guild entry so that members on probation get a warning and members who are suspended aren't allowed in.
70 Still need to make a guild buying part and work over the guild maps some more.
71 By the end of this weekend I hope I'll have a barebones working package for the code (and map templates) which I could commit to CVS which will make it much easier for us to work with/on. If anyone is working on the guild maps I would like to touch base with them before so that at least the files are named. It's easier to add and edit files than delete or move/rename them in CVS.
72
73
74 Update 04-11-22
75
76 It's been quiet around here so I've been puttering away at things a bit. Wrote scripts for collecting dues and for managing the guild houses. I'm going to propose that a new folder be put into the maps dir called templates where reusable maps can be stored (personal houses, castles, temples...) and one of the subfolders be called 'guilds' which will hold the master guild template and a file (GuildList) which will have a list of all the guilds deployed in the server mapset. The guildhouses scripts read in this file and adds any new guilds if they are added to the file but not in the guild system datafile (easy way to add new guilds to the system). This guildhouse list also holds points for the guilds, a founding date and a status. A few more things to do hopefully before this weekend to manage guild membership - like player quit event and a way to check if a player belongs to a guild when joining (I believe you should only belong to one guild at a time - anyone want to debate?). I am also making some of the guild maps a bit bigger to accommodate more hanging out space (hey CF space is free ...) and to give a place for things like the dues collector and meeting rooms for members of different ranks (like The Journeymans Lounge...).
77
78 Update 04-11-21
79
80 Ok, I've done a bit more work and implemented guild ranks, status and various other gizmos. I changed the list function in CFDataFile to use dictionary keys instead of iteration because python 2.1 does not have dictionary sequence method and as I've said I want to keep crossfire 2.1 compatible (at least till Debian Sarge is mainstream anyway). I've also started on python scripts for buying a guild, a guildhouses info board which will show scores and stuff and a tiny bit of the Dues stuff. I think I would like to place some 'tokens' for some of the bigger guild enhancements (like the kennels, the garden, additional levels...) on the HQ map itself and make them accessable (a scripted lever perhaps) only when a certain number of dues have been paid by the members (many many imperials perhaps?) Naturally other things should be quest items.
81 I noticed that the guild master message board was changed to a second guild controll station and the guild message board in the HQ was changed to a GM message board - perhaps this was a misunderstanding? The GM board is for GM messages and the other is for the regular members. Also the cauldrons on the second floor don't seem to have a way to buy entry anymore. I don't know if the charging room should be key driven because keys are easily lended out and can't be recovered unless the lendee want's to return them, maybe we can use Rank for this (only guildsmen or above get access) or use a permemant maker instead of a key. I also want to do away with the keys altogether and make the code initiate the three guild masters when the guild I bought.
82
83
84
85
86