Page 1 sur 1

[SCRIPT] Comment combattre en jonglant avec les combinaisons arc et épée+bouclier ?

Posté : sam. 23 mai 2015, 16:18
par Cocrane
En fonction de la distance avec le groupe du Charname, je désire que l'ennemi combatte avec une arme de mêlée ou de distance.

Le script fonctionne bien si j'ai la combinaison "Arme de jet ou Épée". Ça ne marche plus si le combattant est équipé d'un bouclier. L'arme de jet n'est jamais utilisé.

Le bouclier gène visiblement vu que l'arme de jet est à deux mains...

Qui a une idée pour traiter ce problème ?

Le script de base est celui ci :

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
THEN
  RESPONSE #100
    EquipRanged()
    AttackReevaluate(Nearestenemyof(Myself),30)
END

Posté : sam. 23 mai 2015, 16:29
par deratiseur
Ajoute une instruction "remove bouclier x" avant "equiper arme de jet"
et ajoute une instruction "creer le bouclier x dans la main secondaire" juste après l'instruction "équiper arme de mélée"
Il n'a pas de bouclier dans son inventaire quand il porte son arme de JET (edit), donc si ça doit être un bouclier dropable, rajoute une instruction pour le recréer dans l'inventaire quand il prend son arme de jet/le supprimer (car il serait en double) quand il s'équipe de son arme de mélée.

Posté : lun. 25 mai 2015, 22:50
par Cocrane
Code classique:

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
  Range(Nearestenemyof(Myself),4)
THEN
  RESPONSE #100
    EquipMostDamagingMelee()
    AttackReevaluate(Nearestenemyof(Myself),30)
END

IF
  See(Nearestenemyof(Myself))
  !Range(Nearestenemyof(Myself),4)
THEN
  RESPONSE #100
    EquipRanged()
    AttackReevaluate(Nearestenemyof(Myself),30)
END
On a une bonne alternance entre l'épée et l'arc.

Je rajoute le bouclier:
Le bouclier n'est pas compatible avec l'arc. Donc l'arc doit être absent pour pouvoir le placer. Et inversement.

Code : Tout sélectionner

// Corps à corps: on supprime l'arc et on ajoute le bouclier
IF
  See(Nearestenemyof(Myself))
  Range(Nearestenemyof(Myself),4)
  !hasItem("SHLD01",myself)
THEN
  RESPONSE #100
    DestroyItem("BOW03")
    GiveItemCreate("SHLD01",myself,1,0,0) 
    ActionOverride(myself,FillSlot(SLOT_SHIELD)) 
  
    EquipMostDamagingMelee()
    AttackReevaluate(Nearestenemyof(Myself),30)
END

// A distance: on supprime le bouclier et on ajoute l'arc
IF
  See(Nearestenemyof(Myself))
  !Range(Nearestenemyof(Myself),4)
  !hasItem("BOW03",myself)
THEN
  RESPONSE #100
    DestroyItem("SHLD01")
    GiveItemCreate("BOW03",myself,1,0,0) 
    ActionOverride(myself,FillSlot(SLOT_WEAPON2) 
  
    EquipRanged()
    AttackReevaluate(Nearestenemyof(Myself),30)
END
Le code ne marche pas. J'ai essayé pendant plusieurs heures de trouver une solution mais sans succès. (Ajout de smallwait, utilisation itemremplace)

Posté : mar. 26 mai 2015, 20:34
par Cocrane
A priori, j'ai trouvé le moyen de jongler entre Arc et Arme+bouclier.

Corps à corps: on supprime l'arc et on ajoute le bouclier

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
  Range(Nearestenemyof(Myself),4)
  !hasItem("SHLD01",myself)
  hasItem("bow03",myself)
THEN
  RESPONSE #100
    [B]EquipMostDamagingMelee()[/B]
    DestroyItem("BOW03")
    GiveItemCreate("SHLD01",myself,1,0,0) 
    ActionOverride(myself,FillSlot(SLOT_SHIELD))   
END
A distance: on supprime le bouclier et on ajoute l'arc

Code : Tout sélectionner

IF
  See(Nearestenemyof(Myself))
  !Range(Nearestenemyof(Myself),4)
  !hasItem("BOW03",myself)
THEN
  RESPONSE #100
    DestroyItem("SHLD01")
    GiveItemCreate("BOW03",myself,1,0,0) 
    ActionOverride(myself,FillSlot(SLOT_WEAPON2)  
END
Combat en mêlée

Code : Tout sélectionner

If
  See(Nearestenemyof(Myself))
  Range(Nearestenemyof(Myself),4)
  hasItem("SHLD01",myself)
THEN
  RESPONSE #100
    AttackReevaluate(Nearestenemyof(Myself),30)
END
Combat à distance

Code : Tout sélectionner

If
  See(Nearestenemyof(Myself))
  !Range(Nearestenemyof(Myself),4)
  hasItem("BOW03",myself)
THEN
  RESPONSE #100
    EquipRanged()
    AttackReevaluate(Nearestenemyof(Myself),30)
END
Hier j'avais testé avec ces 4 blocks sans succès.

Je viens de déplacer "EquipMostDamagingMelee()" dans le block n°1 au lieu de le laisser dans la block n°3. L'arc s'en va, l'épée prend sa place et le bouclier peu suivre. ;)

Ça fonctionne très bien en 1 - 1. Je vais tester si c'est stable lorsque le Charname se met à dos toute une compagnie de mercenaires enragés!

Comme quoi, au lieu de s'énerver pendant des heures, une nuit de sommeil ça aide! ^^

Modif:
Ça fonctionne avec X créatures en même temps. Pas d'aléas.

Je note en relisant les messages que Dérat m'avait signalé d'équiper l'arme de mêlée avant le bouclier.

Si j'avais mieux lu son message, j'aurai plus vite capté que l'arc posait problème malgré l'instruction DESTROY suivi d'un placement du bouclier.

Vitesse et précipitation. Je ne sais pas pour vous mais je crois bien que j'ai ce défaut. :$