Ir para conteúdo
  • Cadastre-se

(Resolvido)MAX de magic lvl 156 como aumentar?


Ir para solução Resolvido por Danves,

Posts Recomendados

MAX de magic lvl 156 como aumentar? vi em outro post que era nas sources, mas queria saber qual o local que fika

obrigado desde ja

Link para o post
Compartilhar em outros sites

eu achei isso aki em player.cpp mas nao sei editar =\ ajuda pf

 

 

{
if(!amount)
return;


uint64_t currReqMana = vocation->getReqMana(magLevel), nextReqMana = vocation->getReqMana(magLevel + 1);
if(currReqMana > nextReqMana) //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 = 0;
break;
}
}


if(amount)
manaSpent += amount;


uint32_t newPercent = Player::getPercentLevel(manaSpent, nextReqMana);
if(magLevelPercent != newPercent)
{
magLevelPercent = newPercent;
sendStats();
}
else if(advance)
sendStats();
}

 

Link para o post
Compartilhar em outros sites

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 por Danves (veja o histórico de edições)



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites

no caso, eu com ml 156 pra passar pro 157 vai ser tipo 130% (nao sei se voce me entendeu)

 

ex: 1 % = 1 de mana gasta

 

eu uso exura aumenta 25% certo?

com 4 exura eu upo de ML pro 156

 

ai do 156 pro 157 precisa de tipo 5 exuras

que no caso seria 125% (130% pra passar pro proximo nivel)

 

seria isso?

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Se o que você pretende é que apos o lv156 de ml custe 30% mais de mana do que custou no level passado, sucessivamente, creio que seria assim

{
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 * 1.3;
}
}








if(amount)
manaSpent += amount;








uint32_t newPercent = Player::getPercentLevel(manaSpent, nextReqMana);
if(magLevelPercent != newPercent)
{
magLevelPercent = newPercent;
sendStats();
}
else if(advance)
sendStats();
}



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites

ae Danves esta dando erro quando vai compilar diz que o erro esta em if(currReqMana > 99999999999999999999999999999999999) //player has reached max magic level      ai eu coloquei if(currReqMana > 200) //player has reached max magic level   compilar certinho mas quando entra em um druid e upa a magic level so vai ate 86

Editado por 574747 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Sim, pois voce ta limitando o ml maximo pra quando o requerimento for maior que 200 ._. (nem sei com oainda chegou a ml 86)
Faz assim
if(currReqMana > currReqMana * 2) 
É matematicamente impossivel limitar assim, hahaha

Editado por Danves (veja o histórico de edições)



 tumblr_mwfeg45FIV1qk4cb3o4_500.gif

Link para o post
Compartilhar em outros sites
  • 2 years later...

@Danves
opa, recentemente troquei de distro, to ainda com esse problema do ml 156, quando eu botei na source esse script q voce mandou , da um pequeno bug...
quando upo ml 156, ele vai pro ml 158...
dps do 158 uma magia upa 3% ate o ml 159
dps do 159 uma magia upa 5% ate o ml 160
dps do 160 uma magia upa 2% ate o 161...

fica variando, tens como me ajudar?

