Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/14/17 em todas áreas

  1. Tungs

    Pokemon Dash v6 reupload by Kevick

    • Menu: ├ Informações; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • print screen • • download+scan • • Creditos • brun123 Valakinhas Luiz Machado (mapa) Sam Lecter (ajuda nos sistemas) Kevick (eu)
    2 pontos
  2. PoRaI

    Porai's Show Off

    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#4377
    1 ponto
  3. Hail Xtibianos. Esse script eu criei a pedido de um membro do fórum e resolvi posta-lo para vocês. Ele serve para que ao matarem um determinado monstros, somente os players que tiverem uma certa quantidade de participação (em porcentagem) na morte do monstro é que receberam algo (configurável). Em creaturescripts.xml adicione: <event type="statschange" name="stats" script="statsMonster.lua"/> <event type="death" name="deathMonster" script="deathMonster.lua"/> Em creaturescripts/scripts crie um arquivo lua com o nome statsMonster e adicione: --[[ autor = Marcryzius data = sexta-feira, 05 de fevereiro de 2016 tipo = 1 (um) é ataque, 0 (zero) é healing. query para ser adicionada no monstro: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> ]] M = {} function getDamageInMonster(monster,cid) local monster,cid,m_life,p_dano = tonumber(monster),tonumber(cid),0,0 if not(monster or cid)then return 0,error('function getDamageInMonster(): monster or cid, not number') end if not(isCreature(monster))then return 0,error('function getDamageInMonster(): variavel monster nao e monstro.') end for k,v in pairs(M[monster]) do if(k == cid)then p_dano = v end m_life = m_life + v end return math.floor(p_dano/(m_life/100)) end function onStatsChange(cid, attacker, tipo, combat, value) if not(M[cid])then M[cid] = {} end if not(tipo == 1)then return true end if(isPlayer(attacker))then if not(M[cid][attacker])then M[cid][attacker] = 0 end M[cid][attacker] = M[cid][attacker] + value elseif(isMonster(attacker))then -- caso seja um monstro o atacante local get = getCreatureMaster(attacker) -- averigua se não é um summon que está atacando if(tonumber(get) and isPlayer(get))then -- caso o summon seja de um player, adiciona o dano como se fosse o player if not(M[cid][get])then M[cid][get] = 0 end M[cid][get] = M[cid][get] + value end end return true end Agora crie outro arquivo lua na mesma pasta e nomeie para deathMonster e adicione: function onDeath(cid, corpse, deathList) --[[> Marcryzius <]] for _,player in pairs(deathList) do local player = isCreature(player) and getCreatureMaster(player) or player if(isPlayer(player) and isPlayerOn(player))then if(getDamageInMonster(cid,player) >= 50)then -- quantidade de danos em % --[[ aqui é a parte onde dar ao player seu premio por ter consegue tantos % de danos ao monstro ]]-- -- exemplos de ações doRemoveItem(getThingfromPos(Full_Items[getCreatureName(cid):lower()]).uid) doCreateItem(2283,1,getCreaturePosition(cid)) doCreateItem(4810,1,Full_Items[getCreatureName(cid):lower()]) setPlayerStorageValue(player,getStoreString('fullitems'),0) end if(M[player])then table.remove(M,player) end end end end No monstro que tu queira usar esse sistema, adicione no xml dele essas duas tags: <script> <event name = "stats"/> <event name = "deathMonster"/> </script> Pronto. Qualquer duvida, erro e etc, deixe nos comentários.
    1 ponto
  4. leeeo

    Pandoria RPG Medieval

    Bem, apesar de saber que esse projeto provavelmente nunca será concluído, é um hobby e sempre que posso dou uma mexida.. Talvez um dia vá online, talvez descubram o mistério da magic longsword antes disso BK's Castle. Banshee's Quest: 4th Seal Fighting against The Medusa Smoke, o bárbaro exilado
    1 ponto
  5. Poccnn

    Sistema de Ferreiro - inovador.

    Hail Xtibianos. Eu estava/estou atualizando alguns scripts meus bem antigos, então resolvi compartilhar para vocês que priorizam um jogo mais ao estilo: segunda vida na idade média. Bom... tu terás que fazer uma sala parecida como essa e com esses ids (pois já foram implementados no código). Agora vamos implementar os códigos: Vá em data/actions.xml e insira essas tags: Em data/actions/scripts/tools; insira todos esses códigos cada um com seus respectivos nomes: ferreiro.lua bellow.lua wood: Pronto. Instalados os scripts; agora irei explicar como funciona o sistema. Para acender o crucible, você precisa usar o fire bug (5468) no crucible (8642) até ele acender. Agora você põe a arma em cima da bancada e clica no bellow para ele 'aquecer' a arma para forja. Depois de 'esquentar' a arma, voce forja ela no anvil (bigorna de id 2555) por um tempo (tempo esse determinado pelo uso do crucible). Se o crucible 'apagar', voce clica no bellow até ele voltar a 'acender', mas isso só pode ser feito algumas vezes. Se você clicar muitas vezes e ele não 'acender', então tu terás que usar o fire bug de novo no crucible. Novo sistema de forja adicionado. Agora tu poderás adicionar materiais a forja para obter outros items. Explicação desse novo sistema: Primeiro tu põe a arma base para adição de novos compostos na mesa. adicione o item em cima da arma. Clique no bellow e o item de adição desaparecera. Leve o item "aquecido" para a bigorna. Use a marreta nele até sair um efeito verde. Caso ele peça para por de volta na fornalha a arma, não adicione outro item, apenas aqueça-o. Faça esse mesmo procedimento adicionando compostos até que o item seja criado. aqui um manual de forja feito a parti da tabela forja no script ferreiro.lua Tu poderás adicionar mais compostos para obter outros items a seu critério. Nova atualização! Agora a sala de forja ficou assim: Agora é possível forjar/fundir items: Adicione os compostos necessário para forja um por um (desde que ele não seja agrupaveis) na bancada do crucible e clique no bellow até ele sumir. adicione todos os items necessários e ao final clique no crucible: Resultado ao clicar no crucible com os compostos: Resultado da forja com os compostos: Onde edito ou ponho novos compostos no script? No script bellow.lua existe a lista de compostos e suas respectivas forjas. É só copiar uma nova instrução e editar os valores para novos items que possam ser forjados. ATENÇÃO! Todos os compostos precisam ser exatos para a receita funcionar, nem mais nem menos. Função requerida: É isso pessoal, depois posto mais scripts atualizados meu; espero que gostem; qualquer erro ou dúvida deixem no comentário abaixo. Um vídeo explicando como fazer objetos de fundição:
    1 ponto
  6. Poccnn

    Nova livraria lua para xml

    Fala XTibianos! Vim disponibilizar e ensinar como usar a livraria xml em lua, desenvolvida por mim. Ela foi desenvolvida para substituir a livraria padrão disponibilizada por lua para trabalhar com dados xml. Essa livraria não requer a dll-xml necessária para a livraria padrão lua. Aqui tem o tutorial criado por mim para demonstrar as funções e suas implementações da livraria luaxml. Tutorial lua lib xml padrão Vamos lá. Primeiro, a livraria: Vou ensinar como usar ela. Vou usar como exemplo uma parte do arquivo vocations.xml: Primeiro, carregar o arquivo. Ele vai retornar um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Buscar a tag desejada. Ele vai retornar uma tabela contendo todos os parametros que foram lidos no arquivo. O primeiro argumento da função, é o nome da tag requerida. exemplo: <tagNome ....>, tagNome seria o primeiro argumento da função. O segundo elemento é usado para diferenciar um bloco de outro como no caso do arquivo vocations que contem varias vocations, mas apenas uma é a requerida. O terceiro elemento é o que diferencia um bloco de outro similar. seguindo o exemplo do arquivo vocations, existe varias vocações, mas apenas uma delas tem o id de numero 2. Imprime o que foi lido no arquivo. a saida seria essa, nesse caso. Mas, ela tambem é uma tabela, por isso, voce pode pegar os elementos dentro dela dessa forma. As tags existentes dentro do bloco "vocation", tambem é uma tabela com indice numerico; portanto é valido pegar os dados dela dessa forma. Cada tag que exista dentro do bloco, vem como uma tabela com indicie numerico. Criando objetos para xml: O argumento inserido , seria o nome do bloco. Ex -> <novo> </novo> Adiciona tag's dentro do corpo do bloco. Pode ser adicionado quantas tags quiser. Cria uma tagbloco ou bloco dentro do bloco principal. Ex -> <tagBloco inserido="primer" ordem="2" face="not"> </tagBloco> Essa função retorna um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Dessa forma que foi declarada sem uma tabela contendo os parametros da tag, ela é criada como um bloco. Ex -> <newBloco> </newBloco> Adiciona tag's ao corpo do novo bloco/tagbloco criado pela função append. E por fim, salva os dados em um arquivo. Nessa função, existe o argumento unico que é o destino do arquivo e seu nome, que nesse caso foi ocultado. Esse é os dados dentro do arquivo gerador pelo script. Devido as novas atualizações feitas a lib, agora podeis usar caracteres especial de busca e inserção de maiores informações para busca. Vou usar como exemplo essa parte do arquivo items.xml e movements.xml para explicar essas mudanças. items movements Na versão anterior da lib ela não poderia buscar informações no arquivo items.xml devido a um erro na ora de selecionar o bloco buscado. O problema residia em que: ao encontrar uma tag ela busca o seu fechamento, sendo que, no exemplo da parte do arquivo items que postei acima, ela pegava todo esse bloco, dessa forma anulando o verdadeiro id buscado. Isso foi resolvido. agora ela filtra o bloco encontrado antes de fazer a analise de que seja o dado requisitado. Outro problema era quando se desejava buscar uma informação mais precisa, como no caso do arquivo movements.xml que existe duas tags com os mesmo ids equip e deequip; se eu colocasse o id de qualquer item ele me retornaria a primeira sentença encontrada que na maioria das vezes não era a que eu queria. isso também foi corrigido; agora podeis usar mais informações para melhorar a precisão da busca. Veja esse exemplo: Obs. Os codigos estão codificados em utf8, converta para ansi antes de usa-los. É isso ae pessoal, espero que gostem; qualquer erro ou sugestão serão bem vindas. obrigado.
    1 ponto
  7. Solução: Abra o injections.php do caminho injections\character_view\quests Substitua isso: if(count($characterPageQuests) != 0) { echo "<div class='bar'>Quests</div>"; echo "<table width='100%'>"; echo "<tr><td width='90%'><center><b>Nome da Quest/status/level</b></center></td><td><b><center>Status</center></b></td></tr>"; $SQL = POTgetInstance()->getDBHandle(); foreach($characterPageQuests as $value) { $quest = $SQL->query("SELECT `value` FROM `player_storage` WHERE `player_id` = ".$player->getId()." AND `key` = '".$value['storage']."' AND `value` = '".$value['value']."'")->fetch(); $status = ($quest) ? "true" : "false"; echo "<tr><td width='90%'><center>".$value['name']."</center></td><td><center><img src='../../../public/images/$status.gif'></center></td></tr>"; } echo "</table>"; } Por isso: if(count($characterPageQuests) != 0) { echo "<div class='bar'>Quests</div><br>"; echo "<div width='100%' class='quest_viwer'>"; //echo "<tr><td width='90%'><b>Nome da Quest</b></td><td><b>Status</b></td></tr>"; $SQL = POTgetInstance()->getDBHandle(); foreach($characterPageQuests as $value) { $quest = $SQL->query("SELECT `value` FROM `player_storage` WHERE `player_id` = ".$player->getId()." AND `key` = '".$value['storage']."' AND `value` = '".$value['value']."'")->fetch(); $status = ($quest) ? "true" : "false"; echo "<div class='quest $status'><center><img width='20%' src='../../../public/images/$status.gif'><br>".$value['name']."</center></div>"; } echo "</div>"; } Feito isso, adicione o código abaixo no final do arquivo system.css na pasta public\css: .quest_viwer > .quest { width: 75px; height: 50px; padding: 10px; display: inline-block;}.quest.true { color: rgb(0, 128, 0);}.quest.false { color: rgb(255, 0, 0);} Pronto a visualização ficará da forma como na imagem abaixo
    1 ponto
  8. DarkWore

    Pokemon Dash v6 reupload by Kevick

    Obrigado por Compartilhar o Xtibia Agradece.
    1 ponto
  9. me add no skype, eu te ajudo a resolver, resolvendo eu posto a solução aqui meu skype é Frenvius
    1 ponto
  10. Benny

    Layout - Lorem

    No caso, "Lorem" é de lorem ipsum, porque eu não fiz o layout pra um servidor especifico. Tenho que terminar ele ainda (como é visível) Deem dicas;critiquem construtivamente sobre o que eu posso melhorar. Abraço!
    1 ponto
  11. Deadpool

    Queimando arvores

    Sistemazinho que eu achei em um servidor 860 antigo, eu ia fazer um RPG mas né ._. Enfim, esse sistema permite colocar fogo nas arvores, e as arvores ao redor vão queimando, até acabar a ultima mwhaha, testei e funciona mwha adicionar arvores: local burningTrees = { -- [TreeId] = BurningTreeId, -- [id da arvore] = idquevaiaparecerquandotiverqueimado, -- Examples [7024] = 2717, -- pine [2701] = 2719, -- sycamore [2704] = 2722 -- red maple } o item da actions.xml que você vai usar pra tocar fogo na floresta, precisa ter a opção "use with" qualquer coisa comentem, que eu ajudo quando tiver tempo créditos: @dalvorsn demonstração: https://gifs.com/gif/queimando-floresta-tibia-g5zYR9
    1 ponto
  12. Sttorm

    [WEAPON] Wand com Critico

    XML <wand id="2524" level="100" event="script" value="sound.lua"> </wand> SCRIPT local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 4)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -7.2, 1, -3.3, 1)local critical = createCombatObject()setCombatParam(critical, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(critical, COMBAT_PARAM_DISTANCEEFFECT, 2)setCombatFormula(critical, COMBAT_FORMULA_LEVELMAGIC, -14.2, 1, -6.3, 1)function onUseWeapon(cid, var)local chance = 5 -- porcentagem de chance de dar criticalif isCreature(getCreatureTarget(cid)) and math.random(1,100) <= chance thendoCombat(cid, critical, var)local targetpos = getCreaturePosition(getCreatureTarget(cid))local pos = {x=targetpos.x+1, y=targetpos.y+1, z=targetpos.z}doSendMagicEffect(pos, 86)doSendAnimatedText(getCreaturePosition(cid), "S O U N D!", math.random(1,255))elsedoCombat(cid, combat, var)endreturn trueend
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...