
Histórico de Curtidas
-
ruanvioto recebeu reputação de ianquerubim em (Resolvido)[Resolvido] OTClient LagadoResolvido, eu não sabia que tinha que implementar o sistema de uint16 para os Shooteffects na source do client. haha, Tudo falta de raciocínio lógico.
O meu shootEffects tb é estendido(uint_16). hahhah?
-
ruanvioto deu reputação a Fir3element em (Resolvido)[PEDIDO] Hp / Mp por porcentagem %%protocolgame.cpp, procure por:
msg->put<uint16_t>(player->getHealth()); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); troque por:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH))); msg->put<uint16_t>(100); } else { msg->put<uint16_t>(0); msg->put<uint16_t>(0); } procure por:
msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA)); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA)); troque por:
if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->put<uint16_t>(100); } else { msg->put<uint16_t>(0); msg->put<uint16_t>(0); } -
ruanvioto deu reputação a ZeeroBR em (Resolvido)[Resolvido] OTClient LagadoErrinho chato, né mano? mas achei a solução.
1 - Vá na pasta do seu client
2 - Abra o arquivo otclientrc.lua com seu editor de texto
3 - Substitua o que tem lá dentro por isto
-- this file is loaded after all modules are loaded and initialized -- you can place any custom user code here print 'Startup done :]' -- g_game.enableFeature(16) connect(g_game, { onGameStart = function () g_game.enableFeature(GameExtendedClientPing) end }) connect(g_game, { onGameStart = function () g_game.enableFeature(16) end })
-
ruanvioto deu reputação a Bruno Carvalho em [C++] Opcode versão 8.54+Lembrando que o TFS 1.0, TFS 0.4 e OTX mais recentes já vem com isso...
-
ruanvioto deu reputação a L3K0T em AUMENTANDO TELA DE VISÃO OTCLIENTE EM REV3884 8.60 0.4REV3884 TFS 0.4 OTC 0.6.6
OBSERVAÇÃO:
Bom galera hoje vim trazer um código de expansão de visão para o otclient alterado por mim, usado somente para rev3884 e então se você usa um tfs 0.3.6 ou tfs 1.0 não vai dar certo,
*Esse código foi alterado por mim para ser usado apenas para rev3884, procolo 8.60 e TFS 0.4 que no caso não achei e resolvi compartilhar essas alterações.
1° TUTORIAL 1 SOURCE DO SEU SERVIDOR.
Abra Protocollgame.cpp
1 Ache
((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && //(y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); ALTERE PARA:
((x >= myPos.x - Map::maxClientViewportX + offsetz) && (x <= myPos.x + (Map::maxClientViewportX+1) + offsetz) && (y >= myPos.y - Map::maxClientViewportY + offsetz) && (y <= myPos.y + (Map::maxClientViewportY+1) + offsetz));
2 Ache:
GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg);
ALTERE PARA:
GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg);
3 Ache:
if(oldPos.y > newPos.y) // north, for old x { msg->put<char>(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->put<char>(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->put<char>(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->put<char>(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } ALTERE PARA:
if (oldPos.y > newPos.y) { // north, for old x msg->put<char>(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } else if (oldPos.y < newPos.y) { // south, for old x msg->put<char>(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y + (Map::maxClientViewportY+1), newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } if (oldPos.x < newPos.x) { // east, [with new y] msg->put<char>(0x66); GetMapDescription(newPos.x + (Map::maxClientViewportX+1), newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } else if (oldPos.x > newPos.x) { // west, [with new y] msg->put<char>(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); }
4 ache
GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 5, 18, 14, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 4, 18, 14, 4, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 3, 18, 14, 5, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 2, 18, 14, 6, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 1, 18, 14, 7, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 0, 18, 14, 8, skip);
Altere para
GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 5, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 4, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 4, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 5, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 6, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 7, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 0, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 8, skip);
5 ache
GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip);
ALTERE PARA
GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip);
6 ACHE
GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg);
ALTERE PARA
GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg);
7 ACHE
GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); ALTERE PARA
GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg);
8 Ache
GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 14, -1, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 1, 18, 14, -2, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip);
Altere para
GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -1, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -2, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip);
9 ache
GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip);
Altere para
GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip);
10 ache
GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg);
Altere para
GetMapDescription(oldPos.x + Map::maxClientViewportX+1, oldPos.y - (Map::maxClientViewportY+1), newPos.z, 1, ((Map::maxClientViewportY+1)*2), msg);
AGORA EM MAP.H
ache
static const int32_t maxViewportX = 11; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; altere para:
static const int32_t maxViewportX = 18; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 18; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 12;
Pronto agora é só compilar a source do seu servidor 8.60 rev3884
PARTE 2 OTCLIENT 0.6.6
abra o map.cpp da source do otclient
ache
void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } ALTERE PARA
void Map::resetAwareRange() { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 12; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } COMPILE A SOURCE DO OTCLIENT E PRONTO!!! ESPERO TER SANADO VÁRIAS DÚVIDAS DE AUMENTAR TELA DO OTCLIENT EM REV3884.
CRÉDITOS: Pra mim pela alterações funcionais. e pelo Flatlander por disponibilizar para tfs 0.3.6 e 1.0 pois esse está alterado pra tfs 0.4
-
ruanvioto deu reputação a Absolute em [8.60] Baiak Absolute - Editado completo [O MELHOR]Fala galera do TK, andei pegando um BAIAK base pra dar uma editada, trackeando alguns mapas e otimizando algumas coisas para disponibilizar um baiak "filé" para vocês do TK
Sem mimimi, vamos ao que interessa e depois algumas imagens!
O que temos neste lindo Baiak?
New Templo bem baiak.
Dodge System
Run Event
BP Event
Guilds System
Castle 24H
Battlefield Event
Blood Castle Event
Firestorm Event
Capture the Flags Event
Items Donates para vender no site/jogo
Items VIP a mostra no termplo
3 Áreas VIPS jogo e Donate
Vários Teleports
Novas Hunts
Look Frags
Sistema de Refinamento
Criminal System
Hit Rank
Reset System
Full Task
Zombie Event
[VIP] no nome ao adquirir VIP
Distro 04 com Cast System (LUAN)
Sistema de teleporte (!FLY)
Level Skills System
Ao cadastrar o player irá ganhar 2 dias VIPs na quest do templo!
War System
Várias quests
Arena PVP
Treiners modificados
Roda em SQLITE E MYSQL!
E muito mais, basta baixar para conferir!
Vamos as imagens:
Ao abrir o mapa:
Ingame:
Local onde o player começa:
Templo Baiak Absolute:
Teleports Free's Básicos:
Área de Eventos e Summon por alavanca:
BP Event Room:
TPS VIP DONATE:
TPS VIP +:
TPS VIP ++:
Pasta do servidor:
Dowload/Scan
Download do servidor completo: http://www.4shared.com/rar/e7YfCJ_Sce/Baiak_Absolute.html?
Scan: https://www.virustotal.com/pt/url/6c6070c9c24da3b7719a92a1788bd2d8434d81c541b0038f68777621a121dccc/analysis/1407454456/
Desejo a todos um bom proveito e sucesso
Créditos:
Até a próxima
Absolute.
-
ruanvioto deu reputação a KotZletY em Aumentando a quantidade de effects permitida - 8.60Salve galera, recentemente um Membro postou um Tópico de como tirar o Limite de Efeitos do Old-Client(Client da Cipsfot ), só que somente para a versão 8.54, então devido ao numero de pedidos dos membros que utilizam Client na versão 8.6, resolvi criar esse Tópico ensinando a fazer isso, porém ele criou um Programa para Sobre-Escrever o Endereço, o meu Tutorial será na raça. Kkkkk Vamos nessa, a baixo citarei o Programa que iremos utilizar para essa mudança, e uns requisitos!
Informações e Requisitos!
Vamos colocar a mão na massa, abra o Debugador que faz a leita em Hexadecimal, para isso usaremos o OllyDbg, que deixarei o Link dele no final do Tópico. Após baixado abra ele. E no icone da pastinha no canto superior esquerdo, clique na pastinha e selecione O diretório do Client.
Obs: Lembre-se de deixa o Client junto com a SPR e Dat, pois irá precisa runnar o Client para ele mostrar os Endereços!
Apos ter carregado completamente, irá aparecer na metade a barra de rolagem, então suba para cima até o fim.
Feito isso de um Ctrl+S para abrir a função Find Command, e então digite essa chamada CALL 00410450 e de um enter.
OBS, lembre-se de desmarca a função Entire Block, e então achará a função, impossível dar erro, afinal só existe uma chamada como esse Code.
Depois de ter achado ela, de um Enter com a função selecionada, e irá até outro Endereço.
WTF, aja endereço nessa poxa! Kkkkk
E agora é hora da mágica, iremos mudar para Uint_16 finalmente. Kkkkkk,
Ali em baixo mais precisamente em cima dos Args, terá duas funções que você irá alterá, como mostra os próximos passos.
Click na primeira chamada, e aperte espaço ou aperte duas vezes com o botão esquerdo do mause, para que você possa alterá o endereço.
Irá vim a função CALL 004F9A60 então mude por completo para CALL 004F9C00 e click em assembly:
Agora fazemos isso na segunda função, abaixo da primeira, click duas vezes ou aperte espaço, e virá a função MOVZX EAX,AL, e então mude para
MOVZX EAX, AX e depois click em assembly:
Pronto, só isso seu Client agora passará a Ler em Uint_16 o que significa que você poderá usar até 65534 Effects no seu Old-Client, mais ainda não acabou, precisamos salvar. Após ter mudado, click com o Botão auxiliar(esquerdo) do mause, em cima em cima de uma das funções, qualquer uma, e vá em Copy to executable > All Modifications:
E depois Click em Copy All:
Irá aparecer outra janela, agora nessa nova janela, click novamente com o botão esquerdo do mause, E click em Save file e salve o Exe modificado na pasta desejada:
Pronto, seu Client foi Modificado com Sucesso, e como falei anteriormente, não esqueça de configurar seu Server em Uint_16, e ter liberado os efeitos para mais de 255, coloque quantos quiser, brincks tem um limite, de 65534, e fim, seja feliz.
Antes de mais nada vamos testa ? Veja no meu Dat, tem efeitos até 259, então irei usar o 259 para mostra que está tudo certo.
Isso ae Galera, tudo nosso nada deles. Bom Uso do Uint_16, é algo que presenciei muitos pedindo, e muitos cobrando para fazer essa Alteração, bem, ta ae, e vou nessa. E agora claro o Link do Download.
Gostaria de Informa que o Vírus Detectado, não é nada mais nada menos que um Falso-Positivo, por se tratar que Programa, faça uma Alteração Interna dentro de Outro programa. Caso você não saiba modificar a source para uint16 siga esse Tutorial aqui!
Download do OllyDbg Versão 1.10
Scan do OllyDbg Versão 1.10
Créditos: {
Breno Neves (Eu),
Fernando Prado (Parça que me passou o Ultimo endereço)
}
Peço desculpas pelos erros de Escrita nas imgs. Sorry! xD
Conteúdo Exclusivo para o Tk, não é permitido levar para outro site, blog ou fórum!
-
ruanvioto deu reputação a KotZletY em Tutorial 2 em 1 - Magic e Shoot EffectsBom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão!
Abaixo umas informações essenciais !
Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 255, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou Distance Effects), caso queria os dois, use ambos.
Vamos começar primeiramente com os Magic Effects:
Agora vamos mudar o ShootEffects para uint16.
Bom não adianta mudar isso se não fizer alteração no Client, então deixarei aqui, dois Tópicos de como mudar de uint8 para uint16 no Client em em ShootEffects e MagicEffect.
Mudando os Efeitos de uint8 a 16 para Magic Effects
Mudando os Efeitos de uint8 a 16 para Shoot Effects
Então é isso ae, qualquer erro só comentar para que eu possar tentar ajudar.
Tópico exclusivo do Tk, proibido posta em outro site, blog ou fórum!
xD
-
ruanvioto deu reputação a Yan Liima em [8.60] TFS 0.4 Rev3996 War & CastSalve salve pessoal, no inicio desse ano estava dando uma estudada e mexendo com a TFS 0.4 rev3884, e vi que havia alguns bugs e que não tinha Cast incluso. Com base nisso decidi atualizar e otimizar a source, já que ainda ela é uma das mais utilizadas no mundo de Otserv. Decidi compartilhar esse meu trabalho com vocês! Acredito que possa ser uma das melhores REV atualmente.
Conto com o seu feedback, caso haja algum bug, algo que tenha que mudar/optimizar, não exite em avisar aqui no tópico. Toda ajuda será bem vinda xD
The Forgotten Server, Tibia Versão: 8.60
O que contém nela?
Dentro da pasta contém o config.lua com todas as tag já adicionadas.
Não esquecam de executar a Query do Cast na sua DB:
Downloads uint8(Effects até 255)
Distro: TheForgottenServer.exe
Src + datapack: Source & Data
Recentes atualizações: GitHub
Downloads uint8 sem o CAST incluso
Distro: TheForgottenServer.exe
Src + datapack: Source & Data
-------------------------------------------------------
Downloads uint16(Effects até 65534)
Distro: TheForgottenServer.exe
Src + datapack: Source & Data
É necessário fazer a modificação do Hexadecimal no cliente. Aqui tem um já pronto: Cliente.exe(com mc) ou Cliente.exe(sem mc) (só será necessario se utilizar a src com o uint 16.)
Lembrado também que precisa utilizar a lib 000-constant.lua deste datapack.
-------------------------------------------------------
Scans:
Distro(uint8) & Distro(uint16)
Source
Cliente
Obs: Os virus detectado é um falso positivo, então não se preocupem!
A distro foi testada em Windows e em Linux Ubuntu 12.04, 14.04, em
ambos funcionaram muito bem!
É compatível com 16 também e o 18.04 é necessário fazer uma alteração que é possível encontrar no post desse tópico.
É possível compilar em Dev Cpp e Visual-Studio.
E para quem se interessa em saber onde se localiza os code do Cast, aqui está uma imagem. Você pode achar procurando por "//CAST"
Façam um ótimo aproveito ?
-
ruanvioto deu reputação a runeraserver em Custom Cliente - Todas as versões - Qualquer IPFala galera,
Vejo muita gente com dúvida de como fazer custom clients. Neste tutorial vou ensinar para vocês criar custom clients de todas as versões e com qualquer ip.
1º Passo:
• Baixe o programa NotePad http://notepad-plus-plus.org/repository/6.x/6.7.5/npp.6.7.5.Installer.exe
2º Passo:
• Vá no diretório onde está instalado o client que deseja editar, clique com o direito em Tibia.exe e selecione "Edit with Notepad++"
3º Passo:
• Pressione ctrl + f e busque por login01.tibia.com e substitua pelo seu ip, (exemplo.com.br).
Perceba que login01.tibia.com + os 3 NUL que aparecem, somam 20 caracteres (NUL conta como 1).
O seu IP deverá conter 20 caracteres ou menos.
Exemplo:
exemplo.com.br possui 14 caracteres
Como o meu exemplo possui 14 caracteres e login01.tibia.comNULNULNUL possui 20, vou ter que preencher esses 6 caracteres que faltam com 6 NUL.
Para isso, você deverá deixar o cursos de texto na frente do seu ip (exemplo.com.br"AQUI") e ir para Plugins>Converter>Conversion.
Digite 0 em decimal e clique em (ASCII: Insert) 6 vezes, devendo ficar assim: exemplo.com.brNULNULNULNULNULNUL (Lembrando que acrescenta 6 NUL no caso do exemplo, o seu IP deverá completar os 20 caracteres podendo haver mais ou menos NULs).
Procure por esses ips e faça os passos acima em todos:
login01.tibia.com login02.tibia.com login03.tibia.com login04.tibia.com login05.tibia.com tibia01.cipsoft.com tibia02.cipsoft.com tibia03.cipsoft.com tibia04.cipsoft.com tibia05.cipsoft.com Feito isso, procure por:
132127743205872284062295099082293384952776326496165507967876361843343953435544496682053323833394351797728954155097012103928360786959821132214473291575712138800495033169914814069637740318278150290733684032524174782740134357629699062987023311132821016569775488792221429527047321331896351555606801473202394175817 Substitue por:
109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413 Créditos: Gesior
-
ruanvioto deu reputação a LeoTK em (Resolvido)[Ajuda] Como trocar o Icone de um Executavel?amigo você mais precisar do reshack para mudar a icon, e use o iconfx para criar seu icon vou fazer uma breve explicação
eu pego essa sua imagen abro ela no iconfx < ele tem uma opção que ao você com a imagen aberta nele tem um icone igual do windows na parte superior /\ perto das opçoes de abrir a imagen, ao voce clikar nele ele automaticamente faz as modificações na imagen depois você salva e fecha ai abre o reshack, abra o .exe do seu client nele e procure por icon group 128,1033 a direita vai ver o icone que tiver > com 4 ou 5 imagens e vai da mais nítida a mais borrada você vai na opção action do reshack, clique em replace icon depois clique em open file with new icon... procure pela imagen que você fez no iconfx e abra ao abrir ira mostra-lá no seu reshack ai clique em replace, depois no reshack clique em file,save as e salve em cima do seu client que você abriu
obs¹: faça um bakup do seu client antes de fazer esse processo
obs²: os programas são reshack, iconfx.
obs³: lembre-se de salvar corretamente o método do iconfx se não pode dar algum bug
-
ruanvioto deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]Dragon Ball
Rox
Servidor 100% estável com mais de 200 horas online.
38 Vocações sendo 9 delas vip que são:
Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
Chilled,C8 e King Vegetta.
Spells de fast attack (Usa uma vez sai 10 hits).
Eventos automaticos como: Castle,Battlefield,Run event.
Reborn level maximo 600.
Vamos aos bugs que eu encontrei:
* Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
* Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
* Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
Update v2
Adicionado 7 novas vocações vips sendo elas:
Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
Vocações que antes era vip no update v1 agora são free.
Fazer reborn não precisa mais fazer quest das esferas do dragão.
Adicionado cassino que se ganha small diamonds que se troca por:
Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
Adicionado 3 bosses espalhados pelo mapa (Earth).
Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
Adicionado sistema de upgrade fazendo seu item ficar mais forte.
Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
Area de evento pvp e dice/bag adicionada no Yama.
Area vip adicionada.
Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
Algumas modificações no mapa, hunts, quest.
Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
Gostou ? Clique em Gostei logo abaixo.
Para consertar o erro da loteria só executar essa query na sua database:
CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Downloads
Server (Distro para windows e linux já compilada) Scan
Cliente Scan
Sources Scan
Site (Modern Acc) Scan
Database Scan
Creditos server: Kramer, WhiteBubble
Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
-
ruanvioto deu reputação a Lodus em NewSprites do Goku e Vegeta (All Forms)Só falto o limite break mas tá valendo né?
-
ruanvioto deu reputação a samlecter em Aumentar limite de efeitosApós fazer isso, já estará funcionando ou tenho que compilar a source ou algo do tipo para que funcione?
@Featzen Amigo, na minha source, algumas coisas são um pouco diferentes, eu tentei deixar exatamente como você diz, e na hora de compilar aparecem varios erros (se compilar sem editar nada, funciona)
Exemplo, você manda procurar em 2 lugares por:
void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type)
em protocolgame.cpp está exatamente igual, eu substituo como dito no post.
Já no protocolgame.h está assim:
void sendMagicEffect(const Position& pos, uint8_t type)
Em alguns outros lugares eu encontro o "void Game::" em vez de só "void" , em outros ao contrário...
Mesmo com essas diferenças, eu consegui encontrar TODOS, vi que só o que muda é o:
ProtocolGame:: ou
Game::
Tentei substituir pelo do post e deixar tudo EXATAMENTE como diz o post, porém da erro, creio que em alguns lugares eu devo retirar o ProtocolGame, em outros colocar, porém são muitas combinações possiveis, estou tentando e não estou conseguindo, faria o imenso favor de tentar adaptar? (pfv )
Upei as sources no 4shared que já tem scan:
Source
Deixando aqui uma Contribuição para quem conseguiu aumentar o limite de efeitos e não quer digitar todos os efeitos com nome diferente, respectivo numero em hexadecimal e decimal(comentario), eu fiz essa parte, podem conferir se quiser.
OBS: Ainda NÃO consegui aumentar, quem puder me ajudar/aumentar para mim, Source está ali em cima
Contribuição:
MAGIC_EFFECT_INSECTS4ea = 0xDD, //221 MAGIC_EFFECT_INSECTS4eb = 0xDE, //222 // Adicionado -\/ MAGIC_EFFECT_INSECTS4ec = 0xDF, //223 MAGIC_EFFECT_INSECTS4ed = 0xE0, //224 MAGIC_EFFECT_INSECTS4ee = 0xE1, //225 MAGIC_EFFECT_INSECTS4ef = 0xE2, //226 MAGIC_EFFECT_INSECTS4eg = 0xE3, //227 MAGIC_EFFECT_INSECTS4eh = 0xE4, //228 MAGIC_EFFECT_INSECTS4ei = 0xE5, //229 MAGIC_EFFECT_INSECTS4ej = 0xE6, //230 MAGIC_EFFECT_INSECTS4ek = 0xE7, //231 MAGIC_EFFECT_INSECTS4el = 0xE8, //232 MAGIC_EFFECT_INSECTS4em = 0xE9, //233 MAGIC_EFFECT_INSECTS4en = 0xEA, //234 MAGIC_EFFECT_INSECTS4eo = 0xEB, //235 MAGIC_EFFECT_INSECTS4ep = 0xEC, //236 MAGIC_EFFECT_INSECTS4eq = 0xED, //237 MAGIC_EFFECT_INSECTS4er = 0xEE, //238 MAGIC_EFFECT_INSECTS4es = 0xEF, //239 MAGIC_EFFECT_INSECTS4et = 0xF0, //240 MAGIC_EFFECT_INSECTS4eu = 0xF1, //241 MAGIC_EFFECT_INSECTS4ev = 0xF2, //242 MAGIC_EFFECT_INSECTS4ex = 0xF3, //243 MAGIC_EFFECT_INSECTS4ez = 0xF4, //244 MAGIC_EFFECT_INSECTS4fa = 0xF5, //245 MAGIC_EFFECT_INSECTS4fb = 0xF6, //246 MAGIC_EFFECT_INSECTS4fc = 0xF7, //247 MAGIC_EFFECT_INSECTS4fd = 0xF8, //248 MAGIC_EFFECT_INSECTS4fe = 0xF9, //249 MAGIC_EFFECT_INSECTS4ff = 0xFA, //250 MAGIC_EFFECT_INSECTS4fg = 0xFB, //251 MAGIC_EFFECT_INSECTS4fh = 0xFC, //252 MAGIC_EFFECT_INSECTS4fi = 0xFD, //253 MAGIC_EFFECT_INSECTS4fj = 0xFE, //254 MAGIC_EFFECT_INSECTS4fk = 0xFF, //255 MAGIC_EFFECT_INSECTS4fl = 0x100, //256 MAGIC_EFFECT_INSECTS4fm = 0x101, //257 MAGIC_EFFECT_INSECTS4fn = 0x102, //258 MAGIC_EFFECT_INSECTS4fo = 0x103, //259 MAGIC_EFFECT_INSECTS4fp = 0x104, //260 MAGIC_EFFECT_INSECTS4fq = 0x105, //261 MAGIC_EFFECT_INSECTS4fr = 0x106, //262 MAGIC_EFFECT_INSECTS4fs = 0x107, //263 MAGIC_EFFECT_INSECTS4ft = 0x108, //264 MAGIC_EFFECT_INSECTS4fu = 0x109, //265 MAGIC_EFFECT_INSECTS4fv = 0x10A, //266 MAGIC_EFFECT_INSECTS4fx = 0x10B, //267 MAGIC_EFFECT_INSECTS4fz = 0x10C, //268 MAGIC_EFFECT_INSECTS4ga = 0x10D, //269 MAGIC_EFFECT_INSECTS4gb = 0x10E, //270 MAGIC_EFFECT_INSECTS4gc = 0x10F, //271 MAGIC_EFFECT_INSECTS4gd = 0x110, //272 MAGIC_EFFECT_INSECTS4ge = 0x111, //273 MAGIC_EFFECT_INSECTS4gf = 0x112, //274 MAGIC_EFFECT_INSECTS4gg = 0x113, //275 MAGIC_EFFECT_INSECTS4gh = 0x114, //276 MAGIC_EFFECT_INSECTS4gi = 0x115, //277 MAGIC_EFFECT_INSECTS4gj = 0x116, //278 MAGIC_EFFECT_INSECTS4gk = 0x117, //279 MAGIC_EFFECT_INSECTS4gl = 0x118, //280 MAGIC_EFFECT_INSECTS4gm = 0x119, //281 MAGIC_EFFECT_INSECTS4gn = 0x11A, //282 MAGIC_EFFECT_INSECTS4go = 0x11B, //283 MAGIC_EFFECT_INSECTS4gp = 0x11C, //284 MAGIC_EFFECT_INSECTS4gq = 0x11D, //285 MAGIC_EFFECT_INSECTS4gr = 0x11E, //286 MAGIC_EFFECT_INSECTS4gs = 0x11F, //287 MAGIC_EFFECT_INSECTS4gt = 0x120, //288 MAGIC_EFFECT_INSECTS4gu = 0x121, //289 MAGIC_EFFECT_INSECTS4gv = 0x122, //290 MAGIC_EFFECT_INSECTS4gx = 0x123, //291 MAGIC_EFFECT_INSECTS4gz = 0x124, //292 MAGIC_EFFECT_INSECTS4ha = 0x125, //293 MAGIC_EFFECT_INSECTS4hb = 0x126, //294 MAGIC_EFFECT_INSECTS4hc = 0x127, //295 MAGIC_EFFECT_INSECTS4hd = 0x128, //296 MAGIC_EFFECT_INSECTS4he = 0x129, //297 MAGIC_EFFECT_INSECTS4hf = 0x12A, //298 MAGIC_EFFECT_INSECTS4hg = 0x12B, //299 MAGIC_EFFECT_INSECTS4hh = 0x12C, //300 MAGIC_EFFECT_INSECTS4hi = 0x12D, //301 MAGIC_EFFECT_INSECTS4hj = 0x12E, //302 MAGIC_EFFECT_INSECTS4hk = 0x12F, //303 MAGIC_EFFECT_INSECTS4hl = 0x130, //304 MAGIC_EFFECT_INSECTS4hm = 0x131, //305 MAGIC_EFFECT_INSECTS4hn = 0x132, //306 MAGIC_EFFECT_INSECTS4ho = 0x133, //307 MAGIC_EFFECT_INSECTS4hp = 0x134, //308 MAGIC_EFFECT_INSECTS4hq = 0x135, //309 MAGIC_EFFECT_INSECTS4hr = 0x136, //310 MAGIC_EFFECT_INSECTS4hs = 0x137, //311 MAGIC_EFFECT_INSECTS4ht = 0x138, //312 MAGIC_EFFECT_INSECTS4hu = 0x139, //313 MAGIC_EFFECT_INSECTS4hv = 0x13A, //314 MAGIC_EFFECT_INSECTS4hx = 0x13B, //315 MAGIC_EFFECT_INSECTS4hz = 0x13C, //316 MAGIC_EFFECT_INSECTS4ia = 0x13D, //317 MAGIC_EFFECT_INSECTS4ib = 0x13E, //318 MAGIC_EFFECT_INSECTS4ic = 0x13F, //319 MAGIC_EFFECT_INSECTS4id = 0x140, //320 MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS4id, //320
-
ruanvioto deu reputação a Featzen em Aumentar limite de efeitosBom, todos acham 255 efeitos muito pouco, né? Então tá aí, pra quem quiser aumentar esse limite pra 65,535.
Mas como nem tudo é perfeito, pra fazer isso você precisará estar usando OTClient e também ter as sources do seu servidor.
PS: Só testei em 8.54
Vamos ás edições do servidor:
No protocolgame.cpp:
No protocolgame.h:
No game.cpp:
No game.h:
No player.h:
Bom, agora falta editar no const.h:
Está quase pronto, agora, falta fazer o client aceitar esses dados, pra isso, em otclient/modules/game_things/things.lua, em baixo de:
local version = g_game.getClientVersion()Adicine:
g_game.enableFeature(GameMagicEffectU16) Pronto, se fizer tudo corretamente, funcionará \o
Bom, Lordbaxx disponibilizou a sua source(de poketibia) com o limite extendido:
Créditos:
Featzen(100%)
-
ruanvioto deu reputação a Pedro. em Styller RPG | 10.98 | Custom Quests | NPCs | SpellsVenho disponibilizar pra vocês um Styller diferenciado, quests unicas, hunts, npcs, spells, bosses. O projeto é do luan e está no github, porém eu baixei e fiz bastante atualizações e modificações n/ delas e to deixando aqui p vocês! bjs
https://www.mediafire.com/file/49hqutht6yu1iqv/alunia.rar https://www.virustotal.com/#/file/b729a94f673766f21dadf04f741844c8756a042ea8348067739fe21445b72574/community
- Informações do Servidor e Sistemas:
→ Versão: 10.98 / não vou disponibilizar distros compilados, a src tá indo junto, qm quiser compile.
→ War System, Addons System, Mounts System, Market System e Training OFF.
→ Vip System, Clean Database (players, accounts e houses inativas), Reward Level System, Arena PVP.
→ Stats ITEMS ( Rare, Epic e Legendary )
→ Skill Points ( Cada atributo de acordo com sua vocação, ex: Knight [Axe, club, sword, mana/life] Mages [Mana/life, magic]
→ Cassino System
→ Raid System ( 3 piso dos teleports há uma room de Bosses )
→ AutoLoot
→ Reformulado NPCS, Bless, Tools, Loot, Runes, Alavancas.
→ Refeito Rooms de teleport, e 80% das hunts são novas.
→ Adicionado ITEMS VIP ( ctrl + f e procure por Donate Master )
→ 4 Vocações novas.
→ 4 Spells novas
- Eventos do Servidor
→ Duca Evento
→ Zumbi Evento
→ BattleField Evento
- Quests
→ Necromancer ou Nightmare Shield ( Propria )
→ Demon Helmet ( Reformulada )
→ Yalaharian Quest ( Propria, com boss )
→ Wrath of Emperor ( Propria )
→ Blue Legs & BOH ( Propria, com boss )
→ The Calamity ( Propria )
→ Umbral Quest ( Propria, quest mais pica que já fiz, não tá bugada só tem uns mistérios, pensem antes de fazer. )
→ Dwarven Legs ( Propria )
→ Dragon Ling (Mount, Propria)
→ Winged Helmet.
→ Entre outras que já tinha no servidor, só mencionei as que eu fiz xd
Algumas FOTOS do servidor.
Créditos @luanluciano93
-
ruanvioto deu reputação a Tio Marshmello em Mordem Acc Otpokemon 4.0 Re-uploundBom Galera Esse Site ja Foi Postado Aki No Forum Mais O Link Foi Retirado Entao Estou trazendo Outra vez pra caso alguem queira usar
IMAGENS
Download
Scan
Creditos Para Otpokemon Pelo Site
eo @wougoplex Pelo Reuplound
-
ruanvioto deu reputação a Nogard em [Npc] Upgrade WeaponsBom, fiz esse script esses dias, e pensei que poderia ser útil há alguem, ou não. '-' De qualquer forma, a intenção que vale.
Como funciona: Ao dizer 'melhorar' ao Npc, ele verificará que item o player tem em mãos (no slot hand), então se o item estiver pré configurado no script, o Npc dirá o que é preciso pra melhorar o item em questão. Caso o player não tenha o material necessário, o npc dirá quantos items o player possui, e novamente, quantos são necessários. Caso tenha os items, sua arma será transformada em uma nova, também pré configurada. Pode-se usar o script pra dar upgrade em armas, armors, helms, etc. basta configurar os ids no script.
Vá em Data/Npc, crie um novo arquivo .xml chamado Keny, e cole isso dentro:
Salve, e feche.
Agora vá em Data/Npc/Scripts, crie um novo arquivo .lua chamado upgradeitems, e cole isso dentro:
Salve ambos.
Entre em seu servidor, e digite /n Keny, e o teste.
Pronto.
Explicando o Script:
Espero que seja útil a alguém, abraços.
Vídeo:
-
ruanvioto deu reputação a KotZletY em Animação do jutsu não vai em cima@xdas sei sim, primeiramente desative o capslook, é contra as regras titulos com capslook, tire 2 minutos para ler as regras do fórum.Você tem 24 horas para alterar o titulo do seu tópico.
Em relação ao tópico, isso depende do efeito, você deve centralizar a posição onde o efeito vai sair, o que é complicado se você não tiver um conhecimento básico sobre.
Mas dando um pequeno exemplo:
doSendMagicEffect(getThingPosition(cid), NumeroDoEfeito) Essa função acima manda o efeito na posição do player, porém como dito, depende de como a sprite do efeito foi feito, as vezes não ficam centralizadas, uma das maneiras de centralizar é modificando a pos onde o efeito vai sair, supomos que o efeito precise ir 1sqm para direita para ficar centralizada com o player:
local pos = getThingPosition(cid) doSendMagicEffect({x=pos.x+1, y=pos.y, z=pos.z}, NumeroDoEfeito) a pos x é a responsável pelos lados, ao querer mandar algo para direita você aumenta a pos, +1, então irá 1sqm para direita, quer aumentar, isso claro a parti da pos atual do player,
supomos que minha pos seja x = 1000, y = 900, z = 7
e eu mande um efeito nessa pos, e o efeito sai do lado, basta centralizar modificando a pos, precisa ir pra esquerda ? Diminua a pos x, ficando x = 999, y = 900, z = 7 caso precise ir para direita basta aumentar como no exemplo mais acima, a pos y é responsável pela pos cima e baixo,
caso queira subir o efeito, bastar diminuir a pos y, caso queira descer o efeito, basta aumentar a pos y, e z é responsável pelo floor(andar).
Com essa base, você já consegui modificar, entretanto sugiro que você procure pelo fórum mais tutoriais explicando um pouco mais sobre isso, o que tem sobra.
Até a próxima!
-
ruanvioto deu reputação a dodoby em Pokémon Open Source 8.54 [Base]Tudo oque eu li foi: "pokeXgames". Fora teu português que é tão ruim, que se fosse no facebook apareceria "Ver tradução".
-
ruanvioto deu reputação a Marco Oliveira em Servidor 10.90 | Windows 32/64 Bits | Versão FinalDepois de muitos pedidos e muita procura acabei compilando o TFS da versão 10.90, está estável.
As sources são originais, não houve modificações nelas, apenas os sistemas foram adicionados...
Clique Aqui para fazer o download da versão 32 bits.
Clique Aqui para fazer o download da versão 64 bits.
Clique Aqui para fazer o download das sources.
Clique Aqui para o scan de 32 bits.
Clique Aqui para o scan de 64 bits.
Clique Aqui para o scan das sources.
Para usar o Reward Chest adicione a seguinte flag no monstro.
<flag rewardchest="1" /
Você também pode definir o drop para ser único, dessa forma só a pessoa que fez o maior dano irá obter este item. exemplo:
<item id="5903" chance="100000" uniquedrop="1" /><!-- ferumbras' hat --> Na versão final foram corrigidos os bugs das mensagens do Server Log como as de potion e loot. Seguem as screen shots..
Ps: Eu ainda não tinha disponibilizado o download para outros fóruns.. até pq era exclusivo de um outro fórum do mesmo conteúdo....
Se algum ADM tiver alguma duvida sobre os tópicos não autorizados por favor me mandar msg inbox.
-
ruanvioto deu reputação a xWhiteWolf em (Resolvido)[PEDIDO] Editar Items.Você coloca no items.xml oque vc quer que o item faça, experimenta usar comandos de itens parecidos:
Exemplo: Quero que o set de Knight dê skill de club/sword/axe.. daí vc procura algum item que faça isso e só copia a parte que aumenta a skill
<attribute key="skillSword" value="3" /> <attribute key="skillAxe" value="3" /> <attribute key="skillClub" value="3" /> Se você quiser que aumente distance é só colocar
<attribute key="skillDist" value="3" /> para absorver danos é bem simples
<attribute key="absorbPercentPhysical" value="3" /> <attribute key="absorbPercentEarth" value="5" /> <attribute key="absorbPercentDeath" value="6" /> <attribute key="absorbPercentFire" value="-3" /> <attribute key="absorbPercentIce" value="2" /> Perceba que o PercentFire está negativo, é porque ele tem fraqueza contra fogo, positivo ele é bom contra o elemento, negativo ele é fraco contra o elemento.
Pra aumentar ML é só usar:
<attribute key="magiclevelpoints" value="1" /> Pra aumentar speed é só procurar a BOH e copiar:
<attribute key="speed" value="20" /> E não esquece de colocar no final
<attribute key="showattributes" value="1" /> para que apareçam os atributos quando o player der look no item.
Em
<attribute key="slotType" value="necklace" /> Você escolhe que tipo de item aquilo é, os values são: body, two-handed, one-handed, ammo, ring, necklace, legs, feet, head, backpack
E PARA FINALIZAR DECLARE TUDO NO MOVEMENTS.XML:
<movevent type="Equip" itemid="IDDOITEM" slot="TIPO DE SLOT" event="function" value="onEquipItem"/> <movevent type="DeEquip" itemid="IDDOITEM" slot="TIPO DE SLOT" event="function" value="onDeEquipItem"/> itemid="IDDOITEM" troque IDDOITEM pelo ID DO ITEM (BEM ÓBVIO, NÉ?)
slot="TIPO DE SLOT" coloque um dos slots possíveis, os que são possiveis estão nessa lista aqui:
armor feet legs head shield pickupable necklace ring OBSERVAÇÃO FINAL: O SLOT QUE VC DECLARAR NO MOVEMENTS TEM QUE SER DO MESMO TIPO QUE O ITEMS.XML
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Agora as flechas/bows/armas: Essas não precisam declarar no movements.xml mas precisam de um script no weapon.xml
1) Flechas
As flechas são bem simples:
<attribute key="slotType" value="ammo" /> <attribute key="attack" value="25" /> <attribute key="maxHitChance" value="90" /> <attribute key="weaponType" value="ammunition" /> <attribute key="ammoType" value="arrow" /> <attribute key="shootType" value="arrow" /> slotype = ammo para ficar no lugar da munição (ammo)
Attack vc muda a vontade pro que vc quiser
MaxHitChance = chance de acertar o hit, qualquer numero menor que 100 apresenta uma chance do hit falhar
WeaponType= Tipo de arma, flechas são munições então deixe sempre ammunition
ammoTyoe = Tipo de munição, pode ser "arrow" ou "bolt" dependendo doque vc quiser usar, um bow ou um crossbow
shootType é o efeito que vai sair, no caso dessa aí seria uma arrow normalzinha mas vc pode colocar qualquer flecha que exista ou até mesmo copiar efeitos de runas
Dê ctrl+F no items.xml em shootType e copie diferentes tipos e vá vendo no servidor qual se encaixa melhor na sua opinião.
2) Bows e Crossbows
Eu te aconselho copiar de algum item que já exista o modificar oque você quiser
<attribute key="slotType" value="two-handed" /> <attribute key="weaponType" value="distance" /> <attribute key="ammoType" value="bolt" /> <attribute key="range" value="5" /> <attribute key="hitChance" value="1" /> isso daqui é um crossbow duas mãos que ataca bolt (podia ser arrows tb) a uma distância de no máximo 5 SQM (modifique o range)
a chance de hit padrão dele é 1 e essa hit chance soma com a da munição
3) Wands e Rods
<attribute key="weight" value="2900" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="ice" /> <attribute key="range" value="3" /> peso, tipo (mesmo que seja uma rod o tipo é "wand"), tipo de efeito que sai dela (no caso é o ice), distância que ataca (no caso, 3 sqm)
Agora no weapons.xml:
<wand id="2190" level="7" mana="2" min="8" max="18" type="energy" event="function" value="default"> <!-- Wand of Vortex --> <vocation id="1"/> </wand> id do item, level pra usar, custo de mana por hit, dano minimo e maximo, tipo de ataque, event (deixe function para ele fazer tudo que vc colocou no items.xml) value= não mexa a menos que vc seja um programador C++, vocation vc coloca as classes que podem usar.
1= sorc, 2= druid, 3= pally, 4= kina, 5= master sorc, 6= elder druid, 7= royal pally, 8= elit kina
OBS: Você pode colocar isso também para que quando o player dê look não apareça o nome da classe que pode usar aquele determinado item (isso é util quando vc declarar que ambos sorceres e master sorcerers podem usar o item, evitando as repetições quando o player der look no item
<vocation id="5" showInDescription="0"/> <vocation id="1"/> 4) Outros tipos de arma
É bem simples, só edite oque quiser seguindo o modelo:
<attribute key="weight" value="6800" /> <attribute key="defense" value="65" /> <attribute key="attack" value="90" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="5" /> <attribute key="elementIce" value="30" /> <attribute key="slotType" value="two-handed" /> <attribute key="decayTo" value="2401" /> <attribute key="duration" value="60" /> weight = peso
defense= defesa q ela dá
attack = ataque
weapontype = Tipo de arma (sword, axe, club)
extradef = defesa extra (fica Defesa 65 +5 nesse caso)
ElementIce = adiciona dano elemental à arma, pode usar também ElementFire, ElementEarth e ElementEnergy
slotType = se a arma é duas mãos ou não (caso não seja apenas retire essa linha)
decayTo = apos um tempo igual a duration (em segundos) ela vira o item de ID 2401 (se não quiser isso apenas remova essas duas ultimas linhas)
OBSERVAÇÃO FINAL: Tudo que você não quiser utilizar é só remover a linha do items.xml, e todo tipo de edição em armas deve ser declarado no weapons.xml seguindo o exemplo. (COMO VOCÊ NÃO TÁ CRIANDO NENHUM ITEM E SIM EDITANDO OS QUE JÁ EXISTEM EU TE ACONSELHO A PROCURAR O ITEM LÁ DANDO CTRL F E PROCURANDO PELO ID DOQUE SAIR ADICIONANDO UM MONTE DE LINHA A MAIS QUE TALVEZ DÊ CONFLITO COM AS QUE JÁ EXISTAM).
OS ITENS QUE VC COLOCAR PRA DAR SKILL, ML OU PORCENTAGEM ELEMENTAL VOCÊ DEVE DECLARAR NO MOVEMENTS.XML E SE ESSE ITEM FOR PARA UMA DETERMINADA VOCAÇÃO VOCÊ DEVE DECLARAR TAMBÉM SEGUINDO O EXEMPLO:
<movevent type="Equip" itemid="7886" slot="feet" event="function" value="onEquipItem"> <vocation id="1"/> <vocation id="5" showInDescription="0"/> <vocation id="2"/> <vocation id="6" showInDescription="0"/> </movevent> <movevent type="DeEquip" itemid="7886" slot="feet" event="function" value="onDeEquipItem"/> -
ruanvioto deu reputação a Hona em Criando instalador para ClientCriando instalador para Client
Download:
baixaki,mediafire,4shared
Abra o aplicativo [ Install Creator ].
Depois você vera uma tela em cima do aplicativo.
Click em avançar.
Agora escolha os arquivos lembrando elis devem estar em uma pasta.
(o programa ira copiar tudo que estiver dentro da pasta)
Depois de escolher os arquivos.
Escolha o idioma de sua preferencia.
Escolha o nome do programa.
Depois click em avançar.
Agora vc escolhe se seu instalador sera full (tela cheia)ou small (pequeno).
Depois click em avançar.
Olhe a imagem abaixo e façam o ki estar nela.
Depois de configurar click em avançar.
Agora coloque tudo sobre o aplicativo que vc quer criar.
Depois click em avançar.
Agora coloque a descrição da sua licença.
Depois click em avançar.
Agora escolha o local a onde o seu jogo sera salvo depois de instalado no pc do jogador.
Depois click em avançar.
Agora vamos criar um atalho para seu arquivo.
Procure seu arquivo .exe na pasta.
Agora coloque o nome do seu atalho.
Depois marque a caixa que diz: Add desktop shortcut
Agora click em avançar.
Aki deixe em branco.
Agora click em avançar
Agora selecione se quer ou não uninstaller.
Depois click em avançar.
Agora marque a caixa que diz do not build the install program
Agora clique em concluir.
Agora click em Build.
Agora escolha onde vai salvar o instalador.
Depois inicie o teste se ficou como vc queria.
Creditos: Adriano C
-
ruanvioto deu reputação a Thiago Rulexz em [LAYOUT Gesior] Dbo GlobalDBO GLOBAL LAYOUT (GESIOR)
Bom galera ja fáz um tempo que parei de entrar no TK
esses dias me mandaram um site de um server de dbo que continha a msm aparência do Dbo Global, decidi trazer a vocês
Print
Download:
Scan : https://www.virustotal.com/pt/file/bfb8f7ad70c03f1c09907676b5a5402df7a99175b79bcdf2be674ef6e24efd42/analysis/1457465655/
-
ruanvioto deu reputação a olokomeu em (Resolvido)[ERRO] Gesior não entrega Item comprado no SHOPSubstitui o que tem dentro de seu Shop.lua pro esse arquivo aqui: