Postado Maio 2, 2020 5 anos @betofss Não adianta, não são necessárias apenas mudanças nessa script, e sim também em como o corpse surge nesse servidor. O corpse precisará levar o attributo que vai definir o level e a exp, o sexo, nome e mais algumas coisas. Será necessário mudar também o sistema de como o Nidoram funciona. Mas se quiser tentar usar o que o amigo a cima disse, é só remover o escopo: if not isCreature(item2.uid) then return doPlayerSendCancel(cid, "Voce so pode usar pokebolas em pokemons!") end E é claro, irá surgir outros erros que só serão resolvidos com um novo sistema de corpse.
Postado Maio 2, 2020 5 anos Autor @Storm Já tinha tentado essa solução antes mesmo de ele me enviar desta forma, acontece que não emite erro nenhum, apenas não aparece nada. Ao invés de capturar o pokemon ou informar um erro ele apenas não faz nada retirando essa parte que você citou. Alguma outra ideia? Não sei porque está desta forma, com o nome de Nidoran mas o sistema funciona para todos os Pokemons, etc... Já estou tentando de outras formas mas ainda sem sucesso nenhum. O Erondino disse no próprio post "para alterar a forma de pegar o pokemon (vivo ou morto) é apenas colocar o looktype no local do nome. Eu já fui no ID pelo Object Builder, já testei com o nome do pokemon morto (fainted ou defeated), já testei com o ID que o jogo me indica quando dou look no corpo, já tentei com outros IDs relacionados ao pokemon que uso como teste pelo items.xml, porém nada nada nada nada mesmo surtiu efeito. [EDIT] @Storm @MatteusDeli Amigos, vi que o sistema deste jeito que está realmente vai ser sem condições. Estou tentando utilizar outro, vou indexar aqui o script que estou tentando fazer funcionar, ele retorna um erro no Console (pelo menos faz isso diferente do outro) talvez se eu conseguir resolver o erro o sistema possa funcionar, quem sabe? Novo script: local ballcatch = { [2147] = {cr = 50, on = 25, off = 25, ball = 2222, send = 47, typeee = "Pokeball"}, -- [2394] = id da pokebola | cr = catchrate | on = oncatch | off = onfail | ball = ? [2642] = {cr = 100, on = 200, off = 200, ball = 2651, send = 48, typeee = "Greatball"}, -- [2394] = id da pokebola | cr = catchrate | on = oncatch | off = onfail | ball = ? [2645] = {cr = 200, on = 210, off = 210, ball = 2651, send = 46, typeee = "Superball"}, -- [2394] = id da pokebola | cr = catchrate | on = oncatch | off = onfail | ball = ? [2146] = {cr = 500, on = 220, off = 220, ball = 2220, send = 49, typeee = "Ultraball"}, -- [2394] = id da pokebola | cr = catchrate | on = oncatch | off = onfail | ball = ? [2644] = {cr = 800, on = 230, off = 230, ball = 2655, send = 35, typeee = "Saffariball"}, -- [2394] = id da pokebola | cr = catchrate | on = oncatch | off = onfail | ball = ? } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") end local name = string.lower(getItemNameById(item2.itemid)) --alterado v1.9 \/ name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") name = string.gsub(name, "morto ", "") name = doCorrectPokemonName(name) local x = pokecatches[name] local storage = newpokedex[name].stoCatch --alterado v1.9 \/ if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0;") end if not x then return true end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] --alterado v1.9 local typeee = ballcatch[item.itemid].typeee local restrictions = {"Moltres", "Articuno", "Zapdos", "Mew", "Mewtwo", "Entei", "Raikou", "Suicune", "Lugia", "Ho-oh", "Darkrai",} if isInArray(restrictions, name) then return doPlayerSendTextMessage(cid, 26, "Este pokemon é lendário! Não pode ser capturado.") end local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = ballcatch[item.itemid].on catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then --alterado v1.9 setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your saffari balls, good luck in the next time...") end addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end O problema deste novo script é que eu peguei ele de um outro servidor de Poketibia, então pode ter inúmeras coisas diferentes que podem estar acarretando neste erro... maaaaaas quem não tenta nunca consegue. Erro que ele retorna no console: Citar [02/05/2020 17:31:09] [Error - Action Interface] [02/05/2020 17:31:09] data/actions/scripts/catch.lua:onUse [02/05/2020 17:31:09] Description: [02/05/2020 17:31:09] data/actions/scripts/catch.lua:11: attempt to call global 'getTopCorpse' (a nil value) [02/05/2020 17:31:09] stack traceback: [02/05/2020 17:31:09] data/actions/scripts/catch.lua:11: in function <data/actions/scripts/catch.lua:9> Eu não sei se é fácil ou não de se resolver, eu olho e olho o script mas não consigo encontrar nada que possa estar errado, eu copiei exatamente o script do outro servidor que tenho aqui, unica coisa que alterei no script foi o ID das pokebolas, apenas. Por se tratar de um script diferente do inicial e de outro servidor também não sei se vocês podem me ajudar... Mas me peçam todos os dados que vocês precisarem para conseguir me ajudar e eu enviarei. meu actions.xml Citar <action itemid="2645;2147;2146;2642;2644" event="script" value="catch.lua" allowfaruse="1"/> Editado Maio 2, 2020 5 anos por betofss Tentando resolver com outro script. (veja o histórico de edições)
Postado Maio 5, 2020 5 anos Autor Solução Favor encerrar o tópico, falta de resposta. Erro não resolvido
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.