Ir para conteúdo

Noninhouh

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    Noninhouh recebeu reputação de DarkRed em Auto Walk System (!Walk)   
    Bom galera, hoje vim aqui trazer pra vocês um sisteminha bem legal que a PxG possui, no entanto, esse sistema eu fiz para um servidor de Tibia, então para vocês usarem em um derivado seria bom adapta-lo, devido a outros sistemas (como o fly do poketibia).
     
    Como seria esse sistema? Basicamente você digita o comando !walk e o seu personagem começará a andar na direção em que está virado até encontrar um obstáculo, ou até digitar o comando !walk novamente.
     
    Crie um arquivo chamado walk.lua em /data/talkactions/scripts/, e cole isso dentro:
     
    Em talkactions.xml coloque a tag:
    <talkaction words="!walk" event="script" value="walk.lua"/>  
    Em creaturescripts.xml, veja se já tem o evento "logout", caso não tenha coloque:
    <event type="logout" name="PlayerLogout" event="script" value="logout.lua"/>  
    Em /data/creaturescripts/scripts/, crie um arquivo chamando logout.lua (caso não tenha) e cole isso dentro:
     
  2. Obrigado
    Noninhouh recebeu reputação de DarkRed em Auto Walk System (!Walk)   
    Obrigado @KotZletY, não sabia que não precisava registrar o do logout, vou editar o tópico 
  3. Curtir
    Noninhouh recebeu reputação de Gogetasaya em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  4. Gostei
    Noninhouh recebeu reputação de seminu em Limite Efeito Otclient   
    Isso você adiciona em /modules/game_things/things.lua no otclient, deixando assim:
    function load() g_game.enableFeature(GameMagicEffectU16)  
    Desculpe estar revivendo o tópico, mas eu também estou tendo problemas com o limite de efeitos...
    Eu modifiquei os arquivos necessários do servidor, colocando uint16_t, e adicionei a feature acima no OTClient, porém aparece isso no terminal sempre que deveria aparecer um magic effect (os effects não estão mais aparecendo):
    ERROR: ProtocolGame parse message exception (1 bytes unread, last opcode is 131, prev opcode is 180): InputMessage eof reached  
  5. Gostei
    Noninhouh recebeu reputação de PsyMcKenzie em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  6. Gostei
    Noninhouh recebeu reputação de Ayron5 em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  7. Gostei
    Noninhouh recebeu reputação de martimtiburcio em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  8. Gostei
    Noninhouh recebeu reputação de Ryukiimaru em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  9. Obrigado
    Noninhouh recebeu reputação de robiie123 em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 
  10. Curtir
    Noninhouh recebeu reputação de rizen em Monstros nao atacarem summon   
    Acredito que possa ser pela falta da função isSummon...
    No arquivo /server/data/lib/050-function.lua, adicione essa função:
    function isSummon(cid) return getCreatureMaster(cid) end  
  11. Curtir
    Noninhouh recebeu reputação de PokeZika em Hotkeys já configuradas ao baixar o client   
    Quando você configura o client, abre o mapa, e faz essas coisas, elas ficam salvas nessa pasta: C:\Users\Nome\otclient
    Provavelmente se você modificar algo nas sources, pra ele ler esses mesmos 2 arquivos que já ficam salvos na pasta do otclient, as configurações que iram ter ao ele abrir o client serão as mesmas que você deixou salva
  12. Haha
    Noninhouh recebeu reputação de Ackerzin em [PEDIDO]Contagem regressiva no teleporte   
    Eu ajustei a função do @Zzyzx, ele criou a função pra contar o tempo mas não chamou ela, só isso.
     
    OBS: Não cheguei a testar.
  13. Curtir
    Noninhouh recebeu reputação de gustavof em Auto Walk System (!Walk)   
    Bom galera, hoje vim aqui trazer pra vocês um sisteminha bem legal que a PxG possui, no entanto, esse sistema eu fiz para um servidor de Tibia, então para vocês usarem em um derivado seria bom adapta-lo, devido a outros sistemas (como o fly do poketibia).
     
    Como seria esse sistema? Basicamente você digita o comando !walk e o seu personagem começará a andar na direção em que está virado até encontrar um obstáculo, ou até digitar o comando !walk novamente.
     
    Crie um arquivo chamado walk.lua em /data/talkactions/scripts/, e cole isso dentro:
     
    Em talkactions.xml coloque a tag:
    <talkaction words="!walk" event="script" value="walk.lua"/>  
    Em creaturescripts.xml, veja se já tem o evento "logout", caso não tenha coloque:
    <event type="logout" name="PlayerLogout" event="script" value="logout.lua"/>  
    Em /data/creaturescripts/scripts/, crie um arquivo chamando logout.lua (caso não tenha) e cole isso dentro:
     
  14. Obrigado
    Noninhouh recebeu reputação de Thayguroficial em Mystery Box com broadcast   
    mysterybox.lua:
     
    OBS: Não cheguei a testar!!
  15. Gostei
    Noninhouh recebeu reputação de felipecsx em DoubleExp Potion   
    Modifique o arquivo /creaturescripts/scripts/DoublePotion.lua que o @Danyel Varejao lhe passou, deixe assim:
     
  16. Obrigado
    Noninhouh recebeu reputação de Danyel Varejao em DoubleExp Potion   
    Modifique o arquivo /creaturescripts/scripts/DoublePotion.lua que o @Danyel Varejao lhe passou, deixe assim:
     
  17. Gostei
    Noninhouh deu reputação a Rusherzin em Função print_r   
    Nos últimos dias tive problemas para ler os dados de funções que retornam tabelas (não tinha acesso a source da função no momento para ir checar quais eram os dados presentes) então resolvi fazer essa função bem simples para printar os dados das tabelas no console. Ela faz basicamente a mesma coisa que a função print_r do PHP só que é um pouquinho menos organizada. Enfim, se souber a estrutura de uma tabela, vai entender o output dessa função e vai ser bem útil.

     
    function print_r(tabela) if type(tabela) ~= "table" then return tabela end local result = "{" for ind, x in pairs(tabela) do x = (type(x) == "table") and print_r(x) or x..(ind==#tabela and "\n" or ",\n ") result = result..'['..ind..'] = '..x end return result.."}" end Um exemplo de uso aleatório seria:
    - Tu está trabalhando com uma função que retorna um array e ele é assim: {7, 6, 5, 4, 3, {"hi", "bye"}, "great"} (só que tu não sabes, óbvio), então tu usa a função print_r na função que retorna esse array e o resultado será assim no console:

  18. Curtir
    Noninhouh deu reputação a antharaz em [AJUDA/EXPLIQUEM] Dificuldade em meu script   
    @Noninhouh @Bagon 
     
    Vamos lá... irei explicar com um diálogo...
     
    Jovem gafanhoto: Qual a diferença do onDeath e o onPrepareDeath?
     
    Tio Antha: Como o próprio nome já diz, um ocorre somente quando ele morre (o onDeath) e o outro ocorre quando ele se prepara para morrer (o onPrepareDeath)
     
    Jovem gafanhoto: Mas tio Anta, então quando o player morre roda somente o script death?
     
    Tio Antha: NEGATIVO, antes do player morrer o servidor executa o script do prepareDeath pois eh quando se prepara para morrer e depois se executa o script death.
     
    Jovem gafanhoto: Nooossa tio Anta, então é uma idiotice os desenvolvedores fazerem as duas functions já que as duas só vão ser executadas quando eles morrerem né?
     
    Tio Antha: NEGATIVO jovem gafanhoto, há casos em que o player "se prepara para morrer" porém ele não morre é executado o script referente ao prepareDeath .
     
    Jovem gafanhoto: Que mentira seu gorducho!! Se for verdade, me dê um exemplo!!
     
    Tio Antha: Simples, em arenas pvps, onde se coloca tile pvp pelo map editor, quando o player "morre" na arena, ele não chega a morrer, pois não perde nada, nem fica corpo e blablabla... logo neste caso por exemplo, será executado SOMENTE o creatureevent correspondente ao prepareDeath e nenhum correspondente ao death iria ser executado.
     
    Jovem gafanhoto: Hmmm, entendi... dessa vez passa, mas na próxima te pego.
     

     
     
    Espero que tenham entendido...
  19. Curtir
    Noninhouh recebeu reputação de Bagon em [AJUDA/EXPLIQUEM] Dificuldade em meu script   
    Bom, vou falar uma forma, mas não sei se seria a melhor de fazer esse evento.
    Primeiramente eu colocaria um:
     (usará para começar a contar as mortes).
    E isso:
    addEvent(setGlobalStorageValue, 15 * 60 * 1000, storage, -1) addEvent(setGlobalStorageValue, 15 * 60 * 1000, globalStorageTeamRed, -1) addEvent(setGlobalStorageValue, 15 * 60 * 1000, globalStorageTeamBlue, -1) (usará para encerrar a contagem)
     
    Depois eu criaria um arquivo com a função onDeath(cid, corpse, deathList) no creaturescripts.xml para adicionar a contagem. Nele você colocaria algo similar a isso:
     
    Sei que foi uma explicação bem ruim, mas se você tiver um conhecimento básico de lua acho que entenderá.
  20. Gostei
    Noninhouh recebeu reputação de Cain Jorge em Player Muda nome Por Comando se tiver X item.   
    Acho que a função assim está consertada, como o @caiohp disse.
    Não vou dar certeza que irá funcionar pois não sei se essa função playerExists(name) checa players offline também.
  21. Gostei
    Tente assim:
     
    Com a tag:
    <talkaction words="!name" filter="quotation" event="script" value="name.lua"/>  
    No caso será usado assim: (!name"Jon Snow)
     
    E é como o @yanloco70 disse, não fique sempre esperando pelos outros, procure ir mexendo no script até que você ache a solução do seu problema.
  22. Gostei
    Tente assim:
     
    Com a tag:
    <talkaction words="!name" filter="quotation" event="script" value="name.lua"/>  
    No caso será usado assim: (!name"Jon Snow)
     
    E é como o @yanloco70 disse, não fique sempre esperando pelos outros, procure ir mexendo no script até que você ache a solução do seu problema.
  23. Gostei
    Tente assim:
     
    Com a tag:
    <talkaction words="!name" filter="quotation" event="script" value="name.lua"/>  
    No caso será usado assim: (!name"Jon Snow)
     
    E é como o @yanloco70 disse, não fique sempre esperando pelos outros, procure ir mexendo no script até que você ache a solução do seu problema.
  24. Gostei
    Noninhouh deu reputação a Refe em Pokemon Dash Evolution ~Open Source~   
    Conteúdo:
    **1ª Geração**
    **2ª - 4ª Adicionadas no Client**
    **Order/Fly/Ride/Surf/TP 100%*
    **Pequenos Bug's**
    ** Sources *
    ** Mega Evoluções no client **
    ** Level system **
    ** onSpawn // onMove **
    **Novas Races**
    **Anti-Divulgação **
    **Nick System(Final do tópico)**
    **Addon System(Final do tópico)**
    **TV**
    **Mapa Não Incluso**
    ** Tutoriais ensinando a fazer quase tudo! (final do topico) **
     
    Imagens 
    Downloads:
     
     
    Removendo Bugs de itens (como order, fishing, etc)
     
    Sistemas feitos para o PDE:
     
    Tutoriais feitos para o PDE:
     
    Bugs reportados:
     
  25. Gostei
    Noninhouh recebeu reputação de DboHere em [Tutorial] Ajustando andar diagonal   
    Bom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
    Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
     
    Em creature.cpp do server, procure pela linha:
    if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;  
    Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
     
    Em creature.cpp do client, procure as linhas que tem isso:
    getStepDuration(true) E deixe assim:
    getStepDuration()  
    Agora procure por:
    float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
     
    Logo mais abaixo tem:
    if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
     
    Agora em localplayer.cpp no client, novamente procure por:
    getStepDuration(true) E troque por:
    getStepDuration()  
    Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu. 

Informação Importante

Confirmação de Termo