Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Damage based on objetive AR
Author Message
Artyk
Journeyman
*

Posts: 75
Likes Given: 43
Likes Received: 9 in 9 posts
Joined: Sep 2014
Reputation: 0



Post: #11
RE: Damage based on objetive AR
xwerswoodx you're right, thought it was separated as I saw that was used this way on sphere_combat.scp (I have to rework some of my scripts Tongue)

For multiply + divide operations there's MulDiv function

Quote:12-01-2007, Shadow Dragon
- Added: MulDiv script function. Usage "MulDiv number,multiplier,divider". Returns result.
02-19-2017 03:16 AM
Find all posts by this user Like Post Quote this message in a reply
Catalan_mistral
Journeyman
*

Posts: 54
Likes Given: 2
Likes Received: 6 in 5 posts
Joined: Jan 2017
Reputation: 0



Post: #12
RE: Damage based on objetive AR
well Muldiv fixes the equation, i'm quessing the wiki hasn't been updated for a while with some of the little extra functions

Code:
SRC.DAMAGE <MulDiv (<R50,58> <src.Armor> 100)> dam_fixed

So hopefully this sorts out your code now Snaigel

The One and Only......
02-19-2017 04:22 AM
Find all posts by this user Like Post Quote this message in a reply
Snaigel
Journeyman
*

Posts: 75
Likes Given: 0
Likes Received: 1 in 1 posts
Joined: Jan 2017
Reputation: 0



Post: #13
RE: Damage based on objetive AR
The console says can't resolve Muldiv blah blah
02-19-2017 09:29 AM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #14
RE: Damage based on objetive AR
muldiv is just a shortcut for multiply/divide, so
Code:
<MulDiv <R50,58>,<SRC.ARMOR>,100>
is the same of
Code:
<eval <R50,58>*<SRC.ARMOR>/100>

it can make things easier if you just want fill some basic things, like percent messages "Your life is <MulDiv <HITS>, 100, <MAXHITS>>%" (eg: your life is 20%, 50%, 100%, etc)

but it doesn't make sense use MULDIV if you already using eval where you can insert the values (x*y/z) directly on the formula
eg: doesnt make sense use <eval 10+<MulDiv 10,20,30>> if you can use <eval 10+(10*20/30)>

so getting back to basics: the first thing to do is create the formula without use sphere scripts. Formulas are pure math, so you just need to grab some text editor, paper, calculator, or whatever, and write some formulas until you find an formula that works best for your usage. Then after you find an formula, you just need to write this same formula now on sphere scripts
02-19-2017 01:23 PM
Find all posts by this user Like Post Quote this message in a reply
Snaigel
Journeyman
*

Posts: 75
Likes Given: 0
Likes Received: 1 in 1 posts
Joined: Jan 2017
Reputation: 0



Post: #15
RE: Damage based on objetive AR
Too much for my knowledge about this xd, but thanks. I will do it with the first way, with the elseifs, since I can't make the other formula to first divide and then multiply, it only works if I first multiply and then divide, I guess it's because I get decimals like someone said.
02-20-2017 07:31 AM
Find all posts by this user Like Post Quote this message in a reply
Coruja
Sphere Developer
*****

Posts: 987
Likes Given: 5
Likes Received: 226 in 187 posts
Joined: Jul 2012
Reputation: 7

Dimension Shard

Post: #16
RE: Damage based on objetive AR
that's what I said, formulas are pure math. So before create an formula on sphere scripts, you must make sure that the math is correct. After you make sure the math is working fine, you write the same formula now on sphere scripts. This will make things easier, because if you first create the sphere script without even know if the math behind the formula is correct, the formula will not work properly

eg: to create an formula where you have the damage and you want get an % of this value, you just need a basic percent formula:
Code:
damage * armor / 100
and since you're dealing with an situation where higher armor must return small results, you can just "revert" the armor percent using 100 - armor
Code:
damage * (100 - armor) / 100
and writing this same formula to sphere scripts:
Code:
<eval damage * (100 - armor) / 100>   ===>   <eval <R50,58> * (100 - <SRC.ARMOR>) / 100>
(This post was last modified: 02-20-2017 12:53 PM by Coruja.)
02-20-2017 12:51 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)