|
|
|
||||||||||||||||||||||||
MediaWiki:Common.js/calc party.js
Ir para navegação
Ir para pesquisar
Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.
- Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
- Opera: Pressione Ctrl-F5.
<pre id="calc_xp_party_html">
<div style="display: flex; flex-flow: column wrap; align-items: center">
<div class="calc_bg panel-party-xp" id="calc_exp">
<div class="calc-xp-party-loading">
<img src="https://www.tibiawiki.com.br/images/c/ce/The_Epic_Wisdom.gif"/><br/>
<label>Loading...</label>
</div>
<div class="info-box border-bottom">
<b>Como Usar:</b><br/><br/>
- Digite o seu level (de 1 até 49).<br/>
- Informe se a sua stamina está com o bônus de premium ativado.<br/>
- Informe qual criatura você deseja caçar.<br/><br/>
<b>Nota:</b> Para uma hunt com várias criaturas, informar somente a criatura principal e/ou pesquisar as
criaturas individualmente.
</div>
<div class="data-box info-box border-bottom">
<div>
<label> Level </label>
<div id="botao_level2">
<input name="level2" maxlength="3" id="level2" size="10" type="number" min="1" max="49" value="1"/>
</div>
</div>
<div>
<label> Bônus de stamina? </label>
<div id="botao_stamina">
<select id="stamina">
<option value="1">Sim</option>
<option value="2">Não</option>
</select>
</div>
</div>
<div>
<label colspan="4">Criatura caçada</label>
<div id="botao_criaturas">
<select id="criatura"></select>
</div>
</div>
</div>
<div class="info-box">
<div>
<span id="result-exp"></span><br/>
<span id="warning-level" class="hide">
No momento essa calculadora só irá calcular o bônus de low levels.<br />
Por favor, escolha um level entre 1 e 49.
</span>
</div>
</div>
</div>
<span class="span-version">© TibiaWiki.com.br - Versão 2.0</span>
</div>
</pre>
<pre id="calc_xp_party_js">
var creature_list = [];
const bonus_list = [
{
"level": 1,
"value": 0
},
{
"level": 2,
"value": 1
},
{
"level": 3,
"value": 0.97
},
{
"level": 4,
"value": 0.95
},
{
"level": 5,
"value": 0.93
},
{
"level": 6,
"value": 0.91
},
{
"level": 7,
"value": 0.89
},
{
"level": 8,
"value": 0.87
},
{
"level": 9,
"value": 0.85
},
{
"level": 10,
"value": 0.83
},
{
"level": 11,
"value": 0.81
},
{
"level": 12,
"value": 0.79
},
{
"level": 13,
"value": 0.77
},
{
"level": 14,
"value": 0.75
},
{
"level": 15,
"value": 0.72
},
{
"level": 16,
"value": 0.70
},
{
"level": 17,
"value": 0.68
},
{
"level": 18,
"value": 0.66
},
{
"level": 19,
"value": 0.64
},
{
"level": 20,
"value": 0.62
},
{
"level": 21,
"value": 0.60
},
{
"level": 22,
"value": 0.58
},
{
"level": 23,
"value": 0.56
},
{
"level": 24,
"value": 0.54
},
{
"level": 25,
"value": 0.52
},
{
"level": 26,
"value": 0.50
},
{
"level": 27,
"value": 0.47
},
{
"level": 28,
"value": 0.45
},
{
"level": 29,
"value": 0.43
},
{
"level": 30,
"value": 0.41
},
{
"level": 31,
"value": 0.39
},
{
"level": 32,
"value": 0.37
},
{
"level": 33,
"value": 0.35
},
{
"level": 34,
"value": 0.33
},
{
"level": 35,
"value": 0.31
},
{
"level": 36,
"value": 0.29
},
{
"level": 37,
"value": 0.27
},
{
"level": 38,
"value": 0.25
},
{
"level": 39,
"value": 0.22
},
{
"level": 40,
"value": 0.20
},
{
"level": 41,
"value": 0.18
},
{
"level": 42,
"value": 0.16
},
{
"level": 43,
"value": 0.14
},
{
"level": 44,
"value": 0.12
},
{
"level": 45,
"value": 0.10
},
{
"level": 46,
"value": 0.08
},
{
"level": 47,
"value": 0.06
},
{
"level": 48,
"value": 0.04
},
{
"level": 49,
"value": 0.02
}
];
var creaturesPromises = [];
$(document).ready(function () {
$('#calc_exp').bind("keyup change", function () {
calcExperienceForXpBonus();
});
$(".calc-xp-party-loading").css("display", "flex");
fetchAllCreatures();
});
var calcExperienceForXpBonus = () => {
let stamina = $("select#stamina").val();
let level = Number($("#level2").val());
level = (level < 1) ? 1 : level;
let criatura = creature_list.find(creature => creature.name === $("select#criatura").val());
let exp = criatura.exp;
let bonusIndex = bonus_list.findIndex(item => item.level === level);
let bonus = bonus_list[bonusIndex].value;
let bonusExp = bonus * exp;
let resultado = (stamina == 1) ? ((0.5 * (parseInt(bonusExp) + parseInt(exp))) + parseInt(bonusExp) + parseInt(exp)) : parseInt(bonusExp) + parseInt(exp);
$('#result-exp').html('Você ganhará ' + parseInt(resultado) + ' de experiência para cada ' + criatura.name + ' morto(a)');
if (level < 1 && criatura == null) {
$('#result-exp').addClass("hide");
} else if (level < 1 && criatura != null) {
$('#result-exp').addClass("hide");
} else {
$('#result-exp').removeClass("hide");
}
if (level > 49) {
$('#result-exp').addClass("hide");
$('#warning-level').removeClass("hide");
} else {
$('#warning-level').addClass("hide");
}
}
var executedCreaturesPromises = async () => {
await Promise.all(creaturesPromises);
$(".calc-xp-party-loading").css("display", "none");
calcExperienceForXpBonus();
}
var creatureCallback = async (creature_name, creature_exp) => {
let updCreature = creature_list.findIndex((mCreature => mCreature.name === creature_name));
creature_list[updCreature]["exp"] = creature_exp;
executedCreaturesPromises();
}
var fetchAllCreatures = async () => {
$.ajax({ url: 'https://api.tibiadata.com/v4/creatures',success: function(result) {
if (result != null && Object.keys(result).length > 0) {
if (result.creatures != null && Object.keys(result.creatures).length > 0) {
if (result.creatures.creature_list != null && result.creatures.creature_list.length > 0) {
creature_list = result.creatures.creature_list;
/* Make Select from Creatures */
creature_list.forEach((creature) => {
$("#criatura").append('<option value="' + creature.name + '">' + creature.name + '</option>')
});
creature_list.forEach(creature => fetchCreaturesExperience(creature));
}
}
}
}});
};
var fetchCreaturesExperience = async (creature) => {
$.ajax({ url: 'https://api.tibiadata.com/v4/creature/' + creature.race,success: function(result) {
if (result != null && Object.keys(result).length > 0) {
if (result.creature != null && Object.keys(result.creature).length > 0) {
if (result.creature.experience_points != null) {
creaturesPromises.push(creatureCallback(creature.name, result.creature.experience_points));
}
}
}
}});
}
</pre>