Ir para conteúdo

Ayron5

Barão
  • Total de itens

    239
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Histórico de Reputação

  1. Upvote
    Ayron5 deu reputação a Gengo em [OtClient] Mensagem Personalizada   
    Hoje venho trazer um sistema que pode deixar seu servidor com um diferencial dos demais, espero que vocês possam aprender algo com esse sistema e criar outros tipos de personalização nas mensagens.
     
     
    O que seria essa personalização?
    Seria uma personalização da mensagem do broadcast, em vez de ficar aquela mensagem vermelha no meio da tela, você pode escolher sua própria cor para a mensagem, no fim do tópico demonstrarei com imagens para que você possa entender melhor.
     
     
    Script:
    Procure pela pasta no seu otclient em modules/game_textmessage e abra o arquivo textmessage.otui e substitua por esse:
     
    Agora na mesma pasta abra o arquivo textmessage.lua e procure pela função displayMessage e debaixo de:
    if msgtype == MessageSettings.none then return end Coloque o seguinte script:
     
     
     Feito essas alterações a personalização já deve estar funcionando, para testar você pode utilizar o seguinte comando:
     
    /bc green | O torneio mundial da Elite Four se iniciará em 15min. → Onde /bc é o comando broadcast 
    → green é a cor que deseja personalizar, pode ser tanto em hexa como o nome da cor 
    → mensagem qualquer
    → É necessário colocar o pipeline |  caso queira colocar uma outra cor, senão ele assumirá como padrão a cor vermelha do broadcast.
     
    Caso você não tenha o script do broadcast, porem é impossivel não ter já que é padrão nos servidores, vou deixar disponível aqui:
     
     
    Imagens de como fica in-game:
     
    Eai, vai ficar de fora? 
    Implemente já essa personalização e torne-se um servidor diferenciado dos demais.
  2. Upvote
    Ayron5 deu reputação a BlazerX em Security House [OtPokemon]   
    Security House
    Fala galera do Xtibia, como minha primeira de muitas contribuições, hoje venho trazer para vocês um sistema bem bacana visto no otPokemon.
     

     
    Como funciona?
    Basicamente o script não deixa que outras pessoas invitado nas houses pegue seus itens,
    somente o dono ou alguém invitado com aleta som pode pegar os itens da house.
     

     
    Script:
    Coloque na posta do seu servidor em data/creaturescript/ e coloque o nome securityHouse.lua
     
     
    Coloque a seguinte tag no arquivo do creaturescripts.xml:
    <event type="moveitem" name="securityHouse" event="script" value="player/securityHouse.lua"/>  
    Registre o evento no arquivo onLogin.lua onde se encontra na mesma pasta:
    registerCreatureEvent(cid, "securityHouse")  

     
    É só isso mesmo, espero que a comunidade goste, pois estarei trazendo muito mais scripts.
     
    Observações:
    Caso haja algum erro na execução do script ou você esteja tendo problemas, só darei suporte aqueles que deixaram seu rep+
  3. Upvote
    Ayron5 recebeu reputação de Rafael King em [OTClient] Player Info OTPokemon   
    Muito bom! Reputado ^^ 
  4. Upvote
    Ayron5 deu reputação a Gengo em [OTClient] Player Info OTPokemon   
    [OTClient] Health Player Info OTPokemon
     
    Eae galerinha do xtibia, hoje venho trazer mais uma contribuição para a comunidade, um módulo indêntico ao do OtPokemon.
    Mesmo que seja simples a instalação, tem sempre aquele que não sabe onde deve colocar o módulo, peço então que tenha paciência quanto a esse simples tutorial, aos demais aqueles que já sabem, peço que ao menos leia a Observações do módulo.
     
         1º Faça o download do módulo.
     
        2º Extraia o módulo para a pasta do seu otClient em /modules ficando assim:
     
     
    Feito o passo 1 e 2 creio que já estará funcionando, isto se você fez tudo certinho.
     
    •Observações do módulo•
     
    Demonstrativo do módulo no jogo.

     
  5. Upvote
    Ayron5 recebeu reputação de mister17 em Item que spawna um pokemon   
    @R e d  Testa aí  ^^ 
    Cria na actions um lua com o nome invoca e coloca dentro...
    No actions.xml coloca essa tag.
    Se preferir mudar o item, edite na tag o numero "1822" 
     
    É isso espero ter ajudado! Aguardo respostas ^^ 
  6. Upvote
    Ayron5 deu reputação a Refe em TalkColor - RedMoon   
    Para esse tutorial você precisa de:
    --> Sources OTCLIENT --> Cores (Parte 2 Tutorial) Parte 1, Sources OTC
    Parte 2: Cores
     
     
    Esse sistema eu desenvolvi para o RedMoon: a Real RPG Server
    Página do facebook: RedMoon
     
  7. Upvote
    Ayron5 deu reputação a Benny em [OTClient] Cor no nome por tag (ADM;GM;HELP)   
    PREVIEW:
     
     
    CÓDIGO:
     
    Abra o creature.cpp da source do seu otclient e procure por: 
    void Creature::setHealthPercent(uint8 healthPercent) Substitua tudo por:
    void Creature::setHealthPercent(uint8 healthPercent) { if(m_name.find("[ADM]")!=std::string::npos) m_informationColor = Color(0x00, 0x2a, 0xff); else if(m_name.find("[GM]")!=std::string::npos) m_informationColor = Color(0x00, 0xff, 0x0c); else if(m_name.find("[HELP]")!=std::string::npos) m_informationColor = Color(0xff, 0x00, 0x00); else if(healthPercent > 92) m_informationColor = Color(0x00, 0xBC, 0x00); else if(healthPercent > 60) m_informationColor = Color(0x50, 0xA1, 0x50); else if(healthPercent > 30) m_informationColor = Color(0xA1, 0xA1, 0x00); else if(healthPercent > 8) m_informationColor = Color(0xBF, 0x0A, 0x0A); else if(healthPercent > 3) m_informationColor = Color(0x91, 0x0F, 0x0F); else m_informationColor = Color(0x85, 0x0C, 0x0C); m_healthPercent = healthPercent; callLuaField("onHealthPercentChange", healthPercent); if(healthPercent <= 0) onDeath(); } Explicação:
     
    [ADM] é a tag (Qualquer personagem que tenha [ADM] no nome)
    Color(0x00, 0x2a, 0xff) é a cor. No caso, você tem que usar cores RGB Hexadecimais, pode encontrar uma tabela AQUI e completar com 0x.
    Exemplo:
    A cor amarela tem como código: #FFFF00
    Ficaria assim: Color(0xFF, 0xFF, 0x00)
     
    Qualquer dúvida, à disposição!
    Créditos: @Refe
     
    Abração!!
     
  8. Upvote
    Ayron5 recebeu reputação de Yan Liima em [Resolvido] Developed by...   
    Pode fechar, era lá mesmo... 
     

  9. Upvote
    Ayron5 deu reputação a Yan Liima em [Resolvido] Developed by...   
    Se não me engano é em otserv.cpp das src. Mas se a intenção é retirar os créditos originais e por o seu no lugar, seria muito arrogante da sua parte, afinal, os créditos são dados como forma de parabenizar o desenvolvedor/criador ou a pessoa no qual modificou o conteúdo. Levar créditos quando na verdade não fez nada é bem 'desumilde', acredite, já passei por isso. Creio que isso é o de menos, até porque não irá aparecer para ninguém além do utilizador da distro. Talvez no futuro tu precise saber quem que foi o desenvolvedor e tals, e não irá saber pelo fato de ter alterado ;/. Enfim, creio que irá fazer a coisa certa xD boa sorte amigo!
  10. Upvote
    Ayron5 recebeu reputação de aline533 em Aprenda a por o target da PXG no seu servidor!   
    No meu tbm tive erro na compilação .-. jfsdjfshf aí me toquei no que era.
    Mano é que na minha source está assim 
    Note que se seguir o tutorial, essa parte
    g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1));  Ela se encontra na minha pelo menos kkk aqui 
    if(m_showTimedSquare && animate) { Seguindo como está falando lá, vai ficar assim 
    Que na hora da compilação... Vai gerar um errinho e não vai compilar .-. 
    Então eu mudei e fiz assim... joguei tudo na 
    if(m_showStaticSquare && animate) { Com isso deu tudo certo... vejam ^^ 
    É isso... Vlw pelo tutor ^^ 
  11. Upvote
    Ayron5 deu reputação a Refe em BUGS: Clonar item e "derrubar" servidores   
    Hoje eu percebi que muitas pessoas estão levando a melhor com bugs de otserver.
    E eu vim aqui ensinar para vocês como fazer tais bugs, e para quem administra um servidor também saber como tal bug é feito e assim pensar em uma forma de fixar.
     
     
    Bug de mochilas:
    Morte no trade:
    Bug da nurse:
    Clonar item por guild:
     
     
    Bom, a minha ideia é mostrar como os bugs são feitos para os donos de servidores arrrumar.
    Obrigado pela atenção!
    Até a próxima.
  12. Upvote
    Ayron5 recebeu reputação de Marshmello em [Resolvido] Erro no Order   
    É como o amigo ali falou, é nas sourcers do OTC. 
    Eu concertei usando esse tutorial do @Refe Segue os passos... ^^ 
     
    Primeiro vá nas sources do OTC e ache o arquivo
     
    creature.cpp
     
    Lá ache e substitua
    int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) return 0;  
    Por
    int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) speed = 150;  
    Também troque
     
    void Creature::setSpeed(uint16 speed) { uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); } Por
    void Creature::setSpeed(uint16 speed) { if(speed < 1) speed = 150; uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); } Creditos para ele. ^^ 
  13. Thanks
    Ayron5 deu reputação a Refe em Aprenda a por o target da PXG no seu servidor!   
    Requisitos:
     
    Primeira modificação:
    No arquivo Creature.cpp, adicione uma inclusão:
    #include <framework/graphics/image.h> No arquivo Creature.cpp encontre o desvio condicional
    if(m_showStaticSquare && animate) { Lá dentro adicione:
    ImagePtr tarf = Image::load("data/images/target.png"); TexturePtr tarfe = TexturePtr(new Texture(tarf, false)); No mesmo desvio condicional troque a linha:
    g_painter->drawBoundingRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(28, 28)*scaleFactor), std::max<int>((int)(2*scaleFactor), 1));  
    Por:
    g_painter->drawTexturedRect(Rect(dest + (animationOffset - getDisplacement() + 2)*scaleFactor, Size(tarfe->getHeight(), tarfe->getWidth())*scaleFactor), tarfe); E logo após adicione:
    g_painter->setColor(Color::white); Agora, você precisa baixar a imagem abaixo e por na pasta data/images com o nome "target.png"

    Caso não consiga ver a imagem, clique aqui.
     
  14. Thanks
    Ayron5 recebeu reputação de Thalles Vitor em Custom Health Bar   
    Mano, vai estar assim lá na source.
     Aí vc vai procurar por isso 
     
     E substituir ele pra isso 
    Ficando assim...
    Tenta aí ^^ 
  15. Thanks
    Ayron5 deu reputação a Refe em Custom Health Bar   
    PREVIEW: 

     
    CÓDIGO:
     
    CRÉDITOS:
    @Refe
  16. Upvote
    Ayron5 deu reputação a Refe em [Resolvido] Opcode e função   
    É pq você tem que enviar o opcode, o extendedopcodes.lua só funciona para receber, faz uma action com o send que você botou lá para testar
    Ou seja, ponha a função
    doSendPlayerExtendedOpcode(cid, 55, onsangue) em uma action qualquer, ou talkaction e testa.
  17. Upvote
    Ayron5 deu reputação a Benny em [OTClient] Shiny Name   
    PREVIEW:

     
    CÓDIGO:
    Procure essa parte em creature.cpp:
    if(drawFlags & Otc::DrawNames) { if(g_painter->getColor() != fillColor) g_painter->setColor(fillColor); m_nameCache.draw(textRect); }  
    Troque por:
    if (drawFlags & Otc::DrawNames) { if (g_painter->getColor() != fillColor) g_painter->setColor(fillColor); CachedText shiny; shiny.setText("Shiny"); shiny.setFont(g_fonts.getFont("verdana-11px-rounded")); Rect shinyrect = Rect(point.x - shiny.getTextSize().width() / 2.0, point.y - 26, shiny.getTextSize()); if (m_name.find("Shiny") != std::string::npos) { char* shinys = "Shiny"; std::string nname = m_name; nname.erase(0, 5); m_nameCache.setText(nname); m_nameCache.draw(textRect); g_painter->setOpacity(0.5); g_painter->setColor(Color(255, 255, 0)); shiny.draw(shinyrect); g_painter->resetColor(); g_painter->resetOpacity(); m_nameCache.setText(m_name); } else { m_nameCache.draw(textRect); } }  
    Créditos: @Refe
  18. Thanks
    Ayron5 deu reputação a Refe em [Resolvido] Cores nos Nomes Source   
    As TAGS tem que ser em letras maiúsculas.
     
    [ADM] o nome vai ficar azul
    [GM] o nome vai ficar verde
    [HELP] o nome vai ficar vermelho.
     
  19. Upvote
    Ayron5 deu reputação a Marshmello em [VIDEO AULA] Multi World System   
    Salve Ekz
    Hoje Estou trazendo um video de como abrir 2 mundo em 1 só servidor
     
    REQUISITOS
    Ter as Sources do Seu Servidor  
     
  20. Upvote
    Ayron5 recebeu reputação de eliaspalermo em [Resolvido] Ncp que Teleporta para um local   
    Vamos lá: 
    em data/npc/scripts crie o arquivo npctele.lua e cole dentro...
    Agora volte e crie um arquivo xml com o nome do npc... Zure.XML e cole dentro...
    Blz agora vamos para o 2 npc o da volta...
    data/npc/scripts crie um arquivo Lua chamado... npctele2 e cole dentro...
    Volte e crie um XML com o nome Zepo e dentro cole...
    Agora é só editar as coordenadas de destino. Espero ter ajudado, Abraço. 
  21. Upvote
    Ayron5 recebeu reputação de Black Clover em [Resolvido] Verificar se player tem tal item...   
    Remova o primeiro end...
  22. Upvote
    Ayron5 deu reputação a Night Wolf em Alterar Script Porta Automática.   
    Assim vai funcionar pra 2, 3, 4, 5, 800 portas, só q sugiro vc mudar o delay pra ser a quantidade de tempo q vc quer q demore dividido pelo numero de ids q vai trocar, assim independente de ser 3 ou 500 o tempo pra abrir fechar será o mesmo.

    script:

    -- Do not remove the credits -- -- [MOVEMENT] Porta que abre automáticamente -- -- Developed by Rigby (João Vitor) -- -- Xtibia.com -- local porta = {13680, 13679, ID DA POUCO ABERTA, 13677} -- porta fechada, porta pouco aberta, porta meio aberta, porta aberta local pos = {x = 1056, y = 1054, z = 7} -- local onde vai fica a porta local delay = 150 -- ela vai demorar 0.1 segundos para fica totalmente aberta ou totalmente fechada local action = 2701 -- action que ta no .xml, se muda la vai ter que muda aqui também function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getTileItemById(pos, porta[1]).uid > 0 then for i = 1, (#porta - 1) do addEvent(function() doTransformItem(getTileItemById(pos, porta[i]).uid, porta[i + 1]) end, i * delay) end end return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) local tab = {} for _, pid in ipairs(getPlayersOnline()) do if getTileInfo(getCreaturePosition(pid)).actionid == action then table.insert(tab, pid) end end if #tab == 0 then if getTileItemById(pos, porta[#porta]).uid > 0 then for i = 1, (#porta - 1) do addEvent(function() doTransformItem(getTileItemById(pos, porta[(#porta - i) + 1]).uid, porta[(#porta - i)]) end, i * delay) end end end return true end dava pra fazer mais simples mas não quis mudar os fors pra vc não perder a lógica e aquele action ali era desnecessário já que vc podia usar item.actionid pra pegar o actionid do movements.xml
  23. Thanks
    Ayron5 recebeu reputação de Olan trein em [Resolvido] Ncp que Teleporta para um local   
    Vamos lá: 
    em data/npc/scripts crie o arquivo npctele.lua e cole dentro...
    Agora volte e crie um arquivo xml com o nome do npc... Zure.XML e cole dentro...
    Blz agora vamos para o 2 npc o da volta...
    data/npc/scripts crie um arquivo Lua chamado... npctele2 e cole dentro...
    Volte e crie um XML com o nome Zepo e dentro cole...
    Agora é só editar as coordenadas de destino. Espero ter ajudado, Abraço. 
  24. Upvote
    Ayron5 recebeu reputação de Step Records em [Resolvido] NPC Item For Teleport   
    Use this one, I've tested it now and it's 100%
     
    travel.lua
  25. Upvote
    Ayron5 recebeu reputação de xmaster0 em NPC que vende informação   
    Dale! suave? deixo aqui um npc que fiz agora para meu servidor...
    Como fala no titulo, ele cobra uma certa quantia de dinheiro ou item, para dar uma informação, só configure certinho.
    É bem simples mas pode ajudar alguém  
    Lembrando que está testado e funcionando 100% 
     
    Vá em data/npc e crie um arquivo XML com o nome info e cole isso dentro...
    Salve e feche...
    Agora em data/npc/scripts crie um arquivo LUA com o nome info e cole dentro...
    Bom, é só isso espero ajudar alguém, se ajudei deixa o REP! Aí pra fortalecer a amizade  
    LEMBRANDO QUE DENTO DO ARQUIVO ESTÁ A EXPLICAÇÃO.  
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...