Skip to content


Créer son type et son mode de jeu Warsow 0.61

Introduction

Il est difficile de trouver le type de jeux qui nous convient, s'ajoute à cela le fait qu'il est encore plus difficile de trouver le mode de jeux qui convient à son style...

C'est souvent partant de là que certains créent leur modes, types ou map... Il y a un jeu auquel j'aime bien jouer, c'est Warsow et un mode dans lequel je me retrouve ihgungame ! 🙂

C'est dans ce cadre que j'ai avec un collègue cherché à créer un mode personnel mais proche du ihgungame.

Récupération du pack hgungame

Pré-requis :

Warsow 0.61 : http://www.warsow.net/download

Les maps : http://www.warsow.net/download?dl=mappack et http://www.warsow.net/download?dl=presspack

La version actuelle se trouve avec le lien suivant : http://www.mediafire.com/?pokb01tnbojlpao

La version ancienne avec celui-ci : http://www.mediafire.com/?nplq1w21b9kmah3

La version en développement : https://github.com/hettoo/hgungame

Après avoir récupéré le pack "hgg-0_1-alpha1.pk3" il faudra le placer dans le bon répertoire

Mise en place du type de jeu

Mettez le fichier "hgg-0_1-alpha1.pk3" dans votre répertoire warsow_0.61_unified/basewsw/

Modifiez à volonté votre fichier "dedicated_autoexec.cfg" en mettant le type de jeux tel que :

set g_gametype "hgg_ffa"

Créez votre fichier de configuration (le mien est fondé sur "hgg_ffa.cfg") comme ci-dessous :

// map rotation
set g_maplist "bipbeta2 .curved yeahwhatevahb2 inkfinal sandboxb5"
set g_maprotation 1 // 0 = same map, 1 = in order, 2 = random
 
// gametype specific settings
set g_hgg_MOTD "Have Fun!"
set g_hgg_root ""
set g_hgg_rootPassword ""
 
// game settings
set g_scorelimit 0
set g_timelimit 15
set g_warmup_timelimit 1
set g_match_extendedtime 0
set g_allow_falldamage 0
set g_allow_selfdamage 0
set g_allow_stun 1
set g_teams_maxplayers 0
set g_countdown_time 5
set g_instajump 1
set g_instashield 0
set g_allow_falldamage 0
set g_allow_selfdamage 0
set g_allow_teamdamage 0
set g_maxtimeouts 3 // -1 = unlimited
set g_challengers_queue 0
 
echo "hgg_ffa.cfg executed"

A cette étape vous avez une version de votre serveur en hgungame...

Modifier le comportement du jeu

Pour modifier le comportement du jeu, deux voie sont possibles. La première est bien entendu celle de la modification de votre fichier "hgg_ffa.cfg". La deuxième est la modification du pack "hgg-0_1-alpha1.pk3".

1) Modifiez votre fichier de configuration

// 'iLolotux hGunGame  - Viendez tous !!! :)' gametype configuration file
 
// map rotation
set g_maplist "bipbeta2 .curved yeahwhatevahb2 inkfinal sandboxb5"
set g_maprotation 1 // 0 = same map, 1 = in order, 2 = random
 
// gametype specific settings
set g_hgg_MOTD "Bienvenue et bon jeu !"
set g_hgg_root ""
set g_hgg_rootPassword ""
 
// game settings
set g_scorelimit 0
set g_timelimit 15
set g_warmup_timelimit 1
set g_match_extendedtime 0
set g_allow_falldamage 0
set g_allow_selfdamage 0
set g_allow_stun 1
set g_teams_maxplayers 0
set g_countdown_time 5
set g_instajump 1
set g_instashield 0
set g_allow_falldamage 0
set g_allow_selfdamage 0
set g_allow_teamdamage 0
set g_maxtimeouts 3 // -1 = unlimited
set g_challengers_queue 0
 
echo "Fichier hgg_ffa.cfg exécuté"

Ici vous avez un type de jeux en hgungame, c'est à dire chaque fois que vous fragué une fois vous passez à l'arme supérieure jusqu'à que vous soyez fragué vous-même !

Changer ce comportement est ce que je voulais atteindre. Faire en sorte que lorsqu'on a fragué une fois on ait le lance roquette ! jusqu'à qu'on soit fragué !

2) Modifier le pack "hgg-0_1-alpha1.pk3"

Pour modifier celui-ci, il suffit de le décompresser, préférez un répertoire vide ce qui vous évitera de mélanger les fichiers.

Nous allons modifier les fichiers suivants :

  • weapon.as
  • ffa.as

renommer le fichier "hgg_ffa.cfg" en "iLoloTux-hg_ffa.cfg" ... ou autre chose ! 🙂

  • weapon.as :

Les partie ci-dessous vont être modifiées :

int icon(int weapon) {
        switch (weapon) {
            case WEAP_NONE:
                return gametype.isInstagib() ? icon_instagun : icon_gunblade;
            case WEAP_INSTAGUN:
                return icon_instagun;
            case WEAP_GUNBLADE:
                return icon_gunblade;
            case WEAP_ELECTROBOLT:
                return icon_electro;
            case WEAP_GRENADELAUNCHER:
                return icon_grenade;
            case WEAP_ROCKETLAUNCHER:
                return icon_rocket;
            case WEAP_PLASMAGUN:
                return icon_plasma;
            case WEAP_LASERGUN:
                return icon_laser;
            case WEAP_MACHINEGUN:
                return icon_machinegun;
            case WEAP_RIOTGUN:
                return icon_riot;
            case WEAP_TOTAL:
                return icon_max;
        }
        return 0;
    }
 
    /*
     * Returns the weapon to be rewarded after exactly the given amount of
     * frags. Returns WEAP_NONE if no weapons should be rewarded yet, or
     * WEAP_TOTAL if all weapons should have been rewarded already.
     */
    int award(int frags) {
        switch (frags) {
            case 0:
                return WEAP_NONE;
            case 1:
                return WEAP_ELECTROBOLT;
            case 2:
                return WEAP_GRENADELAUNCHER;
            case 3:
                return WEAP_ROCKETLAUNCHER;
            case 4:
                return WEAP_PLASMAGUN;
            case 5:
                return WEAP_LASERGUN;
            case 6:
                return WEAP_MACHINEGUN;
            case 7:
                return WEAP_RIOTGUN;
        }
 
        return WEAP_TOTAL;
    }

Je veux faire en sorte que l'on ait le lance roquette après un frag puis rebelote !

int icon(int weapon) {
        switch (weapon) {
            case WEAP_NONE:
                return gametype.isInstagib() ? icon_instagun : icon_gunblade;
            case WEAP_INSTAGUN:
                return icon_instagun;
            case WEAP_ROCKETLAUNCHER:
                return icon_rocket;
            case WEAP_TOTAL:
                return icon_max;
        }
        return 0;
    }
 
    /*
     * Returns the weapon to be rewarded after exactly the given amount of
     * frags. Returns WEAP_NONE if no weapons should be rewarded yet, or
     * WEAP_TOTAL if all weapons should have been rewarded already.
     */
    int award(int frags) {
        switch (frags) {
            case 0:
                return WEAP_NONE;
            case 1:
                return WEAP_ROCKETLAUNCHER;
        }
 
        return WEAP_TOTAL;
    }

Simple... Non !?

On modifie ffa.as :

/*
Copyright (C) 2012 Gerco van Heerdt
 
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
 
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
See the GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/
 
class HGG : HGGBase {
    void init_gametype() {
        gt.name = " - Viendez tous !!! :)";
        gt.type = GT_FFA;
        HGGBase::init_gametype();
    }
}

Puis on modifie globals.as afin de mettre l'auteur et la version :

const cString NAME = "iLolotux hGunGame";
const cString VERSION = "0.1";
const cString AUTHOR = "^0<].^7L^2o^9Lo^2T^7ux^0.[>^7";

On renomme : hgg_ca.gt  hgg_duel.gt  hgg_ffa.gt  hgg_trw.gt
En : iLoloTux-hg_ca.gt  iLoloTux-hg_duel.gt  iLoloTux-hg_ffa.gt  iLoloTux-hg_trw.gt

... C'est terminé !? :O

Allé on emballe...

zip -r iLoloTux-hg.pk3 progs

On place celui-ci dans warsow_0.61_unified/basewsw/

On édite son dedicated_autoexec.cfg et on met : set g_gametype "iLoloTux-hg_ffa"

On lance le serveur... : ./wsw_server

Using /home/$USER/.warsow-0.6 for writing
Executing: default.cfg
Unknown command "unbindall"
Executing: dedicated_autoexec.cfg
Hostname: debian.domaine.local
Alias: debian
IP: 127.0.1.1
------- angel script initialization -------
Loading angelwrap module.
Initializing Angel Script
Initialization of angelwrap successful
------------------------------------
Game running at 62 fps. Server transmit at 20 pps
Added new master server #0 at 64.22.107.125:27950
Added new master server #1 at 69.59.212.88:27950
Added new master server #2 at 92.62.40.73:27950
 
====== Warsow Initialized ======
Opening UDP/IP socket: *:44400
Opening UDP/IPv6 socket: *:44400
==== G_Init ====
------- Server Initialization -------
SpawnServer: cwl4
-------------------------------------
Initalizing 'iLoloTux-hg_ffa' gametype
loading configs/server/gametypes/iLoloTux-hg_ffa.cfg
My iLoloTux-hg_ffa2.cfg executed... ;)
* Initializing gametype scripts
* Initializing Game module syntax
* Loaded script section 'progs/shared/constants.as'
* Loaded script section 'progs/shared/files.as'
* Loaded script section 'progs/gametypes/generic/matchstates.as'
* Loaded script section 'progs/gametypes/generic/bots.as'
* Loaded script section 'progs/gametypes/generic/items.as'
* Loaded script section 'progs/gametypes/generic/spawnpoints.as'
* Loaded script section 'progs/gametypes/legacy/quake1.as'
* Loaded script section 'progs/gametypes/hgg/base.as'
* Loaded script section 'progs/gametypes/hgg/base/callbacks.as'
* Loaded script section 'progs/gametypes/hgg/base/globals.as'
* Loaded script section 'progs/gametypes/hgg/base/levels.as'
* Loaded script section 'progs/gametypes/hgg/base/gametype.as'
* Loaded script section 'progs/gametypes/hgg/base/players.as'
* Loaded script section 'progs/gametypes/hgg/base/player.as'
* Loaded script section 'progs/gametypes/hgg/base/database.as'
* Loaded script section 'progs/gametypes/hgg/base/account.as'
* Loaded script section 'progs/gametypes/hgg/base/ranking.as'
* Loaded script section 'progs/gametypes/hgg/base/scoreboard.as'
* Loaded script section 'progs/gametypes/hgg/base/weapons.as'
* Loaded script section 'progs/gametypes/hgg/base/commands.as'
* Loaded script section 'progs/gametypes/hgg/base/command.as'
* Loaded script section 'progs/gametypes/hgg/base/table.as'
* Loaded script section 'progs/gametypes/hgg/base/dummies.as'
* Loaded script section 'progs/gametypes/hgg/base/dummy.as'
* Loaded script section 'progs/gametypes/hgg/ffa.as'
Gametype 'iLolotux hGunGame  - Viendez tous !!! :)' initialized
       : AI Navigation Initialized.
-------------------------------------

Comme dit un collègue : Youhou !

Jouez bien, fraguez, fraguez !

Un merci à : http://kandru.de/c/warsow et à "hettoo" http://www.warsow.net/forum_profile/21361

Exemple

Mon fichier dedicated_autoexec.cfg : http://monblog.system-linux.net/blog/wp-content/uploads/warsow/dedicated_autoexec.cfg

Mon fichier de configuration : http://monblog.system-linux.net/blog/wp-content/uploads/warsow/LoloTuxhg.cfg

Le pack : http://monblog.system-linux.net/blog/wp-content/uploads/warsow/LoloTuxHG.pk3

- Fin -

Print Friendly, PDF & Email

Posted in Jeu, Linux, Toutes. Tagged with , , .

One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. mikyvienne said

    tu devrait laisser un petit merci a kandru et hettoo non ? 😉
    Mike

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.

Time limit is exhausted. Please reload CAPTCHA.


/* */
Creative Commons License
Cette création par Laurent Besson est mise à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.0 France.