From: Brendan L. <bre...@gm...> - 2010-05-14 17:12:53
|
On Tue, 27 Apr 2010 12:27:38 +0100 Brendan Lally <bre...@gm...> wrote: > http://wiki.metalforge.net/doku.php/user:cavesomething:questification > Over the next couple of days, the quests with the status of 'Needs > playtesting' will be given SVN commit numbers. (with the exception of > the scorn nobility quests, which might take a little longer)*. I committed the updates to the scorn nobility quests last night. I've tried to keep the style of the quests as close as possible, there are some cases where I have added additional characters, to spread out the rate at which information is provided to the player. There are a lot of maps and NPCs involved in these quests, so there may be bugs I have missed. Please report them if you find them. > After these quests are in, there probably needs to be a discussion > about how long to preserve quest compatibility with the 1.50 server. > While 20-odd quest definitions in a single file is too many to be > comfortable, it is still (just about) manageable, once there are > 30,40,50 quests in the one file, it will get very messy. One thing I haven't done here is update default.quests. I could do, but the number of quests now is such that that's starting to get ugly to maintain - I know Nicolas is working on another quest at the moment, and that will be the 30th in the default mapset. > *The scorn nobility quests are currently implemented using markers > against a player, in order to transition over to the quest-based > tracking, it will be necessary to create quest entries for players who > have already done part of the quests. because of the inter-dependancy > of these quests they are also candidates for having 'parents' added to > them, which will break compatibility with 1.50 servers. > If you are running a big (lots of players) server against the SVN > mapset, then be careful with this. In order to convert existing player files over, the bash script below should work: It is assumed that this is run from an existing server install from the /var/crossfire/players directory. This works fine for me when I was testing it, but I would strongly advise any server admins to back up their player files before using this. Final question, should this be in the SVN repository? it is something of use once, when a server is updated past a certain revision, but never again after that. Brendan #!/bin/bash PLAYERDIRS="*" for playerdir in $PLAYERDIRS do RANK=$(grep "^slaying Noble Rank" $playerdir/$playerdir.pl | cut -d " " -f 4) echo $RANK STEP=0 if [ "$RANK" = "Knight" ] then STEP=10 fi if [ "$RANK" = "Baronet" ] then STEP=20 fi if [ "$RANK" = "Baron" ] then STEP=30 fi if [ "$RANK" = "Earl" ] then STEP=40 fi if [ "$RANK" = "Marquis" ] then STEP=50 fi if [ "$RANK" = "Count" ] then STEP=60 fi if [ "$RANK" = "Duke" ] then STEP=70 fi if [ "$RANK" = "Archduke" ] then STEP=80 fi if [ "$RANK" = "Prince" ] then STEP=90 fi #echo $STEP COMPLETED=0 if [ $STEP -eq 90 ] then COMPLETED=1 fi if [ $STEP -ne 0 ] then if [ !$(grep -q "scorn/Aristocracy" $playerdir/$playerdir.quest) ] then echo "WARNING: Player $playerdir Already has a quest state for aristocracy quest" else echo "quest scorn/Aristocracy" >> $playerdir/$playerdir.quest echo "state $STEP" >> $playerdir/$playerdir.quest echo "completed $COMPLETED" >> $playerdir/$playerdir.quest echo "end_quest" >> $playerdir/$playerdir.quest fi fi done |