[Résolu] Ajouter des effets aux attaques d'un PNJ
Ajouter des effets aux attaques d'un PNJ
Bonjour,Bonjour je voudrais savoir 2 petites choses la 1ère est comme j'ai créer un pnj unique Hilding poing-d'acier il s'appelle le bonhomme, comme son nom l'indique ce monsieur est un pugilliste, je veux dire qu'il se bats seulement à mains nues, mon problème étant que je voudrais que cet animal utilise le sort werewolfknockback (un pushstaggereffect quoi) quand il utilise une attaque puissante, j'ai vu sur un site un truc du genre "IsPowerAttacking" mais alors comment l'utiliser aucun indices ou explication, du plus a pars event OnHit, on dirais qu'a pars quand tu prend un coup, aucune function ou event qui detecte quand tu attaque?
Bref je voudrais qu'on m'indique la marche à suivre car la je sais plus quoi faire pour le forcé à utiliser le sort.
Deuxième question: j'ai un arc je voudrais qu'avec cet arc par example au lieu de tirer un projectile il en tire deux qui soit parallele à l'original donc j'ai trouver ça "Weapon property myLongBow auto
Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing)
if (akWeapon == myLongBow && afPower < 1.0 )
Debug.Trace("The player fired a dud shot!")
endIf
endEvent"
comme example mais je voulais savoir comment on fait pour spawn le projectile ou je veux, changer l'angle
savoir si je pouvais spawner plusieurs projectiles aléatoirement entre deux coordonnées avec un angle aléatoire aussi
bref voila c'est tout, en espérant qu'on puisse m'aider à y voir plus clair. Merci d'avance.
Bref je voudrais qu'on m'indique la marche à suivre car la je sais plus quoi faire pour le forcé à utiliser le sort.
Deuxième question: j'ai un arc je voudrais qu'avec cet arc par example au lieu de tirer un projectile il en tire deux qui soit parallele à l'original donc j'ai trouver ça "Weapon property myLongBow auto
Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing)
if (akWeapon == myLongBow && afPower < 1.0 )
Debug.Trace("The player fired a dud shot!")
endIf
endEvent"
comme example mais je voulais savoir comment on fait pour spawn le projectile ou je veux, changer l'angle
savoir si je pouvais spawner plusieurs projectiles aléatoirement entre deux coordonnées avec un angle aléatoire aussi
bref voila c'est tout, en espérant qu'on puisse m'aider à y voir plus clair. Merci d'avance.
Modifié en dernier par Fenrys le 12 nov. 2012, 11:54, modifié 2 fois.
Re: [Demandes] Scripter les attaques d'un personnage
Bienvenue dans le monde des scripts. UN PEU DE LECTURE
Tout d'abord, pour la première question, la méthode qui me viendrait en premier à l'esprit serait d'assigner dynamiquement un script sur les persos autour de ton pugiliste (via des referencealias) avec un event onhit().
Quand ils reçoivent un coup, l'event onhit() déclenche. Tu testes ensuite si c'est le pugiliste qui a tapé et avec quoi pour pouvoir appliquer ton effet.
Ceci doit être remis à jour régulièrement (en vidant et remplissant à nouveaux les referencealias).
La méthode pour assigner dynamiquement des scripts est abordée ICI DANS LE CHAPITRE II.
Il existe d'autres méthodes mais il va falloir que je remette le nez dans le CK car je n'ai plus tous les noms exacts en tête.
Tout d'abord, pour la première question, la méthode qui me viendrait en premier à l'esprit serait d'assigner dynamiquement un script sur les persos autour de ton pugiliste (via des referencealias) avec un event onhit().
Quand ils reçoivent un coup, l'event onhit() déclenche. Tu testes ensuite si c'est le pugiliste qui a tapé et avec quoi pour pouvoir appliquer ton effet.
Ceci doit être remis à jour régulièrement (en vidant et remplissant à nouveaux les referencealias).
La méthode pour assigner dynamiquement des scripts est abordée ICI DANS LE CHAPITRE II.
Il existe d'autres méthodes mais il va falloir que je remette le nez dans le CK car je n'ai plus tous les noms exacts en tête.
Re: [Demandes] Scripter les attaques d'un personnage
ouais, il me faudrait une methode plus simple car je n'en suis pas à ce niveau
Re: [Demandes] Scripter les attaques d'un personnage
Autre méthode de détection :
Ajouter un magiceffect sur le joueur (suivre mon deuxième lien, 2 posts plus haut, pour la propreté de la manip).
Dans la fenêtre en haut à droite, ajouter une condition et choisir "ispowerattacking" dans les conditions.
Scripter l'effet magique avec un event OnEffectStart. L'event déclenchera quand le pugiliste effectuera une attaque puissante.
Ne pas oublier de tester si ton pugiliste n'a pas d'armes équipée à ce moment.
Ajouter un magiceffect sur le joueur (suivre mon deuxième lien, 2 posts plus haut, pour la propreté de la manip).
Dans la fenêtre en haut à droite, ajouter une condition et choisir "ispowerattacking" dans les conditions.
Scripter l'effet magique avec un event OnEffectStart. L'event déclenchera quand le pugiliste effectuera une attaque puissante.
Ne pas oublier de tester si ton pugiliste n'a pas d'armes équipée à ce moment.
Re: [Demandes] Scripter les attaques d'un personnage
hein pourquoi le joueur je veux que ça concerne tout le monde... de plus je vois pas en quoi me servirait ces trucs de quetes et ces updates truc muche
Re: [Demandes] Scripter les attaques d'un personnage
Pas sur le joueur mais sur le pugiliste. A force de faire des tutos pour placer des rucs sur le joueur...
La méthode des quêtes qui se rafraichissent, concernent la méthode 1 (premier post)
Méthode 2 apportée par mon autre réponse : l'effet magique placé sur le pugiliste via une capacité (placée par quête ou directement si le PNJ est ajouté par le mod) ou un perk invisible.
Il suffit d'appliquer l'effet sur ton pugiliste au lieu du joueur pour que ça marche. Passe par une quête invisible pour placer l'effet sur le joueur pour éviter les soucis de compatiilité. Ou par un perk invisible.
Ajoute une variable globale issue de ton mod aux conditions de l'effet pour éviter de bousiller les auvegardes des joueurs si ton effet est du genre à laisser des traces.
Si ton pugiliste est un perso ajouté par le mod, place directement l'effet dessus via une capacité.
La méthode des quêtes qui se rafraichissent, concernent la méthode 1 (premier post)
Méthode 2 apportée par mon autre réponse : l'effet magique placé sur le pugiliste via une capacité (placée par quête ou directement si le PNJ est ajouté par le mod) ou un perk invisible.
Il suffit d'appliquer l'effet sur ton pugiliste au lieu du joueur pour que ça marche. Passe par une quête invisible pour placer l'effet sur le joueur pour éviter les soucis de compatiilité. Ou par un perk invisible.
Ajoute une variable globale issue de ton mod aux conditions de l'effet pour éviter de bousiller les auvegardes des joueurs si ton effet est du genre à laisser des traces.
Si ton pugiliste est un perso ajouté par le mod, place directement l'effet dessus via une capacité.
Re: [Demandes] Scripter les attaques d'un personnage
c'est un perso utilisé par le mod et le sort est un sort vanilla "werewolfknockback"
Re: [Demandes] Scripter les attaques d'un personnage
Donc, pour résumer, tu crées une capacité contenant un effet actif avec la condition ispowerattacking .
Tu scripte ce nouvel effet en mettant l'event oneffectstart.
Dans cet event, tu fais lancer le sort correspondant par ton PNJ sur son infortunée victime.
Normalement, sous réserve que tu tests également l'absence d'arme équipée sur le PNJ, ça marche.
L'effet se lancera à chaque fois que ton perso fera une attaque puissante à mains nues.
Tu scripte ce nouvel effet en mettant l'event oneffectstart.
Dans cet event, tu fais lancer le sort correspondant par ton PNJ sur son infortunée victime.
Normalement, sous réserve que tu tests également l'absence d'arme équipée sur le PNJ, ça marche.
L'effet se lancera à chaque fois que ton perso fera une attaque puissante à mains nues.
Re: [Demandes] Scripter les attaques d'un personnage
En effet constant ca marche pas, c'est sur lui que l'effet se declenche quand il fait une powerattaque
Re: [Demandes] Scripter les attaques d'un personnage
En fait, ça détecte l'attaque puissante donc la partie détection de l'attaque puissante fonctionne.
Tu as mis quel effet sur le PNJ? Si tu as mis celui de la baffe de loup-garou, c'est normal que ton PNJ n'aime pas.
Comme précisé plus haut, il faut créer un nouvel effet (pas la baffe de loup-garou, un effet neutre sans modèle 3D et avec la case hide in UI cochée) et l'appliquer sur le PNJ pour détecter l'attaque puissante et non appliquer l'effet de la baffe de loup-garou sur le PNJ quand il fait une attaque puissante.
L'effet sur lui n'est là que pour détecter l'attaque puissante. Ensuite, c'est sur sa cible qu'il faut que l'effet hostile s'applique. L'effet hostile est appliqué sur l'ennemi par le biais d'un event oneffectstart du script de l'effet "invisible" placé sur le joueur.
EDIT : Il existe plusieurs autres méthodes mais celle-ci est la plus simple pour celui qui ne veut pas créer des quêtes donc on reste là-dessus pour le moment.
Tu as mis quel effet sur le PNJ? Si tu as mis celui de la baffe de loup-garou, c'est normal que ton PNJ n'aime pas.
Comme précisé plus haut, il faut créer un nouvel effet (pas la baffe de loup-garou, un effet neutre sans modèle 3D et avec la case hide in UI cochée) et l'appliquer sur le PNJ pour détecter l'attaque puissante et non appliquer l'effet de la baffe de loup-garou sur le PNJ quand il fait une attaque puissante.
L'effet sur lui n'est là que pour détecter l'attaque puissante. Ensuite, c'est sur sa cible qu'il faut que l'effet hostile s'applique. L'effet hostile est appliqué sur l'ennemi par le biais d'un event oneffectstart du script de l'effet "invisible" placé sur le joueur.
EDIT : Il existe plusieurs autres méthodes mais celle-ci est la plus simple pour celui qui ne veut pas créer des quêtes donc on reste là-dessus pour le moment.