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

Bug Duel

 
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
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 11/04/13 18:41    Sujet du message: Bug Duel Citer

Alors, voila dans mon systeme de duel j'ai un problème assez embarrassant:
1.Les duellistes ne sont pas ramenés a leur position d'avant le combat.

Declancheur:
Secret:

CheckHeroInt[0] va de la valeur 1 a 5, et [1] 7 a 11
Gui:
Trigger:
start fight
Evénements
Conditions
Collapse Actions
Set DUDU_Finish = FALSE
Set DUDU_TempPoint = (Random point in DUDU wait T 1 <gen>)
Set DUDU_TempPoint2 = (Random point in DUDU wait T 2 <gen>)
Set DUDU_Leader[0] = Pas d'unité
Set DUDU_Leader[1] = Pas d'unité
Collapse For each (Integer A) from 1 to 5, do (Actions)
Collapse Boucle - Actions
Custom script:   call RemoveLocation ( udg_DUDU_Pt_saveHero[GetForLoopIndexA()])
Collapse For each (Integer A) from 7 to 11, do (Actions)
Collapse Boucle - Actions
Custom script:   call RemoveLocation ( udg_DUDU_Pt_saveHero[GetForLoopIndexA()])
Wait 0.50 seconds
For each (Integer A) from 1 to Check_Hero_int[0], do (Set DUDU_Pt_saveHero[(Integer A)] = (Position of Heroes[(Integer A)]))
For each (Integer A) from 7 to Check_Hero_int[1], do (Set DUDU_Pt_saveHero[(Integer A)] = (Position of Heroes[(Integer A)]))
For each (Integer A) from 1 to Check_Hero_int[0], do (Set DUDU_Angle_saveHero[(Integer A)] = (Facing of Heroes[(Integer A)]))
For each (Integer A) from 7 to Check_Hero_int[1], do (Set DUDU_Angle_saveHero[(Integer A)] = (Facing of Heroes[(Integer A)]))
Collapse Groupe unité - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is Un héros) Egal à  TRUE)) and do (Actions)
Collapse Boucle - Actions
Unité - Make (Matching unit) Invulnérable
Unité - Pause (Picked unit)
For each (Integer A) from 1 to Check_Hero_int[0], do (Unité - Move Heroes[(Integer A)] instantly to DUDU_TempPoint, facing 0.00 degrees)
For each (Integer A) from 7 to Check_Hero_int[1], do (Unité - Move Heroes[(Integer A)] instantly to DUDU_TempPoint2, facing 180.00 degrees)
Custom script:   call RemoveLocation( udg_DUDU_TempPoint )
Custom script:   call RemoveLocation( udg_DUDU_TempPoint2 )
Collapse For each (Integer A) from 1 to 10, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
DUDU_Leader[0] Egal à  Pas d'unité
Collapse Alors - Actions
Set DUDU_Leader[0] = Heroes[(Random integer number between 1 and Check_Hero_int[0])]
Sinon - Actions
Set DUDU_Leader[1] = Heroes[(Random integer number between 7 and Check_Hero_int[1])]
Collapse For each (Integer A) from 1 to 10, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
DUDU_Leader[1] Egal à  Pas d'unité
Collapse Alors - Actions
Set DUDU_Leader[1] = Heroes[(Random integer number between 7 and Check_Hero_int[1])]
Sinon - Actions
Unité - Move DUDU_Leader[0] instantly to (Center of DUDU Spawn Hero team 1 <gen>), facing 0.00 degrees
Unité - Move DUDU_Leader[1] instantly to (Center of DUDU Spawn Hero team 2 <gen>), facing 180.00 degrees
Wait 2.00 seconds
Unité - Reprendre DUDU_Leader[0]
Unité - Reprendre DUDU_Leader[1]
Unité - Make DUDU_Leader[0] Vulnérable
Unité - Make DUDU_Leader[1] Vulnérable
Unité - Set life of DUDU_Leader[0] to 100.00%
Unité - Set life of DUDU_Leader[1] to 100.00%
Unité - Set mana of DUDU_Leader[0] to 100.00%
Unité - Set mana of DUDU_Leader[1] to 100.00%
Unité - Reset ability cooldowns for DUDU_Leader[0]
Unité - Reset ability cooldowns for DUDU_Leader[1]
Déclencheur - Turn on fight kill <gen>
Déclencheur - Turn on anti cheat <gen>
Déclencheur - Turn off (This trigger)
Gui:
Trigger:
fight kill
Collapse Evénements
Unité - A unit Meurt
Collapse Conditions
((Triggering unit) is Un héros) Egal à  TRUE
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Dying unit) Egal à  DUDU_Leader[0]
Collapse Alors - Actions
Déclencheur - Turn off anti cheat <gen>
Joueur - Add (((Owner of DUDU_Leader[1]) Or actuel) / 10) to (Owner of (Killing unit)) Or actuel
Partie - Display to (All players) the text: ((Name of (Owner of DUDU_Leader[1])) + ( win  + (String((((Owner of DUDU_Leader[0]) Or actuel) / 10)))))
Set DUDU_Finish = TRUE
Collapse Sinon - Actions
Do nothing
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Dying unit) Egal à  DUDU_Leader[1]
Collapse Alors - Actions
Déclencheur - Turn off anti cheat <gen>
Joueur - Add (((Owner of DUDU_Leader[0]) Or actuel) / 10) to (Owner of (Killing unit)) Or actuel
Partie - Display to (All players) the text: ((Name of (Owner of DUDU_Leader[0])) + ( win  + (String((((Owner of DUDU_Leader[1]) Or actuel) / 10)))))
Set DUDU_Finish = TRUE
Collapse Sinon - Actions
Do nothing
Déclencheur - Run start fight chrono exe <gen> (ignoring conditions)
Collapse For each (Integer A) from 1 to Check_Hero_int[0], do (Actions)
Collapse Boucle - Actions
Caméra - Pan camera for (Owner of Heroes[(Integer A)]) to DUDU_Pt_saveHero[(Integer A)] over 0.00 seconds
Unité - Move Heroes[(Integer A)] instantly to DUDU_Pt_saveHero[(Integer A)], facing DUDU_Angle_saveHero[(Integer A)] degrees
Unité - Make Heroes[(Integer A)] Vulnérable
Collapse For each (Integer A) from 7 to Check_Hero_int[1], do (Actions)
Collapse Boucle - Actions
Caméra - Pan camera for (Owner of Heroes[(Integer A)]) to DUDU_Pt_saveHero[(Integer A)] over 0.00 seconds
Unité - Move Heroes[(Integer A)] instantly to DUDU_Pt_saveHero[(Integer A)], facing DUDU_Angle_saveHero[(Integer A)] degrees
Unité - Make Heroes[(Integer A)] Vulnérable
Unité - Reprendre all units
Collapse Groupe unité - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is Un héros) Egal à  TRUE)) and do (Actions)
Collapse Boucle - Actions
Unité - Make (Matching unit) Vulnérable
Déclencheur - Turn off (This trigger)



voila merci d'avance
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
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: 13/04/13 16:40    Sujet du message: Citer

Ça devrait pourtant marcher. Vérifie que les actions sont bien exécutées jusqu'à la boucle qui est censée faire revenir les héros.

Sinon, montre nous le déclo "start fight chrono exe"?
_________________
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é
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 14/04/13 15:09    Sujet du message: Citer

En testant avec un ami, lors des duuel lui il est ramené alors que moi non donc je sais au moins que la fin du déclo fonctionne .... mais parfois ca alterne et c'est lui qui n'est pas ramené.

Gui:
Trigger:
start duel chrono
Collapse Evénements
Temps - Compteur__dudu expires
Conditions
Collapse Actions
Déclencheur - Turn off (This trigger)
Déclencheur - Run start fight <gen> (ignoring conditions)
Compte à  rebours - Start Compteur__dudu_2 as a Un coup timer that will expire in 180.00 seconds
Compte à  rebours - Create a timer window for Compteur__dudu_2 with title End fight in
Set Fenetre__compteur_dudu_2 = (Last created timer window)
Compte à  rebours - Pause Compteur__dudu
Compte à  rebours - Masquer Fenetre__compteur_dudu
Compte à  rebours - Montrer Fenetre__compteur_dudu_2
Wait 181.00 seconds
Déclencheur - Turn off anti cheat <gen>
Déclencheur - Turn off fight kill <gen>
If (DUDU_Finish Différent de TRUE) then do (Déclencheur - Run start fight chrono exe <gen> (ignoring conditions)) else do (Do nothing)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
DUDU_Finish Différent de TRUE
Collapse Alors - Actions
Collapse For each (Integer A) from 1 to Check_Hero_int[0], do (Actions)
Collapse Boucle - Actions
Caméra - Pan camera for (Owner of Heroes[(Integer A)]) to DUDU_Pt_saveHero[(Integer A)] over 0.00 seconds
Unité - Move Heroes[(Integer A)] instantly to DUDU_Pt_saveHero[(Integer A)], facing DUDU_Angle_saveHero[(Integer A)] degrees
Unité - Make Heroes[(Integer A)] Vulnérable
Collapse For each (Integer A) from 7 to Check_Hero_int[1], do (Actions)
Collapse Boucle - Actions
Caméra - Pan camera for (Owner of Heroes[(Integer A)]) to DUDU_Pt_saveHero[(Integer A)] over 0.00 seconds
Unité - Move Heroes[(Integer A)] instantly to DUDU_Pt_saveHero[(Integer A)], facing DUDU_Angle_saveHero[(Integer A)] degrees
Unité - Make Heroes[(Integer A)] Vulnérable
Unité - Reprendre all units
Collapse Groupe unité - Pick every unit in (Units in (Playable map area) matching (((Picked unit) is Un héros) Egal à  TRUE)) and do (Actions)
Collapse Boucle - Actions
Unité - Make (Matching unit) Vulnérable
Set DUDU_Finish = TRUE
Sinon - Actions
Wait 5.00 seconds
Déclencheur - Turn on (This trigger)

_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
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/04/13 19:26    Sujet du message: Citer

Je vois toujours pas, mais je suppose que c'est soit un problème d'index (tes héros vont bien de 1 à 5 et de 7 à 11?) soit que la variable est utilisée autre part.

Essaie en désactivant les lignes "call RemoveLocation ( udg_DUDU_Pt_saveHero[GetForLoopIndexA()])" du début.
_________________
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é
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 11/11/13 12:06    Sujet du message: Citer

Hug,
Me voila de retour pour le système que j'ai surnommé le maudit, toute mes tentatives de purification ont été un échec.
J'ai essayé les hashtable, les différentes fonction permetant de modifier la position d'une unité : rien nada.
Les joueur ne sont pas ramené a leur position d'avant le duel et reste bloqué dans l'arène
Je suis déséperé

Jass:
function Trig_Start_Fight_Group takes nothing returns nothing
    call SetUnitInvulnerable(GetEnumUnit(), true)
    call PauseUnit(GetEnumUnit(), true)
endfunction

function Trig_Start_Fight_Actions takes nothing returns nothing
    local integer i
    local integer rd1
    local integer rd2
    local location p
    local group g = CreateGroup()
    set udg_DUDU_Finish = false
    set udg_DUDU_Leader[0] = null
    set udg_DUDU_Leader[1] = null
    set i = 0
    loop
        exitwhen i > 10
        set udg_DUDU_Pt_saveHero[i] = GetUnitLoc(udg_Heroes[i])
        set udg_DUDU_Angle_saveHero[i] = GetUnitFacing(udg_Heroes[i])
        set i = i + 1
    endloop
    set g = GetUnitsInRectAll(GetPlayableMapRect())
    call ForGroup(g, function Trig_Start_Fight_Group)
    call DestroyGroup(g)
    set i = 0
    loop
        exitwhen i > 10
        if ( i < 6 ) then
            set p = GetRandomLocInRect(gg_rct_DUDU_wait_T_1)
            call SetUnitPositionLocFacingBJ(udg_Heroes[i], p, 0.00)
            call PanCameraToTimedLocForPlayer(GetOwningPlayer(udg_Heroes[i]), p, 0)

        else
            set p = GetRandomLocInRect(gg_rct_DUDU_wait_T_2)
            call SetUnitPositionLocFacingBJ(udg_Heroes[i], p, 180.00)
            call PanCameraToTimedLocForPlayer(GetOwningPlayer(udg_Heroes[i]), p, 0)
        endif
        call RemoveLocation(p)
        set i = i + 1
    endloop
    set i = 1
    loop
        exitwhen i > 1
        set rd1 = GetRandomInt(0, 4)
        set rd2 = GetRandomInt(6, 10)
        if ( udg_DUDU_Leader[0] == null ) then
            set udg_DUDU_Leader[0] = udg_Heroes[rd1]
        endif
        if ( udg_DUDU_Leader[1] == null ) then
            set udg_DUDU_Leader[1] = udg_Heroes[rd2]
        endif
        if ( udg_DUDU_Leader[0] != null and udg_DUDU_Leader[1] != null ) then
            set i = i + 1
        endif
    endloop
    set p = GetRectCenter(gg_rct_DUDU_Spawn_Hero_team_1)
    call SetUnitPositionLocFacingBJ(udg_DUDU_Leader[0], p, 0)
    call RemoveLocation(p)
    set p = GetRectCenter(gg_rct_DUDU_Spawn_Hero_team_2)
    call SetUnitPositionLocFacingBJ(udg_DUDU_Leader[1], p, 180)
    call RemoveLocation(p)
    call TriggerSleepAction(2.00)
    call SetUnitForFight ( udg_DUDU_Leader[0] )
    call SetUnitForFight ( udg_DUDU_Leader[1] )
    call EnableTrigger( gg_trg_Fight_Kill )
    call EnableTrigger( gg_trg_anti_cheat )
    call DisableTrigger( GetTriggeringTrigger() )
   
endfunction

//===========================================================================
function InitTrig_Start_Fight takes nothing returns nothing
    set gg_trg_Start_Fight = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Start_Fight, function Trig_Start_Fight_Actions )
endfunction


Jass:
function Trig_Fight_Kill_Conditions takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_HERO) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Fight_Kill_Group takes nothing returns nothing
    call SetUnitInvulnerable(GetEnumUnit(), false)
    call PauseUnit(GetEnumUnit(), false)
endfunction
   

function Trig_Fight_Kill_Actions takes nothing returns nothing
    local unit u = GetTriggerUnit()
    local integer i
    local real r
    local location p
    local group g = CreateGroup()
    local integer GoldAmount = GetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD)
    local player killer = GetOwningPlayer(GetKillingUnitBJ())
   
    if ( u == udg_DUDU_Leader[0] ) then
        call DisableTrigger( gg_trg_anti_cheat )
        call AdjustPlayerStateBJ( GoldAmount / 10 , killer, PLAYER_STATE_RESOURCE_GOLD)
        call DisplayTextToForce( GetPlayersAll(), ( GetPlayerName(killer) + ( "win" + I2S( GoldAmount /10))))
        set udg_DUDU_Finish = true
    endif
    if ( u == udg_DUDU_Leader[1] ) then
        call DisableTrigger( gg_trg_anti_cheat )
        call AdjustPlayerStateBJ( GoldAmount / 10 , killer, PLAYER_STATE_RESOURCE_GOLD)
        call DisplayTextToForce( GetPlayersAll(), ( GetPlayerName(killer) + ( "win" + I2S( GoldAmount /10))))
        set udg_DUDU_Finish = true
    endif
    call TriggerExecute( gg_trg_start_fight_chrono_exe )
    call TriggerSleepAction(2.00)
    set i = 0
    loop
        exitwhen i > 10
        call PanCameraToTimedLocForPlayer( GetOwningPlayer(udg_Heroes[i]), udg_DUDU_Pt_saveHero[i], 0.00)
        call SetUnitPosition(udg_Heroes[i], GetLocationX(udg_DUDU_Pt_saveHero[i]), GetLocationY(udg_DUDU_Pt_saveHero[i]))
        //call SetUnitPositionLocFacingBJ(udg_Heroes[i], udg_DUDU_Pt_saveHero[i], udg_DUDU_Angle_saveHero[i])
        call RemoveLocation(p)
        call TriggerSleepAction(0.25)
    endloop
    set g = GetUnitsInRectAll(GetPlayableMapRect())
    call ForGroup(g, function Trig_Fight_Kill_Group)
    call DestroyGroup(g)
    call DisableTrigger( GetTriggeringTrigger() )
endfunction

//===========================================================================
function InitTrig_Fight_Kill takes nothing returns nothing
    set gg_trg_Fight_Kill = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Fight_Kill, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_Fight_Kill, Condition( function Trig_Fight_Kill_Conditions ) )
    call TriggerAddAction( gg_trg_Fight_Kill, function Trig_Fight_Kill_Actions )
endfunction


J'ai l'impression que les position des unités ne sont pas sauvegarder dans la variable point mais je comprend pas pourquoi
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 11/11/13 17:43    Sujet du message: Citer

Essaie d'ajouter un BJDebugMsg qui donne les x et y des héros avant le duduel et après, ainsi on saura si il y a un réel problème d'assignation où si c'est au moment de récupérer la valeur que sa bloque.
_________________
Inactif(Enfn presque)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


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

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

MessagePosté le: 11/11/13 19:16    Sujet du message: Citer

Modifier une unité sur un PauseUnit peuvent entraîner différents bogues dont certains exploitables.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 12/11/13 12:54    Sujet du message: Citer

Ayane a écrit:
Modifier une unité sur un PauseUnit peuvent entraîner différents bogues dont certains exploitables.


Meh Zenkor ?
_________________
Le violet, c'est moche.
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 -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
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