Ir para conteúdo
Entre para seguir isso  
tigerx2

Catch [+] Go/Back - Aprimorado

Recommended Posts

tigerx2    1
tigerx2

Nome: Poke Systems

Autor: tigerx2

Versão Testada: Cliente 8.70 / trunk.r4373 (tfs 0.4)

 

Aviso

Sistema foi testado/desenvolvido para Tibia normal, porém não há problemas em usar em poketibia. Ah e outra, eu não fiz nada de unique id, se quiser, você mesmo que arranja/faça

 

Plus

Fácil configuração, apenas mexa no arquivo ball.lua se você não souber o que esta fazendo (:

 

Informações Adicionais

Sistema de catch, tendo que ser com o monstro/pokemon vivo, podendo-se definir a porcentagem de vida mínima para se capturar (você pode configurar como quiser, um com 10%, outro 20% etc...), assim como a chance.

 

Sistema go/back sem bugs, normal. O creaturescripts foi justamente posto para se previnir bugs futuros.

 

Crie um arquivo .lua na pasta do OT (aonde fica o config.lua, executável, lib etc) com o nome de ball e coloque isto dentro do mesmo:

--  _________________________   --
-- //                        \\ --
--[[    SCRIPT BY: TIGERX2    ]]--
-- \\________________________// --
-- PLEASE DON'T REMOVE CREDITS  --



config = {ball_id = 2141, used_ball = 4873, summoned = 6453}

t = {["Hydra"] = {["100"] = 10},} -- MODEL: ["MONSTER_NAME"] = {["CHANCE_PERCENT"] = LIFE_PERCENT},
			                  -- NEVER FORGET TO ADD "," TO EACH MONSTER LIKE THAT --------> /\

t2 = {[1001] = "Hydra",} -- MODEL: [MONSTER_STORAGE] = "MONSTER_NAME",
		 -- ALWAYS PUT A DIFFERENT STORAGE !                     /\
		 -- DON'T FORGET TO ADD "," AFTER EACH LINE              ||
		 -- 					                                 ||

function string.trim(str)
-- Function by Colandus
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end

function string.explode(str, sep) 
-- Function by Colandus
local pos, t = 1, {}
if #sep == 0 or #str == 0 then return end
for s, e in function() return string.find(str, sep, pos) end do
	table.insert(t, string.trim(string.sub(str, pos, s-1)))
	pos = e+1
end
table.insert(t, string.trim(string.sub(str, pos)))
return t
end

 

Agora em /data/actions/scripts adicione estes dois scripts:

 

goback.lua

--  _________________________   --
-- //                        \\ --
--[[    SCRIPT BY: TIGERX2    ]]--
-- \\________________________// --
-- PLEASE DON'T REMOVE CREDITS  --



dofile("./ball.lua")

function onUse(cid, item, fromPosition, itemEx, toPosition)
for k,v in pairs(t2) do
	if item.itemid == config.ball_id then
		if string.explode(getItemAttribute(item.uid, "description"), " ")[3] == v then
			doTransformItem(item.uid, config.used_ball)
			x = doCreateMonster(v, getThingPos(cid))
			doConvinceCreature(cid, x)
			doSendMagicEffect(getThingPos(x), CONST_ME_TELEPORT)
			doCreatureSay(cid, v ..", go!", MESSAGE_FIRST)
			setPlayerStorageValue(cid, config.summoned, 1)
			if getPlayerStorageValue(cid, k) == -1 then
				doCreatureAddHealth(x, getCreatureMaxHealth(x)-getCreatureHealth(x))
			else
				doCreatureAddHealth(x, - getCreatureHealth(x) + getPlayerStorageValue(cid, k))
			end
		else
			doPlayerSendTextMessage(cid, 22, "ERROR[1]:: Please send this message to admin.")
		end
	else
		if #getCreatureSummons(cid) <= 0 then
			doTransformItem(item.uid, config.ball_id)
		else
			doCreatureSetStorage(cid, k, getCreatureHealth(getCreatureSummons(cid)[1]))
			doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), CONST_ME_TELEPORT)
			if doRemoveCreature(getCreatureSummons(cid)[1]) then end
			doTransformItem(item.uid, config.ball_id)
			setPlayerStorageValue(cid, config.summoned, -1)
			doCreatureSay(cid, v ..", back!", MESSAGE_FIRST)
		end
	end
end
return true
end

 

catch.lua

--  _________________________   --
-- //                        \\ --
--[[    SCRIPT BY: TIGERX2    ]]--
-- \\________________________// --
-- PLEASE DON'T REMOVE CREDITS  --



