Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMé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

Mort indetectable

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 ArnaudB
Membre honoraire


Inscrit le: 28 Aoû 2007
Messages: 243
Sujets: 27
Spécialité en worldedit: Modeling, trigger, Objet & units


MessagePosté le: 19/12/09 12:43    Sujet du message: Mort indetectable Citer

Bonjour, c'est encore moi ^^. Ayant resolu une bonne partie de problèmes de codage que j'avais (une bonne centaine sans doute) il me reste un déclencheur qui bloque inexplicablement.

Voila :

le trigger bloque dès le début il semble car le message "blocking" n'est même pas afficher. Je précise que la condition d'avant était différente mais ne marchait pas non plus.

Jass:
function Trig_AuraBuilding_Dies_Conditions takes nothing returns boolean
local unit u = GetDyingUnit()
    if (GetUnitTypeId(u) == 'h007') or (GetUnitTypeId(u) == 'h029') or (GetUnitTypeId(u) == 'h028') or (GetUnitTypeId(u) == 'h027') or (GetUnitTypeId(u) == 'h01R') or (GetUnitTypeId(u) == 'h02E') or (GetUnitTypeId(u) == 'h003') == true then
        return true
    endif
    return false
endfunction

///Functions
function IUH takes nothing returns boolean
local unit u = GetFilterUnit()
if (IsUnitType (u, UNIT_TYPE_GIANT)) and (GetUnitAbilityLevel(u, udg_Buff) > 0) == true then
set u = null
return true
endif
set u = null
return false
endfunction

function Trig_AuraBuilding_Dies_Actions takes nothing returns nothing
local unit u = GetDyingUnit()
local integer i = GetPlayerId(GetOwningPlayer(u)) + 1
local group g
call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, "blocking !!!" )
    //Marketplace
    if ( GetUnitTypeId(u) == 'h007' ) then
    call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, "It's not Working !!!" )
        set udg_Buff = 'B005'
        call QuestMessageBJ( GetPlayersAll(), bj_QUESTMESSAGE_UPDATED, "It's Working !!!" )
        set g = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 1.00 ) )
    endif
    //Tavern
    if ( GetUnitTypeId(u) == 'h029' ) then
        set udg_Buff = 'B004'
        set g = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 2.00 ) )
    endif
    //Church
    if ( GetUnitTypeId(u) == 'h028' ) then
        set udg_Buff = 'B001'
        set g = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 2.00 ) )
    endif
    //Theater
    if ( GetUnitTypeId(u) == 'h027' ) then
        set udg_Buff = 'B002'
        set g = GetUnitsInRangeOfLocMatching(1000.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] -( I2R(CountUnitsInGroup(g)) * 2.00 ) )
    endif
    //ShoppingMall
    if ( GetUnitTypeId(u) == 'h01R' ) then
        set udg_Buff = 'B017'
        set g = GetUnitsInRangeOfLocMatching(750.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 2.00 ) )
    endif
    //SwimmingPool
    if ( GetUnitTypeId(u) == 'h02E' ) then
        set udg_Buff = 'B018'
        set g = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 3.00 ) )
    endif
    //Campfire
    if ( GetUnitTypeId(u) == 'h003' ) then
        set udg_Buff = 'B006'
        set g = GetUnitsInRangeOfLocMatching(500.00, GetUnitLoc(u), Condition(function IUH))
        set udg_CitizensBonus[i] = ( udg_CitizensBonus[i] - ( I2R(CountUnitsInGroup(g)) * 1.50 ) )
    endif
endfunction



//===========================================================================
function InitTrig_AuraBuilding_Dies takes nothing returns nothing
    set gg_trg_AuraBuilding_Dies = CreateTrigger(  )
    call DisableTrigger( gg_trg_AuraBuilding_Dies )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(0), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(1), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(2), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(3), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(4), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(5), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(6), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(7), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(8), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(9), EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_AuraBuilding_Dies, Condition( function Trig_AuraBuilding_Dies_Conditions ) )
    call TriggerAddAction( gg_trg_AuraBuilding_Dies, function Trig_AuraBuilding_Dies_Actions )
endfunction



Et voila l'ancienne condition :

Jass:
function Trig_AuraBuilding_Dies_Copier_Conditions takes nothing returns boolean
    if ( not ( udg_Empire[GetConvertedPlayerId(GetOwningPlayer(GetDyingUnit()))] == 1 ) ) then
        return false
    endif
    return true
endfunction


Je précise si ça peut aider que la map est Heroes and Empires, que les bâtiments détruit sont les bâtiments a auras augmentant la population (donc des bâtiments). Qu'ils sont invulnérables durant les 10eres min (= la où j'ai testé) et qu'il se font KILL (j'ai vérifie, pas remove) via une capacité qui le tue via déclencheur.

Quelqu'un a une idée ? (me manque plus que ça pour que la map soit suffisament jouable snif)
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 ArnaudB
Membre honoraire


Inscrit le: 28 Aoû 2007
Messages: 243
Sujets: 27
Spécialité en worldedit: Modeling, trigger, Objet & units


MessagePosté le: 20/12/09 15:30    Sujet du message: Citer

I want a trophy for this one :

Jass:
function InitTrig_AuraBuilding_Dies takes nothing returns nothing
    set gg_trg_AuraBuilding_Dies = CreateTrigger(  )
   ---->>>> call DisableTrigger( gg_trg_AuraBuilding_Dies )<<<<----
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(0), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(1), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(2), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(3), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(4), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(5), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(6), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(7), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(8), EVENT_PLAYER_UNIT_DEATH )
    call TriggerRegisterPlayerUnitEventSimple( gg_trg_AuraBuilding_Dies, Player(9), EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_AuraBuilding_Dies, Condition( function Trig_AuraBuilding_Dies_Conditions ) )
    call TriggerAddAction( gg_trg_AuraBuilding_Dies, function Trig_AuraBuilding_Dies_Actions )
endfunction


I belive no-one (me include) who saw that trigger had eyes ^^'
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

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

MessagePosté le: 20/12/09 16:11    Sujet du message: Citer

Utilise des boucles pour que ce soit plus facile à lire. Un peu plus d'indentation ne serait pas de refus non plus.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 ArnaudB
Membre honoraire


Inscrit le: 28 Aoû 2007
Messages: 243
Sujets: 27
Spécialité en worldedit: Modeling, trigger, Objet & units


MessagePosté le: 20/12/09 16:36    Sujet du message: Citer

-Problème résolu depuis dernier message, par contre tu veux dire quoi par boucle la ? je peut pas vraiment en faire avec des ID d'unit.
-Indentation ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Cobrand
Floodeur prématuré


Inscrit le: 06 Juin 2008
Messages: 635
Sujets: 38
Spécialité en worldedit: Manger des pommes à la sauce Jass.


MessagePosté le: 20/12/09 18:06    Sujet du message: Citer

Bien sur que si tu peux :
Jass:

set IdIndex[0] = 'h007'
set IdIndex2[0] = 'B005'
//ect ...

Et grâce à ça tu fais une boucle.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1
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