Ir para conteúdo
  • Cadastre-se

(Resolvido)MAX de magic lvl 156 como aumentar?


Ir para solução Resolvido por Danves,

Posts Recomendados

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