RagnarStats Mod

RagnarStats

RagnarStats is a mod for keeping track of who has got most frags on your server. It will display a list of names of the 10 players with the most frags at the start of every map.

There are two mutators, RagnarStats and RagnarStatsDisplay. Only RagnarStatsDisplay needs to be downloaded by players. The other one should be on the server only.

Read the ReadMe.txt file for more info.

Works with versions: 1.00/1.01/1.02/1.07
Does not work with: 1.04/1.10 (Classic)
Not tested with: 1.08 (should work)

DOWNLOAD:

Rune 1.00-1.02
RagnarStats100.zip

Rune 1.07-1.08
RagnarStats107.zip

Code
RagnarStatsSrc.zip

Rune Classic 1.07 And 1.01 Servers

It is not only possible to play versions 1.01 and 1.07 with Rune Classic, but also to host servers for these versions of the game.

To run a Rune 1.01 server from Rune Classic you need to:

1. Open Rune.ini located in your Rune Classic games System folder
2. Comment out the following lines by putting ‘ or // infront of them:

//ServerPackages=VWCreatures
//ServerPackages=JunModel
//ServerPackages=HallsOfValhalla

3. Rename JunModel.u to OldJunModel.u
4. Rename HallsOfValhalla.u to OldHallsOfValhalla.u
5. Start the server with the following command:

rune.exe DM-Hildir?Listen -VERS=101 -server

That is all! Now you can host a dedicated 1.01 server from you Rune Classic game and people who have normal Rune will be able to join your server! You do not even have to be connected to Steam when you start the server this way.

To run a Rune 1.07 server you would just change -VERS=101 to -VERS=107.

Server Mod CountryFilter

CountryFilter is a server mod which lets you choose which countries can connect to your server. You can block connections from certain countries and allow all others or allow connections from certain countries and block all others. It does not have to be downloaded by players, it should exist only on the server.

DOWNLOAD:

Rune 1.00-1.04
CountryFilter100.zip

Rune 1.07-1.08
CountryFilter107.zip

Code
CountryFilterSrc.zip

The settings can be changed in CountryFilter.ini, to block or allow a certain country just add the country’s two letter code to the correct line. Countries are separated by commas.

The country codes can be found here:

http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2

Example 1:

[CountryFilter.CountryFilter]
BlockedCountries=it,no,fr
AllowedCountries=

Block connections from Italy,Norway and France and allow everything else.

Example 2:

[CountryFilter.CountryFilter]
BlockedCountries=
AllowedCountries=pl

Only allow connections from Poland, block everything else.

You need to have Nephthys server security mod installed for CountryFilter mod to work. It can be downloaded from here for versions 1.01 and 1.07:

http://zzora.altervista.org/Nephthys.html

If you need Nephthys for versions 1.00 or 1.04 leave a comment here and maybe I can help you.

Server Query Tool

Here is a little tool I created to send custom queries to other servers from inside Rune. You can access Server Query Tool from the Mods menu in the game. Only works with versions 1.07 and above.

DOWNLOAD:
ServerQueryTool.zip | ServerQueryToolSrc.zip

With this tool you can get all kind of information from a server:

- which players are on the server
- which mutators the server is using
- what is name of the current map
- information about players on the server
- much, much more…

Read more about which queries you can use here:

http://wiki.beyondunreal.com/Legacy:UT_Server_Query

Some interesting ones are:

\level_property\
\game_property\
\player_property\

As an example, sending \level_property\computername would return the computer name of the server.

\level_property\hour would return the current hour of the server, this way you could get an idea of where the server is located, in which time zone.

\player_property\location would get the location of every player on the server.

As you can see, you can have a lot of fun with this. Just look through the right classes to see which variables you can get. And if you find some interesting queries please leave a comment.

Translating Rune

Have you ever wanted to play Rune in your own language? Well you can, if you are willing to do a little work first.

Rune use the same system as most other Unreal 1 engine games for loading text into the game. Text are stored in normal text files which have an extension based on the language (locale) you are using.

To translate the game, all you need to do is take all the English .int files and translate them, save the files with the correct extension, and then change the language variable in Rune.ini to that of your new language.

1. Extract English text

You already have some of the .int files in the system folder, but not all. To get the English text from the maps you need to use RuneEd to extract them.

Start RuneEd and open the log window (Top Menu->Window->Log), once it is open you can use the command “dumpint” to extract text from the maps. Write the command in the log window like this:

dumpint ragnarvillage.run

That will place a ragnarvillage.int text file in the system folder with all the text from that particular map.

Do this for all maps to get all the English text.

2. Translate

After you have all the English int files you can start translating them. The int files will look something like this:

[GameInfo]
SwitchLevelMessage=Switching Levels
DefaultPlayerName=Player
LeftMessage=" left the game."

Of course you should only translate the things after the “=”. Not the first part, and not the thing between [ and ] either.

When you are done you should save the text files with the correct file extension for you language, a two-letter code followed by a “t”. You can look at this list for the two-letter code for your language:

http://www.science.co.il/language/Codes.asp

So if I made a translation for Japanese, the two-letter code is “jp”, and if I add a “t” the extension for the japanese translation will be “.jpt”. RuneI.jpt, RMenu.jpt, ragnarvillage.jpt and so on.

Polish = pl + t -> .plt
German = de + t -> .det
French = fr + t -> .frt

3. Change the language

To change which language Rune use you open Rune.ini and look for the following line:

[Engine.Engine]
'GameRenderDevice=OpenGLDrv.OpenGLRenderDevice
GameRenderDevice=D3DDrv.D3DRenderDevice
'GameRenderDevice=GlideDrv.GlideRenderDevice
'GameRenderDevice=SoftDrv.SoftwareRenderDevice
AudioDevice=Galaxy.GalaxyAudioSubsystem
NetworkDevice=IpDrv.TcpNetDriver
DemoRecordingDevice=Engine.DemoRecDriver
Console=RMenu.RuneConsole
Language=int

Change it from “int” to your new language code and you are all set. Now the game should load your own texts instead of the old ones.

4. Record new audio (?)

That was all for the translation of the text. Of course it is also possible to make translations of the audio. I have not tried this myself but the audio files that need to translated are these:

CreaturesSnd.uax
VoiceOverSnd.uax

You might have to extract the original .wav files to get an idea of what the sounds should sound like. Then just read the text you have created and record. When you are done recording just import the audio with RuneEd and name the files with language code in the extension:

CreaturesSnd.jpt_uax
VoiceOverSnd.jpt_uax

Yeah, so that is it. You might think it is too much work to translate all of Rune but there really is not much text in the maps, and most of the other int files in the system folder don’t have much text either. I will try to get all the English int files and upload them somewhere and the place a link here later so they don’t need to be extracted.

Edit: Download all English int files HERE.

Note: Rune is already fully translated into English, German, French, Italian, Spanish and Russian. You can get any of these languages when you buy the steam version of Rune.

Remote Web Server Mod

Here is a simple example of how you can send information from a Rune mod to a remote web server.

All you really need is web host that supports php. There are many free web hosts that do this. Try using google.

In this example I am sending the current map and the number of players who are currently playing on the server, then the php script at the remote web server save these variables to a text file, which can be viewed in a normal web browser.

The mod is running as a ServerActor and does not need to be downloaded by players.

DOWNLOAD:
WebServerMod.zip | WebServerModSrc.zip

CODE:

The ServerActor:

// WebServerMod.uc
Class WebServerMod extends Info;

var UBrowserHTTPClient WebCon;
var string WebHost, WebFile;
var int WebPort, WebTimeOut;
var string WebVars;

event PostBeginPlay()
{
	local string MapName;
	local int Players;

	MapName = left(level, instr(level, "."));
	Players = Level.Game.NumPlayers;

	// Would look something like this in a browser:
	// www.website.com/folder/WebServerScript.php?map=DM-Coliseum&players=16
	WebVars = "?map="$MapName$"&players="$Players;

	WebCon = Spawn(Class'UBrowserHTTPClient');
	WebCon.Browse(WebHost, WebFile$WebVars, WebPort, WebTimeOut);

	log("Browse:"$WebHost$WebFile$WebVars$":"$WebPort);
}

DefaultProperties
{
	WebHost="www.website.com"
	WebFile="/folder/WebServerScript.php"
	WebPort=80
	WebTimeOut=5
}

The php script:

// WebServerScript.php
<?php

$MapName = $_REQUEST['map'];
$NumberOfPlayers = $_REQUEST['players'];

$LogFileName = "WebServerMod.log";
$LogFile = fopen($LogFileName, 'w') or die("can't open file");

$NewLine = "\n";

fwrite($LogFile, "Map: ");
fwrite($LogFile, $MapName);

fwrite($LogFile, $NewLine);

fwrite($LogFile, "Players: ");
fwrite($LogFile, $NumberOfPlayers);

fclose($LogFile);
?>

You could use this kind of thing for many many many other things too:

- update server stats
- update players stats
- create player chat system
- player rating of maps on download sites
- …much more, use your imagination

Note: I just realized that this mod sends the amount of players at the beginning of the map, and there might not be any players on the server so early. But it doesn’t matter, it’s just an example, you should still see the map name at least in the text file if you try it.

Disable Chat Messages

Sometimes you might want to play Rune and not be distracted by chat messages. Here is how to disable chat and all other messages at the top of the screen.

1. Remove Message Beep

Disable the sound that is played everytime there is a new chat message by starting the game and going to Options->Audio and un-click “Message Beep”.

2. Download and install a hex editor

You will need to download a hex editor from somewhere for the next step. I would recommend Frhed which is free and open source, can be downloaded from here:

http://sourceforge.net/projects/frhed/files/latest/download

3. Modify RuneI.u

Start Frhed and open the file RuneI.u which is located in the Rune system folder. Press CTRL + G or from the top menu choose “Edit->GoTo…” to open the GoTo window.

When the GoTo window is open enter one of the following into the box:

For Rune 1.00:

x0008deb5

For Rune 1.01:

x00090dfb

For Rune 1.07:

x00091942

Then click Ok.

Now the cursor should have moved to the number “96″, change the number to “97″ and save the file from the top menu.

That is all. Now when you start Rune and anyone write a chat message on any server it will not show up, and you will not hear it either. You can of course still see all the messages if you open the Rune Console.

Installing Rune Linux Demo (Ubuntu 10.04)

Here is how to install the Rune Linux Demo on Ubuntu 10.04:

1. Download the demo installer

http://lokifiles.tuxgames.com/demos/rune/rune-demo.run

2. Extract the files

cd /home/username/Downloads

export _POSIX2_VERSION=199209

./rune-demo.run --keep

You will get some error after that last command, but the installation files should still have been extracted to the folder “rune_demo”.

3. Install the game

cd rune_demo

cp bin/Linux/x86/loki_patch loki_patch

sudo mkdir /usr/local/games/demos

sudo ./loki_patch patch.dat /usr/local/games

At this point you will get another error but the game will be installed.

4. Play the game

cd /usr/local/games/demos/rune_demo

./rune_demo

5. Run a decicated Rune 1.02 Linux Demo server

cd /usr/local/games/demos/rune_demo/System

./ucc server DM-DEMOHel

Classic Server Query (1.0X Server Fix)

For some reason you can’t join Rune 1.00, 1.02 or 1.04 servers with Rune Classic even if you can join 1.01. That is a little weird because all those versions are network compatible.

Anyway, if you want Rune Classic players to be able to join your 1.00, 1.02 or 1.04 server you can install this fix.

DOWNLOAD:
ClassicServerQuery.zip

Put the file “ClassicServerQuery.u” in your Rune system folder.
Open Rune.ini and change:

ServerActors=IpServer.UdpServerQuery
to:
ServerActors=ClassicServerQuery.ClassicServerQuery

Server Demo Recorder

Usually you record demos in Rune by typing the command “demorec” as a player, but it is also possible to record demos directly on a server.

The problem with a demo recorded by a player is that you will not see all players, and sounds will go away or be weird. This will not happen when you record the demo on the server, a server recorded demo will play back everything exactly as it happened.

I made this simple ServerActor which will automatically start recording a demo when there is someone playing on the server, and stop the demo when the server is empty. It does not need to be downloaded by players so don’t add it to ServerPackages, only to ServerActors!

DOWNLOAD:
ServerDemoRecorder.zip | ServerDemoRecorderSrc.zip

Put ServerDemoRecorder.u in System folder, then add to Rune.ini:

ServerActors=ServerDemoRecorder.ServerDemoRecorder

under all other ServerActors=.

Follow

Get every new post delivered to your Inbox.