meenero
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
meenero deu reputação a Juniorrek em Summoner's Rift !=========================================Summoner's Rift OT WAR==============================================
Bom,um dia estava eu com vontade de trazer algo novo para o Tibia,e como na época eu estava jogando League of Legends,decidi criar um mapa war igual ao do jogo,achei até que fico bem legal mas não era bem que eu queria,eu quero algo que sera realmente inovador e estou trabalhando nisso,mas para todo esse meu trabalho não ter sido em vão,trago ele aqui para caso alguém queira aproveitar o trabalho e quem sabe até melhorá-lo,pois ainda tem muitas idéias a serem colocadas no mapa.
É apenas um novo mapa de war com magias e itens modificados para uma melhor diversão,quem quiser pode usar,e eu estarei disposto a ajudar quando puder,só pfv,coloque os créditos.
Abrçs
~>Informações:
--PvP-Enforced.
--[8.60].
--Mapa próprio.
--Distro totalmente limpa.
--Novos itens editados.
--Ganha gold por matar alguém.
--Entre outras coisas que não lembro agora ;S.
--Senha do ADM: god/god
--Novas magias podem ser vistar no !spells
V0.2:
--Apenas retirei alguns "matinhos"pois era impossível passar em alguns lugares.
~>Imagens:
Inicio do time azul
Inicio do time vermelho
Um pouco da jungle
Jungle...
Itens
Templo
~>Links
Download
4shared: http://www.4shared.c...s_RiftV02.html?
mediafire: http://www.mediafire...s Rift!V0.2.rar
Scan: https://www.virustot...sis/1391529116/
~>Créditos:
--Juniorrek
--Minha familia que me ajudo muito me dando apoio...(brincadeira);p
--
-
meenero 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]