Aller au contenu


Donner Un Bonus De Dégâts En Fonction De La Valeur D'Un Skill


  • Veuillez vous connecter pour répondre
8 réponses à ce sujet

#1 devilymoon

devilymoon

Posté 10 juin 2012 - 22:06

Salut !


Pour les nécessités de mon mod, j'ai eu l'idée d'arranger un script qui permettrait d'obtenir un bonus de dégâts en fonction de la valeur d'un skill comme Lame Longue ou Hache.
Ce serait via une formule simple comme :


Bonus de Dégât = Valeur du skill / 2.5000


Sauf qu'après de multiples essais, avec une flopée de variables, j'ignore encore quoi mettre dans mes short ou mes floats, et je n'ai aucune idée non plus de la variable responsable des dégâts . Je ne suis pas pas une flèche non plus en script. En clair, j'ai l'objectif, une esquisse de manière, et rien de connu sur les variables à utiliser.

Je sollicite votre aide comme un pauvre Argonien amoché par des années d'esclavage au service des modules TES. Pitié, je veux revoir les marais calme de ma patrie ! :please:

Je bloque à quelque chose comme ça, avec un script concernant une Lance :



Short SpearValue == GetSpear

If ( Player ->GetWeaponType == 6)
If ( Player->GetWeaponDrawn == 1 )
Player->ModStrength, 1 * SpearValue / 3)
Endif
Endif
If ( Player->GetWeaponType != 6 )
    If ( Player->GetWeaponDrawn != 1 )
    Player->SetStrength, GetStrength
    Endif
Endif

#2 devilymoon

devilymoon

Posté 17 juin 2012 - 16:47

Salut !

Mon précédent post étant relégué aux abysses de l'indifférence, je transmet ici mon avancée au niveau d'un script, permettant, par exemple, d'augmenter la Force de la moitié de la valeur du Talent "Lance".

Je partage, en vous faisant confiance :





float Spear

set Spear to GetSpear

If   ( Player->GetWeaponDrawn == 1 )
If ( Player->GetWeaponType == 6 )
player->ModStrength, Spear + ( Spear * 0.5 )
     Endif
Endif


Je compte sur vous les z'amis ! :sorcerer:

#3 Talia Ochemaure

Talia Ochemaure

    Les mots s'arrêtent à TABRONEH.


Posté 17 juin 2012 - 18:02

Je comprends que c'est parfois frustrant de ne pas obtenir de réponse, mais créer deux sujets n'aidera pas plus à en obtenir. J'ai donc fusionné tout ça pour ne garder qu'un sujet.
Bon courage en tout cas ;)
"YOUKAÏDI, YOUKAÏDA, À PIED DE-CI DE-LÀ! En abrégé, Youpla!"
Randonneur Loïc.

#4 abg

abg

    L'ABG pour les civilisés


Posté 17 juin 2012 - 18:33

Bonjour,

La finalité m'échappe un peu, la force étant déjà prise en compte lors du calcul des dégâts.

Par ailleurs, pour une meilleure compatibilité, je préconiserai de passer par des sorts de type "capacité" ou "malédiction" plutôt que des commandes ModStrength (qui risquent d'entrer durement en conflit avec des mods comme Ascension). Voir aussi ce que dit le MSfD (page 116 de la v9) : Les commandes GetStat, ModStat et SetStat sont vraiment problématiques à utiliser.

Le script : (reformaté pour une meilleure lecture)

Voir le messagedevilymoon, le 17 juin 2012 - 16:47, dit :

float Spear

set Spear to GetSpear

If   ( Player->GetWeaponDrawn == 1 )
   If ( Player->GetWeaponType == 6 )
	player->ModStrength, Spear + ( Spear * 0.5 )
  Endif
Endif
Qu'est ce qui ne marche pas ?

De façon globale, décompose au maximum tes formules. Morrowind a tendance à achopper lorsqu'on lui soumet des trucs comme
player->ModStrength, Spear + ( Spear * 0.5 )
Ce n'est pas vraiment incorrect mais l'interpréteur de script manque de fiabilité sur ce genre de chose. Donc plutôt :
Set PortNawak To ( Spear * 0.5 )
Set PortNawak To ( PortNawak + Spear )
Player->ModStrength PortNawak

En outre, je suppose qu'à la fin tu souhaites restaurer la force initiale. Et ça va vraiment coincer si le PJ avait une fortification en cours...
Donc utiliser des capacités ajoutées/retirées par le script plutôt que jongler avec des ModStats, à mon avis...
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#5 devilymoon

devilymoon

Posté 18 juin 2012 - 13:52

Merci, vraiment, de m'avoir répondu et aiguillé - et désolé du double post, je suis dans la panade quand il s'agit de scripter sur des choses comme ça -.

Pour répondre à ta question, la force monte à 100, ou descend à 0, ou stagne, selon les modifications d'opérations que j'ai pu tester, ou quand je change entre Get/Mod/Set.

Au début, ma première question concernait en effet un bonus de dégâts plutôt que la Force en elle-même, mais je n'ai rien trouvé de tel. Par contre, il semblerait que tu aies trouvé ! Tu parles de bonus, de capacités, et j'aimerai avoir plus d'infos là-dessus si tu y consens.

J'ai déjà fait un script qui ajoute un bonus d'attaque fortifié (donc de score de toucher) de 100% au PJ. Tout ça, ça marche parfaitement, mais du coup, les talents d'armes sont devenues inutiles. j'espérai les rendre utiles pour qu'ils augmentent les dégâts infligés en fonction de la valeur du Skill de l'arme utilisé. Bien sûr, tout ceci passe par un rééquilibrage, mais je n'ai aucun problème avec ça, j'ai trouvé le moyen en modifiant des GMST qui touchent à la fatigue, pour en augmenter son impact en combat

. Il s'agit tout simplement d'éviter de rater un crabe des vases à bout-portant. Un enfant de 10 ans, avec un bâton, est capable de frapper n'importe quel bêbête. Simplement, la force donnée ne sera pas la même. C'est ceci que j'ai envie de modéliser. Pour redonner envie aux joueurs d'Oblibli/Squirime de revenir sur un excellent jeu sans vomir au bout de 15 secondes parce qu'ils ratent 70% de leurs attaques.

Test :
float Spear
float Spear1
set Spear to GetSpear
If   ( Player->GetWeaponDrawn == 1 )
If ( Player->GetWeaponType == 6 )
	  Set Spear1 To ( Spear * 0.5 )
	  Set Spear1 To ( Spear1 + Spear )
	  Player->ModStrength Spear1
  Endif
Endif


La force ne bouge pas !

J'ajoute que j'essaie de passer par un script pour rendre ce bonus effectif pour toutes les valeurs, pas seulement sur une fourchette de valeurs (ou alors, il faut créer 100 spell de capacités pour chaque type d'armes).

J'avais réussi à scripter le score de toucher à 100% de manière propre, sans passer par un bonus de 100% d'Attaque fortifié :

  If ( Player->GetAttackBonus >= 100)
  return
endif
  If ( Player->GetAttackBonus < 100)
  Player->SetAttackBonus 100
endif


#6 abg

abg

    L'ABG pour les civilisés


Posté 19 juin 2012 - 10:15

Ok, je saisis mieux.
Quoi qu'à mon avis les systèmes de combat de Morro d'un côté, et de Skyblivion de l'autre, sucks autant l'un que l'autre. Mais c'est un vaste débat :D

Pour revenir au script, ce que je te suggérais c'est plutôt d'utiliser des capacités (ou des malédictions, j'ai vaguement souvenir avoir lu quelque part qu'il fallait mieux mais je ne sais plus pourquoi :green:), plutôt que des modstats. Pour les modstats, la lecture de ce qu'en dit Galsiah (Ascension) dans le MSfD aurait dû t'en décourager...

Ainsi :
Player->ModStrength Spear1 
laisse place à :
Player->AddSpell, "fortif. de force"
Ça t'oblige bien entendu à préparer à l'avance dans le TESCS une série de capacités de fortification de force. Mettons un par incrément de 10 points de force pour éviter de devoir planter une forêt d'If...EndIf trop vaste. Mais ce sera à mon avis moins dangereux que manipuler directement la statistique du PJ...
Pour le reste, ça ne change rien : Tu ajoutes/retires dynamiquement ces fortifications en fonction du score dans la compétence d'arme depuis ton script...
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#7 devilymoon

devilymoon

Posté 19 juin 2012 - 12:06

Justement, plutôt qu'implémenter une for...une lisière de If..Endif avec les capacités des sorts, je voudrais, via un script, rendre ces bonus effectifs pour chaque point de skill. Il y aura une différence entre un talent à 51 en Lance et un talent à 52.

Je connaissais déjà bien la manière d'ajouter des spells en faisant appel à des fourchettes. Je crois qu'il existe un mod du même style sur le Nexus. Simplement, je trouve ça incomplet et "sale", dans le sens ou un petit carré blanc vient signifier en bas à droite qu'un bonus est actif.

De la même façon, il existe une infinité de mod qui permettent un score de toucher de 100%, mais via une capacité en attaque fortifié, soit ajouté directement à n'importe quel PJ, soit ajouté directement à la race. Je trouve ça "sale". On aura en permanence une icône en bas à droite, et, dans l'autre cas, les races créées ne pourront pas en profiter. Le pompon !

Du coup, je te remercie de me prévenir des confusions/erreurs propres aux modstats, mais je persiste à croire qu'il doit exister une solution plus propre est surtout plus complète (parce que je n'ai rien à faire de mes après-midi beaucoup trop longs).

Merci encore !

#8 abg

abg

    L'ABG pour les civilisés


Posté 19 juin 2012 - 13:18

Voir le messagedevilymoon, le 19 juin 2012 - 12:06, dit :

Justement, plutôt qu'implémenter une for...une lisière de If..Endif avec les capacités des sorts, je voudrais, via un script, rendre ces bonus effectifs pour chaque point de skill. Il y aura une différence entre un talent à 51 en Lance et un talent à 52.

La perte en précision qu'implique cette méthode de paliers est, à mon avis, largement recouverte par la randomisation des dégâts (la plupart des armes n'ayant pas de dégâts fixes, mais une fourchette assez large style 10-30...). La différence entre un talent à 51 ou à 52 passe inaperçue in-game (à fortiori vu la confusion des combats, quand la victoire finale dépend surtout de choses comme le capital initial de points de vie ou le pathfinding de shadok...)

Citation

Simplement, je trouve ça incomplet et "sale", dans le sens ou un petit carré blanc vient signifier en bas à droite qu'un bonus est actif.

C'est vrai. Ce serait bien utile d'ailleurs s'il y avait moyen d'utiliser le système de magie de façon invisible (c'est à dire sans icône de bonus/malus ou sans aura bling-bling lors des cast). En tout cas bien utile à mes propres chantiers :huhu:

Bon courage pour tes propres travaux. Je sèche un peu car je ne me suis jamais penché sérieusement sur cet aspect du gameplay (modifier le système de combat)...

Tu peux peut-être décortiquer MR_HandToHand. J'ignore comment a fait Finraïl, mais dans l'idée ça s'y apparente :?
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#9 devilymoon

devilymoon

Posté 19 juin 2012 - 14:58

Citation

La différence entre un talent à 51 ou à 52 passe inaperçue in-game

Cet argument percute vraiment la perception du projet que j'avais auparavant. Ce ne serait donc pas si malsain de créer des fourchettes de 10 ou plus. Ou alors tout simplement laisser ces compétences telles qu'elles sont, sans utilité.
Je vais réfléchir à une manière d'ajouter un bonus de régénération de la fatigue. Dans mon système, on ne dépense pas de fatigue en courant, mais on en dépense beaucoup plus en frappant ou en sautant. Je vais y réfléchir, et je posterai l'état d'avancement au même en endroit.

J'ai jeté un oeil aux travaux du mod HandToHand, mais je n'ai pas trouvé d'effet similaire traduisible par mes compétences ou mes connaissances. Je vais m'orienter sur un chemin différent !

Merci !




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)