Skip to content

map instance & tile manipulation

Hi,

Don't have high expectation on this but would it be possible to get a way to make map instances in the future (a "model" map that could be loaded as individual instances server side for dungeons/housing)?

Would it be possible to get the option to replace a tile on a map by an other one from the same tileset on the fly / at next map load by the players (maybe option to force reload map on player side with a script function, not just a visual effect like tile magic but an actual tile change with collisions and door support... that would be setup kinda like tile magic via script)

I know it's asking a lot but who ask nothing get nothing o:)

Comments

  • TheGmorkTheGmork Member Posts: 37
    There is a NWNX function that lets you instance an area. Not sure if it will work with EE's NWNX but it should
  • SteauxbackSteauxback Member Posts: 10
    Cool! I will take a look at that.
  • thirdmousethirdmouse Member Posts: 67
    You'll actually be able to do area instancing in the base game, without need for NWNX.
  • TheGmorkTheGmork Member Posts: 37

    You'll actually be able to do area instancing in the base game, without need for NWNX.

    Where did you hear this? Do you have a link to the info?
  • BalanorBalanor Member Posts: 176
    It was just added in the latest build on Friday. The Neverwinter Nights Enhanced Edition (v74).txt file has the details if you have EE downloaded. Here is the info from it regarding the area instancing functions -
    * object CreateArea(string sResRef, string sNewTag = "", string sNewName = "");
    Instances a new area from the given resref, which needs to be a existing module area.
    Will optionally set a new area tag and displayed name. The new area is accessible
    immediately, but initialisation scripts for the area and all contained creatures will only
    run after the current script finishes (so you can clean up objects before returning).
    Returns the new area, or OBJECT_INVALID on failure.
    Note: When spawning a second instance of a existing area, you will have to manually
          adjust all transitions (doors, triggers) with the relevant script commands,
          or players might end up in the wrong area.
    
    * int DestroyArea(object oArea);
    Destroys the given area object and everything in it.
    Return values:
       0: Object not an area or invalid.
      -1: Area contains spawn location and removal would leave module without entrypoint.
      -2: Players in area.
       1: Area destroyed successfully.
    
    object CopyArea(object oArea);
    Creates a copy of a existing area, including everything inside of it (except players).
    Returns the new area, or OBJECT_INVALID on error.
    Note: You will have to manually adjust all transitions (doors, triggers) with the
          relevant script commands, or players might end up in the wrong area.
    
    * object GetFirstArea();
    Returns the first area in the module.
    
    * object GetNextArea();
    Returns the next area in the module (after GetFirstArea), or OBJECT_INVALID if no more
    areas are loaded.
    
    * void SetTransitionTarget(object oTransition, object oTarget);
    Sets the transition target for oTransition.
    - oTransition can be any valid game object, except areas.
    - oTarget can be any valid game object with a location, or OBJECT_INVALID (to unlink).
    - Rebinding a transition will NOT change the other end of the transition; for example,
      with normal doors you will have to do either end separately.
    - Any valid game object can hold a transition target, but only some are used by the game engine
      (doors and triggers). This might change in the future. You can still set and query them for
      other game objects from nwscript.
    - Transition target objects are cached: The toolset-configured destination tag is
      used for a lookup only once, at first use. Thus, attempting to use SetTag() to change the
      destination for a transition will not work in a predictable fashion.
  • SteauxbackSteauxback Member Posts: 10
    This is fantastic!

    I can't wait to see other new functionalities that we will get thanks to Beamdog!!!

    (And to changes the tiles is there a little possibility or it's really asking too much to the engine and I a dreaming too much?)
  • FreshLemonBunFreshLemonBun Member Posts: 909
    Tile manipulation and importing external areas from erfs works with 1.69 NWNX servers so hopefully Beamdog will make that a standard too.
  • SteauxbackSteauxback Member Posts: 10
    We are living wonderful times! :D:D:D
Sign In or Register to comment.