Histórico de Curtidas
-
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:
-
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
-
Noninhouh recebeu reputação de Gogetasaya em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de seminu em Limite Efeito OtclientIsso 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
-
Noninhouh recebeu reputação de PsyMcKenzie em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de Ayron5 em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de martimtiburcio em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de Ryukiimaru em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de robiie123 em [Tutorial] Ajustando andar diagonalBom, 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.
-
Noninhouh recebeu reputação de rizen em Monstros nao atacarem summonAcredito 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
-
Noninhouh recebeu reputação de PokeZika em Hotkeys já configuradas ao baixar o clientQuando 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
-
Noninhouh recebeu reputação de Ackerzin em [PEDIDO]Contagem regressiva no teleporteEu 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.
-
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:
-
Noninhouh recebeu reputação de Thayguroficial em Mystery Box com broadcastmysterybox.lua:
OBS: Não cheguei a testar!!
-
Noninhouh recebeu reputação de felipecsx em DoubleExp PotionModifique o arquivo /creaturescripts/scripts/DoublePotion.lua que o @Danyel Varejao lhe passou, deixe assim:
-
Noninhouh recebeu reputação de Danyel Varejao em DoubleExp PotionModifique o arquivo /creaturescripts/scripts/DoublePotion.lua que o @Danyel Varejao lhe passou, deixe assim:
-
Noninhouh deu reputação a Rusherzin em Função print_rNos ú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:
-
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...
-
Noninhouh recebeu reputação de Bagon em [AJUDA/EXPLIQUEM] Dificuldade em meu scriptBom, 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á.
-
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.
-
Noninhouh recebeu reputação de dimmebag em (Resolvido){Resolvido} [TalkAction] Comando Change Name que remove item.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.
-
Noninhouh recebeu reputação de Cain Jorge em (Resolvido){Resolvido} [TalkAction] Comando Change Name que remove item.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.
-
Noninhouh recebeu reputação de DboHere em (Resolvido){Resolvido} [TalkAction] Comando Change Name que remove item.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.
-
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:
-
Noninhouh recebeu reputação de DboHere em [Tutorial] Ajustando andar diagonalBom, 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.