2018-10-03 18:24:44 +01:00
|
|
|
# Quest Exp Reward
|
|
|
|
|
|
2020-03-10 10:34:48 +00:00
|
|
|
|
|
|
|
|
Formaula:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
exp = ([Quest] ExpFactor * [ParamGrow] ScaledQuestXP * [ParamGrow] QuestExpModifier) / 100
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
## Below is out of date as of 5.0 and inaccurate.
|
|
|
|
|
|
2018-10-03 18:24:44 +01:00
|
|
|
Quest experience points are generated using a small equation.
|
|
|
|
|
|
2018-05-28 13:36:41 +01:00
|
|
|
Why this is done I am not sure as the values always seem static.
|
2015-10-30 19:45:36 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
### Formula updated: 28th May, 2018
|
2017-09-27 10:46:39 +01:00
|
|
|
|
|
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
**CORE FORMULA**
|
2018-05-28 13:36:16 +01:00
|
|
|
> `EXP = Quest.ExpFactor * ParamGrow.QuestExpModifier * (45 + (5 * Quest.ClassJobLevel_0)) / 100`
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
All formula's use this as their starting point and ADD onto it.
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
**QUEST LEVEL 50**
|
2018-05-28 13:36:16 +01:00
|
|
|
> `EXP = CORE + ((400 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (400 * (Quest.ExpFactor/100))))`
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
**QUEST LEVEL 51**
|
2018-05-28 13:36:16 +01:00
|
|
|
> `EXP = CORE + ((800 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (800 * (Quest.ExpFactor/100))))`
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
**QUEST LEVEL 52-59**
|
2018-05-28 13:36:16 +01:00
|
|
|
> `EXP = CORE + ((2000 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (2000 * (Quest.ExpFactor/100))))`
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
**QUEST LEVEL 60-69**
|
2018-05-28 13:36:16 +01:00
|
|
|
> `EXP =CORE + ((37125 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-60) * (3375 * (Quest.ExpFactor/100))))`
|
2017-09-27 10:46:39 +01:00
|
|
|
|
2017-09-26 17:16:08 +01:00
|
|
|
|
2018-05-28 13:36:41 +01:00
|
|
|
-----
|
|
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
#### Formula in PHP:
|
2017-09-26 17:16:08 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
This is example code, it requires getting the `quest` and `paramGrow` prior
|
2017-09-26 17:16:08 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
```php
|
|
|
|
|
$quest = $service->get("Quest_<id>");
|
|
|
|
|
$paramGrow = $service->get("xiv_ParamGrow_{$quest->ClassJobLevel_0}");
|
2017-09-26 17:16:08 +01:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// CORE = Quest.ExpFactor * ParamGrow.QuestExpModifier * (45 + (5 * Quest.ClassJobLevel_0)) / 100
|
|
|
|
|
$EXP = $quest->ExpFactor * $paramGrow->QuestExpModifier * (45 + (5 * $quest->ClassJobLevel_0)) / 100;
|
2015-10-30 19:45:36 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// CORE + ((400 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (400 * (Quest.ExpFactor/100))))
|
|
|
|
|
if (in_array($quest->ClassJobLevel_0, [50])) {
|
|
|
|
|
$EXP = $EXP + ((400 * ($quest->ExpFactor / 100)) + (($quest->ClassJobLevel_0 - 50) * (400 * ($quest->ExpFactor / 100))));
|
|
|
|
|
}
|
2015-10-30 19:47:23 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// CORE + ((800 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (800 * (Quest.ExpFactor/100))))
|
2018-05-28 13:37:03 +01:00
|
|
|
else if (in_array($quest->ClassJobLevel_0, [51])) {
|
2018-05-28 13:35:53 +01:00
|
|
|
$EXP = $EXP + ((800 * ($quest->ExpFactor / 100)) + (($quest->ClassJobLevel_0 - 50) * (400 * ($quest->ExpFactor / 100))));
|
|
|
|
|
}
|
2015-12-02 11:11:55 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// CORE + ((2000 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-52) * (2000 * (Quest.ExpFactor/100))))
|
|
|
|
|
else if (in_array($quest->ClassJobLevel_0, [52,53,54,55,56,57,58,59])) {
|
|
|
|
|
$EXP = $EXP + ((2000 * ($quest->ExpFactor / 100)) + (($quest->ClassJobLevel_0 - 52) * (2000 * ($quest->ExpFactor / 100))));
|
|
|
|
|
}
|
2015-11-14 16:40:54 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// CORE + ((37125 * (Quest.ExpFactor / 100)) + ((Quest.ClassJobLevel_0-60) * (3375 * (Quest.ExpFactor/100))))
|
|
|
|
|
else if (in_array($quest->ClassJobLevel_0, [60,61,62,63,64,65,66,67,68,69])) {
|
|
|
|
|
$EXP = $EXP + ((37125 * ($quest->ExpFactor / 100)) + (($quest->ClassJobLevel_0 - 60) * (3375 * ($quest->ExpFactor / 100))));
|
|
|
|
|
}
|
2015-11-14 16:40:54 +00:00
|
|
|
|
2018-05-28 13:35:53 +01:00
|
|
|
// Set
|
|
|
|
|
$quest->ExperiencePoints = $EXP;
|
2015-11-14 16:40:54 +00:00
|
|
|
```
|