Quel est le moyen le plus rapide de comparer le DPS de deux armes?

J'ai joué à Borderlands 2 coop, ce qui signifie qu'il n'y a pas toujours beaucoup de temps pour évaluer le butin avant de décider de le ramasser ou de l'équiper.

Quel est le moyen le plus rapide de comparer les dégats de deux armes? Est-ce que le jeu fournit une indication de quels éléments sont une mise à niveau sans avoir à contraster toutes les statistiques de l'élément?

Il n'y a pas de numéro DPS unique que j'ai vu (environ 45 minutes environ), tout comme Borderlands. Au lieu de cela, vous devez regarder des statistiques multiples et faire un appel de jugement en fonction des préférences personnelles. Comme avec Borderlands, je m'attends à ce que prendre des mesures pour un tour sera très important lorsqu'il s'agit d'un appel rapproché.

En plus des statistiques que vous voyez lorsque vous passez une souris sur une arme, il y a au moins quelques statistiques cachées: niveau de zoom (présent dans Borderlands 1), recul et stabilité. Le fait de tirer parti d'une vue empêche le DPS, évidemment, et la stabilité est un facteur majeur là-bas. Le recul affectera dps lors du déclenchement rapide / éclaté.

Il n'est pas toujours souhaitable de tirer le plus rapidement possible (même si vous n'utilisez pas les sommiers / repères en fer). Je pense qu'il n'est pas pratique d'inclure un calcul de DPS. Je souhaiterais que les "cartes" d'armes de Borderlands aient montré d'autres statistiques. La stabilité est vraiment importante pour le sniping, par exemple.

Je suis 30 heures dans le jeu. Il y a un moyen, c'est rapide et sale et ne couvre pas tous les aspects, mais c'est mieux que rien:

Multipliez les dégats par la vitesse d'attaque. Ce n'est pas une balle d'argent, mais cela vous donne une très bonne idée de ce qui fait 80% des dps.

Par exemple, si c'est un fusil de sniper de 100 dégâts, 2 fuseaux de tir contre un fusil de sniper de 5 points de dégâts et de dégâts de 75 points de feu, il se résume à 200 dps contre 300 dps en donnant l'avantage à la seconde.

Cela étant dit, d'autres facteurs entrent dans la performance d'un pistolet qui ne sont pas affichés dans les statistiques. Un grand pour moi est la vitesse de la balle … certaines armes ont de grands dégâts, mais la balle est si lente (ou se comporte comme des grenades) afin que vous ne vouliez pas les utiliser. Un autre facteur est le retour rapide, ou la qualité de la visière. Donc, utilisez cette règle de principe que j'ai posté, mais pour votre arme principale, testez toujours la nouvelle avant de vendre l'ancien.

Une comparaison des dégâts et du taux de tir peut vous donner une idée générale, mais c'est à ce sujet.

La meilleure façon de comparer deux armes similaires est de les utiliser au combat .

Il y a trop de facteurs à considérer:

  • Taux de tir contre dégâts.
  • Taille du clip vs taux et recharge.
  • Tout Jakobs tire le feu aussi vite que vous tirez la gâchette, mais pas plus vite.
  • Tous les pistolets de Tedior se lancent comme une grenade lorsque vous rechargez.
  • La pile d'éléments élémentaires et la chance sont par balle, donc un faible risque d'incendie SMG peut causer une quantité massive de dégâts pendant quelques secondes.
  • Les reculs et les rechargements des canons varient considérablement, les pistolets Hyperion sont plus précis lorsqu'ils tirent, mais certains d'entre eux deviennent «pulvériser et prier» trop vite pour être utiles.

Donc, utilisez les armes à feu, changez régulièrement, vous obtiendrez probablement plus de défis Badass et se classera de cette façon de toute façon 🙂

Un mélange de conseils utiles et un essoufflement totalement inutile ici.

Michel a fourni une excellente réponse (et directe) à l'angle technique 'DPS'. Comme sa version était en C, j'ai découvert ma version d'une calculatrice de sortie basée sur jquery mobile basée sur l'unité DPS sur Github:

http://jacobsanford.github.com/bl2-dps/

Contribue bienvenue.

Parfois, j'utilise la formule (qui est assez précise et logique) du wiki BL1 (parfois j'utilise juste ce wpn que j'aime). Toutes les statistiques sont importantes, comme d'autres l'ont dit, et parfois une autre question est plus importante que d'autres. J'ai ajouté d'autres statistiques dans la formule wiki. C'est comme suit:

Légende:

  • Dmg: Dommage
  • Dpel: Pellets de dommages (les fusils de multiplication ont, par exemple)
  • Acc: Précision (ajoutée dans la formule par moi)
  • Mag: Taille du magazine
  • Rs: Recharger la vitesse
  • Fr: taux d'incendie
  • Émissions: DPS élémentaire (ajouté dans la formule par moi)
  • Echa: Chance élémentaire (ajouté dans la formule par moi)
  • Esec: combien de temps dure l'effet élémentaire (ajouté grâce à OrigamiRobot )
  • Bps: balles consommées par tir (ajoutées dans la formule par moi)

