Ir para conteúdo
  • Cadastre-se

Programação [Correção Bug/Erro] Correção erro (event.walk)


Posts Recomendados

Olá Amigos do TibiaKing!

Faz um bom tempo que não apareço por aqui, mas enfim vamos ao tutorial, um amigo chamado DkHenzo (espero que não se importe em colocar seu nome ^^) Bem vamos agora ao tutorial, devido a algumas pessoas terem erros em servidores de Poketibia, não sei se Tibia possui, eu resolvi fazer esse tutorial para ajudar o amigo citado acima e pensei "porque não ajudar mais pessoas também!", este e o principal motivo deste tutorial ajudar quem precise.

O erro e o ( EVENT.WALK ) ele e um erro simples, que me custou algumas horas para descobrir como concertá-lo, primeiro para corrigi-lo existe 2(dois) meios o primeiro o corrige(Necessário source (Código Fonte do Servidor)) o segundo e apenas um paliativo(Não precisa de source).

Bem Vamos lá: Método 1

1) Peque sua source e abra ela com o seu editor C/C++ preferido ou use o DevC++(DevCpp), pasta da source Dev-cpp(Pode ter outro nome, refere-se a pasta onde possui o arquivo primário de abertura do projeto) >>> TheForgottenServer.dev

2) Apos aberto procure o arquivo creatureevent.cpp e depois faça uma busca por: No valid type for creature event.

Nota: Para fazer uma busca por determinado elemento basta usar a combinação de teclas CTRL + F

Deve ser uma linha como essa:

std::cout << "[Error - CreatureEvent::configureEvent] No valid type for creature event." << str << std::endl;

3) Apos ter feito essa busca você deve subir duas ou três linhas para cima e ira encontrar um bloco de código parecido com este:

	std::string tmpStr = asLowerCaseString(str);
	if(tmpStr == "login")
		m_type = CREATURE_EVENT_LOGIN;
	else if(tmpStr == "logout")
		m_type = CREATURE_EVENT_LOGOUT;
	else if(tmpStr == "joinchannel")
		m_type = CREATURE_EVENT_CHANNEL_JOIN;
	else if(tmpStr == "leavechannel")
		m_type = CREATURE_EVENT_CHANNEL_LEAVE;
	else if(tmpStr == "advance")
		m_type = CREATURE_EVENT_ADVANCE;
	else if(tmpStr == "sendmail")
		m_type = CREATURE_EVENT_MAIL_SEND;
	else if(tmpStr == "receivemail")
		m_type = CREATURE_EVENT_MAIL_RECEIVE;
	else if(tmpStr == "traderequest")
		m_type = CREATURE_EVENT_TRADE_REQUEST;
	else if(tmpStr == "tradeaccept")
		m_type = CREATURE_EVENT_TRADE_ACCEPT;
	else if(tmpStr == "textedit")
		m_type = CREATURE_EVENT_TEXTEDIT;
	else if(tmpStr == "reportbug")
		m_type = CREATURE_EVENT_REPORTBUG;
	else if(tmpStr == "look")
		m_type = CREATURE_EVENT_LOOK;
	else if(tmpStr == "think")
		m_type = CREATURE_EVENT_THINK;
	else if(tmpStr == "direction")
		m_type = CREATURE_EVENT_DIRECTION;
	 else if(tmpStr == "move")
		m_type = CREATURE_EVENT_MOVE;
	else if(tmpStr == "outfit")
		m_type = CREATURE_EVENT_OUTFIT;
	else if(tmpStr == "statschange")
		m_type = CREATURE_EVENT_STATSCHANGE;
	else if(tmpStr == "areacombat")
		m_type = CREATURE_EVENT_COMBAT_AREA;
	else if(tmpStr == "push")
		m_type = CREATURE_EVENT_PUSH;
	else if(tmpStr == "target")
		m_type = CREATURE_EVENT_TARGET;
	else if(tmpStr == "follow")
		m_type = CREATURE_EVENT_FOLLOW;
	else if(tmpStr == "combat")
		m_type = CREATURE_EVENT_COMBAT;
	else if(tmpStr == "attack")
		m_type = CREATURE_EVENT_ATTACK;
	else if(tmpStr == "cast")
		m_type = CREATURE_EVENT_CAST;		
	else if(tmpStr == "kill")
		m_type = CREATURE_EVENT_KILL;
	else if(tmpStr == "death")
		m_type = CREATURE_EVENT_DEATH;
	else if(tmpStr == "preparedeath")
		m_type = CREATURE_EVENT_PREPAREDEATH;	
	else if(tmpStr == "spawn")
		m_type = CREATURE_EVENT_SPAWN;
	else if(tmpStr == "onmove")
		m_type = CREATURE_EVENT_ONMOVE;
	else

Obs: alinha que procuramos acima no inicio do tutorial e parte deste bloco de código.

4) Agora se você nunca viu algo como isso antes não se assuste, devemos apenas ter atenção ao fazer tal operação.

Preste atenção que no final do bloco existe uma pequena função chamada else devemos adicionar antes dela um peno bloco de código, copie o código abaixo e o cole antes do else

Obs: Tente manter o mesmo padrão de sintaxe do código, forma ou estrutura ao qual o código e escrito.

else if(tmpStr == "walk")
	m_type = CREATURE_EVENT_WALK;

Deve ficar algo assim:

// Bloco de codigo anterior //

else if(tmpStr == "onmove")	
        m_type = CREATURE_EVENT_ONMOVE;

// Bloco de codigo que adicionamos //

else if(tmpStr == "walk")	
        m_type = CREATURE_EVENT_WALK;

// ELSE abaixo do nosso bloco de codigo //

	else

O código completo com o nosso bloco de código adicionado deve ser algo como abaixo, caso não, pode a ver outra funções já adicionadas por você ou por outras pessoas antes. Mas em geral ele deve ser bem parecido com este código abaixo.

	std::string tmpStr = asLowerCaseString(str);
	if(tmpStr == "login")
		m_type = CREATURE_EVENT_LOGIN;
	else if(tmpStr == "logout")
		m_type = CREATURE_EVENT_LOGOUT;
	else if(tmpStr == "joinchannel")
		m_type = CREATURE_EVENT_CHANNEL_JOIN;
	else if(tmpStr == "leavechannel")
		m_type = CREATURE_EVENT_CHANNEL_LEAVE;
	else if(tmpStr == "advance")
		m_type = CREATURE_EVENT_ADVANCE;
	else if(tmpStr == "sendmail")
		m_type = CREATURE_EVENT_MAIL_SEND;
	else if(tmpStr == "receivemail")
		m_type = CREATURE_EVENT_MAIL_RECEIVE;
	else if(tmpStr == "traderequest")
		m_type = CREATURE_EVENT_TRADE_REQUEST;
	else if(tmpStr == "tradeaccept")
		m_type = CREATURE_EVENT_TRADE_ACCEPT;
	else if(tmpStr == "textedit")
		m_type = CREATURE_EVENT_TEXTEDIT;
	else if(tmpStr == "reportbug")
		m_type = CREATURE_EVENT_REPORTBUG;
	else if(tmpStr == "look")
		m_type = CREATURE_EVENT_LOOK;
	else if(tmpStr == "think")
		m_type = CREATURE_EVENT_THINK;
	else if(tmpStr == "direction")
		m_type = CREATURE_EVENT_DIRECTION;
	 else if(tmpStr == "move")
		m_type = CREATURE_EVENT_MOVE;
	else if(tmpStr == "outfit")
		m_type = CREATURE_EVENT_OUTFIT;
	else if(tmpStr == "statschange")
		m_type = CREATURE_EVENT_STATSCHANGE;
	else if(tmpStr == "areacombat")
		m_type = CREATURE_EVENT_COMBAT_AREA;
	else if(tmpStr == "push")
		m_type = CREATURE_EVENT_PUSH;
	else if(tmpStr == "target")
		m_type = CREATURE_EVENT_TARGET;
	else if(tmpStr == "follow")
		m_type = CREATURE_EVENT_FOLLOW;
	else if(tmpStr == "combat")
		m_type = CREATURE_EVENT_COMBAT;
	else if(tmpStr == "attack")
		m_type = CREATURE_EVENT_ATTACK;
	else if(tmpStr == "cast")
		m_type = CREATURE_EVENT_CAST;		
	else if(tmpStr == "kill")
		m_type = CREATURE_EVENT_KILL;
	else if(tmpStr == "death")
		m_type = CREATURE_EVENT_DEATH;
	else if(tmpStr == "preparedeath")
		m_type = CREATURE_EVENT_PREPAREDEATH;	
	else if(tmpStr == "spawn")
		m_type = CREATURE_EVENT_SPAWN;
	else if(tmpStr == "onmove")
		m_type = CREATURE_EVENT_ONMOVE;
		else if(tmpStr == "walk")
		m_type = CREATURE_EVENT_WALK;
	else
	{
		std::cout << "[Error - CreatureEvent::configureEvent] No valid type for creature event." << str << std::endl;
		return false;
	}

5) Apos ter feito tudo isso recomendo que Salve e Compile o seu novo Distro, depois desfrute do resultado ! :wow:

#################################################################################

Segundo Modo

Se você esta usando um server de Poketibia vá ate a pasta do seu servidor e depois para data >> creaturescripts >> creaturescripts.xml então abra o arquivo e comente ou retire a linha abaixo(recomendo comentar use apos toda a parte a ser comentada)

<event type="walk" name="WalkTv" event="script" value="tvsys.lua"/>

Exemplo da linha comentada:

<!--   <event type="walk" name="WalkTv" event="script" value="tvsys.lua"/>   -->

Caso haja duvidas ou erros comente, farei o possível para ajudar.

Um grande abraço e fiquem com Deus!

Editado por ZORAN (veja o histórico de edições)

