-
Total de itens
196 -
Registro em
-
Última visita
Histórico de Curtidas
-
ADM Mayk on BaiakME deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019
Atualização de 29/06/2019.
Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
- Foi mudado algumas imagens de layout para renovar a estrutura.
- Server Info + Most Power Ful Guilds na mesma estrura.
- Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
a segurança do seu cliente e dificultando futuras dores de cabeças.
- Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
- Algumas mudanças de layout.
- Nome do player abaixo linkado.
- Adicionado um Box de doação, com a intenção apenas de complementar
o layout enriquecendo a pagina.
- Fixado o bug edit town, e melhorado o layout.
- Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.
- Visão normal.
- Inventário completo.
- Guilds com visão ampliada.
- Detalhes...
- Novo SHOP com as estrutura de layout melhorada e modernizada.
- Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.
- Detalhes...
- Detalhes...
- Detalhes...
- Histórico do SHOP...
DOWNLOAD SITE
SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
-
ADM Mayk on BaiakME deu reputação a SuggestName em Paper Doll System
Fala galera, só gostaria de compartilhar a minha ultima criação, um paper doll para tibia global.
Video demonstração
Por enquanto é isso pessoal, conforme eu atualizar o código eu mostro para vocês...
-
ADM Mayk on BaiakME deu reputação a GamerGoiano em APaguem esse post
Baixa os arquivos do OTCLIENT:
https://github.com/edubart/otclient
Baixa esse compilado e poe dentro da pasta acima:
http://www.mediafire.com/file/v3a1m3x3xay6v4e/otclient-df422c0.exe/file
Depois vai em data/things crie uma pasta com a versão do seu TFS, tipo 860 ou 854 e coloca o tibia.spr e tibia.dat dentro dessa pasta.
-
ADM Mayk on BaiakME deu reputação a Soldoran em [PROJETO] Yurots Edited
Olá amigos tudo bem?
Hoje lhes trago um projetinho que começou com o Mapa do Yurots 1.2 um dos que já foram os mapas mais conhecidos
e servidor de base do milhares de mapas "Baiaks", é um projeto pessoal que edito sempre que a vontade vem... gosto de servidores médio easy então tem teleportes.
|--| Algumas Features |--|
|-- SYSTEM --|
- MINING SYSTEM
- DODGE SYSTEM
- CRITICAL SYSTEM
- OFFLINE TRAINER 8.6 SYSTEM
- GUILD WAR SYSTEM
- CAST SYSTEM
- SHOP OFFLINE SYSTEM
- FRAG ADVANCED LOOK SYSTEM
|-- EVENT --|
- BLOOD CASTLE
- CAPTURE THE FLAG
- FIRE STORM EVENT
- ZOMBIE EVENT
- CASTLE OF HONOR 24H
|---| Algumas imagens do Servidor |---|
Ilha 999 8.60 (não exatamente igual, mas baseada)
Merchant City (cidades para negociações e para usar o sistema de loja offline) (Mapa baseado na cidade "Lorencia" do Mu Online)
Shopping do Servidor entrada
Shopping para Knights
Treino offline 8.60
Templo
Teleports Room
Quest Room
Npcs (todos com nomes personalizados para melhor identificação)
Mineração
Gran Castle Event (mapa baseado no Castle Siege do Mu Online)
Castle of Honor 24 Horas
Fire Storm Event
Capture the Flag
Blood Castle Event
Zombie Event
Catacombs 8.60 (não exatamente igual, mas baseada)
Atualização 09/08/17
Adicionado um efeito de Aura para quem usar as armas Vips (script by PcL)
Evento Battlefield adicionado
Atualização 17/08/2017
Summon System (baseado no global)
Eai oque acharam? Lembre-se é um servidor médium easy
então ele tem uma exp nem baixa nem exagerada, e claro os teleportes
-
-
ADM Mayk on BaiakME deu reputação a DdJs em Warlocks Hunt | 8.60
Cave hunt - Warlocks Cave.
Download: Here
Scan: Here
Imagens:
-
ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6
@Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril.
local config = { [1445] = { str = 5050512, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 50505326, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end No login.lua adicione isso:
local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 1) end end O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril.
OBS: Lembre-se de não deixar as storages iguais.
-
ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6
Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro.
Em data/actions, abra o arquivo actions.xml e adicione esta tag:
<action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/> Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril.
Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione:
local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 0) end end OBS: As storages de cada barril precisam ser diferentes uma da outra.
Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros.
-
ADM Mayk on BaiakME deu reputação a KOLISAO em (Resolvido)Criar Mana/Health Cask em 8.6
No tibia RL, o barriu some após a carga acabar.
https://www.tibiawiki.com.br/wiki/Mana_Cask
Uma dica:
Para fazer funcionar na house, basta adicionar o barril em um constructionkit em actions, editar o item.otb para poder dar moveable no barril e um script onMove para que o mesmo não seja possível ser arrastado para fora da house.
Cria um barril em items.xml/otb ou edita algum que não será utilizado, adiciona cargas nele e decayto 0
Exemplo:
<attribute key="charges" value="1000"/> <attribute key="showcharges" value="1"/> <attribute key="decayTo" value="0"/> Você deve por também:
<attribute key="fluidSource" value="mana potion"/> ou <attribute key="fluidSource" value="health potion"/>
Acho que só isso já deve funcionar. Claro que, você deve testar para saber se as cargas estão contando ao utilizar um vial vazio no cask. Também precisa ver se ao utilizar 100 vials vazios, ele vai encher todos de uma só vez
Eu criei roshamuul 8.6, oramond, war zone... Tudo é possível, só não fica perfeito XD
Até exercise weapon para 8.6 eu fiz, mas a galera q joga na 8.6 nem sabe oq é isso
-
ADM Mayk on BaiakME deu reputação a Agaka em (Resolvido)Criar Mana/Health Cask em 8.6
@KOLISAO Entendi.. thanks!
@Aldimun Vou deixar aqui o script que criei, se quiser usar fica a seu critério hue
-
ADM Mayk on BaiakME deu reputação a Huni em Lothus Online™ - Project RPG
Última Atualização: 18/06/2019, 02:07 BRT
OBS: Esse é apenas um resumo do Lothus Online!
[+] O Projeto
Por conta de alguns acontecimentos, a equipe decidiu modificar o nome de World of Tibia para Lothus.
Facebook do projeto: https://www.facebook.com/LothusOnline
O projeto foi iniciado á 6 meses, Lothus Online conta com 2 integrantes e será baseado no mundo de Azeroth. E estaremos trazendo esse mundo fantástico e misterioso para os tibianos. Meu objetivo é criar um novo estilo de jogo, com sistema de PVP competitivo: Battleground e Arena e PVE: Dungeon e Raid. A primeira versão do jogo será simples, e ao longo da história e dos acontecimentos de Azeroth, o mundo ganhará conteúdos novos.
A Origem dos Mundos
Ninguém sabe exatamente como o universo começou. Alguns teorizam que uma explosão cósmica catastrófica espalhou as jóias do infinito nos mundos na imensidão da Grande Escuridão – mundos que um dia teriam formas de vida maravilhosas e fofas. Outros acreditam que o universo foi criado por uma única entidade todo-poderosa. Embora as origens exatas do universo caótico permaneçam incertas, está claro que uma raça de seres poderosos surgiu para trazer estabilidade a esses vários mundos e assegurar um futuro seguro para os seres que seguissem seus passos.
Os titãs, deuses colossais que tinham a pele metálica, dos cantos distantes do cosmo, exploraram o universo recém nascido e se fixaram nos planos encontrados para trabalhar nele. Eles moldaram os mundos elevando imponentes montanhas e cavando vastos oceanos. Espiraram céus e criaram atmosferas. Tudo partindo de um plano, criar ordem a partir do caos. Eles deram poder a raças primitivas para cuidar e manter a integridade dos seus respectivos planos.
Comandado pela elite conhecida como o Panteão, os titãs trouxeram ordem a cem milhões de mundos espalhados ao longo da Grande Escuridão do Além, durante os primeiros anos de criação. O benevolente Panteão que buscava proteger estes mundos estruturados, sempre estava vigilante contra a ameaça de ataque das entidades extra-dimensionais vis da Espiral Etérea. O Caos Inferior, uma dimensão etérea de magias caóticas que conectada a inúmeros mundos do universo, era lar de um número infinito de seres malignos que só buscavam destruir a vida e devorar as energias vivas do universo. Incapazes de conceber o mal em qualquer forma, os titãs tentaram achar um modo de terminar com a constante ameaça dos demônios.
Facções:
Alliance
As nobres raças da aliança estão unidas por altivas tradições de nobreza, honra, fé, justiça e sacrifício. Os muito povos dessa facção contribuem com sabedoria técnica arcana e espiritual para alcançar um mundo pacifico e justo.
Horde
As altivas nações da horda estão unida por uma frágil aliança de convivência de um mundo hostil que buscava destruí-las. Determinadas, ferozes e as vezes monstruosas, a horda valoriza a força e a honra, mas luta para manter agressividade sob controle.
[-] Mapa
O mundo de Azeroth é a terra natal de várias raças, as mais notáveis sendo os elfos (elfos da Noite, elfos Nobres, elfos de Sangue e outros), humanos, anões, taurinos, goblins, trolls, gnomos e dragões.
[-] Sistema Profissão
– Profissões de produção:
Encatamento: Encantar Itens (dando ML, resistência, etc)
Ferraria: Criar itens com ataque e armadura mais fortes
Alquimia: Criar poções mais fortes (Buffs, regeneração mais alto, etc)
– Profissões de coleta:
Herborismo: Coletar Plantas (Alquimia)
Mineração: Coletar Minérios (Ferreiro)
Destruição de equipamentos: Coletar magia dos itens (Encatamento)
[-] Equipe
Como a primeira versão será MVP, preciso de uma Equipe dedicada (não precisa ser profissional e sim força de vontade, querer aprender , ter ideias bacana, e querer inovar sempre e ter disciplina). Sou Mapper e mexo com mapa já tem 8 anos. E nossas vagas disponíveis:
Scripter Spriter Designer Mapper
Para se inscrever, é só me add no discord: Marcelo Weis#1024
-
ADM Mayk on BaiakME deu reputação a Huni em Lothus Online™ - Project RPG
Obrigado a todos pelo apoio, o projeto está caminhando muito bem e em breve estarei fazendo um canal no youtube e página no facebook para vocês acompanharem todo o desenvolvimento.
Ainda temos vaga disponível para programador, spriter e designer!
Contato está no tópico.
-
ADM Mayk on BaiakME deu reputação a Snowsz em Creature Information Offset
Faz tempo que não posto nada, então deu vontade, tava brincando um pouco ai fiz esse sisteminha básico.
• Gifs
Nesse primeiro Gif, ao trocar a direção da Outfit, o nome e as barras de informações como Health, Mana, mudam de posição, isso é bom para ajustar as Outfits de acordo com o seu tamanho, como o Demon, ficar com as informações logo em cima da cabeça, ou Hydra, todos estão com o local padrão.
Aqui era como as informações ficavam com essa Outfit originalmente, no padrão de sempre dos clients.
Comparativo em imagem estática:
Tibia Outfit antes e depois:
Aqui estão algumas outfits que meu primo @Fae1z fez, apliquei o sistema de offset nelas, uma do Graves, uma do Ekko, ambos são personagens do game League of Legends, e uma baseada Uganda Knuckle:
Ekko antes:
Ekko depois:
Graves antes e depois:
Uganda Knuckle antes e depois:
Aqui eu estava brincando de por as informações da Outfit de anão de modo drogado kkk.
• Código
Em Creature.h modifique nesta linha:
void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
Ficando:
void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags)
Embaixo de:
std::string getName() { return m_name; } Adicione:
Point getInformationOffset() { return m_informationOffset; } void setInformationOffset(int x, int y) { m_informationOffset.x = x; m_informationOffset.y = y; }
Embaixo de:
Position m_oldPosition; Adicione:
Point m_informationOffset;
Agora, em Creature.cpp procure por:
void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
Ficando:
void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Sim, isso está repetido, é assim mesmo, o processo é necessário em Creature.h e Creature.cpp, nessa função a variável point tem seu tipo alterado de Const para normal.
Ainda em Creature.cpp procure por:
if(!useGray) fillColor = m_informationColor; Pule duas linhas e adicione:
point.x += m_informationOffset.x; point.y += m_informationOffset.y;
Agora, em Luafunctions.cpp procure por:
g_lua.bindClassMemberFunction<Creature>("jump", &Creature::jump); Embaixo adicione:
g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);
A parte da source é só isso.
Foi criada uma variável do tipo Point na classe Creature, que pode armazenar dois valores do tipo Int, sendo eles X & Y, assim detendo uma posição de offset, para ajustar a posição das informações(Health Bar, Mana Bar e Name) da criatura, essa variável é usada na função Creature::drawInformation, onde ocorre todo o desenho de informações das criaturas, lá o offset criado altera a posição de um Point usado como posição base das informações, alterando esse Point todo o resto segue aquela posição, você pode setar o offset diretamente na criatura, as funções podem ser usadas tanto na source usando C++ quanto nos scripts usando Lua, em Lua o uso das funções é o seguinte:
Essa função retorna uma tabela com X & Y, algo como "table = {x = 10, y = 20}", são as posições do offset.
Creature:getInformationOffset() Exemplo de uso:
local Offset = Creature:getInformationOffset() print(Offset.x) print(Offset.y) Isso vai printar no client_terminal do OTClient os valores de X & Y.
Enquanto esta altera as posições usando os valores X & Y.
Creature:setInformationOffset(x, y) Exemplo:
Creature:setInformationOffset(10, -5)
Essa configuração de offset vai aumentar X em 10 Pixels e diminuir Y em 5 Pixels, no meu primeiro gif, na direção Sul do Char, eu usei X diminuindo 13 Pixels e Y diminuindo 8 Pixels, algo como isso:
Creature:setInformationOffset(-13, -8)
Para tudo isso funcionar igual os gifs acima eu fiz um módulo especial, onde dependendo da Outfit e da direção que a criatura está olhando, ele vai alterar o offset de acordo.
Para criar o módulo, siga estes passos:
Na pasta do OTClient em modules/ crie uma pasta chamada game_creatureinformation, dentro crie um arquivo com o mesmo nome e a extensão .otmod, algo como "game_creatureinformation.otmod", o conteúdo do arquivo é este:
Module name: game_creatureinformation description: Changes the position of the informations point to correctly draw names and creature bars. author: Snowsz website: tibiaking.com autoload: true reloadable: true sandboxed: true version: 1.0 scripts: [ game_creatureinformation ] @onLoad: init() @onUnload: terminate()
Crie um arquivo com o mesmo nome e a extensão .lua, algo como "game_creatureinformation.lua", o conteúdo do arquivo é este:
--[[ Directions: North /\ East > South \/ West < Structure: [OutfitID] = { [Direction] = {x = OFFSETX, y = OFFSETY}, } ]] --Lista de offsets para cada Outfit. local OutfitOffsets = { [143] = { --Outfit do primeiro gif [North] = {x = -13, y = -8}, [East] = {x = -17, y = -8}, [South] = {x = -13, y = -8}, [West] = {x = -15, y = -8}, }, [160] = { --Outfit de anão com o nome full drogado. [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = -13, y = -80}, [West] = {x = 0, y = 0}, } } local function translateDir(dir) if dir == NorthEast or dir == SouthEast then return East elseif dir == NorthWest or dir == SouthWest then return West end return dir end local function getOutfitInformationOffset(outfit, dir) if OutfitOffsets[outfit] then return OutfitOffsets[outfit][translateDir(dir)] end return {x = 0, y = 0} end local function onCreatureAppear(creature) local Offset = getOutfitInformationOffset(creature:getOutfit().type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureDirectionChange(creature, oldDirection, newDirection) local Offset = getOutfitInformationOffset(creature:getOutfit().type, newDirection) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureOutfitChange(creature, newOutfit, oldOutfit) local Offset = getOutfitInformationOffset(newOutfit.type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end function init() connect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) connect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end function terminate() disconnect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) disconnect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end
A parte do módulo está finalizada, o que resta agora é configurar as Outfits na tabela com seus determinados Offsets, e não se preocupe, se a outfit não estiver configurada, ela vai seguir o padrão normal, o módulo só altera algo quando determinada Outfit está configurada.
Para configurar o módulo é simples, basta seguir o padrão:
[ID DA OUTFIT AQUI] = { [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = 0, y = 0}, [West] = {x = -0, y = 0}, }, Nos primeiros colchetes coloque o ID da sua Outfit para ter o offset modificado, os colchetes restantes são as direções, não é necessário mexer neles, dentro de cada índice da tabela tem os offsets X & Y, basta modificar o valor de acordo, sendo ele positivo ou negativo. NÃO SE ESQUEÇA DA VÍRGULA NO FINAL "},".
-
ADM Mayk on BaiakME deu reputação a FlavioHulk em (Resolvido)criando novas paredes com ID's novos ERRO
<item fromid="179" toid="180" article="a" name="muralha wall" /> <item id="181" article="a" name="muralha pillar" /> <item id="12468" article="a" name="[Donate] BaiakME Doll"> <attribute key="description" value="Use o Item Para Ganhar o [DONATE] BaiakME Outfit." /> <attribute key="weight" value="50" /> </item>
-
ADM Mayk on BaiakME deu reputação a Lyu em Legendary Lever (Alavanca de Itens Lendários)
Fala clã, há um tempo soltei um sistema privado meu no grupo do TK no Discord e hoje resolvi soltar aqui no Fórum também, abaixo irei explicar um pouquinho sobre esse sistema.
O que é Legendary Lever?
É um sistema de alavancas que vendem itens (aleatórios), similar à uma surprise bag, porém cada item possui x porcento de chances de dropar ao jogador que estiver pagando para tentar a sorte.
Qual o objetivo afinal?
Bom, na época que desenvolvi esse sistema, era para um cliente meu que acabou desistindo da compra quando eu estava prestes a começar a desenvolver. O objetivo do cara era criar 5 alavancas, onde cada alavanca teria pelo menos 1 item lendário com 3% de chance de dropar ao jogador que estivesse puxando a alavanca, e cada alavanca teria entre 5 a 7 itens ao todo (a maioria itens simples). Mas a ideia por trás de tudo era lucrar com isso, fazer jogadores donatarem mais para poder tentar pegar esses itens lendários (claro, o cara ia ter que gastar muito pra isso). Terminou que resolvi desenvolver esse sistema com proteção contra duplo click, exaustão, logs de ações, etc.
Em qual versão posso utilizar esse sistema?
Esse sistema foi programado para rodar em TFS 1.x. Se vocês quiserem, em breve posso converter para 0.4 e trazer ao Fórum, mas aí vai depender do feedback
Sem mais delongas, vamos ao sistema!
antes de tudo, crie uma pasta chamada legendarylever em data/actions/scripts, e dentro da legendarylever crie outra pasta chamada lib.
data/actions/scripts/legendarylever/lib/lib.lua :
agora abra data/lib/lib.lua e inclua esta linha :
dofile('data/actions/scripts/legendarylever/lib/lib.lua')
Feito isso, você já pode começar a criar os arquivos das alavancas. Vamos então criar a nossa primeira alavanca!
data/actions/scripts/legendarylever/royalcrossbow.lua :
data/actions/actions.xml :
<action actionid="3370" script="legendarylever/royalcrossbow.lua"/>
E por fim, adicione a actionid 3370 em uma alavanca no Remere's Map Editor! ?
Para criar novas alavancas, você já deve saber o que se fazer. Sim! CTRL + C CTRL + V no arquivo royalcrossbow.lua, renomea o nome, edite a tabela de itens, preços, premium etc e adicione a tag no XML com uma nova actionid (a actionid põe em uma nova alavanca no Remere's).
A configuração não preciso nem explicar né! A única dica que dou, é deixar brodacast = true apenas nos itens mais difíceis de dropar, ou seja, os lendários. Porque isso irá anunciar ao servidor todo que aquele player conseguiu o danado do item haha ?
Então é isso, espero que tenham gostado!
*Edit: Para salvar log de ações, crie uma pasta chamada randomitems em data/logs.
Créditos: Lyu (isme)
-
ADM Mayk on BaiakME deu reputação a GiovaniRodrigo em (Resolvido)da use em x item é receber a outfit
Ele funciona da seguinte maneira, o jogador usa o item de ID X para ganhar a OUTFIT X. Esse item só pode ser usado uma vez por jogador.
Na pasta data/actions/scripts crie um arquivo itemOutfit.lua e coloque esse código:
local config = { tableItem = { -- [Id do item] = {storage = Não mexa, outfitFemale = lookType do outfit feminino, outfitMale = lookType do outfit masculino} [2018] = {storage = 200201, outfitFemale = 371, outfitMale = 370}, [2019] = {storage = 200202, outfitFemale = 373, outfitMale = 372}, [2020] = {storage = 200203, outfitFemale = 375, outfitMale = 374}, [2021] = {storage = 200204, outfitFemale = 377, outfitMale = 376}, [2022] = {storage = 200205, outfitFemale = 379, outfitMale = 378}, [2024] = {storage = 200206, outfitFemale = 381, outfitMale = 380}, [2025] = {storage = 200207, outfitFemale = 383, outfitMale = 382} }, addons = 3, -- 0 = Sem Addon / 1 = First Addon / 2 = Second Addon/ 3 = Full Addon needPZ = true, -- true = Precisa estar na protect zone / false = Não precisa estar na protect zone message = "You received a new outfit.", messagePZ = "You need to be in a protect zone.", -- Mensagem se o player não estiver na protect zone messageError = "You already have this outfit." -- Mensagem se o player já tem o addon } function onUse(cid, item, fromPosition, itemEx, toPosition) for id, x in pairs(config.tableItem) do if(item.itemid == id) then if(getPlayerStorageValue(cid, x.storage) > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.messageError) elseif(needPZ == true and not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.messagePZ) elseif(doRemoveItem(item.uid, 1)) then if(getPlayerSex(cid) == 0) then doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerAddOutfit(cid, x.outfitFemale, config.addons) setPlayerStorageValue(cid, x.storage, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.message) else doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doPlayerAddOutfit(cid, x.outfitMale, config.addons) setPlayerStorageValue(cid, x.storage, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.message) end end end end return true end No arquivo actions.xml coloque essa tag:
<action itemid="2018;2019;2020;2021;2022;2024;2025" event="script" value="itemOutfit.lua"/> Altere o itemid da tag que você colocou no actions.xml de acordo com os ID dos itens que você configurou no script itemOutfit.lua
TESTADO TFS 0.4 - SCRIPT FUNCIONAL
Log:
Acrescentado:
needPZ = true, -- true = Precisa estar na protect zone / false = Não precisa estar na protect zone message = "You received a new outfit.", -- Mensagem quando ganha o outfit -- Efeito doSendMagicEffect(fromPosition , CONST_ME_POFF) -- Efeito quando o item for usado e desaparecer Bug corrigido:
(LuaInterface::luaDoRemoveItem) Item not found
-
ADM Mayk on BaiakME deu reputação a Apache em EVENTO ILHAS TEMATICAS + PHP + MAPA
Olá pessoal como falei irei postar alguns eventos sem bugs para vocês e GRÁTIS!
Estarei também postando uma source OTX paga para vocês.
Chega de enrolar vamos ao evento (Particularmente gosto muito desse)
**SÓ CONFIGUREM NO MAPA DO EVENTO O LOCAL DE SAÍDA DAS ILHAS**
**EVENTO NÃO É DE MINHA AUTORIA MAS COMO É MEU ESTOU POSTANDO**
Vídeo mostrando como funciona o evento
obs: link para o vídeo estava localizado dentro do script
5 bosses localizados nas ilhas temáticas
Os jogadores deverão se unir para conseguir vencer todos os bosses das ilhas e atingir a última com o mais temido. Apenas os bravos guerreiros conseguem chegar ao final, como prêmio eles recebem a experiência dos bosses e loot.
Vá em data/creaturescripts/scripts e crie um aquivo chamado IOE.lua e cole isso dentro
agora na mesma pasta creaturescripts/scripts procure pela pasta login.lua e lá adicione o registro do evento
após isso vá em data/creaturescripts abra o arquivo creaturescripts.xml e adicione a tag
agora em data/globalevents/scripts crie um arquivo chamado IOE.lua e cole isso dentro
em globalevents.xml adicione a tag
agora na pasta LIB crie um arquivo chamado IOE.lua e cole isso dentro
agora na pasta data/monsters crie uma pasta chamada IOE e dentro crie 5 arquivos .xml com os seguintes nomes (irei postar o nome do monstro e em seguida o script dele.
island death.xml
island earth.xml
island energy.xml
island fire.xml
island ice.xml
feito isso agora na pasta data/monsters procure por monster.xml vamos registras nossos novos monsters
agora em data/movements/scripts crie um arquivo chamado IOE.lua e cole isso dentro
agora em movements.xml adicione a tag
pronto pessoal o evento já está registrado em seu servidor, agora vocês configurem a seu desejo na pasta data/LIB
agora irei postar a query o php e o mapa
SQL QUERY PARA REGISTRAR O EVENTO EM SUA DATABASE
PAGINA PHP EM SEU SITE (LINDA)
AGORA O MAPA (NÃO POSTAREI SCAN, QUEM QUISER BAIXAR É SÓ BAIXAR QUEM NÃO QUISER É SÓ CRIAR UM MAPA PARA SEU EVENTO!)
É ISSO AE ESPERO QUE GOSTEM DEIXEM SEU REP+
QUEM PRECISAR DE AJUDA PARA INSTALAR É SÓ PEDIR!
-
ADM Mayk on BaiakME deu reputação a Mix Absoluto em erro ao importa x monstro pro mapa
Tente isso :
<?xml version="1.0" encoding="UTF-8"?> <monster name="[DNT] Demon" nameDescription="a [DNT] Demon" race="fire" experience="7000" speed="280" manacost="0"> <health now="9200" max="9200"/> <look type="92" corpse="5995"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="40"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="70" attack="130"/> <attack name="manadrain" interval="3000" chance="13" range="7" min="-80" max="-300"/> <attack name="fire" interval="2000" chance="14" range="7" radius="7" target="1" min="-160" max="-350"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="1000" chance="15" range="7" radius="1" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="energy" interval="3000" chance="30" length="8" spread="0" min="-220" max="-460"> <attribute key="areaEffect" value="energy"/> </attack> </attacks> <defenses armor="50" defense="55"> <defense name="healing" interval="1000" chance="15" min="90" max="200"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="1000" chance="15" speedchange="200" duration="20000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element firePercent="100"/> <element physicalPercent="25"/> <element earthpercent="20"/> <element energyPercent="20"/> <element deathPercent="20"/> <element icePercent="-25"/> <element holyPercent="-10"/> </elements> <immunities> <immunity lifedrain="1"/> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="2"> <summon name="[DNT] Demon Elemental" interval="2000" chance="10" max="2"/> </summons> <voices interval="5000" chance="10"> <voice sentence="MUHAHAHAHA!" yell="1"/> <voice sentence="I SMELL FEEEEEAAAR!" yell="1"/> <voice sentence="CHAMEK ATH UTHUL ARAK!" yell="1"/> <voice sentence="Your resistance is futile!"/> <voice sentence="Your soul will be mine!" yell="0"/> </voices> <loot> <item id="2148" countmax="90" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="80" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="75" chance="28000"/> <!-- gold coin --> <item id="2148" countmax="65" chance="28000"/> <!-- gold coin --> <item id="2152" countmax="3" chance="23750"/> <!-- platinum coin --> <item id="7368" countmax="5" chance="3100"/> <!-- assassin star --> <item id="5954" chance="1150"/> <!-- demon horn --> <item id="2520" chance="750"/> <!-- demon shield --> <item id="10521" chance="28000"/> <!-- moon backpack --> <inside> <item id="2472" chance="150"/> <!-- magic plate armor --> <item id="2514" chance="550"/> <!-- mastermind shield --> <item id="2214" chance="900"/> <!-- ring of healing --> <item id="2149" chance="10000"/> <!-- small emerald --> <item id="2165" chance="1500"/> <!-- stealth ring --> <item id="2171" chance="1200"/> <!-- platinum amulet --> <item id="7382" chance="950"/> <!-- demonrage sword --> <item id="2470" chance="450"/> <!-- golden legs --> <item id="7393" chance="50"/> <!-- demon trophy --> <item id="2462" chance="3000"/> <!-- devil helmet --> <item id="2387" chance="21000"/> <!-- double axe --> <item id="2432" chance="6000"/> <!-- fire axe --> <item id="2393" chance="1650"/> <!-- giant sword --> </inside> </loot> </monster> Se ajudou da +REP parceiro, qualquer coisa avisa ae
-
ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?
@ADM Mayk on BaiakME Testei em meu próprio servidor e ta funcional :
GlobalEvents
XML
<globalevent name="Event_Chest1" time="18:00" event="script" value="Event.lua"/> <globalevent name="Event_Chest2" time="16:00" event="script" value="Event.lua"/> <globalevent name="Event_Chest3" time="14:00" event="script" value="Event.lua"/> Script
local itemID = 1740 -- ID do BAU local bau_sto = 532236 local h = { Segunda = "18", Quarta = "14", Sexta = "16" } local pos = { [1] = {x = 92, y = 127, z = 7}, [2] = {x = 93, y = 126, z = 7}, [3] = {x = 95, y = 126, z = 7}, [4] = {x = 96, y = 127, z = 7}, [5] = {x = 96, y = 126, z = 7}, [6] = {x = 98, y = 126, z = 7}, [7] = {x = 99, y = 127, z = 7}, [8] = {x = 92, y = 125, z = 7}, [9] = {x = 94, y = 124, z = 7}, [10] = {x = 92, y = 123, z = 7} } local function doExecuteEvent() doCreateItem(itemID, 1, pos[math.random(1, #pos)]) doCreateItem(itemID, 1, pos[math.random(1, #pos)]) return true end function onTime(interval) if os.date("%A") == "Monday" and os.date("%H") == h.Segunda then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Wednesday" and os.date("%H") == h.Quarta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Friday" and os.date("%H") == h.Sexta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true end return true end Actions
XML
<action itemid="1740" event="script" value="event.lua"/> Script
local t = { [1] = {50, 2160, 100}, -- [Numero em sequencia] = {CHANCE, ITEM ID, COUNT} [2] = {30, 2325, 1}, [3] = {20, 2678, 1}, [4] = {100, 2956, 5} -- No ultimo da tabela, a chance sempre deverá ser 100 ou terá a chance de o player não ganhar NADA } local storage = 346366 local bau_sto = 532236 function onUse(cid, item, fromPosition, itemEx, toPosition) for a, b in pairs(t) do if math.random(1, 100) <= b[1] and getCreatureStorage(cid, storage) == -1 then doCreatureSetStorage(cid, storage, 1) doPlayerAddItem(cid, b[2], b[3]) end end doRemoveItem(item.uid, 1) if getStorage(bau_sto) == -1 then doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou um BAU e ainda resta UM BAU", 27) addEvent(doSetStorage, 1000, bau_sto, 1) end if getStorage(bau_sto) == 1 then doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou o ULTIMO BAU E O EVENTO SE ENCERROU", 27) doSetStorage(bau_sto, -1) end doCreatureSetStorage(cid, storage, -1) return true end
-
ADM Mayk on BaiakME recebeu reputação de KotZletY em Pedido Sprite de mounts/montarias
foi mal eu baixei tão rápido a página que acabei vendo só a hora as 18 hrs
okay KotZletY irei ficar mais atento vlw...
-
ADM Mayk on BaiakME recebeu reputação de KotZletY em Pedido Sprite de mounts/montarias
@Drazyn1291
aqui esta a do UnderWar se te ajudei deixa aquele REP gostozinho hsuhus TMJ
outfit_324.bmp
outfit_325.bmp
outfit_367.bmp
outfit_366.bmp
-
ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?
@ADM Mayk on BaiakME
Muda
local itemID == 2555 -- ID do BAU Para
local itemID = 2555 -- ID do BAU
-
ADM Mayk on BaiakME deu reputação a Storm em (Resolvido)Tesouro Perdido Alguém Consegue Fazer Esse Evento?
@ADM Mayk on BaiakME
GlobalEvents
XML
<globalevent name="Event_Chest" time="18:00:00" event="script" value="Event_Chestt.lua"/> <globalevent name="Event_Chest" time="16:00:00" event="script" value="Event_Chestt.lua"/> <globalevent name="Event_Chest" time="14:00:00" event="script" value="Event_Chestt.lua"/> Script
local itemID = 2555 -- ID do BAU local h = { Segunda = "18", Quarta = "14", Sexta = "16" } local pos = { [1] = {x = 1, y = 1, z = 1}, [2] = {x = 1, y = 1, z = 1}, [3] = {x = 1, y = 1, z = 1}, [4] = {x = 1, y = 1, z = 1}, [5] = {x = 1, y = 1, z = 1}, [6] = {x = 1, y = 1, z = 1}, [7] = {x = 1, y = 1, z = 1}, [8] = {x = 1, y = 1, z = 1}, [9] = {x = 1, y = 1, z = 1}, [10] = {x = 1, y = 1, z = 1} } local function doExecuteEvent() local bau1 = math.random(1, #pos) local bau2 = math.random(1, #pos) doCreateItem(itemID, bau1) doCreateItem(itemID, bau2) return true end function onTimer() if os.date("%A") == "Monday" and os.date("%H") == h.Segunda then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Wednesday" and os.date("%H") == h.Quarta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true elseif os.date("%A") == "Friday" and os.date("%H") == h.Sexta then doExecuteEvent() doBroadcastMessage("Há 2 tesouro perdido em BaiakME City", 19) return true end return true end
Actions
XML
<action itemid="BAU_ID" event="script" value="Bau_event.lua"/> Script
local t = { [1] = {50, 2160, 100}, -- [Numero em sequencia] = {CHANCE, ITEM ID, COUNT} [2] = {30, 2325, 1}, [3] = {20, 2678, 1}, [4] = {10, 2956, 5} } local storage = 346366 function onUse(cid, item, fromPosition, itemEx, toPosition) for a, b in pairs(t) do if math.random(1, 100) <= b[1] and getCreatureStorage(cid, storage) == -1 then doCreatureSetStorage(cid, storage, 1) doPlayerAddItem(cid, b[2], b[3]) end end doCleanTile(toPosition) doBroadcastMessage("O Player ".. getCreatureName(cid) .." Achou um BAU!!", 27) doCreatureSetStorage(cid, storage, -1) end
-
ADM Mayk on BaiakME deu reputação a Wakon em (Resolvido)TFS 0.4 Gaz'Haragoth (Heal + Magia + Teleport) ???
@ADM Mayk on BaiakME, na real não é pra criar um teleport e sim teleportar ao passar em cima do corpo, isso que o script que você pediu para adaptar faz.
Colocou a tag no arquivo movements.xml com o corpo do bixo?
<movevent type="StepIn" itemid="22455" event="script" value="teleport_gaz.lua"/>
-
ADM Mayk on BaiakME recebeu reputação de KotZletY em Bau diário
rlx reputado mesmo assim ? vlw pela a força ai TMJ