Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Balanceamento de spells!


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Galera to precisando de uma ajuda pra entender quanto de dano que certa magia irá dar.

ex:

setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC,  -1.2, 1, -1.2, 1)

como eu sei quanto por?

existe algum tipo de conta que eu possa usar para saber o dano do poder contando com o lvl do player e o ml?

Link para o post
Compartilhar em outros sites
  • Solução

Sim, basicamente é isso daqui:

mínimo de dano = (Level * A + Magic Level * B) * C + D
Máximo de dano = (Level * K + Magic Level * L) * M + N

e a fórmula fica: 

setCombatFormula(combat, type,C, D, M, N, A, K, B, L )

No caso do seu combat que tem apenas 4 números, ele está considerando que o B, L, D e o N são 0. Então ficaria
setCombatFormula(combat, type,C, 0, M, 0, A, K, 0, 0 ) sendo a fórmula de dano;

Como 0 é um dos valores padrão então eu não preciso escrevê-lo, ficando apenas (reorganizei os valores pra ficar de acordo com a sua fórmula):
setCombatFormula(combat, type, A, M, K, C ) 

Nessa sua fórmula nós temos
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC,  -1.2, 1, -1.2, 1)

então sabemos que o dano mínimo e máximo dela é -1.2 * o level e que esse fator irá ser multiplicado 1x.
(acho q é isso)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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 prot def
      Versão Beta já disponível no site: http://otshinobi.servegame.com/ 
      Servidor Online, aproveite e crie sua conta e baixe o client para Pc ou Android, todos os dados do seu personagem permanecerão intactos na versão definitiva que será lançada em breve!









      Já disponível em: Client 8.54 (Old) / New Client e Client Mobile para Android
      Temos 27 Vocações disponíveis
      Personagens FREE: Naruto, Sasuke, Sakura, Kakashi, Rock Lee, Shikamaru, Neji, Tenten, Hinata, Killer Bee, Gaara, Kiba, Temari, Kankuro, Shisui e Jiraiya.
      Personagens Shop Free (compre com Gold dentro do game): Obito, Tsunade, Kisame e Itachi.
      Personagens Shop VIP: Itachi (Shop), Obito (Shop) Minato (Shop) Madara (Shop) Tsunade (Shop) Hashirama (Shop) Nidaime (Tobirama) (Shop) Nagato (Shop) Raikage (Shop) Kisame (Shop)  (Você pode donatar pelo LivePix)
      Personagens Especiais obtidos através de eventos dentro do game: Orochimaru e Yamato.
      Transformações, jutsus e habilidades exclusivas para cada vocação
      Upe se divertindo pelo mapa, rate de experiência desafiante, ganhe jutsus e transformações exclusivas ao upar 
      Mapa exclusivo que terá atualizações periódicas:
      -> vilas disponíveis até o momento: Vila da Folha, Vila da Areia, Vila da Névoa, Vila da Pedra, Vila da Nuvem Vila da Chuva (Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure) e País das Ondas.
      -> Area Vip: Várias Hunts para upar e farmar (Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island) e Vila Shinobi Exclusiva para usuários Vip
      Sistema de graduação ninja: genin, chunin, jounin e anbu - Evolua seu ranking shinobi, apenas os merecedores se tornarão Kage.
      Exame Chunin completo, reviva o nostálgico arco do anime para se tornar Chunin
      Crie sua própria guild ou entre em uma existente
      Organização Akatsuki - torne-se membro da maior organização criminosa do mundo ninja
      Rank level (Figure entre os melhores jogadores do jogo)
      Reviva as sagas de Naruto Clássico e Naruto Shippuden
      Sistema de guilds - crie ou entre em uma guild e divirta-se com seus amigos
      Mundo PVP
      Eventos PVP
      Eventos de invasão, proteja a vila da destruição: Invasões em Konoha (Pain e Orochimaru) e Invasão de Deidara e Sasori em Sunagakure
      Compra e venda de casas para usuários Vip
      Npc Shop e NPC Shop Event - compre sua VIP ACCOUNT E VOCAÇÃO VIP ''totalmente'' GRÁTIS utilizando a moeda do jogo (GOLD).
      Npc Minoru - leva você diretamente para outras vilas e várias hunts do mapa. Area Free: Konoha, Kirigakure, Sunagakure, Iwagakure, Kumogakure, Amegakure, Valley of the End, South Forest, South Island, West Desert. Area VIP: Zetsu Covil, Member Akatsuki Covil, Northwest Island, Hunt Nagato, Hunt Samurais, Paper Island, Orochimaru Island, Vila Shinobi area com casas exclusivas para compra.
      Reviva vários arcos do Anime: Lute contra diversos personagens do anime com habilidades únicas
      Sistema Chakra Bijuu - torne-se jinchuuriki das bestas de cauda e utilize seu poder em batalha
      Diversas armas e equipamentos do anime
      Tasks da Tsunade - derrote os shinobi mais poderosos do mundo ninja e ganhe recompensas em Gold: 
      deidara da pedra 
      hidan das fonte
      itachi da folha 
      kabuto da folha
      kakuzo da cachoeira 
      kisame da nevoa
      konan da chuva
      madara da folha
      nagato da chuva
      orochimaru da folha
      pain da chuva
      sasori da areia
      tobi da folha
      Vários Npcs de Tasks espalhados pelo mapa: derrote inimigos e traga itens em troca de experiência e recompensas.
      Quests: Temos várias Quests Disponíveis e várias outras em desenvolvimento:
      ->Quest Nto Points FREE - Ganhe Nto Points para comprar itens vip com o Npc Shop (compre Premium Account, Vocações e itens)
      -> Shukaku Quest - Quest realizada em quatro pessoas 
      -> Sambi Quest - Quest realizada em duas pessoas 
      -> Akatsuki Ring Quest 
      -> Kurama Quest
      -> Quest Templo do Fogo
      -> Minato Quest
      -> Itachi Quest 
      -> Sasuke Boss Quest 
      -> Hidan Quest
      -> Kakuzo Quest 
      -> Sasori Quest 
      ->Pain Quest
      ->Tobirama Quest
      Jogo utiliza base parecida com o ntoultimate dos velhos tempos.
      Jogue e ajude a manter o servidor aberto até o lançamento da versão final
      Crie sua conta e baixe o jogo no site oficial: otshinobi.servegame.com 
      DIVIRTA-SE!
      DISPONÍVEL TAMBÉM CLIENT MOBILE!

    • Por L3K0T
      SUMMON SPELLS
       
       
      Como o nome diz é uma spell que sumona até 4 monstros ou podendo adicionar mais, legal pra naruto etc... Então para não perder ou ficar em vão, irei deixar pra vocês e já com as correções.
       
       
      DEMONSTRAÇÃO

      2022-09-01 00-08-30.mp4  
       
      INSTALANDO
      1: primeiro vá em data/spells/scripts e crie um arquivo.lua e adicione isso abaixo dentro dele e em seguida salve.
      function onCastSpell(cid, var) local from,to = {x=962, y=885, z=7},{x=973, y=892, z=7} local from2,to2 = {x=979, y=901, z=7},{x=991, y=905, z=7} local dir = getPlayerLookDir(cid) local ppos = getPlayerPosition(cid) if(dir==1)then ppos.x = ppos.x + 1 elseif(dir==2)then ppos.y = ppos.y + 1 elseif(dir==3)then ppos.x = ppos.x - 1 elseif(dir==0)then ppos.y = ppos.y - 1 end local summon = getCreatureSummons(cid) local MaximoSummon = 0 if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) then doPlayerSendCancel(cid, "Você não pode usar Summons Aqui!") return false end if (table.maxn(summon) > MaximoSummon) then doPlayerSendTextMessage(cid, 22, "Voce ainda tem summons em batalha!") return false end local clone1 = doConvinceCreature(cid, doCreateMonster("Morgaroth", ppos)) local clone2 = doConvinceCreature(cid, doCreateMonster("Demon", ppos)) local clone3 = doConvinceCreature(cid, doCreateMonster("Terror Bird", ppos)) local clone4 = doConvinceCreature(cid, doCreateMonster("Giant Spider", ppos)) doPlayerSendTextMessage(cid, 22, "Voce summonou 4 criaturas!") end  
       
      2: agora vá em data/spells/ e abra o arquivo spells.xml e coloca isso dentro e salve
       
      <instant name="Sumonar" words="!help" lvl="0" mana="0" aggressive="0" params="1" exhaustion="1000" needlearn="0" event="script" value="arquivo.lua"> </instant>  

      2022-09-01 00-28-08.mp4 Pronto! agora é só usar a imaginação, pode adicionar monstro diferente ou do mesmo quantas vezes quiser.
       
      créditos fonte: @Lenilson e L3K0T
       
       
       
       
       
    • Por Cat
      ÁGUA TRANSPARENTE NO TIBIA
       
      Amostra/teste:

       
      Download Tibia.otfi -> Arquivo necessário para ativar transparência no seu client.
      (coloque junto ao tibia.dat e tibia.spr)
      Tibia.otfi
       
      Para ativar a transparência nas versões 8.54 e 8.60 é necessário o uso de dll:
      https://github.com/SaiyansKing/Tibia-Extended-Client-Library
       
      Download Object Builder -> Programa usado para add sprites
      https://github.com/ottools/ObjectBuilder/releases/tag/v0.4.8
       
      Download Item Editor -> Usado para cadastrar as propriedades de itens novos e abrir no map editor.
      https://github.com/ottools/ItemEditor/releases/tag/v0.5.1
       
      Download Sprites
      Contém:
      - Sprites de piso d'água full ground + 1 estilo borda (recomendo usar todos como borda, tirar full ground)
      - Sprites borda água-barranco.
      - Sprites borda água-areia.
      - Sprites borda areia-barranco-água.
      - Sprites borda água solo.
      - Sprites cachoeira + quedas d'água versão leste/norte
      - Sprites água transparente versão córrego (12x)
      sprites transparentes.rar
       
       
      (Senha para abrir o arquivo: tibiaking)

       
    • Por Thiago Virtuoso
      Preciso de ajuda com minha spell, quero que quando o player esteja com o addon do druid full ele use o combat e quando estiver com qualquer outro addon usar o combat2.
       
      Script:
       
      local combat = createCombatObject()

      local meteor = createCombatObject()
      setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
      setCombatParam(combat, COMBAT_PARAM_EFFECT, 41)
      setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -10.3, -47, -10.2, 2)

      local stun = createConditionObject(CONDITION_PARALYZE)
      setConditionParam(stun, CONDITION_PARAM_TICKS, 5000)
      setConditionFormula(stun, -0.8, 0, -0.9, 0)
      setCombatCondition(meteor, stun)

      local combat2 = createCombatObject()

      local meteor2 = createCombatObject()
      setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
      setCombatParam(combat2, COMBAT_PARAM_EFFECT, 43)
      setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -7.3, -47, -6.2, 2)






      local arr = {
      {0, 0, 0, 0, 0},
      {0, 0, 1, 0, 0},
      {0, 1, 3, 1, 0},
      {0, 0, 1, 0, 0},
      {0, 0, 0, 0, 0}
      }

      local arr2 = {
      {0, 0, 0, 0, 0},
      {0, 0, 1, 0, 0},
      {0, 1, 3, 1, 0},
      {0, 0, 1, 0, 0},
      {0, 0, 0, 0, 0}
      }



      local area = createCombatArea(arr)
      local area2 = createCombatArea(arr2)

      setCombatArea(combat, area)
      setCombatArea(combat2, area2)

      local function meteorCast(p)
          doCombat(p.cid, p.combat, positionToVariant(p.pos))
      end
      local function meteorCast2(p)
          doCombat(p.cid, p.combat2, positionToVariant(p.pos))
      end
      local function stunEffect(cid)
          doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)
      end


      function onTargetTile(cid, pos)
          if (math.random(0, 0) == 0) then
              local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})
              if (isInArray(water, ground.itemid) == TRUE) then
                  local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
                  doSendDistanceShoot(newpos, pos, CONST_ANI_ICE)
                  addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water})
              else
                  local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
                  doSendDistanceShoot(newpos, pos, CONST_ANI_ICE)
                  addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
              end
          end
      end

      setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")


      function onTargetTile(cid, pos)
          if (math.random(0, 0) == 0) then
              local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})
              if (isInArray(water, ground.itemid) == TRUE) then
                  local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
                  doSendDistanceShoot(newpos, pos, CONST_ANI_ICE)
                  addEvent(meteorCast2, 200, {cid = cid, pos = pos, combat2 = meteor_water2})
              else
                  local newpos = {x = pos.x + 7, y = pos.y - 6, z = pos.z}
                  doSendDistanceShoot(newpos, pos, CONST_ANI_ICE)
                  addEvent(meteorCast2, 200, {cid = cid,pos = pos, combat2 = meteor2})
              end
          end
      end

      setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

      function onCastSpell(cid, var)
      local parameters = { cid = cid, var = var, combat = combat, combat2 = combat2 }


      local sex = getPlayerSex(cid)
      localOutfit = {lookType = 144, lookAddons = 3}
      localOufit2 = {lookType = 148, lookAddons = 3}




      if sex == 0 then
      if getCreatureOutfit == localOutfit2 then
      return doCombat(cid, combat, var)
      else
      return doCombat(cid, combat2, var)
      end
      end


      if sex == 1 then
      if getCreatureOutfit == localOutfit then
      return doCombat(cid, combat, var)
      else
      return doCombat(cid, combat2, var)
      end
      end
      end
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo