Copy link to clipboard
Copied
If possible, how to do it pls?
Use this:
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
event.value = (1-f1)*.8;
EDIT: if you want it to be more precise use this:
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf =
Copy link to clipboard
Copied
Yes it is possible with the Math functions.
Copy link to clipboard
Copied
There's nothing special about this formula. The only operator that's a bit different is the square ("power of two") one, which can be done in JS using the pow (power) function of the Math object, like this:
Math.pow(x,y)
With y being 2 in this case.
The rest is just normal math operators ( + - / * ), and possibly parentheses.
Copy link to clipboard
Copied
Hi, guys I still need help with this one, I was trying to figure it out but I'm stuck how to get this into code.
field1 is dodge rating and field2 is area level
and in field3 should be calculated percentage.
I'v gathered some info on the net so hopefully some1 can help me pls.
this is info i got so far:
calculator: https://www.desmos.com/calculator/b7s5aqep3b
original info: https://lastepoch.gamepedia.com/Dodge
and here are some examples:
Thanks in advance 🙂
Copy link to clipboard
Copied
If you're interested I could write the script for you that does this calculation, for a small fee.
You can contact me privately via [try6767 at gmail.com] to discuss it further.
Copy link to clipboard
Copied
Thank you for your offer try67. I was working on javascript myself but I'm not getting any result when using my code.
Can you tell me if i'm on right track at least?
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var lf = math.fraction(.1(x)+.001(x2),10+0.5(al)+0.05(al2))+1;
event.value = .8-(math.fraction(.8, lf));
I'm having trouble writing .001x2 getting "identifier starts immediately after numeric literal" so i used
parentheses but I don't think it's the right way.
Copy link to clipboard
Copied
To multiply values use *:
E.g. 0.001 * x2
Copy link to clipboard
Copied
- There's no such thing as math.fraction in core JavaScript.
- JS doesn't allow implicit operators. If you want to multiply two values you have to use the "*" operator between them.
Copy link to clipboard
Copied
Thanks il try with multiply.
I found math.fraction here: https://mathjs.org/docs/datatypes/fractions.html
Copy link to clipboard
Copied
That's part of an external JS library. If you install it then you could use that command, but there's really no need to just for this one function. You can divide by using the "/" operator.
Copy link to clipboard
Copied
Thank you guys for help,I sort of got it to work in example: rating 527 and area level 5 i get 75% instead of 77%, also as area level get higher value percentage should be lower and mine is getting higher. any advice?
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var lf = (.1*x+.001*x2,10+0.5*al+0.05*al2)+1;
event.value = .8-(.8/lf);
Copy link to clipboard
Copied
Why does you use a comma there:
var lf = (.1*x+.001*x2,10+0.5*al+0.05*al2)+1;
Copy link to clipboard
Copied
I thought I was supposed to.Would that affect anything?
Copy link to clipboard
Copied
You're not, and yes, it will cause it not to work correctly. What exactly did you intend to achieve by using it?
Copy link to clipboard
Copied
I was trying to separate fractions because if i use / it works even worse.
Copy link to clipboard
Copied
Use this:
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
event.value = (1-f1)*.8;
EDIT: if you want it to be more precise use this:
var x = Number(this.getField("Rating").value);
var x2 = Math.pow(x, 2);
var al = Number(this.getField("AreaLevel").value);
var al2 = Math.pow(al, 2);
var hf = (.1*x)+(.001*x2);
var lf = 10+(.5*al)+(.05*al2);
var f = (hf/lf)+1;
var f1 = (1/f);
if(al<15){
event.value = (1-f1)*.797;
}else if(al<27){
event.value = (1-f1)*.787;
}else if(al<34){
event.value = (1-f1)*.775;
}else if(al<43){
event.value = (1-f1)*.767;
}else if(al<48){
event.value = (1-f1)*.758;
}else if(al<60){
event.value = (1-f1)*.749;
}
Copy link to clipboard
Copied
Thank you Nesa so much that is working like a charm. Thank you all for helping 🙂