--[[ DON'T NEED TOUCH THAT \/ ]]--

dofile("./ball.lua")

function onUse(cid, item, fromPosition, itemEx, toPosition)
for k,v in pairs(t) do
	for kk,vv in pairs(v) do
		if getCreatureName(itemEx.uid) == k then
			if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(itemEx.uid)) <= 1 then
				if getCreatureHealth(itemEx.uid) <= getCreatureMaxHealth(itemEx.uid)/vv then
					if math.random(1,100) <= tonumber(kk) then
				    		doRemoveCreature(itemEx.uid)
						doSendMagicEffect(toPosition, CONST_ME_FIREWORK_BLUE)
						doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You cought a wild ".. k .."!")
						doRemoveItem(item.uid, 1)
						mb = doPlayerAddItem(cid, config.ball_id, 1)
						doItemSetAttribute(mb, "description", "It contains ".. k)          
					else
						doRemoveItem(item.uid, 1)
						doPlayerSendTextMessage(cid,MESSAGE_EVENT_DEFAULT,"Your pokeball broke!")
						doSendMagicEffect(toPosition, CONST_ME_POFF)
					end
				else
					doPlayerSendCancel(cid, "You have to do some attacks before catch.")
				end
			else
				doPlayerSendCancel(cid, "You need to be closer.")
			end
		end
	end
end
return true
end

 

Agora em /data/creaturescripts/scripts

 

goback.lua

--  _________________________   --
-- //                        \\ --
--[[    SCRIPT BY: TIGERX2    ]]--
-- \\________________________// --
-- PLEASE DON'T REMOVE CREDITS  --



dofile("./ball.lua")

function onLogout(cid, interval)
if isPlayer(cid) then
	if getPlayerStorageValue(cid, config.summoned) ~= -1 then
		setPlayerStorageValue(cid, config.summoned, -1)
	end
end
return true
end

 

actions.xml

	<!-- Pokeball -->
<action itemid="4863" event="script" value="catch.lua" allowfaruse="1"/>
<action itemid="2141;4873" event="script" value="goback.lua" allowfaruse="1"/>

 

creaturescripts.xml

	<!-- Go/Back -->
<event type="logout" name="goback" event="script" value="goback.lua"/>

 

adicione no login.lua

registerCreatureEvent(cid, "goback")

 

Gostou ? Rep +

Editado por tigerx2

Compartilhar este post


Link para o post
Oneshot    24
Oneshot

É um sistema bem interessante, pena que seja apenas para os Pokétibias em geral. O código está bem construído, vejo que você conseguiu otimizar bastante este sistema, diferente de outros scripts que vejo por aí.

 

Só uma observação, as funções string.trim e string.explode já existem nas bibliotecas de servidores por aí, por exemplo os baseados no The Forgotten Server.

 

Criatividade: 50

Organização: 70

Tamanho: 75

Utilidade: 50

 

Nota Final: 61 ou B

Remuneração Total: 45V$

Compartilhar este post


Link para o post
tigerx2    1
tigerx2
Só uma observação, as funções string.trim e string.explode já existem nas bibliotecas de servidores por aí, por exemplo os baseados no The Forgotten Server.

 

Sim, porém, no que eu usei como base não tinha, aí eu usei as funções do Colandus.

 

pena que seja apenas para os Pokétibias em geral

O sistema pode ser usado sim em Tibia, porém de outras formas (:

 

Ah, e obrigado por aprovar.

Compartilhar este post


Link para o post
iuniX    4
iuniX

Ficou bem legal, organizado e bonito. Tbm ficou bem piqueno... Parabens :]

Compartilhar este post


Link para o post
smowking    0
smowking

foda é ter que configurar os 151 pokemons :S

Compartilhar este post


Link para o post
Jhonts    0
Jhonts

ótimo sistema, simples, organizado, eque ajudará muitas pessoas que necessitavam desse sistema! Parabéns

Compartilhar este post


Link para o post
tigerx2    1
tigerx2

@smowking

Antes isso do que ter que criar 151 scripts para 151 pokemons .-.

 

@up

Valeu (y)

Compartilhar este post


Link para o post
matheuscidene    0
matheuscidene

Gente queria uma ajuda

quero colocar uma opção no NEW CHANNEL q se chama POKEMON: na hora q clica aparece no lado do (defalt...server log....) as fotos dos pokemon q estou carregando. no caso clicando na foto dele ele aparece... ao inves de ter q colocalo ali do lado da bag e tiralo toda hora q quiser q invoque ele....

isso tem no pokemon adventure

 

se puderem me ajudar agradeço

Compartilhar este post


Link para o post
dalvorsn    46
dalvorsn
Gente queria uma ajuda

quero colocar uma opção no NEW CHANNEL q se chama POKEMON: na hora q clica aparece no lado do (defalt...server log....) as fotos dos pokemon q estou carregando. no caso clicando na foto dele ele aparece... ao inves de ter q colocalo ali do lado da bag e tiralo toda hora q quiser q invoque ele....

isso tem no pokemon adventure

 

se puderem me ajudar agradeço

 

Creio que não dê para fazer em lua, procure um programador pois acredito que só possa ser feito perante alteração nas sources.

Compartilhar este post


Link para o post
matheuscidene    0
matheuscidene
Creio que não dê para fazer em lua, procure um programador pois acredito que só possa ser feito perante alteração nas sources.

 

Sabes onde consigo isso para tentar mexer

ou algum lugar q ensine???

Compartilhar este post


Link para o post
raphaelpaiva    0
raphaelpaiva

Alguem ajuda ja arrumei em todos lugares nos 2 goback, catch, portrait no arquivos xml, monster e etc.... fica dando este erro aqui

 

[30/06/2011 20:22:11] [Error - Action Interface]

[30/06/2011 20:22:11] data/actions/scripts/goback.lua:onUse

[30/06/2011 20:22:11] Description:

[30/06/2011 20:22:11] data/actions/scripts/goback.lua:313: attempt to index field '?' (a nil value)

[30/06/2011 20:22:11] stack traceback:

[30/06/2011 20:22:11] data/actions/scripts/goback.lua:313: in function <data/actions/scripts/goback.lua:199>

Compartilhar este post


Link para o post
iuniX    4
iuniX

Tem como mandar o arquivo para eu dar uma olhada?

Compartilhar este post


Link para o post
raphaelpaiva    0
raphaelpaiva
tem como mandar o arquivo para eu dar uma olhada?

 

tem sim,

 

local pokes = {
["bulbasaur"] = {level = 20, cons = 43, vida = 1200},
["ivysaur"] = {level = 40, cons = 86, vida = 2600},
["venusaur"] = {level = 85, cons = 189, vida = 5200},
["charmander"] = {level = 20, cons = 30, vida = 970},
["charmeleon"] = {level = 40, cons = 70, vida = 2900},
["charizard"] = {level = 85, cons = 140, vida = 5200},
["squirtle"] = {level = 20, cons = 47, vida = 1350},
["wartortle"] = {level = 40, cons = 93, vida = 2800},
["blastoise"] = {level = 85, cons = 194, vida = 5900},
["caterpie"] = {level = 1, cons = 13, vida = 300},
["metapod"] = {level = 10, cons = 30, vida = 1100},
["butterfree"] = {level = 30, cons = 56, vida = 2000},
["weedle"] = {level = 1, cons = 16, vida = 325},
["kakuna"] = {level = 10, cons = 32, vida = 900},
["beedrill"] = {level = 30, cons = 64, vida = 1900},
["pidgey"] = {level = 1, cons = 22, vida = 380},
["pidgeotto"] = {level = 20, cons = 47, vida = 1400},
["pidgeot"] = {level = 65, cons = 101, vida = 3800},
["rattata"] = {level = 1, cons = 19, vida = 350},
["shiny rattata"] = {level = 10, cons = 28, vida = 900},
["raticate"] = {level = 20, cons = 68, vida = 900},
["spearow"] = {level = 5, cons = 22, vida = 450},
["fearow"] = {level = 50, cons = 95, vida = 3300},
["ekans"] = {level = 12, cons = 27, vida = 600},
["arbok"] = {level = 30, cons = 87, vida = 2900},
["pikachu"] = {level = 20, cons = 32, vida = 900},
["raichu"] = {level = 50, cons = 99, vida = 3200},
["sandshrew"] = {level = 18, cons = 30, vida = 700},
["sandslash"] = {level = 55, cons = 96, vida = 3400},
["nidoran female"] = {level = 10, cons = 27, vida = 600},
["nidorina"] = {level = 25, cons = 58, vida = 2000},
["nidoqueen"] = {level = 65, cons = 146, vida = 4200},
["nidoran male"] = {level = 10, cons = 34, vida = 650},
["nidorino"] = {level = 25, cons = 74, vida = 2500},
["nidoking"] = {level = 65, cons = 169, vida = 4800},
["clefairy"] = {level = 10, cons = 30, vida = 600},
["clefable"] = {level = 35, cons = 90, vida = 2400},
["vulpix"] = {level = 20, cons = 32, vida = 680},
["ninetales"] = {level = 65, cons = 121, vida = 3400},
["jigglypuff"] = {level = 10, cons = 30, vida = 550},
["wigglytuff"] = {level = 42, cons = 95, vida = 2900},
["zubat"] = {level = 5, cons = 28, vida = 450},
["golbat"] = {level = 30, cons = 70, vida = 1900},
["oddish"] = {level = 5, cons = 21, vida = 340},
["gloom"] = {level = 18, cons = 51, vida = 1400},
["vileplume"] = {level = 50, cons = 96, vida = 3300},
["paras"] = {level = 1, cons = 40, vida = 850},
["parasect"] = {level = 50, cons = 110, vida = 3800},
["venonat"] = {level = 18, cons = 50, vida = 1350},
["venomoth"] = {level = 50, cons = 125, vida = 3850},
["diglett"] = {level = 5, cons = 45, vida = 900},
["dugtrio"] = {level = 35, cons = 110, vida = 3450},
["meowth"] = {level = 12, cons = 52, vida = 950},
["persian"] = {level = 25, cons = 85, vida = 2250},
["psyduck"] = {level = 12, cons = 50, vida = 950},
["golduck"] = {level = 55, cons = 150, vida = 4000},
["mankey"] = {level = 10, cons = 60, vida = 1050},
["primeape"] = {level = 45, cons = 155, vida = 4500},
["growlithe"] = {level = 20, cons = 60, vida = 1000},
["arcanine"] = {level = 80, cons = 170, vida = 6800},
["poliwag"] = {level = 5, cons = 20, vida = 400},
["poliwhirl"] = {level = 20, cons = 44, vida = 1200},
["poliwrath"] = {level = 65, cons = 138, vida = 4400},
["abra"] = {level = 15, cons = 20, vida = 620},
["kadabra"] = {level = 50, cons = 57, vida = 2500},
["alakazam"] = {level = 80, cons = 94, vida = 4000},
["machop"] = {level = 18, cons = 60, vida = 1100},
["machoke"] = {level = 40, cons = 110, vida = 3500},
["machamp"] = {level = 65, cons = 185, vida = 7500},
["bellsprout"] = {level = 5, cons = 24, vida = 420},
["weepinbell"] = {level = 18, cons = 49, vida = 1100},
["victreebel"] = {level = 50, cons = 117, vida = 4000},
["tentacool"] = {level = 12, cons = 52, vida = 1050},
["tentacruel"] = {level = 70, cons = 165, vida = 7050},
["geodude"] = {level = 15, cons = 30, vida = 700},
["graveler"] = {level = 40, cons = 82, vida = 3000},
["golem"] = {level = 70, cons = 111, vida = 6500},
["ponyta"] = {level = 20, cons = 60, vida = 1400},
["rapidash"] = {level = 60, cons = 160, vida = 5500},
["slowpoke"] = {level = 12, cons = 55, vida = 1200},
["slowbro"] = {level = 45, cons = 110, vida = 4600},
["magnemite"] = {level = 15, cons = 27, vida = 450},
["magneton"] = {level = 40, cons = 67, vida = 1750},
["farfetchd"] = {level = 40, cons = 95, vida = 3000},
["doduo"] = {level = 12, cons = 31, vida = 600},
["dodrio"] = {level = 45, cons = 78, vida = 2650},
["seel"] = {level = 20, cons = 50, vida = 1000},
["dewgong"] = {level = 65, cons = 135, vida = 5200},
["grimer"] = {level = 12, cons = 30, vida = 600},
["muk"] = {level = 30, cons = 85, vida = 2400},
["shellder"] = {level = 5, cons = 45, vida = 800},
["cloyster"] = {level = 65, cons = 155, vida = 5000},
["gastly"] = {level = 18, cons = 50, vida = 1000},
["haunter"] = {level = 45, cons = 105, vida = 3000},
["gengar"] = {level = 80, cons = 175, vida = 7000},
["onix"] = {level = 50, cons = 150, vida = 5300},
["drowzee"] = {level = 22, cons = 58, vida = 1150},
["hypno"] = {level = 50, cons = 100, vida = 4600},
["krabby"] = {level = 5, cons = 45, vida = 850},
["kingler"] = {level = 35, cons = 100, vida = 3250},
["voltorb"] = {level = 14, cons = 30, vida = 620},
["electrode"] = {level = 38, cons = 76, vida = 2000},
["exeggcute"] = {level = 8, cons = 42, vida = 800},
["exeggutor"] = {level = 48, cons = 98, vida = 4000},
["cubone"] = {level = 18, cons = 58, vida = 1200},
["marowak"] = {level = 45, cons = 105, vida = 3900},
["hitmonlee"] = {level = 60, cons = 140, vida = 5500},
["hitmonchan"] = {level = 60, cons = 140, vida = 5500},
["lickitung"] = {level = 45, cons = 100, vida = 4800},
["koffing"] = {level = 15, cons = 60, vida = 900},
["weezing"] = {level = 30, cons = 100, vida = 2800},
["rhyhorn"] = {level = 35, cons = 80, vida = 3800},
["rhydon"] = {level = 65, cons = 175, vida = 7000},
["chansey"] = {level = 60, cons = 130, vida = 7500},
["tangela"] = {level = 40, cons = 85, vida = 3500},
["kangaskhan"] = {level = 60, cons = 160, vida = 7000},
["horsea"] = {level = 5, cons = 19, vida = 300},
["seadra"] = {level = 45, cons = 68, vida = 2500},
["goldeen"] = {level = 10, cons = 50, vida = 950},
["seaking"] = {level = 25, cons = 80, vida = 2000},
["staryu"] = {level = 15, cons = 55, vida = 1050},
["starmie"] = {level = 45, cons = 95, vida = 3800},
["mr.mime"] = {level = 60, cons = 110, vida = 5500},
["scyther"] = {level = 70, cons = 145, vida = 6500},
["jynx"] = {level = 65, cons = 125, vida = 6000},
["electabuzz"] = {level = 70, cons = 150, vida = 6800},
["magmar"] = {level = 70, cons = 160, vida = 7200},
["pinsir"] = {level = 42, cons = 95, vida = 4000},
["tauros"] = {level = 40, cons = 100, vida = 4200},
["magikarp"] = {level = 1, cons = 5, vida = 120},
["shiny magikarp"] = {level = 10, cons = 20, vida = 280},
["gyarados"] = {level = 75, cons = 195, vida = 7800},
["lapras"] = {level = 70, cons = 140, vida = 7000},
["ditto"] = {level = 40, cons = 100, vida = 4000},
["eevee"] = {level = 20, cons = 55, vida = 1500},
["vaporeon"] = {level = 55, cons = 110, vida = 4500},
["jolteon"] = {level = 55, cons = 110, vida = 4500},
["flareon"] = {level = 55, cons = 110, vida = 4500},
["porygon"] = {level = 45, cons = 10, vida = 100},
["omanyte"] = {level = 20, cons = 55, vida = 1300},
["omastar"] = {level = 70, cons = 140, vida = 6000},
["kabuto"] = {level = 20, cons = 55, vida = 1300},
["kabutops"] = {level = 70, cons = 150, vida = 6500},
["aerodactyl"] = {level = 100, cons = 190, vida = 8000},
["snorlax"] = {level = 85, cons = 200, vida = 9500},
["articuno"] = {level = 120, cons = 200, vida = 11000},
["zapdos"] = {level = 120, cons = 200, vida = 11000},
["moltres"] = {level = 120, cons = 200, vida = 11000},
["dratini"] = {level = 10, cons = 55, vida = 1200},
["dragonair"] = {level = 70, cons = 165, vida = 5600},
["dragonite"] = {level = 100, cons = 250, vida = 10800},
["mewtwo"] = {level = 100, cons = 175, vida = 8500},
["mew"] = {level = 100, cons = 125, vida = 7200},
["shiny charizard"] = {level = 100, cons = 140, vida = 7200},
}
local msgunica = true
local msgunicago1, msgunicaback1 = "go, doka!", "come back, doka!"
local msgunicago2, msgunicaback2 = "let's do it, doka!", "thanks for helping, doka!"
local msgunicago3, msgunicaback3 = "i choose you, doka!", "that's enough, come back!"
local msgunicago4, msgunicaback4 = "i need your help, doka!", "you were great, doka!"
local msgunicago5, msgunicaback5 = "let's fight, doka!", "excellent work, doka!"
local msgunicago6, msgunicaback6 = "it's battle time, doka!", "well done, doka!"
function onuse(cid, item, frompos, item2, topos)
if #getcreaturesummons(cid) >= 1 and getplayerstoragevalue(getcreaturesummons(cid)[1], 33) >= 1 then
return true
end
local random2 = math.random(1,6)
if random2 == 1 then
msgunicaback = msgunicaback1
elseif random2 == 2 then
msgunicaback = msgunicaback2
elseif random2 == 3 then
msgunicaback = msgunicaback3
elseif random2 == 4 then
msgunicaback = msgunicaback4
elseif random2 == 5 then
msgunicaback = msgunicaback5
elseif random2 == 6 then
msgunicaback = msgunicaback6
end
local random = math.random(1,6)
if random == 1 then
msgunicago = msgunicago1
elseif random == 2 then
msgunicago = msgunicago2
elseif random == 3 then
msgunicago = msgunicago3
elseif random == 4 then
msgunicago = msgunicago4
elseif random == 5 then
msgunicago = msgunicago5
elseif random == 6 then
msgunicago = msgunicago6
end
if item.itemid == 2222 or item.itemid == 2223 then
gobackeff = 10
elseif item.itemid == 2220 or item.itemid == 2221 then
gobackeff = 191
elseif item.itemid == 2651 or item.itemid == 2652 then
gobackeff = 189
elseif item.itemid == 2653 or item.itemid == 2654 then
gobackeff = 190
elseif item.itemid == 2655 or item.itemid == 2656 then
gobackeff = 195
end
local effect = gobackeff
if item.itemid == 2223 or item.itemid == 2221 or item.itemid == 2652 or item.itemid == 2654 or item.itemid == 2656 then
if #getcreaturesummons(cid) >= 1 then
local z = getcreaturesummons(cid)[1]
local pokename = getcreaturename(z)
local mbk = msgunicaback:gsub("doka", pokename)
if getitemattribute(item.uid, "poke"):find(getcreaturename(z)) then
dotransformitem(item.uid, item.itemid-1)
docreaturesay(cid, mbk, talktype_say)
local summom = getcreaturesummons(cid)
local maxh = pokes[getcreaturename(summom[1])].vida
local pct2 = ((getcreaturehealth(summom[1])) / (getcreaturemaxhealth(summom[1])))
local vids = ((getcreaturehealth(summom[1])) - 2)
docreatureaddhealth(summom[1], -vids)
setcreaturemaxhealth(summom[1], maxh)
docreatureaddhealth(summom[1], ((maxh) * (pct2)))
doitemsetattribute(item.uid, "poke", getitemattribute(item.uid, "poke"):sub(1, findletter(getitemattribute(item.uid, "poke"), ".")) .. " hp = ["..getcreaturehealth(z).."/"..getcreaturemaxhealth(z).."]")
setplayerstoragevalue(cid, 61204, 0)
setplayerstoragevalue(cid, 2, 0)
dosendmagiceffect(getcreatureposition(z), effect)
doremovecreature(z)
return true
end
end
elseif item.itemid == 2222 or item.itemid == 2220  or item.itemid == 2651  or item.itemid == 2653  or item.itemid == 2655 then
if item.uid ~= getplayerslotitem(cid, const_slot_feet).uid then
doplayersendcancel(cid, "you must put your pokeball in the correct place!")
return true
end

if not cansummon(cid) then
return doplayersenddefaultcancel(cid, returnvalue_notenoughroom)
end
if getplayerstoragevalue(cid, 63215) >= 1 then
return doplayersendcancel(cid, "you can't use pokeball while surfing.")
end
if getplayerstoragevalue(cid, 62314) >= 1 then
return doplayersendcancel(cid, "you can't use pokeball while flying.")
end
if #getcreaturesummons(cid) >= 1 then
return doplayersendcancel(cid, "you have already summoned a pokemon.")
end
for i,x in pairs(pokes) do
if i == getitemattribute(item.uid, "poke"):sub(9, findletter(getitemattribute(item.uid, "poke"), "'")-1) then
if getplayerlevel(cid) < x.level then
doplayersendcancel(cid, "you need level "..x.level.." or higher to use this pokemon.")
return true
end
local removed = docreateitem(1285, 1, getthingpos(cid))
dosummonmonster(cid, i)
local pk = getcreaturesummons(cid)[1]
doteleportthing(pk, getclosestfreetile(pk, getthingpos(cid)), false)
doremoveitem(removed, 1)
docreaturesetlookdir(pk, 2)
local maxh = pokes[getcreaturename(pk)].vida
local levellife = ((getplayerlevel(cid)) * (pokes[getcreaturename(pk)].cons))
local health = tonumber(getitemattribute(item.uid, "poke"):match("%[(.-)/"))
doconvincecreature(cid, pk)
docreatureaddhealth(pk, health-maxh)
local pct = ((getcreaturehealth(pk)) / (getcreaturemaxhealth(pk)))
local vidis = (getcreaturehealth(pk))
setcreaturemaxhealth(pk, ((maxh) + (levellife)))
docreatureaddhealth(pk, 2)
docreatureaddhealth(pk, -vidis)
docreatureaddhealth(pk, ((getcreaturemaxhealth(pk)) * (pct)) - 2)
dotransformitem(item.uid, item.itemid+1)
local pokename = getcreaturename(getcreaturesummons(cid)[1])
local mgo = msgunicago:gsub("doka", pokename)
docreaturesay(cid, mgo, talktype_say)
doitemsetattribute(item.uid, "poke", getitemattribute(item.uid, "poke"):sub(1, findletter(getitemattribute(item.uid, "poke"), ".")))
dosendmagiceffect(getcreatureposition(pk), effect)
setplayerstoragevalue(cid, 61204, 1)
registercreatureevent(pk, "diepoke")
registercreatureevent(pk, "exp")
break
end
end
end
return true
end

Editado por iuniX

Compartilhar este post


Link para o post
iuniX    4
iuniX

30/06/2011 20:22:11] data/actions/scripts/goback.lua:313

 

Como da erro na linha 313 se o arquivo só tem 280?

Verifica se tu ta registrando o arquivo certo na tag

Compartilhar este post


Link para o post
raphaelpaiva    0
raphaelpaiva

Foi mau mandei o errado esse é o certo, pensei a mesma coisa erro na linha 313, mais que erro sera????

 

ESTA DESSE JEITO NO MEU OT

 

local pokes = {
["Bulbasaur"] = {level = 20, cons = 43, vida = 1200},
["Ivysaur"] = {level = 40, cons = 86, vida = 2600},
["Venusaur"] = {level = 85, cons = 189, vida = 5200},
["Charmander"] = {level = 20, cons = 30, vida = 970},
["Charmeleon"] = {level = 40, cons = 70, vida = 2900},
["Charizard"] = {level = 85, cons = 140, vida = 5200},
["Squirtle"] = {level = 20, cons = 47, vida = 1350},
["Wartortle"] = {level = 40, cons = 93, vida = 2800},
["Blastoise"] = {level = 85, cons = 194, vida = 5900},
["Caterpie"] = {level = 5, cons = 13, vida = 300},
["Metapod"] = {level = 10, cons = 30, vida = 1100},
["Butterfree"] = {level = 30, cons = 56, vida = 2000},
["Weedle"] = {level = 5, cons = 16, vida = 325},
["Kakuna"] = {level = 10, cons = 32, vida = 900},
["Beedrill"] = {level = 30, cons = 64, vida = 1900},
["Pidgey"] = {level = 5, cons = 22, vida = 380},
["Pidgeotto"] = {level = 20, cons = 47, vida = 1400},
["Pidgeot"] = {level = 65, cons = 101, vida = 3800},
["Rattata"] = {level = 1, cons = 19, vida = 350},
["Shiny Rattata"] = {level = 10, cons = 28, vida = 900},
["Raticate"] = {level = 20, cons = 68, vida = 900},
["Spearow"] = {level = 5, cons = 22, vida = 450},
["Fearow"] = {level = 50, cons = 95, vida = 3300},
["Ekans"] = {level = 15, cons = 27, vida = 600},
["Arbok"] = {level = 30, cons = 87, vida = 2900},
["Pikachu"] = {level = 20, cons = 32, vida = 900},
["Raichu"] = {level = 50, cons = 99, vida = 3200},
["Sandshrew"] = {level = 18, cons = 30, vida = 700},
["Sandslash"] = {level = 55, cons = 96, vida = 3400},
["Nidoran Female"] = {level = 10, cons = 27, vida = 600},
["Nidorina"] = {level = 25, cons = 58, vida = 2000},
["Nidoqueen"] = {level = 65, cons = 146, vida = 4200},
["Nidoran Male"] = {level = 10, cons = 34, vida = 650},
["Nidorino"] = {level = 25, cons = 74, vida = 2500},
["Nidoking"] = {level = 65, cons = 169, vida = 4800},
["Clefairy"] = {level = 10, cons = 30, vida = 600},
["Clefable"] = {level = 35, cons = 90, vida = 2400},
["Vulpix"] = {level = 20, cons = 32, vida = 680},
["Ninetales"] = {level = 65, cons = 121, vida = 3400},
["Jigglypuff"] = {level = 10, cons = 30, vida = 550},
["Wigglytuff"] = {level = 42, cons = 95, vida = 2900},
["Zubat"] = {level = 5, cons = 28, vida = 450},
["Golbat"] = {level = 35, cons = 70, vida = 1900},
["Oddish"] = {level = 5, cons = 21, vida = 340},
["Gloom"] = {level = 25, cons = 51, vida = 1400},
["Vileplume"] = {level = 50, cons = 96, vida = 3300},
["Paras"] = {level = 5, cons = 40, vida = 850},
["Parasect"] = {level = 50, cons = 110, vida = 3800},
["Venonat"] = {level = 18, cons = 50, vida = 1350},
["Venomoth"] = {level = 50, cons = 125, vida = 3850},
["Diglett"] = {level = 10, cons = 45, vida = 900},
["Dugtrio"] = {level = 35, cons = 110, vida = 3500},
["Meowth"] = {level = 12, cons = 52, vida = 950},
["Persian"] = {level = 25, cons = 85, vida = 2250},
["Psyduck"] = {level = 12, cons = 50, vida = 950},
["Golduck"] = {level = 55, cons = 150, vida = 4000},
["Mankey"] = {level = 10, cons = 60, vida = 1050},
["Primeape"] = {level = 45, cons = 155, vida = 4500},
["Growlithe"] = {level = 20, cons = 60, vida = 1000},
["Arcanine"] = {level = 80, cons = 170, vida = 6800},
["Poliwag"] = {level = 5, cons = 20, vida = 400},
["Poliwhirl"] = {level = 20, cons = 44, vida = 1200},
["Poliwrath"] = {level = 65, cons = 138, vida = 4400},
["Abra"] = {level = 15, cons = 20, vida = 620},
["Kadabra"] = {level = 50, cons = 57, vida = 2500},
["Alakazam"] = {level = 80, cons = 94, vida = 4000},
["Machop"] = {level = 18, cons = 60, vida = 1100},
["Machoke"] = {level = 40, cons = 110, vida = 3500},
["Machamp"] = {level = 65, cons = 185, vida = 7500},
["Bellsprout"] = {level = 5, cons = 24, vida = 420},
["Weepinbell"] = {level = 25, cons = 49, vida = 1100},
["Victreebel"] = {level = 50, cons = 117, vida = 4000},
["Tentacool"] = {level = 15, cons = 52, vida = 1050},
["Tentacruel"] = {level = 70, cons = 165, vida = 7050},
["Geodude"] = {level = 15, cons = 30, vida = 700},
["Graveler"] = {level = 40, cons = 82, vida = 3000},
["Golem"] = {level = 70, cons = 111, vida = 6500},
["Ponyta"] = {level = 25, cons = 60, vida = 1400},
["Rapidash"] = {level = 60, cons = 160, vida = 5500},
["Slowpoke"] = {level = 10, cons = 55, vida = 1200},
["Slowbro"] = {level = 45, cons = 110, vida = 4600},
["Magnemite"] = {level = 15, cons = 27, vida = 450},
["Magneton"] = {level = 40, cons = 67, vida = 1750},
["Farfetchd"] = {level = 40, cons = 95, vida = 3000},
["Doduo"] = {level = 12, cons = 31, vida = 600},
["Dodrio"] = {level = 45, cons = 78, vida = 2650},
["Seel"] = {level = 20, cons = 50, vida = 1000},
["Dewgong"] = {level = 65, cons = 135, vida = 5200},
["Grimer"] = {level = 12, cons = 30, vida = 600},
["Muk"] = {level = 30, cons = 85, vida = 2400},
["Shellder"] = {level = 10, cons = 45, vida = 800},
["Cloyster"] = {level = 65, cons = 155, vida = 5000},
["Gastly"] = {level = 18, cons = 50, vida = 1000},
["Haunter"] = {level = 45, cons = 105, vida = 3000},
["Gengar"] = {level = 80, cons = 175, vida = 7000},
["Onix"] = {level = 50, cons = 150, vida = 5300},
["Drowzee"] = {level = 22, cons = 58, vida = 1150},
["Hypno"] = {level = 50, cons = 100, vida = 4600},
["Krabby"] = {level = 5, cons = 45, vida = 850},
["Kingler"] = {level = 35, cons = 100, vida = 3250},
["Voltorb"] = {level = 10, cons = 30, vida = 620},
["Electrode"] = {level = 38, cons = 76, vida = 2000},
["Exeggcute"] = {level = 10, cons = 42, vida = 800},
["Exeggutor"] = {level = 48, cons = 98, vida = 4000},
["Cubone"] = {level = 20, cons = 58, vida = 1200},
["Marowak"] = {level = 45, cons = 105, vida = 3900},
["Hitmonlee"] = {level = 60, cons = 205, vida = 9250},
["Hitmonchan"] = {level = 60, cons = 200, vida = 10500},
["Lickitung"] = {level = 45, cons = 100, vida = 4800},
["Koffing"] = {level = 15, cons = 60, vida = 900},
["Weezing"] = {level = 30, cons = 100, vida = 2800},
["Rhyhorn"] = {level = 35, cons = 80, vida = 3800},
["Rhydon"] = {level = 65, cons = 175, vida = 7000},
["Chansey"] = {level = 60, cons = 130, vida = 7500},
["Tangela"] = {level = 50, cons = 85, vida = 3500},
["Kangaskhan"] = {level = 60, cons = 160, vida = 7000},
["Horsea"] = {level = 5, cons = 19, vida = 300},
["Seadra"] = {level = 45, cons = 68, vida = 2500},
["Goldeen"] = {level = 10, cons = 50, vida = 950},
["Seaking"] = {level = 25, cons = 80, vida = 2000},
["Staryu"] = {level = 15, cons = 55, vida = 1050},
["Starmie"] = {level = 45, cons = 95, vida = 3800},
["Mr.mime"] = {level = 60, cons = 110, vida = 5500},
["Scyther"] = {level = 70, cons = 145, vida = 6500},
["Jynx"] = {level = 65, cons = 125, vida = 6000},
["Electabuzz"] = {level = 70, cons = 150, vida = 6800},
["Magmar"] = {level = 70, cons = 160, vida = 7200},
["Pinsir"] = {level = 42, cons = 95, vida = 4000},
["Tauros"] = {level = 40, cons = 100, vida = 4200},
["Magikarp"] = {level = 1, cons = 5, vida = 120},
["Shiny Magikarp"] = {level = 10, cons = 30, vida = 240},
["Gyarados"] = {level = 75, cons = 195, vida = 7800},
["Lapras"] = {level = 70, cons = 140, vida = 7000},
["Ditto"] = {level = 40, cons = 100, vida = 4000},
["Eevee"] = {level = 20, cons = 55, vida = 1500},
["Vaporeon"] = {level = 55, cons = 110, vida = 4500},
["Jolteon"] = {level = 55, cons = 110, vida = 4500},
["Flareon"] = {level = 55, cons = 110, vida = 4500},
["Porygon"] = {level = 45, cons = 10, vida = 100},
["Omanyte"] = {level = 20, cons = 55, vida = 1300},
["Omastar"] = {level = 70, cons = 140, vida = 6000},
["Kabuto"] = {level = 20, cons = 55, vida = 1300},
["Kabutops"] = {level = 70, cons = 150, vida = 6500},
["Aerodactyl"] = {level = 100, cons = 190, vida = 8000},
["Snorlax"] = {level = 85, cons = 200, vida = 9500},
["Articuno"] = {level = 120, cons = 200, vida = 11000},
["Zapdos"] = {level = 120, cons = 200, vida = 11000},
["Moltres"] = {level = 120, cons = 200, vida = 11000},
["Dratini"] = {level = 10, cons = 55, vida = 1200},
["Dragonair"] = {level = 70, cons = 165, vida = 5600},
["Dragonite"] = {level = 100, cons = 250, vida = 10800},
["Mewtwo"] = {level = 100, cons = 175, vida = 8500},
["Mew"] = {level = 100, cons = 125, vida = 7200},
["Shiny Charizard"] = {level = 100, cons = 280, vida = 7200},
["Shiny Paras"] = {level = 15, cons = 120, vida = 1400},
["Shiny Oddish"] = {level = 15, cons = 65, vida = 990},
["Shiny Zubat"] = {level = 15, cons = 85, vida = 1200},
["Shiny Tentacool"] = {level = 20, cons = 140, vida = 0},
["Shiny Tentacruel"] = {level = 100, cons = 140, vida = 0},
["Shiny Raticate"] = {level = 35, cons = 140, vida = 0},
["Shiny Krabby"] = {level = 20, cons = 140, vida = 0},
["Shiny Kingler"] = {level = 50, cons = 140, vida = 0},
["Shiny Horsea"] = {level = 15, cons = 140, vida = 0},
["Shiny Seadra"] = {level = 60, cons = 140, vida = 0},
["Shiny Gyarados"] = {level = 120, cons = 200, vida = 18000},
["Shiny Parasect"] = {level = 60, cons = 140, vida = 0},
["Shiny Scyther"] = {level = 100, cons = 140, vida = 0},
["Shiny Electabuz"] = {level = 100, cons = 140, vida = 0},
["Shiny Jynx"] = {level = 80, cons = 140, vida = 0},
["Shiny Electrode"] = {level = 50, cons = 140, vida = 0},
["Shiny Voltorb"] = {level = 25, cons = 140, vida = 0},
["Shiny Raichu"] = {level = 70, cons = 140, vida = 0},
["ShinyVenonat"] = {level = 25, cons = 140, vida = 0},
["Shiny Venomoth"] = {level = 60, cons = 140, vida = 0},
["Shiny Beedril"] = {level = 35, cons = 140, vida = 0},
["Shiny Butterfree"] = {level = 40, cons = 140, vida = 0},
["Shiny Venusaur"] = {level = 100, cons = 140, vida = 0},
["Shiny Blastoise"] = {level = 100, cons = 140, vida = 0},
["Shiny Farfetchd"] = {level = 50, cons = 140, vida = 0},
["Shiny Grimer"] = {level = 20, cons = 140, vida = 0},
["Shiny Muk"] = {level = 50, cons = 140, vida = 0},
["Shiny Growlithe"] = {level = 30, cons = 140, vida = 0},
["Shiny Arcanine"] = {level = 100, cons = 140, vida = 0},
["Shiny Dratini"] = {level = 35, cons = 140, vida = 0},
["Shiny Abra"] = {level = 50, cons = 140, vida = 0},
["Elite Hitmonlee"] = {level = 100, cons = 250, vida = 16500},
["Elite Hitmonchan"] = {level = 100, cons = 240, vida = 17500},
}
local msgunica = true
local msgunicago1, msgunicaback1 = "Go, doka!", "Come back, doka!"
local msgunicago2, msgunicaback2 = "Let's do it, doka!", "Thanks for helping, doka!"
local msgunicago3, msgunicaback3 = "I choose you, doka!", "That's enough, come back!"
local msgunicago4, msgunicaback4 = "I need your help, doka!", "You were great, doka!"
local msgunicago5, msgunicaback5 = "Let's fight, doka!", "Excellent work, doka!"
local msgunicago6, msgunicaback6 = "It's battle time, doka!", "Well done, doka!"
function onUse(cid, item, frompos, item2, topos)
for a, b in pairs(ginasios) do
if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
end
if #getCreatureSummons(cid) >= 1 and getPlayerStorageValue(getCreatureSummons(cid)[1], 33) >= 1 then
return true
end
local random2 = math.random(1,6)
if random2 == 1 then
msgunicaback = msgunicaback1
elseif random2 == 2 then
msgunicaback = msgunicaback2
elseif random2 == 3 then
msgunicaback = msgunicaback3
elseif random2 == 4 then
msgunicaback = msgunicaback4
elseif random2 == 5 then
msgunicaback = msgunicaback5
elseif random2 == 6 then
msgunicaback = msgunicaback6
end
local random = math.random(1,6)
if random == 1 then
msgunicago = msgunicago1
elseif random == 2 then
msgunicago = msgunicago2
elseif random == 3 then
msgunicago = msgunicago3
elseif random == 4 then
msgunicago = msgunicago4
elseif random == 5 then
msgunicago = msgunicago5
elseif random == 6 then
msgunicago = msgunicago6
end
if item.itemid == 2222 or item.itemid == 2223 then
gobackeff = 10
elseif item.itemid == 2220 or item.itemid == 2221 then
gobackeff = 191
elseif item.itemid == 2651 or item.itemid == 2652 then
gobackeff = 189
elseif item.itemid == 2653 or item.itemid == 2654 then
gobackeff = 190
elseif item.itemid == 2655 or item.itemid == 2656 then
gobackeff = 195
end
local effect = gobackeff
if item.itemid == 2223 or item.itemid == 2221 or item.itemid == 2652 or item.itemid == 2654 or item.itemid == 2656 then
if #getCreatureSummons(cid) >= 1 then
local z = getCreatureSummons(cid)[1]
local pokename = getCreatureName(z)
local mbk = msgunicaback:gsub("doka", pokename)
if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then
doTransformItem(item.uid, item.itemid-1)
doCreatureSay(cid, mbk, TALKTYPE_SAY)
local summom = getCreatureSummons(cid)
local maxh = pokes[getCreatureName(summom[1])].vida
local pct2 = ((getCreatureHealth(summom[1])) / (getCreatureMaxHealth(summom[1])))
local vids = ((getCreatureHealth(summom[1])) - 2)
doCreatureAddHealth(summom[1], -vids)
setCreatureMaxHealth(summom[1], maxh)
doCreatureAddHealth(summom[1], ((maxh) * (pct2)))
doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]")
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 2, 0)
doSendMagicEffect(getCreaturePosition(z), effect)
doRemoveCreature(z)
return true
end
end
elseif item.itemid == 2222 or item.itemid == 2220  or item.itemid == 2651  or item.itemid == 2653  or item.itemid == 2655 then
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
return TRUE
end

