kilat 0 Postado Julho 17, 2010 Share Postado Julho 17, 2010 Olá gente, vamos direto ao ponto. Eu tenho essa spell (exevo gran mas vis): local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end E também tenho esta spell (exevo gran mas flam): local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Eu gostaria de colocar as 2 em um script só, cuja palavra mágica para ativar fosse "exevo gran mas vis" e fazer uma condição assim: Vou dar um exemplo em portugol. se (player = premium and promotion) entao USA A MAGIA DE FOGO que no caso seria o script do (exevo gran mas flam) senao USA A MAGIA DE RAIO que no caso seria o script do (exevo gran mas vis) fim Espero que alguem possa me ajudar. Desde já, Obrigado! Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/ Compartilhar em outros sites More sharing options...
0 Mixtura 1 Postado Julho 17, 2010 Share Postado Julho 17, 2010 Olá gente, vamos direto ao ponto. Eu tenho essa spell (exevo gran mas vis): local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end E também tenho esta spell (exevo gran mas flam): local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Eu gostaria de colocar as 2 em um script só, cuja palavra mágica para ativar fosse "exevo gran mas vis" e fazer uma condição assim: Vou dar um exemplo em portugol. se (player = premium and promotion) entao USA A MAGIA DE FOGO que no caso seria o script do (exevo gran mas flam) senao USA A MAGIA DE RAIO que no caso seria o script do (exevo gran mas vis) fim Espero que alguem possa me ajudar. Desde já, Obrigado! Kara. dexa eu ve se entendi... voce quer um exevo gran mas vis com ataque de fogo??? se for... Troca: setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) por: setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) é isso... caso nao for isso que voce queira pode fala, que outras pessoas podem lhe sanar essa duvida... Flw's Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907405 Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Julho 17, 2010 Share Postado Julho 17, 2010 (editado) kilat, Pelo que compreendi, você quer uma magia que seja ativada de um jeito para certa condição, e do contrário, de outro jeito. Então, segue o conteúdo da sua magia, que você deverá substituir pelo conteúdo do arquivo LUA da magia Exevo Gran Mas Vis. local combat_premium = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local combat_free = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local area_premium = createCombatArea(AREA_CROSS5X5) local area_free = createCombatArea(AREA_CROSS5X5) setCombatArea(combat_premium, area_premium) setCombatArea(combat_free, area_free) function onCastSpell_free(parameters) doCombat(parameters.cid, combat_free, parameters.var) end function onCastSpell_premium(parameters) doCombat(parameters.cid, combat_free, parameters.var) end function onCastSpell(cid, var) local parameters = {cid = cid, var = var} if (getPlayerVocation(cid) == 5 and getPlayerPremiumDays(cid) > 0) then addEvent(onCastSpell_premium, 0, parameters) else addEvent(onCastSpell_free, 0, parameters) end return true end Editado Julho 17, 2010 por Oneshot Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907434 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Julho 17, 2010 Share Postado Julho 17, 2010 (editado) ah deixa nem vi o post do oneshot abraços ah o meu fico assim: (acho que não tem funçao pra ve se o jogador é promote) local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area1 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat1, area1) local area2 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat2, area2) function onCastSpell(cid, var) if (isPremium(cid) == TRUE) then return doCombat(cid, combat2, var) else return doCombat(cid, combat1, var) end end Editado Julho 17, 2010 por Vodkart Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907440 Compartilhar em outros sites More sharing options...
0 kilat 0 Postado Julho 17, 2010 Autor Share Postado Julho 17, 2010 Oneshot, você entendeu perfeitamente o que eu desejo fazer, usei o seu script porém ocorreram alguns erros: [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua [17/07/2010 12:30:46] luaSetCombatParam(). Combat not found [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua [17/07/2010 12:30:46] luaSetCombatParam(). Combat not found [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua [17/07/2010 12:30:46] luaSetCombatFormula(). Combat not found [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua [17/07/2010 12:30:46] luaSetCombatParam(). Combat not found [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua [17/07/2010 12:30:46] luaSetCombatParam(). Combat not found [17/07/2010 12:30:46] Lua Script Error: [spell Interface] [17/07/2010 12:30:46] data/spells/scripts/attack/rage of the skies.lua Obrigadão ai pelo esforço e pela ajuda, espero que consigamos resolver estes erros. Vodkart, sua cript funcionou perfeitamente, do jeitinho que eu queria, te agradeço muitoo pela dedicação e esforço, porém, tem mais 2 negocinhos que eu precio nessa script ;x Precisava que ele usasse como condição além de ser premium, ele tem q ser promotion = 2 e precisaria de uma variável booleana própria para identificar se o player tem permissão para usar a magia, Verdadeiro = pode usar falso = não pode usar Muito obrigado pelo esforço de todos para me ajudar e desculpa se estou pedindo de mais, aguardo resposta abraço! Eiiiii gente, eu já consegui fazer a condição pra promotion2 que no caso seria a vaocation alem do master sorcerer, agora só falta eu fazer uma condição própria de verdadeiro ou falso ou 0 e 1 para dizer se o player tem ou nao a magia 2 (que no caso é a de fogo). A spell por enquanto está assim: local combat1 = createCombatObject()setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area1 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat1, area1) local area2 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat2, area2) function onCastSpell(cid, var) if (isPremium(cid) == TRUE and getPlayerVocation(cid) == 9) then return doCombat(cid, combat2, var) else return doCombat(cid, combat1, var) end end Só falta a condição que citei a cima.. Vlw gente!! to qsee graças a vocês!! abraço Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907590 Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Julho 17, 2010 Share Postado Julho 17, 2010 (editado) kilat, Haha! Se não fosse pelo meu erro, teria funcionado também, Agora, vejamos se entendi, você quer uma verificação se o jogador aprendeu a magia para poder invocar-la? No caso seria com a função getPlayerLearnedInstantSpell(cid, name), ele retorna um valor booleano [verdadeiro = o jogador aprendeu a magia, falso = o contrário]. Vou usar o script do Vodkart, que está menos propenso a erros. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area1 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat1, area1) local area2 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat2, area2) function onCastSpell(cid, var) if (isPremium(cid) == TRUE and getPlayerVocation(cid) == 9) then return doCombat(cid, combat2, var) elseif (getPlayerLearnedSpell(cid, "Rage of the Skies")) then return doCombat(cid, combat1, var) else doPlayerSendCancel(cid, "You can\'t use this spell") end end Até mais, Editado Julho 17, 2010 por Oneshot Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907662 Compartilhar em outros sites More sharing options...
0 kilat 0 Postado Julho 17, 2010 Autor Share Postado Julho 17, 2010 O learn spell foi uma boa idéia, porém, não funcionou. Pois eu teria que abilidar o learnspell na magia nos spell.xml Eu precisaria de uma condição propia, para que, quando o player entrar no site e clicar em "adicionar spell" ele tem q adicionar um TRUE no char para liberar a spell e assim passando pela condição a spell iria mudar. Seria algo mais ou menso assim: if (player == premium AND vocation == 9 AND condição == TRUE) then USAR MAGIA DE FOGO, no caso, return COMBAT 2 else USAR MAGIA DE RAIO, no caso, retur combat 1 end //a condição == TRUE seria a condição que te falei, que o cara vai add a spell pelo site e em algum lugar no char vai add condição = TRUE caso contrário será FALSO precisaria de uma condição e uma tabela especial no sql do char para addo TRUE correto? Fico no aguardo Obrigadãoo Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907742 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Julho 17, 2010 Share Postado Julho 17, 2010 (editado) botei por storage ou seja quando esse cara for no site e comprar a spells ele ganha storage 11254 e pode usar a spells local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.3, -30, -1.6, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.6, -50, -1.8, 0) local area1 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat1, area1) local area2 = createCombatArea(AREA_CROSS5X5) setCombatArea(combat2, area2) local config = { magia = "TRUE", storage = 11254 } function onCastSpell(cid, var) if (isPremium(cid) == TRUE and getPlayerVocation(cid) == 9) then if (config.magia == "TRUE") and getPlayerStorageValue(cid, tonumber(config.storage)) >= 1 then return doCombat(cid, combat2, var) else return doCombat(cid, combat1, var) end end end Editado Julho 17, 2010 por Vodkart Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907759 Compartilhar em outros sites More sharing options...
0 kilat 0 Postado Julho 17, 2010 Autor Share Postado Julho 17, 2010 Valeu Vodkart muito bem pensado, só faltou uma coisa. Como e onde eu vou fazer o direcionamento para quando ele clicar no site "adicionar magia" adicionar aquele número de storage no personagem? Acho que se você apenas me informar aonde exatamente fica o número do storage no player eu já conseguirei fazer o direcionamento. Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907772 Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Julho 17, 2010 Share Postado Julho 17, 2010 sinceramente eu não sei absolutamente nada sobre website... oque eu sei é que dá para fazer o seguinte,ele clica lá compra o item talz ai ele usa o item ganha a storage... mais esse do storage por site vo ficar devendo abraços Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907794 Compartilhar em outros sites More sharing options...
0 kilat 0 Postado Julho 18, 2010 Autor Share Postado Julho 18, 2010 Sim sim eu te entendo, mais eu só precisava saber aonde essa storage fica salva no char, sabendo isso eu sei como fazer pra direcionar através do website. Vou dar um exemplo bem simples: quando o cara clicar em adicionar magia, ele vai adicionar o número na storage, mais aonde fica essa storage? Só isto eu precisaria saber brigadão ai pelo esforço Vodkart Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907931 Compartilhar em outros sites More sharing options...
0 Oneshot 732 Postado Julho 18, 2010 Share Postado Julho 18, 2010 kilat, Imagine assim, Cada personagem do jogo tem um creatureID distinto e a cada creatureID são atribuídos variáveis de memória que podem assumir qualquer valor ao longo do tempo, seja booleano, analógico ou uma string. São, se não me engano, 65535 variáveis de memória. Essas são as chamadas storages. Teoricamente elas ficam na personagem, mas acho que não dá para fazer algo com elas em websites, Você só pode "setar" os valores das storages com setPlayerStorageValue(cid, storage, value) e pegar os valores das storages com getPlayerStorageValue(cid, storage) Abraços, Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-907959 Compartilhar em outros sites More sharing options...
0 kilat 0 Postado Julho 18, 2010 Autor Share Postado Julho 18, 2010 Muito obrigado Vodkart e Oneshot pela ajuda, foram muito proveitosas suas dicas e scripts, principalmente ao Vodkart que primeiramente enviou o script bem do jeito doido que eu queria fazer. Att, Kilat Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-908001 Compartilhar em outros sites More sharing options...
0 LorDz 14 Postado Julho 18, 2010 Share Postado Julho 18, 2010 Dúvida sanada, Tópico movido. Abraços Link para o comentário https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/#findComment-908069 Compartilhar em outros sites More sharing options...
Pergunta
kilat 0
Olá gente, vamos direto ao ponto.
Eu tenho essa spell (exevo gran mas vis):
E também tenho esta spell (exevo gran mas flam):
Eu gostaria de colocar as 2 em um script só, cuja palavra mágica para ativar fosse "exevo gran mas vis" e fazer uma condição assim:
Vou dar um exemplo em portugol.
se (player = premium and promotion) entao
USA A MAGIA DE FOGO que no caso seria o script do (exevo gran mas flam)
senao
USA A MAGIA DE RAIO que no caso seria o script do (exevo gran mas vis)
fim
Espero que alguem possa me ajudar.
Desde já,
Obrigado!
Link para o comentário
https://xtibia.com/forum/topic/137351-d%C3%BAvida-sobre-spell/Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados