Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

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

Répondre
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne

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

.

Message 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
Avatar du membre
deratiseur
Golem de fer
Messages : 3697
Enregistré le : mer. 05 déc. 2007, 18:35
Localisation : Gap, Hautes alpes
Statut : Hors ligne
.

Message 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.
Le standard téléphonique est en rade : l'atelier du Deratiseur ne répondra plus à aucune demande personnalisée.
Bosse sur : Interplan v9, Derat's Kri'Binn, Todd : KOPP2.

Mes mods sont tous sur Mediafire et Github
Et leurs descriptions sont ici.
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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)
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message 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. :$
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité