Postado Agosto 28, 2014 10 anos compila direitinho mas quando vai entra no tibia da debug direto Editado Agosto 28, 2014 10 anos por 574747 (veja o histórico de edições)
Postado Agosto 28, 2014 10 anos Tenta diminuir a maglevel de quem ja atingiu o limite e/ou diminuir a mana spent(mana gasta) deles
Postado Agosto 28, 2014 10 anos Autor tem mts players com ml 156, pra tirar 1 por 1 vai demorar mt , só tem dessa forma?
Postado Agosto 28, 2014 10 anos fiz oque voce falo Danves e ainda continua dando debug no tibia irmao Editado Agosto 28, 2014 10 anos por 574747 (veja o histórico de edições)
Postado Agosto 28, 2014 10 anos Ah, pensei que estava usando um server vazio para testar. Sobre o caso acima, me mande a parte final do relatorio do dbug pra eu ver o que pode ser Bom fiz uma edição diferente, fazendo a condição da ml maxima ser so se o requerimento da mana pro prox nivel for maior que um numero muito, mas muito alto. Coloquei tambem para que se o atual requerimento de mana pra upar for maior que o do proximo(o do magic lv157 nao existe, então seria) Eu mudei pra que continuasse o mesmo requerimento. (Se quiser que aumente mais, coloque tipo amount = CurrReqMana*1.3(aumentar 30% no requerimento de mana a cada magic lv)) Aqui vai.. { if(!amount) return; uint64_t currReqMana = vocation->getReqMana(magLevel), nextReqMana = vocation->getReqMana(magLevel + 1); if(currReqMana > 99999999999999999999999999999999999) //player has reached max magic level return; if(useMultiplier) amount = uint64_t((double)amount * rates[SKILL__MAGLEVEL] * g_config.getDouble(ConfigManager::RATE_MAGIC)); bool advance = false; while(manaSpent + amount >= nextReqMana) { amount -= nextReqMana - manaSpent; manaSpent = 0; magLevel++; char advMsg[50]; sprintf(advMsg, "You advanced to magic level %d.", magLevel); sendTextMessage(MSG_EVENT_ADVANCE, advMsg); advance = true; CreatureEventList advanceEvents = getCreatureEvents(CREATURE_EVENT_ADVANCE); for(CreatureEventList::iterator it = advanceEvents.begin(); it != advanceEvents.end(); ++it) (*it)->executeAdvance(this, SKILL__MAGLEVEL, (magLevel - 1), magLevel); currReqMana = nextReqMana; nextReqMana = vocation->getReqMana(magLevel + 1); if(currReqMana >= nextReqMana) { amount = currReqMana; } } if(amount) manaSpent += amount; uint32_t newPercent = Player::getPercentLevel(manaSpent, nextReqMana); if(magLevelPercent != newPercent) { magLevelPercent = newPercent; sendStats(); } else if(advance) sendStats(); } Se não der certo, onde tem { amount = currReqMana; } coloque { amount = currReqMana; break; } (eu tirei por acreditar que o break tivesse fazendo o magic level apos atingir aquela condição virasse o nivel máximo.) Editado Agosto 28, 2014 10 anos por Danves (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.