Jump to content
Sign in to follow this  
Zero

Teleport Record - Simple Age OTServ

Recommended Posts

Jackson Zani    1
Jackson Zani

Tipo, vou de tar uma ídea Zero,

Muita gente pode se confundir com as cordenadas coisa e tal

E se tu erra o nome do

<command cmd="/tpos" access="3" /> 

O server cai automaticamente, não tem como tu fazer uma msg dizendo tipo "Este lugar não existe" algo asim?

Ficaria melhor.

 

Abraços.

Share this post


Link to post
Raphael Carnaúba    1
Raphael Carnaúba

Bem pensado jackson zani,

 

So que fica dificil de fazer isso usando a classe text....

Share this post


Link to post
Jackson Zani    1
Jackson Zani

@Raphael Carnaúba

 

É bem nessa hehehe, mais pelo menos não dar nada, nenhum error, ta bom já,

Porque logo que tu da um /tpos se tu errar alguma letrinha, você cai, e o server também ;\ .

 

Abraços!

Share this post


Link to post
Dr0p    0
Dr0p

return Vocês são meus amores;

}

Share this post


Link to post
Jackson Zani    1
Jackson Zani

@Dr0p

Nois sabemos meu amor! aihoohiahioahioa

Mais estamos falando em colocar um aviso.. :D

 

Abraços!

Share this post


Link to post
Dr0p    0
Dr0p

troca os return true; por return false;

Share this post


Link to post
Raphael Carnaúba    1
Raphael Carnaúba

DrOp, pare de dar paupites antes de pensar como funciona o codigo....

Share this post


Link to post
Zero    0
Zero

Muito simples.

 

Obrigado por lembrar-me dessa falha.

 

Para verificar a existência do arquivo posso utilizar um fopen(), já para checar se a coordenada existe, basta utilizar a classe Tile e após fazer referência a coordenada em questão utilizar um código tipo:

if(!tile)

return false;

 

Por favor, vamos tentar não criar postagens sem utilidade. Poderão ser tratadas como flood.

 

Quando corrigir no código eu posto aqui.

 

Abraços!

Share this post


Link to post
Raphael Carnaúba    1
Raphael Carnaúba

Zero, dei uma melhorada na parte do teleport evitando o uso do Tile* tile, não era nescesario isso..... e adicionei um check pra ver se é um player. se não for não executa a função.

 


bool Commands::teleportToRecordedPosition(Creature *creature, const std::string& cmd, const std::string& param)

{ 

   Player* player = creature->getPlayer();

   if(!player)

      return false;

   

   std::string s; 

   char c; 

   std::stringstream spath; 

   spath << g_config.getString(ConfigManager::DATA_DIRECTORY) << "teleport\\" << param << ".txt"; 

   std::ifstream recordposFile(spath.str().c_str(), std::ios_base::in); 

   while(!recordposFile.eof())

   { 

       recordposFile.get(c); 

       if(!recordposFile.eof())

       { 

          s += c;

       }; 

   } 

/* Porque você colocou; ai ? não entendi =D */

   recordposFile.close(); 

   

   boost::char_separator<char> sepc(","); 

   tokenizer stokens(s, sepc); 

   tokenizer::iterator sit = stokens.begin(); 

   Position tPos; 

   tPos.x = atoi((*sit).c_str()); 

   sit++; 

   tPos.y = atoi((*sit).c_str()); 

   sit++; 

   tPos.z = atoi((*sit).c_str()); 

   

   ReturnValue ret = g_game.internalTeleport(player, tPos);

   if(ret != RET_NOERROR)

   {

       player->sendTextMessage(MSG_STATUS_CONSOLE_BLUE, "Invalid destination.");

       return false;

   }  

   g_game.addMagicEffect(tPos, NM_ME_ENERGY_AREA); 

   return true; 

}

Share this post


Link to post
Zero    0
Zero

Carnaúba, sem problemas.

 

O ';' é utilizado em cláusulas if de uma linha só.

Exemplo:

if(true){ código };

 

Na sua forma normal não é necessário um ';' após o '}'.

 

Vou programar agora a nova versão oficial desse código e já já edito o tópico. :)

 

Editado:

A última versão do código está no tópico. Com todas as possíveis depurações de erros encontrados até agora.

 

Abraços!

Share this post


Link to post
Jackson Zani    1
Jackson Zani

Agora sim Zero,

Ficou perfeito! parabéns ^^

Já testei.

 

Abraços!

Share this post


Link to post
Pestinha    0
Pestinha

Nossa,era oque eu tava precizando :)

Vai me ajuda bastante,MUITOO obrigado!!

Share this post


Link to post
Night Wolf    11
Night Wolf

oque é vetor de comandos me explique plz sou noob nesses assuntos

Share this post


Link to post
GOD Rodrigo    0
GOD Rodrigo

@Zero

 

Quero te dar os parabéns pelo CODE, eu desenvolvi um code parecido com esse, praticamente a mesma função que era /rc "Nome do lugar" e /gt "nome do lugar"

 

RC >> Record

 

GT >> Goto

 

Se possivel, irei liberar alguns CODES feitos por mim, que são extremamente uteis para qualquer OTServ

 

Lembrando que meu Server por enquanto é CTServer (Close Tibia Server)

 

Abração!!!!

Share this post


Link to post
GOD Rodrigo    0
GOD Rodrigo

@Zero

 

Quero te dar os parabéns pelo CODE, eu desenvolvi um code parecido com esse, praticamente a mesma função que era /rc "Nome do lugar" e /gt "nome do lugar"

 

RC >> Record

 

GT >> Goto

 

Se possivel, irei liberar alguns CODES feitos por mim, que são extremamente uteis para qualquer OTServ

 

Lembrando que meu Server por enquanto é CTServer (Close Tibia Server)

 

Abração!!!!

Share this post


Link to post
godhoster    0
godhoster

muito bom

aprovadoo!

Share this post


Link to post
Monikinhaa    0
Monikinhaa

Ae Tudo que eu kerria ajudoo bastande

Valeu mesmo ;D

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×