Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] Alterar Catch System


Ir para solução Resolvido por betofss,

Posts Recomendados

@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.

 

 

 

 

Link para o post
Compartilhar em outros sites
  • Respostas 7
  • Created
  • Última resposta

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Posts

@betofss Boa Tarde, os pokemons shinys e johtos estão sendo capturados normalmente (do jeito que você quer)?

@betofss Tenta assim, não sei se vai funcionar pq to sem nenhum server de poketibia para testar    local pokes = { ["Rattata"] = {chance = 50, corpse = "Rattata", health = 350, maxhealth = 350, level = 1}, ["Flareon"] = {chance = 5000, corpse = "Flareon", health = 5300, maxhealth = 5300, level = 55}, ["Crystal Onix"] = {chance = 5000, corpse = "Crystal Onix", health = 5300, maxhealth = 5300, level = 70}, ["Porygon"] = {chance = 5000, corpse = "Porygon", health = 14000, maxhe

@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>

Mostrar mais  

 

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"/>

Expand   Mostrar mais  

 

Editado por betofss
Tentando resolver com outro script. (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Favor encerrar o tópico, falta de resposta.

Erro não resolvido

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96844
    Tópicos
    519597
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo