Guia de Farming
// Métodos de Farming
Escolha sua abordagem
Cada estilo tem vantagens diferentes. Clique para explorar.
O método mais direto: você mata monstros, coleta os drops e vende no mercado. O lucro depende da eficiência de kills e do valor dos drops do mapa escolhido.
Substitua com as melhores rotas de grind ativo do servidor. Mencione quais classes têm vantagem, quais monstros dropar os itens mais valiosos e qual é o range ideal de nível.
- Lucro imediato em Zeny
- EXP simultânea
- Drops raros possíveis
- Requer atenção ativa
- Custo de consumíveis
- Variação no lucro
Zeny/hora (estimado) ???M–???M
Dificuldade Moderada
Consistência Alta
Iniciantes Classes DPS Lv. 40+
// Rotas de Farm
Melhores locais de farming
Clique em uma localização para ver a rota completa e estratégia.
🗺️ Rota A — Lv.??+
🗺️ Rota B — Lv.??+
🗺️ Rota C — Lv.??+
🗺️ Rota D — Lv.??+
🗺️ Rota E — Lv.??+ (Endgame)
🗺️
Preencha com dados reais da Rota A. Mencione mapa, monstros principais, loot alvo, consumo médio e por que ela é ideal para esse range.
<script>
/* ════════════════════════════════════════════════════════
FARMING GUIDE JAVASCRIPT — FIXED BINDINGS
════════════════════════════════════════════════════════ */
/* ── Method tab switcher ─────────────────────────── */ var activeMethod = 'grind'; var methodColors = {
grind: { bg: 'linear-gradient(135deg,rgba(249,197,0,0.18),rgba(249,197,0,0.07))', color: '#f9c500' },
market: { bg: 'linear-gradient(135deg,rgba(0,212,255,0.14),rgba(0,212,255,0.05))', color: '#00d4ff' },
passive: { bg: 'linear-gradient(135deg,rgba(176,108,255,0.14),rgba(176,108,255,0.05))', color: '#b06cff' }
};
function switchMethod(m) {
activeMethod = m;
var allPanels = document.querySelectorAll('#methods-section .method-panel');
for (var i = 0; i < allPanels.length; i++) {
allPanels[i].style.display = 'none';
}
var panel = document.getElementById('method-' + m);
if (panel) {
panel.style.display = 'grid';
panel.style.animation = 'method-in 0.3s ease both';
}
var names = ['grind','market','passive'];
for (var j = 0; j < names.length; j++) {
var key = names[j];
var btn = document.getElementById('mtab-' + key);
if (!btn) continue;
if (key === m) {
btn.style.background = methodColors[m].bg;
btn.style.color = methodColors[m].color;
btn.style.fontWeight = '900';
} else {
btn.style.background = 'transparent';
if (key === 'grind') btn.style.color = 'rgba(249,197,0,0.60)';
if (key === 'market') btn.style.color = 'rgba(0,212,255,0.60)';
if (key === 'passive') btn.style.color = 'rgba(176,108,255,0.60)';
btn.style.fontWeight = '700';
}
}
}
/* ── Route pill viewer ───────────────────────────── */ var openRoute = 'route-a';
function expandRoute(id) {
var detail = document.getElementById(id); if (!detail) return;
if (openRoute === id) {
detail.style.display = 'none';
openRoute = null;
var pillSelf = document.getElementById('pill-' + id);
if (pillSelf) {
pillSelf.style.transform = ;
pillSelf.style.fontWeight = '800';
pillSelf.style.boxShadow = ;
}
return;
}
if (openRoute) {
var prev = document.getElementById(openRoute);
if (prev) prev.style.display = 'none';
var prevPill = document.getElementById('pill-' + openRoute);
if (prevPill) {
prevPill.style.transform = ;
prevPill.style.fontWeight = '800';
prevPill.style.boxShadow = ;
}
}
detail.style.display = 'block'; detail.style.animation = 'route-in 0.3s ease both'; openRoute = id;
var pill = document.getElementById('pill-' + id);
if (pill) {
pill.style.transform = 'scale(1.04)';
pill.style.fontWeight = '900';
pill.style.boxShadow = '0 0 0 1px rgba(255,255,255,0.08) inset, 0 0 22px rgba(255,255,255,0.04)';
}
setTimeout(function() {
if (detail && detail.scrollIntoView) {
detail.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}
}, 80);
}
/* ── Bind clicks safely ──────────────────────────── */ (function() {
var methodBtns = document.querySelectorAll('#methods-section [data-method]');
for (var i = 0; i < methodBtns.length; i++) {
methodBtns[i].onclick = function() {
switchMethod(this.getAttribute('data-method'));
};
}
var routeBtns = document.querySelectorAll('#routes-section .route-pill[data-route]');
for (var j = 0; j < routeBtns.length; j++) {
routeBtns[j].onclick = function() {
expandRoute(this.getAttribute('data-route'));
};
}
var closeBtns = document.querySelectorAll('#routes-section .route-close[data-route]');
for (var k = 0; k < closeBtns.length; k++) {
closeBtns[k].onclick = function() {
expandRoute(this.getAttribute('data-route'));
};
}
switchMethod('grind');
})(); </script>