Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Piabeta Kun

    Kharsek primeiro lvl 900!

    o ekz foi o primeiro portal a ser postada essa noticia aqui no brasil, um salve pra mim!
    2 pontos
  2. Global Full [CLIENTS COMPATÍVEIS] 10 e 11.5. [BUGS E DOWNLOAD] BAIXEM E REPORTEM EM: OTXGlobal Full [FEATURES] NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ... [MAPA] FULL GLOBAL MAP WITH FEYRIST TODAS CIDADES E NOVAS AREAS TODAS QUESTS FUNCIONANDO! [EVENTS] WAR-ANTIENTROSA [CONTATO] SKYPE: onjogos WHATSAPP: (66) 998427-4493 [Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial - M4G0 - Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia
    1 ponto
  3. Oneshot

    Forge System

    ADVANCED FORGE SYSTEM O SISTEMA DE CRIAÇÃO DE ITENS PARA SEU SERVIDOR Creio que muitos já conhecem o sistema de forja criado por mim, acontece que o código já estava um pouco obsoleto, então resolvi reescrever ele do 0. Simplesmente consiste em um sistema de criação de itens avançado que ressuscita um pouco do RPG perdido nos servidores de hoje em dia. O jogador poderá criar itens através de forja, agindo como um verdadeiro ferreiro medieval. Adiciona itens em cima de uma bigorna previamente colocada no mapa e com um martelo cria um item totalmente novo. CARACTERÍSTICAS DA VERSÃO FINAL: - Configuração intuitiva e fácil de compreender; - Mini-tutorial auxiliando criação de novas receitas; - Receitas podem conter até 250 itens diferentes com suas respectivas quantidades; - Sistema inteligente que identifica uma receita em qualquer ordem; - Código totalmente orientado a objetos; - Possibilidade de configurar diferentes requerimentos, diferentes skills, magic level e level Há dois modos de instalar o Advanced Forge System, o primeiro é seguir os passos deste tópico e o segundo e baixar pasta data/ anexada no tópico com os arquivos em seus respectivos diretórios, precisando apenas o registro das chaves nos arquivos XML. Escolha o modo que mais convém a você. Crie um arquivo em data/lib chamado forgesystem.lua e cole o conteúdo abaixo: --[[ ADVANCED FORGE SYSTEM FINAL Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- RecipeHandler = { itemtype = 0, items = {}, level = 1, maglevel = 0, skills = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0} } Forge = { type = nil, position = nil, magicEffect = CONST_ME_MAGIC_GREEN, messages = { class = MESSAGE_STATUS_DEFAULT, success = "You have successfully forged a %s.", needskill = "You don't have enough %s to create a %s.", needlevel = "You need level %s to create a %s.", needmaglevel = "You need magic level %s to create a %s." } } function RecipeHandler:new(itemtype, items, level, maglevel, skills) local obj = { itemtype = (itemtype or 0), items = (items or {}), level = (level or 1), maglevel = (maglevel or 0), skills = (skills or {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0}) } table.insert(Recipes, obj) return setmetatable(obj, {__index = self}) end function RecipeHandler:setItem(itemtype) self.itemtype = (itemtype or 0) end function RecipeHandler:setRecipe(...) self.items = {...} end function RecipeHandler:setRecipeItem(itemid, amount) table.insert(self.items, {itemid, amount}) end function RecipeHandler:setSkill(skillid, value) self.skills[skillid] = value end function RecipeHandler:setLevel(value) self.level = value end function RecipeHandler:setMagLevel(value) self.maglevel = value end function RecipeHandler:check(position) local match = false for n, item in ipairs(self.items) do local thing = getTileItemById(position, item[1]) if thing.uid > 0 and math.max(1, thing.type) >= item[2] then if n == #self.items then match = true end else break end end return match end function RecipeHandler:get(position) if self:check(position) == true then return setmetatable({type = self, position = position}, {__index = Forge}) end return false end function Forge:create(cid) if self.type.itemid == 0 then print("[FORGE SYSTEM - ERROR] ATTEMPT TO CREATE A RECIPE ITEMID 0") return end local status = true if(cid) then if getPlayerLevel(cid) < self.type.level then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needlevel:format(self.type.level, getItemNameById(self.type.itemtype))) return end if getPlayerMagLevel(cid) < self.type.maglevel then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needmaglevel:format(self.type.maglevel, getItemNameById(self.type.itemtype))) return end for skillid, value in pairs(self.type.skills) do if getPlayerSkillLevel(cid, skillid) < value then status = false doPlayerSendTextMessage(cid, self.messages.class, self.messages.needskill:format(SKILL_NAMES[skillid], getItemNameById(self.type.itemtype))) break end end end if status == true then for _, item in ipairs(self.type.items) do local thing = getTileItemById(self.position, item[1]) doRemoveItem(thing.uid, item[2]) end doSendMagicEffect(self.position, self.magicEffect) doPlayerSendTextMessage(cid, self.messages.class, self.messages.success:format(getItemNameById(self.type.itemtype))) doCreateItem(self.type.itemtype, self.position) end end dofile(getDataDir() .."/lib/recipes.lua") Crie um arquivo em data/lib chamado recipes.lua e adicione o conteúdo abaixo: ---------------------------------------- -----** TUTORIAL DE CONFIGURAÇÃO **----- ---------------------------------------- --[[ O 'ADVANCED FORGE SYSTEM' é muito fácil e intuitivo de configurar, você só precisa chamar a função RecipeHandler:new(...), sendo que você já configurar os atributos da receita nela ou usar outras funções para isso. Por exemplo, quero criar uma Magic Sword que precise de 100 Gold Nuggets. RecipeHandler:new(2400, {{2157, 100}}) Ou então Magic_Sword = RecipeHandler:new() Magic_Sword:setItem(2400) Magic_Sword:setRecipe({2157, 100}) Funções do Sistema: RecipeHandler:new(itemtype, items, level, maglevel, skills) --> Cria uma nova instância de forja. RecipeHandler:setItem(itemtype) --> Atribui um certo itemid como resultado da receita. RecipeHandler:setRecipe(recipe) --> Atribui uma receita. RecipeHandler:setRecipeItem(itemid, amount) --> Adiciona um itemid e sua quantidade a receita. RecipeHandler:setSkill(skillid, value) --> Atribui um valor necessário de uma certa skill para poder criar a receita. RecipeHandler:setLevel(value) --> Atribui o level necessário para criar uma receita. RecipeHandler:setMagLevel(value) --> Atribui o magic level necessário para criar uma receita. ]]-- --[[ Este é um exemplo de receita usando algumas funções. É uma Magic Sword (ITEMID: 2400) que precisa de 100 Gold Nuggets (ITEMID: 2157), além disso, o personagem que tentar forjar, precisa ter Level 100 e Sword Fighting 50. ]]-- Recipes = {} magicsword = RecipeHandler:new() magicsword:setItem(2400) magicsword:setRecipeItem(2157, 100) magicsword:setLevel(100) magicsword:setSkill(2, 50) Agora em data/actions/scripts, crie um arquivo chamado iron_hammer.lua e adicione o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) local recipe = nil for _, v in ipairs(Recipes) do recipe = v:get(toPosition) if(recipe ~= false) then break end end if(recipe) then recipe:create(cid) else doPlayerSendCancel(cid, "This is not a valid recipe.") end return true end E por fim em actions.xml, adicione a seguinte linha: <action itemid="4846" event="script" value="iron_hammer.lua"/> OPCIONAL - TALKACTION A talkaction abaixo mostra ao jogadoras receitas configuradas no servidor que ele pode fazer. Em data/talkactions/scripts, crie um arquivo chamado recipes.lua e adicione o conteúdo abaixo: function onSay(cid, words, param, channel) local ret = {} local msg = " ADVANCED FORGE SYSTEM\n" for _, recipe in ipairs(Recipes) do local skills = true for skillid, value in pairs(recipe.skills) do if getPlayerSkillLevel(cid, skillid) < value then skills = false break end end if skills == true then if getPlayerLevel(cid) >= recipe.level and getPlayerMagLevel(cid) >= recipe.maglevel then table.insert(ret, {recipe, true}) else table.insert(ret, {recipe, false}) end else table.insert(ret, {recipe, false}) end end for _, recipe in ipairs(ret) do msg = msg .."\nRecipe for ".. getItemNameById(recipe[1].itemtype) ..":\n\n" if recipe[2] == true then for _, item in ipairs(recipe[1].items) do msg = msg .."* ".. getItemNameById(item[1]) .." [".. math.min(item[2], math.max(0, getPlayerItemCount(cid, item[1]))) .."/".. item[2] .."]\n" end else msg = msg .."[LOCKED]\n" end end doShowTextDialog(cid, 2555, msg) return true end Em data/talkactions/talkactions.xml, adicione a linha: <talkaction words="/recipes" event="script" value="recipes.lua"/> Siga as instruções para configuração de novas receitas. Em breve vídeo de funcionamento Advanced Forge System.rar
    1 ponto
  4. Caronte

    Xtibia QuestMaker

    Olá xtibianos, faz um tempo que estou desenvolvendo um quest maker pelo VS, e gostaria de dar uma preview de como está ficando. aceito sugestões e contribuições! O quest maker contará com tutoriais e explicações, para facilitar o uso do mesmo. Enfim, já fiz um beta em console application (cmd / dos) compilado pelo DEV-C++. Quem quiser testar, vou estar deixando o download logo abaixo. Download: [beta] Quest Maker - By Caronte. 64-bits [beta] Quest Maker - By Caronte. 32-bits quem quiser contribuir com o desenvolvimento do QuestMaker, basta ter conhecimento em C#, e falar comigo.
    1 ponto
  5. Conteudo Retirado.
    1 ponto
  6. Neste tutorial vou ensinar como criar seus próprios monstros personalizados para seu servidores OTSERV. Comece fazendo o download da versão mais recente do Notepad ++ Em seguida, você deve criar um arquivo xml e nomeá-lo com o nome do monstro, eu irei utilizar "King Kong" Clique com o botão esquerdo no arquivo e clique em Editar com o Notepad ++ em seguida, começar adicionando: <?xml version="1.0" encoding="UTF-8"?> Depois: <monster name="King kong" nameDescription="a King kong" race="blood" experience="10000" speed="500" manacost="200"> <health now="500000" max="500000"/> Monster name: Nome do Monstro nameDescription: Você deve usar ou não como exemplo o "You see a King kong" Race: Tudo o que sei sobre ele é que seu sangue / mortos-vivos. Experience: Experiencia por matar o monstro. Speed: Velocidade do monstro. Manacost: Custo de mana para sumonar a criatura. Healt now: vida da criatura ao ser summonada (criada no mapa) Max: vida máxima da criatura Agora: <look type="x" corpse="x"/> <targetchange interval="x" chance="0"/> <strategy attack="100" defense="0"/> Look Type: Outfit da criatura. Corpse: Corpo da criatura quando morto. Targetchange interval: Intervalo em que o monstro muda de alvo. Defense: Defesa da criatura. Depois: <flags> <flag summonable="x"/> <flag attackable="x"/> <flag hostile="x"/> <flag illusionable="x"/> <flag convinceable="x"/> <flag pushable="x"/> <flag canpushitems="x"/> <flag canpushcreatures="x"/> <flag targetdistance="x"/> <flag staticattack="x"/> <flag runonhealth="x"/> </flags> Em todos eles "1" (true) é para sim e "0" (false) é para não. Agora, deixe-me explicar cada um deles flag summonable="x" - A criatura pode ser sumonada ? flag attackable="x" - O Monstro pode ser atacado ? flag hostile="x" - A Criatura é Hostil ? flag illusionable="x" - Pode ser usado Utevo Res Ina ? flag convincible="x" - As pessoas podem coruja-la a partir de uma runa ? flag pushable="x" - A criatura pode ser puxada ? flag canpushitems="x - A criatura puxa itens ? flag canpushcreatures="x" - A criatura puxa outras criaturas ? flag targetdistance="x" - deve ser um número que é o espaço entre o alvo e criatura. 1 = lado do alvo, 5 = 4 sqms distância, etc flag runonhealth="x" a criatura vai correr do player com X de vida, se colocar 500, quando a criatura tiver 500 de vida, ele vai correr do jogador. Agora: <attacks> <attack name="x" interval="x" skill="x" attack="x"/> <attack name="x" interval="x" chance="x" range="x" min="-x" max="-x"> <attribute key="shootEffect" value="x"/> <attack name="x" interval="x" chance="x" range="x" radius="x" target="x" min="-x" max="-x"> <attribute key="shootEffect" value="x"/> <attribute key="areaEffect" value="x"/> </attack> </attacks> Attack name: eles são muito "use outros arquivos de monstro para saber sobre eles". Interval: Quantas vezes irá o ATK do monstro u "Lembre-se é contado em milisegundos" Skill: it is skill like sword fighting "it increases the atk rate" Attack: Por exemplo torná-lo como 10 a escala do monstro será de 10. Attack name: Tipo de ataque Chance: Chance de ataque Range: Ataque contados em SQM. Min: Dano mínimo causado "importante" e lembre-se de adicionar - antes que o dano como -10. Max: Danos máximo causado "importante" mesmo aqui lembrar acrescentando - antes que o dano como -20. AreaEffect: o efeito se vc quiser fazê-lo disparar chamá-lo de área de fogo entre o "" "Lembre-se que o nome de ataque deve ser a incêndios, se u quer que ele faça um atk fogo e definir o intervalo e raio como outros ATKS. attribute key="shootEffect": O efeito usado no ataque é como uma lança ou parafuso ou pequena pedra ou um incêndio ou algo. value="x": O item utilizado no shooteffect Depois: <defenses armor="x" defense="x"/> <defense name="x" interval="x" chance="x" speedchange="x" duration="x"> <attribute key="areaEffect" value="x"/> </defense> </defenses> Defenses armor: sua defesa armadura como 10 ou 12 ou assim por diante Defense: É como a armadura ur blindagem 20 ou assim por diante Agora: <elements> <element energyPercent="x"/> <element holyPercent="x"/> <element earthPercent="x"/> <element deathPercent="x"/> </elements> Todos esses são as % retirado do Energy/holy/earth/death se vc fez, por exemplo 10, então vai demorar 10% menos dano do ataque X se tornou u -10, então vai demorar 10% mais dano do X. Depois: <voices interval="x" chance="x"> <voice sentence="X" yell="x"/> </voices> vozes interval/chance: Quantas vezes ele vai dizer sua fala! Agora: <loot> <item id="x" countmax="x" chance="x"/> <item id="x" chance="x"/> <item id="x" chance="x"> <inside> <item id="x" chance="x"/> </inside> </item> </loot> </monster> Item id: item que irá dropar. Count max: Quantidade máxima que irá dropar. Chance: chance de drop do item. <inside> <item id="x" chance="x"/> </inside> Itens que vem dentro da bag, mesma configuração da de cima.
    1 ponto
  7. Olá Xtibia.com, Estou aqui para-lhes disponibilizar em torno de 30 Sprites BEM desejadas por todos da autoria do Pokexgames,Motivo da liberação? R:Não curto Muito Pokémon e descompilei o Client da pxg a pedidos esses dias e resolvi postar mais algumas Sprites deles,cheguei a liberar em um outro forum conheçido porém levei ban lá,azar dos usuarios deles neh. Créditos:Eu: pela descompilação,descriptografia,Ripe do Novo gyarados deles e pela liberação. Pokexgames:Pela Criação de todas Spr presente dentro desse pacote. Pretende atualizar? R:Sim. O que contém nesse pacote? R:Corpos,Habilidades e LookType de em torno 30 Pokémons remakes. Uma prints de alguns pokemons no final do topico. Download + Scan: Tudo que contém.
    1 ponto
  8. Uddy

    Kharsek primeiro lvl 900!

    Mudrock malz pelo flood!!
    1 ponto
  9. julhinhuu

    Scripts Spells

    [17/9/2015 17:43:13] [Error - Spell Interface] [17/9/2015 17:43:13] data/spells/scripts/suport/support club.lua:onCastSpell [17/9/2015 17:43:13] Description: [17/9/2015 17:43:13] data/spells/scripts/suport/support club.lua:16: attempt to perform arithmetic on global 'tmp' (a nil value) [17/9/2015 17:43:13] stack traceback: [17/9/2015 17:43:14] data/spells/scripts/suport/support club.lua:16: in function <data/spells/scripts/suport/support club.lua:13> @Edit Consegui arrumar aqui... Obrigado por tentar ajudar. local combat = createCombatObject() local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, 2 * 60 * 1000) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 10) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
    1 ponto
  10. local day = "Sunday" --Dia que o script será executado. function onTime(cid, item, fromPosition, itemEx, toPosition) if os.date("%A") ~= day then return true end local item = getTileItemById({x=32311, y=32214, z=6, stackpos=1}, 4907) local item2 = getTileItemById({x=32310, y=32214, z=6, stackpos=1}, 4907) local item3 = getTileItemById({x=32312, y=32214, z=6, stackpos=1}, 4907) local item4 = getTileItemById({x=1000, y=1002, z=4, stackpos=1}, 1051) doRemoveItem(item.uid, 1) doRemoveItem(item2.uid, 1) doRemoveItem(item3.uid, 1) doRemoveItem(item4.uid, 1) doBroadcastMessage("[EVENTO] Castle Opened") return true end
    1 ponto
  11. Bruno

    Xtibia QuestMaker

    Parabéns pela ideia @@Caronte!
    1 ponto
  12. Tonynh

    Kharsek primeiro lvl 900!

    Na verdade atualmente não tem nada atrás da porta.. Em um TS que rolou anos atrás, o Tjured se não me engano, revelou o teleport vazio. but A cip abriu enquetes de como seria por trás desse portal, e vocês sabem, a melhor lore certamente será implementada pelo bastidores
    1 ponto
  13. Peterwild

    Xtibia QuestMaker

    Parabéns pela iniciativa! Este projeto ajudará a muitas pessoas, sem ponta de dúvida.
    1 ponto
  14. Avuenja

    Xtibia QuestMaker

    Muito bom em Caronte! Parabéns!
    1 ponto
  15. Mudrock

    Xtibia QuestMaker

    é um ótimo projeto, gostei muito do designer, parabéns mano, reputado :-)
    1 ponto
  16. zipter98

    RING QUE DA LIFE E MANA

    data/movements/scripts: local health, mana = xxx, xxx --Respectivamente, quantidade de vida e mana adicionadas. function onEquip(cid) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + health) setCreatureMaxMana(cid, getCreatureMaxMana(cid) + mana) return true end function onDeEquip(cid) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - health) setCreatureMaxMana(cid, getCreatureMaxMana(cid) - mana) return true end Tags: <movevent type="Equip" itemid="ID_do_anel" slot="slot_do_anel" event="script" value="nome_do_arquivo.lua"/> <movevent type="DeEquip" itemid="ID_do_anel" slot="slot_do_anel" event="script" value="nome_do_arquivo.lua"/>
    1 ponto
  17. Administrador

    Xtibia QuestMaker

    Ta ficando muito bom mesmo! Parabéns!
    1 ponto
  18. nociam

    SPRITES PXG 2015 [JUNHO]

    Edit :Erro meu malz.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...