Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/15/18 em todas áreas
-
Bom, tem um tempo que eu tinha começado a desenvolver esse programa mas havia parado. Estou voltando com ele e vou trazer exclusivamente para o XTibia. Um programa para criar janelas para o OTClient. Ele ainda está um tanto quanto incompleto, mas, estou fazendo este post para mostrar o progresso dele. Quando as principais funções estiverem prontas, irei publica-lo e irei lançar constantes atualizações. É algo que eu vou usar, então, irei trabalhar bem nele. GIFS: Um plano que eu tinha em mente: Conforme vou atualizando, vou postando aqui. Qualquer duvida ou sugestão, deixe ai nos comentários. :310 pontos
-
Alterando um pouquinho o código do nosso amiguinho a gente consegue: local playerA = { {x=292, y=1042, z=9}, -- Lugar onde o primeiro player vai estar {x=291, y=1042, z=9}, -- Lugar onde o segundo player vai estar {x=290, y=1042, z=9}, -- Lugar onde o terceiro player vai estar {x=289, y=1042, z=9}, -- Lugar onde o quarto player vai estar } local playerB={ {x=344, y=1026, z=9}, -- Lugar onde o primeiro player vai aparecer {x=305, y=1069, z=9}, -- Lugar onde o segundo player vai aparecer {x=245, y=1107, z=9}, -- Lugar onde o terceiro player vai aparecer {x=309, y=1125, z=9}, -- Lugar onde o quarto player vai aparecer } local playerNeed = { items = { {1000, 2}, -- items 1, {itemid, quantidade} {1000, 2}, -- items 2, se for precisar. {itemid, quantidade} {1000, 2}, -- items 3, se for precisar. {itemid, quantidade} -- items infinitos, se for precisar. }, pokemon = "Ditto", } function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for _, pos in pairs(playerA) do local player = getTopCreature(pos).uid if not isPlayer(player) then return doPlayerSendCancel(cid, "You need 4 players for this quest.") elseif #getCreatureSummons(player) ~= 1 or getCreatureSummons(player)[1] ~= playerNeed.pokemon then return doPlayerSendCancel(cid, "All players need a pokémon "..playerNeed.pokemon..".") end for _, item in pairs(playerNeed.items) do if getPlayerItemCount(player, item[1]) < item[2] then return doPlayerSendCancel(cid, "All players need a item "..(getItemInfo(item[1]).name)..".") end end table.insert(players, player) end for id, pos in pairs(playerB) do for _, item in pairs(playerNeed.items) do doPlayerRemoveItem(players[id], item[1], item[2]) end doTeleportThing(players[id], pos, false) doSendMagicEffect(pos, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_ENERGYAREA) end return true end2 pontos
-
Oi, eu sou o Porai e quero mostrar através deste tópico alguns sistemas que já desenvolvi. (estou tentando me vender :X) Estou atuando como freelancer, para mais informações, PM. OTPiece/Pirate King Online: Fairy Tail Online: Outros: Meu módulos geralmente são sempre client/server side para evitar eventuais atualizações no cliente, caso queira adicionar novas informações. Tenho beeeem mais coisa....... mas isso é bem cansativo de postar. Discord: Porai#43771 ponto
-
[TFS 0.3.6/0.4] GuildWar - Anti Entrosa
cs007 reagiu a Tony Araujo por um tópico no fórum
Fala galerinha, tudo bom? Então, hoje venho compartilhar um sistema que fiz a dois anos atrás, uma GuildWar (CityWar) - Anti Entrosa. Bom, caso alguém não conheça, basicamente é o seguinte: Uma batalha entre duas guildas, onde é estipulado o número máximo de mortes e um tempo, quem estiver com o maior número de mortes até o final do tempo ou quem alcançar todos os abates, ganha. Ela é Anti - Entrosa porque acontece em cidades específicas e ninguém de fora terá acesso de entrar. Ela conta também com alguns módulos de batalhas diferentes, sendo eles: Tradicional (ou seja, vale tudo), sem UE (não é permitido magias em área) e só SD rune (ou seja, nesta guerra os magos só poderão utilizar a Sudden Death Rune). Você é livre para escolher entre quatro tempos de duração e consequentemente, cada um terá valores diferentes, porém, será possível adicionar mais, remover e/ou editar. A configuração do sistema é super fácil e auto explicativa, segue abaixo. CityWar_Configurations = { Players_Mode = {min = 5, max = 50}, TimePrice_Mode = {[15] = 50000, [30] = 75000, [60] = 90000, [120] = 120000}, War_Mode = { ["tradicional, padrao, normal, 1"] = 1, ["sem ue, semue, 2"] = 2, ["sosd, apenas sd, só sd, soh sd, 3"] = 3; }, Maps_Mode = { ["grendor"] = {teamA = {x = 32052, y = 33809, z = 6}, teamB = {x = 32172, y = 33784, z = 5}}, ["darashia"] = {teamA = {x = 32859, y = 34023, z = 8}, teamB = {x = 32935, y = 34044, z = 6}}, ["thais"] = {teamA = {x = 32514, y = 33722, z = 7}, teamB = {x = 32479, y = 33681, z = 7}}, ["carlin"] = {teamA = {x = 32441, y = 33527, z = 7}, teamB = {x = 32503, y = 33506, z = 7}}, ["fibula"] = {teamA = {x = 32309, y = 33886, z = 7}, teamB = {x = 32356, y = 33956, z = 6}}, ["edron"] = {teamA = {x = 33038, y = 33663, z = 7}, teamB = {x = 32969, y = 33541, z = 6}}, ["new island"] = {teamA = {x = 32573, y = 34007, z = 7}, teamB = {x = 32496, y = 33949, z = 6}}, ["venore"] = {teamA = {x = 32820, y = 33606, z = 7}, teamB = {x = 32725, y = 33629, z = 7}}; } } Bom, esse é meu primeiro post de estreia à colaboração do Eks e a minha volta ao Open Tibia. Espero que gostem e façam um ótimo proveito. É nós galera! ❤️ [TonyAraújo] CityWar.zip1 ponto -
Como tinha dito em outro tópico, estou aqui postando, até pq eu acabei que fiz pra usar em um servidor meu também, rs. De qualquer forma, esse é um código para reposicionar o nome quando uma criatura está com X outfit de forma fácil pelo arquivo OTML. É necessário editar as sources do otclient e compila-lo. No arquivo thingtype.cpp, adicione abaixo de: if(node2->tag() == "opacity") m_opacity = node2->value<float>(); isso: else if(node2->tag() == "name-displacement") m_name_displacement = node2->value<Point>(); No arquivo thingtype.h, adicione acima de: float getOpacity() { return m_opacity; } adicione isso: Point getNameDisplacement() { return m_name_displacement; } acima de: float m_opacity; adicione isso: Point m_name_displacement; No arquivo creatures.cpp, troque isso: // calculate main rects Rect backgroundRect = Rect(point.x-(13.5), point.y, 27, 4); backgroundRect.bind(parentRect); Size nameSize = m_nameCache.getTextSize(); Rect textRect = Rect(point.x - nameSize.width() / 2.0, point.y-12, nameSize); textRect.bind(parentRect); por isso: // calculate main rects const ThingTypePtr& thingType = getThingType(); Rect backgroundRect = Rect(point.x - (13.5) + thingType->getNameDisplacement().x, point.y + thingType->getNameDisplacement().y, 27, 4); backgroundRect.bind(parentRect); Size nameSize = m_nameCache.getTextSize(); Rect textRect = Rect(point.x - (nameSize.width() / 2.0) + thingType->getNameDisplacement().x, point.y - 12 + thingType->getNameDisplacement().y, nameSize); textRect.bind(parentRect); Pronto. Para configurar, basta editar o arquivo .otml do seu otclient, exemplo: creatures 10 name-displacement: 2 -12 11 name-displacement: 5 10 12 name-displacement: -4 3 No caso, alterei a outfit 10 para um displacement no eixo X + 2 e no eixo Y - 12, a outfit 11 para um displacement no eixo X + 5 e no eixo Y + 10 e a outfit 12 para um displacement no eixo X - 4 e no eixo Y + 3. O código foi testado e está funcionando perfeitamente.1 ponto
-
local playerA= { {x=292, y=1042, z=9}, -- Lugar onde o primeiro player vai estar {x=291, y=1042, z=9}, -- Lugar onde o segundo player vai estar {x=290, y=1042, z=9}, -- Lugar onde o terceiro player vai estar {x=289, y=1042, z=9}, -- Lugar onde o quarto player vai estar } local playerB={ {x=344, y=1026, z=9}, -- Lugar onde o primeiro player vai aparecer {x=305, y=1069, z=9}, -- Lugar onde o segundo player vai aparecer {x=245, y=1107, z=9}, -- Lugar onde o terceiro player vai aparecer {x=309, y=1125, z=9}, -- Lugar onde o quarto player vai aparecer } function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for _, pos in pairs(playerA) do local player = getTopCreature(pos).uid if not isPlayer(player) then return doPlayerSendCancel(cid, 'You need 4 players for this quest.') elseif getPlayerLevel(player) < 300 then -- Level return doPlayerSendCancel(cid, 'All players need to have level 300 or higher.') end table.insert(players, player) end for id, pos in pairs(playerB) do doTeleportThing(players[id], pos, false) doSendMagicEffect(pos, CONST_ME_POFF) doSendMagicEffect(pos, CONST_ME_ENERGYAREA) end return true end1 ponto
-
Porque se comportar igual criança em um fórum? ambos estão discutindo por que? O tópico foi para postar algo sobre Pokémon e não para discussão.1 ponto
-
[Arquivado]Ultimate Baiak Yurots 8.60
Samuelsouzas reagiu a Kryserver por um tópico no fórum
.. Baiak Yurots 8.60 .. Quem Não Gosta do Bom e Antigo Yurots.. Bom Ai Está Mapa Yurots Super Rox Editado Por Baiak Lula... Baiak Yurots V2.2 Oque Mudou ? Mudou a City ta 90% 8.5 Foi Arrumada As Houses. Adicioano Npc Papai Noel no Templo Vende Items 8.54! Novos Items Novos Outifits Novas Hunts E Muito Mais... Baiak Yurots V2.7 Oque Mudou ? Foi Adicionada um Nova Cidade Chamada Baiak City Foi Adidionada Um Teleport no Templo Que Vai para Alumas City's Foi Adicionado Npc de Bless,Pagando Todas as Bless você nao prescisa usar aol... Foi Adicionado Uma Ilha de GM's ... Bug do Account Mananger Arrumado. Novo Executer adicionado,se o ot cai ele salva sozinhoo. E Muito Mas Estara por vim ... Baiak Yurots v1.0.9 Oque Mudou ? Foi Adicionado Sistema Vip.. Foi Adicionado 5 Novos Portais Vip Foi Adicionado Novos Bixos Vip,Warlock Vip,Medusa Vip,Bossing of Baiak.. Foi Adicionado New Quest Baiak Super Foda !! ;D Foi Modificado o Templo Foi Adicionado Mais Treiners ! Entre Alguns Bugs Retirados Baiak Yurots v1.1.0 Oque Mudou ? Mudou o Protocolo de 8.57 para 8.60 Novos Item Novo Outfit Baiak Yurots V1.1.4 Oque Mudou ? Tirei o Pz tool do Templo Fiz um Novo System Vip por Comando Fiz o Novo Addon do Outfit do Wayfarer Baiak Yurots V1.1.9 Oque Mudou ? Mudei o Distro Agora Se Preferir Pode Baixa Distro 8.60 ou 8.62 System Vip Como Funciona ? !buyvip (Para Comprar Vip)(Players) !vipdays (Para Ver Quantos Dias de Vip Você Tem)(Players) /addvip nomedoplayer,dyasvip (GOD) /delvip nomedoplayer,quantos dias de vip você quer tira desse player (GOD) Novos Comandos. !notice /guild -> Permite que você mande msg em vermelho para membros da sua guild !afk on ->Auto mensagem Ausente! !afk off ->Fica Normal Para Compra House:!buyhouse Para Se Desfazer da House:!leave Nova Magia Para Paladin:Exevo Con SanConjuga 15 Assassin Star Atk de Algumas Armas. Avenger 70/50 arcane staff 70/50 Magic Sword 65/45 Stunercutter axe 65/45 Thunder Hammer 65/45 Solar Axe 78/60 Warlord Sword 78/60 Server via hamachi e com vagas. ROXOT a ROXOT4 Senha : 123(em todos) Ip: 5.145.5.1931 ponto
Líderes está configurado para São Paulo/GMT-03:00
