Ir para conteúdo

[Ajuda ] Npc Nurse Só Cura 1 Pokemon.


elfkadu

Posts Recomendados

SCRIPT TIRADO DO SERVER POKEMON FLASH


JA TENTEI PEGAR O HEAL DE VARIOS OUTROS OTS MAS NENHUM FUNCIONOU.

 

aki esta o script

 

 

local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false

 

function onThingMove(creature, thing, oldpos, oldstackpos, item, itemEx)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

function getPokemonMaxLife(name)

local file = io.open('data/monster/monsters.xml','r')

local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>')

file:close()

local data = io.open('data/monster/'..(arquivo or ''),'r')

if not data then

return 100

end

local maximo = data:read(-1):match('max%s*=%s*"(%d+)"')

data:close()

return maximo

end

 

function onCreatureTurn(creature)

 

end

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

if (msgcontains(msg, 'hi')) and getDistanceToCreature(cid) < 4 then

if getPlayerStorageValue(cid, 25000) == 5 then

return selfSay('Você está montando.')

end

if getPlayerStorageValue(cid, 23000) == 5 then

return selfSay('Você está voando.')

end

if #getCreatureSummons(cid) >= 1 then

selfSay('Voce precisa botar seus pokemons dentro da pokebola.')

focus = 0

talk_start = 0

return TRUE

end

 

local idballs = {

[2532] = {2531},

[2653] = {2557},

[2654] = {2525},

[2652] = {2524},

[2195] = {2523},

[2531] = {2532},

[2557] = {2653},

[2525] = {2654},

[2524] = {2652},

[2523] = {2195},

}

 

local balls = idballs[getPlayerSlotItem(cid,8).itemid]

if balls == nil then

return selfSay('Coloque seu pokemon slot da Pokeball para ele ser curado!!')

end

 

 

local nome = getItemAttribute(getPlayerSlotItem(cid,8).uid,"name")

local poke_name1 = nome:match('(.-) Pokeball')

local poke_name2 = nome:match('(.-) Superball')

local poke_name3 = nome:match('(.-) Ultraball')

local poke_name4 = nome:match('(.-) Greatball')

local poke_name5 = nome:match('(.-) Masterball')

 

if poke_name1 == nil and poke_name2 == nil and poke_name3 == nil and poke_name4 == nil and poke_name5 == nil then

return doPlayerSendCancel(cid,"coloque no lugar correto")

end

 

if poke_name1 ~= nil then

poke_name = poke_name1

elseif poke_name2 ~= nil then

poke_name = poke_name2

elseif poke_name3 ~= nil then

poke_name = poke_name3

elseif poke_name4 ~= nil then

poke_name = poke_name4

elseif poke_name5 ~= nil then

poke_name = poke_name5

end

 

doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getPokemonMaxLife(poke_name))

selfSay("You is better, Let's go Battle!!")

doTransformItem(getPlayerSlotItem(cid, 8).uid, balls[1])

local hp = getCreatureMaxHealth(cid)

doCreatureAddHealth(cid, hp)

 

focus = 0

talk_start = 0

end

end

 

function onCreatureChangeOutfit(creature)

 

end

 

OBRIGADO PELA AJUDA

Link para o comentário
Compartilhar em outros sites

usa esse:

 

local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false

local talkState = {}
local states = {'1', '2', '3', '4', '5', '6'}
local store = {1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,  1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151}
local unlock = {}
local pokeballs = {'2222', '2224'}
local ultraballs = {'2220', '2227'}

function onThingMove(creature, thing, oldpos, oldstackpos)



end





function onCreatureAppear(creature)



end





function onCreatureDisappear(cid, pos)
if focus == cid then

selfSay('Good bye sir!')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end



function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if((msgcontains(msg, 'hi') or msgcontains(msg, 'heal') or msgcontains(msg, 'help')) and (getDistanceToCreature(cid) <= 3)) then
	if exhaustion.get(cid, 9211) then
selfSay('Please wait a few moment before asking me to heal your pokemons again!')
return true
   end
exhaustion.set(cid, 9211, 5)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(pokeballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local maxh = tonumber(getItemAttribute(feet.uid, "poke"):match("/(.+)]"))
doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))
doTransformItem(feet.uid, 2222)
end
if isInArray(ultraballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
local maxh = tonumber(getItemAttribute(feet.uid, "poke"):match("/(.+)]"))
doItemSetAttribute(feet.uid, "poke", getItemAttribute(feet.uid, "poke"):sub(1, findLetter(getItemAttribute(feet.uid, "poke"), "[")) .. maxh .. getItemAttribute(feet.uid, "poke"):sub(findLetter(getItemAttribute(feet.uid, "poke"), "/")))
doTransformItem(feet.uid, 2220)
end
	local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
		if #getCreatureSummons(cid) >= 1 then
		local jui = getCreatureSummons(cid)[1]
		doCreatureAddHealth(jui, getCreatureMaxHealth(jui)-getCreatureHealth(jui))
		doSendMagicEffect(getThingPos(jui), 12)
		end
		local items = getItemsInContainerById(bp.uid, 2224)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		doTransformItem(uid, 2222)
		end
		local items = getItemsInContainerById(bp.uid, 2227) 
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		doTransformItem(uid, 2220)
		end
		local items = getItemsInContainerById(bp.uid, 2222) 
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		end
		local items = getItemsInContainerById(bp.uid, 2220) 
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		end
selfSay('There you go! You and your pokemons are healthy again.')
end
end

function onThink()

if focus ~= 0 then
a, b, c = selfGetPosition()
if c ~= getThingPos(focus).z then
focus = 0
end
end

if focus ~= 0 then
if getDistanceToCreature(focus) > 3 then
focus = 0
end
end

return TRUE
end

Link para o comentário
Compartilhar em outros sites

DEU ESSE ERRO

 

VARIOS QUE TENTEI DEU O MESMO ERRO

 

[09/02/2011 17:57:22] [Error - Npc interface]

[09/02/2011 17:57:22] data/npc/scripts/heal.lua:onCreatureSay

[09/02/2011 17:57:22] Description:

[09/02/2011 17:57:22] data/npc/scripts/heal.lua:102: attempt to call global 'getItemsInContainerById' (a nil value)

[09/02/2011 17:57:22] stack traceback:

[09/02/2011 17:57:22] data/npc/scripts/heal.lua:102: in function <data/npc/scripts/heal.lua:73>

Link para o comentário
Compartilhar em outros sites

Antes de tudo, va na pasta data/lib e adicione um script.lua com o nome de pokeLib e adicione isso:

pokein, pokeout = 2222,2223

function doRemoveTile(pos)-- Script by mock
   pos.stackpos = 0
   local sqm = getTileThingByPos(pos)
   doRemoveItem(sqm.uid,1)
end


function doCreateTile(id,pos) -- By mock
   doAreaCombatHealth(0,0,pos,0,0,0,CONST_ME_NONE)
   doCreateItem(id,1,pos)
end

function getPosDirs(p, dir) -- By MatheusMkalo
   return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end

function doItem(pos,a,d)-- Script by mock
       doCreateTile(460,pos)
       pos.stackpos = 0
       local c = getTileThingByPos(pos)
       doItemSetAttribute(c.uid, "aid", a)
end

function getDescription(uid)
   for i,x in pairs(getItemDescriptions(uid)) do
       if i == "special" then
           return x
       end
   end
end

function findLetter(string, letter)
   for i = 1, #string do
       if string:sub(i, i) == letter then
           return i
       end
   end
end

function isWalkable(pos, creature, proj, pz)-- by Nord
   if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
   if getTopCreature(pos).uid > 0 and creature then return false end
   if getTileInfo(pos).protection and pz then return false, true end
   local n = not proj and 3 or 2
   for i = 0, 255 do
       pos.stackpos = i
       local tile = getTileThingByPos(pos)
       if tile.itemid ~= 0 and not isCreature(tile.uid) then
           if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
               return false
           end
       end
   end
   return true
end

function getPosDirs(p, dir)
   return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
end

function canSummon(cid)
   local pos = getCreaturePosition(cid)
   local state = false
   for i = 1, 8 do
       if isWalkable(getPosDirs(getCreaturePosition(cid), i)) then
           state = true
       end
   end
return state
end

function isPlayerSummon(cid, uid)
   if getCreatureMaster(uid) == cid then
       return TRUE
   end
return FALSE
end

function getSummonLifes(cid)
   for _,x in pairs(getCreatureSummons(cid)) do
       return getCreatureHealth(x), getCreatureMaxHealth(x)
   end
end

function getItemsInContainerById(container, itemid) -- Function By Kydrai
   local items = {}
   if isContainer(container) and getContainerSize(container) > 0 then
       for slot=0, (getContainerSize(container)-1) do
           local item = getContainerItem(container, slot)
           if isContainer(item.uid) then
               local itemsbag = getItemsInContainerById(item.uid, itemid)
               for i=0, #itemsbag do
                   table.insert(items, itemsbag[i])
               end
           else
               if itemid == item.itemid then
                   table.insert(items, item.uid)
               end
           end
       end
   end
   return items
end

function addPokeball(cid, pokename, maxh)
   local s = doPlayerAddItem(cid, pokein)
   doItemSetAttribute(s, "poke", "This is "..pokename.."'s pokeball. HP = ["..maxh.."/"..maxh.."]")
   doItemSetAttribute(s, "description", "Contains a " .. pokename)
end

function getPokeOutLive(cid)
   dat = {}
   for slot = CONST_SLOT_FIRST, CONST_SLOT_LAST do
       local item = getPlayerSlotItem(cid, slot)
       if isContainer(item.uid) then
           local items = getItemsInContainerById(item.uid, pokeout)
           for _, ui in pairs(items) do
               if getItemAttribute(ui, "poke"):sub(#getItemAttribute(ui, "poke")) == "." then
                   table.insert(dat, ui)
               end  
           end
      end

      if item.itemid == pokeout then
           if getItemAttribute(item.uid, "poke"):sub(#getItemAttribute(item.uid, "poke")) == "." then
           table.insert(dat, item.uid)
           end
       end
   end
   return dat
end

Link para o comentário
Compartilhar em outros sites

n deu erro nenhum mas ainda n curou.

aqui segue os ids das pokebonas do server

 

pokeball = 2532, 2531

greatball = 2652, 2524

superball = 2653, 2557

ultraball = 2554, 2525

masterball = 2195, 2523

 

acho que o erro ocorre devido aos ids serem diferentes de varios outros servers.

 

espero que isso ajude. se precisar de algum id ou script por favor.

 

 

MUITO OBRIGADO POR ESTAR AJUDANDO

Link para o comentário
Compartilhar em outros sites

ele está usando o servidor pokemon flash

 

 

segue o link do servidor :

 

 

 

 

estou muito precisando de um npc que heala todos os pokemons tambem, ja tentei de tudo, mas sempre da algum erro.. :/

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

realmente é esse server mesmo patrick.

tentei mudar os ids, mas n deu em nd. vou refazer todo o processo.

 

Pelo menos n ta mais dando erros no server.

tem diferença se eu colocar o id da pokebola aberta e fechada independente da ordem ou tem q ser na ordem correta?

 

vodkart

se n for pedir muito me explica oq significa cada linha

 

local talkState = {}

local states = {'1', '2', '3', '4', '5', '6'}

local store = {1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151}

local unlock = {}

 

para q esse id de store? e esse states?

 

obrigado

Link para o comentário
Compartilhar em outros sites

Vo mandar a minha versão beta desse script,voce tera que mudar sua action goback e tambem o creature event, serve pra pokemon flash e 4.1:

local focus = 0

local talk_start = 0

local target = 0

local following = false

local attacking = false

local talkState = {}
local states = {'1', '2', '3', '4', '5', '6'}
local store = {1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,  1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151}
local unlock = {}
local pokeballs = {'2532', '2533'}
local ultraballs = {'2654', '2222'}
local greatballs = {'2652', '2221'}
local masterballs = {'2195', '2220'}
local superballs = {'2653', '2219'}
local pokeballs1 = {'2532', '2569'}
local ultraballs1 = {'2654', '2525'}
local greatballs1 = {'2652', '2524'}
local masterballs1 = {'2195', '2523'}
local superballs1 = {'2653', '2557'}
local loveballs = {'3983', '2225'}
local saffariballs = {'2223', '2655'}
local gsballs = {'2648', '2224'}
local loveballs3 = {'2653', '2557'}


function onThingMove(creature, thing, oldpos, oldstackpos)



end





function onCreatureAppear(creature)



end




function getPokemonMaxLife(name)
               local file = io.open('data/monster/monsters.xml','r')
               local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>')
               file:close()
               local data = io.open('data/monster/'..(arquivo or ''),'r')
               if not data then
                       return 100
               end
               local maximo = data:read(-1):match('max%s*=%s*"(%d+)"')
               data:close()
               return maximo
end
function onCreatureDisappear(cid, pos)
if focus == cid then

selfSay('Good bye sir!')

focus = 0

talk_start = 0

end

end





function onCreatureTurn(creature)



end





function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end



function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if((msgcontains(msg, 'hi') or msgcontains(msg, 'heal') or msgcontains(msg, 'help')) and (getDistanceToCreature(cid) <= 3)) then
	if exhaustion.get(cid, 9211) then
selfSay('Please wait a few moment before asking me to heal your pokemons again!')
return true
   end
  	doSendMagicEffect(getThingPos(cid), 132)
if isInArray(gsballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2648)
end
  	doSendMagicEffect(getThingPos(cid), 132)
if isInArray(saffariballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2655)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(loveballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doTransformItem(feet.uid, 3983)
end
   	doSendMagicEffect(getThingPos(cid), 132)
if isInArray(pokeballs1, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2532)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(ultraballs1, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2654)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(greatballs1, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2652)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(masterballs1, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2195)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(superballs1, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2653)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(pokeballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2532)
local hp = getCreatureMaxHealth(cid)
doCreatureAddHealth(cid, hp)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(ultraballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2654)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(greatballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2652)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(masterballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2195)
end
doSendMagicEffect(getThingPos(cid), 132)
if isInArray(superballs, getPlayerSlotItem(cid, CONST_SLOT_FEET).itemid) then
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid, "aid", getCreatureMaxHealth(name))
doTransformItem(feet.uid, 2653)
end
	local bp = getPlayerSlotItem(cid, 10)
		if #getCreatureSummons(cid) >= 1 then
		local jui = getCreatureSummons(cid)[1]
		doCreatureAddHealth(jui, getCreatureMaxHealth(jui)-getCreatureHealth(jui))
		doSendMagicEffect(getThingPos(jui), 12)
		end
		local items = getItemsInContainerById(bp.uid, 2523)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2195)
		end
		local items = getItemsInContainerById(bp.uid, 2554)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2654)
		end
		local items = getItemsInContainerById(bp.uid, 2533)
		for _, uid in pairs(items) do
		local hp = getCreatureMaxHealth(cid,bp)
		doTransformItem(uid, 2532)
		doItemSetAttribute(getItemsInContainerById(cid,10).uid, "aid", getCreatureMaxHealth(poke_name))
		doCreatureAddHealth(cid, hp)
		end
		local items = getItemsInContainerById(bp.uid, 2222)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2654)
		end
		local items = getItemsInContainerById(bp.uid, 2221)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2652)
		end
		local items = getItemsInContainerById(bp.uid, 2220)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2195)
		end
		local items = getItemsInContainerById(bp.uid, 2219)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2653)
		end
		local items = getItemsInContainerById(bp.uid, 2653)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2557)
		end
		local items = getItemsInContainerById(bp.uid, 2569)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2532)
		end
		local items = getItemsInContainerById(bp.uid, 2525)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2654)
		end
		local items = getItemsInContainerById(bp.uid, 2524)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2652)
		end
		local items = getItemsInContainerById(bp.uid, 2557)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2653)
		end
		local items = getItemsInContainerById(bp.uid, 2570)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 3983)
		end
		local items = getItemsInContainerById(bp.uid, 2225)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 3983)
		end
		local items = getItemsInContainerById(bp.uid, 2224)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2648)
		end
		local items = getItemsInContainerById(bp.uid, 2223)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2655)
		end
		local items = getItemsInContainerById(bp.uid, 3973)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2648)
		end
		local bag = getPlayerSlotItem(cid, 3)
		if #getCreatureSummons(cid) >= 1 then
		local jui = getCreatureSummons(cid)[1]
		doCreatureAddHealth(jui, getCreatureMaxHealth(jui)-getCreatureHealth(jui))
		doSendMagicEffect(getThingPos(jui), 12)
		end
		local items = getItemsInContainerById(bag.uid, 2533)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2532)
		end
		local items = getItemsInContainerById(bag.uid, 2222)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2654)
		end
		local items = getItemsInContainerById(bag.uid, 2221)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2652)
		end
		local items = getItemsInContainerById(bag.uid, 2220)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2195)
		end
		local items = getItemsInContainerById(bag.uid, 2219)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2653)
		end
		local items = getItemsInContainerById(bag.uid, 2653)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2557)
		end
		local items = getItemsInContainerById(bag.uid, 2569)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2532)
		end
		local items = getItemsInContainerById(bag.uid, 2525)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2654)
		end
		local items = getItemsInContainerById(bag.uid, 2524)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2652)
		end
		local items = getItemsInContainerById(bag.uid, 2557)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"))
		doTransformItem(uid, 2653)
		end
		local items = getItemsInContainerById(bp.uid, 2222)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		end
		local items = getItemsInContainerById(bp.uid, 2220)
		for _, uid in pairs(items) do
		local maxh = tonumber(getItemAttribute(uid, "poke"):match("/(.+)]"))
		doItemSetAttribute(uid, "poke", getItemAttribute(uid, "poke"):sub(1, findLetter(getItemAttribute(uid, "poke"), "[")) .. maxh .. getItemAttribute(uid, "poke"):sub(findLetter(getItemAttribute(uid, "poke"), "/")))
		end
selfSay('There you go! You and your pokemons are healthy again.')
end
end

function onThink()

if focus ~= 0 then
a, b, c = selfGetPosition()
if c ~= getThingPos(focus).z then
focus = 0
end
end

if focus ~= 0 then
if getDistanceToCreature(focus) > 3 then
focus = 0
end
end

return true
end

 

Goback:

function onUse(cid, item, fromPosition, itemEx, toPosition)
function getPokemonMaxLife(name)
	local file = io.open('data/monster/monsters.xml','r')
	local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>')
	file:close()
	local data = io.open('data/monster/'..(arquivo or ''),'r')
	if not data then
		return 100
	end
	local maximo = data:read(-1):match('max%s*=%s*"(%d+)"')
	data:close()
	return maximo
end
----- Config -----
local MaximoSummon = 1
local nome = getItemName(item.uid)
local poke_name = nome:match('(.-) Pokeball')
local summons = getCreatureSummons(cid)
local action_id = getItemAttribute(item.uid, "aid")
----- Config -----
   if getItemAttribute(item.uid, "aid") == -1 then
return doPlayerSendCancel(cid, "Seu pokemon está morto.")
end	

if getPlayerStorageValue(cid, 25000) == 5 then       
return doPlayerSendCancel(cid, "Você está montando.")
end
if getPlayerStorageValue(cid, 23000) == 5 then
return doPlayerSendCancel(cid, "Você está voando.")
end
local summons = getCreatureSummons(cid)
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "Para Soltar seus pokemons, coloque-os no slot da pokeball.")
return TRUE
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
creature = doSummonCreature(poke_name, getCreaturePosition(cid))
doConvinceCreature(cid, creature)
registerCreatureEvent(creature, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
doPlayerSay(cid, "Go,"..poke_name.."!!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(creature), 188)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2569, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
	if action_id ~= 0 then
doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(poke_name) - action_id)))
	else
	doCreatureAddHealth(creature, getPokemonMaxLife(poke_name))
	end
else
for _, pid in ipairs(summons) do
if (table.maxn(summons) >= 1) then
doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1]))
doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 188)
doPlayerSay(cid, "Back,"..poke_name..".", TALKTYPE_ORANGE_1)
doRemoveCreature(pid)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
end
end
end
return true
end

 

Goback do creaturescripts:

local pokein, pokeout = 2533,2569
function onDeath(cid, deathList)
   local owner = getCreatureMaster(cid)
   doPlayerSendTextMessage(owner, 21, "Seu Pokemon Marreu!kk.")
   local item = getPlayerItemById(owner, TRUE, pokeout)
   doItemSetAttribute(getPlayerSlotItem(pokeout,8).uid, "aid", getCreatureMaxHealth(name))
   local hp = getCreatureMaxHealth(cid)
   doCreatureAddHealth(cid, hp)
   doTransformItem(item.uid, pokein)	
return FALSE
end

 

Se funfar de rep+, se quiser mais ajuda add msn: jean_cassio_sf@hotmail.com

flw.

Link para o comentário
Compartilhar em outros sites

problemas...

 

1º o de sempre não healou todos apenas mudou o tipo das pokebolas mas os pokemons continuarao mortos.

 

2º superball

 

[17/02/2011 18:11:56] [Error - Action Interface] 
[17/02/2011 18:11:56] data/actions/scripts/superball.lua:onUse
[17/02/2011 18:11:56] Description: 
[17/02/2011 18:11:56] data/actions/scripts/superball.lua:46: attempt to perform arithmetic on local 'action_id' (a boolean value)
[17/02/2011 18:11:56] stack traceback:
[17/02/2011 18:11:56] 	data/actions/scripts/superball.lua:46: in function <data/actions/scripts/superball.lua:1>

 

 

3º falando hi para npc

 

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaGetCreatureMaxHealth) Creature not found

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaGetCreatureMaxHealth) Creature not found

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaGetCreatureMaxHealth) Creature not found

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaGetCreatureMaxHealth) Creature not found

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:09] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:09] Description: 
[17/02/2011 18:13:09] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:09] [Error - Npc interface] 
[17/02/2011 18:13:10] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:10] Description: 
[17/02/2011 18:13:10] (luaDoItemSetAttribute) Invalid data type

[17/02/2011 18:13:10] [Error - Npc interface] 
[17/02/2011 18:13:10] data/npc/scripts/heal3.lua:onCreatureSay
[17/02/2011 18:13:10] Description: 
[17/02/2011 18:13:10] (luaDoItemSetAttribute) Invalid data type

 

 

4º pokebola quado lanço o pokemon.

não da pra chamalo de volta.

e se tirar a pokebola n da para por no lugar novamente.

porem é o unico que se falar hi no msn ele revive e funciona na bag.

 

[17/02/2011 18:14:39] [Error - Action Interface] 
[17/02/2011 18:14:39] data/actions/scripts/goback.lua:onUse
[17/02/2011 18:14:39] Description: 
[17/02/2011 18:14:39] data/actions/scripts/goback.lua:47: attempt to perform arithmetic on local 'action_id' (a boolean value)
[17/02/2011 18:14:39] stack traceback:
[17/02/2011 18:14:39] 	data/actions/scripts/goback.lua:47: in function <data/actions/scripts/goback.lua:1>

 

qdo ele morre

 

[17/02/2011 18:14:48] [Error - CreatureScript Interface] 
[17/02/2011 18:14:48] data/creaturescripts/scripts/goback.lua:onDeath
[17/02/2011 18:14:48] Description: 
[17/02/2011 18:14:48] (luaGetPlayerSlotItem) Player not found

[17/02/2011 18:14:48] [Error - CreatureScript Interface] 
[17/02/2011 18:14:48] data/creaturescripts/scripts/goback.lua:onDeath
[17/02/2011 18:14:48] Description: 
[17/02/2011 18:14:48] (luaGetCreatureMaxHealth) Creature not found

[17/02/2011 18:14:48] [Error - CreatureScript Interface] 
[17/02/2011 18:14:48] data/creaturescripts/scripts/goback.lua:onDeath
[17/02/2011 18:14:48] Description: 
[17/02/2011 18:14:48] (luaDoItemSetAttribute) Item not found

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

×
×
  • Criar Novo...