HO

[Encerrado] [Duvida]Alterar Ataque Mega Drain

Por HolyMaN, 28 de out. de 2012 em Tópicos Sem Resposta

12
1.7k
HolyMaNH
28 de outubro de 2012 às 06:44

teria como alterar o Mega Drain para igual PxG, atacando soh 1 pokemon?

se tiver rodeado de pokemon, o mega drain, tira life de todos..

 

 

data/lib/pokemon moves.lua

 

elseif spell == "Mega Drain" then

 

local uid = checkAreaUid(getThingPos(cid), check, 1, 1)

for _,pid in pairs(uid) do

if isCreature(cid) and isCreature(pid) and pid ~= cid then

if isPlayer(pid) and #getCreatureSummons(pid) >= 1 then return false end

 

local life = getCreatureHealth(pid)

 

doAreaCombatHealth(cid, GRASSDAMAGE, getThingPos(pid), 0, -min, -max, 14)

 

local newlife = life - getCreatureHealth(pid)

 

doSendMagicEffect(getThingPos(cid), 14)

if newlife >= 1 then

doCreatureAddHealth(cid, newlife)

doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32)

end

end

end

 

Session StartS
28 de outubro de 2012 às 14:22

tenta isso

 

elseif spell == "Mega Drain" then

local uid = checkAreaUid(getThingPos(cid), check, 1, 1)
for _,pid in pairs(uid) do
if isCreature(cid) and isCreature(pid) and pid ~= cid then
if isPlayer(pid) and #getCreatureSummons(pid) >= 1 then return false end

local life = getCreatureHealth(pid)

doAreaCombatHealth(cid, GRASSDAMAGE, getThingPosWithDebug(target), 0, -min, -max, 14)

local newlife = life - getCreatureHealth(pid)

doSendMagicEffect(getThingPos(cid), 14)
if newlife >= 1 then
doCreatureAddHealth(cid, newlife)
doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32)
end 
end
end

HolyMaNH
28 de outubro de 2012 às 16:22

vo tentar, mais lendo o script isso seria somente com target né?

mais mesmo assim vo testar, no caso eu comentei esse ataque como passiva...

ja ja edito-------------

 

 

EDIT----------

como disse soh funfa com target... sem target ele n solta a magia...

Editado Outubro 28 por GOD Gniu

Session StartS
28 de outubro de 2012 às 17:56

Não tenho ideia de como faze pra ele tira vida só 1 um sem ta no target ;s

SlicerS
28 de outubro de 2012 às 18:09

tenta ae...

elseif spell == "Mega Drain" then

local uid = checkAreaUid(getThingPos(cid), check, 1, 1)
local pid = 0

repeat
  local r = math.random(#uid)
  if uid[r] ~= cid and canAttackOther(cid, uid[r]) then
  pid = uid[r]
  else
  table.remove(uid, r)
  end
until pid ~= 0

if isCreature(pid) then        
local life = getCreatureHealth(pid)

doTargetCombatHealth(cid, pid, GRASSDAMAGE, -min, -max, 14)

local newlife = life - getCreatureHealth(pid)

doSendMagicEffect(getThingPos(cid), 14)
if newlife >= 1 then
  doCreatureAddHealth(cid, newlife)
  doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32)
end
end

HolyMaNH
28 de outubro de 2012 às 21:11

@Slicer, funciono perfeito...

podem mover/trancar o topico..

Session StartS
28 de outubro de 2012 às 21:33

Reportado para moverem

caoticC
28 de outubro de 2012 às 21:46

Duvida Sanada

Tópico Movido

HolyMaNH
29 de outubro de 2012 às 00:37

@Slicer/@caotic,

me desculpe eu pedi pra mover o topico, e agora descobri um erro/bugg...

olha oq aparece no console... mais o ataque esta funcionando..

 

console:

 

[29/10/2012 00:30:39] [Error - CreatureScript Interface]

[29/10/2012 00:30:39] data/creaturescripts/scripts/exp.lua:onStatsChange

[29/10/2012 00:30:39] Description:

[29/10/2012 00:30:39] data/lib/pokemon moves.lua:4098: attempt to call field '?' (a nil value)

[29/10/2012 00:30:39] stack traceback:

[29/10/2012 00:30:39] data/lib/pokemon moves.lua:4098: in function 'docastspell'

[29/10/2012 00:30:39] data/creaturescripts/scripts/exp.lua:650: in function <data/creaturescripts/scripts/exp.lua:121>

 

[29/10/2012 00:30:40] [Error - CreatureScript Interface]

[29/10/2012 00:30:40] data/creaturescripts/scripts/exp.lua:onStatsChange

[29/10/2012 00:30:40] Description:

[29/10/2012 00:30:40] data/lib/pokemon moves.lua:4098: attempt to call field '?' (a nil value)

[29/10/2012 00:30:40] stack traceback:

[29/10/2012 00:30:40] data/lib/pokemon moves.lua:4098: in function 'docastspell'

[29/10/2012 00:30:40] data/creaturescripts/scripts/exp.lua:650: in function <data/creaturescripts/scripts/exp.lua:121>

 

[29/10/2012 00:30:40] [Error - CreatureScript Interface]

[29/10/2012 00:30:40] data/creaturescripts/scripts/exp.lua:onStatsChange

[29/10/2012 00:30:40] Description:

[29/10/2012 00:30:40] data/lib/pokemon moves.lua:4098: attempt to call field '?' (a nil value)

[29/10/2012 00:30:40] stack traceback:

[29/10/2012 00:30:40] data/lib/pokemon moves.lua:4098: in function 'docastspell'

[29/10/2012 00:30:40] data/creaturescripts/scripts/exp.lua:650: in function <data/creaturescripts/scripts/exp.lua:121>

 

[29/10/2012 00:31:14] [Error - CreatureScript Interface]

[29/10/2012 00:31:14] data/creaturescripts/scripts/exp.lua:onStatsChange

[29/10/2012 00:31:14] Description:

[29/10/2012 00:31:14] data/lib/pokemon moves.lua:4098: attempt to call field '?' (a nil value)

[29/10/2012 00:31:14] stack traceback:

[29/10/2012 00:31:14] data/lib/pokemon moves.lua:4098: in function 'docastspell'

[29/10/2012 00:31:14] data/creaturescripts/scripts/exp.lua:650: in function <data/creaturescripts/scripts/exp.lua:121>

 

[29/10/2012 00:31:16] [Error - CreatureScript Interface]

[29/10/2012 00:31:16] data/creaturescripts/scripts/exp.lua:onStatsChange

[29/10/2012 00:31:16] Description:

[29/10/2012 00:31:16] data/lib/pokemon moves.lua:4098: attempt to call field '?' (a nil value)

[29/10/2012 00:31:16] stack traceback:

[29/10/2012 00:31:16] data/lib/pokemon moves.lua:4098: in function 'docastspell'

[29/10/2012 00:31:16] data/creaturescripts/scripts/exp.lua:650: in function <data/creaturescripts/scripts/exp.lua:121>

 

 

data/lib/pokemon moves.lua: proximidades da linha 4098

 

elseif spell == "Mega Drain" then

 

local uid = checkAreaUid(getThingPos(cid), check, 1, 1)

local pid = 0

 

repeat

local r = math.random(#uid)

if uid[r] ~= cid and canAttackOther(cid, uid[r]) then

pid = uid[r]

else

table.remove(uid, r) --EDIT LINHA 4098

end

until pid ~= 0

 

if isCreature(pid) then

local life = getCreatureHealth(pid)

 

doTargetCombatHealth(cid, pid, GRASSDAMAGE, -min, -max, 14)

 

local newlife = life - getCreatureHealth(pid)

 

doSendMagicEffect(getThingPos(cid), 14)

if newlife >= 1 then

doCreatureAddHealth(cid, newlife)

doSendAnimatedText(getThingPos(cid), "+"..newlife.."", 32)

end

end

 

data/creaturescript/scripts.exp: proximidade da linha 650

 

------------------------------------- Mega Drain ---------------------------------------

if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then

docastspell(cid, "Mega Drain") ---EDIT LINHA 650

end

 

 

teria como ajudar dinovo??

Editado Outubro 29 por GOD Gniu

SlicerS
29 de outubro de 2012 às 11:08

soh deixa essa parte assim..

repeat
local r = math.random(#uid)
if uid[r] ~= cid and canAttackOther(cid, uid[r]) then
pid = uid[r]
end
until pid ~= 0

estranhu da esse erro mas.. ;p

HolyMaNH
29 de outubro de 2012 às 11:57

ae agora funfo sem erros...

vlw ae Slicer... REP+

5 anos depois...
StigalS
20 de abril de 2018 às 00:32
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.