UM GRANDE ABRAÇO E FIQUE COM DEUS!

 

Meu Server:

 

( Pokémon Alpha )

 

http://pokemonalpha.zapto.org

 

Meus Trabalhos:

Meus Trabalhos:

1) Entrada Para Morden Acc Ou Gensio

2) Client Parecido com PXG (Não Criei só modifiquei um pouco)

 

3) Tutotial compilando TFS 1.0 com MSVC 2013 

Link para o post
Compartilhar em outros sites

:accept: Seu tutorial foi aprovado e você recebeu um ponto de reputação.

 

Agora, só mais uma coisa para que eu possa mover o tópico: você, por ser o criador, acha que esse tópico se encaixa melhor em Tutoriais de Programação ou em Creaturescripts (onde você acha que este tópico terá mais visibilidade, ou seja, onde é que as pessoas vão com mais frequencia à procura deste conteúdo)?

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

Movido para tutoriais de programação.

Bruno de Carvalho Câmara / Administrador TibiaKing

[email protected]


 

btn_donateCC_LG.gif

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Não ta faltando a função não? sem ela vai arrumar o erro mas o script não vai funcionar xD

Tem que declarar CREATURE_EVENT_WALK no header também.

Certo, Obrigado pela sua ajuda, depois adiciono ao tópico, mas não ouve necessidade comigo, mas por via das duvida!. Obrigado por sua contribuição. 

 

----------------------------///-------------------------------------

 

Não faz parte do tópico mas pude perceber pelo seu perfil que você e programmer, então se você puder me ajudar com um server que possuo com source, estou precisando de um código de Nick namer para o pokemon, exemplo já tem no serve o script e npc, mas não possui no distro as instruções então não a como o nome do pokemon ficar igual ao apelido adicionado pelo player.

 

Se puder me ajudar, talvez eu retorne ao fórum no fim de semana.

--------------------------------///---------------------------------

 

Obrigado valeu mesmo, vou testar e volto com o resultado. 

 

Um grande abraço e fique com Deus!

:accept: Seu tutorial foi aprovado e você recebeu um ponto de reputação.

 

Agora, só mais uma coisa para que eu possa mover o tópico: você, por ser o criador, acha que esse tópico se encaixa melhor em Tutoriais de Programação ou em Creaturescripts (onde você acha que este tópico terá mais visibilidade, ou seja, onde é que as pessoas vão com mais frequencia à procura deste conteúdo)?

Desculpe, não pude estar presente ao fórum anteriormente para responder, mas obrigado.

 

Movido para tutoriais de programação.

Obrigado!

Opa, valeu cara!

E parabéns pelo tutorial :D

 

REP ++

Obrigado, fico feliz em poder ajudar!

 

//////////////////////////////////////////////////////////////////////////////////////////////

 

Um grande abraço e fiquem com Deus!

UM GRANDE ABRAÇO E FIQUE COM DEUS!

 

Meu Server:

 

( Pokémon Alpha )

 

http://pokemonalpha.zapto.org

 

Meus Trabalhos:

Meus Trabalhos:

1) Entrada Para Morden Acc Ou Gensio

2) Client Parecido com PXG (Não Criei só modifiquei um pouco)

 

3) Tutotial compilando TFS 1.0 com MSVC 2013 

Link para o post
Compartilhar em outros sites

Pelo que eu lembro não é preciso modificar nada na source para alterar nickname e também não faço a menor ideia de como funciona esses servidores de pokemon :(

Blz, Obrigado!

UM GRANDE ABRAÇO E FIQUE COM DEUS!

 

Meu Server:

 

( Pokémon Alpha )

 

http://pokemonalpha.zapto.org

 

Meus Trabalhos:

Meus Trabalhos:

1) Entrada Para Morden Acc Ou Gensio

2) Client Parecido com PXG (Não Criei só modifiquei um pouco)

 

3) Tutotial compilando TFS 1.0 com MSVC 2013 

Link para o post
Compartilhar em outros sites
  • 2 years later...

No meu quando tento compilar da esse error 
 

Spoiler

../creatureevent.cpp: In member function `virtual bool CreatureEvent::configureEvent(xmlNode*)':
../creatureevent.cpp:209: error: `CREATURE_EVENT_WALK' was not declared in this scope
../creatureevent.cpp: In member function `virtual std::string CreatureEvent::getScriptEventName() const':
../creatureevent.cpp:284: error: `CREATURE_EVENT_WALK' was not declared in this scope

 

pelo que entendi a função não tá declarada no escopo poderia me dar uma solução?

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 Muvuka
      Alguem tem anti-nuker igual a esse 
       

       
    • Por Muvuka
      [SQLite] -=[TFS]=- 0.4 8.60 Alguem faz apk mobile pra mim ip: dexsoft.ddns.net
       
      pra mim
       
      https://www.mediafire.com/file/5klqnyy6k7jda0u/OTClientV8.rar/file
       
      TA TUDO AI
    • 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. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo