Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=89894f2d04883cc40957a3baebcf1f19Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Quelques questions précises
Aller à la page Précédente  1, 2
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 JzShadow
Ptit Nouveau


Inscrit le: 11 Déc 2013
Messages: 21
Sujets: 3
Spécialité en worldedit: Joindre les 2 bouts


MessagePosté le: 14/12/13 00:36    Sujet du message: Citer

Finalement, je vais faire comme j'ai dis tout à l'heure. L'amélioration "Equipement Complet" de base ciblera ma caserne, qui quand elle se transformera, ne formera que le Fantassin Suréquipé, le Fusilier Suréquipé et le Chevalier Suréquipé. J’enlèverai de la caserne basique l'entrainement de ces unités, car elles sont grisés et logiquement ne me servent à rien car une fois l'amélioration faite, ce ne sera plus cette caserne. Ca fera plus propre.
L’événement déclenché par "Equipement Complet" transformera toutes les unités déjà entraînées en version "suréquipé", c'est parfait.

Maintenant il ne me reste que le problème dit dans mon post précédent : J'ai ma caserne élite présente dans la liste de bâtiments que le Paysan peut faire, en grise, à coté de la basique. (elle est grise vu que son exigence "Equipement Complet" n'est pas encore remplie) Du coup, elle me bouffe une case en plus et le bâtiment "Salle des Arcanes" n’apparaît plus dans la liste, vu que la "Caserne Elite" prend sa place.
Tout rentre dans l'ordre lorsque la recherche "Equipement complet" s'achève car elle supprime de la liste des bâtiments la caserne de base.
Mais jusque là, je me retrouve avec l'ombre de la Caserne Elite et la Salle des Arcanes qui n'apparaît pas .. Je ne comprends pas
Nous sommes bien d'accord pour le Berzerker ?
Dans la caserne Orc, le chasseur de tête est dispo et il y a la recherche "Amélioration Berzerker" 2 lignes en dessous, puis lorsque l'on fait cette recherche, le Chasseur de tête Berzerker qui n'était pas visible dans la caserne avant, apparaît pour prendre la place au Chasseur de tête ??
Et bien moi, si je devais reprendre l'exemple du Berzerker, en fait, avant que je fasse la recherche "Amélioration Berzerker", le chasseur Berzerker apparaît déjà à coté du Chasseur de tête !! Alors que celui-ci n'est pas encore disponible (maintenant remplacer les terme "Amélioration Berzerker" par "Equipement Complet", "Chasseur de tête" par "Caserne" et "Chasseur Berzerker" par "Caserne Elite"..
Quelqu'un pourrait-il faire le test de son coté pour savoir si l'erreur vient de moi ou si l'on ne peut pas faire autrement ?

Merci d'avance, j'espère ne plus avoir de question après ça .. Car je culpabilise de vous déranger avec mes problèmes ...

_______________________________________________________________________

Ayane a écrit:
Les IA sont bien dans les mopaqs, tu n'as pas dut regarder dans les bons, voici par exemple Scripts/elf.ai
Secret:

Jass:
//==================================================================================================
//  $Id: elf.ai,v 1.18 2003/04/23 19:26:00 bfitch Exp $
//==================================================================================================
globals
    boolean basic_opening       = true
    boolean archer_opening      = true

    integer wave                = 0

    boolean b_acid_breath       = false
    boolean b_hero1_done        = false
    boolean b_hero2_done        = false

    integer c_altar_done        = 0
    integer c_archer            = 0
    integer c_archer_done       = 0
    integer c_ballista          = 0
    integer c_ballista_done     = 0
    integer c_bear              = 0
    integer c_bear_done         = 0
    integer c_chimaera          = 0
    integer c_chimaera_done     = 0
    integer c_dragon_done       = 0
    integer c_dryad             = 0
    integer c_dryad_done        = 0
    integer c_food_made         = 0
    integer c_food_used         = 0
    integer c_gold              = 0
    integer c_gold_owned        = 0
    integer c_hero1_done        = 0
    integer c_hero2_done        = 0
    integer c_hero3_done        = 0
    integer c_hunt_hall_done    = 0
    integer c_huntress          = 0
    integer c_huntress_done     = 0
    integer c_lore_done         = 0
    integer c_mines             = 0
    integer c_mines_done        = 0
    integer c_moon_well         = 0
    integer c_moon_well_done    = 0
    integer c_mtn_giant         = 0
    integer c_mtn_giant_done    = 0
    integer c_roost_done        = 0
    integer c_talon             = 0
    integer c_talon_done        = 0
    integer c_tree_ages_done    = 0
    integer c_tree_etern_done   = 0
    integer c_tree_life         = 0
    integer c_tree_life_done    = 0
    integer c_war_done          = 0
    integer c_wind_done         = 0
    integer c_wisp_done         = 0
    integer c_wonders_done      = 0
    integer c_zeps              = 0
endglobals

//--------------------------------------------------------------------------------------------------
//  set_skills
//--------------------------------------------------------------------------------------------------
function set_skills takes nothing returns nothing

    set skill[ 1] = SEARING_ARROWS
    set skill[ 2] = TRUESHOT
    set skill[ 3] = SEARING_ARROWS
    set skill[ 4] = TRUESHOT
    set skill[ 5] = SEARING_ARROWS
    set skill[ 6] = STARFALL
    set skill[ 7] = TRUESHOT
    set skill[ 8] = SCOUT
    set skill[ 9] = SCOUT
    set skill[10] = SCOUT

    call SetSkillArray(1,MOON_CHICK)
    call SetSkillArray(2,MOON_BABE)
    call SetSkillArray(3,MOON_HONEY)

    set skill[ 1] = FORCE_NATURE
    set skill[ 2] = ENT_ROOTS
    set skill[ 3] = FORCE_NATURE
    set skill[ 4] = ENT_ROOTS
    set skill[ 5] = FORCE_NATURE
    set skill[ 6] = TRANQUILITY
    set skill[ 7] = ENT_ROOTS
    set skill[ 8] = THORNS_AURA
    set skill[ 9] = THORNS_AURA
    set skill[10] = THORNS_AURA

    call SetSkillArray(1,KEEPER)

    set skill[ 1] = ENT_ROOTS
    set skill[ 2] = THORNS_AURA
    set skill[ 3] = ENT_ROOTS
    set skill[ 4] = THORNS_AURA
    set skill[ 5] = ENT_ROOTS
    set skill[ 6] = TRANQUILITY
    set skill[ 7] = THORNS_AURA
    set skill[ 8] = FORCE_NATURE
    set skill[ 9] = FORCE_NATURE
    set skill[10] = FORCE_NATURE

    call SetSkillArray(2,KEEPER)
    call SetSkillArray(3,KEEPER)

    set skill[ 1] = IMMOLATION
    set skill[ 2] = MANA_BURN
    set skill[ 3] = EVASION
    set skill[ 4] = MANA_BURN
    set skill[ 5] = EVASION
    set skill[ 6] = METAMORPHOSIS
    set skill[ 7] = MANA_BURN
    set skill[ 8] = EVASION
    set skill[ 9] = IMMOLATION
    set skill[10] = IMMOLATION

    call SetSkillArray(1,DEMON_HUNTER)

    set skill[ 1] = MANA_BURN
    set skill[ 2] = EVASION
    set skill[ 3] = MANA_BURN
    set skill[ 4] = EVASION
    set skill[ 5] = MANA_BURN
    set skill[ 6] = METAMORPHOSIS
    set skill[ 7] = EVASION
    set skill[ 8] = IMMOLATION
    set skill[ 9] = IMMOLATION
    set skill[10] = IMMOLATION

    call SetSkillArray(2,DEMON_HUNTER)
    call SetSkillArray(3,DEMON_HUNTER)

    set skill[ 1] = FAN_KNIVES
    set skill[ 2] = SHADOW_TOUCH
    set skill[ 3] = FAN_KNIVES
    set skill[ 4] = BLINK
    set skill[ 5] = FAN_KNIVES
    set skill[ 6] = VENGEANCE
    set skill[ 7] = SHADOW_TOUCH
    set skill[ 8] = BLINK
    set skill[ 9] = SHADOW_TOUCH
    set skill[10] = BLINK

    call SetSkillArray(1,WARDEN)
    call SetSkillArray(2,WARDEN)
    call SetSkillArray(3,WARDEN)
endfunction

//--------------------------------------------------------------------------------------------------
//  setup_force
//--------------------------------------------------------------------------------------------------
function setup_force takes nothing returns nothing
    call AwaitMeleeHeroes()
    call InitMeleeGroup()

    call SetMeleeGroup( hero_id         )
    call SetMeleeGroup( hero_id2        )
    call SetMeleeGroup( hero_id3        )
    call SetMeleeGroup( ARCHER          )
    call SetMeleeGroup( HUNTRESS        )
    call SetMeleeGroup( DRUID_TALON     )
    call SetMeleeGroup( DRUID_CLAW      )
    call SetMeleeGroup( DRYAD           )
    call SetMeleeGroup( CHIMAERA        )
    call SetMeleeGroup( MOUNTAIN_GIANT  )
    call SetMeleeGroup( FAERIE_DRAGON   )

    if GetUnitCountDone(HIPPO) > 0 then
        call SetMeleeGroup( HIPPO )
    endif

    if GetUnitCountDone(HIPPO_RIDER) > 0 then
        call SetMeleeGroup( HIPPO_RIDER )
    endif

    call SetInitialWave(10)
endfunction

//--------------------------------------------------------------------------------------------------
//  force_level
//--------------------------------------------------------------------------------------------------
function force_level takes nothing returns integer
    local integer level = 4
    set level = level +      c_dragon_done + c_talon_done
    set level = level + 2 *  c_archer_done / 3
    set level = level + 2 *  c_dryad_done
    set level = level + 3 *  c_huntress_done
    set level = level + 4 * (c_chimaera_done + c_bear_done)
    set level = level + 5 *  c_hero3_done
    set level = level + 6 * (c_hero2_done + c_mtn_giant_done)
    return level
endfunction

//--------------------------------------------------------------------------------------------------
//  attack_sequence
//--------------------------------------------------------------------------------------------------
function attack_sequence takes nothing returns nothing
    local boolean needs_exp
    local boolean has_siege
    local boolean air_units
    local integer level

    loop
        exitwhen c_hero1_done > 0 and c_archer_done >= 2
        call Sleep(2)
    endloop

    if MeleeDifficulty() == MELEE_NEWBIE then
        call Sleep(240)
    endif

    call StaggerSleep(0,2)
    loop
        loop
            exitwhen not CaptainRetreating()
            call Sleep(2)
        endloop

        set wave = wave + 1
        if wave == 2 then
            loop
                exitwhen c_archer_done >= 4
                call Sleep(2)
            endloop
        endif

        call setup_force()

        set level = force_level()
        set max_creeps = level * 4 / 5
        set min_creeps = max_creeps - 10
        if min_creeps < 0 then
            set min_creeps = 0
        endif

        set needs_exp        = take_exp and (level >= 9 or c_gold_owned < 2000)
        set has_siege        = level >= 40 or c_ballista_done > 0 or c_chimaera_done > 0 or c_mtn_giant_done > 0
        set air_units        = c_chimaera_done > 0 or c_dragon_done > 0
        set allow_air_creeps = air_units or c_archer_done > 3

        call SingleMeleeAttack(needs_exp,has_siege,false,air_units)

        if MeleeDifficulty() == MELEE_NEWBIE then
            call Sleep(60)
        endif
    endloop
endfunction

//--------------------------------------------------------------------------------------------------
//  init_vars
//--------------------------------------------------------------------------------------------------
function init_vars takes nothing returns nothing

    set b_acid_breath       = GetUpgradeLevel(UPG_CHIM_ACID) >= 1
    set b_hero1_done        = GetUnitCountDone(hero_id) > 0
    set b_hero2_done        = GetUnitCountDone(hero_id2) > 0

    set c_altar_done        = GetUnitCountDone(ELF_ALTAR)
    set c_archer            = GetUnitCount(ARCHER)
    set c_archer_done       = GetUnitCountDone(ARCHER)
    set c_ballista          = GetUnitCount(BALLISTA)
    set c_ballista_done     = GetUnitCountDone(BALLISTA)
    set c_bear              = TownCount(DRUID_CLAW)
    set c_bear_done         = TownCountDone(DRUID_CLAW)
    set c_chimaera          = GetUnitCount(CHIMAERA)
    set c_chimaera_done     = GetUnitCountDone(CHIMAERA)
    set c_dragon_done       = GetUnitCountDone(FAERIE_DRAGON)
    set c_dryad             = GetUnitCount(DRYAD)
    set c_dryad_done        = GetUnitCountDone(DRYAD)
    set c_food_made         = c_tree_life * GetFoodMade(TREE_LIFE) + c_moon_well * GetFoodMade(MOON_WELL)
    set c_food_used         = FoodUsed()
    set c_gold              = GetGold()
    set c_gold_owned        = GetGoldOwned()
    set c_hero1_done        = GetUnitCountDone(hero_id)
    set c_hero2_done        = GetUnitCountDone(hero_id2)
    set c_hero3_done        = GetUnitCountDone(hero_id3)
    set c_hunt_hall_done    = GetUnitCountDone(HUNTERS_HALL)
    set c_huntress          = GetUnitCount(HUNTRESS)
    set c_huntress_done     = GetUnitCountDone(HUNTRESS)
    set c_lore_done         = GetUnitCountDone(ANCIENT_LORE)
    set c_mines             = GetMinesOwned()
    set c_mines_done        = GetUnitCountDone(ELF_MINE) 
    set c_moon_well         = GetUnitCount(MOON_WELL)
    set c_moon_well_done    = GetUnitCountDone(MOON_WELL)
    set c_mtn_giant         = GetUnitCount(MOUNTAIN_GIANT)
    set c_mtn_giant_done    = GetUnitCountDone(MOUNTAIN_GIANT)
    set c_roost_done        = GetUnitCountDone(CHIMAERA_ROOST)
    set c_talon             = TownCount(DRUID_TALON)
    set c_talon_done        = TownCountDone(DRUID_TALON)
    set c_tree_ages_done    = TownCountDone(TREE_AGES)
    set c_tree_etern_done   = TownCountDone(TREE_ETERNITY)
    set c_tree_life         = TownCount(TREE_LIFE)
    set c_tree_life_done    = TownCountDone(TREE_LIFE)
    set c_war_done          = GetUnitCountDone(ANCIENT_WAR)
    set c_wind_done         = GetUnitCountDone(ANCIENT_WIND)
    set c_wisp_done         = GetUnitCountDone(WISP)
    set c_wonders_done      = GetUnitCountDone(DEN_OF_WONDERS)
    set c_zeps              = GetUnitCount(ZEPPELIN)

    if basic_opening then

        if b_hero2_done or (MeleeDifficulty() == MELEE_NEWBIE and c_moon_well_done >= 4) then
            set basic_opening = false
        endif

        if archer_opening and c_archer_done >= 6 then
            set archer_opening = false
        endif
    endif
endfunction

//--------------------------------------------------------------------------------------------------
//  set_vars
//--------------------------------------------------------------------------------------------------
function set_vars takes nothing returns nothing
    loop
        call init_vars()
        call Sleep(1)
    endloop
endfunction

//--------------------------------------------------------------------------------------------------
//  basics
//--------------------------------------------------------------------------------------------------
function basics takes integer food returns nothing
    local integer archers
    local integer hunts

    if archer_opening or c_hunt_hall_done < 1 then

        set archers = food / 2
        if archers > 6 then
            set archers = 6
        endif

        call SetBuildUnit( archers, ARCHER )
        return
    endif

    set hunts = (food - 2 * c_archer) / 3
    if hunts > 3 then
        set hunts = 3
    endif

    call SetBuildUnit( hunts, HUNTRESS )

    if food >= 15 then
        call SetBuildUnit( 3, ARCHER )
    endif
endfunction

//--------------------------------------------------------------------------------------------------
//  do_upgrades
//--------------------------------------------------------------------------------------------------
function do_upgrades takes nothing returns nothing

    if c_tree_etern_done >= 1 and c_hunt_hall_done >= 1 then
        call SetBuildUpgr( 1, UPG_WELL_SPRING )
    endif

    if c_dryad >= 1 and c_lore_done >= 1 then
        call SetBuildUpgr( 1, UPG_ABOLISH     )
    endif

    if c_roost_done >= 1 then
        call SetBuildUpgr( 1, UPG_CHIM_ACID   )
    endif

    if c_hunt_hall_done >= 1 then

        if c_archer + c_huntress + c_ballista >= 3 then

            call SetBuildUpgr( 1, UPG_STR_MOON      )
            call SetBuildUpgr( 1, UPG_MOON_ARMOR    )

            if c_tree_ages_done >= 1 then
                call SetBuildUpgr( 2, UPG_STR_MOON      )
                call SetBuildUpgr( 2, UPG_MOON_ARMOR    )

                if c_tree_etern_done >= 1 then
                    call SetBuildUpgr( 3, UPG_STR_MOON      )
                    call SetBuildUpgr( 3, UPG_MOON_ARMOR    )
                endif
            endif
        endif

        if c_dryad + c_mtn_giant + c_chimaera >= 3 then

            call SetBuildUpgr( 1, UPG_STR_WILD      )
            call SetBuildUpgr( 1, UPG_HIDES         )

            if c_tree_ages_done >= 1 then
                call SetBuildUpgr( 2, UPG_STR_WILD      )
                call SetBuildUpgr( 2, UPG_HIDES         )

                if c_tree_etern_done >= 1 then
                    call SetBuildUpgr( 3, UPG_STR_WILD      )
                    call SetBuildUpgr( 3, UPG_HIDES         )
                endif
            endif
        endif
    endif

    if c_mtn_giant >= 1 and c_tree_etern_done >= 1 and c_wonders_done >= 1 and c_lore_done >= 1 then
        call SetBuildUpgr( 1, UPG_HARD_SKIN   )
        call SetBuildUpgr( 1, UPG_RESIST_SKIN )
    endif

    if c_war_done >= 1 then

        if c_huntress >= 3 and c_tree_etern_done >= 1 and c_hunt_hall_done >= 1 then
            call SetBuildUpgr( 1, UPG_GLAIVE      )
            call SetBuildUpgr( 1, UPG_SCOUT       )
        endif

        if c_archer >= 3 then
            if c_tree_ages_done >= 1 then
                call SetBuildUpgr( 1, UPG_BOWS      )

                if c_tree_etern_done >= 1 and c_hunt_hall_done >= 1 then
                    call SetBuildUpgr( 1, UPG_MARKSMAN  )
                endif
            endif
        endif
        if c_ballista >= 1 then
            call SetBuildUpgr( 1, UPG_ULTRAVISION )
            call SetBuildUpgr( 1, UPG_BOLT        )
        endif
    endif

    if c_lore_done >= 1 then

        if c_bear >= 1 then

            call SetBuildUpgr( 1, UPG_DRUID_CLAW  )

            if c_tree_etern_done >= 1 then
                call SetBuildUpgr( 2, UPG_DRUID_CLAW  )
                call SetBuildUpgr( 1, UPG_MARK_CLAW   )
            endif
        endif

        if c_talon >= 1 then

            call SetBuildUpgr( 1, UPG_DRUID_TALON )

            if c_tree_etern_done >= 1 then
                call SetBuildUpgr( 2, UPG_DRUID_TALON )
                call SetBuildUpgr( 1, UPG_MARK_TALON  )
            endif
        endif
    endif
endfunction

//--------------------------------------------------------------------------------------------------
//  build_sequence
//--------------------------------------------------------------------------------------------------
function build_sequence takes nothing returns nothing
    local boolean primary_melee
    local integer wisps

    call InitBuildArray()

    if basic_opening then
        call SetBuildUnit(  1, TREE_LIFE        )
        call SetBuildUnit(  5, WISP             )
        call SetBuildUnit(  1, ELF_ALTAR        )
        call SetBuildUnit(  7, WISP             )
        call SetBuildUnit(  1, MOON_WELL        )
        call SetBuildUnit(  8, WISP             )
        call SetBuildUnit(  1, ANCIENT_WAR      )
        call SetBuildUnit(  9, WISP             )
        call SetBuildUnit(  1, hero_id          )
        call SetBuildUnit( 10, WISP             )
        call SetBuildUnit(  2, MOON_WELL        )
        call basics(2)// (  1, ARCHER           )
        call SetBuildUnit(  1, DEN_OF_WONDERS   )
        call basics(4)// (  2, ARCHER           )
        call SetBuildUnit( 11, WISP             )
        call basics(6)// (  3, ARCHER           )
        call SetBuildUnit( 12, WISP             )
        call SetBuildUnit(  1, HUNTERS_HALL     )
        call SetBuildUnit(  3, MOON_WELL        )
        call SetBuildUnit( 13, WISP             )
        call basics(8)// (  4, ARCHER           )
        call SetBuildUnit( 14, WISP             )
        call basics(10)//(  5, ARCHER           )
        call SetBuildUnit( 15, WISP             )
        call basics(15)//(  6, ARCHER           )
                       //(  1, HUNTRESS         )
        call SetBuildUnit(  1, TREE_AGES        )

        call BasicExpansion( c_mines < 2, TREE_LIFE )

        call SetBuildUpgr(  1, UPG_STR_MOON     )
        call SetBuildUpgr(  1, UPG_MOON_ARMOR   )
        call SetBuildUnit(  4, MOON_WELL        )

        if MeleeDifficulty() != MELEE_NEWBIE then
            call SetBuildUnit(  1, hero_id2     )
        endif

        return
    endif

    if c_tree_life < 1 and c_wisp_done > 0 then
        call MeleeTownHall( 0, TREE_LIFE )
        call MeleeTownHall( 1, TREE_LIFE )
        call MeleeTownHall( 2, TREE_LIFE )
    endif

    if c_tree_life_done > 0 then
        set wisps = 6 - GetWood() / 200
        if wisps < 3 then
            set wisps = 3
        endif
        if c_mines < 2 or c_tree_life_done < 2 then
            set wisps = wisps + 5
        else
            set wisps = wisps + 10
        endif
        if wisps > 15 then
            set wisps = 15
        endif
        call SetBuildNext( wisps, WISP )
    endif

    if c_gold > 500 and GetWood() < 100 then
        call SetBuildNext( 15, WISP )
    endif

    // having enough gold is the highest priority
    //
    if c_gold_owned < 2000 then
        call BasicExpansion( c_mines < 2, TREE_LIFE )
        if MeleeDifficulty() != MELEE_NEWBIE then
            call GuardSecondary( 1, 1, ANCIENT_PROTECT )
            call GuardSecondary( 1, 2, ANCIENT_PROTECT )
        endif
    endif

    // get enough moon wells to cover food need
    //
    if c_food_used + 7 > c_food_made then
        call SetBuildUnit( c_moon_well_done + 1, MOON_WELL )
    endif

    // recover heroes for basic defense
    //
    if c_altar_done >= 1 then

        if b_hero1_done and MeleeDifficulty() != MELEE_NEWBIE then
            call SetBuildUnit( 1, hero_id2 )
        else
            call SetBuildUnit( 1, hero_id  )
        endif
    else
        call SetBuildUnit( 1, ELF_ALTAR )
    endif

    // the primary melee force is the mountain giant
    //
    set primary_melee = c_lore_done >= 1 and c_wonders_done >= 1 and c_tree_ages_done >= 1
    if primary_melee then
        call SetBuildNext( 1, MOUNTAIN_GIANT )

    // the backup melee force is the huntress
    //
    else
        call SetBuildUnit( 1, ANCIENT_WAR   )
        call SetBuildNext( 3, HUNTRESS      )
    endif

    // the primary ranged force is the dryad
    //
    if c_lore_done >= 1 then
        call SetBuildUnit( 2, DRYAD )

    // the backup ranged force is the archer
    //
    else
        call SetBuildUnit( 1, ANCIENT_WAR   )
        call SetBuildUnit( 3, ARCHER        )
    endif

    // need siege to take out enemy towns and expansions
    //
    if b_acid_breath and c_roost_done >= 1 then
        call SetBuildUnit( 2, CHIMAERA )
    elseif c_mtn_giant < 1 then
        call SetBuildUnit( 2, BALLISTA )
    endif

    // if we have enough gold then advance on the tech tree
    //
    if c_gold > 1000 then

        if MeleeDifficulty() != MELEE_NEWBIE then
            call GuardSecondary( 1, 1, ANCIENT_PROTECT )
            call GuardSecondary( 1, 2, ANCIENT_PROTECT )
        endif

        call SetBuildUnit(  1, ANCIENT_WAR      )
        call SetBuildUnit(  1, HUNTERS_HALL     )
        call SetBuildUnit(  1, TREE_AGES        )
        call SetBuildUnit(  1, DEN_OF_WONDERS   )
        call SetBuildUnit(  1, ANCIENT_LORE     )
        call SetBuildUnit(  1, TREE_ETERNITY    )
        call SetBuildUnit(  1, ANCIENT_WIND     )
        call SetBuildUnit(  1, CHIMAERA_ROOST   )

        call do_upgrades()

        if c_gold > 2000 then
            call BuildFactory( ANCIENT_LORE     )
            call BuildFactory( ANCIENT_WAR      )
            call BuildFactory( CHIMAERA_ROOST   )
            call BuildFactory( ANCIENT_WIND     )
        endif

    elseif c_food_used >= UPKEEP_TIER1 then
        call do_upgrades()
    endif

    call BasicExpansion( c_mines < 2, TREE_LIFE )
    if MeleeDifficulty() != MELEE_NEWBIE then
        call GuardSecondary( 1, 1, ANCIENT_PROTECT )
        call GuardSecondary( 1, 2, ANCIENT_PROTECT )
    endif

    if c_food_used >= UPKEEP_TIER2 - 10 and c_gold < 2000 then
        return
    endif

    // build units from whatever buildings we already have
    //
    if primary_melee then
        call SetBuildNext( 3, MOUNTAIN_GIANT )
    else
        call SetBuildNext( 7, HUNTRESS )
    endif

    if c_lore_done >= 1 then
        call SetBuildNext( 4, DRYAD )
    else
        call SetBuildNext( 6, ARCHER )
    endif

    if c_tree_ages_done >= 1 then
        if c_tree_etern_done >= 1 and c_altar_done >= 1 and MeleeDifficulty() != MELEE_NEWBIE then
            call SetBuildUnit( 1, hero_id3 )
        endif

        if c_lore_done >= 1 then
            call SetBuildUnit( 1, DRUID_CLAW )
        endif
    endif

    if c_wind_done >= 1 then
        if c_wonders_done >= 1 then
            call SetBuildUnit( 1, FAERIE_DRAGON )
        endif

        call SetBuildUnit( 1, DRUID_TALON )
    endif

    if c_gold_owned < 10000 then
        call BasicExpansion( c_mines < 3, TREE_LIFE )
        if MeleeDifficulty() != MELEE_NEWBIE then
            call GuardSecondary( 2, 1, ANCIENT_PROTECT )
            call GuardSecondary( 2, 2, ANCIENT_PROTECT )
        endif
    endif

    if c_food_used >= 60 and c_zeps < 3 then
        call GetZeppelin()
    endif
endfunction

//--------------------------------------------------------------------------------------------------
//  peon_assignment
//--------------------------------------------------------------------------------------------------
function peon_assignment takes nothing returns nothing
    local integer T
    loop
        call ClearHarvestAI()

        set T = TownWithMine()

        call HarvestGold(T,4)
        call HarvestWood(0,1)
        call HarvestGold(T,1)
        call HarvestWood(0,2)

        if c_mines_done > 1 then
            call HarvestGold(T+1,5)
        endif

        call HarvestWood(0,20)

        call build_sequence()
        call Sleep(GetRandomInt(1,3))
    endloop
endfunction

//--------------------------------------------------------------------------------------------------
//   main
//--------------------------------------------------------------------------------------------------
function main takes nothing returns nothing
    call PickMeleeHero(RACE_NIGHTELF)
    call set_skills()
    call StandardAI(function SkillArrays, function peon_assignment, function attack_sequence)
    call StartThread(function set_vars)
    call PlayGame()
endfunction



Merci Ayane, mais j'ai bien dis au début que je n'avais pas regardé les scripts encore et surtout je vois que c'est du JASS .. Or je n'y connais absolument rien. J'ai dis que je m'y attaquerai plus tard, là je voudrais finir ce qui reste de mon niveau.

Et heu .. "Les IA sont bien dans les mopaqs" je t'avoue le dernier mot me laisse perplexe.
Jusqu'aujourd'hui j'ai appris seule ce que je sais de WE, alors les termes spécifiques que l'on trouve sur le net .. Me sont complètement étrangers.
J'ai simplement chercher dans le dossier "Script" de Warcraft III. Mad

EDIT Tirlititi : Tu as un bouton "Editer" pour éviter les double-posts.
_________________
Ma curiosité est ma plus grande qualité.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 14/12/13 02:14    Sujet du message: Citer

Mike O'Brien Pack => Mo'PaQ => MPQ.
http://en.wikipedia.org/wiki/Mpq
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 JzShadow
Ptit Nouveau


Inscrit le: 11 Déc 2013
Messages: 21
Sujets: 3
Spécialité en worldedit: Joindre les 2 bouts


MessagePosté le: 14/12/13 13:25    Sujet du message: Citer

> Tirlititi, merci, je sais bien pour le bouton "Editer", je l'ai déjà utilisé pour certains de mes précédents posts. Mais vu le contenu des deux derniers, il me semblait plus esthétique d'en faire un nouveau.. Je suppose que j'ai eu tort de le faire, ce n'était pas pour embêter.

> Ayane, oui déjà MPQ me parle plus ! Même si je ne savais pas non plus ce que ça voulait dire, grâce à toi j'ai appris une chose en plus pour ma culture générale. :p
Donc j'ai vu les fichiers MPQs, mais je ne sais pas où tu as trouvé celui que tu m'as montré.. Le fichier s'appelle comment ? Et avec quel application j'ouvre un MPQ ? J'ai essayé tout bêtement avec un bloc note mais le chargement n'en finit pas. J'ai téléchargé MPQ Viewer sur JudgeHype mais ça ne marche pas .. Bref, je suis un peu perdue !
_________________
Ma curiosité est ma plus grande qualité.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 14/12/13 14:00    Sujet du message: Citer

Pfffff... C'est dégueulasse comment Blizzard a fait ça.
Le fait que le Berzerker Troll ne soit pas disponible (même grisé) est codé dans le fichier Blizzard.j, qui est un fichier de déclencheurs.
Même Blizzard fait des sorts par déclencheurs, quoi !

Donc pour ton problème, faut faire pareil : faut passer par les déclencheurs.
Gui:
Trigger:
InitTechTree
Collapse Evénements
Map initialization
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 12, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Current research level of Equipement Complet  for (Player((Integer A)))) Egal à  (==) 0
Collapse Alors - Actions
Joueur - Set the max research level of Caserne Elite  to 0 for (Player((Integer A)))
Collapse Sinon - Actions

J'utilise "Convert Player index to Player" pour "Player((Integer A))".

Alternativement, tu peux aller dans "Scénario -> Arbre des technologies" et y décocher la case "Caserne Elite".

Désolé, je pensais vraiment que mettre l'équivalent dépendance dans l'éditeur d'objets suffirait.
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 JzShadow
Ptit Nouveau


Inscrit le: 11 Déc 2013
Messages: 21
Sujets: 3
Spécialité en worldedit: Joindre les 2 bouts


MessagePosté le: 14/12/13 14:56    Sujet du message: Citer

Merci beaucoup Tirlititi ! Ta réaction m'a fait plaisir, j'ai moins l'impression que ma question était idiote vu que tu ne t'attendais pas toi même à la solution !
Je vais donc passer par les événements comme tu me l'as dis.
J'ai regardé aussi l'arbre de technologie mais ma caserne élite n'y apparait pas, car dans le déroulant mêlée/campagne il n'y a pas "personnalisé", donc aucunes de mes unités personnalisées ne peuvent apparaître (à part s'il faut y recharger les donnés mais normalement c'est déjà fait). Mais bon, si l'événement permet de passer outre, ça sera parfait. Smile

Juste un point que je n'arrive pas à reproduire

Gui:
Trigger:
(Current research level of Equipement Complet  for (Player((Integer A)))) Egal à  (==) 0


