Ir para conteúdo
  • Cadastre-se

Suporte Script muda pokemon, e servidor faz novo respawn do antigo, duplicando eles.


Posts Recomendados

.Qual servidor você utiliza como base?   KPDO

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 function onThink(cid, interval)
local clefable = 
{
        [0] = {pokemon = 'clefable [1] s'}, 
        [1] = {pokemon = 'clefable [2] s'}, 
        [2] = {pokemon = 'clefable [3] s'}, 
}

local tempo_remover = 2 -- minutos
local fail = 2
if getCreatureName(cid) == "Clefable" then
local criature17 =   doCreateMonster(clefable[math.random(0,3)].pokemon, getCreaturePosition(cid))
doRemoveCreature(cid)
addEvent(function()
        if (criature17) then 
		doSendMagicEffect(getThingPos(criature17), fail)
            doRemoveCreature(criature17)		
        end
    end, tempo_remover * 60 * 1000)
end
return true
end

 

Boa tarde. Segue meu script que transforma um pokemon X em um pokemon Y. O meu problema está que: Exemplo:  Pokemon respawna com nome Clefable. O script muda ele para clefable [1]. Passa-se 60 segundos, e o servidor respawna outro Clefable, visto que não tem mais um Clefable, e sim um Clefable [1]. Minha solução temporária foi excluir o Clefable [1] após X tempo. Mas gostaria que o servidor não respawnasse outro, enquanto o Clefable [1] não seja morto. É possivel?  a base do meu servidor é KPDO, sem sources, e até onde eu saiba, sem a função onspawn.

 

Editado por Bepovi (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Modificar um monstro que foi criado pelo remeres para não spawnar enquanto um estiver vivo é bem chatinho de fazer, eu acho que teria que modificar o próprio spawn.cpp e fazer umas ligações com luascript.cpp fazendo uma condição para alguns pokemons que estiverem em x position (a área completa que nasce as clefable) nascer somente depois da morte ou desaparecimento de um x pokemon, iria verificar toda hora se o monstro morreu ou não , acho que seria com esse onspawn que você teria q fazer as chamadas e sem source para criar tal função complica mais ainda, mas talvez algum mago dos script pode fazer pra tu, não duvido de nada.

 

Mas tem outro jeito (que talvez poderia funcionar) que você tentaria fazer também que é respawn de monstro sem ser pelo remerese sim por lua, ai você só colocaria o onThink para verificar qual monstro que está vivo nas pos inteira do respawn das clefable normal e executar algumas funções mas ai ficaria um script gigante por ser vários monstros que tu com certeza deve querer colocar essa condição. (ex: se a clefable modificada está na pos do respawn da normal,  a clefable normal só vai aparecer quando ela sumir ou ser removida da pos, as pos tem que ser a área inteira dos respawn da normal provavelmente), boa sorte!

 

Infelizmente foi nisso que eu pensei, desculpa mas se a alteração for realmente por source, não vou conseguir te ajudar porque eu vou tentar aprender um pouquinho mais pra frente, mas é isso, sorry estou cheio de coisa aqui pra fazer , mas te dei uma dica de como você poderia fazer, já que tentou uma solução temporária, não custa nada tentar pelo método 2 que mencionei ali.

se não entender algumas coisas é pq digitei aqui na velocidade da luz e to editando umas coisa ao mesmo temp kkkk, mas espero ter ajudado com essa dica!

Link para o post
Compartilhar em outros sites

@Spooky Ghost Obrigado pela resposta! Então cara.. na verdade esse é um "sistema gambiarra" para level system em pokemons selvagens. Ja implementei e funciona sem lags e tal. O unico problema é isso mesmo..  Eu pensei em uma forma de solucionar isso, mas não manjo muito pra criar um script do 0. Estou tentando quebrar a cabeça com isso. Talvez você consiga pensar em algo seguindo essa logica:

 

if getCreatureName(cid) == "Clefable" then 
verificar se possui uma criatura "criature17"
se caso sim, remover a "criature17", e daí transformar o clefable em outra "criature17"
O problema é que o local = criature17 é random, não sei se o script consegue localizar
pelo "criature17".

Porém, esse evento

addEvent(function()
        if (criature17) then 
        doSendMagicEffect(getThingPos(criature17), fail)
            doRemoveCreature(criature17)        
        end
    end, tempo_remover * 60 * 1000)
end

funciona perfeitamente pra remover o pokemon criado depois de 2 minutos.

Então acredito que dá pra chamar a criature por criature17, só não estou conseguindo
elimina-la após a verificação do if getCreatureName(cid) == "Clefable" then 

 

Link para o post
Compartilhar em outros sites

Seguindo essa lógica ai você teria que remover a fable que estiver na área inteira do respawn dessa fable modificada utilizando isInArray

pos = {x,y,z}

== "Clefable" and isInArray pa pa then

ta corrido aqui mas tenta isso ai (claro ne n desse jeito doido que esta ai no ex)

e se pa não está removendo pq na verificação do monstro tem que estar o nome do monstro no monster.xml ou seja clefable [1] ou seja cria 3 and com getcreaturename cada um com um [diferente] [1] [2] [3]

 

ex:

if getcreaname(papa) == "fable [1]" 

Editado por Spooky Ghost (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Spooky Ghost  Sem problemas brother. No caso é inviável localizar o x y z, visto que seriam todos os pokemons do servidor.  Também como falei anteriormente, o script tá sim conseguindo localizar o pokemon criado nessa função:
addEvent(function()
        if (criature17) then 
            doRemoveCreature(criature17)        
        end
    end, tempo_remover * 60 * 1000)
end


Então deve haver algum meio de usar o      if (criature17) then  doRemoveCreature(criature17), só não estou conseguindo.. vou continuar tentando

 

Link para o post
Compartilhar em outros sites

a sim pensei que não estava reconhecendo o monstro, mas o monstro nascer só depois da fable modificada morrer vai ser bem complicado pensar numa lógica não deixa a fable normal (remeres) nascer se a fable modificada estiver lá sem a modificação da source e se tiver por lua vai ser uma gambiarra que nossa kkk, mas se eu conseguir pensar numa lógica tento te ajudar.

 

Link para o post
Compartilhar em outros sites

@Spooky Ghost Não tem problema ela nascer..  tipo, esse script roda só quando tem um player na tela.   Então seria:  

- servidor spawna clefable
- player aparece na tela.. clefable muda pra clefable [1]
supondo que o player não mate a clefable [1]
- servidor spawna outra clefable.  <- aqui fazer a verificação de que se tiver clefable [1], deleta a  clefable [1] e mantem a clefable.
pois daí se o jogador aparecer de novo, a clefable comum vira novamente  clefable [1].

 

 

Link para o post
Compartilhar em outros sites

quando o servidor spawna a outra clefa como vai reconhecer na distro e fazer a checagem por lua? não tem essa função de verificar TODAS que aparecerem no onThink no segundo respawn, sem edições na source de seu servidor (pelo menos eu acho), pq como você disse são várias hunts ou seja vários lugares checando se tem uma clefa[1], em lua da pra fazer somente verifição em uma determinada área, como volto a dizer, ligações em luascript.cpp + spawn.cpp na source, pq em lua, sério é limitado em apenas determinadas pos x,y,z sinto muito =/

 

se tu conseguir em lua meus parabéns tu é guerreiro, ou alguém fazer para você tu é sortudo.

Editado por Spooky Ghost (veja o histórico de edições)
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.


  • Conteúdo Similar

    • Por braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo