Ir para conteúdo

Sistema M1,m2,m3/


binhorag

Posts Recomendados

Tipo do script:Sistema m1,m2,m3 se alguem tiver com mais (EX:m4,m5)

Protocolo (versão do Tibia):8.54 [poketibia].

Servidor utilizado:The forgoten server

Nível de experiência:menos de uma semana mas ja tenho uma noção.

Adicionais/Informações:só isso ai mesmo

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

Script com spells de alguns pokes... vo colocar ateh o 5 pq o resto n coube!

Talkactions.xml: 
<talkaction words="m1" case-sensitive="no" event="script" value="move1.lua"/>
<talkaction words="m2" case-sensitive="no" event="script" value="move2.lua"/>
<talkaction words="m3" case-sensitive="no" event="script" value="move3.lua"/>
<talkaction words="m4" case-sensitive="no" event="script" value="move4.lua"/>
<talkaction words="m5" case-sensitive="no" event="script" value="move5.lua"/>

 

Talkactions/scripts

 

move1.lua
local dynpun1 = createCombatArea{
{1, 0, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}

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


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


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


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

local confusion = 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 waterspout = createCombatArea{
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1}
}


local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1600001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 7
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1700001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 2.5,
		type = "normal",
		cd = 7
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1800001,
		base1 = 200,
		base2 = 201,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 7
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1900001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 7
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Quick Attack",
		minLv = 1,
		ex = 2000001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 7
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Bite",
		minLv = 1,
		ex = 4100001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 1.7,
		type = "normal",
		cd = 11
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Bite",
		minLv = 1,
		ex = 4200001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 5.4,
		type = "normal",
		cd = 11
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Slash",
		minLv = 1,
		ex = 6900001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 11
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Slash",
		minLv = 1,
		ex = 7000001,
		base1 = 100,
		base2 = 101, -- 150
		dista = 1, -- 3
		bonus = 2.7, -- 3
		type = "grass",
		cd = 11 -- 11
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Slash",
		minLv = 1,
		ex = 7100001,
		base1 = 200,
		base2 = 220,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 11
	     }
	 },
[19] = {x = {
		pok = magikarp,
		spell = "Splash",
		minLv = 1,
		ex = 1290001,
		base1 = 280,
		base2 = 300,
		dista = 1,
		bonus = 4,
		type = "normal",
		target = "no",
		cd = 6
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Doubleslap",
		minLv = 1,
		ex = 6000001,
		base1 = 10,
		base2 = 11,
		dista = 1,
		bonus = 1.2,
		type = "normal",
		cd = 7
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Doubleslap",
		minLv = 1,
		ex = 6100001,
		base1 = 48,
		base2 = 53,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 7
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Mega Punch",
		minLv = 1,
		ex = 6200001,
		base1 = 190,
		base2 = 205,
		dista = 1,
		bonus = 5.4,
		type = "fighting",
		cd = 12
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Confusion",
		minLv = 1,
		ex = 6300001,
		base1 = 35,
		base2 = 45,
		dista = 5,
		bonus = 5,
		type = "psychic",
		target = "no",
		cd = 12
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Absorb",
		minLv = 1,
		ex = 4300001,
		base1 = 25,
		base2 = 30,
		dista = 1,
		bonus = 2,
		type = "grass",
		cd = 10
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Absorb",
		minLv = 1,
		ex = 4400001,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3.5,
		type = "grass",
		cd = 10
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Absorb",
		minLv = 1,
		ex = 4500001,
		base1 = 55,
		base2 = 65,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 10
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Bubbles",
		minLv = 1,
		ex = 1160001,
		base1 = 20,
		base2 = 21,
		dista = 4,
		bonus = 2.4,
		type = "water",
		cd = 10
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Spout",
		minLv = 1,
		ex = 1170001,
		base1 = 100,
		base2 = 105,
		dista = 5,
		bonus = 3.4,
		target = "no",
		type = "water",
		cd = 14
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Mud Shot",
		minLv = 1,
		ex = 8800001,
		base1 = 35,
		base2 = 40,
		dista = 5,
		bonus = 2.9,
		type = "ground",
		cd = 10
	     }
	 },
[47] = {x = {
		pok = Muk,
		spell = "Mud Shot",
		minLv = 1,
		ex = 8900001,
		base1 = 101,
		base2 = 105,
		dista = 5,
		bonus = 5,
		type = "ground",
		cd = 10
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "Horn Attack",
		minLv = 1,
		ex = 1300001,
		base1 = 30,
		base2 = 35,
		dista = 1,
		bonus = 2.4,
		type = "normal",
		cd = 9
	     }
	 },
[60] = {x = {
		nome = Kakuna,
		spell = "Headbutt",
		minLv = 1,
		ex = 1400001,
		base1 = 80,
		base2 = 85,
		dista = 1,
		bonus = 3.4,
		type = "normal",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Fury Attack",
		minLv = 1,
		ex = 1500001,
		base1 = 60,
		base2 = 65,
		dista = 3,
		bonus = 2,
		type = "normal",
		cd = 11
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Quick Attack",
		minLv = 1,
		ex = 8400001,
		base1 = 82,
		base2 = 97,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 8
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Rapid Hit",
		minLv = 1,
		ex = 8500001,
		base1 = 222,
		base2 = 237,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 6
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Super Sonic",
		minLv = 1,
		ex = 8100001,
		base1 = 0,
		base2 = 0,
		dista = 5,
		bonus = 0,
		type = "normal",
		cd = 15
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Super Sonic",
		minLv = 1,
		ex = 8200001,
		base1 = 0,
		base2 = 0,
		dista = 5,
		bonus = 0,
		type = "normal",
		cd = 15
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Slam",
		minLv = 1,
		ex = 1000001,
		base1 = 85,
		base2 = 95,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Slam",
		minLv = 1,
		ex = 1000001,
		base1 = 185,
		base2 = 195,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Slam",
		minLv = 1,
		ex = 1010001,
		base1 = 185,
		base2 = 195,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Slam",
		minLv = 1,
		ex = 1010001,
		base1 = 355,
		base2 = 365,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7400001,
		base1 = 35,
		base2 = 40,
		dista = 5,
		bonus = 2.6,
		type = "rock",
		cd = 14
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7500001,
		base1 = 105,
		base2 = 106,
		dista = 5,
		bonus = 3.9,
		type = "rock",
		cd = 14
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7600001,
		base1 = 205,
		base2 = 210,
		dista = 5,
		bonus = 5,
		type = "rock",
		cd = 14
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7600001,
		base1 = 105,
		base2 = 106,
		dista = 5,
		bonus = 2.5,
		type = "rock",
		cd = 14
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Scratch",
		minLv = 1,
		ex = 2700001,
		base1 = 15,
		base2 = 25,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 12
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Scratch",
		minLv = 1,
		ex = 2700001,
		base1 = 5,
		base2 = 7,
		dista = 1,
		bonus = 1,
		type = "normal",
		cd = 12
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800001,
		base1 = 105,
		base2 = 106,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800001,
		base1 = 75,
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 16
	     }
	 },
}

function onSay(cid)

if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu poke?")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda n tem level.")
return 0
end
	if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then

	if not isMonster(getCreatureTarget(cid)) then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Selecione.")
	return 0
	end
	if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ta longe.")
	return 0
	end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Dynamic Punch" then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun1, 0, 0, 17)
	addEvent(doAreaCombatHealth, 105, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun1, 0, 0, 17)
	addEvent(doAreaCombatHealth, 250, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun2, 0, 0, 17)
	addEvent(doAreaCombatHealth, 400, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun3, 0, 0, 17)
	addEvent(doAreaCombatHealth, 555, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun4, 0, 0, 17)
	addEvent(doAreaCombatHealth, 700, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun5, 0, 0, 17)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Quick Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Slam" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Rapid Hit" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	local hitalvo = getCreatureTarget(cid)
	local function hit(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if isCreature(getCreatureTarget(params.cid)) then
	if getCreatureTarget(params.cid) == params.hitalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], NORMALDAMAGE, getThingPos(getCreatureTarget(params.cid)), 0, -0, -0, 3)
	end
	end
	end
	end
	addEvent(hit, 80, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 280, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 480, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 680, {cid = cid, hitalvo = hitalvo})
	return 0
elseif pokemon.x.spell == "Bite" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 146)
	return 0
elseif pokemon.x.spell == "Slash" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 160)
	return 0
elseif pokemon.x.spell == "Splash" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 53)
	return 0
elseif pokemon.x.spell == "Doubleslap" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local function slap(params)
	if isMonster(getCreatureTarget(params.cid)) then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(params.cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	else
	end
	end
	addEvent(slap, 0, {cid = cid})
	addEvent(slap, 600, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Confusion" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), confusion, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 133)
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local life = getCreatureHealth(getCreatureTarget(cid))
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	local newlife = life - getCreatureHealth(getCreatureTarget(cid))
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], newlife)
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..newlife.."", 35)
	return 0
elseif pokemon.x.spell == "Mud Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local mudalvo = getCreatureTarget(cid)
local function ver(params)
if isCreature(params.mudalvo) then
if getPlayerStorageValue(params.mudalvo, 3) >= 1 then
setPlayerStorageValue(params.mudalvo, 3, -1)
end
end
end
	addEvent(ver, 4500, {mudalvo = mudalvo})
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 1)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 34)
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Water Spout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), {x=getThingPos(getCreatureSummons(cid)[1]).x, y=getThingPos(getCreatureSummons(cid)[1]).y-5, z=getThingPos(getCreatureSummons(cid)[1]).z}, 2)
	local function spout(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	for x = -2,2 do
		for y = -2,2 do
	local newpos = getThingPos(getCreatureSummons(params.cid)[1])
	newpos.x = newpos.x+x
	newpos.y = newpos.y+y
	doSendDistanceShoot({x=getThingPos(getCreatureSummons(params.cid)[1]).x, y=getThingPos(getCreatureSummons(params.cid)[1]).y-5, z=getThingPos(getCreatureSummons(params.cid)[1]).z}, newpos, 2)
	end
	end
	end
	end

	local function spdmg(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureSummons(params.cid)[1]), waterspout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
	end
	end

	addEvent(spout, 300, {cid = cid})
	addEvent(spdmg, 450, {cid = cid})
	return 0
elseif pokemon.x.spell == "Horn Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Rock Throw" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 11)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Headbutt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
elseif pokemon.x.spell == "Fury Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local namezito = getCreatureName(getCreatureSummons(cid)[1])
	local namezin = getCreatureName(getCreatureTarget(cid))
	local function pee(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if isCreature(getCreatureTarget(params.cid)) then
	if getCreatureName(getCreatureSummons(params.cid)[1]) == namezito then
	if getCreatureName(getCreatureTarget(params.cid)) == namezin then
	doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 15)
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(params.cid)), 0, -((num1)+(getPlayerLevel(params.cid)*(num3))), -((num2)+(getPlayerLevel(params.cid)*(num3))), 3)
	end
	end
	end
	end
	end
	local delay = 200
	randnee = math.random(1,100)
	if randnee >= 1 and randnee <= 37 then
	a = 2
	elseif randnee >= 38 and randnee <= 74 then
	a = 3
	elseif randnee >= 75 and randnee <= 88 then
	a = 4
	else
	a = 5
	end
	local times = a
	for i = 1,a do
	addEvent(pee, delay, {cid = cid})
	delay = delay + 600
	end
	local function msg(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doSendAnimatedText(getThingPos(getCreatureSummons(params.cid)[1]), ""..times.." HITS", 35)
	end
	end
	addEvent(msg, 580*a, {cid = cid})
	return 0
end
return 0
end

 

move2.lua
-- WATER GUN
local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}

local pluck = createCombatArea{
{0, 0, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 3, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0}
}

local spark = 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 wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

-- SAND ATTACK
local sa1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local sa2n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}
local sa3n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 1, 0}, 
}
local sa4n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 1, 0}, 
}

local sa1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local sa2s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local sa3s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 2, 0}, 
}
local sa4s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 2, 0}, 
}

local sa1w = createCombatArea{ 
{2, 1, 0, 0, 0, 0}, 
}
local sa2w = createCombatArea{ 
{2, 0, 1, 0, 0, 0}, 
}
local sa3w = createCombatArea{ 
{2, 0, 0, 1, 0, 0}, 
}
local sa4w = createCombatArea{ 
{2, 0, 0, 0, 1, 0}, 
}

local sa1e = createCombatArea{ 
{0, 0, 0, 0, 1, 2}, 
}
local sa2e = createCombatArea{ 
{0, 0, 0, 1, 0, 2}, 
}
local sa3e = createCombatArea{ 
{0, 0, 1, 0, 0, 2}, 
}
local sa4e = createCombatArea{ 
{0, 1, 0, 0, 0, 2}, 
}
-- SAND ATTACK END
local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Zubat', 'Golbat',
'Bellsprout', 'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Oddish',
'Gloom', 'Vileplume', 'Horsea', 'Seadra', 'Grimer', 'Muk', 'Weedle', 'Kakuna', 'Beedrill',
'Doduo', 'Dodrio', 'Magnemite', 'Magneton', 'Voltorb', 'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew',
'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Peck",
		minLv = 1,
		ex = 1600002,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Peck",
		minLv = 1,
		ex = 1700002,
		base1 = 100,
		base2 = 140,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Peck",
		minLv = 1,
		ex = 1800002,
		base1 = 260,
		base2 = 300,
		dista = 1,
		bonus = 5,
		type = "flying",
		cd = 9
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Scratch",
		minLv = 1,
		ex = 1900002,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 9
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Scratch",
		minLv = 1,
		ex = 2000002,
		base1 = 140,
		base2 = 150,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 9
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Absorb",
		minLv = 7,
		ex = 4100002,
		base1 = 20,
		base2 = 25,
		dista = 1,
		bonus = 3,
		type = "grass",
		cd = 14
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Absorb",
		minLv = 30,
		ex = 4200002,
		base1 = 150,
		base2 = 180,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 14
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Razor Leaf",
		minLv = 7,
		ex = 6900002,
		base1 = 15,
		base2 = 22,
		dista = 4,
		bonus = 2,
		type = "grass",
		cd = 12  --12
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7000002,
		base1 = 55,
		base2 = 65,
		dista = 4,
		bonus = 2.8,
		type = "grass",
		cd = 12
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7100002,
		base1 = 100,
		base2 = 101,
		dista = 4,
		bonus = 3.8,
		type = "grass",
		cd = 12
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Bubbles",
		minLv = 6,
		ex = 6000002,
		base1 = 20,
		base2 = 30,
		dista = 4,
		bonus = 2,
		type = "water",
		cd = 10
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Bubbles",
		minLv = 20,
		ex = 6100002,
		base1 = 80,
		base2 = 90,
		dista = 4,
		bonus = 3,
		type = "water",
		cd = 10
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Waterball",
		minLv = 20,
		ex = 6200002,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 16
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Restore",
		minLv = 13,
		ex = 6300002,
		base1 = 70,
		base2 = 140,
		dista = 100,
		bonus = 5,
		target = "no",
		type = "normal",
		cd = 26
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Acid",
		minLv = 7,
		ex = 4300002,
		base1 = 54,
		base2 = 64,
		dista = 4,
		bonus = 2.7,
		type = "poison",
		cd = 14
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Acid",
		minLv = 7,
		ex = 4400002,
		base1 = 114,
		base2 = 134,
		dista = 4,
		bonus = 3.8,
		type = "poison",
		cd = 14
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Acid",
		minLv = 7,
		ex = 4500002,
		base1 = 214,
		base2 = 234,
		dista = 4,
		bonus = 5.4,
		type = "poison",
		cd = 14
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Water Pulse",
		minLv = 10,
		ex = 1160002,
		base1 = 50,
		base2 = 55,
		dista = 4,
		bonus = 3.5,
		type = "water",
		cd = 13
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Pulse",
		minLv = 6,
		ex = 1170002,
		base1 = 210,
		base2 = 215,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 13
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Acid",
		minLv = 6,
		ex = 8800002,
		base1 = 60,
		base2 = 70,
		dista = 5,
		bonus = 5,
		type = "poison",
		cd = 14
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Acid",
		minLv = 6,
		ex = 8900002,
		base1 = 110,
		base2 = 120,
		dista = 5,
		bonus = 5.5,
		type = "poison",
		cd = 14
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "String Shot",
		minLv = 1,
		ex = 1300002,
		base1 = 45,
		base2 = 50,
		dista = 3,
		bonus = 3,
		type = "bug",
		cd = 9
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "String Shot",
		minLv = 1,
		ex = 1400002,
		base1 = 85,
		base2 = 90,
		dista = 3,
		bonus = 4,
		type = "bug",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "String Shot",
		minLv = 1,
		ex = 1500002,
		base1 = 165,
		base2 = 170,
		dista = 3,
		bonus = 5,
		type = "bug",
		cd = 10
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Pluck",
		minLv = 1,
		ex = 8400002,
		base1 = 91,
		base2 = 98,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Pluck",
		minLv = 1,
		ex = 8500002,
		base1 = 191,
		base2 = 218,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thundershock",
		minLv = 1,
		ex = 8100002,
		base1 = 49,
		base2 = 62,
		dista = 5,
		bonus = 3.4,
		type = "electric",
		cd = 14
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thundershock",
		minLv = 1,
		ex = 8200002,
		base1 = 100,
		base2 = 118,
		dista = 5,
		bonus = 4.8,
		type = "electric",
		cd = 14
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 95,
		base2 = 112,
		target = "no",
		dista = 5,
		bonus = 4,
		type = "electric",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 2,
		type = "electric",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 105,
		base2 = 152,
		dista = 5,
		target = "no",
		bonus = 6,
		type = "electric",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 3,
		type = "electric",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7400002,
		base1 = 55,
		base2 = 62,
		dista = 10,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7500002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		type = "ground",
		cd = 16
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 215,
		base2 = 222,
		dista = 1,
		bonus = 5,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 45,
		base2 = 55,
		dista = 1,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 75,
		base2 = 85,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2800002,
		base1 = 155,
		base2 = 205,
		dista = 1,
		target = "no",
		bonus = 6.2,
		type = "ground",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800002,
		base1 = 100,
		target = "no",
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "ground",
		cd = 16
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
	pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
	if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
else
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end
local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then

	alvo = getCreatureName(getCreatureTarget(cid))
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Peck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Pluck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), pluck, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 2)
	return 0
elseif pokemon.x.spell == "Sand Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function sandattack(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), params.ef)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, ef = 120})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, ef = 120})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, ef = 120})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, ef = 122})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, ef = 122})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, ef = 122})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, ef = 121})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, ef = 119})
	end
elseif pokemon.x.spell == "Spark" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
			local function spark(params)
			if isCreature(params.cid) then
			if isCreature(getCreatureSummons(params.cid)[1]) then
			doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), params.cidpos, 40)
			doAreaCombatHealth(getCreatureSummons(cid)[1], element, params.cidpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
			end
			end
			end
	for a = -1, 1 do
		for b = -1, 1 do
		cidpos = getThingPos(getCreatureSummons(cid)[1])
		cidpos.x = cidpos.x+a
		cidpos.y = cidpos.y+b
		addEvent(spark, math.abs(a)*350 + math.abs(b)*650, {cid = cid, cidpos = cidpos})
		end
	end		
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	if element == COMBAT_EARTHDAMAGE then
	els = 2
	elseif element == COMBAT_FIREDAMAGE then
	els = 0.5
	else
	els = 1
	end
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))*els))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Razor Leaf" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 8)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 79)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(damage, 600, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	addEvent(throw, 550, {cid = cid})
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Restore" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Acid" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 20)
	return 0
elseif pokemon.x.spell == "Thundershock" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 40)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	return 0
elseif pokemon.x.spell == "Water Pulse" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 33)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "String Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local alvo = getCreatureTarget(cid)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 23)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 137)
	local function string(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	doSendMagicEffect(getThingPos(params.alvo), 137)
	end
	end
	end
	local function normalstr(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	setPlayerStorageValue(params.alvo, 3, -1)
	end
	end
	end
	addEvent(string, 250, {alvo = alvo})
	addEvent(string, 500, {alvo = alvo})
	addEvent(string, 750, {alvo = alvo})
	addEvent(string, 1000, {alvo = alvo})
	addEvent(string, 1250, {alvo = alvo})
	addEvent(string, 1500, {alvo = alvo})
	addEvent(string, 1750, {alvo = alvo})
	addEvent(string, 2000, {alvo = alvo})
	addEvent(string, 2250, {alvo = alvo})
	addEvent(string, 2500, {alvo = alvo})
	addEvent(string, 2750, {alvo = alvo})
	addEvent(string, 3000, {alvo = alvo})
	addEvent(normalstr, 3050, {alvo = alvo})
	return 0
end
return 0
end

move3.lua
-- WATER GUN
local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}

local pluck = createCombatArea{
{0, 0, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 3, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0}
}

local spark = 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 wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

-- SAND ATTACK
local sa1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local sa2n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}
local sa3n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 1, 0}, 
}
local sa4n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 1, 0}, 
}

local sa1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local sa2s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local sa3s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 2, 0}, 
}
local sa4s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 2, 0}, 
}

local sa1w = createCombatArea{ 
{2, 1, 0, 0, 0, 0}, 
}
local sa2w = createCombatArea{ 
{2, 0, 1, 0, 0, 0}, 
}
local sa3w = createCombatArea{ 
{2, 0, 0, 1, 0, 0}, 
}
local sa4w = createCombatArea{ 
{2, 0, 0, 0, 1, 0}, 
}

local sa1e = createCombatArea{ 
{0, 0, 0, 0, 1, 2}, 
}
local sa2e = createCombatArea{ 
{0, 0, 0, 1, 0, 2}, 
}
local sa3e = createCombatArea{ 
{0, 0, 1, 0, 0, 2}, 
}
local sa4e = createCombatArea{ 
{0, 1, 0, 0, 0, 2}, 
}
-- SAND ATTACK END
local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Zubat', 'Golbat',
'Bellsprout', 'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Oddish',
'Gloom', 'Vileplume', 'Horsea', 'Seadra', 'Grimer', 'Muk', 'Weedle', 'Kakuna', 'Beedrill',
'Doduo', 'Dodrio', 'Magnemite', 'Magneton', 'Voltorb', 'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew',
'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Peck",
		minLv = 1,
		ex = 1600002,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Peck",
		minLv = 1,
		ex = 1700002,
		base1 = 100,
		base2 = 140,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Peck",
		minLv = 1,
		ex = 1800002,
		base1 = 260,
		base2 = 300,
		dista = 1,
		bonus = 5,
		type = "flying",
		cd = 9
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Scratch",
		minLv = 1,
		ex = 1900002,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 9
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Scratch",
		minLv = 1,
		ex = 2000002,
		base1 = 140,
		base2 = 150,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 9
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Absorb",
		minLv = 7,
		ex = 4100002,
		base1 = 20,
		base2 = 25,
		dista = 1,
		bonus = 3,
		type = "grass",
		cd = 14
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Absorb",
		minLv = 30,
		ex = 4200002,
		base1 = 150,
		base2 = 180,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 14
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Razor Leaf",
		minLv = 7,
		ex = 6900002,
		base1 = 15,
		base2 = 22,
		dista = 4,
		bonus = 2,
		type = "grass",
		cd = 12  --12
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7000002,
		base1 = 55,
		base2 = 65,
		dista = 4,
		bonus = 2.8,
		type = "grass",
		cd = 12
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7100002,
		base1 = 100,
		base2 = 101,
		dista = 4,
		bonus = 3.8,
		type = "grass",
		cd = 12
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Bubbles",
		minLv = 6,
		ex = 6000002,
		base1 = 20,
		base2 = 30,
		dista = 4,
		bonus = 2,
		type = "water",
		cd = 10
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Bubbles",
		minLv = 20,
		ex = 6100002,
		base1 = 80,
		base2 = 90,
		dista = 4,
		bonus = 3,
		type = "water",
		cd = 10
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Waterball",
		minLv = 20,
		ex = 6200002,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 16
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Restore",
		minLv = 13,
		ex = 6300002,
		base1 = 70,
		base2 = 140,
		dista = 100,
		bonus = 5,
		target = "no",
		type = "normal",
		cd = 26
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Acid",
		minLv = 7,
		ex = 4300002,
		base1 = 54,
		base2 = 64,
		dista = 4,
		bonus = 2.7,
		type = "poison",
		cd = 14
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Acid",
		minLv = 7,
		ex = 4400002,
		base1 = 114,
		base2 = 134,
		dista = 4,
		bonus = 3.8,
		type = "poison",
		cd = 14
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Acid",
		minLv = 7,
		ex = 4500002,
		base1 = 214,
		base2 = 234,
		dista = 4,
		bonus = 5.4,
		type = "poison",
		cd = 14
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Water Pulse",
		minLv = 10,
		ex = 1160002,
		base1 = 50,
		base2 = 55,
		dista = 4,
		bonus = 3.5,
		type = "water",
		cd = 13
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Pulse",
		minLv = 6,
		ex = 1170002,
		base1 = 210,
		base2 = 215,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 13
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Acid",
		minLv = 6,
		ex = 8800002,
		base1 = 60,
		base2 = 70,
		dista = 5,
		bonus = 5,
		type = "poison",
		cd = 14
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Acid",
		minLv = 6,
		ex = 8900002,
		base1 = 110,
		base2 = 120,
		dista = 5,
		bonus = 5.5,
		type = "poison",
		cd = 14
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "String Shot",
		minLv = 1,
		ex = 1300002,
		base1 = 45,
		base2 = 50,
		dista = 3,
		bonus = 3,
		type = "bug",
		cd = 9
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "String Shot",
		minLv = 1,
		ex = 1400002,
		base1 = 85,
		base2 = 90,
		dista = 3,
		bonus = 4,
		type = "bug",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "String Shot",
		minLv = 1,
		ex = 1500002,
		base1 = 165,
		base2 = 170,
		dista = 3,
		bonus = 5,
		type = "bug",
		cd = 10
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Pluck",
		minLv = 1,
		ex = 8400002,
		base1 = 91,
		base2 = 98,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Pluck",
		minLv = 1,
		ex = 8500002,
		base1 = 191,
		base2 = 218,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thundershock",
		minLv = 1,
		ex = 8100002,
		base1 = 49,
		base2 = 62,
		dista = 5,
		bonus = 3.4,
		type = "electric",
		cd = 14
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thundershock",
		minLv = 1,
		ex = 8200002,
		base1 = 100,
		base2 = 118,
		dista = 5,
		bonus = 4.8,
		type = "electric",
		cd = 14
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 95,
		base2 = 112,
		target = "no",
		dista = 5,
		bonus = 4,
		type = "electric",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 2,
		type = "electric",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 105,
		base2 = 152,
		dista = 5,
		target = "no",
		bonus = 6,
		type = "electric",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 3,
		type = "electric",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7400002,
		base1 = 55,
		base2 = 62,
		dista = 10,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7500002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		type = "ground",
		cd = 16
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 215,
		base2 = 222,
		dista = 1,
		bonus = 5,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 45,
		base2 = 55,
		dista = 1,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 75,
		base2 = 85,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2800002,
		base1 = 155,
		base2 = 205,
		dista = 1,
		target = "no",
		bonus = 6.2,
		type = "ground",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800002,
		base1 = 100,
		target = "no",
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "ground",
		cd = 16
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
	pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
	if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
else
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end
local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then

	alvo = getCreatureName(getCreatureTarget(cid))
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Peck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Pluck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), pluck, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 2)
	return 0
elseif pokemon.x.spell == "Sand Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function sandattack(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), params.ef)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, ef = 120})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, ef = 120})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, ef = 120})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, ef = 122})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, ef = 122})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, ef = 122})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, ef = 121})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, ef = 119})
	end
elseif pokemon.x.spell == "Spark" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
			local function spark(params)
			if isCreature(params.cid) then
			if isCreature(getCreatureSummons(params.cid)[1]) then
			doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), params.cidpos, 40)
			doAreaCombatHealth(getCreatureSummons(cid)[1], element, params.cidpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
			end
			end
			end
	for a = -1, 1 do
		for b = -1, 1 do
		cidpos = getThingPos(getCreatureSummons(cid)[1])
		cidpos.x = cidpos.x+a
		cidpos.y = cidpos.y+b
		addEvent(spark, math.abs(a)*350 + math.abs(b)*650, {cid = cid, cidpos = cidpos})
		end
	end		
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	if element == COMBAT_EARTHDAMAGE then
	els = 2
	elseif element == COMBAT_FIREDAMAGE then
	els = 0.5
	else
	els = 1
	end
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))*els))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Razor Leaf" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 8)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 79)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(damage, 600, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	addEvent(throw, 550, {cid = cid})
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Restore" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Acid" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 20)
	return 0
elseif pokemon.x.spell == "Thundershock" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 40)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	return 0
elseif pokemon.x.spell == "Water Pulse" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 33)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "String Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local alvo = getCreatureTarget(cid)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 23)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 137)
	local function string(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	doSendMagicEffect(getThingPos(params.alvo), 137)
	end
	end
	end
	local function normalstr(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	setPlayerStorageValue(params.alvo, 3, -1)
	end
	end
	end
	addEvent(string, 250, {alvo = alvo})
	addEvent(string, 500, {alvo = alvo})
	addEvent(string, 750, {alvo = alvo})
	addEvent(string, 1000, {alvo = alvo})
	addEvent(string, 1250, {alvo = alvo})
	addEvent(string, 1500, {alvo = alvo})
	addEvent(string, 1750, {alvo = alvo})
	addEvent(string, 2000, {alvo = alvo})
	addEvent(string, 2250, {alvo = alvo})
	addEvent(string, 2500, {alvo = alvo})
	addEvent(string, 2750, {alvo = alvo})
	addEvent(string, 3000, {alvo = alvo})
	addEvent(normalstr, 3050, {alvo = alvo})
	return 0
end
return 0
end

move4.lua
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local imp = {'919', '4468', '4469', '4470', '4471', '4472', '4473', '4474', '4475', '4476',
'4477', '4478', '4479', '4480', '4481', '4482', '4483', '4484', '4485', '4486', '4487', '4488',
'4489', '4490', '4491', '4492', '4493', '4494', '4495', '4496', '4497', '4498', '4499', '4500',
'4501', '4502', '4503', '4504', '4505', '4506', '4507', '4508', '4509', '4510', '4511', '4512',
'4513', '4826', '4827', '873', '874', '875', '876', '877', '878', '903', '904', '905', '906',
'907', '908', '909', '910', '911', '912', '913'}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}


local rollout = createCombatArea{
{1, 1, 1}, 
{1, 2, 1}, 
{1, 1, 1}, 
}

local golem = {lookType = 288}
local sandslash = {lookType = 285}
local sandshrew = {lookType = 284}
local electrode = {lookType = 286}
local voltorb = {lookType = 287}
-- WATER GUN
local bomb = createCombatArea{
{0, 1, 0}, 
{1, 3, 1}, 
{0, 1, 0}, 
}

local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

local vinen = createCombatArea{
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{1, 0, 0}
}
local vines = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 0},
{0, 2, 0}
}
local vinee = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 2},
{0, 0, 0}
}
local vinew = createCombatArea{
{0, 0, 0},
{0, 0, 3},
{0, 2, 0},
{0, 0, 0}
}
local whipn = createCombatArea{
{0, 0, 0},
{0, 2, 0},
{1, 1, 1},
{1, 1, 1}
}
local whips = createCombatArea{
{1, 1, 1},
{1, 1, 1},
{0, 2, 0},
{0, 0, 0}
}
local whipe = createCombatArea{
{1, 1, 0},
{1, 1, 2},
{1, 1, 0},
{0, 0, 0}
}
local whipw = createCombatArea{
{0, 1, 1},
{2, 1, 1},
{0, 1, 1},
{0, 0, 0}
}

local sand1 = createCombatArea{
{0, 0, 0}, 
{0, 3, 0}, 
{0, 0, 0}, 
}

local whirl3 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl5 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local whirl32 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl52 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Golbat', 'Bellsprout',
'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Gloom', 'Vileplume',
'Horsea', 'Seadra', 'Grimer', 'Muk', 'Kakuna', 'Beedrill', 'Zubat', 'Magnemite', 'Magneton', 'Voltorb',
'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew', 'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Gust",
		minLv = 12,
		ex = 1600004,
		base1 = 40,
		base2 = 50,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 15
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Whirlwind",
		minLv = 22,
		ex = 1700004,
		base1 = 100,
		base2 = 101,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 17
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Whirlwind",
		minLv = 65,
		ex = 1800004,
		base1 = 200,
		base2 = 210,
		dista = 4,
		target = "no",
		bonus = 5.5,
		type = "flying",
		cd = 17
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Hyper Fang",
		minLv = 11,
		ex = 1900004,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 19
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Hyper Fang",
		minLv = 23,
		ex = 2000004,
		base1 = 150,
		base2 = 160,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 19
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Whirlwind",
		minLv = 32,
		ex = 4200004,
		base1 = 200,
		base2 = 220,
		dista = 4,
		target = "no",
		bonus = 50,
		type = "flying",
		cd = 20
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Vine Whip",
		minLv = 12,
		ex = 6900004,
		base1 = 50,
		base2 = 60,
		dista = 2,
		target = "no",
		bonus = 3.5,
		type = "grass",
		cd = 19
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Vine Whip",
		minLv = 20,
		ex = 7000004,
		base1 = 120,
		base2 = 150,
		target = "no",
		dista = 2,
		bonus = 4.5,
		type = "grass",
		cd = 19
	     }
	 },
[240] = {x = {
		pok = bictreebel,
		spell = "Vine Whip",
		minLv = 50,
		ex = 7100004,
		base1 = 230,
		base2 = 280,
		dista = 2,
		target = "no",
		bonus = 6.5,
		type = "grass",
		cd = 19
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Water Gun",
		minLv = 13,
		ex = 6000004,
		base1 = 45,
		base2 = 50,
		target = "no",
		dista = 2,
		bonus = 4,
		type = "water",
		cd = 19
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Water Gun",
		minLv = 25,
		ex = 6100004,
		base1 = 185,
		target = "no",
		base2 = 200,
		dista = 2,
		bonus = 5,
		type = "water",
		cd = 19
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Water Gun",
		minLv = 25,
		ex = 6200004,
		base1 = 685,
		base2 = 700,
		dista = 2,
		bonus = 6,
		target = "no",
		type = "water",
		cd = 19
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Psycho Shift",
		minLv = 24,
		ex = 6300004,
		base1 = 115,
		base2 = 120,
		dista = 10,
		bonus = 5,
		type = "psychic",
		cd = 24
	     }
	 },
[74] = {x = {
		pk = gloom,
		spell = "Poison Bomb",
		minLv = 22,
		ex = 4400004,
		base1 = 101,
		base2 = 103,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 25
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Poison Bomb",
		minLv = 50,
		ex = 4500004,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 25
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Waterball",
		minLv = 16,
		ex = 1160004,
		base1 = 50,
		base2 = 60,
		dista = 4,
		bonus = 4.7,
		type = "water",
		cd = 17
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Waterball",
		minLv = 46,
		ex = 1170004,
		base1 = 190,
		base2 = 200,
		dista = 4,
		bonus = 5.7,
		type = "water",
		cd = 17
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Poison Bomb",
		minLv = 16,
		ex = 8800004,
		base1 = 85,
		base2 = 92,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Poison Bomb",
		minLv = 32,
		ex = 8900004,
		base1 = 285,
		base2 = 292,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "Harden",
		minLv = 10,
		ex = 1400004,
		lpl = 32,
		life = 900,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Toxic Needle",
		minLv = 32,
		ex = 1500004,
		base1 = 100,
		base2 = 110,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 16
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Super Sonic",
		minLv = 11,
		ex = 4100004,
		base1 = 0,
		base2 = 0,
		dista = 4,
		bonus = 0,
		type = "normal",
		cd = 16
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thunderbolt",
		minLv = 17,
		ex = 8100004,
		base1 = 65,
		base2 = 85,
		dista = 5,
		bonus = 5.4,
		type = "electric",
		cd = 18
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thunderbolt",
		minLv = 1,
		ex = 8200004,
		base1 = 160,
		base2 = 180,
		dista = 5,
		bonus = 7,
		type = "electric",
		cd = 18
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 30,
		base2 = 31,
		dista = 2,
		target = "no",
		bonus = 0.4,
		type = "ground",
		cd = 33
	     }
	 },
[287] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 20,
		base2 = 21,
		dista = 2,
		target = "no",
		bonus = 0.5,
		type = "ground",
		cd = 33
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[196] = {x = {
		pok = Geodude,
		spell = "Harden",
		minLv = 17,
		ex = 7400004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[247] = {x = {
		pok = Graveler,
		spell = "Harden",
		minLv = 17,
		ex = 7500004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[116] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[288] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Gust" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}})
	end
	return 0
elseif pokemon.x.spell == "Whirlwind" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, params.br, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}, br = whirl52})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}, br = whirl52})
	end
return 0
elseif pokemon.x.spell == "Hyper Fang" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 159)
	return 0
elseif pokemon.x.spell == "Rollout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureName(getCreatureSummons(cid)[1]) == "Voltorb" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], voltorb, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 85)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Electrode" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], electrode, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 101)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandshrew" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandshrew, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 93)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandslash" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandslash, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 143)
	end
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
		local function roll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getCreatureCondition(getCreatureSummons(params.cid)[1], CONDITION_OUTFIT) == true then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), rollout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
		end
		end
		end
		end
	for r = 1, 8 do
	addEvent(roll, 1000*r, {cid = cid})
	end

		local function stoproll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		doChangeSpeed(getCreatureSummons(params.cid)[1], -101)
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, 0)
		end
		end
		end
		end
	addEvent(stoproll, 8300, {cid = cid})
	return 0
elseif pokemon.x.spell == "Vine Whip" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	area = vinen
	dano = whipn
	effect = 80
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	area = vinee
	dano = whipe
	effect = 83
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	area = vines
	dano = whips
	effect = 81
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	area = vinew
	dano = whipw
	effect = 82
	end
	doAreaCombatHealth(getCreatureSummons(cid)[1], null, getThingPos(getCreatureSummons(cid)[1]), area, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), effect)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), dano, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
	return 0
elseif pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Psycho Shift" then
	targetpos = getThingPos(getCreatureTarget(cid))
	targetposss = getThingPos(getCreatureTarget(cid))
	if math.random(1,100) >= 51 then
	targetpos.x = targetpos.x+2
	else
	targetpos.x = targetpos.x-2
	end
	if math.random(1,100) >= 51 then
	targetpos.y = targetpos.y-2
	else
	targetpos.y = targetpos.y+2
	end
	local tile = getTileThingByPos(targetpos).itemid
	if getThingPos(cid).z > 7 then
		if isWalkable(targetpos, cid, 0, 0) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	if not isInArray(imp, tile) then
		if not isInArray(imp, getTileThingByPos(targetpos).itemid) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
	doSendMagicEffect(targetposss, 12)
	end
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Poison Bomb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	addEvent(doAreaCombatHealth, 100, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), bomb, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 114)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Harden" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local hardname = getCreatureName(getCreatureSummons(cid)[1])
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
	local oldpos = getThingPos(getCreatureSummons(cid)[1])
		local function efect(params)
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		doSendMagicEffect(getThingPos(getCreatureSummons(params.cid)[1]), 144)
		end
		end
		end
	local function chard(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
	setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, -1)
	end
	end
	end

	addEvent(efect, 100, {cid = cid, hardname = hardname})
	addEvent(efect, 1600, {cid = cid, hardname = hardname})
	addEvent(efect, 3100, {cid = cid, hardname = hardname})
	addEvent(efect, 4600, {cid = cid, hardname = hardname})
	addEvent(efect, 6100, {cid = cid, hardname = hardname})
	addEvent(efect, 7600, {cid = cid, hardname = hardname})
	addEvent(efect, 9100, {cid = cid, hardname = hardname})
	addEvent(efect, 10600, {cid = cid, hardname = hardname})
	addEvent(chard, 11000, {cid = cid})		
return 0
elseif pokemon.x.spell == "Toxic Needle" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 8)
return 0
elseif pokemon.x.spell == "Thunderbolt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local posalvo = getThingPos(getCreatureTarget(cid))
	local boltalvo = getCreatureTarget(cid)
	posalvo.x = posalvo.x-2
	posalvo.y = posalvo.y-6
	doSendDistanceShoot(posalvo, getThingPos(getCreatureTarget(cid)), 41)
	local function bolt(params)
	if isCreature(params.cid) then
	if isCreature(getCreatureTarget(cid)) then
	if getCreatureTarget(params.cid) == params.boltalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	end
	end
	end
	end
	addEvent(bolt, 200, {cid = cid, boltalvo = boltalvo})
return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
end
return 0
end

 

move5.lua
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local imp = {'919', '4468', '4469', '4470', '4471', '4472', '4473', '4474', '4475', '4476',
'4477', '4478', '4479', '4480', '4481', '4482', '4483', '4484', '4485', '4486', '4487', '4488',
'4489', '4490', '4491', '4492', '4493', '4494', '4495', '4496', '4497', '4498', '4499', '4500',
'4501', '4502', '4503', '4504', '4505', '4506', '4507', '4508', '4509', '4510', '4511', '4512',
'4513', '4826', '4827', '873', '874', '875', '876', '877', '878', '903', '904', '905', '906',
'907', '908', '909', '910', '911', '912', '913'}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}


local rollout = createCombatArea{
{1, 1, 1}, 
{1, 2, 1}, 
{1, 1, 1}, 
}

local golem = {lookType = 288}
local sandslash = {lookType = 285}
local sandshrew = {lookType = 284}
local electrode = {lookType = 286}
local voltorb = {lookType = 287}
-- WATER GUN
local bomb = createCombatArea{
{0, 1, 0}, 
{1, 3, 1}, 
{0, 1, 0}, 
}

local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

local vinen = createCombatArea{
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{1, 0, 0}
}
local vines = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 0},
{0, 2, 0}
}
local vinee = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 2},
{0, 0, 0}
}
local vinew = createCombatArea{
{0, 0, 0},
{0, 0, 3},
{0, 2, 0},
{0, 0, 0}
}
local whipn = createCombatArea{
{0, 0, 0},
{0, 2, 0},
{1, 1, 1},
{1, 1, 1}
}
local whips = createCombatArea{
{1, 1, 1},
{1, 1, 1},
{0, 2, 0},
{0, 0, 0}
}
local whipe = createCombatArea{
{1, 1, 0},
{1, 1, 2},
{1, 1, 0},
{0, 0, 0}
}
local whipw = createCombatArea{
{0, 1, 1},
{2, 1, 1},
{0, 1, 1},
{0, 0, 0}
}

local sand1 = createCombatArea{
{0, 0, 0}, 
{0, 3, 0}, 
{0, 0, 0}, 
}

local whirl3 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl5 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local whirl32 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl52 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Golbat', 'Bellsprout',
'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Gloom', 'Vileplume',
'Horsea', 'Seadra', 'Grimer', 'Muk', 'Kakuna', 'Beedrill', 'Zubat', 'Magnemite', 'Magneton', 'Voltorb',
'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew', 'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Gust",
		minLv = 12,
		ex = 1600004,
		base1 = 40,
		base2 = 50,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 15
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Whirlwind",
		minLv = 22,
		ex = 1700004,
		base1 = 100,
		base2 = 101,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 17
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Whirlwind",
		minLv = 65,
		ex = 1800004,
		base1 = 200,
		base2 = 210,
		dista = 4,
		target = "no",
		bonus = 5.5,
		type = "flying",
		cd = 17
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Hyper Fang",
		minLv = 11,
		ex = 1900004,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 19
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Hyper Fang",
		minLv = 23,
		ex = 2000004,
		base1 = 150,
		base2 = 160,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 19
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Whirlwind",
		minLv = 32,
		ex = 4200004,
		base1 = 200,
		base2 = 220,
		dista = 4,
		target = "no",
		bonus = 50,
		type = "flying",
		cd = 20
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Vine Whip",
		minLv = 12,
		ex = 6900004,
		base1 = 50,
		base2 = 60,
		dista = 2,
		target = "no",
		bonus = 3.5,
		type = "grass",
		cd = 19
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Vine Whip",
		minLv = 20,
		ex = 7000004,
		base1 = 120,
		base2 = 150,
		target = "no",
		dista = 2,
		bonus = 4.5,
		type = "grass",
		cd = 19
	     }
	 },
[240] = {x = {
		pok = bictreebel,
		spell = "Vine Whip",
		minLv = 50,
		ex = 7100004,
		base1 = 230,
		base2 = 280,
		dista = 2,
		target = "no",
		bonus = 6.5,
		type = "grass",
		cd = 19
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Water Gun",
		minLv = 13,
		ex = 6000004,
		base1 = 45,
		base2 = 50,
		target = "no",
		dista = 2,
		bonus = 4,
		type = "water",
		cd = 19
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Water Gun",
		minLv = 25,
		ex = 6100004,
		base1 = 185,
		target = "no",
		base2 = 200,
		dista = 2,
		bonus = 5,
		type = "water",
		cd = 19
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Water Gun",
		minLv = 25,
		ex = 6200004,
		base1 = 685,
		base2 = 700,
		dista = 2,
		bonus = 6,
		target = "no",
		type = "water",
		cd = 19
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Psycho Shift",
		minLv = 24,
		ex = 6300004,
		base1 = 115,
		base2 = 120,
		dista = 10,
		bonus = 5,
		type = "psychic",
		cd = 24
	     }
	 },
[74] = {x = {
		pk = gloom,
		spell = "Poison Bomb",
		minLv = 22,
		ex = 4400004,
		base1 = 101,
		base2 = 103,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 25
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Poison Bomb",
		minLv = 50,
		ex = 4500004,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 25
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Waterball",
		minLv = 16,
		ex = 1160004,
		base1 = 50,
		base2 = 60,
		dista = 4,
		bonus = 4.7,
		type = "water",
		cd = 17
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Waterball",
		minLv = 46,
		ex = 1170004,
		base1 = 190,
		base2 = 200,
		dista = 4,
		bonus = 5.7,
		type = "water",
		cd = 17
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Poison Bomb",
		minLv = 16,
		ex = 8800004,
		base1 = 85,
		base2 = 92,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Poison Bomb",
		minLv = 32,
		ex = 8900004,
		base1 = 285,
		base2 = 292,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "Harden",
		minLv = 10,
		ex = 1400004,
		lpl = 32,
		life = 900,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Toxic Needle",
		minLv = 32,
		ex = 1500004,
		base1 = 100,
		base2 = 110,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 16
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Super Sonic",
		minLv = 11,
		ex = 4100004,
		base1 = 0,
		base2 = 0,
		dista = 4,
		bonus = 0,
		type = "normal",
		cd = 16
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thunderbolt",
		minLv = 17,
		ex = 8100004,
		base1 = 65,
		base2 = 85,
		dista = 5,
		bonus = 5.4,
		type = "electric",
		cd = 18
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thunderbolt",
		minLv = 1,
		ex = 8200004,
		base1 = 160,
		base2 = 180,
		dista = 5,
		bonus = 7,
		type = "electric",
		cd = 18
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 30,
		base2 = 31,
		dista = 2,
		target = "no",
		bonus = 0.4,
		type = "ground",
		cd = 33
	     }
	 },
[287] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 20,
		base2 = 21,
		dista = 2,
		target = "no",
		bonus = 0.5,
		type = "ground",
		cd = 33
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[196] = {x = {
		pok = Geodude,
		spell = "Harden",
		minLv = 17,
		ex = 7400004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[247] = {x = {
		pok = Graveler,
		spell = "Harden",
		minLv = 17,
		ex = 7500004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[116] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[288] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Gust" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}})
	end
	return 0
elseif pokemon.x.spell == "Whirlwind" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, params.br, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}, br = whirl52})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}, br = whirl52})
	end
return 0
elseif pokemon.x.spell == "Hyper Fang" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 159)
	return 0
elseif pokemon.x.spell == "Rollout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureName(getCreatureSummons(cid)[1]) == "Voltorb" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], voltorb, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 85)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Electrode" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], electrode, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 101)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandshrew" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandshrew, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 93)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandslash" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandslash, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 143)
	end
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
		local function roll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getCreatureCondition(getCreatureSummons(params.cid)[1], CONDITION_OUTFIT) == true then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), rollout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
		end
		end
		end
		end
	for r = 1, 8 do
	addEvent(roll, 1000*r, {cid = cid})
	end

		local function stoproll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		doChangeSpeed(getCreatureSummons(params.cid)[1], -101)
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, 0)
		end
		end
		end
		end
	addEvent(stoproll, 8300, {cid = cid})
	return 0
elseif pokemon.x.spell == "Vine Whip" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	area = vinen
	dano = whipn
	effect = 80
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	area = vinee
	dano = whipe
	effect = 83
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	area = vines
	dano = whips
	effect = 81
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	area = vinew
	dano = whipw
	effect = 82
	end
	doAreaCombatHealth(getCreatureSummons(cid)[1], null, getThingPos(getCreatureSummons(cid)[1]), area, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), effect)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), dano, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
	return 0
elseif pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Psycho Shift" then
	targetpos = getThingPos(getCreatureTarget(cid))
	targetposss = getThingPos(getCreatureTarget(cid))
	if math.random(1,100) >= 51 then
	targetpos.x = targetpos.x+2
	else
	targetpos.x = targetpos.x-2
	end
	if math.random(1,100) >= 51 then
	targetpos.y = targetpos.y-2
	else
	targetpos.y = targetpos.y+2
	end
	local tile = getTileThingByPos(targetpos).itemid
	if getThingPos(cid).z > 7 then
		if isWalkable(targetpos, cid, 0, 0) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	if not isInArray(imp, tile) then
		if not isInArray(imp, getTileThingByPos(targetpos).itemid) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
	doSendMagicEffect(targetposss, 12)
	end
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Poison Bomb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	addEvent(doAreaCombatHealth, 100, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), bomb, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 114)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Harden" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local hardname = getCreatureName(getCreatureSummons(cid)[1])
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
	local oldpos = getThingPos(getCreatureSummons(cid)[1])
		local function efect(params)
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		doSendMagicEffect(getThingPos(getCreatureSummons(params.cid)[1]), 144)
		end
		end
		end
	local function chard(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
	setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, -1)
	end
	end
	end

	addEvent(efect, 100, {cid = cid, hardname = hardname})
	addEvent(efect, 1600, {cid = cid, hardname = hardname})
	addEvent(efect, 3100, {cid = cid, hardname = hardname})
	addEvent(efect, 4600, {cid = cid, hardname = hardname})
	addEvent(efect, 6100, {cid = cid, hardname = hardname})
	addEvent(efect, 7600, {cid = cid, hardname = hardname})
	addEvent(efect, 9100, {cid = cid, hardname = hardname})
	addEvent(efect, 10600, {cid = cid, hardname = hardname})
	addEvent(chard, 11000, {cid = cid})		
return 0
elseif pokemon.x.spell == "Toxic Needle" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 8)
return 0
elseif pokemon.x.spell == "Thunderbolt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local posalvo = getThingPos(getCreatureTarget(cid))
	local boltalvo = getCreatureTarget(cid)
	posalvo.x = posalvo.x-2
	posalvo.y = posalvo.y-6
	doSendDistanceShoot(posalvo, getThingPos(getCreatureTarget(cid)), 41)
	local function bolt(params)
	if isCreature(params.cid) then
	if isCreature(getCreatureTarget(cid)) then
	if getCreatureTarget(params.cid) == params.boltalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	end
	end
	end
	end
	addEvent(bolt, 200, {cid = cid, boltalvo = boltalvo})
return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
end
return 0
end

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

AIAIAIAI

 

 

Script com spells de alguns pokes... vo colocar ateh o 5 pq o resto n coube!

Talkactions.xml: 
<talkaction words="m1" case-sensitive="no" event="script" value="move1.lua"/>
<talkaction words="m2" case-sensitive="no" event="script" value="move2.lua"/>
<talkaction words="m3" case-sensitive="no" event="script" value="move3.lua"/>
<talkaction words="m4" case-sensitive="no" event="script" value="move4.lua"/>
<talkaction words="m5" case-sensitive="no" event="script" value="move5.lua"/>

 

Talkactions/scripts

 

move1.lua
local dynpun1 = createCombatArea{
{1, 0, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}

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


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


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


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

local confusion = 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 waterspout = createCombatArea{
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1}
}


local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1600001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 7
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1700001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 2.5,
		type = "normal",
		cd = 7
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1800001,
		base1 = 200,
		base2 = 201,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 7
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Quick Attack",
		minLv = 1,
		ex = 1900001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 7
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Quick Attack",
		minLv = 1,
		ex = 2000001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 7
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Bite",
		minLv = 1,
		ex = 4100001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 1.7,
		type = "normal",
		cd = 11
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Bite",
		minLv = 1,
		ex = 4200001,
		base1 = 100,
		base2 = 101,
		dista = 1,
		bonus = 5.4,
		type = "normal",
		cd = 11
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Slash",
		minLv = 1,
		ex = 6900001,
		base1 = 20,
		base2 = 21,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 11
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Slash",
		minLv = 1,
		ex = 7000001,
		base1 = 100,
		base2 = 101, -- 150
		dista = 1, -- 3
		bonus = 2.7, -- 3
		type = "grass",
		cd = 11 -- 11
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Slash",
		minLv = 1,
		ex = 7100001,
		base1 = 200,
		base2 = 220,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 11
	     }
	 },
[19] = {x = {
		pok = magikarp,
		spell = "Splash",
		minLv = 1,
		ex = 1290001,
		base1 = 280,
		base2 = 300,
		dista = 1,
		bonus = 4,
		type = "normal",
		target = "no",
		cd = 6
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Doubleslap",
		minLv = 1,
		ex = 6000001,
		base1 = 10,
		base2 = 11,
		dista = 1,
		bonus = 1.2,
		type = "normal",
		cd = 7
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Doubleslap",
		minLv = 1,
		ex = 6100001,
		base1 = 48,
		base2 = 53,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 7
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Mega Punch",
		minLv = 1,
		ex = 6200001,
		base1 = 190,
		base2 = 205,
		dista = 1,
		bonus = 5.4,
		type = "fighting",
		cd = 12
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Confusion",
		minLv = 1,
		ex = 6300001,
		base1 = 35,
		base2 = 45,
		dista = 5,
		bonus = 5,
		type = "psychic",
		target = "no",
		cd = 12
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Absorb",
		minLv = 1,
		ex = 4300001,
		base1 = 25,
		base2 = 30,
		dista = 1,
		bonus = 2,
		type = "grass",
		cd = 10
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Absorb",
		minLv = 1,
		ex = 4400001,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3.5,
		type = "grass",
		cd = 10
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Absorb",
		minLv = 1,
		ex = 4500001,
		base1 = 55,
		base2 = 65,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 10
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Bubbles",
		minLv = 1,
		ex = 1160001,
		base1 = 20,
		base2 = 21,
		dista = 4,
		bonus = 2.4,
		type = "water",
		cd = 10
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Spout",
		minLv = 1,
		ex = 1170001,
		base1 = 100,
		base2 = 105,
		dista = 5,
		bonus = 3.4,
		target = "no",
		type = "water",
		cd = 14
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Mud Shot",
		minLv = 1,
		ex = 8800001,
		base1 = 35,
		base2 = 40,
		dista = 5,
		bonus = 2.9,
		type = "ground",
		cd = 10
	     }
	 },
[47] = {x = {
		pok = Muk,
		spell = "Mud Shot",
		minLv = 1,
		ex = 8900001,
		base1 = 101,
		base2 = 105,
		dista = 5,
		bonus = 5,
		type = "ground",
		cd = 10
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "Horn Attack",
		minLv = 1,
		ex = 1300001,
		base1 = 30,
		base2 = 35,
		dista = 1,
		bonus = 2.4,
		type = "normal",
		cd = 9
	     }
	 },
[60] = {x = {
		nome = Kakuna,
		spell = "Headbutt",
		minLv = 1,
		ex = 1400001,
		base1 = 80,
		base2 = 85,
		dista = 1,
		bonus = 3.4,
		type = "normal",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Fury Attack",
		minLv = 1,
		ex = 1500001,
		base1 = 60,
		base2 = 65,
		dista = 3,
		bonus = 2,
		type = "normal",
		cd = 11
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Quick Attack",
		minLv = 1,
		ex = 8400001,
		base1 = 82,
		base2 = 97,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 8
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Rapid Hit",
		minLv = 1,
		ex = 8500001,
		base1 = 222,
		base2 = 237,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 6
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Super Sonic",
		minLv = 1,
		ex = 8100001,
		base1 = 0,
		base2 = 0,
		dista = 5,
		bonus = 0,
		type = "normal",
		cd = 15
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Super Sonic",
		minLv = 1,
		ex = 8200001,
		base1 = 0,
		base2 = 0,
		dista = 5,
		bonus = 0,
		type = "normal",
		cd = 15
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Slam",
		minLv = 1,
		ex = 1000001,
		base1 = 85,
		base2 = 95,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Slam",
		minLv = 1,
		ex = 1000001,
		base1 = 185,
		base2 = 195,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Slam",
		minLv = 1,
		ex = 1010001,
		base1 = 185,
		base2 = 195,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Slam",
		minLv = 1,
		ex = 1010001,
		base1 = 355,
		base2 = 365,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7400001,
		base1 = 35,
		base2 = 40,
		dista = 5,
		bonus = 2.6,
		type = "rock",
		cd = 14
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7500001,
		base1 = 105,
		base2 = 106,
		dista = 5,
		bonus = 3.9,
		type = "rock",
		cd = 14
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7600001,
		base1 = 205,
		base2 = 210,
		dista = 5,
		bonus = 5,
		type = "rock",
		cd = 14
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Rock Throw",
		minLv = 1,
		ex = 7600001,
		base1 = 105,
		base2 = 106,
		dista = 5,
		bonus = 2.5,
		type = "rock",
		cd = 14
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Scratch",
		minLv = 1,
		ex = 2700001,
		base1 = 15,
		base2 = 25,
		dista = 1,
		bonus = 2.2,
		type = "normal",
		cd = 12
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Scratch",
		minLv = 1,
		ex = 2700001,
		base1 = 5,
		base2 = 7,
		dista = 1,
		bonus = 1,
		type = "normal",
		cd = 12
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800001,
		base1 = 105,
		base2 = 106,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800001,
		base1 = 75,
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 16
	     }
	 },
}

function onSay(cid)

if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu poke?")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda n tem level.")
return 0
end
	if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then

	if not isMonster(getCreatureTarget(cid)) then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Selecione.")
	return 0
	end
	if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Ta longe.")
	return 0
	end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Dynamic Punch" then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun1, 0, 0, 17)
	addEvent(doAreaCombatHealth, 105, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun1, 0, 0, 17)
	addEvent(doAreaCombatHealth, 250, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun2, 0, 0, 17)
	addEvent(doAreaCombatHealth, 400, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun3, 0, 0, 17)
	addEvent(doAreaCombatHealth, 555, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun4, 0, 0, 17)
	addEvent(doAreaCombatHealth, 700, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), dynpun5, 0, 0, 17)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Quick Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Slam" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Rapid Hit" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	local hitalvo = getCreatureTarget(cid)
	local function hit(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if isCreature(getCreatureTarget(params.cid)) then
	if getCreatureTarget(params.cid) == params.hitalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], NORMALDAMAGE, getThingPos(getCreatureTarget(params.cid)), 0, -0, -0, 3)
	end
	end
	end
	end
	addEvent(hit, 80, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 280, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 480, {cid = cid, hitalvo = hitalvo})
	addEvent(hit, 680, {cid = cid, hitalvo = hitalvo})
	return 0
elseif pokemon.x.spell == "Bite" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 146)
	return 0
elseif pokemon.x.spell == "Slash" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 160)
	return 0
elseif pokemon.x.spell == "Splash" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 53)
	return 0
elseif pokemon.x.spell == "Doubleslap" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local function slap(params)
	if isMonster(getCreatureTarget(params.cid)) then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(params.cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	else
	end
	end
	addEvent(slap, 0, {cid = cid})
	addEvent(slap, 600, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Confusion" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), confusion, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 133)
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local life = getCreatureHealth(getCreatureTarget(cid))
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	local newlife = life - getCreatureHealth(getCreatureTarget(cid))
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], newlife)
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..newlife.."", 35)
	return 0
elseif pokemon.x.spell == "Mud Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local mudalvo = getCreatureTarget(cid)
local function ver(params)
if isCreature(params.mudalvo) then
if getPlayerStorageValue(params.mudalvo, 3) >= 1 then
setPlayerStorageValue(params.mudalvo, 3, -1)
end
end
end
	addEvent(ver, 4500, {mudalvo = mudalvo})
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 1)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 34)
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Water Spout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), {x=getThingPos(getCreatureSummons(cid)[1]).x, y=getThingPos(getCreatureSummons(cid)[1]).y-5, z=getThingPos(getCreatureSummons(cid)[1]).z}, 2)
	local function spout(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	for x = -2,2 do
		for y = -2,2 do
	local newpos = getThingPos(getCreatureSummons(params.cid)[1])
	newpos.x = newpos.x+x
	newpos.y = newpos.y+y
	doSendDistanceShoot({x=getThingPos(getCreatureSummons(params.cid)[1]).x, y=getThingPos(getCreatureSummons(params.cid)[1]).y-5, z=getThingPos(getCreatureSummons(params.cid)[1]).z}, newpos, 2)
	end
	end
	end
	end

	local function spdmg(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureSummons(params.cid)[1]), waterspout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
	end
	end

	addEvent(spout, 300, {cid = cid})
	addEvent(spdmg, 450, {cid = cid})
	return 0
elseif pokemon.x.spell == "Horn Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Rock Throw" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 11)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Headbutt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
elseif pokemon.x.spell == "Fury Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local namezito = getCreatureName(getCreatureSummons(cid)[1])
	local namezin = getCreatureName(getCreatureTarget(cid))
	local function pee(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if isCreature(getCreatureTarget(params.cid)) then
	if getCreatureName(getCreatureSummons(params.cid)[1]) == namezito then
	if getCreatureName(getCreatureTarget(params.cid)) == namezin then
	doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 15)
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(params.cid)), 0, -((num1)+(getPlayerLevel(params.cid)*(num3))), -((num2)+(getPlayerLevel(params.cid)*(num3))), 3)
	end
	end
	end
	end
	end
	local delay = 200
	randnee = math.random(1,100)
	if randnee >= 1 and randnee <= 37 then
	a = 2
	elseif randnee >= 38 and randnee <= 74 then
	a = 3
	elseif randnee >= 75 and randnee <= 88 then
	a = 4
	else
	a = 5
	end
	local times = a
	for i = 1,a do
	addEvent(pee, delay, {cid = cid})
	delay = delay + 600
	end
	local function msg(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doSendAnimatedText(getThingPos(getCreatureSummons(params.cid)[1]), ""..times.." HITS", 35)
	end
	end
	addEvent(msg, 580*a, {cid = cid})
	return 0
end
return 0
end

 

move2.lua
-- WATER GUN
local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}

local pluck = createCombatArea{
{0, 0, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 3, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0}
}

local spark = 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 wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

-- SAND ATTACK
local sa1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local sa2n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}
local sa3n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 1, 0}, 
}
local sa4n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 1, 0}, 
}

local sa1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local sa2s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local sa3s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 2, 0}, 
}
local sa4s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 2, 0}, 
}

local sa1w = createCombatArea{ 
{2, 1, 0, 0, 0, 0}, 
}
local sa2w = createCombatArea{ 
{2, 0, 1, 0, 0, 0}, 
}
local sa3w = createCombatArea{ 
{2, 0, 0, 1, 0, 0}, 
}
local sa4w = createCombatArea{ 
{2, 0, 0, 0, 1, 0}, 
}

local sa1e = createCombatArea{ 
{0, 0, 0, 0, 1, 2}, 
}
local sa2e = createCombatArea{ 
{0, 0, 0, 1, 0, 2}, 
}
local sa3e = createCombatArea{ 
{0, 0, 1, 0, 0, 2}, 
}
local sa4e = createCombatArea{ 
{0, 1, 0, 0, 0, 2}, 
}
-- SAND ATTACK END
local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Zubat', 'Golbat',
'Bellsprout', 'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Oddish',
'Gloom', 'Vileplume', 'Horsea', 'Seadra', 'Grimer', 'Muk', 'Weedle', 'Kakuna', 'Beedrill',
'Doduo', 'Dodrio', 'Magnemite', 'Magneton', 'Voltorb', 'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew',
'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Peck",
		minLv = 1,
		ex = 1600002,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Peck",
		minLv = 1,
		ex = 1700002,
		base1 = 100,
		base2 = 140,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Peck",
		minLv = 1,
		ex = 1800002,
		base1 = 260,
		base2 = 300,
		dista = 1,
		bonus = 5,
		type = "flying",
		cd = 9
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Scratch",
		minLv = 1,
		ex = 1900002,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 9
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Scratch",
		minLv = 1,
		ex = 2000002,
		base1 = 140,
		base2 = 150,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 9
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Absorb",
		minLv = 7,
		ex = 4100002,
		base1 = 20,
		base2 = 25,
		dista = 1,
		bonus = 3,
		type = "grass",
		cd = 14
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Absorb",
		minLv = 30,
		ex = 4200002,
		base1 = 150,
		base2 = 180,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 14
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Razor Leaf",
		minLv = 7,
		ex = 6900002,
		base1 = 15,
		base2 = 22,
		dista = 4,
		bonus = 2,
		type = "grass",
		cd = 12  --12
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7000002,
		base1 = 55,
		base2 = 65,
		dista = 4,
		bonus = 2.8,
		type = "grass",
		cd = 12
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7100002,
		base1 = 100,
		base2 = 101,
		dista = 4,
		bonus = 3.8,
		type = "grass",
		cd = 12
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Bubbles",
		minLv = 6,
		ex = 6000002,
		base1 = 20,
		base2 = 30,
		dista = 4,
		bonus = 2,
		type = "water",
		cd = 10
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Bubbles",
		minLv = 20,
		ex = 6100002,
		base1 = 80,
		base2 = 90,
		dista = 4,
		bonus = 3,
		type = "water",
		cd = 10
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Waterball",
		minLv = 20,
		ex = 6200002,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 16
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Restore",
		minLv = 13,
		ex = 6300002,
		base1 = 70,
		base2 = 140,
		dista = 100,
		bonus = 5,
		target = "no",
		type = "normal",
		cd = 26
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Acid",
		minLv = 7,
		ex = 4300002,
		base1 = 54,
		base2 = 64,
		dista = 4,
		bonus = 2.7,
		type = "poison",
		cd = 14
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Acid",
		minLv = 7,
		ex = 4400002,
		base1 = 114,
		base2 = 134,
		dista = 4,
		bonus = 3.8,
		type = "poison",
		cd = 14
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Acid",
		minLv = 7,
		ex = 4500002,
		base1 = 214,
		base2 = 234,
		dista = 4,
		bonus = 5.4,
		type = "poison",
		cd = 14
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Water Pulse",
		minLv = 10,
		ex = 1160002,
		base1 = 50,
		base2 = 55,
		dista = 4,
		bonus = 3.5,
		type = "water",
		cd = 13
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Pulse",
		minLv = 6,
		ex = 1170002,
		base1 = 210,
		base2 = 215,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 13
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Acid",
		minLv = 6,
		ex = 8800002,
		base1 = 60,
		base2 = 70,
		dista = 5,
		bonus = 5,
		type = "poison",
		cd = 14
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Acid",
		minLv = 6,
		ex = 8900002,
		base1 = 110,
		base2 = 120,
		dista = 5,
		bonus = 5.5,
		type = "poison",
		cd = 14
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "String Shot",
		minLv = 1,
		ex = 1300002,
		base1 = 45,
		base2 = 50,
		dista = 3,
		bonus = 3,
		type = "bug",
		cd = 9
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "String Shot",
		minLv = 1,
		ex = 1400002,
		base1 = 85,
		base2 = 90,
		dista = 3,
		bonus = 4,
		type = "bug",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "String Shot",
		minLv = 1,
		ex = 1500002,
		base1 = 165,
		base2 = 170,
		dista = 3,
		bonus = 5,
		type = "bug",
		cd = 10
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Pluck",
		minLv = 1,
		ex = 8400002,
		base1 = 91,
		base2 = 98,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Pluck",
		minLv = 1,
		ex = 8500002,
		base1 = 191,
		base2 = 218,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thundershock",
		minLv = 1,
		ex = 8100002,
		base1 = 49,
		base2 = 62,
		dista = 5,
		bonus = 3.4,
		type = "electric",
		cd = 14
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thundershock",
		minLv = 1,
		ex = 8200002,
		base1 = 100,
		base2 = 118,
		dista = 5,
		bonus = 4.8,
		type = "electric",
		cd = 14
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 95,
		base2 = 112,
		target = "no",
		dista = 5,
		bonus = 4,
		type = "electric",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 2,
		type = "electric",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 105,
		base2 = 152,
		dista = 5,
		target = "no",
		bonus = 6,
		type = "electric",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 3,
		type = "electric",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7400002,
		base1 = 55,
		base2 = 62,
		dista = 10,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7500002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		type = "ground",
		cd = 16
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 215,
		base2 = 222,
		dista = 1,
		bonus = 5,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 45,
		base2 = 55,
		dista = 1,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 75,
		base2 = 85,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2800002,
		base1 = 155,
		base2 = 205,
		dista = 1,
		target = "no",
		bonus = 6.2,
		type = "ground",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800002,
		base1 = 100,
		target = "no",
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "ground",
		cd = 16
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
	pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
	if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
else
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end
local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then

	alvo = getCreatureName(getCreatureTarget(cid))
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Peck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Pluck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), pluck, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 2)
	return 0
elseif pokemon.x.spell == "Sand Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function sandattack(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), params.ef)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, ef = 120})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, ef = 120})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, ef = 120})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, ef = 122})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, ef = 122})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, ef = 122})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, ef = 121})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, ef = 119})
	end
elseif pokemon.x.spell == "Spark" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
			local function spark(params)
			if isCreature(params.cid) then
			if isCreature(getCreatureSummons(params.cid)[1]) then
			doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), params.cidpos, 40)
			doAreaCombatHealth(getCreatureSummons(cid)[1], element, params.cidpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
			end
			end
			end
	for a = -1, 1 do
		for b = -1, 1 do
		cidpos = getThingPos(getCreatureSummons(cid)[1])
		cidpos.x = cidpos.x+a
		cidpos.y = cidpos.y+b
		addEvent(spark, math.abs(a)*350 + math.abs(b)*650, {cid = cid, cidpos = cidpos})
		end
	end		
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	if element == COMBAT_EARTHDAMAGE then
	els = 2
	elseif element == COMBAT_FIREDAMAGE then
	els = 0.5
	else
	els = 1
	end
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))*els))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Razor Leaf" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 8)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 79)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(damage, 600, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	addEvent(throw, 550, {cid = cid})
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Restore" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Acid" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 20)
	return 0
elseif pokemon.x.spell == "Thundershock" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 40)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	return 0
elseif pokemon.x.spell == "Water Pulse" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 33)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "String Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local alvo = getCreatureTarget(cid)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 23)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 137)
	local function string(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	doSendMagicEffect(getThingPos(params.alvo), 137)
	end
	end
	end
	local function normalstr(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	setPlayerStorageValue(params.alvo, 3, -1)
	end
	end
	end
	addEvent(string, 250, {alvo = alvo})
	addEvent(string, 500, {alvo = alvo})
	addEvent(string, 750, {alvo = alvo})
	addEvent(string, 1000, {alvo = alvo})
	addEvent(string, 1250, {alvo = alvo})
	addEvent(string, 1500, {alvo = alvo})
	addEvent(string, 1750, {alvo = alvo})
	addEvent(string, 2000, {alvo = alvo})
	addEvent(string, 2250, {alvo = alvo})
	addEvent(string, 2500, {alvo = alvo})
	addEvent(string, 2750, {alvo = alvo})
	addEvent(string, 3000, {alvo = alvo})
	addEvent(normalstr, 3050, {alvo = alvo})
	return 0
end
return 0
end

move3.lua
-- WATER GUN
local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}

local pluck = createCombatArea{
{0, 0, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 3, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0}
}

local spark = 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 wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

-- SAND ATTACK
local sa1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local sa2n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}
local sa3n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 1, 0}, 
}
local sa4n = createCombatArea{
{0, 2, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 1, 0}, 
}

local sa1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local sa2s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local sa3s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 2, 0}, 
}
local sa4s = createCombatArea{
{0, 1, 0}, 
{0, 0, 0}, 
{0, 0, 0},
{0, 0, 0}, 
{0, 2, 0}, 
}

local sa1w = createCombatArea{ 
{2, 1, 0, 0, 0, 0}, 
}
local sa2w = createCombatArea{ 
{2, 0, 1, 0, 0, 0}, 
}
local sa3w = createCombatArea{ 
{2, 0, 0, 1, 0, 0}, 
}
local sa4w = createCombatArea{ 
{2, 0, 0, 0, 1, 0}, 
}

local sa1e = createCombatArea{ 
{0, 0, 0, 0, 1, 2}, 
}
local sa2e = createCombatArea{ 
{0, 0, 0, 1, 0, 2}, 
}
local sa3e = createCombatArea{ 
{0, 0, 1, 0, 0, 2}, 
}
local sa4e = createCombatArea{ 
{0, 1, 0, 0, 0, 2}, 
}
-- SAND ATTACK END
local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Zubat', 'Golbat',
'Bellsprout', 'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Oddish',
'Gloom', 'Vileplume', 'Horsea', 'Seadra', 'Grimer', 'Muk', 'Weedle', 'Kakuna', 'Beedrill',
'Doduo', 'Dodrio', 'Magnemite', 'Magneton', 'Voltorb', 'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew',
'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Peck",
		minLv = 1,
		ex = 1600002,
		base1 = 35,
		base2 = 45,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Peck",
		minLv = 1,
		ex = 1700002,
		base1 = 100,
		base2 = 140,
		dista = 1,
		bonus = 3,
		type = "flying",
		cd = 9
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Peck",
		minLv = 1,
		ex = 1800002,
		base1 = 260,
		base2 = 300,
		dista = 1,
		bonus = 5,
		type = "flying",
		cd = 9
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Scratch",
		minLv = 1,
		ex = 1900002,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 2,
		type = "normal",
		cd = 9
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Scratch",
		minLv = 1,
		ex = 2000002,
		base1 = 140,
		base2 = 150,
		dista = 1,
		bonus = 3,
		type = "normal",
		cd = 9
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Absorb",
		minLv = 7,
		ex = 4100002,
		base1 = 20,
		base2 = 25,
		dista = 1,
		bonus = 3,
		type = "grass",
		cd = 14
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Absorb",
		minLv = 30,
		ex = 4200002,
		base1 = 150,
		base2 = 180,
		dista = 1,
		bonus = 5,
		type = "grass",
		cd = 14
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Razor Leaf",
		minLv = 7,
		ex = 6900002,
		base1 = 15,
		base2 = 22,
		dista = 4,
		bonus = 2,
		type = "grass",
		cd = 12  --12
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7000002,
		base1 = 55,
		base2 = 65,
		dista = 4,
		bonus = 2.8,
		type = "grass",
		cd = 12
	     }
	 },
[240] = {x = {
		pok = victreebel,
		spell = "Razor Leaf",
		minLv = 20,
		ex = 7100002,
		base1 = 100,
		base2 = 101,
		dista = 4,
		bonus = 3.8,
		type = "grass",
		cd = 12
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Bubbles",
		minLv = 6,
		ex = 6000002,
		base1 = 20,
		base2 = 30,
		dista = 4,
		bonus = 2,
		type = "water",
		cd = 10
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Bubbles",
		minLv = 20,
		ex = 6100002,
		base1 = 80,
		base2 = 90,
		dista = 4,
		bonus = 3,
		type = "water",
		cd = 10
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Waterball",
		minLv = 20,
		ex = 6200002,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 16
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Restore",
		minLv = 13,
		ex = 6300002,
		base1 = 70,
		base2 = 140,
		dista = 100,
		bonus = 5,
		target = "no",
		type = "normal",
		cd = 26
	     }
	 },
[56] = {x = {
		pok = oddish,
		spell = "Acid",
		minLv = 7,
		ex = 4300002,
		base1 = 54,
		base2 = 64,
		dista = 4,
		bonus = 2.7,
		type = "poison",
		cd = 14
	     }
	 },
[74] = {x = {
		pok = gloom,
		spell = "Acid",
		minLv = 7,
		ex = 4400002,
		base1 = 114,
		base2 = 134,
		dista = 4,
		bonus = 3.8,
		type = "poison",
		cd = 14
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Acid",
		minLv = 7,
		ex = 4500002,
		base1 = 214,
		base2 = 234,
		dista = 4,
		bonus = 5.4,
		type = "poison",
		cd = 14
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Water Pulse",
		minLv = 10,
		ex = 1160002,
		base1 = 50,
		base2 = 55,
		dista = 4,
		bonus = 3.5,
		type = "water",
		cd = 13
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Water Pulse",
		minLv = 6,
		ex = 1170002,
		base1 = 210,
		base2 = 215,
		dista = 4,
		bonus = 5,
		type = "water",
		cd = 13
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Acid",
		minLv = 6,
		ex = 8800002,
		base1 = 60,
		base2 = 70,
		dista = 5,
		bonus = 5,
		type = "poison",
		cd = 14
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Acid",
		minLv = 6,
		ex = 8900002,
		base1 = 110,
		base2 = 120,
		dista = 5,
		bonus = 5.5,
		type = "poison",
		cd = 14
	     }
	 },
[21] = {x = {
		pok = weedle,
		spell = "String Shot",
		minLv = 1,
		ex = 1300002,
		base1 = 45,
		base2 = 50,
		dista = 3,
		bonus = 3,
		type = "bug",
		cd = 9
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "String Shot",
		minLv = 1,
		ex = 1400002,
		base1 = 85,
		base2 = 90,
		dista = 3,
		bonus = 4,
		type = "bug",
		cd = 9
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "String Shot",
		minLv = 1,
		ex = 1500002,
		base1 = 165,
		base2 = 170,
		dista = 3,
		bonus = 5,
		type = "bug",
		cd = 10
	     }
	 },
[26] = {x = {
		pok = doduo,
		spell = "Pluck",
		minLv = 1,
		ex = 8400002,
		base1 = 91,
		base2 = 98,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[120] = {x = {
		pok = dodrio,
		spell = "Pluck",
		minLv = 1,
		ex = 8500002,
		base1 = 191,
		base2 = 218,
		dista = 1,
		bonus = 4,
		type = "flying",
		cd = 13
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thundershock",
		minLv = 1,
		ex = 8100002,
		base1 = 49,
		base2 = 62,
		dista = 5,
		bonus = 3.4,
		type = "electric",
		cd = 14
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thundershock",
		minLv = 1,
		ex = 8200002,
		base1 = 100,
		base2 = 118,
		dista = 5,
		bonus = 4.8,
		type = "electric",
		cd = 14
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 95,
		base2 = 112,
		target = "no",
		dista = 5,
		bonus = 4,
		type = "electric",
		cd = 16
	     }
	 },
[287] = {x = {
		pok = voltorbroll,
		spell = "Spark",
		minLv = 1,
		ex = 1000002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 2,
		type = "electric",
		cd = 16
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 105,
		base2 = 152,
		dista = 5,
		target = "no",
		bonus = 6,
		type = "electric",
		cd = 16
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Spark",
		minLv = 1,
		ex = 1010002,
		base1 = 45,
		base2 = 52,
		dista = 5,
		target = "no",
		bonus = 3,
		type = "electric",
		cd = 16
	     }
	 },
[196] = {x = {
		pok = geodude,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7400002,
		base1 = 55,
		base2 = 62,
		dista = 10,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[247] = {x = {
		pok = graveler,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7500002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		type = "ground",
		cd = 16
	     }
	 },
[116] = {x = {
		pok = golem,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 215,
		base2 = 222,
		dista = 1,
		bonus = 5,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[288] = {x = {
		pok = golemroll,
		spell = "Sand Attack",
		minLv = 1,
		ex = 7600002,
		base1 = 115,
		base2 = 122,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 45,
		base2 = 55,
		dista = 1,
		bonus = 3,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2700002,
		base1 = 75,
		base2 = 85,
		dista = 1,
		bonus = 4,
		target = "no",
		type = "ground",
		cd = 16
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Sand Attack",
		minLv = 1,
		ex = 2800002,
		base1 = 155,
		base2 = 205,
		dista = 1,
		target = "no",
		bonus = 6.2,
		type = "ground",
		cd = 16
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Slash",
		minLv = 1,
		ex = 2800002,
		base1 = 100,
		target = "no",
		base2 = 105,
		dista = 1,
		bonus = 3,
		type = "ground",
		cd = 16
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
	pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
	if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end
	if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
	return 0
	end
else
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end
local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then

	alvo = getCreatureName(getCreatureTarget(cid))
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Peck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 3)
	return 0
elseif pokemon.x.spell == "Scratch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 142)
	return 0
elseif pokemon.x.spell == "Pluck" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), pluck, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 2)
	return 0
elseif pokemon.x.spell == "Sand Attack" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function sandattack(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), params.ef)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, ef = 120})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, ef = 120})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, ef = 120})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, ef = 122})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, ef = 122})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, ef = 122})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, ef = 121})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, ef = 121})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(sandattack, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 400, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, ef = 119})
	addEvent(sandattack, 800, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, ef = 119})
	end
elseif pokemon.x.spell == "Spark" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
			local function spark(params)
			if isCreature(params.cid) then
			if isCreature(getCreatureSummons(params.cid)[1]) then
			doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), params.cidpos, 40)
			doAreaCombatHealth(getCreatureSummons(cid)[1], element, params.cidpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
			end
			end
			end
	for a = -1, 1 do
		for b = -1, 1 do
		cidpos = getThingPos(getCreatureSummons(cid)[1])
		cidpos.x = cidpos.x+a
		cidpos.y = cidpos.y+b
		addEvent(spark, math.abs(a)*350 + math.abs(b)*650, {cid = cid, cidpos = cidpos})
		end
	end		
	return 0
elseif pokemon.x.spell == "Absorb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 14)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	if element == COMBAT_EARTHDAMAGE then
	els = 2
	elseif element == COMBAT_FIREDAMAGE then
	els = 0.5
	else
	els = 1
	end
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))*els))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Razor Leaf" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 8)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 79)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(damage, 600, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	addEvent(throw, 550, {cid = cid})
	return 0
elseif pokemon.x.spell == "Bubbles" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 25)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Restore" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 14)
	doCreatureAddHealth(getCreatureSummons(cid)[1], ((num2)+((getPlayerLevel(cid))*(num3))))
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "+"..((num2)+((getPlayerLevel(cid))*(num3))).."", 35)
	return 0
elseif pokemon.x.spell == "Acid" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 20)
	return 0
elseif pokemon.x.spell == "Thundershock" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 40)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	return 0
elseif pokemon.x.spell == "Water Pulse" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 33)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(throw, 0, {cid = cid})
	addEvent(damage, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Mega Punch" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 112)
	return 0
elseif pokemon.x.spell == "String Shot" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	setPlayerStorageValue(getCreatureTarget(cid), 3, 1)
	local alvo = getCreatureTarget(cid)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 23)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 137)
	local function string(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	doSendMagicEffect(getThingPos(params.alvo), 137)
	end
	end
	end
	local function normalstr(params)
	if isCreature(params.alvo) then
	if getPlayerStorageValue(params.alvo, 3) >= 1 then
	setPlayerStorageValue(params.alvo, 3, -1)
	end
	end
	end
	addEvent(string, 250, {alvo = alvo})
	addEvent(string, 500, {alvo = alvo})
	addEvent(string, 750, {alvo = alvo})
	addEvent(string, 1000, {alvo = alvo})
	addEvent(string, 1250, {alvo = alvo})
	addEvent(string, 1500, {alvo = alvo})
	addEvent(string, 1750, {alvo = alvo})
	addEvent(string, 2000, {alvo = alvo})
	addEvent(string, 2250, {alvo = alvo})
	addEvent(string, 2500, {alvo = alvo})
	addEvent(string, 2750, {alvo = alvo})
	addEvent(string, 3000, {alvo = alvo})
	addEvent(normalstr, 3050, {alvo = alvo})
	return 0
end
return 0
end

move4.lua
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local imp = {'919', '4468', '4469', '4470', '4471', '4472', '4473', '4474', '4475', '4476',
'4477', '4478', '4479', '4480', '4481', '4482', '4483', '4484', '4485', '4486', '4487', '4488',
'4489', '4490', '4491', '4492', '4493', '4494', '4495', '4496', '4497', '4498', '4499', '4500',
'4501', '4502', '4503', '4504', '4505', '4506', '4507', '4508', '4509', '4510', '4511', '4512',
'4513', '4826', '4827', '873', '874', '875', '876', '877', '878', '903', '904', '905', '906',
'907', '908', '909', '910', '911', '912', '913'}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}


local rollout = createCombatArea{
{1, 1, 1}, 
{1, 2, 1}, 
{1, 1, 1}, 
}

local golem = {lookType = 288}
local sandslash = {lookType = 285}
local sandshrew = {lookType = 284}
local electrode = {lookType = 286}
local voltorb = {lookType = 287}
-- WATER GUN
local bomb = createCombatArea{
{0, 1, 0}, 
{1, 3, 1}, 
{0, 1, 0}, 
}

local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

local vinen = createCombatArea{
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{1, 0, 0}
}
local vines = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 0},
{0, 2, 0}
}
local vinee = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 2},
{0, 0, 0}
}
local vinew = createCombatArea{
{0, 0, 0},
{0, 0, 3},
{0, 2, 0},
{0, 0, 0}
}
local whipn = createCombatArea{
{0, 0, 0},
{0, 2, 0},
{1, 1, 1},
{1, 1, 1}
}
local whips = createCombatArea{
{1, 1, 1},
{1, 1, 1},
{0, 2, 0},
{0, 0, 0}
}
local whipe = createCombatArea{
{1, 1, 0},
{1, 1, 2},
{1, 1, 0},
{0, 0, 0}
}
local whipw = createCombatArea{
{0, 1, 1},
{2, 1, 1},
{0, 1, 1},
{0, 0, 0}
}

local sand1 = createCombatArea{
{0, 0, 0}, 
{0, 3, 0}, 
{0, 0, 0}, 
}

local whirl3 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl5 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local whirl32 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl52 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Golbat', 'Bellsprout',
'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Gloom', 'Vileplume',
'Horsea', 'Seadra', 'Grimer', 'Muk', 'Kakuna', 'Beedrill', 'Zubat', 'Magnemite', 'Magneton', 'Voltorb',
'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew', 'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Gust",
		minLv = 12,
		ex = 1600004,
		base1 = 40,
		base2 = 50,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 15
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Whirlwind",
		minLv = 22,
		ex = 1700004,
		base1 = 100,
		base2 = 101,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 17
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Whirlwind",
		minLv = 65,
		ex = 1800004,
		base1 = 200,
		base2 = 210,
		dista = 4,
		target = "no",
		bonus = 5.5,
		type = "flying",
		cd = 17
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Hyper Fang",
		minLv = 11,
		ex = 1900004,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 19
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Hyper Fang",
		minLv = 23,
		ex = 2000004,
		base1 = 150,
		base2 = 160,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 19
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Whirlwind",
		minLv = 32,
		ex = 4200004,
		base1 = 200,
		base2 = 220,
		dista = 4,
		target = "no",
		bonus = 50,
		type = "flying",
		cd = 20
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Vine Whip",
		minLv = 12,
		ex = 6900004,
		base1 = 50,
		base2 = 60,
		dista = 2,
		target = "no",
		bonus = 3.5,
		type = "grass",
		cd = 19
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Vine Whip",
		minLv = 20,
		ex = 7000004,
		base1 = 120,
		base2 = 150,
		target = "no",
		dista = 2,
		bonus = 4.5,
		type = "grass",
		cd = 19
	     }
	 },
[240] = {x = {
		pok = bictreebel,
		spell = "Vine Whip",
		minLv = 50,
		ex = 7100004,
		base1 = 230,
		base2 = 280,
		dista = 2,
		target = "no",
		bonus = 6.5,
		type = "grass",
		cd = 19
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Water Gun",
		minLv = 13,
		ex = 6000004,
		base1 = 45,
		base2 = 50,
		target = "no",
		dista = 2,
		bonus = 4,
		type = "water",
		cd = 19
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Water Gun",
		minLv = 25,
		ex = 6100004,
		base1 = 185,
		target = "no",
		base2 = 200,
		dista = 2,
		bonus = 5,
		type = "water",
		cd = 19
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Water Gun",
		minLv = 25,
		ex = 6200004,
		base1 = 685,
		base2 = 700,
		dista = 2,
		bonus = 6,
		target = "no",
		type = "water",
		cd = 19
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Psycho Shift",
		minLv = 24,
		ex = 6300004,
		base1 = 115,
		base2 = 120,
		dista = 10,
		bonus = 5,
		type = "psychic",
		cd = 24
	     }
	 },
[74] = {x = {
		pk = gloom,
		spell = "Poison Bomb",
		minLv = 22,
		ex = 4400004,
		base1 = 101,
		base2 = 103,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 25
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Poison Bomb",
		minLv = 50,
		ex = 4500004,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 25
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Waterball",
		minLv = 16,
		ex = 1160004,
		base1 = 50,
		base2 = 60,
		dista = 4,
		bonus = 4.7,
		type = "water",
		cd = 17
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Waterball",
		minLv = 46,
		ex = 1170004,
		base1 = 190,
		base2 = 200,
		dista = 4,
		bonus = 5.7,
		type = "water",
		cd = 17
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Poison Bomb",
		minLv = 16,
		ex = 8800004,
		base1 = 85,
		base2 = 92,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Poison Bomb",
		minLv = 32,
		ex = 8900004,
		base1 = 285,
		base2 = 292,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "Harden",
		minLv = 10,
		ex = 1400004,
		lpl = 32,
		life = 900,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Toxic Needle",
		minLv = 32,
		ex = 1500004,
		base1 = 100,
		base2 = 110,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 16
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Super Sonic",
		minLv = 11,
		ex = 4100004,
		base1 = 0,
		base2 = 0,
		dista = 4,
		bonus = 0,
		type = "normal",
		cd = 16
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thunderbolt",
		minLv = 17,
		ex = 8100004,
		base1 = 65,
		base2 = 85,
		dista = 5,
		bonus = 5.4,
		type = "electric",
		cd = 18
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thunderbolt",
		minLv = 1,
		ex = 8200004,
		base1 = 160,
		base2 = 180,
		dista = 5,
		bonus = 7,
		type = "electric",
		cd = 18
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 30,
		base2 = 31,
		dista = 2,
		target = "no",
		bonus = 0.4,
		type = "ground",
		cd = 33
	     }
	 },
[287] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 20,
		base2 = 21,
		dista = 2,
		target = "no",
		bonus = 0.5,
		type = "ground",
		cd = 33
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[196] = {x = {
		pok = Geodude,
		spell = "Harden",
		minLv = 17,
		ex = 7400004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[247] = {x = {
		pok = Graveler,
		spell = "Harden",
		minLv = 17,
		ex = 7500004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[116] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[288] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Gust" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}})
	end
	return 0
elseif pokemon.x.spell == "Whirlwind" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, params.br, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}, br = whirl52})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}, br = whirl52})
	end
return 0
elseif pokemon.x.spell == "Hyper Fang" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 159)
	return 0
elseif pokemon.x.spell == "Rollout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureName(getCreatureSummons(cid)[1]) == "Voltorb" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], voltorb, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 85)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Electrode" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], electrode, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 101)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandshrew" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandshrew, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 93)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandslash" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandslash, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 143)
	end
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
		local function roll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getCreatureCondition(getCreatureSummons(params.cid)[1], CONDITION_OUTFIT) == true then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), rollout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
		end
		end
		end
		end
	for r = 1, 8 do
	addEvent(roll, 1000*r, {cid = cid})
	end

		local function stoproll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		doChangeSpeed(getCreatureSummons(params.cid)[1], -101)
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, 0)
		end
		end
		end
		end
	addEvent(stoproll, 8300, {cid = cid})
	return 0
elseif pokemon.x.spell == "Vine Whip" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	area = vinen
	dano = whipn
	effect = 80
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	area = vinee
	dano = whipe
	effect = 83
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	area = vines
	dano = whips
	effect = 81
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	area = vinew
	dano = whipw
	effect = 82
	end
	doAreaCombatHealth(getCreatureSummons(cid)[1], null, getThingPos(getCreatureSummons(cid)[1]), area, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), effect)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), dano, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
	return 0
elseif pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Psycho Shift" then
	targetpos = getThingPos(getCreatureTarget(cid))
	targetposss = getThingPos(getCreatureTarget(cid))
	if math.random(1,100) >= 51 then
	targetpos.x = targetpos.x+2
	else
	targetpos.x = targetpos.x-2
	end
	if math.random(1,100) >= 51 then
	targetpos.y = targetpos.y-2
	else
	targetpos.y = targetpos.y+2
	end
	local tile = getTileThingByPos(targetpos).itemid
	if getThingPos(cid).z > 7 then
		if isWalkable(targetpos, cid, 0, 0) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	if not isInArray(imp, tile) then
		if not isInArray(imp, getTileThingByPos(targetpos).itemid) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
	doSendMagicEffect(targetposss, 12)
	end
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Poison Bomb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	addEvent(doAreaCombatHealth, 100, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), bomb, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 114)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Harden" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local hardname = getCreatureName(getCreatureSummons(cid)[1])
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
	local oldpos = getThingPos(getCreatureSummons(cid)[1])
		local function efect(params)
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		doSendMagicEffect(getThingPos(getCreatureSummons(params.cid)[1]), 144)
		end
		end
		end
	local function chard(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
	setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, -1)
	end
	end
	end

	addEvent(efect, 100, {cid = cid, hardname = hardname})
	addEvent(efect, 1600, {cid = cid, hardname = hardname})
	addEvent(efect, 3100, {cid = cid, hardname = hardname})
	addEvent(efect, 4600, {cid = cid, hardname = hardname})
	addEvent(efect, 6100, {cid = cid, hardname = hardname})
	addEvent(efect, 7600, {cid = cid, hardname = hardname})
	addEvent(efect, 9100, {cid = cid, hardname = hardname})
	addEvent(efect, 10600, {cid = cid, hardname = hardname})
	addEvent(chard, 11000, {cid = cid})		
return 0
elseif pokemon.x.spell == "Toxic Needle" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 8)
return 0
elseif pokemon.x.spell == "Thunderbolt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local posalvo = getThingPos(getCreatureTarget(cid))
	local boltalvo = getCreatureTarget(cid)
	posalvo.x = posalvo.x-2
	posalvo.y = posalvo.y-6
	doSendDistanceShoot(posalvo, getThingPos(getCreatureTarget(cid)), 41)
	local function bolt(params)
	if isCreature(params.cid) then
	if isCreature(getCreatureTarget(cid)) then
	if getCreatureTarget(params.cid) == params.boltalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	end
	end
	end
	end
	addEvent(bolt, 200, {cid = cid, boltalvo = boltalvo})
return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
end
return 0
end

 

move5.lua
local nao = {'4820', '4821', '4822', '4823', '4824', '4825', '1395', '1389', '1391', '1393', '460'}
local imp = {'919', '4468', '4469', '4470', '4471', '4472', '4473', '4474', '4475', '4476',
'4477', '4478', '4479', '4480', '4481', '4482', '4483', '4484', '4485', '4486', '4487', '4488',
'4489', '4490', '4491', '4492', '4493', '4494', '4495', '4496', '4497', '4498', '4499', '4500',
'4501', '4502', '4503', '4504', '4505', '4506', '4507', '4508', '4509', '4510', '4511', '4512',
'4513', '4826', '4827', '873', '874', '875', '876', '877', '878', '903', '904', '905', '906',
'907', '908', '909', '910', '911', '912', '913'}

local waba = createCombatArea{
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 3, 1, 1},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0}
}


local rollout = createCombatArea{
{1, 1, 1}, 
{1, 2, 1}, 
{1, 1, 1}, 
}

local golem = {lookType = 288}
local sandslash = {lookType = 285}
local sandshrew = {lookType = 284}
local electrode = {lookType = 286}
local voltorb = {lookType = 287}
-- WATER GUN
local bomb = createCombatArea{
{0, 1, 0}, 
{1, 3, 1}, 
{0, 1, 0}, 
}

local wg1n = createCombatArea{
{0, 0, 0}, 
{0, 2, 0}, 
{0, 1, 0}, 
}
local wg2n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 1, 0}, 
{0, 1, 0}, 
{0, 1, 0}, 
}
local wg3n = createCombatArea{
{0, 2, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 1, 0}, 
}

local wg1s = createCombatArea{
{0, 1, 0}, 
{0, 2, 0}, 
{0, 0, 0}, 
}
local wg2s = createCombatArea{
{0, 1, 0},
{0, 1, 0},
{0, 1, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}
local wg3s = createCombatArea{
{0, 1, 0},
{0, 0, 0},
{0, 0, 0},
{0, 0, 0}, 
{0, 0, 0}, 
{0, 2, 0}, 
}

local wg1e = createCombatArea{
{0, 0, 0}, 
{1, 2, 0}, 
{0, 0, 0}, 
}
local wg2e = createCombatArea{ 
{1, 1, 1, 0, 2}, 
}
local wg3e = createCombatArea{ 
{1, 0, 0, 0, 0, 2}, 
}

local wg1w = createCombatArea{
{0, 0, 0}, 
{0, 2, 1}, 
{0, 0, 0}, 
}
local wg2w = createCombatArea{ 
{2, 0, 1, 1, 1}, 
}
local wg3w = createCombatArea{ 
{2, 0, 0, 0, 0, 1}, 
}
-- WATER GUN END

local vinen = createCombatArea{
{0, 0, 0},
{0, 0, 0},
{0, 2, 0},
{1, 0, 0}
}
local vines = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 0},
{0, 2, 0}
}
local vinee = createCombatArea{
{0, 0, 0},
{1, 0, 0},
{0, 0, 2},
{0, 0, 0}
}
local vinew = createCombatArea{
{0, 0, 0},
{0, 0, 3},
{0, 2, 0},
{0, 0, 0}
}
local whipn = createCombatArea{
{0, 0, 0},
{0, 2, 0},
{1, 1, 1},
{1, 1, 1}
}
local whips = createCombatArea{
{1, 1, 1},
{1, 1, 1},
{0, 2, 0},
{0, 0, 0}
}
local whipe = createCombatArea{
{1, 1, 0},
{1, 1, 2},
{1, 1, 0},
{0, 0, 0}
}
local whipw = createCombatArea{
{0, 1, 1},
{2, 1, 1},
{0, 1, 1},
{0, 0, 0}
}

local sand1 = createCombatArea{
{0, 0, 0}, 
{0, 3, 0}, 
{0, 0, 0}, 
}

local whirl3 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl5 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local whirl32 = createCombatArea{
{0, 0, 0}, 
{1, 3, 1}, 
{0, 0, 0}, 
}

local whirl52 = createCombatArea{
{0, 0, 0, 0, 0}, 
{1, 1, 3, 1, 1}, 
{0, 0, 0, 0, 0}, 
}

local pokeis = {'Pidgey', 'Pidgeotto', 'Pidgeot', 'Rattata', 'Raticate', 'Golbat', 'Bellsprout',
'Weepinbell', 'Victreebel', 'Poliwag', 'Poliwhirl', 'Poliwrath', 'Abra', 'Gloom', 'Vileplume',
'Horsea', 'Seadra', 'Grimer', 'Muk', 'Kakuna', 'Beedrill', 'Zubat', 'Magnemite', 'Magneton', 'Voltorb',
'Electrode', 'Geodude', 'Graveler', 'Golem', 'Sandshrew', 'Sandslash'}
local c = {
[30] = {x = {
		pok = pidgey,
		spell = "Gust",
		minLv = 12,
		ex = 1600004,
		base1 = 40,
		base2 = 50,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 15
	     }
	 },
[5] = {x = {
		pok = pidgeotto,
		spell = "Whirlwind",
		minLv = 22,
		ex = 1700004,
		base1 = 100,
		base2 = 101,
		dista = 50,
		bonus = 4,
		target = "no",
		type = "flying",
		cd = 17
	     }
	 },
[80] = {x = {
		pok = pidgeot,
		spell = "Whirlwind",
		minLv = 65,
		ex = 1800004,
		base1 = 200,
		base2 = 210,
		dista = 4,
		target = "no",
		bonus = 5.5,
		type = "flying",
		cd = 17
	     }
	 },
[36] = {x = {
		pok = rattata,
		spell = "Hyper Fang",
		minLv = 11,
		ex = 1900004,
		base1 = 40,
		base2 = 50,
		dista = 1,
		bonus = 4,
		type = "normal",
		cd = 19
	     }
	 },
[69] = {x = {
		pok = raticate,
		spell = "Hyper Fang",
		minLv = 23,
		ex = 2000004,
		base1 = 150,
		base2 = 160,
		dista = 1,
		bonus = 5,
		type = "normal",
		cd = 19
	     }
	 },
[122] = {x = {
		pok = golbat,
		spell = "Whirlwind",
		minLv = 32,
		ex = 4200004,
		base1 = 200,
		base2 = 220,
		dista = 4,
		target = "no",
		bonus = 50,
		type = "flying",
		cd = 20
	     }
	 },
[250] = {x = {
		pok = bellsprout,
		spell = "Vine Whip",
		minLv = 12,
		ex = 6900004,
		base1 = 50,
		base2 = 60,
		dista = 2,
		target = "no",
		bonus = 3.5,
		type = "grass",
		cd = 19
	     }
	 },
[37] = {x = {
		pok = weepinbell,
		spell = "Vine Whip",
		minLv = 20,
		ex = 7000004,
		base1 = 120,
		base2 = 150,
		target = "no",
		dista = 2,
		bonus = 4.5,
		type = "grass",
		cd = 19
	     }
	 },
[240] = {x = {
		pok = bictreebel,
		spell = "Vine Whip",
		minLv = 50,
		ex = 7100004,
		base1 = 230,
		base2 = 280,
		dista = 2,
		target = "no",
		bonus = 6.5,
		type = "grass",
		cd = 19
	     }
	 },
[111] = {x = {
		pok = poliwag,
		spell = "Water Gun",
		minLv = 13,
		ex = 6000004,
		base1 = 45,
		base2 = 50,
		target = "no",
		dista = 2,
		bonus = 4,
		type = "water",
		cd = 19
	     }
	 },
[212] = {x = {
		pok = poliwhirl,
		spell = "Water Gun",
		minLv = 25,
		ex = 6100004,
		base1 = 185,
		target = "no",
		base2 = 200,
		dista = 2,
		bonus = 5,
		type = "water",
		cd = 19
	     }
	 },
[104] = {x = {
		pok = poliwrath,
		spell = "Water Gun",
		minLv = 25,
		ex = 6200004,
		base1 = 685,
		base2 = 700,
		dista = 2,
		bonus = 6,
		target = "no",
		type = "water",
		cd = 19
	     }
	 },
[262] = {x = {
		pok = abra,
		spell = "Psycho Shift",
		minLv = 24,
		ex = 6300004,
		base1 = 115,
		base2 = 120,
		dista = 10,
		bonus = 5,
		type = "psychic",
		cd = 24
	     }
	 },
[74] = {x = {
		pk = gloom,
		spell = "Poison Bomb",
		minLv = 22,
		ex = 4400004,
		base1 = 101,
		base2 = 103,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 25
	     }
	 },
[86] = {x = {
		pok = vileplume,
		spell = "Poison Bomb",
		minLv = 50,
		ex = 4500004,
		base1 = 200,
		base2 = 201,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 25
	     }
	 },
[33] = {x = {
		pok = horsea,
		spell = "Waterball",
		minLv = 16,
		ex = 1160004,
		base1 = 50,
		base2 = 60,
		dista = 4,
		bonus = 4.7,
		type = "water",
		cd = 17
	     }
	 },
[276] = {x = {
		pok = seadra,
		spell = "Waterball",
		minLv = 46,
		ex = 1170004,
		base1 = 190,
		base2 = 200,
		dista = 4,
		bonus = 5.7,
		type = "water",
		cd = 17
	     }
	 },
[214] = {x = {
		pok = grimer,
		spell = "Poison Bomb",
		minLv = 16,
		ex = 8800004,
		base1 = 85,
		base2 = 92,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[47] = {x = {
		pok = muk,
		spell = "Poison Bomb",
		minLv = 32,
		ex = 8900004,
		base1 = 285,
		base2 = 292,
		dista = 4,
		bonus = 6,
		type = "poison",
		cd = 17
	     }
	 },
[60] = {x = {
		pok = kakuna,
		spell = "Harden",
		minLv = 10,
		ex = 1400004,
		lpl = 32,
		life = 900,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[45] = {x = {
		pok = beedrill,
		spell = "Toxic Needle",
		minLv = 32,
		ex = 1500004,
		base1 = 100,
		base2 = 110,
		dista = 4,
		bonus = 5,
		type = "poison",
		cd = 16
	     }
	 },
[44] = {x = {
		pok = zubat,
		spell = "Super Sonic",
		minLv = 11,
		ex = 4100004,
		base1 = 0,
		base2 = 0,
		dista = 4,
		bonus = 0,
		type = "normal",
		cd = 16
	     }
	 },
[217] = {x = {
		pok = magnemite,
		spell = "Thunderbolt",
		minLv = 17,
		ex = 8100004,
		base1 = 65,
		base2 = 85,
		dista = 5,
		bonus = 5.4,
		type = "electric",
		cd = 18
	     }
	 },
[223] = {x = {
		pok = magneton,
		spell = "Thunderbolt",
		minLv = 1,
		ex = 8200004,
		base1 = 160,
		base2 = 180,
		dista = 5,
		bonus = 7,
		type = "electric",
		cd = 18
	     }
	 },
[123] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 30,
		base2 = 31,
		dista = 2,
		target = "no",
		bonus = 0.4,
		type = "ground",
		cd = 33
	     }
	 },
[287] = {x = {
		pok = voltorb,
		spell = "Rollout",
		minLv = 17,
		ex = 1000004,
		base1 = 20,
		base2 = 21,
		dista = 2,
		target = "no",
		bonus = 0.5,
		type = "ground",
		cd = 33
	     }
	 },
[125] = {x = {
		pok = electrode,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[286] = {x = {
		pok = electroderoll,
		spell = "Rollout",
		minLv = 39,
		ex = 1010004,
		base1 = 45,
		base2 = 46,
		dista = 2,
		target = "no",
		bonus = 1,
		type = "ground",
		cd = 33
	     }
	 },
[196] = {x = {
		pok = Geodude,
		spell = "Harden",
		minLv = 17,
		ex = 7400004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[247] = {x = {
		pok = Graveler,
		spell = "Harden",
		minLv = 17,
		ex = 7500004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[116] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[288] = {x = {
		pok = Golem,
		spell = "Harden",
		minLv = 17,
		ex = 7600004,
		base1 = 0,
		target = "no",
		base2 = 0,
		dista = 100,
		bonus = 0,
		type = "normal",
		cd = 17
	     }
	 },
[43] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[284] = {x = {
		pok = sandshrew,
		spell = "Rollout",
		minLv = 1,
		ex = 2700004,
		base1 = 40,
		base2 = 41,
		dista = 1,
		target = "no",
		bonus = 0.6,
		type = "ground",
		cd = 28
	     }
	 },
[115] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
[285] = {x = {
		pok = sandslash,
		spell = "Rollout",
		minLv = 57,
		ex = 2800004,
		base1 = 60,
		base2 = 61,
		dista = 1,
		target = "no",
		bonus = 1.6,
		type = "ground",
		cd = 28
	     }
	 },
}

function onSay(cid)	
if #getCreatureSummons(cid) == 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Kade seu pokemon?")
return 0
end
if not isInArray(pokeis, getCreatureName(getCreatureSummons(cid)[1])) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu poke nao reconhece este ataque.")
return 0
end
pokemon = c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType]
if getPlayerLevel(cid) < c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.minLv then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ainda nao tem level.")
return 0
end
if exhaustion.get(cid, pokemon.x.ex) then
	seconds = math.floor(((exhaustion.get(cid, pokemon.x.ex)) + 1))
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Spera + "..seconds.." segundos para soltar de novo.")
	return 0
	end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 3) >= 1 then
doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "MISS", 215)
setPlayerStorageValue(getCreatureSummons(cid)[1], 3, -1)
doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
return true
end
if getPlayerStorageValue(getCreatureSummons(cid)[1], 5) >= 1 then
	if math.random(1,100) <= 33 then
	doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), "SELF HIT", 180)
	local levels = getPlayerLevel(cid)
	doTargetCombatHealth(cid, getCreatureSummons(cid)[1], COMBAT_PHYSICALDAMAGE, -(math.random((levels*3),(levels*5))), -((math.random((levels*3),(levels*5))+10)), 3)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	return true
	end
end
if pokemon.x.target ~= "no" then
if not isMonster(getCreatureTarget(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
return 0
end

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > pokemon.x.dista then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
return 0
end

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
return 0
end
end
if pokemon.x.type == "flying" then
	elementa = FLYDAMAGE
elseif pokemon.x.type == "ground" then
	elementa = GROUNDDAMAGE
elseif pokemon.x.type == "electric" then
	elementa = ELECTRICDAMAGE
elseif pokemon.x.type == "ghost" then
	elementa = GHOSTDAMAGE
elseif pokemon.x.type == "normal" then
	elementa = NORMALDAMAGE
elseif pokemon.x.type == "fighting" then
	elementa = FIGHTINGDAMAGE
elseif pokemon.x.type == "poison" then
	elementa = POISONDAMAGE
elseif pokemon.x.type == "rock" then
	elementa = ROCKDAMAGE
elseif pokemon.x.type == "bug" then
	elementa = BUGDAMAGE
elseif pokemon.x.type == "fire" then
	elementa = FIREDAMAGE
elseif pokemon.x.type == "water" then
	elementa = WATERDAMAGE
elseif pokemon.x.type == "grass" then
	elementa = GRASSDAMAGE
elseif pokemon.x.type == "psychic" then
	elementa = PSYCHICDAMAGE
elseif pokemon.x.type == "ice" then
	elementa = ICEDAMAGE
elseif pokemon.x.type == "dragon" then
	elementa = DRAGONDAMAGE
end

local element = elementa
local num1 = (pokemon.x.base1)
local num2 = (pokemon.x.base2)
local num3 = (pokemon.x.bonus)
setPlayerStorageValue(getCreatureSummons(cid)[1], 1000, ((num1)+(getPlayerLevel(cid)*(num3))))
if pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Gust" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, sand1, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}})
	end
	return 0
elseif pokemon.x.spell == "Whirlwind" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	posit = getThingPos(getCreatureSummons(cid)[1])
	local function gust(params)
	if #getCreatureSummons(params.cid) >= 1 then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, params.ar, params.br, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 42)
	else
	end
	end
	local posicao = getThingPos(getCreatureSummons(cid)[1])
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y-1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y-2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y-3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y-4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x, y=posicao.y+1, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x, y=posicao.y+2, z=posicao.z}, br = whirl3})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x, y=posicao.y+3, z=posicao.z}, br = whirl5})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x, y=posicao.y+4, z=posicao.z}, br = whirl5})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x+1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x+2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x+3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x+4, y=posicao.y, z=posicao.z}, br = whirl52})
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	addEvent(gust, 0, {cid = cid, ar = {x=posicao.x-1, y=posicao.y, z=posicao.z}, br = sand1})
	addEvent(gust, 500, {cid = cid, ar = {x=posicao.x-2, y=posicao.y, z=posicao.z}, br = whirl32})
	addEvent(gust, 1000, {cid = cid, ar = {x=posicao.x-3, y=posicao.y, z=posicao.z}, br = whirl52})
	addEvent(gust, 1500, {cid = cid, ar = {x=posicao.x-4, y=posicao.y, z=posicao.z}, br = whirl52})
	end
return 0
elseif pokemon.x.spell == "Hyper Fang" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 159)
	return 0
elseif pokemon.x.spell == "Rollout" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureName(getCreatureSummons(cid)[1]) == "Voltorb" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], voltorb, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 85)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Electrode" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], electrode, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 101)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandshrew" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandshrew, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 93)
	elseif getCreatureName(getCreatureSummons(cid)[1]) == "Sandslash" then
	doSetCreatureOutfit(getCreatureSummons(cid)[1], sandslash, 8300)
	doChangeSpeed(getCreatureSummons(cid)[1], 143)
	end
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
		local function roll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getCreatureCondition(getCreatureSummons(params.cid)[1], CONDITION_OUTFIT) == true then
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), rollout, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
		end
		end
		end
		end
	for r = 1, 8 do
	addEvent(roll, 1000*r, {cid = cid})
	end

		local function stoproll(params)
		if isCreature(params.cid) then
		if isCreature(getCreatureSummons(params.cid)[1]) then
		doChangeSpeed(getCreatureSummons(params.cid)[1], -101)
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, 0)
		end
		end
		end
		end
	addEvent(stoproll, 8300, {cid = cid})
	return 0
elseif pokemon.x.spell == "Vine Whip" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	area = vinen
	dano = whipn
	effect = 80
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	area = vinee
	dano = whipe
	effect = 83
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	area = vines
	dano = whips
	effect = 81
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	area = vinew
	dano = whipw
	effect = 82
	end
	doAreaCombatHealth(getCreatureSummons(cid)[1], null, getThingPos(getCreatureSummons(cid)[1]), area, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), effect)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), dano, -((num1)+(getPlayerLevel(cid)*(num3))), -((num1)+(getPlayerLevel(cid)*(num3))), 255)
	return 0
elseif pokemon.x.spell == "Water Gun" then
	if getCreatureLookDir(getCreatureSummons(cid)[1]) == 0 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 74)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3n, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 76)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 2 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 77)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 75)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3s, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 78)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 1 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 69)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3e, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 71)
	elseif getCreatureLookDir(getCreatureSummons(cid)[1]) == 3 then
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg1w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 72)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg2w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 70)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureSummons(cid)[1]), wg3w, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 73)
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Psycho Shift" then
	targetpos = getThingPos(getCreatureTarget(cid))
	targetposss = getThingPos(getCreatureTarget(cid))
	if math.random(1,100) >= 51 then
	targetpos.x = targetpos.x+2
	else
	targetpos.x = targetpos.x-2
	end
	if math.random(1,100) >= 51 then
	targetpos.y = targetpos.y-2
	else
	targetpos.y = targetpos.y+2
	end
	local tile = getTileThingByPos(targetpos).itemid
	if getThingPos(cid).z > 7 then
		if isWalkable(targetpos, cid, 0, 0) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	if not isInArray(imp, tile) then
		if not isInArray(imp, getTileThingByPos(targetpos).itemid) then
		doTeleportThing(getCreatureTarget(cid), targetpos)
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetpos, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetpos, 12)
		else
		doAreaCombatHealth(getCreatureSummons(cid)[1], element, targetposss, 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
		doSendMagicEffect(targetposss, 12)
		end
	else
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 134)
	doSendMagicEffect(targetposss, 12)
	end
	end
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	return 0
elseif pokemon.x.spell == "Poison Bomb" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	addEvent(doAreaCombatHealth, 100, getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), bomb, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 114)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 14)
return 0
elseif pokemon.x.spell == "Waterball" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
		local function throw(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doSendDistanceShoot(getThingPos(getCreatureSummons(params.cid)[1]), getThingPos(getCreatureTarget(params.cid)), 2)
		else
		end
		end
		local function damage(params)
		if isMonster(getCreatureTarget(params.cid)) then
		doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), waba, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 68)
		else
		end
		end
	addEvent(damage, 100, {cid = cid})
	addEvent(throw, 0, {cid = cid})
	return 0
elseif pokemon.x.spell == "Harden" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local hardname = getCreatureName(getCreatureSummons(cid)[1])
	setPlayerStorageValue(getCreatureSummons(cid)[1], 4, 1)
	local oldpos = getThingPos(getCreatureSummons(cid)[1])
		local function efect(params)
		if isCreature(getCreatureSummons(params.cid)[1]) then
		if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
		doSendMagicEffect(getThingPos(getCreatureSummons(params.cid)[1]), 144)
		end
		end
		end
	local function chard(params)
	if isCreature(getCreatureSummons(params.cid)[1]) then
	if getPlayerStorageValue(getCreatureSummons(params.cid)[1], 4) >= 1 then
	setPlayerStorageValue(getCreatureSummons(params.cid)[1], 4, -1)
	end
	end
	end

	addEvent(efect, 100, {cid = cid, hardname = hardname})
	addEvent(efect, 1600, {cid = cid, hardname = hardname})
	addEvent(efect, 3100, {cid = cid, hardname = hardname})
	addEvent(efect, 4600, {cid = cid, hardname = hardname})
	addEvent(efect, 6100, {cid = cid, hardname = hardname})
	addEvent(efect, 7600, {cid = cid, hardname = hardname})
	addEvent(efect, 9100, {cid = cid, hardname = hardname})
	addEvent(efect, 10600, {cid = cid, hardname = hardname})
	addEvent(chard, 11000, {cid = cid})		
return 0
elseif pokemon.x.spell == "Toxic Needle" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 15)
	doAreaCombatHealth(getCreatureSummons(cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 8)
return 0
elseif pokemon.x.spell == "Thunderbolt" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local posalvo = getThingPos(getCreatureTarget(cid))
	local boltalvo = getCreatureTarget(cid)
	posalvo.x = posalvo.x-2
	posalvo.y = posalvo.y-6
	doSendDistanceShoot(posalvo, getThingPos(getCreatureTarget(cid)), 41)
	local function bolt(params)
	if isCreature(params.cid) then
	if isCreature(getCreatureTarget(cid)) then
	if getCreatureTarget(params.cid) == params.boltalvo then
	doAreaCombatHealth(getCreatureSummons(params.cid)[1], element, getThingPos(getCreatureTarget(cid)), 0, -((num1)+(getPlayerLevel(cid)*(num3))), -((num2)+(getPlayerLevel(cid)*(num3))), 48)
	end
	end
	end
	end
	addEvent(bolt, 200, {cid = cid, boltalvo = boltalvo})
return 0
elseif pokemon.x.spell == "Super Sonic" then
	doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell).."!", TALKTYPE_MONSTER)
	doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..c[getCreatureOutfit(getCreatureSummons(cid)[1]).lookType].x.spell.."!", TALKTYPE_SAY)
	exhaustion.set(cid, pokemon.x.ex, pokemon.x.cd)
	local t = getCreatureTarget(cid)
	setPlayerStorageValue(t, 5, 1)
	local function confused(params)
	if isCreature(params.t) then
	local spdc = getCreatureSpeed(params.t)
	if getCreatureLookDir(params.t) == 0 then
	confs = math.random(1,3)
	elseif getCreatureLookDir(params.t) == 1 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 0
		elseif confurandom >= 67 then
		confs = 2
		else
		confs = 3
		end
	elseif getCreatureLookDir(params.t) == 2 then
		confurandom = math.random(1,99)
		if confurandom <= 33 then
		confs = 3
		elseif confurandom >= 67 then
		confs = 0
		else
		confs = 1
		end
	elseif getCreatureLookDir(params.t) == 3 then
	confs = math.random(0,2)
	end
	doPushCreature(params.t, confs, 1, 0)
	doSendMagicEffect(getThingPos(params.t), 31)
	end
	end
	local function nonc(params)
	if isCreature(params.t) then
	doChangeSpeed(params.t, -getCreatureSpeed(params.t))
	doChangeSpeed(params.t, getCreatureBaseSpeed(params.t))
	setPlayerStorageValue(params.t, 5, -1)
	end
	end
	doSendDistanceShoot(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), 32)

	doChangeSpeed(t, -( getCreatureSpeed(t)/3))
	doSendMagicEffect(getThingPos(t), 31)
	for i = 1, math.random(6,7) do
	addEvent(confused, 1000*i, {cid = cid, t = t})
	end
	addEvent(nonc, 7100, {cid - cid, t = t})
	return 0
end
return 0
end

 

 

Afee meu kd os Creditos ?

Brun123

Mastercraft

Glugluguga

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

×
×
  • Criar Novo...