Counter Strike Server και client σε Ubuntu Linux

Από Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ
Μετάβαση σε: πλοήγηση, αναζήτηση

Επειδή το linux είναι και για gamers, ας δούμε πως μπορούμε να παίξουμε Counter Strike και να στήσουμε και τον δικο μας CS server. Οι παρακάτω οδηγίες είναι για Ubuntu, αλλά τα ίδια ισχύουν και για άλλες διανομές, με εξαίρεση τον τρόπο εγκατάστασης του wine.

Counter Strike 1.6 no steam client

Καταρχάς κατεβάζουμε το wine. Στα repositories του edgy υπάρχει η έκδοση 0.9.22, που δοκιμάστηκε γι'αυτό το άρθρο. Εναλλακτικά μπορούμε να προσθέσουμε στα repositories τα ακόλουθα:

Ubuntu Edgy (6.10):

deb http://wine.budgetdedicated.com/apt edgy main

Ubuntu Dapper (6.06):

deb http://wine.budgetdedicated.com/apt dapper main

Ubuntu Breezy (5.10):

deb http://wine.budgetdedicated.com/apt breezy main

για να κατεβάσουμε την τελευταία έκδοση (η 0.9.28 βγήκε στις 23 Δεκεμβρίου).

Κατόπιν, όποια εναλλακτική και αν ακολουθήσαμε, ανοίγουμε τερματικό, πληκτρολογούμε

sudo apt-get install wine 

και είμαστε έτοιμοι. Τρέχουμε το wine από τερματικό για πρώτη φορά χωρίς καμία παράμετρο, και αυτό δημιουργεί τα απαραίτητα αρχεία και φακέλους. Επόμενη κίνηση είναι να κατεβάσουμε το font tahoma.ttf το οποίο χρειάζεται το wine για να τρέξει, κάνοντας ένα search στο google για filetype:ttf inurl:tahoma και να το αντιγράψουμε στον φάκελο ~/.wine/drive_c/windows/fonts.

Από πλευράς wine είμαστε πια έτοιμοι.

Όσον αφορά το counterstrike τώρα, το άρθρο αυτό αφορά την έκδοση 1.6 χωρίς κωδικό steam για να παίξεις online.

Έστω λοιπόν ότι έχετε το exe αρχείο στον φάκελο ~/cstrike. Απο τερματικό δίνουμε την εντολή

wine ~/cstrike/counterstrike_1.6_lan_version.exe 

θα μας βγάλει τον installer που θα έβγαζε κανονικά και σε windows, οπότε κάνουμε τα απαραίτητα κλικ, αναπολώντας τις στιγμές των ατελείωτων windows-click της νιότης μας. Μόλις τελειώσει η εγκατάσταση θα μας ρωτήσει αν θέλουμε να τρέξει το παιχνίδι. Θα απαντήσουμε όχι, καθώς δε θα παίξει γιατί λείπει ένα dll που χρειαζόμαστε, το MSVBVM60.DLL. Για όσους είναι με dual boot σύστημα, το παίρνουμε απ'το C:\WINDOWS\SYSTEM32, και το βάζουμε στο ~/.wine/drive_c/windows/system32. Οι υπόλοιποι μπορούν να το κατεβάσουν από εδώ. Η εγκατάσταση δημιουργεί συντόμευση απ' όπου μπορείτε να τρέξετε το παιχνίδι, αν όμως θέλετε την επιφάνεια εργασίας λιτή, μπορείτε να αρχίζετε το παιχνιδι με την ακόλουθη εντολή

wine ~/.wine/drive_c/Program\ Files/Counter-Strike\ 1.6/cstrike.exe

Αρχικά θα ανοίξει σε ανάλυση 640x480, αλλά μπορείτε να την αλλάξετε απ' το μενού του παιχνιδιού: options->video και διαλέγετε την επιθυμητή ανάλυση. Επίσης την πρώτη φορά που θα συνδεθείτε σε online server θα σας βγάλει ένα μήνυμα απ'το wine για wine gecho installation, πατήστε yes. Enjoy!

Counter Strike 1.6 No Steam Server

Εδω τα πράγματα είναι σαφώς πιο εύκολα καθώς υπάρχει server εφαρμογή για linux.

Aρχικά φτιάχνουμε έναν φάκελο με όνομα hlds όπου θέλουμε εμείς, π.χ

mkdir ~/hlds

πηγαίνουμε στον φάκελο αυτό (cd ~/hlds) και κατεβάζουμε τα απαραίτητα αρχεία

wget http://www.steampowered.com/download/hldsupdatetool.bin
wget http://www.cstrike.ro/cstrike_files/engine.v15.tgz

κάνουμε το bin αρχείο εκτελέσιμο με

chmod +x hldsupdatetool.bin

και το εκτελούμε με

./hldsupdatetool.bin

Θα μας βγάλει τους όρους, πατάμε yes, και δημιουργεί τα απαραίτητα αρχεία. Στη συνέχεια πάμε να εγκαταστήσουμε τον server μας. Γράφουμε

./steam -command update -game valve -dir .

(Προσοχή, η τελεία μετα το dir χρειάζεται) και περιμένουμε υπομονετικά. Ίσως χρειαστεί να τρέξουμε και δεύτερη φορά την προηγούμενη εντολή. Για να είμαστε σίγουροι ότι είμαστε εντάξει θα πρέπει το τελευταίο μήνυμα να είναι HLDS installation up to date. Τώρα εγκαθιστούμε το cstrike mod

./steam -command update -game cstrike -dir .

Και εδώ επίσης πρέπει να δούμε στο τέλος το HLDS installation up to date. Για να κάνουμε patch τον server τώρα, διαγράφουμε τις βιβλιοθήκες που ήρθαν με την εγκατάσταση και τις αντικαθιστούμε μ'αυτες που κατεβάσαμε προηγουμένως, συνοπτικά:

rm -f engine_amd.so engine_i486.so engine_i686.so
tar xfvz engine.v15.tgz

Είμαστε έτοιμοι, ο server τρέχει με την εντολή hlds_run και τις απαραίτητες παραμέτρους. Μια πιθανή εντολή εκκίνησης είναι η εξής:

./hlds_run -game cstrike +ip "η εξωτερική σας ip" +sv_lan 1 -nomaster +maxplayers 18 +map de_dust2

Εναλλακτικα μπορουμε να χρησιμοποιησουμε το παρακατω bash script

#!/bin/bash
#Configuration
directory=/home/username/hlds
maparray=(`ls $directory/cstrike/maps | grep .bsp |sed -e s/.bsp//g -e /ztmp/d`)
map_number=${#maparray[@]};
echo '#----------------Counterstrike Server Start Script----------------#';
echo 'Please enter your ip address: ';
read ip_addr;
if [ `echo $ip_addr |grep '[0-9]' | awk -F "." ' $1 <=255 && $2 <= 255 && $3 <= 255 && $4 <= 255 '` ]; then
echo '#Please enter the maximum number of players: #'
read max_pl
max_pl_result=` echo $max_pl | grep [a-zA-Z] `
if [ -z "$max_pl_result" ]; then
echo 'Please choose the map you want to play from the following list : '
for ((i=0 ; i <$map_number ; i++))
do
echo $i ' --- '${maparray[$i]}
done
echo 
echo '#Your selection is [0--'$map_number'] '
read selected_map
if [ "$selected_map" > "$map_number" ]; then
echo 'Proceeding with starting your server... '
cd $directory
hlds_run -game cstrike -insecure +ip $ip_addr +maxplayers $max_pl +map ${maparray[$selected_map]} > /dev/null 2>&1 &
echo 'Server is up n running'
fi
fi
fi

Aπλα θα χρειαστεί να ορίσετε το directory που βρίσκεται το εκτελέσιμο hlds_run. Το αποθηκεύετε σαν πχ startcs και το κάνετε εκτελέσιμο με

$ chmod +x startcs

Μπορείτε αν θελετε να το αντιγράψετε στο dir /usr/bin για να μπορειτε να το εκτελείτε από οπουδήποτε, ή εναλλακτικα να δημιουργήσετε ενα dir όπου θα αποθηκεύετε ολα σας τα scripts , εστω ~/scripts και να προσθέσετε το dir αυτο στη μεταβλητή περιβάλλοντος $PATH,με

$ echo "export PATH=~/scripts:$PATH" >> ~/.bashrc