Caçador de monstros Witcher
Um grifo com 320 de vida contra uma espada de prata que causa 45 por golpe precisa de oito acertos, e 40 pontos do último são desperdiçados: saiba a conta antes de aceitar o contrato. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Dano
- 50
- Vida
- 200
- Acertos
- 4
- Dano restante
- 0
- Dano total
- 200
- Dano do último golpe
- 50
Um bruxo que sabe quantos golpes de espada uma besta ainda aguenta planeja o combate em vez de torcer para a última carga de Quen segurar. O caçador de monstros Witcher recebe dois números positivos — o dano de ataque por golpe que acerta e a reserva de vida restante do monstro — e devolve os golpes necessários para zerar essa reserva, junto com o dano residual do golpe final. O dano residual é o excesso: a parcela não usada do último corte depois que a vida do monstro acabou.
Como os golpes e o dano residual são calculados
O caçador de monstros Witcher responde a uma pergunta de aritmética de combate que todo caçador acaba rabiscando num papel: dado um dano constante por corte de espada que acerta, quantos golpes esvaziam a reserva de vida de um monstro, e quanto do último corte se perde como excesso. O dano residual é, portanto, a parcela não usada do golpe final; vale zero quando a vida é múltiplo exato do dano e, nos demais casos, fica estritamente abaixo de um golpe completo.
A mesma identidade usa um árbitro de mesa quando um jogador pergunta se o próximo golpe de montante derruba um troll, e um projetista de jogo quando verifica que um chefe não cai num único golpe por uma pilha de mutagênicos. A calculadora não modela sinais, poções, acertos críticos, resistências nem janelas de esquiva; responde à pergunta crua de reserva versus corte sobre a qual esses sistemas se apoiam, para que um planejador combine primeiro esses modificadores e depois pergunte quantos golpes ainda separam Geralt do troféu.
Casos de uso
Planejamento de lutas do bestiário
Cole o dano da espada de prata e uma reserva de vida publicada para ver golpes até a morte e o excesso residual antes de aceitar o contrato.
Checagens de registro e speedrun
Verifique se uma sequência gravada de golpes que acertam deveria ter derrubado a besta dado o dano da lâmina naquele instante.
Perguntas frequentes
O que é o dano residual do golpe final?
Vale zero quando a reserva é múltiplo exato do dano e, nos demais casos, fica sempre estritamente abaixo de um golpe completo.
Por que dano e vida precisam ser positivos?
Dano zero ou negativo não esvazia uma reserva, e uma reserva de vida não positiva não é um combate.
Isto consulta o bestiário de The Witcher 3 pelo nome do monstro?
Não. Você informa a vida restante e o dano que de fato causa depois de óleos, sinais e resistências. Os nomes das criaturas ficam na sua própria tabela.
Quantos golpes são necessários para matar um monstro com 320 de vida usando 45 de dano?
Oito golpes. Sete acertos tiram 315 pontos, o oitavo só precisa de mais 5 e sobram 40 de dano. A regra é dividir a vida pelo dano e arredondar para cima.
A calculadora considera acertos críticos, poções ou resistências?
Não. Ela supõe o mesmo dano em cada golpe que acerta e não inclui sinais, poções, críticos, resistências nem esquivas. Aplique esses ajustes ao seu valor de dano antes e depois digite o resultado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/game/witcher-monster-slayer \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"damage":50,"health":200}'const res = await fetch("https://api.kit.forhosting.com/game/witcher-monster-slayer", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"damage": 50,
"health": 200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/witcher-monster-slayer",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"damage": 50,
"health": 200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/witcher-monster-slayer", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"damage":50,"health":200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"damage":50,"health":200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/witcher-monster-slayer", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"damage": 50,
"health": 200
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.witcher_monster_slayer",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_value | 1000000000000000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Quando dano ou vida não é estritamente positivo, a tarefa falha com invalid_input em vez de inventar uma morte.
Como os golpes e o dano residual são calculados
A identidade de forma fechada é hits igual ao teto de health dividido por damage, e leftover_damage igual a hits vezes damage menos health. Um griffin com 320 de vida diante de uma espada de prata que causa 45 por golpe precisa de oito cortes: sete golpes retiram 315, o oitavo precisa só de mais cinco, e leftover_damage é 40. Como a divisão por teto é determinística, dois clientes que enviam o mesmo par de números positivos recebem sempre os mesmos hits e leftover_damage.
Contrato de entrada, forma da resposta e erros
Valores acima de um quatrilhão são rejeitados para o recuento de golpes não sair da faixa de inteiros seguros. Combine a resposta com a sua própria tabela de bestiário se precisar de nomes de criaturas; este extremo resolve só a aritmética e não consulta um griffin, leshen ou noonwraith pelo título. Envie um corpo JSON por POST com dois números finitos obrigatórios: damage, o ataque do bruxo por golpe que acerta, e health, a reserva restante do monstro. Cada campo pode chegar como número JSON ou como cadeia numérica; aliases como attack, dmg, sword_damage, hp, health_pool e monster_hp são aceitos e mapeados para os nomes canônicos. Campos ausentes, cadeias vazias, valores não finitos, zeros e negativos falham com invalid_input nomeando o campo — essas falhas não são cobradas. Em sucesso o corpo ecoa damage e health, devolve hits como inteiro positivo, leftover_damage como o excesso do golpe final, total_damage como hits vezes damage, last_hit_damage como a parcela do último corte que de fato esvaziou a reserva, uma cadeia formula que reafirma a identidade do teto, e um message de uma linha adequado a um registro de combate. Exemplo: damage 50 e health 200 produzem quatro golpes e leftover_damage 0, porque quatro vezes 50 é exatamente 200. Damage 45 e health 320 produzem oito golpes, leftover_damage 40, last_hit_damage 5 e total_damage 360.
Onde um caçador de monstros Witcher se justifica
Autores de bestiário e mantenedores de wikis usam um caçador de monstros Witcher para o leitor colar um dano de espada de prata ao lado de uma reserva de vida publicada e ver a contagem de golpes sem fazer a divisão por teto à mão. Grupos de mesa que jogam um sistema inspirado em Witcher usam o mesmo contrato quando um jogador pergunta quantos assaltos um demônio aguenta na linha de dano atual do grupo. Validação falha não consome saldo. Modders que equilibram New Game Plus ou contratos sob medida precisam de um oráculo determinístico que rejeite uma espada de dano zero em vez de informar infinito em silêncio, e que reporte o excesso para uma montagem de um único golpe aparecer em leftover_damage em vez de escondida num booleano. Corredores de speedrun e analisadores de registro de combate verificam se uma sequência gravada de golpes que acertam deveria ter derrubado um chefe dado o dano do aço ou da prata naquele instante; chamar uma API parse pequena evita puxar um simulador de combate inteiro para uma pergunta de dois números. Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço-base publicado US$ 0,002 sem tokens de modelo e sem rede de saída. Mantenha as solicitações pequenas, fixe hits e leftover_damage nos testes, e você obtém contagens de caça reproduzíveis para widgets de wiki, pipelines de mods e workers de borda sem montar um motor de combate próprio.
Casos de integração
Equilíbrio de mods e dificuldade
Confira se uma pilha de mutagênicos não derruba um chefe num único golpe: leftover_damage perto de um golpe completo significa que o último corte desperdiçou quase tudo.
Perguntas técnicas
Como o caçador de monstros Witcher conta os golpes?
Envie números positivos damage (por golpe que acerta) e health (reserva do monstro). Os golpes equivalem a ceil(health / damage). A API também devolve leftover_damage do golpe final, last_hit_damage e total_damage.
Quanto custa a calculadora de caçador de monstros Witcher?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.