Editado por poko360 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 4 weeks later...

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por lango rullez
      Bom como via muita gente "nem tanta" com dúvidas, problemas etc.. Resolvi criar esse tópico para acabar com os seus problemas !
       
      ---------------------------------------------------------------------------------------//-----------------------------------------------------------------------------------------------
       
       
      Bom então vamos lá !
      ------------------------------------//--------------------------------------
       
      Pasta do seu servidor --> Data --> movements --> scripts
       
      Agora crie um arquivo .lua Renomeie com o nome de sua preferencia ! Ps: Tem que ser obrigatoriamente .LUA
      Bom no meu caso coloquei "TileLevel"
        E então cole este script dentro:   
       
       
      ------------------------------------------------------------------------------//-------------------------------------------------------------------------------------------
       
      {´~.~´} Legenda
       
      Vermelho: Level do player que irá poder passar no Teleport/tiler                                          
       
      Dourado: Posição de onde desejar colocar Teleport/tiler
       
      -------------------------------------------------------------------------------------------//-----------------------------------------------------------------------------------------------
       
      Agora salve o arquivo!
       
      -----------------------------------------------------------------//-----------------------------------------------------------------------
       
      Agora vamos para Segunda Parte !
      Me acompanhe !
      ---------------------------------------------------------------------------------------------------//---------------------------------------------------------------------------------------------------
      Vamos em:
      Pasta do seu servidor --> Data --> Movements.xml 
      Agora adicione o seguinte código/tag:
       
       
      {´~.~´} Legenda
      Roxo: É o nome do arquivo.lua que você criou na pasta Scripts
      Azul: É o level do player, tem que estar igual no script acima. Obs: Caso queria colocar level 100 é só mudar parte 250 para 100 isso vale mesma coisa na "PS" que acabei de explica embaixo \/
      -----------------------------------//------------------------------------------
      Ps:No Remeres Editor coloque no tile o actionID: 1250 ou level da sua preferencia. Quer level 100? então no tile coloque "1100"
       
      Bom espero que ajudem a todos !
       
        Créditos @vankk pelo script, que ele postou individualmente em um tópico, sem muitos detalhes.
       A TAG E AS DEMAIS COISAS FEITO POR MIM !
    • Por Absolute
      Fala galera do TK, trago hoje um comando simples que já vi pedidos.
      É o comando de adicionar level, para você que gosta de se editar, dar level para tests ou eventos, como quiser rs.
       
       
       
      Vamos lá:
      Siga meus passos que em 1 minuto o servidor terá o comando.
       
      Em data/talkactions/scripts crie um arquivo com o nome de addlevel.lua com o seguinte conteúdo:
      function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name and level required.") return TRUE end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(t[1]) local amount = tonumber(t[2]) if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to add a ,then the level to set.") end if (doPlayerAddExp(player, getExperienceForLevel(amount)-(getPlayerExperience(player)))) == LUA_ERROR then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Error") end doCreatureAddMana(player, getCreatureMaxMana(player)-getCreatureMana(player)) doCreatureAddHealth(player, getCreatureMaxHealth(player)-getCreatureHealth(player)) return TRUE end Em data/talkactions/talkactions.xml adicione a seguinte linha:
      <talkaction log="yes" access="5" words="!addlevel" event="script" value="addlevel.lua"/> Para adicionar level a algum player: !addlevel playername, 100
      !addlevel = comando executado apenas pelos Administradores do servidor.
      !playername = nome do jogador que vai receber o level
      100 = quantidade de level que irá receber
       
       
       
      Nota: O Comando já dará ao player o level/vida/mana e exp tudo de acordo!




      Simples e fácil para adaptar em seu servidor!



      Espero ter ajudado
       
       
       
      Absolute.
       
    • Por Lokozoido
      Olá galera do TK,procurei tanto um script de porta com level e não conseguir achar um que funcionasse,então decidi modificar uma script para passar na porta com tal level
      Primeiro vai em data/actions/scripts
      Crie um arquivo.lua (no caso criei portalvl.lua)
      Abra e cole isso lá
      Agora vá em data/actions/actions.xml
      E adicione isso:
      Explicação:
         if getPlayerLevel(cid) >= 250 then=Level necessário para passar.
              doTeleportThing(cid, {x=1993,y=2187,z=8})= Posição para onde o player será enviado ao clicar na porta
               doPlayerSendCancel(cid, "Voce nao tem level 250 para passar.")= Mensagem ao aparecer quando o player não tiver o level necessário
      <action actionid="5457" event="script" value="portalvl.lua"/>
      Numero para por na porta
      Nome do arquivo.lua
      Ajudei?RAP+
    • Por rodrigorodriguess
      Não acho normal isso, no meu OTserver tá assim..
       
      Player lvl 883 morre e volta 880
      Player lvl 716 morre e volta 710
       
      teria como ajustar para lvl alto perder mais level do que o level baixo?
    • Por rodrigorodriguess
      Peguei a runa id "2270" e fiz um script igual ao da magic wall rune, só que não mostra o tempo que a runa fica no script.. observem.
       
      local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) function onCastSpell(cid, var) return doCombat(cid, combat, var) end se não é ai, onde é que coloca o tempo?
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo