Posts by red51

    If you're running the server on your local machine, make sure that port port forwarding is still active. As @yahgiggle mentioned, depending on your ISP, you may get a new IP after a given amount of time (usually 24 hours), so if your forwarded ports only take a specific IP into account, it may no longer be valid. Here you can find out if your ports are still forwarded: http://www.yougetsignal.com/tools/open-ports/


    Also make sure that you always run the server by executing the win_startscript.bat, never execute the server.jar file directly (unless you run it from a command prompt).


    About the saving behaviour: The world will be saved every 10 seconds, and it will also be saved when the server shuts down gracefully.

    Are you using the dedicated server files, or do you start a LAN game by pressing the red LAN button? Permissions don't work properly in LAN mode, so it's recommendable to use the dedicated server files instead. Adding her name to the "server.properties" file (to the "admins" key, if you want to put multiple names there, you have to separate them by a semicolon [e.g. admins=yourname;wifename]) should do the trick, as long as "settings_admins_allpermissions" is set to true, she will get full permissions (no need to set up specific group permissions). But remember to restart the server after adding her name to the server.properties file

    Sowas wie ein "Blanko Texturenpack" gibt es leider nicht (kann aber sein dass in der Vergangenheit schonmal irgendwo ein Beispieltexturenpack hochgeladen wurde oder so), allerdings musst du in ein Texturenpack auch nur die Texturen einfügen, die du ersetzen möchtest. Orientieren kannst du dich an den Originaltexturen, welche - wie @Deirdre schon sagt - im RW Ordner unter data/assets zu finden ist (die "textures.jar" kann mit einem Zip-Programm geöffnet werden, daraus erschließt sich auch die Ordnerstruktur, die du einhalten musst).
    Wichtig ist, dass die Formate und Bildgrößen der ersetzenden Texturen mit den Originaltexturen übereinstimmen. Die meisten Texturen liegen mittlerweile im DDS Format vor, was die Sache etwas erschwert, aber es gibt mehrere Programme welche in der Lage sind, DDS Texturen zu öffnen oder zu erstellen.
    Hier gibts ein paar weitere Infos über Texturenpacks: Important notice about Texturepacks

    Do you use the Steam version or the Standalone (from our website)? If you're using the Steam version, maybe post your SteamID (or a link to your Steam profile here), or alternatively send it via PM to me or via email to support@jiw-games.net
    If you're using the Standalone, please post your username ;)

    java.net.BindException: Cannot assign requested address: bind

    It looks like the ports are already in use - is another instance of the server or a LAN session of RW running in the background eventually? Check out the task manager (go to the "Processes" tab) and kill any "java.exe", "javaw.exe" or "risingworld.exe" processes (or alternatively, restart your computer).
    Btw., you're currently using a 32 bit version of Java. If you have a 64 bit operating system, I'd recommend to download and install the 64 bit version of Java

    I mean that I was wondering if it's possible to allow 'Guests' access to create an area with the max size of X blocks.

    Unfortunately that's not possible, at least it's not possible with the current version of the AreaProtection script :(
    But we can add a method to the new plugin API which restricts the max size of an area - so maybe the upcoming AreaProtection plugin (or any community solution for that) could take it into account.

    It's most likely caused by the & character, it's a special character which needs to be escaped (replace it with "&"), so the link should look like this: hostingmasters.co.uk/clientarea/cart.php?a=confproduct&i=0


    If it still does not work, please post the full xml here (or alternatively send it via PM) ;)

    Well, actually all sounds are working, however, the Player.playGameSound(String soundname) method (which does not take a position parameter) does not work as intended: it is supposed to use the current player position, instead if does not use a position at all (so the sound plays at position 0 0 0). This will be fixed with the next update, in the meantime, just use the Player.playGameSound(String soundname, Vector3f position) method instead ;)
    But this only works for sound effects, you can't play music that way.


    Btw, also take into account that most sounds have a limited number of playing instances (this is only relevant as long as the sound is actually playing - unless it's a loop sound, it will be released automatically after playing).


    About a "killAllSounds()" method, basically we could implement it, but it's getting problematic when using multiple plugins (since such a method would kill all sounds). I think it's better if you just keep a reference to your sound id (it's anyway only necessary for loop sounds)

    To accomplish this, we need to know the position of a player's face on the screen

    The head has a fixed offset, so it's not a problem to calculate it from the existing player position. Although this offset may change when the new playermodels are implemented... maybe we will add a "getHeadPosition()" or something like that for reasons of convenience ;)


    I guess additional player methods needed would be something to get the distance between two players so we can determine whether the other person is within "hearing" range.

    As @Miwarre said, you can already calculate the distance between two players. The "getPosition()" method returns a Vector3f, which has built-in methods to get the distance or the squared distance (to avoid the square root, as @Miwarre mentioned). So you could do something like:


    Originally this "double tap F2 to return to the surface" was implemented for servers which have fly mode disabled. The intention was to have a way to return to the surface when falling through the ground ^^

    Well, a chunk is not as tall as the world, right?

    Indeed, a chunks consists of 16x64x16 (xyz) blocks, the world consists of 19 chunks (vertically)


    Maybe a chunk value "hasDungeon" can be set in each chunk where a dungeon is generated into

    Yes, that would work, however, it would be necessary to convert existing worlds (since current databases don't take such a flag into account yet), and I really want to avoid world conversions if possible (since there is always a chance that something may go wrong) :D I'm not sure if the "findbase" command is really worth the effort...
    However, if someone decides to setup his base in a dungeon (or maybe in an abandoned cabin in the woods, which is also considered as a "dungeon"), the "findbase" command would be unable to find it if we really use a "hasDungeon" flag :|


    I figure the dungeon is going to be subtracting stone anways for each chunk it exists in as the world generates so maybe that can be set and then be viewable by the API

    Yes, at least underground dungeons. But what do you mean exactly with "can be set and be viewable by the API"?

    Makes sense :) With the next update, the "onEnable()" method will be called after all plugins have been loaded. To be on the safe side, we will also add an overridable "onLoad()" method, which will be called once the plugin is loaded (although in most cases you probably don't need the "onLoad()" method, since nearly all initialization stuff can still be done on the "onEnable()" method - for that reason, "onLoad()" will be non abstract, so your plugins don't have to override it)

    Hmm yeah the dungeons will be indeed a problem for the "findbase" command, since dungeons just consist of regular blocks, construction elements, objects etc. Although dungeons never consist of very much blocks or construction elements per chunk, so unless you just had a small base, I guess it's still possible to find it with the "findbase" command.
    Nevertheless, I guess it makes sense to modify the findbase command a little bit, so you can look for certain objects, for example.


    But something like " ownership" of objects is planned, this would be quite useful for stuff like the AreaProtection script/plugin, for example

    Well, converting a resource to a file is tricky. Basically the file doesn't really exist, since it's part of the jar (the OS treats the jar as a single file).
    Usually you would load a resource by using the getResourceAsStream(), which returns an InputStream. However, unfortunately there is currently no way to turn it into an "ImageInformation" or "ModelInformation" object (well, ofc you could store your resource as a file, and then load the file, but that's crap).


    I guess we will add a new constructor to ImageInformation/ModelInformation which accepts an InputStream. Maybe we will also add a convenient way to load a resource directly. I hope we get that ready for the next update ;)

    Well, the server performance doesn't suffer very much from posters. Only thing you have to keep in mind is the used bandwith when a client downloads an image. A client only downloads images which are in his proximity, and only if there isn't already a cached version of the image in his game directory.


    However, when it comes to the clientside performance, things are getting more critical: Basically every "visible" image has to be loaded into the player's RAM (direct memory) and VRAM. If there are too many different images close to each other, some players (who don't have that much RAM) may run out of memory. Here it's important to limit the maximum image size per user (you can do that in the permissions). You have to keep in mind that a 1024x1024 px image consumes 4 times more memory than a 512x512 image, for example. So having many small images isn't a big deal (e.g. having 1000 32x32 px images consumes less memory than a single 1024x1024 px image), but it becomes a problem when using many big images.


    To cut a long story short: Don't worry too much about posters, it really depends on where those images were placed (if a player has a lonely house far away from everything else it's really not a problem when he uses many images), and also the max image size matters.


    Btw, the file size on your harddrive does only matter when it comes to the bandwith. When loading an image into memory, we can't use compression yet (due to patent reasons), so the memory consumption per images is much higher than the actual file size (it's basically like storing a .bmp image).