Système TeamSpeak du Réseau Jeux-Strategie.com Abonnez-vous à nos flux RSS Mur du Réseau Jeux-Strategie.com
 

      

Modder Darkest Hour (3)

Aujourd'hui, nous allons parler des améliorations que nous avons faites au système d'événements existant :

Premièrement, vous serez heureux d'apprendre que maintenant les événements peuvent avoir un nombre d'action illimité, nous ne sommes plus limités par un maximum de 4 choix. Vous pourrez ainsi créer un événement avec autant d'actions possibles que vous le souhaiterez, vous êtes seulement limité par la taille de votre écran.

Mais ce n'est que le début. Peut-être que la plus grande amélioration est l'introduction d'éléments déclencheurs dans les actions et commandes. Cela signifie que le déclenchement peut être associé à une action et que cette action sera affichée et sélectionnable seulement si le déclencheur est satisfait. La même chose pour les commandes : une commande seule peut avoir un déclencheur et cette commande ne sera exécutée que si le déclencheur est activé. Ce changement ouvre une nouvelle dimension pour l'écriture d'événements car avec un seul événement vous aurez le même résultat que ce qui requérait auparavant de nombreux événements. Laissez nous vous donner quelques exemples simples de cette fonctionnalité.

Exemple 1 -Vous pouvez avoir différentes actions en fonction du gouvernement

action = {
    trigger = { government = democracy }
    command = { ... }
}
action = {
    trigger = { government = communist }
    command = { ... }
}
action = {
    trigger = { government = nazi }
    command = { ... }
}


Exemple 2 -Une commande peut n'être exécutée que si le déclencheur est activé (reddition de la France) :

action = {
    command = { type = secedearea which = GER value = "Bourgogne_Champagne" }
    command = { type = secedearea which = GER value = "Lorraine_Alsace" }
    command = { type = secedearea which = GER value = "Pas de Calais" }
    command = { type = secedearea which = GER value = "Paris" }
    command = { type = secedearea which = GER value = "Normandy" }
    command = { type = secedearea which = GER value = "Loire" }
    command = { type = secedearea which = GER value = "Brittany" }
    command = { trigger = { control = { province = 87 data = ITA } } type = secedeprovince which = ITA value = 87 } # Nice
    command = { trigger = { control = { province = 86 data = ITA } } type = secedeprovince which = ITA value = 86 } # Toulon
    command = { trigger = { control = { province = 90 data = ITA } } type = secedeprovince which = ITA value = 90 } # Grenoble
    command = { trigger = { control = { province = 91 data = ITA } } type = secedeprovince which = ITA value = 91 } # Chambery
    command = { trigger = { control = { province = 94 data = ITA } } type = secedeprovince which = ITA value = 94 } # Corsica
}


Comme vous pouvez le voir, maintenant vous n'aurez plus besoin d'écrire action_, action_b, action_c et action_d. Une simple action est suffisante. Evidemment l'ancienne syntaxe est toujours valide car, comme nous l'avons toujours dit, nous voulons garder compatible les mod Armageddon.

Ce changement requiert également un nouveau système de calcul de l'ai_chance. Nous avons donc crée un nouvel ensemble de règles :
-la somme des chances IA pour toutes les actions valide peut-être tout chiffre positif (somme fixe de 100 retirée)
-les actions invalides sont ignorées par l'IA pour le calcul des chances IA
-des actions sans chance IA sont ignorées par l'IA s'il y a au moins une action valide avec une chance IA réglée
-si aucune chance IA pour les actions valides, une action aléatoire est choisie parmi les actions valides (retire la plus grande chance de choisir la 1ère action)

Une autre caractéristique que nous avons introduite sont les événements à une action. Cela signifie que lorsque cette option est sélectionnée (en écrivant one_action = yes), alors si un événement a plus d'une action, seule l'une des actions possible sera affichée pour le joueur (qui sera donc forcé de l'accepter). Le choix de l'action est basé sur la chance IA de chaque action. De cette manière le joueur ne peut choisir une action et est obligé d'accepter ce qui lui arrive.
Un exemple est peut-être plus parlant : les effets de l'attaque de Pearl Harbour peuvent-être écrits sous la forme d'un événement one_action, de sorte que ni le Japon, ni les Etats-Unis ne puissent choisir le montant des pertes infligées à la flotte américaine

event = {
    id = 1122334455
    random = no
    country = USA
    one_action = yes

    name = "Attack on Pearl Harbour!"
    desc = "4062desc"

    action = {
        ai_chance = 10
        name = "We suffered very heavy losses"
        ...
    }
    action = {
        ai_chance = 50
        name = "We suffered heavy losses"
        ...
    }
    action = {
        ai_chance = 15
        name = "We suffered light losses"
        ...
    }
    action = {
        ai_chance = 5
        name = "We suffered very light losses"
        ...
    }
}


Lorsque cet événement est déclenché, une seule action s'affiche et la probabilité de l'action est basée sur l'ai_chance. Les mêmes règles vues précédemment s'appliquent ici, il n'est donc pas nécessaire d'avoir une somme des ai_chance égale à 100. Donc la deuxième action ("nous avons subis de lourdes pertes") a une probabilité d'être choisie égale à 50/(10+50+15+5)=62.5%

Enfin la dernière fonction dont nous allons parler aujourd'hui ce sont les événements à date enregistrée. Il est possible de sauver la date à laquelle un événement a été déclenché puis de l'utiliser comme déclencheur dans un autre, par exemple pour faire qu'un événement se déclenche 100 jours après un autre événement
Exemple : le premier événement aura save_date = yes :

event = {
    id = 1234567890
    random = no
    save_date = yes
    country = GER
    ...
}


Le second aura :

trigger = {
    event = { id = 1234567890 days = 100 }
}


Darkest Hour fera un usage complet de ces nouvelles fonctionnalités mais certains mod en cours de portage sur Darkest Houer les utiliseront également.


Réseau Gamers et Stratégie. Association Loi 1901 à capacité juridique.
©1998-2017 Réseau Gamers et Stratégie - Tous droits réservés - Mentions légales