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

      

Modder Darkest Hour (1)

Darkest Hour est un jeu fait par des fans pour les fans, mais plus aussi dans une certaine mesure, on pourrait dire aussi qu'elle est faite par les moddeurs pour les moddeurs. A partir d'aujourd'hui et pour les prochaines semaines, nous allons vous présenter les modifications introduites par Darkest Hour liés aux bases de données et de modding. Nous allons vous montrer les changements concernant les triggers(déclencheurs) et commandes, la nouvelle interface d'évènement et les nouveaux concepts(vous connaissez déjà le système de décision mais il y aussi d'autres ajouts au système d'évènement existant que vous n'avez pas encore vu)

Aujourd'hui, nous allons commencer avec les corrections et améliorations que nous avons apportées aux déclencheurs et commandes ainsi que les nouveaux que nous avons introduit.
Une des premières améliorations que nous avons apporté à été de prendre en considérations les guerres et alliances : nous avons donné aux déclencheurs de contrôle, appartenance et garnison la possibilité de vérifier les ennemis et alliés. A l'évidence, un ennemi est un pays avec lequel on est en guerre et un allié est un pays avec lequel on est allié. Ainsi par exemple il est possible de vérifier si une province donnée est contrôlée par un pays donné ou par un de ses alliés : ce sera très utile dans les chaînes de reddition!

Voici une liste des corrections/améliorations pour les déclencheurs :

- Trigger: control = { province = a [data = tag] } # checks if province is controlled by country x. If data = -1 or no data then it’s for country receiving event; -2 is Enemy; -3 is allied (war or diplomatic alliance) or event receiver
- Trigger: convoypool = X # changed to check for total convoy transports instead just for unassigned
- Trigger: escortpool = X # changed to check for total escorts instead just for unassigned
- Trigger: intelligence = X / intelligence = { [country = TAG] value = X [data = 1/2/3] } # True if intel level is at least X in the current country (intelligence = X, or no TAG) or country in question (TAG); data: 1 (default) intell level, 2 – foreign intelligence, 3 – counter espionage
- Trigger: intel_diff = { country = TAG1 [country = TAG2] value = X [data = 1/2/3] } # True if TAG1 intel efficiency in TAG2 – TAG2 intel efficiency in TAG1 is at least X (data = 1 or no data), TAG1 intel level – TAG 2 intel level is at least X (data = 2), or TAG1 intell efficiency in TAG 2 is at least X. If no TAG2 check for current country in TAG1. value could be negative.
- Trigger: lost_IC = { value = X } # X% or more of national IC of the country in question is in enemy hands
- Trigger: lost_national = { value = X } # X% or more of national provs of the country in question are in enemy hands
- Trigger: lost_VP = { value = X } # X% or more of _owned_ VPs of the country in question are in enemy hands
- Trigger: owned = { province = a [data = tag] } # checks if province is owned by country x. If data = -1 or no data then it’s for country receiving event; -2 is Enemy; -3 is allied (war or diplomatic alliance) or event receiver
- Trigger: trade = { country = TAG } # check if the country in question has a trade deal with TAG
- Extend garrison trigger to support [country = TAG/0/-1/-2/-3] (0 – all countries, current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly countries (country = -3); optional area values: 0 = (no) / 1 = area / 2 = region /3 = (yes) owner area ):
* garrison = { [country = TAG/-1/-2/-3] province = [province] type = [air/land/naval] size = [number of divisions] area = [0/1/2/3] }


Et maintenant parlons des nouveaux déclencheurs que nous avons introduit avec Darkest Hour. Tout d'abord, comme quelqu'un l'a deviné dans notre session de questions/réponses il y a deux semaines, nous pouvons maintenant vérifier le contrôle ou la propriété non seulement d'une province mais également d'une zone ou d'une région. Les contrôles peuvent être effectués sur les alliés et ennemis et peuvent comprendre un pourcentage de province : par exemple nous pouvons vérifier que l'Allemagne et ses alliés ont au moins 60% des provinces de la région France. Grâce au déclencheur nucléaire, il sera possible de prendre en compte la guerre atomique dans la reddition : maintenant le Japon peut se rendre si Okinawa est perdu et a été atomisé à deux reprises. Un autre déclencheur, peut-être sous-estimé, est le déclencheur de participation qui vérifie si le pays est membre des Alliés, de l'Axe ou du Komintern. Il y a également de nouveaux contrôle pour les bâtiments (avec des contrôles spéciaux pour les réacteurs nucléaires et les installations d'essai de fusées), core&revendications, divisions, politique, équipes de recherche qui permettent un réglage plus fin et un meilleur contrôle du statut de votre pays.
Voici une liste :

- Trigger: area = { area = name [country = TAG/-1/-2/-3] [data = 1/2] [value = X] } # check if all provinces in the area are controlled (data = 1 or no data) or owned (data = 2) by the current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly countries (country = -3)); optional value = X (0 to 100, default is 100) – percentage of provinces (cannot be less then 1 province)
- Trigger: building = { province = ID type = building_type value = X [when = now] } # check if in the specified province that building_type is at least at level X; when = now for current size, else - max size
- Trigger: claims = { province = a [data = tag ] } # check if that province is claimed by TAG (or country in question if not specified)
- Trigger: core = { province = a [data = tag ] } # check if that province is core for TAG (or country in question if not specified)
- Trigger: embargo = { country = [tag1] country = [tag2] [value = 0/1/2]} # checks if tag1 has trade (value = 1), tech (value = 2) or any (value = 0 or no value) embargo to tag2. If no tag 2 check for current country against tag1
- Trigger: ic = X / ic = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has X or more Total IC ([when = now] ) or Base IC; ic = X checks if current country has at least X total IC
- Trigger: nuclear_reactor = X / nuclear_reactor = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has nuclear reactor at X or more current size ([when = now] ) or max size; nuclear_reactor = X checks if current country has at least nuclear reactor with X current size
- Trigger: nuked = X / nuked = { country = TAG1 [country = TAG2] data = X [where = Y] }
* nuked = -1  # True if against that country have been used at least 1 nuke
* nuked = 1 # True if that country has used at least 1 nuke against any country
* nuked = { country = FRA country = GER data = 1 where = 300 } # True if France(FRA) has used at least 1 nuke against Germany (GER) in Berlin (ID #300)
* nuked = { country = FRA data = -1 } # True if against France(FRA) has been used at least 1 nuke by any country
* nuked = { country = GER data = -2 where = 300 } # True is against Germany have been used at least 2 nukes (by any country) at Berlin
- Trigger: participant = { [county = TAG] value = 1/2/3/4 }  # check if TAG (or country in question if not specified) is part of Allies (1), Axis (2), Comintern (3) or any alliance (4)
- Trigger: policy = { [country = TAG] type = [policy] value = X } # true if the policy of TAG (or country in question if not specified) is equal or greater then X. Value is 1 to 10
- Trigger: region = { region = name [country = TAG/-1/-2/-3] [data = 1/2] [value = X] } # check if all provinces in the region are controlled (data = 1 or no data) or owned (data = 2) by the current country (country = -1 or no country), enemy countries (country = -2) or allied/friendly ); optional value = X (0 to 100, default is 100) – percentage of provinces(cannot be less then 1 province):
- Trigger: rocket_test = X / rocket_test = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has rocket test sites at X or more current size ([when = now] ) or max size; rocket_test = X checks if current country has at least rocket test site with X current size
- Trigger: tech_team = ID / tech_team = { id = X [country = TAG] } # checks if team with id X is active (current year is in between team’s start/end year) in the current country (no country entry), in a specified country (TAG) or in any country (country = -1, or just team = ID)
- Trigger: [div type] = { [country = TAG] value = X [when = now] } # check if TAG (or country in question if not specified) has X or more of that type of division. when = now counts only already built divisions.
- New trade system triggers:
* stockpile = oil/energy/metal /rare_materials/supplies/money # Returns true if Stockpile is set for the given resource.
* import = oil/energy/metal /rare_materials/supplies/money # Returns true if Import is enabled for the given resource.
* export = oil/energy/metal /rare_materials/supplies/money # Returns true if Export is enabled for the given resource.
* resource_shortage = oil/energy / metal / rare_materials / supplies / money/all # Returns true if there is resource shortage for that resource or for any resource when used with “all”. NOTE: This trigger is not very reliable because it is set correctly on the second game day on every game session.



Nous avons corrigé les plus connus des bugs dans les commandes d'événements(statistiques d'unité, changement de TAG) et amélioré les commandes d'annexion et de réserve de main d'œuvre :

- Fixed units stats added by events (example “command = { type = soft_attack which = infantry value = 10 }” ) – those were not applied to newly built units.
- Added “when = XXX” entry to build_division event command to allow serial builds (default value is 1)
- Fixed a CTD bug with undocumented change country TAG command (command = { type = country which = TAG }) – tech-teams currently researching were not removed from research pool. On click game CTD
- Fixed a bug in change TAG command - only minimum provinces were added to nationalprovinces list. Add provinces from extra list too and also claims to claimedprovinces list.
- Addition to inherit command – added value = 1/0(default) argument. When set country will receive all units and production queue too.
- Improved manpowerpool command – added optional [when = 1/[0]] switch. When set 1 add the MP as percentage (value = x.x) of the MP in all controlled national provinces.
- Corrected event command: type = carrier_level value = XXX.X #country-independent bonus to every carrier into a naval combat (Bonus = (OurCarrierLevel - TheirCarrierLevel) / 10). Specified value replaces currently used (it is not additive command). By default this value for all countries is 0.0 (and so the bonus is 0%).
- Extended alliance command (added Axis, Allies, Comintern alliances): type =   alliance which = [tag] [where = 1/2/3] # This country enters in an alliance with country = [tag], [-1] for random country, where = 1 – Axis/ 2 – Allies / 3 – Comintern


La nouvelle commande d'annexion rajoutera de la souplesse et évitera d'avoir à compter sur l'entrée regular_id du fichier revolt.txt pour atteindre le même résultat tandis que la commande sur la réserve de main d'œuvre est renforcée et est très utile pour le processus de mobilisation comme vous l'apprendrez dans un autre carnet!

Et maintenant, nous allons jeter un coup d'œil sur les nouvelles commandes d'événement que nous avons introduit. Nous ne pouvons pas encore parler du nouveau système de commerce(il faudra attendre un autre carnet) donc passons ses commandes et regardons les changements de Flag/Shield/Counter name et skin  et les commandes de changement de nom du pays. Nous pensons que ces ajouts seront très appréciés, en particulier par les moddeurs, car elles ont été vivement demandées par la communauté depuis des années
D'autres commandes concerneront le fait d'assumer/relâcher le contrôle militaire sur d'autres pays et la commande pour céder des zones ou régions entières à un autre pays : plus besoin de taper des centaines de fois secede_provinces pour la paix amère soviétique !

- New commands and country specific modifiers on max stockpiles:
* command = { type = stockpile which = (industry / supplies (used for oil too) / all) when = ( war / peace / all ) value = XX }
- New event commands to toggle auto-trade options.
* command = { type = auto_trade which = (oil/energy/metal /rare_materials/supplies/money) when = (import/export/stockpile) value = 1/0 }
Notes:
a. Enabling Stockpile will disable Export and enable Import
b. Enabling Export will disable Stockpile
c. Disabling Import will disable Stockpile
* command = { type = auto_trade_reset } - reset auto-trade options to defaults ( Stockpile disabled, Import and Export enabled for all resources)
- New event command – add/remove tech/trade embargoes:
* command = { type = embargo which = TAG where = TAG [value = -2/-1/0/1/2/3] } # which – enforcer; where – subject; value: -2 – clear tech embargo; -1 – clear trade embargo; 0 or no value – clear all embargoes; 1 – enforce trade embargo; 2 – enforce tech embargo; 3 – enforce both trade and tech embargoes; If which = where then value = 0 (clear all embargoes the country has), -1 (clears all trade embargoes the country has), -2 (clears all tech embargoes the country has)
- New event command – trade:
* command = { type = trade which = TAG where = TAG [energy = x] [metal = x] [rare_materials = x] [oil = x] [supplies = x] [money = x] [when = Days duration / default is 100 years] [value = 1/0 – default, can be broken, 1 = not] }
- New event command – change flag/shield/counter name and skin:
* command = { type = flag_ext where = TAG [which = “string”] } # where – change flag of TAG; which - add that string to flag/shield/counter name and skin folder; use empty string (“”) or no which to clear.
- New event command – change country name:
* command = { type = name where = TAG [which = “string”] } # where – change name of TAG; which - new country name; use empty string (“”) or no which to reset name to default.
- New event command – military_control:
* command = { type = military_control which = TAG where = TAG value = 1/0 } # which – controlling country; where – controlled country; value – 1(assume MC), 0 (relinquish MC)
- New event command – secederegion:
* command = { type = secederegion which = TAG value = REGION_NAME }
- New event command – secedearea:
* command = { type = secedearea which = TAG value = AREA_NAME }
- New event command: type = addclaim which = [prov id] # Add province to country claims
- New event command: type = removeclaim which = [prov id] # Remove province from country claims
- Added a new command to change leader of a major alliance: command = { type = alliance_leader [which = TAG] where = 1/2/3 } #sets TAG (or country in question if no which is specified) as the new leader of Axis (where = 1), Allies (where = 2) or Comintern (where = 3)


Nous rajoutons régulièrement de nouvelles commandes et déclencheurs ou améliorons les existants chaque fois que nous atteignons un point où il n'est pas possible d'obtenir certains effets avec les commandes/déclencheurs existants déjà. Nous pourrions encore vous surprendre à l'avenir !

C'est finit pour aujourd'hui ! La semaine prochaine, nous allons sans doute parler de la nouvelle interface d'événement et de décision ! Voici un aperçu :


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