Mock 32 #1 Postado 17 Julho, 2009 (editado) Autor: MockTipo: SpellTestado em: Theforgotten server 0.3.3+Requer: [b]isWalkable[/b], [b]getPosByDir[/b], [b]getDirectionTo[/b] e [b]getDistanceBetween[/b] Esta magia é uma magia tão simples que nem presisa de foto, porem a primeira que faz o que ela faz, alem de nao usar o sistema padrão de spells ela é uma Exori vis; flam; san; mort... juntas em uma só, porem a diferença que não saem todas juntas, quando você solta vai sair só uma vez porem pode sair o dano de holy ou energy ou ice ou fire ou entao todos juntos, seria uma combinação de danos, e o dano nunca sai repetido exemplo: Ice Fire Ice energy Porem a spell alem de gastar 60 de mana, ir até o alvo como um exori vis normal ter a formula 90% proxima ao global e dar até 6 combos ela pode falhar e nao dar se quer um de dano. Mais em fim vamos ao script _______________________________________________________ O primeiro passo é ir em spells.xml e adcionar esta tag: <instant name="Massive strike" words="exori strike" lvl="45" mana="60" prem="1" range="4" blockwalls="1" exhaustion="1500" needlearn="0" script="strike.lua"> <vocation name="-"/> </instant> Veja que em vocation name eu coloquei em branco nesse caso você define qual vocação vai ser inserida para poder usar, apenas sorceres, druidas ou kinights, defina a seu gosto :yes: Agora vá em scripts ainda na pasta spells e crie o arquivo strike.lua contendo isso: function getDamage(level,ml,c1,d1) -- Scritp by mock local min = ((level / 3) + (ml / 2)) * (c1/1.5) + (d1/1.5) local max = ((level / 3) + (ml / 2)) * c1 + d1 return math.floor(min),math.floor(max) end local function runCombat(cid,tar,typ,ef,d) -- Scritp by mock if tar ~= nil then local min,max = getDamage( getPlayerLevel(cid) , getPlayerMagLevel(cid) ,1.1,-3) doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(tar),d) doTargetCombatHealth(cid, tar, typ, -min, -max,CONST_ME_NONE) doSendMagicEffect(getCreaturePosition(tar),ef) return TRUE end local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid)) pos.stackpos = 255 tar = getThingfromPos(pos) if isCreature(tar.uid) == false then doSendMagicEffect(pos,ef) else local min,max = getDamage( getPlayerLevel(cid) , getPlayerMagLevel(cid) ,1.1,-3) doTargetCombatHealth(cid, tar.uid, typ, -min, -max,CONST_ME_NONE) doSendMagicEffect(pos,ef) end end local function find() -- Scritp by mock local k = { {COMBAT_HOLYDAMAGE,CONST_ME_HOLYDAMAGE,CONST_ANI_SMALLHOLY,'Holy',168}, {COMBAT_EARTHDAMAGE,CONST_ME_CARNIPHILA,CONST_ANI_EARTH,'Earth',25}, {COMBAT_ICEDAMAGE,CONST_ME_ICEATTACK,CONST_ANI_SMALLICE,'Ice',35}, {COMBAT_FIREDAMAGE,CONST_ME_FIREATTACK,CONST_ANI_FIRE,'Fire',156}, {COMBAT_ENERGYDAMAGE,CONST_ME_ENERGYAREA,CONST_ANI_ENERGY,'Energy',155}, {COMBAT_DEATHDAMAGE,CONST_ME_MORTAREA,CONST_ANI_SUDDENDEATH,'Death',73}, } local types = { k[math.random(1,#k)] } for i=1,#k do nb = 1 mae = k[math.random(1,#k)] while table.find(types, mae) do mae = k[math.random(1,#k)] nb = nb+1 if nb == 100 then return FALSE end if i == 6 then return types end end table.insert(types,i,mae) end end local function getRand(n) -- Scritp by mock local ret = 0 --math.randomseed(os.clock()+math.random(1,100)+os.time()-math.random(1,900)) for i=1,n do if tonumber(string.sub(math.random(),8,10)) > 450 then ret = ret+1 end end return ret end function onCastSpell(cid, var) -- Scritp by mock types = find() if types == nil then return FALSE end local nos = getRand(6) if nos == 0 then doSendAnimatedText(getCreaturePosition(cid), "Fail!", TEXTCOLOR_WHITE) return TRUE end if isCreature(getCreatureTarget(cid)) then cr = getCreatureTarget(cid) p = getCreaturePosition(cid) local c = false for i=1,getDistanceBetween(getCreaturePosition(cid),getCreaturePosition(cr)) do p = getPosByDir({x=p.x,y=p.y,z=p.z}, getDirectionTo(p, getCreaturePosition(cr))) p.stackpos = 255 if isWalkable(p) == FALSE and isCreature(getThingfromPos(p).uid) == FALSE then doSendMagicEffect(p,2) c = true break end end if c == true then doSendAnimatedText(getCreaturePosition(cid), "Fail!", TEXTCOLOR_WHITE) return FALSE end for i=1,nos do ns = types[i] runCombat(cid,cr,ns[1],ns[2],ns[3]) local posi = getCreaturePosition(cid) addEvent(doSendAnimatedText, i*400,posi, i..' '..ns[4], ns[5]) doSendAnimatedText(posi, nos.." Hits!", TEXTCOLOR_WHITE) end return TRUE end for i=1,nos do ns = types[i] runCombat(cid,tar,ns[1],ns[2],ns[3]) local posi = getCreaturePosition(cid) addEvent(doSendAnimatedText, i*400,posi, i..' '..ns[4], ns[5]) doSendAnimatedText(posi, nos.." Hits!", TEXTCOLOR_WHITE) end return TRUE end Apos salvar vá até seu server de reload caso esteje on, se não basta abrir e divirta-se com uma spell diferente e bem feita. _______________________________________________________ Quais quer bugs poste no topico. Editado 29 Julho, 2009 por Mock update Compartilhar este post Link para o post
Sparken 0 #2 Postado 17 Julho, 2009 Nossa velho, Vc Eh Bom MEsmo Em?? Curti A spell, sempre inovando ^^ pena que nao posso por no meu ot pq ele eh verçao 0.3.1.1 dai n funfa, mais eu botaria ^^ Recomendo Para Ots Com XP Baixa! (EU) Compartilhar este post Link para o post
AkillesW 6 #3 Postado 17 Julho, 2009 Tentei faze uma spell +- igual a essa mais nao deu certo =D Boa spell =D Compartilhar este post Link para o post
Mithz 0 #4 Postado 17 Julho, 2009 Que legal =D Curti a spell Mock, espero que use ela no Pharenight ^^' Att, Mithz. Compartilhar este post Link para o post
Mock 32 #5 Postado 17 Julho, 2009 @Sparken seguinte, o script eu fiz na versão 0.3.3 porem ela tem chance de rodar na 0.3.1, se nao rodar me desculpe eu fiz pra 0.3.3 mais tenho quase certeza que roda, tenta ai. Compartilhar este post Link para o post
Fereu 0 #6 Postado 17 Julho, 2009 Muito fooda, math.randomseed AOEIAOEIAOEI depois vo pesquisa esse negocio, talvez procure aprender mais :x a spell ta legal, gostei do 'sistema' (: Compartilhar este post Link para o post
Sparken 0 #7 Postado 17 Julho, 2009 Nossaaaa Valeu Mock!! Funfooo ^^ Us Cara Gostaro, Botei So Pra REI Usa PQ nu meu ot tem sistema de rei, dai fico masi massa ainda, valeu velho!! ^^ (PS: Quem For Usar Essa MAgia Para XP e ML Alta, Recomendo rever Os Valores De Dano ^^) Compartilhar este post Link para o post
Mock 32 #8 Postado 17 Julho, 2009 @sparken quem quiser em server XP baxa é so mexe nas chances onde ta la > 450 é so muda p > 800~ ou 900. tambem entao é so usar muita mana. Compartilhar este post Link para o post
Luix 0 #9 Postado 17 Julho, 2009 Muito bom!! o.O @Mock você saberia fazer uma magia estilo essa ai, porem... que você solte normalmente e atk todos os player q estiverem na tela... (exemplo: exori vis q pega soh nos player, [ e em todos da tela]). VLw Compartilhar este post Link para o post
Bajt 0 #11 Postado 17 Julho, 2009 Muito bom, eu estava pensando nisso mesmo, valeu ai . Compartilhar este post Link para o post
Bumper 0 #12 Postado 18 Julho, 2009 Ví oque a spell faz e tive que comentar, não aguentei. QUE SPELL PHOOOOOOOOOOOOOOOOOOOOOOOOOODDAAAAAAAAAAA! Mano que coisa mais criativa cara! *-* Abrir 1 tfs só pra testar ela? JÁVAI ROLAR ;D Adorei a spell ! Compartilhar este post Link para o post
Mock 32 #13 Postado 19 Julho, 2009 Ví oque a spell faz e tive que comentar, não aguentei. QUE SPELL PHOOOOOOOOOOOOOOOOOOOOOOOOOODDAAAAAAAAAAA! Mano que coisa mais criativa cara! *-* Abrir 1 tfs só pra testar ela? JÁVAI ROLAR ;D Adorei a spell ! vlw cara xP só avisando que da pra adcionar psyccal damage, life drain damae, mana drain damage e drwon damage Compartilhar este post Link para o post
viviviva 0 #15 Postado 22 Agosto, 2009 bla bla bla mas como da o download Compartilhar este post Link para o post
Coelho8475 0 #16 Postado 22 Agosto, 2009 Muito bom, não te conhecia mas agora vi que e muito bom scripter. Ótima Spell. Compartilhar este post Link para o post
lukas05 0 #17 Postado 8 Setembro, 2009 ow mock..aki ela nao vai no inimigo ele apenas sai tendeu.. como nas versao 7.6 de tibia q o exori mort nao ia diretamente no inimigo.. nao sei pq isso se tiver como vc arrumar... eu to usando o forgotten 3.5 axo.. vlw ae ;] Compartilhar este post Link para o post
MatheusGrilo 0 #18 Postado 8 Setembro, 2009 Legal bem interessante ^^ Compartilhar este post Link para o post
KuawiT 0 #19 Postado 14 Setembro, 2009 Legal so que não prescisa de algumas actions que você coloco lá Geral pagano pau pro Mock oO Compartilhar este post Link para o post
Anywhere 0 #20 Postado 27 Setembro, 2009 Mock, achei um bug pelo menos no meu OT, ela funciona normal mas quando vai usar em algum monstro a distancia, ele acusa um erro no console e não acontece NADA veja: [27/09/2009 17:41:21] Lua Script Error: [spell Interface] [27/09/2009 17:41:21] data/spells/scripts/attack/strike.lua:onCastSpell [27/09/2009 17:41:21] data/spells/scripts/attack/strike.lua:83: attempt to call global 'isWalkable' (a nil value) [27/09/2009 17:41:21] stack traceback: [27/09/2009 17:41:21] data/spells/scripts/attack/strike.lua:83: in function <data/spells/scripts/attack/strike.lua:65> Compartilhar este post Link para o post