Bom diaaa!
Antes de tudo, qual base está usando?
Dependendo da base (principalmente as puxada pra OTP) tem restrição de Catch em certos pokémons (o mesmo script para restringir o Catch de lendários).
Além disso, esse tipo de problema geralmente está ligado a um dos quatro pontos abaixo:
Verifique o corpse e looktype no XML do monstro em: data/monster/pokemons/Dusknoir procura por essas duas coisas:
<monster name="Dusknoir" corpse="6001" looktype="..." ...>
( corpse: tem que estar definido e ser um corpo válido do cliente que você está usando.
Se o corpse estiver 0, vazio, incorreto ou inexistente no .spr, o sistema de captura não reconhece o corpo e não executa a action.)
Confere o nome exatamente igual no catch.lua (ou script equivalente)
No data/actions/scripts/catch.lua, geralmente existe algo assim:
local pokemons = {
["duskull"] = { chance = 50 },
["dusclops"] = { chance = 35 },
["dusknoir"] = { chance = 20 }
}
Se o nome no XML for "Dusknoir" com maiúscula, mas no script estiver "dusknoir" minúsculo (ou vice-versa), o sistema não encontra o Pokémon na tabela e não executa a captura.
Nomes com espaço, traço ou acento também quebram a verificação ("Dusk Noir" ≠ "Dusknoir").
-----> Verifique se existe uma restrição especial no script de captura (o ponto que citei no início do comentário)
Algumas bases têm um trecho assim no catch.lua ou em um arquivo de configuração:
if not pokemons[name] then
doPlayerSendCancel(cid, "You can't catch this pokemon.")
return true
end
Se Dusknoir não estiver listado lá, vai cair nessa verificação silenciosa e simplesmente não deixa capturar. (Caso esteja, basta retirar o nome do Dusknoir e de outros pokémons que você queira deoxar de restringir o Catch, caso queira restringir o Catch de algum pokémon basta adiciona-lo a lista)
Depois que verificar tudo isso, teste o catch spawnando um Dusknoir e tentando captura-lo!