Ir para conteúdo

cyberock

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    cyberock deu reputação a Imperador Luas em Sistema de Food por alavanca   
    >Olá Todos Dos Tibiaking Sou Novo Aqui e é o Meu Primeiro Tópico Por Favor Movam Se Coloquei Na Área Errada

    >Bom vamos deixar de papo furado e vamos ao que interessa, vim aqui trazer um script de um sistema de food por alavanca.

    1º Vá na pasta do seu ot/data/action/script. copie qualquer script.lua e cole (ctrl+c e ctrl+v).

    2º Renomeie o script que você copiou para sistemadefood, exclua tudo que está dentro do script.

    3º cole isso dentro do script:


    4º Explicando

    >VERMELHO: Uniqueid da alavanca coloque um uniq.id que não exista.
    >AZUL:ID do food que vai pegar quando acionar a alavanca.
    >ROXO: Quantidade de food que vai pegar quando acionar a alavanca.
    >VERDE: Descrição que vai aparecer quando você apertar a alavanca.
    >AMARELO: Efeito magico que vai sair da alavanca quando acionar ela.

    >Edite como quiser feche e salve.

    5º Agora vá na pasta do seu ot/data/action/action.xml.

    6º Adicione essa tag :


    7º Explicando

    >LARANJA: Bote aqui a uniqueid que você escolheu.

    8º Pronto salve e feche, agora vá no seu mapa editor crie um baú (chest) click com o botão direito do mouse e vá em propriedades e bote a uniqueid que você escolheu

    >>SS do resultado





    >Credit's
    TODOS PARA MIN (se alguem já criou um Tutorial semelhante a esse não é minha culpa fui eu que fiz )

    Duvida ? Comentem!

    Custa nada né da REP+ eu te ajudei dá ae
  2. Gostei
    cyberock deu reputação a Garou em Um novo modo de criar magias?   
    UM NOVO MODO DE CRIAR MAGIAS?





    Tudo bem com vocês, grandes tibianos desse reino?

    Quando eu criava magias, eu sempre notei a quantidade de linhas que uma boa e trabalhada magia adquire ao se finalizar o script.

    Por um tempinho, estudei como funcionava toda a estrutura e pensei em como criar um único bloco de código para configurar a magia uma vez só. Os spellmakers de plantão comprovam: Se uma magia com vários efeitos e tipos de dano é criada, você precisa criar muitas variáveis locais.

    Então, resolvi criar uma tabela que tratava essas variáveis locais como indexes e seus atributos como conteúdo de tabelas secundárias. Nascia esse novo modo de programar magias, que parece um tanto versátil e ao mesmo tempo, reduz o tamanho de uma magia.

    O SCRIPT

    O script é bem simples, uma tabela bem básica que qualquer criança configura e se diverte e blocos de códigos que, olha que legal, você não precisa mexer.

    Veja abaixo o novo modelo:


    local spell = { { damage = COMBAT_ICEDAMAGE, effect = {CONST_ME_ICEATTACK}, formula = {0.2, 3, 0.2, 4.2, 200, 300}, area = createCombatArea({ {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 2, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}}) } } local returnSpell = {} for var, config in ipairs(spell) do returnSpell[var] = createCombatObject() setCombatParam(returnSpell[var], COMBAT_PARAM_TYPE, config.damage) setCombatParam(returnSpell[var], COMBAT_PARAM_EFFECT, (type(config.effect) == "table" and config.effect[1] or config.effect)) if type(config.effect) == "table" and config.effect[2] ~= nil then setCombatParam(returnSpell[var], COMBAT_PARAM_DISTANCEEFFECT, config.effect[2]) end if config.area then setCombatArea(returnSpell[var], config.area) end function getSpellDamage(cid, level, maglevel) local min = ((level*config.formula[1] + maglevel*config.formula[2]) + config.formula[5]) local max = ((level*config.formula[3] + maglevel*config.formula[4]) + config.formula[6]) return -min, -max end setCombatCallback(returnSpell[var], CALLBACK_PARAM_LEVELMAGICVALUE, "getSpellDamage") end function onCallCombat(parameters) return doCombat(unpack(parameters)) end function onCastSpell(cid, var) if #returnSpell > 1 then for i = 1, #returnSpell do addEvent(onCallCombat, (i*280)+32, {cid, returnSpell[i], var}) end else doCombat(cid, ret[1], var) end return true end Parece que eu compliquei tudo, né? Pois bem, finja que você não vê nada aí, apenas essa tabela abaixo: local spell = { { damage = COMBAT_ICEDAMAGE, effect = {CONST_ME_ICEATTACK}, formula = {0.2, 3, 0.2, 4.2, 200, 300}, area = createCombatArea({ {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 2, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}}) } } Aqui que você irá configurar sua magia, como ela vai funcionar, que área que ela irá atingir e etcétera. Vou comentar cada linha da tabela para que você entenda: local spell = { { damage = COMBAT_ICEDAMAGE, effect = {CONST_ME_ICEATTACK}, formula = {0.2, 3, 0.2, 4.2, 200, 300}, area = createCombatArea({ {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 2, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}}) } } Sobre a fórmula, você não precisa mais ter dor de cabeça como você vai diminuir o dano da sua magia e etcétera. Veja o quê cada número significa abaixo: formula = {MIN_LEVEL, MIN_MAGLEVEL, MAX_LEVEL, MAX_MAGLEVEL, MIN_OFFSET, MAX_OFFSET} min = (level*MIN_LEVEL + maglevel * MIN_MAGLEVEL) + MIN_OFFSET max = (level*MAX_LEVEL + maglevel * MAX_MAGLEVEL) + MAX_OFFSET E sobre a área, você pode usar áreas pré-configuras naquele arquivo spells.lua dentro de spells/lib, assim você diminuirá ainda mais o código. area = createCombatArea(AREA_BEAM4) Se a magia for do tipo "strike", você pode configurar o efeito de distância assim: effect = {CONST_ME_ICEATTACK, CONST_ANI_ICE} Para criar uma magia com múltiplos danos, basta duplicar, triplicar, conforme sua necessidade a sub-tabela dentro da tabela principal - atenção - não esqueça de separar as várias subtabelas com uma vírgula, por exemplo: local spell = { { damage = COMBAT_ICEDAMAGE, -- O tipo de dano effect = {CONST_ME_ICEATTACK}, -- Os efeitos da magia formula = {0.2, 3, 0.2, 4.2, 200, 300}, -- A formula de dano da magia area = createCombatArea({ -- Area da magia {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 2, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}}) }, -- virgula { damage = COMBAT_ICEDAMAGE, -- O tipo de dano effect = {CONST_ME_ICEATTACK}, -- Os efeitos da magia formula = {0.2, 3, 0.2, 4.2, 200, 300}, -- A formula de dano da magia area = createCombatArea({ -- Area da magia {0, 0, 0, 0, 0}, {0, 0, 1, 0, 0}, {0, 1, 2, 1, 0}, {0, 0, 1, 0, 0}, {0, 0, 0, 0, 0}}) } } [/code]

    [size=3][font=tahoma,geneva,sans-serif]Essa é uma magia com dois hits de gelo, se você entendeu todo o tópico [/font][/size]
    [size=3][font=tahoma,geneva,sans-serif][hr][/font][/size]
    [size=4][b][font=tahoma,geneva,sans-serif]CONCLUSÃO[/font][/b][/size]
    [size=3][font=tahoma,geneva,sans-serif][hr][/font][/size]
    [size=3][font=tahoma,geneva,sans-serif]Eu reconheço que esse novo modelo parece um pouco inútil e estranho, mas ele foi criado com intuíto de otimizar magias com múltiplos efeitos e tipos de dano.[/font][/size]

    [size=3][font=tahoma,geneva,sans-serif]Até o próximo tópico, abraços.[/font][/size]
    [size=3][font=tahoma,geneva,sans-serif][hr][/font][/size]
  3. Gostei
    cyberock deu reputação a MatheusVidaLoka em [MoveMents] Mensagem quando o Player passa por 1 Tile   
    Fala galera do Tibia King,

    Para que estou aqui ?
    Vim trazer um script muito legal a voces .

    Como funciona o script ?
    Quando voce passa por um tile , sobe uma mensagem do tile.

    Vamos começar então :

    Primeiro vá em movements/movements.xml e adicione essa tag :



    Depois vá em data/movements copie qualquer .lua e renomeie para temple , em seguida adicione o script abaixo :



    Vermelho - O texto que aparecerá ao passar do Tile
    Agora é só desfrutar do Script !!

    Creditos :
    80% Hannibals (Fazer o Script)
    20% MatheusVidaLoka (Remover Bugs e Disponibilizar aqui no Tibia King)
    Pedi autorização para postar o script , autorização foi aceita !

Informação Importante

Confirmação de Termo