Jump to content
Close
ZORAN

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

Recommended Posts

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!


Edited by ZORAN (see edit history)

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 

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Movido para tutoriais de programação.



Bruno de Carvalho Câmara / Administrador TibiaKing

b.camara@live.com / (18) 9 9640-4544


 

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

 

Share this post


Link to post
Share on other 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.



"É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota." Theodore Roosevelt

Share this post


Link to post
Share on other 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 

Share this post


Link to post
Share on other 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 :(



"É muito melhor arriscar coisas grandiosas, alcançar triunfos e glórias, mesmo expondo-se a derrota, do que formar fila com os pobres de espírito que nem gozam muito nem sofrem muito, porque vivem nessa penumbra cinzenta que não conhece vitória nem derrota." Theodore Roosevelt

Share this post


Link to post
Share on other 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 

Share this post


Link to post
Share on other sites

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?


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...