The forum

[Modif proposée]World of Warcraft

Author Replies
Lowouik Thursday 7 February 2008 at 10:25
LowouikAnonymous

Bonjour à tous,

Je rejoins tout juste la communauté POL et tiens avant tout à féliciter, et surtout remercier les concepteurs ainsi que tous ceux qui les ont rejoint depuis pour leur investissement et leur ingéniosité. Ce programme est véritablement excellent !

Seulement voilà (il y a toujours un "mais", je tente d'utiliser le premier script qui m'intéresse (World of Warcraft), et bam, première ombre au tableau. Pas de contrôle que le bon cd a été monté, et le script continue tranquillement jusqu'à ce que l'install de Wow plante. Je grommèle, puis retente en me promettant d'être plus attentif. Evidemment, rendu au CD 5, je clique trop vite et... tout à refaire. Ce que je m'empresse de faire, cette fois avec succès (ouf !). Je lance donc le script de Burning Crusade... et là, je vous le donne dans le mille... Je clique trop vite !!!

Voilà pour la petite histoire, la raison qui m'a poussé à mettre le nez dans le script Wow, que je vous soumets maintenant. Au programme :

- Ajout d'un contrôle du montage du bon cd avec, en cas d'échec, proposition à l'utilisateur d'interrompre l'installation ou de poursuivre.

- Correction d'une petite faute de français

- Introduction de deux fonctions pour clarifier le code.

- Petites bricoles à droite à gauche, pour clarifier le code.

J'ai fait ça à la va-vite, histoire d'avoir quelque chose de fonctionnel rapidement. Ce n'est pas encore très homogène, et des parties n'ont pas encore été traitées. Si le principe vous plait, il y a encore pas mal de modif que j'ai envie de faire. A vous de voir...

Voici le code :

#!/bin/bash
if [ "$PLAYONLINUX" = "" ]
then
exit 1
fi
source "$PLAYONLINUX/lib/sources"

cfg_check

#Fonctions

function check_cd
{

message "Veuillez monter le CDROM $1, puis cliquer sur valider."

case $1 in
     2|3|4|5)
     while [ ! -e "${CDROM}/Installer Tome $1.mpq" ]
     do
          return=`question "Le CD-ROM n°$1 de World of Warcraft est introuvable. Voulez-vous réessayer ?"`
          [ $return -eq 1 ] && message "Installation annulée." && return 10
     done
     return 0
     ;;
     1)
     while [ ! -e "$CDROM/Installer Tome.mpq" ]
     do
     return=`question "Le CD-ROM n°$1 de World of Warcraft est introuvable. Voulez-vous réessayer ?"`
          [ $return -eq 1 ] && message "Installation annulée." && return 10
     done
     return 0
     ;;
     *)
     erreur "Err5 - Erreur fonction 'check_cd' : Argument incorrect."
     return 5
esac
}

function copy_cd
{
     attendre "Patientez pendant la préparation de l'installation ..." "cp $CDROM/* $TEMP"
}

#Presentation
presentation "World Of Warcraft" "Blizzard Entertainment" "www.blizzard.com" "Tinou" "WorldOfWarcraft"

CDROM=$(champ "Quel est le point de montage de votre lecteur CDROM? (Défault : /media/cdrom/)" "/media/cdrom";

[ "$?" = 1 ] && exit 2

[ "$CDROM" = "" ] && CDROM="/media/cdrom"

check_cd 1
retval=$?
[ ${retval} -ne 0 ] && exit ${retval}

TEMP="$HOME/.PlayOnLinux/tmp/wow"

[ -d $TEMP ] && rm -Rf $TEMP/* || mkdir -p $TEMP
[ -d $REPERTOIRE/wineprefix/WorldOfWarcraft] || mkdir -p $REPERTOIRE/wineprefix/WorldOfWarcraft

cd $REPERTOIRE/wineprefix/WorldOfWarcraft

select_prefixe "$(pwd)"
creer_prefixe
cd $WINEPREFIX/dosdevices
rm ./*
ln -s ../drive_c c:
ln -s / z:
ln -s $TEMP d:

cd $TEMP

copy_cd

check_cd 2
retval=$?
[ ${retval} -ne 0 ] && exit ${retval}
copy_cd

check_cd 3
retval=$?
[ ${retval} -ne 0 ] && exit ${retval}
copy_cd

check_cd 4
retval=$?
[ ${retval} -ne 0 ] && exit ${retval}
copy_cd

reponse=$(question "Possedez vous l'édition 5 CDROM ?"
if [ "$reponse" = "0" ]
then
     check_cd 5     
     retval=$?
     [ ${retval} -ne 0 ] && exit ${retval}
     copy_cd
fi

wine d:\Installer.exe
message "Appuyez sur OK quand vous êtes SUR que l'installation est terminée.
Si vous appuyez sur ok et qu'elle n'est pas terminée, vous devrez tout réinstaller."


cd $REPERTOIRE/tmp/
echo "SET gxApi "opengl"" > Config.wtf
echo "SET ffxDeath "0"" >> Config.wtf
echo "SET SoundOutputSystem "1"" >> Config.wtf
echo "SET SoundBufferSize "150"" >> Config.wtf
cp -f Config.wtf $WINEPREFIX/drive_c/Program Files/World of Warcraft/WTF/Config.wtf

Set_SoundDriver alsa
fonts_to_prefixe


simuler_reboot
chmod 777 $TEMP -R
rm $TEMP -R
cd $WINEPREFIX/dosdevices
rm ./d:

creer_lanceur "WorldOfWarcraft" "Program Files/World of Warcraft" "WoW.exe"

message "Installation terminée"
exit
Lowouik Tuesday 8 April 2008 at 14:52
LowouikAnonymous

Bonjour à tous

Malgré le peu d'enthousiasme suscité par le message précédent, j'ai récidivé . C'est comme ça, je suis un peu têtu.

En tout cas, j'ai posté à l'instant une proposition de script WorldOfWarcraftV2 par la voie officielle . Oui, v2, parce qu'il y a quand même pas mal de changements du coup. Au programme :

- Révision du code et réécriture presque totale.
- Ajout d'une entête permettant le suivi des modifications dans le temps.
- Messages lors de l'install écrit dans la langue de l'utilisateur (pour l'instant, uniquement anglais et français).

- Et surtout, proposition d'installation d'un nouveau script de lancement, permettant de gagner jusqu'à 20 fps (soit doubler les performances sur les "petites" cartes graphiques). (D'après l'article http://gentoo-wiki.com/HOWTO_Install_and_update_World_Of_Warcraft_with_wine)

Ah oui, et passage de l'intégralité des commentaires en anglais afin de permettre à nos amis non francophones de participer.
Aymeric P. Tuesday 8 April 2008 at 17:23
Aymeric P.

Salut,
Je te rappelle que les fonctions check_cdrom et Ask_For_cdrom existe, utilise les (vérifie la syntaxe/case)
ensuite pour rajouter des valeurs dans le registre passe par la fonction regedit que de rajouter diretement dans le fichier user.reg.
Ensuite il ne sera JAMAIS validé tant que le script bénéficiera des privilèges root (même pour une ligne de code) !!

J'ai pas fini la lecture du script ....

Edited by MulX


Former member.
Lowouik Tuesday 8 April 2008 at 21:43
LowouikAnonymous

Effectivement, je me suis aperçu après coup pour les fonctions check_cdrom et Ask_For_cdrom en mettant le nez dans le répertoire lib. Je n'arrive pas à trouver de documentation au sujet des différentes fonctions mises à disposition. Quoiqu'il en soit, maintenant qu'elles sont écrites dans le script, autant les laisser je pense. Enfin, à vous de juger.

Pour la base de registre, c'est noté (et effectivement, ça m'a l'air plus propre ). Ce sera modifié sur le prochain envoi.

Par contre, pour le mot de passe root, je ne vois pas trop... Déjà, ça n'est pas le mot de passe root, mais le mot de passe utilisateur qui est demandé. Ensuite, je ne vois pas trop comment s'en passer pour modifier l'/etc/sudoers. De plus, il existe certains garde-fous. 3 alertes, pour être exact, au cours de l'installation, ainsi que la possibilité laissée de le faire à postériori, et donc de ne pas fournir ce mot de passe.
S'il y a des alternatives auxquelles je ne pense pas, je suis évidemment preneur.
Aymeric P. Tuesday 8 April 2008 at 21:57
Aymeric P.

Bon effectivement c'est pas le mot de passe root, ok. J'ai modifier ma phrase si tu la préfère comme ça.
Les raisons son diverse, je n'ai pas tout mon temps ce soir pour les expliquer, je ne t'en donne qu'une sur l'aspect technique.

la commande sudo est une spécialité sur Ubuntu, mais n'est pas activer par défaut (je ne dis pas installer) sur d'autre distribution.
Et même sur Ubuntu tout les utilisateurs ne bénéficie pas des droits pour lancer la commande sudo.


Former member.
Lowouik Tuesday 8 April 2008 at 23:15
LowouikAnonymous

Bonne réponse...

Bon, et bien, je vais poster une nouvelle version avec :

- Suppression des sudo pour le second script et écriture des commandes dans le Readme de post-install à l'attention de l'utilisateur.

- Utilisation de regedit pour insérer la nouvelle clé et l'entrée.

- Utilisation de Ask_for_cdrom et check_cdrom en lieu et place de l'existant.

Toutefois, serait-il possible de m'éclairer sur la façon de disposer d'une documentation des fonctions fournies avec Pol ? Merci
Aymeric P. Wednesday 9 April 2008 at 8:09
Aymeric P.

Tiens il y a ça de fait par un membre http://www.playonmac.com/en/topic-1059-POL_script_reference.html (anglais) et normalement une documentation ne devrais pas tardé a voir le jour (je sais ça fait 6 mois qu'on répète la même chose xD)

Former member.