X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • [Pb Garnison Script] Besoin de l'aide de scripteurs!

    Bonjour à tous.

    Je me présente rapidement vu que je suis nouvel inscrit sur MB
    Je suis Jago, fan de la série TW bien évidemment comme la plupart d'entre vous. Je suis aussi un moddeur assidu du jeu Médieval 2 et je prépare un excellent mod francophone dessus.

    Si je poste maintenant c'est que j'ai un problème avec le garnison script personnalisé en cours de développement.

    Voici où j'en suis:


    Les Irlandais assiègent les Gallois, et le garnison script marche correctement: la garnison est celle du script (seule l'unité du Roi de Galles se trouvait dans le château avant le siège)!
    Maintenant, passons à notre souci.
    Le garnison script qui a biensûr pour but de renforcer l'IA est opérationnel à l'exception que les 4 unités ajoutées ont un prix de recrutement que je voudrais voir déduit de la trésorerie des Gallois (joués par l'IA). Je n'arrive pas
    à ce que le coût de recrutement soit pris en compte par mon script.

    Le voici en détail:

    ;================================================= ========================================


    ;###### Caernarvon Garnison Script #######

    script



    ;---------- Counter ----------

    declare_counter Caernarvon_siege

    ;---------- Garrisonscript ----------

    monitor_conditions not I_SettlementUnderSiege Caernarvon
    set_counter Caernarvon_siege 0

    end_monitor

    monitor_conditions I_SettlementUnderSiege Caernarvon
    and I_CompareCounter Caernarvon_siege = 0
    and not I_LocalFaction wales

    if I_SettlementOwner Caernarvon = wales
    create_unit Caernarvon, Rhyfelwyr, num 2, exp 0, arm 0, wep 0
    create_unit Caernarvon, Welsh Spearmen, num 2, exp 0, arm 0, wep 0
    add_money wales -1400 <<< La ligne de code qui pose problème!

    end_if

    set_counter Caernarvon_siege 1

    end_monitor

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;

    ; keep script unfinished until last monitor termination
    wait_monitors

    end_script


    ;================================================= ========================================


    J'aimerai savoir si quelqu'un sait comment résoudre ce problème afin que lorsque le garnison script s'effectue, il n'y ait pas un gain d'unités sans en contrepartie, payer le coût de recrutement.
    J'espère avoir une réponse prochainement, merci!

  • #2
    Personne ne sait si on peut déduire le coût des unités par une ligne de commande dans le garnison script???

    Commentaire


    • #3
      Rajoute le console_command ou consol_command devant le add_money.

      Commentaire


      • #4
        Ok, super Arandir, je vais essayer ca de suite

        Commentaire


        • #5
          Déduire le coût des unités ? C'est à dire qu'elles coûtent moins cher ?

          Commentaire


          • #6
            Non pas du tout.

            Quand une cité est assiégée, l'IA pourra (dans certaines conditions) bénéficier du garnison script lui fournissant l'aide d'unités mercenaires. Mais je souhaite que ces unités mercenaires de garnison ne soient pas "gratuites" pour leur recrutement.
            La ligne de commande que je demandais c'est pour payer ce recrutement du garnison script, car ensuite, une fois le siège rompu, la faction continuera de disposer de ces mercenaires.

            Commentaire


            • #7
              Dans ce cas, il faudrait aussi que tu ajoutes (désolé je me souviens plus des noms de variables/fonctions) :

              SI Trésor gallois >= 1400
              Trésor gallois -1400
              SINON pas de garnison supplémentaire

              Sinon les factions IA risquent de passer en négatif (sauf si comme dans TA tu leur rajoutes automatiquement de l'argent si elles sont en déficit) et puis ce serait plus logique.

              Commentaire


              • #8
                Pourquoi pas mais ca doit etre assez complexe à réaliser ses conditions...

                Commentaire


                • #9
                  Hum... la ligne de commande: add_money [nom de la faction] [Montant] ne semble pas fonctionner. Il y a un message d'erreur signalant que la faction n'est pas reconnue.

                  add_money [Montant] permet de donner ou enlever la somme correspondante à SA propre faction mais je ne parviens pas à modifier la trésorerie des autres factions.

                  J'ai également essayé la commande: add_money [Montant] [nom de la faction] mais dans ce cas là, le pb reste le même. Le jeu attribue le montant à la faction du joueur sans se préoccuper de la fin de la commande concernant la faction cible.

                  Qui a une idée?
                  Dernière modification par -Ki-Jago, 03-06-2013, 11h45. Motif: après plusieurs tests

                  Commentaire


                  • #10
                    Ouais... Essaye

                    monitor_event FactionTurnEnd FactionType england
                    and IsFactionAIControlled
                    add_money england 1500
                    end_monitor


                    Pour ce que je te disais, la condition peut se vérifier de cette manière, normalement :

                    monitor_event FactionTurnEnd FactionType england
                    and IsFactionAIControlled
                    and Treasury > 1400
                    [ajout garnison]
                    add_money england -1400
                    end_monitor
                    Dernière modification par Amàndil, 03-06-2013, 12h07. Motif: oubli d'une ligne

                    Commentaire


                    • #11
                      merci

                      mais tu pourrais recopier mon script avec les lignes de commande correctes que tu rajoutes? Parce que le fichier script est très sensible à la moindre erreur, comme tu le sais.
                      J'essaierai en tout cas ce soir!

                      Commentaire


                      • #12
                        Ahah, la question qui tue
                        J'ai jamais fait de script, mais bon, j'aurais tenté un truc du genre :

                        monitor_conditions I_SettlementUnderSiege Caernarvon
                        and I_CompareCounter Caernarvon_siege = 0
                        and FactionType wales
                        and IsFactionAIControlled
                        and I_SettlementOwner Caernarvon = wales

                        add_money wales -1400
                        create_unit Caernarvon, Rhyfelwyr, num 2, exp 0, arm 0, wep 0
                        create_unit Caernarvon, Welsh Spearmen, num 2, exp 0, arm 0, wep 0

                        Après, je suis pas spécialiste du tout, donc ya peu de chances que ça marche et tu vas sans doute devoir tâtonner encore un peu J'ai pas tout compris à tes if/elseif (ou alors c'était provisoire ?). Enfin bref, tu testeras par toi-même, je crois que c'est le mieux

                        Commentaire


                        • #13
                          Ok, ok

                          Disons que le scripting demande des lignes de commande bien précises pour fonctionner, et une seule erreur et c'est tout le script qui tombe à l'eau.
                          Pour ce fichier sensible, il serait préférable que ce soit une personne qui a l'habitude car on peut passer des journées entières sur un petit détail, sans que cela fonctionne pour autant...

                          Commentaire

                          Chargement...
                          X