Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Olá manolos, Há muitos anos atrás eu criei um projeto aqui no Éks de screencasts ou vídeo aulas como preferirem. Recentemente eu lembrei que esse material se perdeu, mas pode ajudar muito os iniciantes. Durante a semana vou postar uma série de videos antigos que tenho aqui, espero que gostem e dependendo do feedback eu posso fazer videos novos para o canal. Obs.: Não liguem para as tosquices, foi a 5 anos atrás e isso reflete na qualidade do vídeo. Assistam em 720p. FL CAST Tutorial #01 • Daft Punk Sign Rate • Iniciante/Low Recursos • Infelizmente não possuo mais, porém com a técnica da pra desenvolver outros. Espero que ajude quem está começando e amanhã tem mais!
    4 pontos
  2. function Player.setExhaustion(self, value, time) return self:setStorageValue(value, time + os.time()) end function Player.getExhaustion(self, value) local storage = self:getStorageValue(value) if storage <= 0 then return 0 end return storage - os.time() end Exemplo de uso: function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey) if player:getExhaustion(1350) <= 0 then player:setExhaustion(1350, 10) else print('Exausted! '..player:getExhaustion(1350)..' segundos restantes.') end return true end Créditos: Printer
    3 pontos
  3. Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça. Estamos abrindo Vagas para: [*1*] Mapper [*1*] Web Master *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo: Nome: Idade: Função pretendida: Formas de contato - Facebook/Skype: Porque você quer fazer parte do projeto?: Quanto tempo de experiência você tem no seu ramo?: Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
    3 pontos
  4. MuriloCavalcantti

    [Template] X-Layouts

    Olá Xtibianos, estou aqui retomando o projeto X-Layouts iniciado pelo @Benny, o projeto será usado para doar templates e sites para todos os membros, este é um layout que será disponibilizado para todos, abraços. Print: Baixar Scan
    3 pontos
  5. Bruno

    TopLevel Effect

    Introdução Ele simplesmente manda um efeito para o Top Level caso ele estiver online, além disso, ele checa quando o top é ultrapassado e o efeito passa automaticamente ao novo top. Instalação: Em data/creaturescripts/creaturescripts.xml adicione: <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> <event type="advance" name="CheckTop" event="script" value="topeffect.lua"/>Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione: --[[ Script by Bruno Minervino para o Tibia King Caso for postar, colocar os créditos ]] local config = { tempo = 10, --tempo em segundos mensagem = { texto = "[TOP]", --não use mais de 9 caracteres efeito = TEXTCOLOR_LIGHTBLUE --efeito para a função doSendAnimatedText }, efeito = 30, --efeito da função doSendMagicEffect globalstr = 5687 -- uma global storage qualquer q esteje vazia } --[[ Não mexa em nada abaixo ]] local topPlayer = getGlobalStorageValue(config.globalstr) > 0 and getGlobalStorageValue(config.globalstr) or 0 function onLogin(cid) local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local pid = query:getDataString("id") local name = query:getDataString("name") if getPlayerName(cid) == name then if topPlayer ~= getPlayerID(cid) then topPlayer = getPlayerID(cid) end setGlobalStorageValue(config.globalstr, pid) TopEffect(cid) end end registerCreatureEvent(cid, "CheckTop") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 then local query = db.getResult("SELECT `id`, `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then local level = tonumber(query:getDataString("level")) if level < newlevel and topPlayer ~= getPlayerID(cid) then doBroadcastMessage("O jogador " .. getPlayerName(cid) .. " tornou-se o novo Top Level. Parabens!", 22) topPlayer = getPlayerID(cid) doSaveServer() setGlobalStorageValue(config.globalstr, getPlayerID(cid)) TopEffect(cid) end end end return true end function TopEffect(cid) if not isPlayer(cid) then return true end if topPlayer == getPlayerID(cid) then doSendAnimatedText(getCreaturePosition(cid), config.mensagem.texto, config.mensagem.efeito) doSendMagicEffect(getCreaturePosition(cid), config.efeito) addEvent(TopEffect, config.tempo * 1000, cid) end end function getPlayerNameById(id) local query = db.getResult("SELECT `name` FROM `players` WHERE `id` = " .. db.escapeString(id)) if query:getID() ~= -1 then return query:getDataString("name") end return 0 end function getPlayerIdByName(name) local query = db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name)) if query:getID() ~= -1 then return tonumber(query:getDataString("id")) end return 0 end function getPlayerID(cid) return getPlayerIdByName(getPlayerName(cid)) end Espero que gostem
    2 pontos
  6. Luga03

    Sistema de Addon

    Eai pessoal blz? eu estava lendo um tópico do nosso amigo Alexxxx... ai o Top...(o Bolz, esqueci o nick dele aq ¬¬) ai eu vi que ele falou que a forma que ele conseguio de adicionar addon no OT dele foi dando um Ctrol+F: Addon, na pasta do PokémonXRain! ai eu baixei ele e tentei, ai adicionei tudo nescessário nele no meu ot, ai quando usei, funcionou perfeitamente! mas claro q não é sem 100% pq quando da fly, ride, surf e etc ele volta pra outfit normal, ai precisa dar Go/back no pokémon para voltar com o addon! mas fora isto esta funcionando perfeitamente! Então Vamos Parar de Blábláblá e começar! Em Data/actions e Actions.xml adiciona isto: <action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/> Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando: IdAddon;IdAddon;IdAddon e por ai vai Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end Ai para adicionar um Novo Addon é só Adicionar esta tag: [ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit}, EM ItemID, troca pelo id do addon em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon! Em Goback.lua Procure Por: else doPlayerSendCancel(cid, "This pokemon is fainted.") end E Adiciona Emcima de Else Isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Em Catch system.lua Procura Por: doItemSetAttribute(item, "description", description) Adiciona Isto embaixo: doItemSetAttribute(item, "addon", 0) Em Some Functions.lua Procure Por: unLock(item.uid) Da Enter Duas Vezes e Adiciona isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho! Caso Queira uma Addon Box... Faz isto Em Actions.xml Adiciona Isto: <action itemid="12595" event="script" value="addonbox.lua"/> E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele: function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end Pronto Addon Box Adicionada! Créditos Pokémon X Rain Pelo Sistema de Addon Summer Slyer (Zet0N0Murmurou) Por Trazer ao Xtibia, e Por Fazer o Tutorial!
    2 pontos
  7. Vim aqui postar mais uma pagina legalzinha e mostrar como configurar ela em seu Gesior! Requisitos Gesior 2012 ou Gesiors para tfs 1.0 abra a pasta htdocs/pages ou www/pages copie e cole qualquer arquivo.php e renomeie mounts, ficando um arquivo mounts.php apague todo conteúdo do arquivo copiado e cole o código abaixo. basicamente pronto, caso seu servidor tenha algo diferente da pagina basta dar um control+F, buscar a descrição e alterar a gosto! Imagens Créditos: Piabeta! mounts.php
    2 pontos
  8. MuriloCavalcantti

    [Showoff] X-Layouts

    Olá Xtibianos, eu o mais gostoso vim apresentar um trabalho que está sendo feito por mim e que em breve será postado aqui. É uma entrada de cadastro para serves de pokémon, fique por dentro das novidades do projeto X-Layouts, abraços!
    2 pontos
  9. Script simples mas pode ser útil, para os ot admin. data/talkactions/scripts addplayersonline.lua : function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local v = param:split(",") if #v ~= 2 then player:sendCancelMessage("Insufficient parameters.") return false end local item, count = tonumber(v[1]), tonumber(v[2]) for _, pid in pairs(Game.getPlayers()) do pid:addItem(item, count) end broadcastMessage("A equipe acaba de mandar "..count.." "..ItemType(item):getName() " para todos os player online!", MESSAGE_STATUS_WARNING) return false end tag.XML : <talkaction words="/addplayersonline" separator=" " script="addplayersonline.lua" />
    2 pontos
  10. Mudrock

    [Znote ACC] Server info Style Gesior

    Ola Pessoa, Bom vi que muitas pessoas usam o server info box do gesior, então procurei e adptei uma versão por Znote Fiquem com ela [TRADUZIDO PARA O PT-BR] Adicione no index.php depois de: include 'layout/overall/header.php'; // Front page server information box by Raggaer. Improved by Znote. (Using cache system and Znote SQL functions) // Create a cache system $infoCache = new Cache('engine/cache/serverInfo'); $infoCache->setExpiration(60); // This will be a short cache (60 seconds) if ($infoCache->hasExpired()) { // Fetch data from database $data = array( 'newPlayer' => mysql_select_single("SELECT `name` FROM `players` ORDER BY `id` DESC LIMIT 1"), 'bestPlayer' => mysql_select_single("SELECT `name`, `level` FROM `players` ORDER BY `experience` DESC LIMIT 1"), 'playerCount' => mysql_select_single("SELECT COUNT(`id`) as `count` FROM `players`"), 'accountCount' => mysql_select_single("SELECT COUNT(`id`) as `count` FROM `accounts`"), 'guildCount' => mysql_select_single("SELECT COUNT(`id`) as `count` FROM `guilds`") ); // Initiate default values where needed if ($data['playerCount'] !== false && $data['playerCount']['count'] > 0) $data['playerCount'] = $data['playerCount']['count']; else $data['playerCount'] = 0; if ($data['accountCount'] !== false && $data['accountCount']['count'] > 0) $data['accountCount'] = $data['accountCount']['count']; else $data['accountCount'] = 0; if ($data['guildCount'] !== false && $data['guildCount']['count'] > 0) $data['guildCount'] = $data['guildCount']['count']; else $data['guildCount'] = 0; // Store data to cache $infoCache->setContent($data); $infoCache->save(); } else { // Load data from cache $data = $infoCache->load(); } ?> <!-- Render HTML for server information --> <table border="0" cellspacing="0"> <tr class="yellow"> <td><center>Server Information</center></td> </tr> <tr> <td> <center>Seja bem-vindo: <a href="characterprofile.php?name=<?php echo $data['newPlayer']['name']; ?>"> <?php echo $data['newPlayer']['name']; ?> </a> </center> </td> </tr> <tr> <td> <center>Top Player do servidor é : <a href="characterprofile.php?name=<?php echo $data['bestPlayer']['name']; ?>"> <?php echo $data['bestPlayer']['name']; ?> </a> level: <?php echo $data['bestPlayer']['level']; ?> Parabéns! </center> </td> </tr> <tr> <td> <center>Temos <b><?php echo $data['accountCount']; ?></b> Accounts criadas, <b><?php echo $data['playerCount']; ?></b> players, e <b><?php echo $data['guildCount']; ?></b> guilds </center> </td> </tr> </table> Créditos Raggaer Mudrock
    2 pontos
  11. Benny

    [X] Tutorial - Sign ( Iniciantes )

    https://www.youtube.com/watch?v=4PV3hFhMULI Tá, antes de tudo, desculpa Eu nunca fiz esse tipo de vídeo, então tava nervoso pra kct HDUAHUAHA Pode perceber pela respiração, pelas vezes que eu esqueci a palavra e tal. E não, eu não tava forçando a voz q Ela é escrota assim mesmo PSD (:
    2 pontos
  12. Primeiro abre o compilador vai ta assim depois abri o devcpp Agora vai aparece uma janela assim Depois se vai da CTRL + O ou clica nesse icone: Ai depois de ter descompactado a source de .rar para .arquivo você vai abri a source vai vim E abrir depois que carregar você edita da sua preferencia em conhecimento em c++ e faça um bom uso. Depois clicke Nesse botão: Ou aperte CTRL + F9 e espere compilar O arquivo .exe vai aparece em C:\Users\Seunome\Desktop\trunk.r3884\dev-cpp vai ta assim 'TheForgottenServer' Download do Compilador: Samuel DEV C++: http://www.mediafire.com/download/iygsjids3tjoo7y/Samuel+Dev+C%2B%2B.rar Download's das Sources: trunk.r3884_SVN.rar: http://www.mediafire.com/download/sfrcx4ntof227b5/trunk.r3884_SVN.rar trunk.0.3.6.rar: http://www.mediafire.com/download/qm1ywzcirtiwvqs/trunk.0.3.6.rar Scan: Samuel DEV C++: https://www.virustotal.com/pt/file/4fece7a13fffd3cbab6e61874fa213b2f90e8578685bb7ec6a5171af142f699d/analysis/1433403056/ trunk.0.3.6.rar: https://www.virustotal.com/pt/file/f3fae1e49b247627ecd5f0697b6d56ce82332f5bd662b8ec1d3e40668278cd05/analysis/1433394020/ trunk.r3884_SVN.rar: https://www.virustotal.com/pt/file/2015784032a1d2754b3f88671f73badca9cd82ecf8ed1e239f0bcf5f3d970942/analysis/1433395280/
    1 ponto
  13. Npc : local Config = { Monsters = { -- ["Name"] = {amount = quantidade} ["Demon"] = {amount = 30}, ["Hydra"] = {amount = 10}, }, StoragePro = 54661, -- Não mexer se não souber editar Money = 100 -- Dinheiro } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local msg = msg:lower() local release = talkState[talkUser] if msgcontains(msg, "mission") then if getPlayerStorageValue(cid, Config.StoragePro) < 1 then selfSay("A missão para promovido custa " .. Config.Money .. " você aceita fazer ?", cid) release = 1 elseif getPlayerStorageValue(cid, Config.StoragePro) == (2 + #Config.Monsters) then selfSay("Você já cumpriu a missão peça pra ser {promovido}.", cid) release = 2 elseif getPlayerStorageValue(cid, Config.StoragePro) == (3 + #Config.Monsters) then selfSay("Voce já terminou as missões, pode ir em embora!", cid) release = 0 end elseif msgcontains(msg, "yes") and release == 1 then if doPlayerRemoveMoney(cid, Config.Money) then local text = "" for monsters, v in pairs(Config.Monsters) do txt = txt .. ", " txt = txt .. v.amount .. " {" .. monsters .. "}" end npcHandler:say("A missão é matar esses monstros para mim" .. text .. ".", cid) for i, _ in pairs(Config.Monsters) do setPlayerStorageValue(cid, i, 0) end setPlayerStorageValue(cid, Config.StoragePro, 1) release = 0 else selfSay("Você não tem money suficiente!", cid) release = 0 end elseif msgcontains(msg, "no") and release == 2 then selfSay("Até logo!", cid) release = 0 end if msgcontains(msg, "lista") and getPlayerStorageValue(cid, Config.StoragePro) < (#Config.Monster + 3) then local text, n = "", 0 for monsters, v in pairs(Config.Monsters) do local sto = getPlayerStorageValue(cid, monsters) if sto < v.amount then n = n + 1 text = text .. ", " text = text .. (tostring(sto) < tostring(1) and v.amount or (tostring(v.amount) - tostring(sto))) .. " {" .. monsters .. "}" end end text = text:sub(3) if n > 1 then selfSay("Para terminar sua missão você ainda tem que matar esses monstros : " .. text, cid) release = 0 elseif n == 1 then selfSay("Você só tem mais um monstro à matar : " .. text, cid) release = 0 else selfSay("Você já terminou de matar os monstro que lhe pedi, agora sim tu é digno de ser {promovido}.", cid) release = 2 end elseif msgcontains(msg, "promovido") and release == 2 then selfSay("Aqui está sua promoção jovem soldado!!", cid) setPlayerVocation(cid, (getPlayerVocation(cid) + 4)) setPlayerStorageValue(cid, Config.StoragePro, (#Config.Monsters + 3)) -- Para deixar em utilizavel a storage para outras coisas for monsters, _ in pairs(Config.Monsters) do setPlayerStorageValue(cid, monsters, -1) end release = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC.XML : <?xml version="1.0" encoding="UTF-8"?> <npc name="Aldo" script="arquivo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, para você ser promoivido precisa passar por uma {mission}, para de uma olhada no que fazer diga {lista} ."/> </parameters> </npc> creaturescripts : local Config = { Monsters = { -- ["Name"] = {amount = quantidade} ["Demon"] = {amount = 30}, ["Hydra"] = {amount = 10}, }, StoragePro = 54661, -- Não mexer se não souber editar Money = 100 -- Dinheiro } function onKill(cid, target) if not isMonster(target) and getPlayerStorageValue(cid, Config.StoragePro) >= (2 + #Config.StoragePro) then return false end local monster = Config.Monsters[getCreatureName(target):lower] if monster then local sto = getPlayerStorageValue(cid, monster) if sto < (monster.amount - 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Task message: [" .. (sto + 1) .. "/" .. monster.amount .. "] of " .. getCreatureName(target) .. ".") setPlayerStorageValue(cid, monster, (sto + 1)) elseif sto == (monster.amount - 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations!! you have killed" .. (sto + 1) .. "/" .. monster.amount .. "] of " .. getCreatureName(target) .. "s ands and completed the task.") setPlayerStorageValue(cid, monster, (sto + 1)) setPlayerStorageValue(cid, Config.StoragePro, (getPlayerStorageValue(cid, Config.StoragePro) + 1)) end end return true end function onLogin(cid) registerCreatureEvent('taskNpc') return true end tag : <event type="login" name="verf_taskNpc" event="script" value="arquivo.lua"/> <event type="kill" name="taskNpc" event="script" value="arquivo.lua"/>
    1 ponto
  14. VaizardX

    NPC Editor

    Eai pessoal do xtibia Esse é o meu primeiro post , então qualquer erro me perdoe Vos trago algo muito útil para um servidor , que é um NPC Editor/Maker. Você pode usar ele para criar NPC de venda/troca , ou apenas aqueles NPC's que falam (Como os dos jogos de gameboy , Pokémon por exemplo.) Prints : * Funçoes : * Download Windows (Scan) Linux (Scan) Requerimentos : Você precisa ter o Java no seu computador Créditos : Elime (Otland) VaizardX (Por trazer para o xt)
    1 ponto
  15. Bruno

    TopLevel Effect

    setPlayerStorageValue(cid, 5212, 1) -- genin setPlayerStorageValue(cid, 5212, 2) -- chunin setPlayerStorageValue(cid, 5212, 3) -- jounin setPlayerStorageValue(cid, 5212, 4) -- hokage
    1 ponto
  16. Um excelente projeto, vale a pena com toda a certeza participar.
    1 ponto
  17. Precisamos de mapper experiente e um WEB MASTER Introdução em pdf do projeto: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing
    1 ponto
  18. L3K0T

    Abrindo Mapa de Poketibia RME 8.54+

    CONTEÚDO REMOVIDO: AGORA VOCÊ VAI TER QUE TER CRIATIVIDADE OU SE PENDURAR-SE NAS COSTA DE ALGUÉM, MENOS NA MINHA - BOA SORTE! error 404 - I do not serve the forum I retired.
    1 ponto
  19. Furabio

    Ajuda com talkaction

    Troca o seu por esse e testa : function onSay(cid, words, param) local message = [[ DODGE SYSTEM. Dodge System: O sistema consiste em Defender % dos ataques recebidos. Por Exemplo: Com 10 de dodge, voce vai defender 50% de dano de 3 entre 100 ataques levados Com 100 de dodge (o maximo) voce vai defender 50% de dano de 30 entre 100 ataques levados Cada pedra que voce usar, sua skill de dodge aumenta em 1 ponto Podendo no maximo ter 100 pontos Para obter a pedra voce precisa comprar no Npc Dodge Seller Localizado no teleport NPCS, no templo. DodgeSKILL:[]] .. getPlayerStorageValue(cid, 98798644) .. [[/100] ]] return doShowTextDialog(cid, 1961, message) end
    1 ponto
  20. Furabio

    Ajuda com talkaction

    Mas pra isso eu preciso saber, qual sistema tu ta usando, quais storages, etc ... não da pra fazer sem ter conhecimento disso.
    1 ponto
  21. Furabio

    Ajuda com talkaction

    Posta o link do sistema de onde tu pegou isso.
    1 ponto
  22. Furabio

    Ajuda com talkaction

    A sua não aumenta é isso ? poste sua talkaction ...
    1 ponto
  23. sim eu acho que num site deve ter informações essenciais para os players, como a mounts, sistemas e mais, ja ja eu to postando pagina de umbra create system para gesiors!
    1 ponto
  24. Boa cara, você tem muito jeito nisso =)
    1 ponto
  25. Opa, ela está no padrão sim, mas devido ao detalhamento acaba dando alguma ilusão de ótica ao visualizar as duas separadas, veja: Obrigado aos que estão acompanhando e elogiando nosso trabalho.
    1 ponto
  26. zipter98

    Sistema Upgrade

    --- Xtibia --- Xtibia. local vocations = {1, 2, 4, 5, 6, 7, 8} -- Vocações que podem refinar itens local ids_bloqueados = {2160, 5706, 2463} -- Itens que não podem ser refinados local controle = { {level = 0, quantOre = 1, chance = 100}, -- Level do item, quantidade de Iron Ore necessaria, chance de sucesso {level = 1, quantOre = 2, chance = 90}, {level = 2, quantOre = 3, chance = 80}, {level = 3, quantOre = 4, chance = 70}, {level = 4, quantOre = 5, chance = 60}, {level = 5, quantOre = 6, chance = 50}, {level = 6, quantOre = 7, chance = 40}, {level = 7, quantOre = 8, chance = 30}, {level = 8, quantOre = 9, chance = 20}, {level = 9, quantOre = 10, chance = 10} } function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if not isInArray(vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua vocacao nao pode refinar.") elseif isInArray(ids_bloqueados, itemEx.uid) then return doPlayerSendCancel(cid, "Este item nao pode ser refinado.") end if getItemInfo(itemEx.itemid).attack > 0 or getItemInfo(itemEx.itemid).defense > 0 or getItemInfo(itemEx.itemid).armor > 0 then for _, upgrade in pairs(controle) do local atk = getItemAttribute(itemEx.uid, "attack") or getItemInfo(itemEx.itemid).attack local def = getItemAttribute(itemEx.uid, "defense") or getItemInfo(itemEx.itemid).defense local arm = getItemAttribute(itemEx.uid, "armor") or getItemInfo(itemEx.itemid).armor local chance = math.random(1, 100) if getItemLevel(itemEx.uid) == upgrade.level then if doPlayerRemoveItem(cid, 5880, upgrade.quantOre) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS) if chance <= upgrade.chance then if getItemLevel(itemEx.uid) == 0 then doItemSetAttribute(itemEx.uid, "description", "Esse item foi refinado por" ..getCreatureName(cid)) end doItemAddLevel(itemEx.uid, 1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso! Agora seu "..getItemNameById(itemEx.itemid).." eh level " ..getItemLevel(itemEx.uid)) if getItemInfo(itemEx.itemid).attack > 0 then doItemSetAttribute(itemEx.uid, "attack", atk + 1) return true elseif getItemInfo(itemEx.itemid).armor > 0 then doItemSetAttribute(itemEx.uid, "armor", arm + 1) return true elseif getItemInfo(itemEx.itemid).defense > 0 and getItemInfo(itemEx.itemid).attack <= 0 then doItemSetAttribute(itemEx.uid, "defense", def + 1) return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") if getItemLevel(itemEx.uid) > 0 then doItemAddLevel(itemEx.uid, -1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) if getItemInfo(itemEx.itemid).attack > 0 then doItemSetAttribute(itemEx.uid, "attack", atk - 1) return true elseif getItemInfo(itemEx.itemid).armor > 0 then doItemSetAttribute(itemEx.uid, "armor", arm - 1) return true elseif getItemInfo(itemEx.itemid).defense > 0 and getItemInfo(itemEx.itemid).attack <= 0 then doItemSetAttribute(itemEx.uid, "defense", def - 1) return true end end return true end else doPlayerSendCancel(cid, "Voce nao tem iron ores o suficiente. Voce precisa de "..upgrade.quantOre.." iron ores.") end end end else doPlayerSendCancel(cid, "Esse item nao pode ser refinado.") end return true end
    1 ponto
  27. Como esperado da nova staff, um ótimo trabalho.
    1 ponto
  28. Furabio

    Remove Party Sytem

    Só é possível essa alteração com as sources ...
    1 ponto
  29. To gostando da mudanças, parabéns a todos envolvidos nas mudanças.
    1 ponto
  30. Vindo de você posso ter certeza que o servidor vão ter ótimos sistemas, boa sorte com o projeto
    1 ponto
  31. É nóis então. Nome: Rodrigo Idade: 16 Função pretendida: Mapper Formas de contato - Facebook/Skype: rodrigo.machado299 Porque você quer fazer parte do projeto?: Men, eu tinha um projeto mas não consegui levar a diante Quanto tempo de experiência você tem no seu ramo?:Muita, desde os tempos de slayer yurots, 8.54. Caso tenha algum trabalho feito/postado favor anexar o link ou imagem: tenho sim, mas é conteúdo de outro fórum, cê você fizer contato eu mando por MP
    1 ponto
  32. Faltou avisar também que foi atualizado o userInfoPane, hahaha. Ficou beeeem melhor!
    1 ponto
  33. 1 ponto
  34. Estou gostando das mundaças que estão acontecendo no fórum. Parabéns a toda equipe!
    1 ponto
  35. Gostaria de saber mais informações sobre. Boa sorte =)
    1 ponto
  36. Qwizer

    Skill Por stage

    creaturescripts.xml add <event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua" /> <event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua" /> baixe o anexo e coloque os arquivo na pasta scripts do creaturescripts no config.lua mude o skill rate pra 1x para configurar o skill stage abra o stagesconfig.lua {{0,3},{30,2}} do lvl 0 ao 30 3x acima do 30 2x para por mais stages e so add depois da virgula {lvl,x Skill) edite conforme achar necessário. stage.rar
    1 ponto
  37. Benny

    Novo sistema de Cargos e Novas pips!

    Enchi os olhos. Obrigado à você, cara Até mesmo porque se não fosse você eu não teria continuado ahuahuah Sobre a pip daniel é um pau no cu, rlx off ~ saudades, saudades
    1 ponto
  38. MuriloCavalcantti

    [Showoff] Pokémon Brasil

    Obrigado pelas opiniões, estarei utilizando esse background e atualizando o tópico, abraços. Atualizando, adicionado o background.
    1 ponto
  39. Show de bola Dani! <3
    1 ponto
  40. Beeki

    Novo sistema de Cargos e Novas pips!

    eu gostei, vai enchendo de matinho de acordo com a evolução, rsrs
    1 ponto
  41. pra um fórum que eu pensei que nunca mais iria ver, parabéns cada dia melhorando mais.
    1 ponto
  42. Bruno

    Sistema Upgrade

    Olha da para fazer essa parte de voltar sim, porém wands e rods não utilizam atributos para atacar, por isso que esse sistema não funciona nestes items. Para voltar ao invés de quebrar, tente assim:
    1 ponto
  43. Benny

    [Pedidos] ~ Beeny

    Sejam mais originais =P
    1 ponto
  44. Benny

    [Pedido] Faça seu pedido!

    Entendi muito bem não, enfim :
    1 ponto
  45. Bruno

    TopLevel Effect

    Ele fica subindo um efeito de texto, de x em x tempos, com a mensagem: [TOP] É algo um tanto quanto simples...
    1 ponto
  46. Tonynh

    Ferumbras - by tony

    Como essa galera tava me cobrando um mage, comecei a rabiscar um ferumbras e fiz uma pintura rápida pra melhorar =p eu não ia postar, mas beleza auhauh
    1 ponto
  47. colex

    Roller Coaster System

    Roller Coaster System Developed by Colex Introdução: Este script de Montanha-Russa é um sistema facil de utilizar, foi elaborado de forma a que qualquer pessoa pudesse usar sem qualquer alteração no script, mas para aquele que gostam de personalizar o script, eu adicionei um sistema de "eventos" e um par de funções para tornar muito facil a alteração e adaptação do script sem ser necessário entender o script em si. O script foi criado num OTServer 8.1, porém voce pode facilmente actualiza-lo para qualquer outra versão, quando voce faz o download do script, ele vem com um ficheiro README que ajuda-o no processo de actualização e tambem dá algumas informações extras. Features: Um script funciona com todas as montanhas-russas do server A velocidade aumenta quando voce desce uma rampa A velocidade diminui quando voce sobe uma rampa Voce pode adicionar impulsores ao trilho (aumenta a velocidade)* Voce pode adicionar freios ao trilho (diminui a velocidade)* Voce pode facilmente adicionar comportamentos personalizados ao ficheiro de eventos *leia o README para ter mais informações de como fazer isso Roller Coaster's Video: Este é um filme de exemplo da Roller Coaster que eu fiz para testar o script (não foi filmado com a ultima versão do script) Download: RollerCoaster___Colex.rar O download contem 4 arquivos: README.txt, RollerCoaster.lua, RollerCoasterEvents.lua e actions.xml Script: Estou a postar o script no próprio tópico para aqueles que não querem fazer o download do mesmo, mas querem dar uma olhada no script... Para obter todas as informações e ter um funcionamento correcto do sistema, é necessário o download do mesmo. ------Roller Coaster System by Colex------- dofile('data\\actions\\scripts\\RollerCoasterEvents.lua') local TRAINS = {7131, 7132} local all = {7121, 7122, 7123, 7124, 7125, 7126, 7133, 7134, 7135, 7136} local ACTION_TRAIN = {1001, 1002} local RAILS = { {id = all[1], dirs = {{dir = SOUTH, out = 2},{dir = NORTH, out = 2}}}, {id = all[2], dirs = {{dir = EAST, out = 1},{dir = WEST, out = 1}}}, {id = all[3], dirs = {{dir = EAST, out = 1},{dir = SOUTH, out = 2}}}, {id = all[4], dirs = {{dir = WEST, out = 1},{dir = SOUTH, out = 2}}}, {id = all[5], dirs = {{dir = EAST, out = 1},{dir = NORTH, out = 2}}}, {id = all[6], dirs = {{dir = WEST, out = 1},{dir = NORTH, out = 2}}}, {id = all[7], stop = 1}, {id = all[8], stop = 1}, {id = all[9], stop = 1}, {id = all[10], stop = 1}, } local SLOW = 500 local FAST = 200 local INCREASE = 50 local DECREASE = 50 local DOWN_INCREASE = 450 local UP_DECREASE = 155 local INFOS = {} TRUE = 1 FALSE = 0 function getRail(pos) local stack = 1 local found = 0 repeat pos.stackpos = stack rail = getThingfromPos(pos) if (rail.itemid == 0) then break end for i, r in ipairs(RAILS) do if (rail.itemid == r.id) then found = 1 break end end stack = stack + 1 until (found == 1) return rail end function moveTrain(cid) params = INFOS[cid] pos = getCreaturePosition(cid) rail = getRail(pos) dir = -1 for i,r in ipairs(RAILS) do if (rail.itemid == r.id) then if (RollerCoaster:onMove(cid, rail, r, pos) == FALSE) then table.remove(INFOS, cid) return 1 end if (r.stop ~= nil) then if (r.stop == 1) then RollerCoaster:onExitQuery(cid) addEvent(exitTrain, 2000, cid) return 1 end end change = rail.actionid - 1000 power = 0 power = change doChangeType(cid, r.id, INFOS[cid].beforeid) info = r.dirs[iNFOS[cid].type] dir = info.dir if ((power == 1) or (power == 2)) then if (RollerCoaster:onChangeSpeed(cid, power) == TRUE) then if (power == 2) then INFOS[cid].speed = INFOS[cid].speed - INCREASE elseif (power == 1) then INFOS[cid].speed = INFOS[cid].speed + DECREASE end end end if (INFOS[cid].currZ ~= pos.z) then if (RollerCoaster:onChangeLevel(cid, INFOS[cid].currZ, pos.z) == TRUE) then if (INFOS[cid].currZ > pos.z) then INFOS[cid].speed = INFOS[cid].speed + UP_DECREASE elseif (params.currZ < pos.z) then params.speed = params.speed - DOWN_INCREASE end end end if (params.speed < 1) then params.speed = 1 end params.currZ = pos.z newid = TRAINS[info.out] INFOS[cid].beforeid = r.id break end end if (dir ~= -1) then doSetItemOutfit(cid, newid, -1) doMoveCreature(cid, dir) addEvent(moveTrain,params.speed,cid) else RollerCoaster:onExitQuery(cid) addEvent(exitTrain, 2000, cid) end end function exitTrain(cid) table.remove(INFOS, cid) RollerCoaster:onExit(cid) doSetItemOutfit(cid, TRAINS[1], 0) pos = getCreaturePosition(cid) pos.y = pos.y - 1 doTeleportThing(cid, pos, 1) mayNotMove(cid, 0) end function enterTrain(params) if (RollerCoaster:onEnter(cid, params[2]) == TRUE) then doSetItemOutfit(params[1], params[2], -1) pos = getCreaturePosition(params[1]) table.insert(INFOS, params[1],{type = params.type, speed = SLOW, currZ = pos.z}) addEvent(moveTrain,1000,params[1]) end end function getSpeed(cid) if (INFOS[cid].speed ~= nil) then return INFOS[cid].speed end return FALSE end function setSpeed(cid, speed) if (INFOS[cid].speed ~= nil) then INFOS[cid].speed = speed return TRUE end return FALSE end function onUse(cid, item, fromPosition, itemEx, toPosition) if (isInArray(ACTION_TRAIN, item.actionid) == TRUE) then if (RollerCoaster:onEnterQuery(cid, item) == TRUE) then doTeleportThing(cid, toPosition, 1) mayNotMove(cid, 1) addEvent(enterTrain,500,{cid, item.itemid, type=(item.actionid-1000)}) end end return TRUE end ----"No Scripting Needed" System----- local change = {} change[all[1]] = {all[3], all[4]} change[all[2]] = {all[4], all[6]} change[all[3]] = {all[1], all[4], all[6]} change[all[4]] = {all[1], all[2], all[3], all[5], all[6]} change[all[5]] = {all[4]} change[all[6]] = {all[2], all[3], all[4]} change[all[7]] = {} change[all[8]] = {} change[all[9]] = {} change[all[10]] = {} function doChangeType(cid, id, beforeID) if (table.getn(change[id]) > 0) then if (isInArray(change[id],beforeID) == TRUE) then if (INFOS[cid].type == 1) then INFOS[cid].type = 2 else INFOS[cid].type = 1 end end end end Espero que gostem e façam bom proveito dele. Atenciosamente, Colex
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...