Formule:

edps * esec * echa mag dmg * dpel + ------------------ * --- 100 bps acc DPS = --------------------------------------- * --- mag 100 --- bps ----- + rs fr 

Autres instructions:

  • Si l'arme n'a pas de pellets endommagés, utilisez 1 comme valeur.
  • Si l'arme n'est pas élémentaire, utilisez 0 dans une ou toutes les valeurs élémentaires; Mathématiquement, cela n'a pas d'importance.
  • Si l'arme ne consomme pas plus de 1 balle par tir, utilisez 1 comme valeur.
  • Instructions pour la valeur 'esec': feu (esec = 5), choc (esec = 2), corrosif (esec = 8), laitier (esec = 8). Remarque: L'effet de laitier ne cause pas de dégâts en soi, mais d'autres types de dégâts sont plus efficaces. Puisque je ne peux pas traduire cela en une formule mathématique, je vais laisser cette valeur être. Si vous le souhaitez, n'hésitez pas à attribuer des valeurs inférieures à la variable esec quand il s'agit d'un pistolet à scories (même 0, ce qui rend cela sans signification).

C'est à peu près ça. Cela peut sembler un peu écrasant, mais ce n'est pas tellement. J'ai écrit un petit programme en C, où vous alimentez les valeurs et que le programme renvoie le DPS. Le programme vous permet même d'enregistrer les valeurs dans 4 slots alors qu'il est ouvert. Si vous voulez, je le télécharger quelque part.

Wiki post: http://borderlands.wikia.com/wiki/DPS

J'ai écrit un programme terrible dans Python terriblement écrit qui tente de faire un calcul DPS à un niveau très basique. Je l'ai utilisé pour comparer les armes pendant un certain temps et cela ne semble pas terriblement faux la plupart du temps.

Ce qu'il fait, c'est simuler le tir d'une arme pendant 60 secondes, puis diviser les dégâts infligés par 60. Il tient compte de:

  • Dommage à l'arme
  • Taux de feu
  • Magazine
  • Dommage élémentaire
  • Type de dommage (contre chair, bouclier, armure)
  • Play-through (par défaut, il utilise la seconde)
  • Eventuellement, la précision est généralement fausse (mais pas par défaut)
  • En option, retirez-vous de manières absolument fausses (mais pas par défaut)
  • En option, les statistiques de bonus des classements de badass (mais pas par défaut)

Cela ne fonctionne pas bien si:

  • L'arme a des attributs de fantaisie (= texte rouge)
  • Vous comparez les fusils avec des fusils sans armes à feu (parce que, par défaut, toutes les granules ont touché tout le temps)
  • Vous comparez les fusils de sniper avec les fusils sans sniper (car le calcul des impacts critiques est plutôt compliqué … et pourquoi voudriez-vous le faire pour commencer?)
  • C'est un pistolet avec un multiplicateur de dégâts "x2" (sauf si cela signifie qu'il tire deux granulés à la fois, puis voyez les remarques ci-dessus sur les fusils)
  • C'est un pistolet e-tech (il faut vraiment voir comment fonctionne le pistolet e-tech, sinon avant de commencer à comparer les dégâts)
  • Le jeu ne se comporte pas comme si je l'ai modelé

Je vais mettre ici la majeure partie du calcul pour faciliter l'examen par les pairs:

 def dps(weapon, playthrough = 2, bonusStats = zeroStats, referenceTime = 60, accuracyAdjusting = lambda x: 1, # lambda x: x**(1/3), accountForRecoilInVastlyBogusWays = False): time = 0 damage = Damage(0,0,0) ammoCount = weapon.magazine recoilMalus = 0 while time <= referenceTime: time += 1/(weapon.fireRate * bonusStats.rate) for i in xrange(weapon.pelletCount): if random() < accuracyAdjusting(weapon.accuracy/100 * bonusStats.accuracy + recoilMalus): damage.add(weapon.damage * bonusStats.damage, weapon.element, playthrough) if weapon.element: if random() < weapon.elementChance/100 * bonusStats.elementChance: damage.add(weapon.elementDPS * bonusStats.elementDamage * elementLength[weapon.element], weapon.element, playthrough) #this adjusts damage type vs health type ammoCount -= 1 if accountForRecoilInVastlyBogusWays: recoilMalus -= 0.01 * 1/bonusStats.recoil if ammoCount == 0: time += weapon.reloadTime * bonusStats.reload ammoCount = weapon.magazine recoilMalus = 0 return damage/time 

Comme le programme s'exécute dans la console et vous demande de bien choisir la carte d'arme, crache le DPS en retour. Il est autorisé comme WTFPL alors n'hésitez pas à l'améliorer de toutes les manières.