You are here > Forums > Your creations. > Rise of Nations script =) fr

The forum

Rise of Nations script =)

New topic  - Reply
Author Replies
warcry Friday 11 September 2009 at 0:43 - [Quote]

Rank: Member

I have made this script for install Rise of Nations (without expansion). I will publish the expansion script soon.
I post here to ask you if it works, if it's written OK, etc.

Terminal output:

#!/bin/bash
# Date: (2009-08-10 23-55)
# Last revision: (2009-08-10 23-55)
# Wine version used: 1.1.29
# Licence: GPLv3
# Tested with standard Rise of Nations, not Gold Edition

if [ "$PLAYONLINUX" = "" ]then
exit 0
fi

source "$PLAYONLINUX/lib/sources"

TYTUL="Rise of Nations"

mkdir -p $REPERTOIRE/tmp/RON
cd $REPERTOIRE/tmp/RON
wget "http://img171.imageshack.us/img171/2002/leftz.jpg"
wget "http://img10.imageshack.us/img10/3687/topzp.jpg"

POL_SetupWindow_Init "$REPERTOIRE/tmp/RON/topzp.jpg" "$REPERTOIRE/tmp/RON/leftz.jpg"

if [ "$POL_LANG" == "es" ]; then
LNG_CABEXTRACT="Se necesita cabextract para extraer los cabinets de DirectX.\n\nPuedes instalarlo desde los repositorios de tu distro utilizando una herramienta como synaptic o apt-get. El paquete se llama \"cabextract\".\nSin él no puedo continuar con la instalación."
LNG_MISSINGCOMPONENTS="Faltan componentes"
LNG_LOADINGSETUP="Cargando instalación"
LNG_INSTALLING="El instalador de Rise of Nations se está ejecutando.\n\nHaz una instalación normal. No instales GameSpy Arcade ni hagas click en \"Jugar ahora\".\nCuando la instalación termine, haz clic en Siguiente.\n\nSi después de un tiempo el instalador todavía no ha aparecido, cancela y vuelve a\nejecutar este script. Asegúrate de elegir bien el medio de instalación."
LNG_RUNNINGSETUP="Ejecutando instalación"
LNG_DOWNLOADINGUPDATE="Descargando actualización de Rise of Nations (es necesaria)"
LNG_SCREENSIZE="¿Qué tamaño de pantalla usarás para jugar al juego? (si no sabes, clic en Siguiente)"
LNG_DXLIBS="Instalando algunas bibliotecas de DirectX para el sonido"
LNG_INSTALLINGUPDATE="Instalando actualización"
LNG_INSTALLED="Rise of Nations ha sido instalado correctamente"
else
LNG_CABEXTRACT="cabextract is needed to extract the DirectX cabinets.\n\nYou can install them with the package tool of your Linux distribution (like Synaptic). The package name is \"cabextract\".\nWithout cabextract I can't continue with the installation."
LNG_MISSINGCOMPONENTS="Missing components"
LNG_LOADINGSETUP="Loading Setup"
LNG_INSTALLING="The Rise of Nations Autorun is running.\n\nMake standard installation. Don't install GameSpy Arcade. Don't click to play now.\nWhen the setup has been finished, click Next\n\nIf passed a while the installer hasn't appeared click \"Cancel\" and try again.\nMake sure of choosing correct CD."
LNG_RUNNINGSETUP="Running Setup"
LNG_DOWNLOADINGUPDATE="Downloading update for Rise of Nations (required to be playable)"
LNG_SCREENSIZE="What screen size would you like to playing the game (if you don't known, click Next)"
LNG_DXLIBS="Installing DirectX libs required for sound"
LNG_INSTALLINGUPDATE="Installing update"
LNG_INSTALLED="Rise of Nations is installed"
fi

POL_SetupWindow_presentation "Rise of Nations" "Big Huge" "www.microsoft.com/Games/riseofnations/" "warcry" "Rise_of_Nations"

#cabextract is needed to extract DirectX archives
check_one "cabextract" "cabextract"

if [ "$MANQUE" == "true" ]
then
POL_SetupWindow_message "$LNG_CABEXTRACT" "$LNG_MISSINGCOMPONENTS"
POL_SetupẀindow_Close
exit
fi

POL_SetupWindow_cdrom
INSTALLER=$(Read_autorun)

select_prefix "$HOME/.PlayOnLinux/wineprefix/Rise_of_Nations/"
POL_SetupWindow_prefixcreate
PREFIX="$HOME/.PlayOnLinux/wineprefix/Rise_of_Nations"

#start installation

POL_SetupWindow_wait_next_signal "$LNG_LOADINGSETUP" "Rise of Nations"
#Fetch PROGRAMFILES environmental variable
PROGRAMFILES=`wine cmd /c echo "%ProgramFiles%"`
PROGRAMFILES=${PROGRAMFILES:3} 
#Fetching APPDATA environmental variable
APPDATA=`wine cmd /c echo "%AppData%"`
APPDATA=${APPDATA:3} 
echo $APPDATA | sed 's/\\/\//g' > $REPERTOIRE/tmp/RON/appdata #this change \ with /
APPDATA=`cat $REPERTOIRE/tmp/RON/appdata`
echo "$PREFIX/drive_c/$APPDATA/Microsoft Games/Rise of Nations"
wine $INSTALLER
POL_SetupWindow_detect_exit
POL_SetupWindow_message "$LNG_INSTALLING" "$LNG_RUNNINGSETUP"

#Download update for Rise of Nations, needed to solve the click bug http://bugs.winehq.org/show_bug.cgi?id=17614

mkdir $REPERTOIRE/downloads
cd $REPERTOIRE/downloads
if [ "`sha1sum ronpatch.exe`" != "728bb284f2ba335dcfdae6bd889facdeca100662  ronpatch.exe" ]
then
POL_SetupWindow_download "$LNG_DOWNLOADINGUPDATE" "Rise of Nations update" "http://download.microsoft.com/download/b/9/5/b95728f8-9727-43cd-834f-a11d019cae9f/ronpatch.exe"
fi

#Working in window works better
XRANDR=`xrandr --current | grep current`
SCREEN_SIZE=`echo $XRANDR | cut -d , -f 2 | cut -d \  -f 3`x`echo $XRANDR | cut -d , -f 2 | cut -d \  -f 5`
POL_SetupWindow_textbox "$LNG_SCREENSIZE" "Rise of Nations" "$SCREEN_SIZE"

W_WIDTH=`echo $APP_ANSWER | cut -d x -f 1`
W_HEIGHT=`echo $APP_ANSWER | cut -d x -f 2`
Set_Desktop On $W_WIDTH $W_HEIGHT

#There are to set some settings in rise2.ini to get the game work properly (click bug)
mkdir -p "$PREFIX/drive_c/$APPDATA/Microsoft Games/Rise of Nations"
cd "$PREFIX/drive_c/$APPDATA/Microsoft Games/Rise of Nations"
#this file is naturally created after the patch
echo "[RISE OF NATIONS]

Windowed Width=$W_WIDTH

Windowed Height=$W_HEIGHT

FullScreen=1

VSync=1

AllowAllResolutions=0

IgnoreMinimizeOnTabOut=0

ConfigDatabase=BHGVidCardConfig.txt

ESCKeyGoesToMenu=1

ClickDragTiming=5

ClickDragLowSensitive=20

ClickDragHighSensitive=64

ClickDragRightSensitive=6

SkipIntroMovies=0

ForceHardwareCursor=0

ForceGDICursor=0

ForceBWCursor=0

ForceStaticCursor=0

ForceAGPVBs=0

Don't Allow Texture Compression=0

SYS_grade_override(A-F or AUTO)=AUTO

MEM_grade_override(A-F or AUTO)=AUTO

CPU_grade_override(A-F or AUTO)=AUTO

GPU_grade_override(A-F or AUTO)=AUTO

TEXTURE_grade_override(FULL, HALF, QUARTER, AUTO)=AUTO

UseAltColors=0

Console Coord Mode=0

Console Name Mode=2

Sound Enabled=1

BackVidAsSlideShow=0

UseVTUNEDLL=0

TestDelayRenderAMin=0

TestDelayRenderBMin=0

TestDelayRenderAMax=0

TestDelayRenderBMax=0

Force Profile Menu=0

ForceLowCPUBackgroundVid=1
" > rise2.ini

#Some native DirectX libs are required for sound
POL_SetupWindow_wait_next_signal "$LNG_DXLIBS" "Rise of Nations"
mkdir -p $REPERTOIRE/tmp/RON/dxcab_tmp/
cd $REPERTOIRE/tmp/RON/dxcab_tmp/
cabextract $CDROM/DIRECTX/DXNT.CAB
cp dsound.dll $PREFIX/drive_c/windows/system32/
cp dmime.dll $PREFIX/drive_c/windows/system32/
cp dmsynth.dll $PREFIX/drive_c/windows/system32/
cp dmusic.dll $PREFIX/drive_c/windows/system32/
cp dswave.dll $PREFIX/drive_c/windows/system32/
cp dmloader.dll $PREFIX/drive_c/windows/system32/ #this and following are for intro videos
cp quartz.dll $PREFIX/drive_c/windows/system32/
cp devenum.dll $PREFIX/drive_c/windows/system32/

echo "[HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides]" > $REPERTOIRE/tmp/RON/dx.reg
echo "\"dsound\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"dmime\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"dmsynth\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"dmusic\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"dswave\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"dmloader\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"quartz\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"devenum\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"l3codecx\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "" >> $REPERTOIRE/tmp/RON/dx.reg
#this is more personal, I don't like the blue-Windows background color every time the game is loading
echo "[HKEY_CURRENT_USER\\Control Panel\\Colors]" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"Background\"=\"0 0 0\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"ButtonFace\"=\"192 192 192\"" >> $REPERTOIRE/tmp/RON/dx.reg
regedit $REPERTOIRE/tmp/RON/dx.reg

POL_SetupWindow_detect_exit

#Installing the patch should be the last
POL_SetupWindow_wait_next_signal "$LNG_INSTALLINGUPDATE" "Rise of Nations"
wine $REPERTOIRE/downloads/ronpatch.exe
POL_SetupWindow_detect_exit

#Create a launcher and delete temporary files
POL_SetupWindow_make_shortcut "Rise_of_Nations" "$PROGRAMFILES/Microsoft Games/Rise of Nations" "rise.exe" "" "Rise of Nations" ""

#Clean temp
rm -R $REPERTOIRE/tmp/RON
clean_tmp

POL_SetupWindow_message "$LNG_INSTALLED"

POL_SetupWindow_Close
exit
NSLW Friday 11 September 2009 at 8:26 - [Quote]

Rank: Member

if [ "$PLAYONLINUX" = "" ]then
exit 0
fi 
This is wrong

TYTUL="Rise of Nations" 
you musn't use TYTUL, it is only Title in Polish language

#cabextract is needed to extract DirectX archives
check_one "cabextract" "cabextract" 
You don't need this as cabextract i POL's dependency

select_prefix "$HOME/.PlayOnLinux/wineprefix/Rise_of_Nations/" 
This should be written otherwise

echo "\"dsound\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg

you can do
cd "$REPERTOIRE/tmp/RON"
echo "\"dsound\"=\"native,builtin\"" >> dx.reg


#this is more personal, I don't like the blue-Windows background color every time the game is loading
echo "[HKEY_CURRENT_USER\\Control Panel\\Colors]" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"Background\"=\"0 0 0\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"ButtonFace\"=\"192 192 192\"" >> $REPERTOIRE/tmp/RON/dx.reg
regedit $REPERTOIRE/tmp/RON/dx.reg 
Is this required to run the game?
warcry Friday 11 September 2009 at 13:41 - [Quote]

Rank: Member

Quote from NSLW:

if [ "$PLAYONLINUX" = "" ]then
exit 0
fi 
This is wrong
[/qoute]
really? http://www.playonlinux.com/en/dev-documentation-1.html
Perhaps "then" should be in new line, in my script it's in new line, I don't know why it's in the same when I posted here. =S
[quote from=NSLW]
TYTUL="Rise of Nations" 
you musn't use TYTUL, it is only Title in Polish language

fixed, I got confused

Quote from NSLW:


#cabextract is needed to extract DirectX archives
check_one "cabextract" "cabextract" 
You don't need this as cabextract i POL's dependency

fixed

Quote from NSLW:


select_prefix "$HOME/.PlayOnLinux/wineprefix/Rise_of_Nations/" 
This should be written otherwise

I don't understand. I see it in documentation. http://www.playonlinux.com/en/dev-documentation-5.html

Quote from NSLW:


echo "\"dsound\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg

you can do
cd "$REPERTOIRE/tmp/RON"
echo "\"dsound\"=\"native,builtin\"" >> dx.reg

fixed

Quote from NSLW:


#this is more personal, I don't like the blue-Windows background color every time the game is loading
echo "[HKEY_CURRENT_USER\\Control Panel\\Colors]" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"Background\"=\"0 0 0\"" >> $REPERTOIRE/tmp/RON/dx.reg
echo "\"ButtonFace\"=\"192 192 192\"" >> $REPERTOIRE/tmp/RON/dx.reg
regedit $REPERTOIRE/tmp/RON/dx.reg 
Is this required to run the game?

Not, It's to not see the blue screen while loading the game

Edited by warcry

warcry Friday 11 September 2009 at 13:55 - [Quote]

Rank: Member

oops, i forgot to post the fixed version:
http://pastebin.com/f7442cdf1
http://pastebin.com/m4f3f3179

Edited by warcry

NSLW Friday 11 September 2009 at 13:59 - [Quote]

Rank: Member

really? http://www.playonlinux.com/en/dev-documentation-1.html
Perhaps "then" should be in new line, in my script it's in new line, I don't know why it's in the same when I posted here. =S 

No, just do short
[ "$PLAYONLINUX" = "" ] && exit
source "$PLAYONLINUX/lib/sources"

Quote:

I don't understand. I see it in documentation. http://www.playonlinux.com/en/dev-documentation-5.html

I think this must be clarified but for know it's better to use POL's REPERTOIRE so it would look like
select_prefix "$REPERTOIRE/wineprefix/Rise_of_Nations/"

Quote from warcry:


Quote from NSLW:


echo "\"dsound\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg

you can do
cd "$REPERTOIRE/tmp/RON"
echo "\"dsound\"=\"native,builtin\"" >> dx.reg

fixed


No you didn't fix that
warcry Friday 11 September 2009 at 14:04 - [Quote]

Rank: Member

Now is it fixed? http://pastebin.com/m4165482

Quote from NSLW:


Quote from warcry:


Quote from NSLW:


echo "\"dsound\"=\"native,builtin\"" >> $REPERTOIRE/tmp/RON/dx.reg

you can do
cd "$REPERTOIRE/tmp/RON"
echo "\"dsound\"=\"native,builtin\"" >> dx.reg

fixed


No you didn't fix that

why not?
NSLW Friday 11 September 2009 at 18:38 - [Quote]

Rank: Member

Yes, now it's fixed.
1)Here is one more thing that i don't like
mkdir $REPERTOIRE/downloads
for such things there is $REPERTOIRE/ressources directory so no need to create another

2)In heading of script there is also no
# Distribution used to test:
# Author:

3) you don't need this
PREFIX="$HOME/.PlayOnLinux/wineprefix/Rise_of_Nations" 
just use WINEPREFIX variable

4)You could also take all the paths in quotes like e.g this
cd $REPERTOIRE/tmp/RON/dxcab_tmp/
could look like this
cd "$REPERTOIRE/tmp/RON/dxcab_tmp/"
Second case is better because when space occur in name then in first case command won't work as it should

Edited by NSLW

warcry Sunday 13 September 2009 at 14:03 - [Quote]

Rank: Member

1) I didn't known. fixed!
2) Really matters the distribution? Wine is the same for all, but fixed
3) ok, fixed
4) fixed in most, I think.

http://pastebin.com/m6f6d501
Ignore the blank lines you see... PasteBin hates me.
warcry Sunday 13 September 2009 at 14:32 - [Quote]

Rank: Member

damn invisible characters and damn DOS format!
re-fixed script:
http://pastebin.com/m3106c298
warcry Sunday 13 September 2009 at 15:12 - [Quote]

Rank: Member

Now my script doesn't work
Il n'y a rien à voir ici