J'ai beau chercher, surement mal d'ailleurs, mais je ne trouve pas de ligne ayant "Current resarch" .. Tout ce que j'arrive à faire, mais je sais que j'ai faux car je ne précise pas quel joueur, c'est

Gui:
Trigger:
Equipement complet  Différent de (Researched tech-type)


Edit JzShadow : En fait j'ai rien dis, dans l'arbre des technologies, je cherchais bêtement Personnalisé>Bâtiment, mais c'était juste dans Mêlée>Spécial, donc j'ai trouvé la caserne élite.
D'ailleurs je viens de faire le test, c'est parfait comme ça, pile comme je le souhaitais. Merci infiniment à tous (enfin surtout Tirlititi :p)
Mais je voudrais quand même éclaircir le point sur l'événement !

Maintenant je vais faire la même chose avec "Chaos" pour les Orcs ! Et des améliorations similaires pour les autres races même si je n'ai pas d'idées pour les Elfs et les Undeads .. Enfin voilà, après ta réponse pour l'événement, mon sujet sera clos. Smile
_________________
Ma curiosité est ma plus grande qualité.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1) Ayane (Quantité : 1)

MessagePosté le: 14/12/13 16:35    Sujet du message: Citer

Pour ouvrir les Mo'PaQ j'utilise Ladik's MPQ Editor (http://www.zezula.net/en/mpq/download.html) mais tu en as d'autres, j'en avais même programmé un (http://worldedit.free.fr/forum/viewtopic.php?t=968).
Ce qui est intéressant c'est que tu peux y trouver un bon nombre de fichiers de configuration du jeu et que ta carte est en elle même une archive Mo'PaQ qui met à jour les archives du jeu, tu peux donc remplacer tous les fichiers qui ne sont pas encore utilisées lorsque tu ouvre ta carte. C'est ainsi que l'on faisait avant TFT pour avoir des unités/sorts ou autres personnalisés. Par exemple on peut lancer des éclairs, soit par sort ou par déclencheur, avec TFT ils n'ont pas sorti d'éditeur pour cela mais il y a un fichier XSL (s'ouvre avec un tableur) qui contient la table des données sur les types d'éclairs, tu peux donc en ajouter de nouveaux avec des paramètres spéciaux; il me semble que j'avais fait un tutoriel dessus.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 14/12/13 18:22    Sujet du message: Citer

De rien !

Je plussoie Ayane, c'est vraiment intéressant d'aller farfouiller dans les archives de Warcraft.

Pour ta question, ça se trouve dans "Integer Comparison". Quand tu cherches une condition, tu dois toujours regarder de quel type sont les objets comparés. Là, tu as un "0" d'un côté donc c'est facile : ce sont des entiers (un réel aurait été "0.00").

Bonne continuation et n'hésite pas à poser d'autres questions (y'a pas de question idiote !).
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 JzShadow
Ptit Nouveau


Inscrit le: 11 Déc 2013
Messages: 21
Sujets: 3
Spécialité en worldedit: Joindre les 2 bouts


MessagePosté le: 14/12/13 19:35    Sujet du message: Citer

>Tirlititi, j'évite de farfouiller lorsque je ne sais pas dans quoi je mets les pieds. Wink
Et une dernière fois : Merci !

>Ayane, oui j'ai survolé tout tes tutos (faute de temps) et même si je ne les ai pas lu en détail et sans vouloir fayoter, ils sont vraiment intéressant !

Citation:
Par exemple on peut lancer des éclairs, soit par sort ou par déclencheur, avec TFT ils n'ont pas sorti d'éditeur pour cela mais il y a un fichier XSL (s'ouvre avec un tableur) qui contient la table des données sur les types d'éclairs


C'est rigolo que tu me dises vu que justement, pour un pouvoir à éclair j'avais une idée mais je ne trouvais pas comment la réaliser, j'irais voir par moi même avec ce que vous m'avez déjà donné.

Au sujet de ton logiciel pour lire les MPQ, ça m'embète, je l'ai téléchargé, je l'ai lancé, je l'ai réglé comme ils le préconisent. J'ai mis pour "Work directory" le chemin pour aller jusqu'à Warcraft III, puis j'ai mis le chemin où se trouve le programme dans "Listfile path". (c'est peut être là le problème), j'ouvre un fichier MPQ et un message d'erreur apparaît et me dit "Accès refusé" .. Alors soit j'ai mal remplis les chemins, soit il fallait mettre le programme autre part ou alors ce n'est pas un MPQ que j'ai le droit d'ouvrir !
En fait clairement, pour tester j'ai essayé d'ouvrir avec Ladik's MPQ Editor 3 fichiers différents : War3, War3Patch, War3x .. Toujours le même message d'erreur. Et tu m'as parlé de ces fichiers comme s'ils étaient courant, mais moi je ne trouve pas beaucoup de MPQ, seulement 4 dans le dossier "Warcraft III" et 9 dans le dossier "Movies" qui est dans "Warcraft III", nul par ailleurs je n'ai vu de MPQ. Et aucuns "XSL" ..
Je trouve ça trop bête de pas les trouver, ça ne peut que être utile. Crying or Very sad
_________________
Ma curiosité est ma plus grande qualité.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 14/12/13 20:43    Sujet du message: Citer

C'est le système de sécurité de ton système d'exploitation. Clic-droit sur Ladik's MPQ Editor et lancer en tant qu'administrateur, cela devrait te permettre d'ouvrir les fichiers avec cette instance.
Et oui il n'y a pas de masses de fichiers mpq dans Warcraft3, ceux dans movies ne sont en réalité pas des Mo'PaQ mais des mpg, si tu renomme en .mpg tu devrais pouvoir les ouvrir avec ton lecteur vidéo (ou tu peux les ouvrir sans les renommer à partir de ton lecteur en lui fournissant le fichier).
Tu peux aussi ouvrir les cartes.
Les fichiers xsl se trouvent dans les archives, tu pourras donc y accéder une fois que tu pourras les ouvrir.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 JzShadow
Ptit Nouveau


Inscrit le: 11 Déc 2013
Messages: 21
Sujets: 3
Spécialité en worldedit: Joindre les 2 bouts


MessagePosté le: 14/12/13 21:47    Sujet du message: Citer

Ah oui, en effet. :p
Merci Ayane.

J'ai eu toutes mes réponses donc je clos mon sujet !
_________________
Ma curiosité est ma plus grande qualité.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2
Page 2 sur 2
La question posée dans ce topic a été résolue !

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com