Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/22/16 em %
-
Neptune Projeto + AAC inacabada
Alucardly e um outro reagiu a Spencer por um tópico no fórum
curti a base2 pontos -
Spr Editor [ 8.54/9.81 ][ versão 1.3 ]
pirulitopiu reagiu a cristofermartins por um tópico no fórum
Olá, meu nome é Cristofer Martins, sou programador e gameDesigner e atualmente faço parte da equipe Digimon Adventure Online. Estou aqui para apresentar o meu Spr Editor, que desenvolvi para a equipe por que outros editores não eram funcionais/simples o suficiente. Alem disso, vi que não há sprite editores para as novas versões do Tibia, dificultando a inserção/remoção/edição/exportação de Sprites dos novos arquivos SPRs.Alem disso, um outro motivo foi que tive uma pessima experiencia com o Demonic Editor, tentei exportar as Sprites do nosso SPR para uma pasta umas 20 vezes e sempre dava algum erro no meio do caminho. Por isso desenvolvi um Editor eu mesmo. Preview: Funções( no menu ): -Add: Adiciona n sprites ao editor. Basta clicar no add que irá aparecer a janela para você seleciona todas as sprites que você quiser( multi seleção ). Essas sprites serão adicionadas no final da lista de sprites. OBS: As imagens devem ser PNG e o fundo das sprites deve ser transparente, e não rosa, como é de costume. -Replace: Substitui n sprites no editor. Selecione com Ctrl ou até com o Shift as sprites no editor que você quer substituir, depois clique no menu em Replace. Irá aparecer uma janela aonde você seleciona as imagens PNG para serem substituidas. As sprites serão substituidas na sequencia, a primeira Sprite selecionada no editor vai ser substituida com a primeira imagem selecionada na pasta. O progresso do replace pode ser visto na barra de progresso. -Delete: "Deleta" n sprites da lista.Selecione com Ctrl ou até com o Shift as sprites no editor que você quer deletar, depois clique no menu em Delete. Essas IDs das sprites que são deletadas vão aparecer "" e o ID delas, elas são sprites vazias, sem conteudo que você substiuir com novas imagens e assim aproveitar essas IDS que não estão servindo para nada. Export: Exporta n Sprites. Basta selecionar com Ctrl ou com Shift ou clicando na sprite que o editor irá exportar essa sprite com fundo transparente. Você pode facilmente exportar todas as sprites para uma pasta ou apenas aquelas que lhe interessam. O progresso da exportação pode ser visto na barra de progresso. Clear: Limpa a lista de sprites e remove as imagens da memoria. Util para criar um arquivo SPR do zero, por exemplo. Exemplo multi select( para deletar, substituir ou exportar ): Abas Extract/Compile Extract: Nessa aba você clica em SPR file para abrir o arquivo SPR, escolhe a versão dessa SPR ali no "menu" do lado daonde tá escrito "version" e clica em Extract. O programa vai começar a extrair as sprites e adiciona-las a lista( as vezes a lista fica estatica basta clicar nela que ela atualiza com as sprites novas ) e o progresso da extração pode ver na barra de progresso. Compile: Nessa aba você compila as Sprites da lista para um arquivo SPR. Para isso basta clicar em "save" e escolher o arquivo SPR que vai ser salvo, escolher a versão desse arquivo SPR como feito em Extract e clicar em "Compile!". O progresso da compilação pode ser visto na barra de progresso. Outros Search by ID: Pesquisa uma sprite pelo ID. Caso essa id exista na lista, a lista se move até a a sprite. Download: SPREditor Scan: Virus Total Caso você encontre algum bug, reporte nesse topico por favor. Aceito sugestões. Caso exista alguma versão que não seja aceita no editor e você tem a signiture(assinatura) do arquivo spr, poste aqui que eu atualizo o version.ini.1 ponto -
Hoje eu vim ensinar como aumenta a "tela" de jogo do OTCLIENT (Desculpe o merchant, era a unica imagem que eu tinha salvo) Testado em : 0.3.6pl1, Pode funcionar em 1.0 com alterações pequenas. Em protocolgame.cpp ache: return ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && (y >= myPos.y - 6 + offsetz) && (y <= myPos.gety + 7 + offsetz)); e troque por: return ((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)); Agora, continuando em protocolgame.cpp ache: GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); E troque por: GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); Continuando em protocolgame.cpp ache a função: void ProtocolGame::sendMoveCreature(const Creature* creature, const Tile* newTile, const Position& newPos, uint32_t newStackpos, const Tile* oldTile, const Position& oldPos, uint32_t oldStackpos, bool teleport) Dentro da função encontre: A parte que começa em if (oldPos.y > newPos.y) { e Termina em GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } e troque por: if (oldPos.y > newPos.y) { // north, for old x msg->AddByte(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->AddByte(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->AddByte(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->AddByte(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); Agora ache: if(newPos.z == 7) { int32_t skip = -1; 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); Depedendo da Source, a parte será assim: Por: if(newPos.z == 7) //going to surface { int32_t skip = -1; 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); Agora ache: else if(newPos.z > 7) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.getZ() - 3, 18, 14, 3, skip); Depedendo da source será assim: Por: else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1), (Map::maxClientViewportY+1)*2, 3, skip); Agora ache: //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - 8, oldPos.y - 5, newPos.z, 1, 14, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); E troque por: //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); Agora ache: if(newPos.z == 8) { int32_t skip = -1; 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); Dependendo da source poderá ser: e troque por: if(newPos.z == 8) { int32_t skip = -1; 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); Agora ache: else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); Depedendo da source pode ser assim: E troque por: else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); Agora em map.h edite essa parte como quiser: static const int32_t maxViewportX = 11; //min: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; O modo de Edição é assim: Agora em map.cpp do OTCLIENT Ache: void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } Troque por: { AwareRange range; range.left = 8; //Valor que colocou em maxClientViewportX range.top = 6; //Valor que colocou em maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } Créditos: Flatlander - OTLAND - Criação Ceetros - Tradução Agora vamos deixar o OTCLIENT lindão. Troque tudo de modules/game_interface/interface.lua (na pasta do OTCLIENT) por: http://pastebin.com/tH7qyreW (para o tutorial não ficar muito grande botei no pastebin, já que o spoiler tá bugando) Creditos dessa parte: Edubart (Criador do OTCLIENT) Ceetros Caso tenha ajudado, dê um rep+1 ponto
-
Conteúdo: Imagens Mapa não incluso Downloads: Removendo Bugs de itens (como order, fishing, etc) Sistemas feitos para o PDE: Tutoriais feitos para o PDE: Bugs reportados:1 ponto
-
Olá Galerinha do xtibia, Tudo Bem ??? Antes de mais nada peço que movam para a área de Tutoriais de Website pois quando fui tentar criar um novo tópico la não estava dando tentei em Envie Seu Tutorial e nada. Vamos ao que interessa, estou fazendo esse tutorial ensinando a colocar o SHOP em seu Modern AAC pois vejo que muitos tem dúvida nesse assunto e eu quero que essas dúvidas acabem Quando acabarem de ler o Tópico veras que não é uma coisa dificil. Então vamos la para que funcione corretamente faça como eu peço no Tópico. Primeiramente vamos colocar para que o Shop entregue os items ao comprar certo ?!?! É Bem facil vá na pasta data/globalevents/script e crie um arquivo chamado shop.lua e coloco o seguinte script abaixo dentro e salve. Agora vá em globalevents.xml e coloque a seguinte tag <globalevent name="Shop" interval="3000" event="script" value="shop.lua"/> Pronto a parte do shop entregar os items após a compra está feito agora vamos instalar o SHOP. Peço que baixem o seguinte arquivo abaixo. http://www.4shared.com/rar/LLcxJq-dba/shop.html? Após baixarem, extraem em seu dekstop será extraida uma pasta chamada shop, renomeem ela para gifts e a coloque dentro da pasta do seu site(htdocs), após fazerem isso vá na pasta system/pages e crie um arquivo chamado gifts.php e coloque o codigo abaixo dentro e salve. Após fazerem isso va no phpmyadmin entre em sua DB e execulte o shop.sql que se encontra dentro da pasta SeuSite/gifts/config e pronto agora só entrar no link e terá la as instruções para finalizar a instalação. http://linkdoseusite/index.php/p/v/gifts.php Pronto SHOP instalado agora vamos colocar a aba de SHOP em seu site caso não tenha ou esteja com outro url. Vá na pasta seusite/templates/seutemplate e abra o index.php e coloque o seguinte url na parte onde tem as urls das paginas <li><a href="{$path}/index.php/p/v/gifts">SHOP</a></li> E pronto salve e entre em seu site e veja a magica Em Breve estarei fazendo um tópico ensinando a colocar o sistema de pagseguro automatico ou seja a pagina de DONATE do Server. Obrigado pela atenção de todos e até a próxima Creditos: Pelo Tutorial Junior Silva1 ponto
-
WakiV Otclient Updater O que faz? Esse auto-updater, conta com as funções de: Checar se existe novos updates na inicialização do 'OTC', baixa os updates em diretórios especificados pelo administrador, baixa e extrai arquivos '.ZIP', reinicia o' OTC' apos terminar o download do patch, múltiplos patchs. Instalação: 1 - Crie no diretório raiz de seu site um arquivo '.txt' chamado de 'Update.txt', preencha o arquivo como o arquivo a seguir: http://pastebin.com/cdwnD6qg Obs: nesse pastebin já tem as instruções de como adicionar novos updates. 2 - Baixe o 'Updater Patcher.rar' extraia na pasta raiz do seu otclient. 3 - Depois de ter baixado o 'Updater Mod.rar', extraia e coloque a pasta do mod na pasta 'mods' do seu otclient configure o caminho para o executavel do 'updater patcher' no arquivo .lua. 4 - Agora você precisa ir na pasta raiz do seu 'otclient 'e configurar o arquivo 'Config.ini' com os seguites dados: [Geral] WebSite=http://dragonhertsserver.pusku.com/ - o seu website vai aqui é o site onde fica o 'update.txt' Client=otclient - nome do executavel do seu otclient SiteFile=Update.txt - o nome do arquivo que fica no site marcando os updates 5 - Depois de tudo configurado é só abrir o 'otclient' normalmente que o 'patcher' vai executar junto. use sempre link de download direto para adicionar um novo update. Download: Updater Mod: http://www.mediafire...Updater Mod.rar Updater Patcher: http://www.mediafire...ate patcher.rar Vídeo que mostra como o mod funciona: Imagem: Obs: Se você tem um servidor é quer usar o updater, crie um instalador definindo já o diretório do seu client para o player não precisar configurar o arquivos '.lua' Obs²: Em arquivos compactados use sempre a extenção '.ZIP' Obs³: É preciso o NET framework para rodar. Créditos: vyctor171 ponto
-
[Modernacc] Como Editar Shop.
WPOxCosT reagiu a AlexandreKG por um tópico no fórum
Fala XTibianos,estou encinando a voces neste tutorial a como editar seu SHOP no ModernACC,bom vi muitas pessoas com este problema,mais em especial vim fazer este tutorial para meu querido amigo josegremista. Bom vamos começar Primeiramente,vá no banco de dados. Se voce esta usando um computador local,provavelmente será acessado por[url="http://localhost/phpmyadmin"] localhost/phpmyadmin.[/url] Se voce esta usando um dedicado/vps voce poderá usar tanto localhost/phpmyadmin quanto seuip.servegame.com/phpmyadmin. Depois de ter acessado o banco de dados vá em sua database e localize a tabela shop_offer.Conforme mostra a figura abaixo: Abra a tabela shop_offer e vc vai ver que vai ter alguns itens adicionados.Bom agora vamos ao que intereça. Para adicionar itens no SHOP voce segue a imagem abaicho. Depois embaixo desses ai. Description - Poem uma descrição do item. Name - Nome do item. OBS:esses dois itens vao aparecer junto no SHOP. Depois disso é so ir em executar e deu pessoal. Para quem nao intendeu muito bem no começo a parte do shop_offer Bom estou disponibilizando minhas 3 tabelas de shop. shop_offer shop_history shop_donation_story Bom é isso ai amigos.Se gostaram do tutorial nao esqueçam de dar um rep ai. Créditos: Mozark0011 ponto -
[Fechado] Lista de servidores derivados (SERVIDORES NOVOS, PFV, MANDEM MP OU MANDEM O TÓPICO DO SERVIDOR)
Silveira Crtba reagiu a FlamesAdmin por um tópico no fórum
Bom dia, postarei uma Lista de Servidores Derivados encontrados aqui na comunidade xT. Não colocarei todos, e sim, aqueles que serão úteis para algumas pessoas. Então vamos lá! Derivado Poketibia Derivado Dragon Ball, Naruto, Biohazard Peço à quem postar servidor novo, para que me mande uma MP ou comentar até mesmo aqui no tópico para que eu possa fixar o tópico aqui. Obrigado!1 ponto -
Multi Language System
Marshmello reagiu a Luga03 por um tópico no fórum
Eae Xtibianos! Td na paz? Eu vim aqui para postar um script que achei na net do sistema de Multi Linguagem, eu creio que seja o primeiro do fórum, eu vi que o Zipter, fez um em um pedido, porém ele não funciona da mesma forma que este. Então vamos começar... Primeiramente Execute este código na sua database: ALTER TABLE `accounts` ADD `language` INT( 11 ) NOT NULL DEFAULT '0' Agora em data/lib/050-function.lua no final do arquivo adicione este código: function getPlayerLanguage(cid) -- By Acubens local Lang = db.getResult("SELECT `language` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1") if Lang:getID() ~= LUA_ERROR then local langid = Lang:getDataInt("language") Lang:free() return langid end return LUA_ERROR end function doPlayerSetLanguage(cid, new) -- By Drazyn1291 local acc = getPlayerAccountId(cid) if new == 2 then db.executeQuery("UPDATE `accounts` SET language = 2 WHERE `id` = " .. acc) elseif new == 1 then db.executeQuery("UPDATE `accounts` SET language = 1 WHERE `id` = " .. acc) else db.executeQuery("UPDATE `accounts` SET language = 0 WHERE `id` = " .. acc) end end Agora em Agora em lib/000-constant.lua Adicione isso no final do arquivo: ENGLISH = 0 SPANISH = 1 PORTUGUES = 2 Você pode criar suas linguagem com os ID's acima! Funções: getPlayerLanguage(cid) -- By Acubens doPlayerSetLanguage(cid, new) -- By Drazyn1291 Creio que só de ler a função já saibam oque faz né?? Exemplo: function onLogin(cid) -- By Drazyn local msg = { [PORTUGUES] = {"Bem-Vindo!"}, [sPANISH] = {"Bienvenida"}, [ENGLISH] = {"Welcome!"} } doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, msg[getPlayerLanguage(cid)][1]) return true end Testado no Tfs 0.4 Créditos: Acubens -- Por Criar o sistema Drazyn1291 -- Por criar a função doPlayerSetLanguage(cid, new) e pelo Exemplo!1 ponto -
[8.60] DBRelated 1.2 Site + Data + Sources
Linzinho reagiu a Animal Pak por um tópico no fórum
Informações: Diversas Transformações como Goku GodMode, Golden Freeza, Bills entre outras! Novos sistemas! Mapa próprio! Reborn System! Diversas Quests! Diversos Items! E mais! Imagens: Download: Mediafire Scan: https://www.virustotal.com/pt/file/82bf4689784c5459e240d0ba7fd15e28b5ab8f2253c885d43aeaa875b07ded11/analysis/1437840718/ Distro(Executavel + DLL's) By Animal Pak: Download Scan: https://www.virustotal.com/pt/file/ffd037b5dfa3c6e5529490e460d075da3b4c24e8a230671a7d0c11f0dbc6d8d4/analysis/1438323955/ Créditos: DBRelated Team Animal Pak1 ponto -
Ola amigo mt boa as sprites rep+ só está faltando algumas tipo vc coloco o corpo mas n colocou a sprite mas de resto ta legal teria a do shiny marowak azul e o hypno vermelho?1 ponto
-
http://www.xtibia.com/forum/topic/237609-pokemon-dash-evolution-open-source/1 ponto
-
1 ponto
-
use pokemon flash melhor base pra iniciar um projeto em cima dela ..1 ponto
-
parecido com pxg otimo topico1 ponto
-
bem,após você arruma as position você está clicando ali no ''v''? segue a imagen: http://imgur.com/xnpaU4O1 ponto
-
Atenção! Qualquer post feito neste topico que distoe do propósito do mesmo será negativado. O tópico não está mencionando pagamento. Ou seja, cabe a interpretações do tipo: "dependendo do trabalho, a equipe de mappers pode se propor a fazer de graça ou não". O que não eh permitido aqui no fórum relacionado a comércio eh a venda direta e divulgação de preços (basicamente). Caso alguém apresente uma prova (mensagens privada enviada através do fórum, etc) de que esta equipe cobrará pelo serviço, aí medidas serão tomadas. Agradeço a compreensão. Abraços.1 ponto
-
Sobre VPS
PostadorHunter reagiu a Beeki por uma questão
A cada 30~40 MB de mapa é necessário 1,5 GB de memória ram, você precisa de uma máquina dedicada ou VPS a cima de 8 Giga.1 ponto -
Tempo limite para war anti-entrosa
tuliohdev reagiu a Night Wolf por uma questão
é addEvent sim Dá uma lida niso: http://www.xtibia.com/forum/topic/230059-como-usar-addevent/1 ponto -
Manin te recomendo esse RME vai até a 10.90. http://www.xtibia.com/forum/topic/237990-remeres-map-editor-1090/ Crédito: @@Bruno1 ponto
-
Stamina Potion
Night Wolf reagiu a totonho18 por uma questão
Tendi, pode ser porque a potion está no chão, coloca a potion dentro da bp do jogador, ele tem que usar a potion de dentro da sua bp. testei aqui e deu certo amigo, se der errado me fala que ai vou analisar isso do zero e procurar a falha. Mano não tem como dar errado, é um script muito simples. Siga o tutorial exatamente como está. Primeiro passo -> copie um arquivo da pasta data/actions/scripts e renomeie para stamina.lua, agora abra-o, apague tudo que tem dentro e coloque esse código no lugar --Stamina Potion System-- --Autor: Totonho 18 -- function onUse(cid, item, frompos, item2, topos) local Item = 7489 -- ID do item que será retirado if getPlayerItemCount(cid,Item) >= 1 then doPlayerAddStamina(cid, 2520) doSendMagicEffect(frompos, 14) doPlayerRemoveItem(cid,Item,1) end return true end feito isso salve e feche, agora no xml da pasta data/actions/actions.xml coloque essa tag <action itemid="7489" script="stamina.lua"/> Salve e feche, TEM QUE FUNCIONAR. POSSIVEIS ERROS -> PRESTE ATENÇÃO O script dará errado se; 1 - Se a potion não estiver na bp do jogador 2 - Se o item id que você usou como potion já estiver em uso em outro script 3 - Se o distro não estiver reconhecendo o formato do arquivo 4 - Se você instalou errado, na pasta errada, ou copiou com algum simbolo faltando, etc.. Se der algum erro, olhe essas 4 possibilidades e diga em qual delas o erro se enquadra, qualquer duvida manda aqui!1 ponto -
Visual 2015
JonatasLucasf reagiu a Avuenja por um tópico no fórum
Bom dia pessoal do Ékz, venho até vocês para apenas informar o motivo de voltarmos ao visual de 2015, como todos já devem ter percebido ao entrar no fórum hoje. Para quem não me conhece, sou o Coordenador de Infraestrutura da Comunidade, e cuido desta parte de visual e tudo o que se pode dizer a respeito em relação a isso. O motivo de voltarmos para a antiga skin, foi por alguns motivos que a nova não estava nos possibilitando algumas questões, e também pelo feedback dos vocês membros, pois queremos sempre o melhor para todos. Mas estaremos trabalhando nesta nova skin, e em um novo visual para o Ékz, que nos dará uma entidade visual ótima e única. Aguardem pessoal. Pois bem, é isto. Fiquem na Santa paz de Deus. Abraços1 ponto -
Amazon Camp
JustinnoTibianno reagiu a Administrador por um tópico no fórum
AMAZON CAMP Criadores: Daniel [infos] Versão: 8.60 Tipo: Hunt Deixamos a hunt vazia caso alguém queira adicionar outras criaturas, fica a seu critério. [/infos] MINIMAP IMAGENS Mediafire Scan1 ponto -
Object Viewer
PostadorHunter reagiu a EdMignari por um tópico no fórum
Object Viewer é um aplicativo usado para visualizar arquivos no formato OBD. (Object Viewer) Download: Adobe AIR Runtime (Necessário para instalar o Object Viewer) Object Viewer 0.5 Scan GitHub Créditos: Edmignari (edmignari@xtibia.com)1 ponto -
Olá galerinha do xtibia venho aqui hoje para postar o novo modern acc editado por min eu traduzi ele todo e fiz um template massa para voçês depois falarei mais oque ele tem sem mais delongas o download está ae. Print: Download: http://www.mediafire...7zh3dtg5pznl42e Download Sql: http://www.mediafire.com/?a9549gzo7w6tmgl Scan: pesso que alguem faça para min não sou bom com isso :X PS:COMENTEM OQUE VOÇÊS QUEREM NA V2 CREDITOS: Junior001 Gabrieltxu1 ponto