Ir para conteúdo
  • Cadastre-se

Normal Transformação Automatica - Automatic Transform


Posts Recomendados

Meu servidor foca no RPG, e as classes tem evoluções...
Como no Global - Knight para Elite Knight.

Mas queria que transformasse sem pagar, e sim por level... Quando pegar nível 50, ir para a segunda forma e nível 100 para terceira, e ultima!
 Obs: Classes 3 --> 4 --> 5.
Obrigado desde já!

Editado por Str00per
Erro de concordancia (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
7 horas atrás, Str00per disse:

Meu servidor foca no RPG, e as classes tem evoluções...
Como no Global - Knight para Elite Knight.

Mas queria que transformasse sem pagar, e sim por level... Quando pegar nível 50, ir para a segunda forma e nível 100 para terceira, e ultima!
 Obs: Classes 3 --> 4 --> 5.
Obrigado desde já!

 

Em data/creaturescripts/creaturescripts.xml add essa tag:

Citar

<event type="advance" name="EvolutionClass" event="script" value="evolveclass.lua"/>

Em data/creaturescripts/scripts crie um arquivo evolveclass.lua, e adicione o seguinte:

function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)
local newvoc = vocatual + 1

          if level >= 50 and getPlayerStorageValue(cid, 88888) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88888, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
		  if level >= 100 and getPlayerStorageValue(cid, 88889) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88889, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
end

Ainda em data/creaturescripts/scripts, abra o arquivo login.lua e Procure por qualquer linha que contenha registerCreatureEvent, e adicione isso embaixo:

Citar

registerCreatureEvent(cid, "EvolutionClass")

 

Obs: O sistema evolui sendo que as evoluções, estejam com ID em ordem. Tipo > vocation 1 >> vocation 2 >> vocation 3

Editado por luangop
Correção do script. (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
3 minutos atrás, luangop disse:

 

Em data/creaturescripts/creaturescripts.xml add essa tag:

Em data/creaturescripts/scripts crie um arquivo evolveclass.lua, e adicione o seguinte:


local leveis = {
[1] = {lvl = 50, sto = 88888},
[2] = {lvl = 100, sto = 88889}
}

function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)

       for i = 1, #leveis do
          if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then
                  doPlayerAddItem(cid, leveis[i].item, leveis[i].quant)
				  doPlayerSetVocation(cid, vocatual + 4)
                  setPlayerStorageValue(cid, leveis[i].sto, 1)   
                  doPlayerSendTextMessage(cid, 22, "Você upou level "..level.." ou mais, e evoluiu para "..(getVocationInfo(4).name).."!")
          end
       end
  
 return true
end

Ainda em data/creaturescripts/scripts, abra o arquivo login.lua e Procure por qualquer linha que contenha registerCreatureEvent, e adicione isso embaixo:

 

Obs:

Coloquei imaginando que seu servidor, as vocações pulem de 4 em 4 números, caso não esteja assim poste seu vocations.xml para que eu arrume o script.

Então... Queria fazer com essas

Spoiler


<vocation id="2" name="Swordsman" description="a novice swordsman" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="25" gainmanaticks="3" gainmanaamount="35" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.1" magDefense="1.0" armor="1.0"/>
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="3" name="Swordsman" description="a amateur swordsman" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="25" gainmanaticks="3" gainmanaamount="35" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="2">
<formula meleeDamage="1.5" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.2" magDefense="1.0" armor="1.0"/>
<skill fist="1.3" club="1.1" sword="1.3" axe="1.1" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/>
</vocation>

<vocation id="4" name="Swordsman" description="a professional swordsman" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="25" gainmanaticks="3" gainmanaamount="35" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="3">
<formula meleeDamage="2.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.3" magDefense="1.0" armor="1.0"/>
<skill fist="1.6" club="

Mas ainda terão mais vocations... Mas se eu entender o script eu faço para cada uma, apenas alterando o numero da voc e o storage, cada vocation terá esses três ranks de evolução

Link para o post
Compartilhar em outros sites

Entendi!

no evolveclass.lua, coloque assim:

local leveis = {
[1] = {lvl = 50, sto = 88888},
[2] = {lvl = 100, sto = 88889}
}

function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)
local newvoc = vocatual + 1

       for i = 1, #leveis do
          if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, leveis[i].sto, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          end
       end
  
 return true
end

Vou explicar, esse script quando você atinge o level 50, ele pega o ID da sua vocação, altera para seu id+1 e registra a alteração. O mesmo ocorre quando atinge level 100. Ou seja, assim não precisa criar novos scripts, este fará a função de todos... a única coisa que precisa fazer, é certificar-se que as evoluções tenham Vocation ID seguidos, por exemplo, sua classe Swordsman já está assim, ID's 2, 3 e 4.. Você não pode criar uma vocação diferente no meio das evoluções de uma.. entendeu?

Por garantia, teste o sistema!

Editado por luangop
erro meu (veja o histórico de edições)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
56 minutos atrás, luangop disse:

Entendi!

no evolveclass.lua, coloque assim:


local leveis = {
[1] = {lvl = 50, sto = 88888},
[2] = {lvl = 100, sto = 88889}
}

function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)
local newvoc = vocatual + 1

       for i = 1, #leveis do
          if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, leveis[i].sto, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          end
       end
  
 return true
end

Vou explicar, esse script quando você atinge o level 50, ele pega o ID da sua vocação, altera para seu id+1 e registra a alteração. O mesmo ocorre quando atinge level 100. Ou seja, assim não precisa criar novos scripts, este fará a função de todos... a única coisa que precisa fazer, é certificar-se que as evoluções tenham Vocation ID seguidos, por exemplo, sua classe Swordsman já está assim, ID's 2, 3 e 4.. Você não pode criar uma vocação diferente no meio das evoluções de uma.. entendeu?

Por garantia, teste o sistema!

Ocorreu apenas um unico erro... Criei um character, dei a vocation Novice Swordsman para ele e quando chegou ao 50 foi para Novice novamente, e no 100 foi para Amateur, Devia ser do 50 para Amateur e do 100 para Professional

 

20:34 Congratz! You get 50 or more, and evolved to a novice swordsman!
20:35 Congratz! You get 101 or more, and evolved to a amateur swordsman!

Editado por Str00per (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
26 minutos atrás, Str00per disse:

Ocorreu apenas um unico erro... Criei um character, dei a vocation Novice Swordsman para ele e quando chegou ao 50 foi para Novice novamente, e no 100 foi para Amateur, Devia ser do 50 para Amateur e do 100 para Professional

 

20:34 Congratz! You get 50 or more, and evolved to a novice swordsman!
20:35 Congratz! You get 101 or more, and evolved to a amateur swordsman!

 

Tem certeza que você deu pro char a vocation Novice (id 2) ?

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
3 minutos atrás, Str00per disse:

Absoluta :D

Teste com este script então...

OBS: crie novo char, para nao bugar as storage.

function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)
local newvoc = vocatual + 1

          if level >= 50 and getPlayerStorageValue(cid, 88888) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88888, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
		  if level >= 100 and getPlayerStorageValue(cid, 88889) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88889, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
end

 

@Str00per Verifique também se a vocation está realmente errada, e não somente a mensagem que o player recebe..

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
10 minutos atrás, luangop disse:

Teste com este script então...

OBS: crie novo char, para nao bugar as storage.


function onAdvance(cid, skill, oldLevel, newLevel)

local level = getPlayerLevel(cid)
local vocatual = getPlayerVocation(cid)
local newvoc = vocatual + 1

          if level >= 50 and getPlayerStorageValue(cid, 88888) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88888, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
		  if level >= 100 and getPlayerStorageValue(cid, 88889) <= 0 then
                  doPlayerSetVocation(cid, newvoc)
                  setPlayerStorageValue(cid, 88889, 1)   
                  doPlayerSendTextMessage(cid, 22, "Congratz! You get "..level.." or more, and evolved to "..(getVocationInfo(newvoc).description).."!")
          return true
		  end
end

 

Agora funcionou, muito bom.
REPUTADO

Link para o post
Compartilhar em outros sites
2 minutos atrás, Str00per disse:

Agora funcionou, muito bom.
REPUTADO

Editei minha primeira resposta com o script certo.. Por favor coloque como melhor resposta, assim um próximo membro que precise do sistema, poderá encontrar mais facilmente!

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo