Ir para conteúdo

[Talkaction]System Moves [15/151]


meubk

Posts Recomendados

Moves System Pokemon



2v3sw7q.jpg

 

O meu script de moves, foi atualizado, por enquanto está com esses pokemons, eu estárei adicionando os 151, aos pouco não tenha pressa e acompanhe todos dias avera atualização.

 

Novidades :

1 - Hita todos da Area

2 - Somente 1 script para todos atks

3 - sistema de critico

4 - sistema de confuso

5 - sistema de paralizado

6 - sistema de sleep

7 - sistema de envenenado

 

Crie um arquivo com nome de moves.lua e cole o new script :

 

function getTime(s)
local n = math.floor(s / 600)
s = s - (600 * n)
return n, s
end

function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers)
local creaturesList = {}
	for x = -radiusx, radiusx do
		for y = -radiusy, radiusy do
			if not (x == 0 and y == 0) then
				creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE})
				if (creature.type == 1 and showPlayers == 1) or (creature.type == 2 and showMonsters == 1) then
					table.insert(creaturesList, creature.uid)
				end
			end
		end
	end
return creaturesList
end

-- CONDITIONS

function Confused(inconfuse, rounds)
if rounds == 0 then return false end
if not inconfuse then return false end
local c = {[1] = {x = 1, y = 0}, [2] = {x = 0, y = 1}, [3] = {x = -1, y = 0}, [4] = {x = 0, y = -1}}
local p = getCreaturePosition(inconfuse)
doSendMagicEffect(p, 31)
local s = math.random(4)
doTeleportThing(inconfuse, {x = p.x + c[s].x, y = p.y + c[s].y, z = p.z})
return addEvent(Confused, 400, inconfuse, rounds-1)
end

local paralize = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralize, CONDITION_PARAM_TICKS, 5*1000)
setConditionFormula(paralize, -0.7, 0, -0.8, 0)
function Paralize(inparalize)
doSendAnimatedText(getCreaturePosition(inparalize), "PAZ", 210)
doAddCondition(inparalize , paralize)
return true
end

local sleep = createConditionObject(CONDITION_PARALYZE)
setConditionParam(sleep, CONDITION_PARAM_TICKS, 5*1000)
setConditionFormula(sleep, -1.7, 0, -1.8, 0)
function Sleep(insleep)
doAddCondition(insleep , sleep)
p = getCreaturePosition(insleep)
doSendAnimatedText(p, "SLEEP", 154)
for i = 1, 5 do
if i == 1 then
	doSendMagicEffect(p, 32)
else
	addEvent(doSendMagicEffect, i * 1000, p, 32)
end
end
return true
end

function Poison(inpoison, ef, rounds)
if rounds == 0 then return false end
if not inpoison then return false end
local p = getCreaturePosition(inpoison)
doAreaCombatHealth(pet, COMBAT_EARTHDAMAGE, p, 0, -5, -10, ef)
return addEvent(Poison, 800, inpoison, ef, rounds-1)
end

-- END CONDITIONS

function getPosToStorm(posdecay)
b = {x = posdecay.x-20, y = posdecay.y-20, z = posdecay.z}
return b
end

local area1 = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 2, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}

local area2 = createCombatArea{
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 1, 2, 1, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 0, 0}
}

local area3 = createCombatArea{
{0, 0, 1, 0, 0},
{0, 1, 1, 1, 0},
{1, 1, 2, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0}
}


local areadirecion1 = {
[2] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 2, 0, 0}
},

[3] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{2, 1, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
},

[0] = createCombatArea{
{0, 0, 2, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
},

[1] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 1, 2},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
}
}

local areadirecion2 = {
[2] = createCombatArea{
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 2, 0, 0}
},

[3] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{2, 1, 1, 1, 1},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
},

[0] = createCombatArea{
{0, 0, 2, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0}
},

[1] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{1, 1, 1, 1, 2},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
}
}

local areadirecion3 = {
[2] = createCombatArea{
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 2, 0, 0}
},

[3] = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{2, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0}
},

[0] = createCombatArea{
{0, 0, 2, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0}
},

[1] = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 2},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0}
}
}

local areadirecion4 = {
[2] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0},
{0, 0, 2, 0, 0}
},

[3] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 1, 0, 0},
{2, 1, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 0, 0, 0}
},

[0] = createCombatArea{
{0, 0, 2, 0, 0},
{0, 0, 1, 0, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0}
},

[1] = createCombatArea{
{0, 0, 0, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 1, 2},
{0, 0, 1, 0, 0},
{0, 0, 0, 0, 0}
}
}

local d = {
["Bulbasaur"] = {
["m1"] = {atk = "Quick Attack", minlvl = 20, st = 2000, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Razor Leaf", minlvl = 20, st = 2001, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m3"] = {atk = "Vine Whip", minlvl = 20, st = 2002, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m4"] = {atk = "Headbutt", minlvl = 20, st = 2003, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m5"] = {atk = "Leech Seed", minlvl = 20, st = 2004, cd = 3, min = 100, max = 200, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m6"] = {atk = "Solar Beam", minlvl = 20, st = 2005, cd = 3, min = 200, max = 400, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m7"] = {atk = "Stun Spore", minlvl = 20, st = 2006, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m8"] = {atk = "Poison Powder", minlvl = 20, st = 2007, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2008, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
},
["Ivysaur"] = {
["m1"] = {atk = "Quick Attack", minlvl = 40, st = 2009, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Razor Leaf", minlvl = 40, st = 2010, cd = 3, min = 300, max = 400, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m3"] = {atk = "Vine Whip", minlvl = 40, st = 2011, cd = 3, min = 300, max = 440, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m4"] = {atk = "Headbutt", minlvl = 40, st = 2012, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m5"] = {atk = "Leech Seed", minlvl = 40, st = 2013, cd = 3, min =300, max = 400, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m6"] = {atk = "Solar Beam", minlvl = 40, st = 2014, cd = 3, min = 300, max = 400, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m7"] = {atk = "Stun Spore", minlvl = 40, st = 2015, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m8"] = {atk = "Poison Powder", minlvl = 40, st = 2016, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2017, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
},
["Venusaur"] = {
["m1"] = {atk = "Quick Attack", minlvl = 80, st = 2018, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Razor Leaf", minlvl = 80, st = 2019, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m3"] = {atk = "Vine Whip", minlvl = 80, st = 2020, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m4"] = {atk = "Headbutt", minlvl = 80, st = 2021, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m5"] = {atk = "Leech Seed", minlvl = 80, st = 2022, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = true, pz = false},
["m6"] = {atk = "Solar Beam", minlvl = 80, st = 2023, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m7"] = {atk = "Stun Spore", minlvl = 80, st = 2024, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m8"] = {atk = "Poison Powder", minlvl = 80, st = 2025, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m9"] = {atk = "Sleep Powder", minlvl = 20, st = 2026, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m10"] = {atk = "Leaf Storm", minlvl = 80, st = 2027, cd = 3, min = 1000, max = 2000, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
},
["Charmander"] = {
["m1"] = {atk = "Scratch", minlvl = 20, st = 2028, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Ember", minlvl = 20, st = 2029, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m3"] = {atk = "Flamethrower", minlvl = 20, st = 2030, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m4"] = {atk = "Fire Ball", minlvl = 20, st = 2031, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = true, pz = false},
["m5"] = {atk = "Fire Blast", minlvl = 20, st = 2032, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m6"] = {atk = "Rage", minlvl = 20, st = 2033, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m7"] = {atk = "Fire Fang", minlvl = 20, st = 2034, cd = 3, min = 100, max = 200, damage = COMBAT_FIREDAMAGE, target = true, pz = false},
},
["Charmeleon"] = {
["m1"] = {atk = "Scratch", minlvl = 40, st = 2035, cd = 3, min = 300, max = 400, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Ember", minlvl = 40, st = 2036, cd = 3, min = 300, max = 400, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m3"] = {atk = "Flamethrower", minlvl = 40, st = 2037, cd = 3, min = 400, max = 500, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m4"] = {atk = "Fire Ball", minlvl = 40, st = 2038, cd = 3, min = 300, max =400, damage = COMBAT_FIREDAMAGE, target = true, pz = false},
["m5"] = {atk = "Fire Blast", minlvl = 40, st = 2039, cd = 3, min = 300, max = 400, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m6"] = {atk = "Rage", minlvl = 40, st = 2040, cd = 3, min = 100, max = 300, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m7"] = {atk = "Fire Fang", minlvl = 40, st = 2041, cd = 3, min = 400, max = 800, damage = COMBAT_FIREDAMAGE, target = true, pz = false},
},
["Charizard"] = {
["m1"] = {atk = "Dragon Claw", minlvl = 80, st = 2042, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Ember", minlvl = 80, st = 2043, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m3"] = {atk = "Flamethrower", minlvl = 80, st = 2044, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m4"] = {atk = "Fire Ball", minlvl = 80, st = 2045, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = true, pz = false},
["m5"] = {atk = "Fire Blast", minlvl = 80, st = 2046, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m6"] = {atk = "Rage", minlvl = 80, st = 2047, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m7"] = {atk = "Magma Storm", minlvl = 80, st = 2048, cd = 3, min = 1000, max = 2000, damage = COMBAT_FIREDAMAGE, target = false, pz = false},
["m8"] = {atk = "Wing Attack", minlvl = 80, st = 2049, cd = 3, min = 1000, max = 2000, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false},
},
["Squirtle"] = {
["m1"] = {atk = "Headbutt", minlvl = 20, st = 2050, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Bubbles", minlvl = 20, st = 2051, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m3"] = {atk = "Water Gun", minlvl = 20, st = 2052, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m4"] = {atk = "Waterball", minlvl = 20, st = 2053, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m5"] = {atk = "Aqua Tail", minlvl = 20, st = 2054, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m6"] = {atk = "Hydro Cannon", minlvl = 20, st = 2055, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m7"] = {atk = "Harden", minlvl = 20, st = 2056, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true},
["m8"] = {atk = "Surf", minlvl = 20, st = 2057, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
},
["Wartortle"] = {
["m1"] = {atk = "Headbutt", minlvl = 40, st = 2058, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Bubbles", minlvl = 40, st = 2059, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m3"] = {atk = "Water Gun", minlvl = 40, st = 2060, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m4"] = {atk = "Waterball", minlvl = 40, st = 2061, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m5"] = {atk = "Aqua Tail", minlvl = 40, st = 2062, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m6"] = {atk = "Hydro Cannon", minlvl = 40, st = 2063, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m7"] = {atk = "Harden", minlvl = 40, st = 2064, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true},
["m8"] = {atk = "Surf", minlvl = 40, st = 2065, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
},
["Blastoise"] = {
["m1"] = {atk = "Headbutt", minlvl = 40, st = 2066, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Bubbles", minlvl = 40, st = 2067, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m3"] = {atk = "Water Gun", minlvl = 40, st = 2068, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m4"] = {atk = "Waterball", minlvl = 40, st = 2069, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = true, pz = false},
["m5"] = {atk = "Aqua Tail", minlvl = 40, st = 2070, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m6"] = {atk = "Hydro Cannon", minlvl = 40, st = 2071, cd = 3, min = 200, max = 400, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m7"] = {atk = "Harden", minlvl = 40, st = 2072, cd = 60, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true},
["m8"] = {atk = "Surf", minlvl = 40, st = 2073, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
["m9"] = {atk = "Hydropump", minlvl = 40, st = 2074, cd = 3, min = 100, max = 200, damage = COMBAT_ICEDAMAGE, target = false, pz = false},
},
["Caterpie"] = {
["m1"] = {atk = "Headbutt", minlvl = 1, st = 2075, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "String Shot", minlvl = 1, st = 2076, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m3"] = {atk = "Bug Bite", minlvl = 1, st = 2077, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
},
["Metapod"] = {
["m1"] = {atk = "Headbutt", minlvl = 10, st = 2078, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "String Shot", minlvl = 10, st = 2079, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m3"] = {atk = "Bug Bite", minlvl = 10, st = 2080, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m4"] = {atk = "Harden", minlvl = 10, st = 2081, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = true},
},
["Butterfree"] = {
["m1"] = {atk = "Headbutt", minlvl = 30, st = 2082, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "Whirlwind", minlvl = 30, st = 2083, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false},
["m3"] = {atk = "Super Sonic", minlvl = 30, st = 2084, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m4"] = {atk = "Stun Spore", minlvl = 30, st = 2085, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m5"] = {atk = "Poison Powder", minlvl = 30, st = 2086, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m6"] = {atk = "Sleep Powder", minlvl = 30, st = 2087, cd = 3, min = 0, max = 0, damage = COMBAT_EARTHDAMAGE, target = false, pz = false},
["m7"] = {atk = "Psybeam", minlvl = 30, st = 2088, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false},
["m8"] = {atk = "Confusion", minlvl = 30, st = 2089, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = false, pz = false},
},
["Weedle"] = {
["m1"] = {atk = "Horn Attack", minlvl = 1, st = 2090, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "String Shot", minlvl = 1, st = 2091, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m3"] = {atk = "Poison Sting", minlvl = 1, st = 2092, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
},
["Kakuna"] = {
["m1"] = {atk = "Bug Bite", minlvl = 10, st = 2093, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "String Shot", minlvl = 10, st = 2094, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m3"] = {atk = "Poison Sting", minlvl = 10, st = 2095, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m4"] = {atk = "Harden", minlvl = 10, st = 2096, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = true},
},
["Beedrill"] = {
["m1"] = {atk = "Fury Cutter", minlvl = 10, st = 2097, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m2"] = {atk = "String Shot", minlvl = 10, st = 2098, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m3"] = {atk = "Poison Sting", minlvl = 10, st = 2099, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m4"] = {atk = "Pin Missile", minlvl = 10, st = 2100, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m5"] = {atk = "Rage", minlvl = 10, st = 2101, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
["m6"] = {atk = "Strafe", minlvl = 10, st = 2102, cd = 3, min = 100, max = 200, damage = COMBAT_PHYSICALDAMAGE, target = true, pz = false},
},

}

function onSay(cid, words, param)

if #getCreatureSummons(cid) == 0 then
	return doPlayerSendCancel(cid, "You do not have any pokemon.")
end

	local poke = d[getCreatureName(getCreatureSummons(cid)[1])][words]
	if not poke then
		return true
	end
	local storage = poke.st
	local exst = 16265
	local cdexst = 0.5
	local cd = math.ceil(poke.cd/2)
	local pet = getCreatureSummons(cid)[1]
	local target = getCreatureTarget(cid)
	local look = getCreatureLookDir(pet)
	local position = getThingPos(pet)

	if getTilePzInfo(getCreaturePosition(pet)) and poke.pz == false then
		return doPlayerSendCancel(cid, "Not Attack in protection zone.")
	end

	if getPlayerLevel(cid) < poke.minlvl then
		return doPlayerSendTextMessage(cid, 19, "Your need level "..poke.minlvl.." to use " ..poke.atk..".")
	end

	if os.time()-getPlayerStorageValue(cid, storage) <= cd then
		minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
		return doPlayerSendTextMessage(cid, 27, "Wait "..seconds.." seconds to use "..poke.atk..".")
	end

	if target == 0 and poke.target then
		return doPlayerSendTextMessage(cid, 19, "This Pokemon Attack need any target.")
	end

	if os.time()-getPlayerStorageValue(cid, exst) <= cdexst then
		minutes,seconds = getTime(cdexst-(os.time()-getPlayerStorageValue(cid, exst)))
		return doPlayerSendCancel(cid, "Poke exhausted")
	end

	local critico = math.random(100) < 10 and 2 or 1

--ATTACKS

	if poke.atk == "Quick Attack" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 148)

	elseif poke.atk == "Razor Leaf" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 4)
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 79)

	elseif poke.atk == "Vine Whip" then
		local effects = {
		[0] = 80,
		[1] = 83,
		[2] = 81,
		[3] = 82
		}
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion1[look], -poke.min, -poke.max * critico, effects[look])

	elseif poke.atk == "Headbutt" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 111)

	elseif poke.atk == "Leech Seed" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 6)
		doSendAnimatedText(getCreaturePosition(target), "POISON", 66)
		addEvent(Poison, 500, target, 45, 5)

	elseif poke.atk == "Solar Beam" then
		local a = {
		[0] = {x = 0,  y = -1, effect={[1]=94,[2]=93,[3]=93,[4]=95}},
		[1] = {x = 1,  y = 0,  effect={[1]=86,[2]=88,[3]=88,[4]=87}},
		[2] = {x = 0,  y = 1,  effect={[1]=91,[2]=93,[3]=93,[4]=92}},
		[3] = {x = -1, y = 0,  effect={[1]=89,[2]=88,[3]=88,[4]=90}}
		}
		for i = 1,4 do
			doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i])
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59)

	elseif poke.atk == "Stun Spore" then
		local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0)
		for _,pid in pairs(d) do
			Paralize(pid)
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 85)

	elseif poke.atk == "Poison Powder" then
		local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0)
		for _,pid in pairs(d) do
			doSendAnimatedText(getCreaturePosition(pid), "POISON", 66)
			Poison(pid, 8, 5)
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 84)

	elseif poke.atk == "Sleep Powder" then
		local d = getCreaturesInRange(getThingPos(pet), 1, 1, 1, 0)
		for _,pid in pairs(d) do
			Sleep(pid)
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 27)

	elseif poke.atk == "Leaf Storm" then
		local d = getCreaturesInRange(getThingPos(pet), 3, 3, 1, 0)
			for _,pid in pairs(d) do
				for i = 1, 4 do
					if i == 1 then
						addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(pid), 0, -poke.min, -poke.max * critico, 79)
						doSendDistanceShoot(getPosToStorm(getCreaturePosition(pid)), getCreaturePosition(pid), 4)
					else
						addEvent(doAreaCombatHealth, i*800 ,pet, poke.damage, getThingPos(pid), 0, -poke.min, -poke.max * critico, 79)
						addEvent(doSendDistanceShoot, i*600, getPosToStorm(getCreaturePosition(pid)), getCreaturePosition(pid), 4)
					end
				end
			end

	elseif poke.atk == "Scratch" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142)

	elseif poke.atk == "Ember" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 15)

	elseif poke.atk == "Flamethrower" then
		local effects = {
		[0] = 55,
		[1] = 58,
		[2] = 56,
		[3] = 57
		}
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion1[look], -poke.min, -poke.max * critico, effects[look])

	elseif poke.atk == "Fire Ball" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 3)
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 5)

	elseif poke.atk == "Fire Blast" then
		local a = {
		[0] = {x = 0,  y = -1, effect= 60},
		[1] = {x = 1,  y = 0,  effect= 61},
		[2] = {x = 0,  y = 1,  effect= 62},
		[3] = {x = -1, y = 0,  effect= 63}
		}
		for i = 1,8 do
			if i == 1 then
				doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect)
				doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 15)
			else
				addEvent(doSendMagicEffect, i*300, {x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect)
				addEvent(doAreaCombatHealth, i*300, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 15)
			end
		end

	elseif poke.atk == "Rage" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		for i = 1,4 do
			if i == 1 then
				doSendMagicEffect(position, 168)
				doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142)
			else
				addEvent(doAreaCombatHealth, i*500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 142)
			end
		end

	elseif poke.atk == "Fire Fang" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 146)
		addEvent(doAreaCombatHealth, 200, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 15)
		addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 15)

	elseif poke.atk == "Dragon Claw" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 141)

	elseif poke.atk == "Magma Storm" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 36)
		addEvent(doAreaCombatHealth, 800, pet, poke.damage, getThingPos(pet), area1, -poke.min, -poke.max * critico, 6)

	elseif poke.atk == "Wing Attack" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 115)
		addEvent(doAreaCombatHealth, 500, pet, poke.damage, getThingPos(pet), area1, -poke.min, -poke.max * critico, 42)

	elseif poke.atk == "Bubbles" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 2)
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68)

	elseif poke.atk == "Water Gun" then
		local a = {
		[0] = {x = 0,  y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=76}},
		[1] = {x = 1,  y = 0,  effect={[1]=69,[2]=70,[3]=70,[4]=71}},
		[2] = {x = 0,  y = 1,  effect={[1]=77,[2]=75,[3]=75,[4]=78}},
		[3] = {x = -1, y = 0,  effect={[1]=72,[2]=70,[3]=70,[4]=73}}
		}
		for i = 1,4 do
			doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i])
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59)

    elseif poke.atk == "Waterball" then
		for i = 1,5 do
			if i == 1 then
				addEvent(doAreaCombatHealth, 200 ,pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68)
				doSendDistanceShoot(getPosToStorm(getCreaturePosition(target)), getCreaturePosition(target), 2)
			else
				addEvent(doAreaCombatHealth, i*700 ,pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 68)
				addEvent(doSendDistanceShoot, i*500, getPosToStorm(getCreaturePosition(target)), getCreaturePosition(target), 2)
			end
		end

	elseif poke.atk == "Aqua Tail" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area2, -poke.min, -poke.max * critico, 160)

	elseif poke.atk == "Hydro Cannon" then
		local a = {
		[0] = {x = 0,  y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[8]=76}},
		[1] = {x = 1,  y = 0,  effect={[1]=69,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=71}},
		[2] = {x = 0,  y = 1,  effect={[1]=77,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[4]=78}},
		[3] = {x = -1, y = 0,  effect={[1]=72,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=73}}
		}
		for i = 1,8 do
			doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i])
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 59)

	elseif poke.atk == "Harden" then
		function Harden(cid, rounds)
			if rounds == 0 then return false end
			if #getCreatureSummons(cid) == 0 then return false end
			doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 144)
			return addEvent(Harden, 1000, cid, rounds-1)
		end
		addEvent(Harden, 500, cid, 40)

	elseif poke.atk == "Surf" then
		local a = {
		[0] = {x = 0,  y = -1, effect= 66},
		[1] = {x = 1,  y = 0,  effect= 67},
		[2] = {x = 0,  y = 1,  effect= 64},
		[3] = {x = -1, y = 0,  effect= 65}
		}
		for i = 1,8 do
			if i == 1 then
				doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect)
				doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68)
			else
				addEvent(doSendMagicEffect, i*300, {x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect)
				addEvent(doAreaCombatHealth, i*300, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68)
			end
		end

	elseif poke.atk == "Hydropump" then
		local a = {
		[0] = {x = 0,  y = -1, effect={[1]=74,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[8]=76}},
		[1] = {x = 1,  y = 0,  effect={[1]=69,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=71}},
		[2] = {x = 0,  y = 1,  effect={[1]=77,[2]=75,[3]=75,[4]=75,[5]=75,[6]=75,[7]=75,[4]=78}},
		[3] = {x = -1, y = 0,  effect={[1]=72,[2]=70,[3]=70,[4]=70,[5]=70,[6]=70,[7]=70,[8]=73}}
		}
		for i = 1,8 do
			doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i])
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 68)
		addEvent(doAreaCombatHealth, 400, pet, poke.damage, getThingPos(pet), areadirecion3[look], -poke.min, -poke.max * critico, 33)

	elseif poke.atk == "String Shot" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 23)
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137)
		Paralize(target)

    elseif poke.atk == "Bug Bite" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 146)

	elseif poke.atk == "Whirlwind" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion4[look], -poke.min, -poke.max * critico, 42)

	elseif poke.atk == "Super Sonic" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		for i = 1, 3 do
			if i == 1 then
				doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 24)
			else
				addEvent(doSendDistanceShoot, i * 200, getCreaturePosition(pet), getCreaturePosition(target), 24)
			end
		end
		addEvent(doSendAnimatedText, 500, getCreaturePosition(target), "CONF", 210)
		addEvent(Confused, 500, target, 15)

	elseif poke.atk == "Psybeam" then
		local a = {
		[0] = {x = 0,  y = -1, effect={[1]=108,[2]=109,[3]=109,[4]=108}},
		[1] = {x = 1,  y = 0,  effect={[1]=106,[2]=107,[3]=107,[4]=106}},
		[2] = {x = 0,  y = 1,  effect={[1]=109,[2]=108,[3]=108,[4]=109}},
		[3] = {x = -1, y = 0,  effect={[1]=107,[2]=106,[3]=106,[4]=107}}
		}
		for i = 1,4 do
			doSendMagicEffect({x = position.x + a[look].x*i, y = position.y + a[look].y*i, z = position.z}, a[look].effect[i])
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), areadirecion2[look], -poke.min, -poke.max * critico, 59)

	elseif poke.atk == "Confusion" then
		doAreaCombatHealth(pet, poke.damage, getThingPos(pet), area3, -poke.min, -poke.max * critico, 136)

	elseif poke.atk == "Horn Attack" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 111)

	elseif poke.atk == "Poison Sting" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 15)
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 9)

	elseif poke.atk == "Fury Cutter" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 110)
		addEvent(doAreaCombatHealth, 500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 110)

	elseif poke.atk == "Pin Missile" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 5 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		for i = 1, 3 do
			if i == 1 then
				doSendDistanceShoot(getCreaturePosition(pet), getCreaturePosition(target), 13)
				doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137)
			else
				addEvent(doSendDistanceShoot, i * 200, getCreaturePosition(pet), getCreaturePosition(target), 13)
				addEvent(doAreaCombatHealth, i * 200, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, 137)
			end
		end

	elseif poke.atk == "Strafe" then
		if getDistanceBetween(getCreaturePosition(pet), getCreaturePosition(target)) > 1 then
			return doPlayerSendCancel(cid, "Target is far away.")
		end
		local dd = {142, 111, 110, 148}
		for i = 1,6 do
			af = math.random(4)
			if i == 1 then
				doAreaCombatHealth(pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, dd[af])
			else
				addEvent(doAreaCombatHealth, i*500, pet, poke.damage, getThingPos(target), 0, -poke.min, -poke.max * critico, dd[af])
			end
		end


	end

-- END ATTACKS

	doPlayerSay(cid, getCreatureName(pet)..", use "..poke.atk..".", 1)
	setPlayerStorageValue(cid, storage, os.time()+cd)
	setPlayerStorageValue(cid, exst, os.time()+cdexst)
	local atknotcritic = {"Harden", "Poison Powder", "Sleep Powder", "Super Sonic", "Stun Spore"}
	if critico == 2 and not isInArray(atknotcritic, poke.atk) then
		doSendAnimatedText(getCreaturePosition(cid), "CRITICAL", 144)
	end

return true
end

 

New Tag :

<talkaction words="m1;m2;m3;m4;m5;m6;m7;m8;m9;m10;m11;m12" hide="yes" event="script" value="moves.lua"/>

 

Pokemons Configurados [15/151] :

 

#Bulbasaur

#Ivysaur

#Venusaur

#Charmander

#Charmeleon

#Charizard

#Squirtle

#Wartortle

#Blastoise

#Caterpie

#Metapod

#Butterfree

#Weedle

#Kakuna

#Beedrill

Editado por xotservx
Link para o comentário
Compartilhar em outros sites

Gostei da sua atitude xotservx, eu havia ficado com raiva do seu comentário sobre sistema que eu havia editado, eu tinha falado se não gostou faça melhor.

Pois bem você fez melhor, não foi igual alguns que falaram mal e não fizeram nada.

 

Bem o que posso dizer Rep+ e meus parabéns.

 

Bota os créditos do mock e mkalo senão depois vem alguém enchendo o saco.

Link para o comentário
Compartilhar em outros sites

So n Consegui Aruma Os Atakes De Distancia , Mais Dps Do Uma Olhada ake.

Vlw Ae Pelo Script , Nota 10 =D .

 

Rep++

 

-------EDIT:

 

Tem Como Colocar As Animaçoes Dos Poderes , Tipo o Razor Leaf , O Pokemon Taca Umas Folhas.

Editado por fronzer
Link para o comentário
Compartilhar em outros sites

["Bulbasaur"] = {attackname = "Razor Leaf", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 8, typeattack = "distance", effecta = 79 , effectd = 4, type = COMBAT_EARTHDAMAGE}

 

tá aew o Razor leaf, em distancia o effectd = é o effeito de atirar, e o effecta = é o efeito de qndo acertar no monstro...

 

fui.

Link para o comentário
Compartilhar em outros sites

erro no console ?

 

e qndo adc + atakes sempre tem que colocar uma virgula no final, vc está colocando.. exemplo :

 

["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE},
["Charmander"] = {attackname = "Scratch", level = 20, storage = 2001, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE},
["Squirtle"] = {attackname = "Headbutt", level = 20, storage = 2002, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "intarget", effecta = 141, type = COMBAT_PHYSICALDAMAGE}

 

somente no ultimo naum precisará de virgula..

Link para o comentário
Compartilhar em outros sites

- System M1 -

 

Autor : XotservX

Testado : TFS 0.3.6 , 8.54

 

 

Olá hoje venho trazer o sistema de moves de pokemon ,



por talk, feito por min, e ja vow manda

um tutorial de editar :)

 

function isSummon(uid)
return uid ~= getCreatureMaster(uid) or false
end

function doSendMagicEffectInArea(pos,effect,area,cid) -- Function by mock
local centro = {}
centro.y = math.floor(table.getn(area)/2)+1
for y = 1, table.getn(area) do
	for x = 1, table.getn(area[y]) do
		if area[y][x] > 0 then
			centro.x = math.floor(table.getn(area[y])/2)+1
			if type(effect) == 'table' then
				doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},(effect[area[y][x]] or 0),cid)
			else
				doSendMagicEffect({x=pos.x+x-centro.x,y=pos.y+y-centro.y,z= pos.z},effect or 0,cid)
			end
		end
	end
end
return true
end

function getTime(s) -- by : Mkalo.
local n = math.floor(s / 60)
s = s - (60 * n)
return n, s
end

-- AREAS --
local arr1 = {
{1, 1, 1},
{1, 0, 1},
{1, 1, 1},
}

-- M1 System, by: XotserX. --

local pokes = {
["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}
}


function onSay(cid, words, param, target)

	if #getCreatureSummons(cid) == 0 then
		return doPlayerSendCancel(cid, "You do not have any pokemon.")
	end

	if getPlayerStorageValue(cid, 102032) == 1 then
		doPlayerSendCancel(cid, "Your pokemon is exhausted.")
		doSendMagicEffect(getCreaturePosition(cid), 2)
	return true
	end

       for i,x in pairs(pokes) do

            local storage = x.storage
            local cd = x.cd


					 if getCreatureSummons(cid) ~= 0 then
					   if not getTilePzInfo(getPlayerPosition(cid)) then
                             if getCreatureName(getCreatureSummons(cid)[1]) == i then
                              if getCreatureTarget(cid) ~= 0 then
                               if not isSummon(getCreatureTarget(cid)) or not isPlayer(getCreatureTarget(cid)) then
                                  if getPlayerLevel(cid) >= x.level then
							   	               if os.time()-getPlayerStorageValue(cid, storage) <= cd then
												minutes,seconds = getTime(cd-(os.time()-getPlayerStorageValue(cid, storage)))
												return doPlayerSendTextMessage(cid, 27, "You need to wait ".. seconds .. " seconds to use " ..x.attackname..".")
												end

							   	   if x.typeattack == "distance" then
									 if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then
									   doSendDistanceShoot(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid)), x.effectd)
									   doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta)
									   doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
									   doCreatureSay(cid, ""..i..", "..x.attackname..".", 1)
									   setPlayerStorageValue(cid, storage, os.time()+cd)
									   setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
							         else
							           doPlayerSendCancel(cid, "Target is far away.")
									   doSendMagicEffect(getCreaturePosition(cid), 2)
                                        end
                                          return true
                                      end

                                      if x.typeattack == "area" then
                                        if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then
                                          doSendMagicEffectInArea(getCreaturePosition(getCreatureSummons(cid)[1]),x.effecta,x.arr)
									   doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
									   	   doCreatureSay(cid,""..i..", "..x.attackname..".", 1)
									   setPlayerStorageValue(cid, storage, os.time()+cd)
										setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
                                        else
							           doPlayerSendCancel(cid, "Target is far away.")
									   doSendMagicEffect(getCreaturePosition(cid), 2)
                                        end
                                      return true
                                      end

                                      if x.typeattack == "direcion" then
                                       if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then
                                        if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
                                           doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 0, 1),x.effectdir0)
                                           doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
										setPlayerStorageValue(cid, storage, os.time()+cd)
									   	    doCreatureSay(cid,""..i..", "..x.attackname..".", 1)
										setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
                                        elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
                                           doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 1, 1),x.effectdir1)
                                           doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
										setPlayerStorageValue(cid, storage, os.time()+cd)
									   	    doCreatureSay(cid,""..i..", "..x.attackname..".", 1)
										setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
                                        elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
                                           doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 2, 1),x.effectdir2)
                                           doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
										setPlayerStorageValue(cid, storage, os.time()+cd)
									   	    doCreatureSay(cid,""..i..", "..x.attackname..".", 1)
										setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
                                        elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
                                           doSendMagicEffect(getPositionByDirection(getCreaturePosition(getCreatureSummons(cid)[1]), 3, 1),x.effectdir3)
                                           doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
										setPlayerStorageValue(cid, storage, os.time()+cd)
                                           doCreatureSay(cid,""..i..", "..x.attackname..".", 1)
										setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
                                        end
	                                 else
							           doPlayerSendCancel(cid, "Target is far away.")
									   doSendMagicEffect(getCreaturePosition(cid), 2)
                                        end
                                      return true
                                      end

                                      if x.typeattack == "intarget" then
                                         if getDistanceBetween(getCreaturePosition(getCreatureSummons(cid)[1]), getCreaturePosition(getCreatureTarget(cid))) <= x.range then
                                          doSendMagicEffect(getCreaturePosition(getCreatureTarget(cid)), x.effecta)
									   doAreaCombatHealth(getCreatureSummons(cid)[1], x.type, getCreaturePosition(getCreatureTarget(cid)), x.arr, -(x.atkmin+getPlayerLevel(cid)), -(x.atkmax+getPlayerLevel(cid)),  x.effecta)
									   doCreatureSay(cid, ""..i..", "..x.attackname..".", 1)
									   setPlayerStorageValue(cid, storage, os.time()+cd)
									   setPlayerStorageValue(cid, 102032, 1)
									   addEvent(setPlayerStorageValue, 1*1000, cid, 102032, -1)
							         else
							           doPlayerSendCancel(cid, "Target is far away.")
									   doSendMagicEffect(getCreaturePosition(cid), 2)
                                        end
                                      return true
                                      end



                                   else
                                               doPlayerSendTextMessage(cid, 27, "You need level "..x.level.." to use " ..x.attackname..".")
										    doSendMagicEffect(getCreaturePosition(cid), 2)
                                               return true
                                   end
                               else
                                           doPlayerSendCancel(cid, "Invalid Target.")
										doSendMagicEffect(getCreaturePosition(cid), 2)
                                          return true
                               end
                              else
                                           doPlayerSendCancel(cid, "Target not is avalied.")
										doSendMagicEffect(getCreaturePosition(cid), 2)
                                          return true
                               end
						  end
                           else
                                   doPlayerSendCancel(cid, "Do not Attack in Protection Zone.")
								doSendMagicEffect(getCreaturePosition(cid), 2)
                                    return true
                           end
					else
                            doPlayerSendCancel(cid, "You need pokemon to use attacks.")
						 doSendMagicEffect(getCreaturePosition(cid), 2)
                            return true
				    end

       end
return true
end

 

Configurando :

 

1° para adicionar mais ataques é simples na parte de loca pokes = {

vcs vão adicionar a magia..

 

Se o Ataque for de distancia :

["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 8, typeattack = "distance", effecta = 0 , effectd = 0, type = COMBAT_PHYSICALDAMAGE} -- distancia

se for de area :

["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 8, typeattack = "area", arr = arr1, effecta = 0, type = COMBAT_PHYSICALDAMAGE} -- area

se for de direção :

["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "direcion", effectdir0 = 0, effectdir1 = 0, effectdir2 = 0, effectdir3 = 0, type = COMBAT_PHYSICALDAMAGE} -- direcão

se for de ataque em cima do target :

["Bulbasaur"] = {attackname = "Quick Attack", level = 20, storage = 2000, cd = 5, atkmin = 20, atkmax = 40, range = 1, typeattack = "intarget", effecta = 111, type = COMBAT_PHYSICALDAMAGE}

 

Adicionando + areas

para adicionar mais areas só colocar :

local arr1 = {
{1, 1, 1},
{1, 0, 1},
{1, 1, 1},
}

local arr2 = {
{1, 1, 1},
{1, 0, 1},
{1, 1, 1},
}

 

sempre aumentando 1 , e depois na tag do ataque pra usar é só configurar no

arr = arr1

ou

arr = arr2

...

 

Storage e Cd

 

lembrando que na tabela

storage = 2000

cada attack tem que ter uam storage diferente

e o

cd = 5

é o coldoown pra cada attack, sendo 5 em segundos.

 

Dano

 

para configurar o dano é simples atkmin e atk max...

 

Range

 

range é a distancia ki pode tar pra faser o attaque, sendo 1 para intarget, e o numero de cada sqm do lado para area.

 

attacktype

possiveis tipos : "area", "distance", "intarget", "direcion" -- como assima.

 

 

tá ai, se alguem for capaz de configurar ele, :), seja feliz...

para adicionar + m1 m2 m3 m4 , só copiar e colar

 

tag :

<talkaction words="m1" hide="yes" event="script" value="m1.lua"/>

 

#Créditos

Mock , pela função doSendMagicEffectInArea

MatheusMkalo pela função getTime(s)

 

 

 

Fuiii...

 

Ajudei REP+

1 pergunta ... como fasso pra editar o effect tpw do flamethower que sera do 55 ao 58 para virar em todos cantos por exemplo svke ... que vc usa flamethower vai pra frente ai vc quer usar de costas ele so vai pra frente ... ate agora não consegui em nenhum script de m1 se poder me ajudar !

Mais O System Fico 10+ Parabens !

Link para o comentário
Compartilhar em outros sites

crie dois monstros , no xml vc coloca o mesmo nome , mais no arquibo se bota bulbasaur, e bulbasaur2, o bulbasaur2 se deixa com ataques , ai vc refáz, os das hunts, e o bulbasaur se deixa sem atakes, pq ai no catch, qndo ele pegar, ele vai adc o bulbasaur , pq o corpse do bulbasaur2 é igual o do 1

:) , naum sei se da pra faser no catch da thalia, num sei se lá configura corpse, mais no do mkalo vai de boua...

Link para o comentário
Compartilhar em outros sites

Fiko muito bom

Ja dei +REP

o problema é que eu num saco quanto mais ou menos tem hit de cada poke e quais os ataques e talz..

enfim, não saco de spells, mas foi uma grande contribuição pros scripters do fórum, podendo no futuro alguem lancar completo até o m5 :D

 

[]'s

 

@edit

tava tentando fazer umas, é mó dificil, não encontro as animações das magias, mas se alguem souber e quiser me dá uma forcinha com uma lista dos efeitos da magia e me ensinando como fazer, se aprender eu vou usar a maior parte do tempo vago para terminar e pode crer que eu posto aqui no fórum pra galera...

Meu MSN: ~~~> Sou_tjs_de_coracao@hotmail.com <~~

Editado por GMHareaOT
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...