[CF-Devel] Housing

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Sat Jun 21 00:02:42 CDT 2003


Todd Mitchell wrote:

>
     
     
     >
     
      Players will purchase a housing blueprint representing a certain type of 
     
     >
     
      building (there will of course have to be an arch for each type of 
     
     >
     
      building availabe to be built containing the building information, the 
     
     >
     
      type of structure, the exit arch, a description, the price, the zone...) 
     
     >
     
      for an awful lot of money. Players will take the blueprint to the zoned 
     
     >
     
      tile they want to build on and activate it - it will turn into a 
     
     >
     
      building arch (unique) of the appropriate type, a set of maps will be 
     
     >
     
      created from templates in 
     
     >
     
      /var/crossfire/maps/buildings/<playername>/<building_type>/.
     
     
  If you end up using a non standard map path, more work would need to be done. 
  The current code has specific rules for how it determines the path to map 
files - I'll comment more on that below.


>
     
     
     >
     
      Now as far as i am told if I create a building arch (name bob's house, 
     
     >
     
      slaying /buildings/bob/house/house), set this building arch on the map 
     
     >
     
      and flag it unique it will stay there...written to unique-items. The 
     
     >
     
      whole thing hinges on being able to do this. So I hope it's true or that 
     
     >
     
      garbled will make something work for me here if it isn't.
     
     
  if an exit to a map is marked as unique, that creates a _per player_ unique map.

  What does that mean?  It means that the player the created the building can 
enter and leave it just fine.  But no one else could.

  The permanent apartments in scorn are an example of this.  Each player has his 
own unique instance.  If a player quits the game (eg, retires character), the 
unique maps he owns are removed.

  This works for those because the logic is like this:

1) See if we have a copy of that map in the players save directory, if so, use it.
2) IF not, look at the exit path, and use that as the template.

  Now the way you describe it, you'd either get that behavior above (where once 
a deed is bought, everyone has a building there), or the behaviour where the 
player who bought it can enter, but no one else could (because the name is 
mangled so that it can't do #2 above).


  Now the way the existing guild houses work is all the spaces within the guild 
have unique set.  This causes those maps to be available to everyone, yet the 
objects persist.

  I think any way you go, some updated logic to the exit code would be needed - 
simply because the you couldn't really use that same unique item trick - that 
actually causes objects to be merged from the original map to those that are on 
the space.  You can't really do this, because the of naming issues. Eg, if your 
template is 'castle', then once someone has bought that, the naming convention 
would be such that anyone else that bought a castle would get similiar name 
mangling.

  That said, my suggestions:
1) Find some flag or something in the exit object to denote this is a unique 
map, but not a per player unique map.  One could perhaps do something like store 
the player name in the exit path (eg, slaying /buildings/mark/castle).

2) If those maps are supposed to disappear when a player quits/retires, it 
should be stored in the players save directory, instead of creating yet another 
directory that is tied to the player name.



_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list