Bone Overlord.gif The Roost of the Graveborn Quest Spoiler!
Domine Graveborn: todos os bosses e mecânicas ilustradas!
Saiba mais ➔
Winter Tree.png Winter Update 2025
Acompanhe tudo sobre o Winter Update 2025!
Saiba mais ➔
Stag.gif The Order of the Stag Quest Spoiler!
Conheça Isle of Ada: sua quest, missões secundárias e todos os bosses!
Saiba mais ➔

MediaWiki:Common.js/calc party.js

De Tibia Wiki - A Enciclopédia do Tibia
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>