if not canSummon(cid) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end
if getPlayerStorageValue(cid, 63215) >= 1 then
return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
end
if getPlayerStorageValue(cid, 62314) >= 1 then
return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
end
if #getCreatureSummons(cid) >= 1 then
return doPlayerSendCancel(cid, "You have already summoned a pokemon.")
end
for i,x in pairs(pokes) do
if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then
if getPlayerLevel(cid) < x.level then
doPlayerSendCancel(cid, "You need level "..x.level.." or higher to use this pokemon.")
return true
end
local removed = doCreateItem(1285, 1, getThingPos(cid))
doSummonMonster(cid, i)
local pk = getCreatureSummons(cid)[1]
doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), false)
doRemoveItem(removed, 1)
doCreatureSetLookDir(pk, 2)
local maxh = pokes[getCreatureName(pk)].vida
local levellife = ((getPlayerLevel(cid)) * (pokes[getCreatureName(pk)].cons))
local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))
doConvinceCreature(cid, pk)
doCreatureAddHealth(pk, health-maxh)
local pct = ((getCreatureHealth(pk)) / (getCreatureMaxHealth(pk)))
local vidis = (getCreatureHealth(pk))
setCreatureMaxHealth(pk, ((maxh) + (levellife)))
doCreatureAddHealth(pk, 2)
doCreatureAddHealth(pk, -vidis)
doCreatureAddHealth(pk, ((getCreatureMaxHealth(pk)) * (pct)) - 2)
doTransformItem(item.uid, item.itemid+1)
local pokename = getCreatureName(getCreatureSummons(cid)[1])
local mgo = msgunicago:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_SAY)
doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")))
doSendMagicEffect(getCreaturePosition(pk), effect)
setPlayerStorageValue(cid, 61204, 1)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
break
end
end
end
return TRUE
end

Editado por raphaelpaiva
adicionar mais coisas pra nao da flood

Compartilhar este post


Link para o post
dalvorsn    46
dalvorsn

#up

Porque está tudo minúsculo?

Compartilhar este post


Link para o post
raphaelpaiva    0
raphaelpaiva
#up

Porque está tudo minúsculo?

 

Acredito que seja o site QUE DEIXA TUDO MINISCULO

Compartilhar este post


Link para o post
Ribas1574    1
Ribas1574

muito bom, aprovadíssimo =)))

Compartilhar este post


Link para o post
iuniX    4
iuniX

raphaelpaiva, Verifique se os nomes dos pokes estão certos. O Script está dando index errado na hora de pegar o nome do poke.

Compartilhar este post


Link para o post
eduardbean    0
eduardbean

pow aqui ta dando debug quando eu abro a ball e quando eu fexo mais o dragon sai e volta certinho adorei esse catch valeu mesmo manoloo

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×