Ir para conteúdo

Lyu

Membro
  • Total de itens

    285
  • Registro em

  • Última visita

  • Dias Ganhos

    3

Lyu venceu a última vez em Agosto 30 2015

Lyu teve o conteúdo mais curtido!

2 Seguidores

Sobre Lyu

  • Rank
    "Você não é louco; Você tem super poderes."
  • Data de Nascimento 17/10/1995

Informação de Perfil

  • Genero
    Masculino
  • Localização
    Boqueirão-pb
  • Eu sou
    Programmer
  • Meu personagem
    Lyu
  • Interesses
    Ajudar à quem precisa.

Últimos Visitantes

1.089 visualizações
  1. Realmente todos os baiaks são praticamente iguals. Sempre tive vontade de abrir um servidor totalmente inovador, sem tanta frescura mas com coisas novas, principalmente quests com enigmas. Mas tudo isso leva muito tempo para uma só pessoa e não estou com todo esse ânimo. Mas respondendo a sua pergunta: Acho que vira sim! Mas seria melhor ainda se houvesse uma enquete para que jogadores votassem, assim teríamos mais confiança.
  2. Lyu

    [Procuro Job] Lyu Freelancer

    Lyu Freelancer Visualizar Anúncio Olá, tudo bom? Sou Programador geral, trabalho com LUA, C++, VB.NET, MYSQL, Mapper intermediário e outras coisas a mais. Atualmente estou focado em desenvolver novos sistemas e eventos para servidores baseados em TFS 1.3 desfrutando de sua belíssima sintaxe, mas também venho fuçando em sources e mapas. Sou super paciente e gosto de desafios, como também procuro organizar ao máximo todo o código com orientação à objetos para deixá-lo o mais flexível possível. Aproveitando este empenho, venho aqui para me oferecer como Freelancer à quem tiver interesse. últimos trabalhos: Deathmatch Event atualização e migração para TFS 1.3 *primeira versão desenvolvida por mim: https://tibiaking.com/forums/topic/52735-battle-arena-system/ Como exemplo, deixarei abaixo a configuração do Novo Deathmatch e alguns métodos da classe (evento privado, por isso não estarei revelando toda a lib) : --[[ * This event was developed by Lyu at 14/06/2018 18:06 PM * This event are based on The Forgotten Server Version: 1.3 ]] if not deathmatch then deathmatch = { open--[[, ended]] = false, players = {}, maxplayers = 25, minlevel = 80, antimc = false, objetivefrags = 30, rewards = { {9971, 50}, {2352, 1} }, experience = { enabled = true, multiplier = 50.0 }, pos = { teleport = Position(999, 998, 7), room = Position(1183, 1086, 7), spawns = { Position(1160, 1014, 7), Position(1174, 1014, 7), Position(1160, 1028, 7), Position(1174, 1028, 7) } }, days = { ['Monday'] = {'14:00','21:00'}, ['Tuesday'] = {'14:00','21:00'}, ['Wednesday'] = {'14:00','21:00'}, ['Thursday'] = {"14:00",'21:00'}, ['Friday'] = {'14:00','21:00'}, ['Saturday'] = {'14:00','21:00'}, ['Sunday'] = {'14:00','21:00'} } } function deathmatch:Open() if self.open then return false end Game.createItem(1387, 1, deathmatch.pos.teleport):setAttribute("aid", 41385) self.open = true return true end function deathmatch:close() if not self.open then return false end for name, info in pairs(self.players) do self:onLeave(Player(self.players[name].name)) end self.players = {} local tile = Tile(self.pos.teleport) if tile then local teleport = tile:getItemById(1387) if teleport then teleport:remove() end end self.open--[[, self.ended]] = false -- self.countdown = 16 return true end function deathmatch:onJoin(player) if not self.open then player.sendCancelMessage('death-match event is closed.') return false end if player:getLevel() < configManager.getNumber(configKeys.PROTECTION_LEVEL) then player.sendCancelMessage('only players with level ' .. self.minlevel .. ' or more can join.') return false end if #self:getPlayers() >= self.maxplayers then player.sendCancelMessage("Sorry, but the event already full.") return false end if self.antimc then for _, pid in ipairs(self:getPlayers()) do if player:getIp() == pid:getIp() then player.sendCancelMessage('Anti mc enabled, not possible to play.') return false end end end player:registerEvent("PvpEXPDeath") player:registerEvent("PvpEXPLogout") -- player:registerEvent("PvpEXPHeath") local position = self.pos.spawns[math.random(1, #self.pos.spawns)] player:teleportTo(position) position:sendMagicEffect(CONST_ME_TELEPORT) self.players[player:getName()] = {name = player:getName(), kills = 0, deaths = 0, cons = 0, winner = false} player:openChannel(15) addEvent(function() player:sendChannelMessage("", 'Você participou do jogo.', TALKTYPE_CHANNEL_W, 15) end, 5) for name, info in pairs(self.players) do if self.players[name].name ~= player:getName() then Player(self.players[name].name):sendChannelMessage('', player:getName()..' participou do jogo.', TALKTYPE_CHANNEL_W, 15) end end return true end Anunciante Lyu Date 16/06/2018 Preço Categoria Procura Jobs  
  3. Configure corretamente a ID da cidade. Verifique no remere's apertando CTRL + T e depois verifique no config.lua se está batendo. Para corrigir manualmente caso queira ter certeza de que o erro é na townid, vá em sua database, tabela players, e edite a town_id do player que está com o problema.
  4. Lyu

    Lyu Freelancer

    Expira em: 13 dias e 9 horas

    • PROCURO JOB
    • A combinar

    Olá, tudo bom? Sou Programador geral, trabalho com LUA, C++, VB.NET, MYSQL, Mapper intermediário e outras coisas a mais. Atualmente estou focado em desenvolver novos sistemas e eventos para servidores baseados em TFS 1.3 desfrutando de sua belíssima sintaxe, mas também venho fuçando em sources e mapas. Sou super paciente e gosto de desafios, como também procuro organizar ao máximo todo o código com orientação à objetos para deixá-lo o mais flexível possível. Aproveitando este empenho, venho aqui para me oferecer como Freelancer à quem tiver interesse. últimos trabalhos: Deathmatch Event atualização e migração para TFS 1.3 *primeira versão desenvolvida por mim: https://tibiaking.com/forums/topic/52735-battle-arena-system/ Como exemplo, deixarei abaixo a configuração do Novo Deathmatch e alguns métodos da classe (evento privado, por isso não estarei revelando toda a lib) : --[[ * This event was developed by Lyu at 14/06/2018 18:06 PM * This event are based on The Forgotten Server Version: 1.3 ]] if not deathmatch then deathmatch = { open--[[, ended]] = false, players = {}, maxplayers = 25, minlevel = 80, antimc = false, objetivefrags = 30, rewards = { {9971, 50}, {2352, 1} }, experience = { enabled = true, multiplier = 50.0 }, pos = { teleport = Position(999, 998, 7), room = Position(1183, 1086, 7), spawns = { Position(1160, 1014, 7), Position(1174, 1014, 7), Position(1160, 1028, 7), Position(1174, 1028, 7) } }, days = { ['Monday'] = {'14:00','21:00'}, ['Tuesday'] = {'14:00','21:00'}, ['Wednesday'] = {'14:00','21:00'}, ['Thursday'] = {"14:00",'21:00'}, ['Friday'] = {'14:00','21:00'}, ['Saturday'] = {'14:00','21:00'}, ['Sunday'] = {'14:00','21:00'} } } function deathmatch:Open() if self.open then return false end Game.createItem(1387, 1, deathmatch.pos.teleport):setAttribute("aid", 41385) self.open = true return true end function deathmatch:close() if not self.open then return false end for name, info in pairs(self.players) do self:onLeave(Player(self.players[name].name)) end self.players = {} local tile = Tile(self.pos.teleport) if tile then local teleport = tile:getItemById(1387) if teleport then teleport:remove() end end self.open--[[, self.ended]] = false -- self.countdown = 16 return true end function deathmatch:onJoin(player) if not self.open then player.sendCancelMessage('death-match event is closed.') return false end if player:getLevel() < configManager.getNumber(configKeys.PROTECTION_LEVEL) then player.sendCancelMessage('only players with level ' .. self.minlevel .. ' or more can join.') return false end if #self:getPlayers() >= self.maxplayers then player.sendCancelMessage("Sorry, but the event already full.") return false end if self.antimc then for _, pid in ipairs(self:getPlayers()) do if player:getIp() == pid:getIp() then player.sendCancelMessage('Anti mc enabled, not possible to play.') return false end end end player:registerEvent("PvpEXPDeath") player:registerEvent("PvpEXPLogout") -- player:registerEvent("PvpEXPHeath") local position = self.pos.spawns[math.random(1, #self.pos.spawns)] player:teleportTo(position) position:sendMagicEffect(CONST_ME_TELEPORT) self.players[player:getName()] = {name = player:getName(), kills = 0, deaths = 0, cons = 0, winner = false} player:openChannel(15) addEvent(function() player:sendChannelMessage("", 'Você participou do jogo.', TALKTYPE_CHANNEL_W, 15) end, 5) for name, info in pairs(self.players) do if self.players[name].name ~= player:getName() then Player(self.players[name].name):sendChannelMessage('', player:getName()..' participou do jogo.', TALKTYPE_CHANNEL_W, 15) end end return true end

    Free

  5. Lyu

    [FreeLancer] Mapper

    Tudo muito bonito men! Admiro muito a criatividade dos mappers. Nota 10!
  6. Versão 1.0.0

    6 downloads

    Fala pessoal, quanto tempo! Recentemente voltei a mexer com OT Server e assim de cara criei esse método que alguém havia me pedido há algum tempo. Estou disponibilizando-o gratuitamente por ser algo simples. O que é Dynamic Trainers? Basicamente é uma forma de te levar à trainers vazios, onde não há alguém treinando. O sistema busca no banco de dados as posições, e se haver vagas para treinar, ele te leva à uma das vagas, caso contrário você será informado que todos os trainers estão ocupados. Não entendeu? Então tente entender. Instalação : A instalação é simples, pode levar um tempinho mas é algo fácil de executar. 1 - Primeiramente adicione os scripts nos seus devidos lugares; 2 - Em seu banco de dados, importe dynamic_trainers.sql; 3 - Adicione as posições dos trainers na tabela com essa query : INSERT INTO dynamic_trainers (posx, posy, posz) VALUES (400, 450, 7), (400, 470, 7), (400, 490, 7), (400, 510, 7); essas posições são exemplos. Talvez leve algum tempo até você digitar todas as posições; 4 - no Remere's, adicione a actionid 7720 no teleport que leva aos trainers(não precisa configurar posição nesse TP, apenas configure a actionid), e adicione a actionid 7721 em todos os teleports(dos trainers) que levam o player de volta ao templo(configure a posição do templo no teleport + actionid). Feito isso, o método está instalado e pronto para ser usado. Créditos : EU

    Gratuito

  7. Por nada! Sempre que possível, estarei trazendo bons conteúdos
  8. Fala rapeize, hoje venho trazer um sisteminha que fiz há alguns meses para um servidor. E como estou com tempo livre, decidi publicar este sistema. Como funciona? Quando uma criatura morre(configurável, seu loot se espalha pelo chão. OBS : Caso a primeira versão não funcione, utilize a segunda. Versão 1 : Versão 2 : Só isso, valeu!
  9. tem sim amigo, testa e me diz : -- Coded by Zoom.. local info, win, lose = "%s [Level: %s] foi mort%s pelo player %s%s", "%s obteve %s frags seguidos após derrotar %s.", "%s acabou de impedir que %s fizesse uma sequência de %s frags seguidos." local frags, storage = {10, 15, 20, 25, 30, 35, 40, 45, 50}, 30045 function onDeath(cid, corpse, deathList) local target = deathList[1] if(not isPlayer(cid) or not isPlayer(target)) then return true end doCreatureSetStorage(target, storage, getCreatureStorage(target, storage) + (getCreatureStorage(target, storage) == -1 and 2 or 1)) for _, pid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(pid, '', info:format(getCreatureName(cid), getPlayerLevel(cid), getPlayerSex(cid) == 1 and "o" or "a", getCreatureName(target)," [Level: "..getPlayerLevel(target).."]."), TALKTYPE_CHANNEL_ORANGE, 0xF) for _, frag in ipairs(frags) do if(getCreatureStorage(target, storage) == frag) then doPlayerSendChannelMessage(pid, '', win:format(getCreatureName(target), frag, getCreatureName(cid)), TALKTYPE_CHANNEL_MANAGEMENT, 0xF) end if(getCreatureStorage(cid, storage) >= frag) then doPlayerSendChannelMessage(pid, '', lose:format(getCreatureName(target), getCreatureName(cid), getCreatureStorage(cid, storage)+1), TALKTYPE_GAMEMASTER_CHANNEL, 0xF) end end end doCreatureSetStorage(cid, storage, 0) return true end
  10. Que estranho! um amigo meu no privado me disse que estava com o mesmo problema que o seu, então eu mandei para ele essa modificação que fiz para você e lá funcionou normal. Veja no login.lua se o registerCreatureEvent(cid, "deathchannel") está correto, sei la.
  11. @Leozincorsair, eu respondi a outra pessoa com o mesmo problema que você. Dá uma olhada ai nas respostas e utilize o script modificado.
  12. Fala pessoal, hoje eu venho trazer uma segunda versão desse meu sisteminha que é o Send Coins System. Para quem não chegou a ver o primeiro, Clique Aqui! PS : Testado em OTX Server 8.60, porém creio que funcione em qualquer servidor 8.60 Bom, mas o que esse sistema faz? O que há de novo? Vamos ao sistema : em data/talkactions/talkactions.xml, adicione isso : <talkaction words="!sendcoins;/sendcoins" event="script" value="sendcoins.lua"/> em data/talkactions/scripts, crie um arquivo sendcoins.lua e cole isso dentro : --[[ Send Coins System developed by Zoom in 04/02/2016 21:27. For more scripts, please contact me on skype : halls.santos Enjoy! ]] local info = [[Olá %s, Este comando serve para o envio de gold coin(s). Caso você queira enviar para um amigo, é necessário informar o nome do jogador e em seguida a quantia em gold coin(s). ex : /sendcoins Magezin 3500 PS : Será descontado do seu balance no banco caso você não tenha coin(s) em sua mochila. Este processo é automático.]] local SEND_COINS_LIMIT = 100000000 local SEND_YOURSELF = false function onSay(cid, words, param) local tmp = param.explode(param, ' ') if not tmp[1] then return doPlayerPopupFYI(cid, info:format(getCreatureName(cid))) elseif not tmp[2] then return doPlayerSendCancel(cid,'Você precisa especificar um valor.') end if(not SEND_YOURSELF and getCreatureByName(tmp[1]) == cid) then return doPlayerSendCancel(cid, 'Não é possível enviar para si mesmo(a).') end if isPlayer(getCreatureByName(tmp[1])) then if(getPlayerBalance(cid) >= tonumber(tmp[2]) and setPlayerBalance(cid, getPlayerBalance(cid) - tmp[2]) or doPlayerRemoveMoney(cid, tmp[2])) or getPlayerAccess(cid) >= 3 then if(tonumber(tmp[2]) <= SEND_COINS_LIMIT) then doPlayerAddMoney(getCreatureByName(tmp[1]), tmp[2]) else return doPlayerSendCancel(cid, "Você tentou enviar muitos coins, tente novamente e ver se não exagera.") end else return doPlayerSendCancel(cid, "Você não possui "..tmp[2].." gold coin(s).") end else return doPlayerSendCancel(cid, 'Este player não está on-line ou não existe.') end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Envio de '..tmp[2]..' gold coin(s) realizada.') doSendMagicEffect(getThingPos(getCreatureByName(tmp[1])), 13) return doPlayerSendTextMessage(getCreatureByName(tmp[1]), MESSAGE_STATUS_DEFAULT, 'Você recebeu '..tmp[2]..' gold coin(s) enviado(s) pelo jogador '..getCreatureName(cid)..'.') end Pronto! Após instalado, utilize o comando /sendcoins para ver um exemplo detalhado de como usar o sistema. Créditos : EU
×
Close