-
Total de itens
239 -
Registro em
-
Última visita
-
Dias Ganhos
7
Histórico de Reputação
-
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.
-
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+
-
-
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.
-
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 ^^
-
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
-
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!!
-
-
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!
-
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 ^^
-
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.
-
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. ^^
-
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.
-
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í ^^
-
-
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.
-
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
-
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.
-
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
-
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.
-
Ayron5 recebeu reputação de Black Clover em [Resolvido] Verificar se player tem tal item...
Remova o primeiro end...
-
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
-
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.
-
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
-
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.