Palvelin

FreecivFinlandWiki

Loikkaa: valikkoon, hakuun

Tähän on dokumentoitu miten palvelimemme on käännetty ja rulesetit configuroitu.

Sisällysluettelo

Asennuspaketit

Uusin asennuspaketti Debian Squeezelle sisältäen muutokset on osoitteessa <http://www.jhh.me/pub/freeciv/debian/>.

Versiot ja ympäristöt

  • Tiedosto: freeciv-2.3.0.tar.gz
  • Käyttöjärjestelmä: Debian GNU/Linux "Squeeze"

Ruleset muutokset lähdekoodissa

Muutokset löytyvät freeciv-2.1.8-mod.diff.

Killstack 0

Muokataan tiedostoa data/default/game.ruleset:

[combat_rules]
;If killstack is set to 1, each time a defender unit lost in combat, and is
;not inside a city, fortress or airbase, all units in the same tile are
;destroyed along with the defender. This is the freeciv default.
;If this options is set to 0, only the defender unit is destroyed.
killstack               = 0

Kuljetushelikopteri

Lisätään tiedostoon data/default/units.ruleset:

[unit_transport_helicopter]
name          = _("Transport Helicopter")
class         = "Helicopter"
tech_req      = "Combined Arms"
obsolete_by   = "None"
graphic       = "u.helicopter"
graphic_alt   = "-"
sound_move    = "m_helicopter"
sound_move_alt = "m_generic"
sound_fight   = "f_helicopter"
sound_fight_alt = "f_generic"
build_cost    = 100
pop_cost      = 0
attack        = 0
defense       = 3
hitpoints     = 20
firepower     = 1
move_rate     = 6
vision_radius_sq = 8
transport_cap = 1
fuel          = 0
uk_happy      = 1
uk_shield     = 1
uk_food       = 0
uk_gold       = 0
flags         = "BadCityDefender", "OneAttack"
roles         = ""
helptext      = _("\
The Transport Helicopter is a very powerful unit, as it can both fly and
 transport units.  Care must be exercised, because Helicopters lose a\
 small amount of health for every turn not spent in a city, unless\
 you have the United Nations wonder.\
")
  • TODO: Päivitä tämän muutokset muutokset! 2.3.0:lle uusiksi toteutettu.

Game.freeciv.fi / MySQL -integraatio

Palvelimen kääntäminen

$ ./configure --prefix="$HOME"/opt/freeciv-server --enable-auth=yes --enable-client=no --enable-debug=yes --with-mysql-prefix=/usr --with-readline
$ make
$ make install

Tietokannan luominen

Pelin käynnistäminen

$ mkdir games/201109
$ cd games/201109

Asetukset tiedostoon game.serv:

rulesetdir
rfcstyle
normal
set size 9
set topology 3
set generator 2
set startpos 3
set tinyisles 1
set startunits ccwwx
set saveturns 1
set separatepoles 0
set techpenalty 0
set dispersion 3
set timeout 86400

Käynnistysskripti run.sh lähdekoodi:

#!/bin/sh -x
set -e

authfile=fc_auth.conf
args="-d 4 -l log/civ.log -R log/rank.log -s saves -P -r game"
fifofile=cli.in

mkdir -p saves log
test -f "$authfile"
test -e default || ln -s ../../share/freeciv-server/share/freeciv/default .
test -e nation || ln -s ../../share/freeciv-server/share/freeciv/nation .
test -e default.serv || ln -s ../../share/freeciv-server/share/freeciv/default.serv .
test -e "$fifofile" || mkfifo "$fifofile"

arg="$1"
case "$arg" in
create)
        tail -f "$fifofile"|civserver $args -N -a "$authfile" >> log/cli.log 2>> log/clierr.log
        ;;
restart=*)
        savegamefile="${arg#restart=}"
        test -f "$savegamefile"
        tail -f "$fifofile"|civserver $args -a "$authfile" -f "$savegamefile" >> log/cli.log 2>> log/clierr.log
        ;;
*)
        echo 'USAGE: run.sh create|restart=file' >&2
        exit 1
        ;;
esac

Ensimmäisellä kerralla (screenin sisällä!):

$ ./run.sh create

Huomautus! Käynnistä pelipalvelin sopivalla timeoutilla, koska sitä ei voi ilmeisesti muuttaa ekalla vuorolla!

Seuraavalla kerralla talletuksesta:

$ ./run.sh restart=saves/talletus.sav.gz

Pelaajien lisääminen

Pelaajien automaattiseen lisäämiseen ei tietääkseni ole vielä olemassa mitään kunnollisia ylläpitäjän komentoa, joten jouduin avaamaan manuaalisesti 30 kpl freeciv-clientteja.

Tämä vaati:

  • Freeciv-clientista visuaalisten asetuksien poistamisen näkyvistä, jotta en näe pelaajien karttoja (koska olen myös mukana pelissä itse)
  • Salasanojen vaihtamisen tunnuksista väliaikaisesti samaksi (siis vain Freeciv-palvelimen puolella)
  • Debian GNU/Linux -pohjaisen käyttöjärjestelmän ja tietokoneen, jossa pystyi avaamaan 30 freeciv-clienttia ongelmitta. (Yritin ensin Windowsilla, mutta se hajosi käsiin 16 clientin jälkeen.)

Ajastetut toiminnot

  • Pelipalvelimen tilanne tallennetaan automaattisesti joka tunti (sekä aina kun vuoro vaihtuu)
  • Timeout asetetaan automaattisesti 12.00 seuraavaan päivään [ei käytössä vielä]
  • Salasanatiedot päivitetään wikistä pelipalvelimelle kerran tunnissa
  • Pelipalvelimen tiedostot varmuuskopioidaan kerran tunnissa toiselle palvelimelle

Pelaajan vaihtaminen

  • Pelaajanimen lisääminen siirrettävien tunnusten listaan
  • Kirjautuminen sisälle pelaajanimellä (take-komento vaatii yhteyden); jos peliä pelaava ylläpitäjä toteuttaa, pitää poistaa clientista kaikki visuaalinen tieto ja toteuttaa sokkona
  • Palvelimella komento /take tunnus "Pelaajan nimi"
Henkilökohtaiset työkalut