Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Marco Oliveira

    NPC Captain

    NPC Capitain data/npcs/scripts/captain.lua : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 npcHandler:addModule(FocusModule:new()) data/npcs/Captain.xml : <?xml version="1.0" encoding="UTF-8"?><npc name="Captain" script="data/npc/scripts/captain.lua" walkinterval="0" floorchange="0"> <health now="144" max="150"/> <look type="128" head="95" body="100" legs="35" feet="100" addons="3" corpse="2212"/> <parameters> <parameter key="module_travel" value="1"/> <parameter key="message_greet" value="Hello |PLAYERNAME|. If you don't know where to flow, say travel."/> <parameter key="travel_destinations" value="exempo,x,y,z,preço;exempo2,x,y,z,preço;"/> </parameters> </npc> Explicações : <parameter key="travel_destinations" value="exempo,x,y,z,preço;exempo2,x,y,z,preço;"/> Exemplo1 = Nome do local X = Posição X Y = Posição Y Z = Posição Z Preço = Preço do Teleport value= "nome do local, posição x, posição y, posição z, preço do teleport" ; -- Usado pra adicionar mais locais
    3 pontos
  2. Marco Oliveira

    NPC Bless

    data/npcs/scripts/BlessMan.lua : 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 onPlayerEndTrade(cid) npcHandler:onPlayerEndTrade(cid) end function onPlayerCloseChannel(cid) npcHandler:onPlayerCloseChannel(cid) end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = cid local p = Player(cid) local heal = false local hp = p:getHealth() if msgcontains(msg, "heal") then if getCreatureCondition(cid, CONDITION_FIRE) then selfSay("You are burning. I will help you.", cid) doRemoveCondition(cid, CONDITION_FIRE) heal = true elseif getCreatureCondition(cid, CONDITION_POISON) then selfSay("You are poisoned. I will cure you.", cid) doRemoveCondition(cid, CONDITION_POISON) heal = true elseif getCreatureCondition(cid, CONDITION_ENERGY) then selfSay("You are electrificed. I will help you.", cid) doRemoveCondition(cid, CONDITION_ENERGY) heal = true elseif getCreatureCondition(cid, CONDITION_PARALYZE) then selfSay("You are paralyzed. I will cure you.", cid) doRemoveCondition(cid, CONDITION_PARALYZE) heal = true elseif getCreatureCondition(cid, CONDITION_DROWN) then selfSay("You are drowing. I will help you.", cid) doRemoveCondition(cid, CONDITION_DROWN) heal = true elseif getCreatureCondition(cid, CONDITION_FREEZING) then selfSay("You are cold! I will help you.", cid) doRemoveCondition(cid, CONDITION_FREEZING) heal = true elseif getCreatureCondition(cid, CONDITION_BLEEDING) then selfSay("You are bleeding! I will help you.", cid) doRemoveCondition(cid, CONDITION_BLEEDING) heal = true elseif getCreatureCondition(cid, CONDITION_DAZZLED) then selfSay("You are dazzled! Do not mess with holy creatures anymore!", cid) doRemoveCondition(cid, CONDITION_DAZZLED) heal = true elseif getCreatureCondition(cid, CONDITION_CURSED) then selfSay("You are cursed! I will remove it.", cid) doRemoveCondition(cid, CONDITION_CURSED) heal = true elseif hp < 65 then selfSay("You are looking really bad. Let me heal your wounds.", cid) p:addHealth(65 - hp) heal = true elseif hp < 2000 then selfSay("I did my best to fix your wounds.", cid) p:addHealth(2000 - hp) heal = true end if heal then p:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) else local msgheal = { "You aren't looking really bad, " .. getCreatureName(cid) .. ". I only help in cases of real emergencies. Raise your health simply by eating {food}.", "Seriously? It's just a scratch", "Don't be a child. You don't need any help with your health.", "I'm not an expert. If you need help find a medic.", "Don't even waste my time, I have bigger problems than your scratched armor." } selfSay("" .. msgheal[math.random(1, #msgheal)] .. "", cid) end return true end if msgcontains(msg, "yes") and talkState[talkUser] > 90 and talkState[talkUser] < 96 then if getPlayerBlessing(cid, talkState[talkUser] - 90) then selfSay("You already have this blessing!", cid) else b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200)) if b_price < 2000 then b_price = 2000 end if doPlayerRemoveMoney(cid, b_price) then selfSay("You have been blessed by one of the five gods!", cid) doPlayerAddBlessing(cid, talkState[talkUser] - 90) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else selfSay("I'm sorry. We need money to keep this temple up.", cid) end end talkState[talkUser] = 0 return true end if msgcontains(msg, "yes") and talkState[talkUser] == 96 then havebless = {} for i = 1, 5 do if(getPlayerBlessing(cid, i)) then table.insert(havebless,i) end end if #havebless == 5 then selfSay('You already have all available blessings.',cid) talkState[talkUser] = 0 return true end b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200)) if b_price < 2000 then b_price = 2000 end b_price = ((5 - #havebless) * b_price) if doPlayerRemoveMoney(cid, b_price) then selfSay("You have been blessed by the five gods!", cid) for i = 1, 5 do doPlayerAddBlessing(cid, i) end doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else selfSay("I'm sorry. We need money to keep this temple up.", cid) end talkState[talkUser] = 0 return true end if msgcontains(msg, "all") then havebless = {} b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200)) if b_price < 2000 then b_price = 2000 end for i = 1, 5 do if(getPlayerBlessing(cid, i)) then table.insert(havebless,i) end end b_price = ((5 - #havebless) * b_price) if b_price == 0 then selfSay('You already have all available blessings.',cid) talkState[talkUser] = 0 return true end selfSay('Do you want to receive all blessings for ' .. b_price .. ' gold?',cid) talkState[talkUser] = 96 return true end local blesskeywords = {'wisdom', 'spark', 'fire', 'spiritual', 'embrace'} local blessnames = {'Wisdom of Solitude', 'Spark of The Phoenix', 'Fire of Two Suns', 'Spiritual Shielding', 'The Embrace'} for i = 1, #blesskeywords do if msgcontains(msg, blesskeywords[i]) then b_price = (2000 + ((math.min(130, getPlayerLevel(cid)) - 30) * 200)) if b_price < 2000 then b_price = 2000 end selfSay('Do you want me to grant you ' .. blessnames[i] .. ' blessing for ' .. b_price .. ' gold?',cid) talkState[talkUser] = 90 + i return true end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) data/npcs/BlessMan.xml : <?xml version="1.0" encoding="UTF-8"?> <npc name="Willian" script="BlessMan.lua" walkinterval="2000" floorchange="0" speechbubble="1"> <health now="100" max="100"/> <look type="134" head="58" body="114" legs="87" addons="3"/> <parameters> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="bless;blessings" /> <parameter key="keyword_reply1" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." /> <parameter key="keyword_reply2" value="I can grant you blessings such as {Wisdom} {of} {Solitude}, {Spark} {of} {The} {Phoenix}, our {Fire} {of} {Two} {Suns}, {Spiritual} {Shielding} and {The Embrace}. I can also grant you {all} of these blessings, just ask me." /> </parameters> </npc> Esse NPC tem um diferencial que ele tem um sistema de Healing, tira poison etc. Para comprar todas as blessings basta dizer "ALL" que ele te vende todas de uma vez.
    3 pontos
  3. JG6

    Download Naruto & Sasuke The Last Movie

    Eae Galera, eu trouxe aqui pra vcs o sasuke e o naruto the last que eu havia postado em outro tópico como show off mais agora é pra vcs baixarem e colocarem em seus servers as sprites foram feitas por mim então usem a vontade, moderador se tiver na área errada por favor troque pra mim. Então o tão esperado download: Naruto: Sasuke: Só vcs salvarem as imagens e cortarem tá até os movimentos deles. Vlws
    2 pontos
  4. RigBy

    Limite de player por sala

    Limite de player por sala Introdução: Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos. O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada. Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe. Caso a sala esteja lotada. Caso não. Em data/movement/script, crie LimiteArea.lua e adicione. Em movement/movement.xml Adicione essa tag E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.
    1 ponto
  5. Administrador

    PokeCyan Atualizado

    Informações PDA By Slicer 1.9 editado by senhor, 1,2 geração completa, 3 geração incompleta, Edições adicionado alguns pokemons mega, reformulado cp saffron, adiconado novos spawns de pokes shiny e mega fixo, refeito alguns remakes. Erros pokes mega nao tem corpse, usam a corpse de pokes normais, a um erro no boost.lua mas ja estou resolvendo, mega charizard x e y nao tem pokeball Download server: https://www.dropbox....liopah.rar?dl=0 client: https://www.dropbox....liopah.rar?dl=0
    1 ponto
  6. zipter98

    Mega Evolution System (PxG)

    Base usada: PDA by Slicer, v1.9 Para quem não conhece o sistema de mega evoluções, recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem Held Itens). Instalação do sistema (atenção nos detalhes) data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValueend No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") por: local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true endendif not mEvolve then table.insert(ret, "n/n,")end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir, health_percent_lost = getThingPos(cid), getCreatureLookDir(cid), (getCreatureMaxHealth(cid) - getCreatureHealth(cid)) * 100 / getCreatureMaxHealth(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) doCreatureAddHealth(newPoke, -(health_percent_lost * getCreatureMaxHealth(newPoke) / 100)) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"},} Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return trueend Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return trueend coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone")if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] endend Depois, acima do primeiro: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".")end Já em data/talkactions/scripts, move1.lua: Abaixo de: function doAlertReady(cid, id, movename, n, cd) coloque: if movename == "Mega Evolution" then return true end Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!"enddoCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se não quiser que o "Mega" apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick")end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end Caso queiram que cada mega evolução tenha um clã específico: Em move1.lua, acima de: move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} coloque: local megaEvoClans = { --[mega_stone_id] = "clan_name", [91912] = "Volcanic", [91913] = "Seavell", --etc,}if megaEvoClans[isMega] then if getPlayerClanName(cid) ~= megaEvoClans[isMega] then return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.") endend Finalizando o tópico após uma pequena reestruturação na indexação, gostaria de levantar algo que acredito ser bem claro: o sistema é cheio de detalhes, muitas vezes minuciosos. Um simples erro e bugs aparecem por toda parte. Se você encontrou algum, pelo menos uma das duas seguintes condições acontecem: Base DIFERENTE da usada. Peço desculpas, mas não pretendo adaptar o sistema para todas as bases diferentes que aparecerem. Se a base for a mesma, você com certeza errou em algum ponto da instalação. O sistema foi testado inúmeras vezes, não apenas por mim, e seu funcionamento foi seguidamente comprovado. Façam bom uso, invocadores.
    1 ponto
  7. getCreaturePathTo(cid, position, maxSearchDist) Retornará uma tabela com as direções que o jogador deve seguir para chegar no ponto position. Não contem as posições que ele deve passar por. maxSearchDist é o valor máximo de passos que ele vai dar em direção à essa position e na via das dúvidas coloque o maior valor de distancia entre as duas posições. Ex: Da para fazer um npc anda até certo lugar e depois volta. Suporte para: TFS 0.4/0.3.6 e OTX2 Em luascript.h depois de: static int32_t luaGetCreatureName(lua_State* L); Adicionar: static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de: //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar: //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de: int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, creature->getName().c_str()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Adicionar: int32_t LuaInterface::luaGetCreaturePathTo(lua_State* L) { //getCreaturePathTo(cid, pos, maxSearchDist) ScriptEnviroment* env = getEnv(); int32_t maxSearchDist = popNumber(L); PositionEx position; popPosition(L, position); Creature* creature = env->getCreatureByUID(popNumber(L)); if (!creature) { lua_pushnil(L); return 1; } std::list<Direction> dirList; lua_newtable(L); if (g_game.getPathTo(creature, position, dirList, maxSearchDist)) { std::list<Direction>::const_iterator it = dirList.begin(); for (int32_t index = 1; it != dirList.end(); ++it, ++index) { lua_pushnumber(L, index); lua_pushnumber(L, (*it)); pushTable(L); } } else { lua_pushboolean(L, false); } return 1; } Credito: Elwyn
    1 ponto
  8. Marco Oliveira

    Depot RPG

    DEPOT Servidor RPG
    1 ponto
  9. Marco Oliveira

    [Encerrado]Procuro projeto 8.6+

    Olá amigos tibianos como vão vocês ? Sou novo no XTIBIA e estou procurando um novo projeto para trabalhar, bem procuro uma versão que seja superior a 8.60 pois já me enjoei dela. Meu nome é Marco tenho 15 anos e faz uns 7 anos que jogo Tibia, a algum tempo atrás eu cansei de ser só um jogador de OTServer agora eu busco um projeto propio pois estou cansando de projeto dos outros. Aqui estão algumas de minhas construções: http://imgur.com/a/EJ3Z2 Contato Skype: marco.olivers
    1 ponto
  10. Bruno

    Vanaheim global open source

    HAHAHA sem problemas Qualquer coisa dá um grito!
    1 ponto
  11. Substitua por essa local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) local slotPos = {5,6} -- slots local items = {2376, 2512, 2467} -- id das rods function onCastSpell(cid, var) for i = 1, #slotPos do for _, y in pairs(items) do if getPlayerSlotItem(cid, slotPos[i]).itemid == y then doCombat(cid, combat, var) return true end end end return false end
    1 ponto
  12. Atualização amanha v13 10.79 Addons e montarias novas
    1 ponto
  13. Iron Body: exp2.0.lua: Em baixo de: if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 end end coloque: if getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 9658783, -1) end end, ironBody.duration * 1000) end Em goback.lua (actions), abaixo de: doCreatureSay(cid, mgo, TALKTYPE_SAY) coloque: if pokename == ironBody.name then doSetCreatureOutfit(pk, {lookType = ironBody.outfit}, ironBody.duration * 1000) setPlayerStorageValue(pk, 9658783, 1) setPlayerStorageValue(pk, 2818, os.time() + ironBody.cooldown) addEvent(function() if isCreature(pk) then doRemoveCondition(pk, CONDITION_OUTFIT) setPlayerStorageValue(pk, 9658783, -1) end end, ironBody.duration * 1000) end Depois, em configuration.lua: ironBody = { name = "Bronzong", --Nome do pokémon. outfit = xxx, --Outfit. duration = 5, --Duração. chance = 35, --Chance, em %, de ativar a passiva. cooldown = 15, --Cooldown para usá-la novamente. } E você tem certeza absoluta que o pulo do Bronzong não é um efeito? Conferiu no client da PxG? Se for literalmente um salto, já imagino como foi feito. E, assim, adianto: será necessária a criação de um item invisível, com a propriedade do jogador poder passar por cima dele e sofrer uma elevação (como os bancos e parcels, sabe?).
    1 ponto
  14. RigBy

    Usar Baú e Equipar itens

    Conseguir fazer, deu um pouco de trabalho mas com ajuda do Vodkart e comedinha eu conseguir fazer. Testei de todos os jeito, acho que ta sem nenhum bug. Action: .lua -- Do not remove the credits -- -- [ACTION] Clicar no bau é equipa os items -- -- Developed by Rigby -- -- Config -- local bau = 2500 -- id do bau local slotPos = {1,4,5,6,7,8} -- slots local items = {2461, 2467, 2512, 2376, 2649, 2643} -- Set que vai ganha, você terar que adiciona na seguinte ordem -- local items = {helmet, armor, mão esquerda, mão direita, legs, boots} -- Config -- function onUse(cid, item, fromPosition, itemEx, toPosition) local check_slot = true for _, y in pairs(items) do if item.itemid == bau then for i = 1, #slotPos do if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then check_slot = false end end if check_slot then doRemoveItem(item.uid, 1) for _, var in pairs(items) do doPlayerAddItem(cid, var, 1) end end elseif item.itemid == y then local tab = {} for _, i in pairs(items) do if getPlayerItemCount(cid, i) > 0 then table.insert(tab, 1) end end if #tab >= 6 then doPlayerAddItem(cid, bau, 1) for _, var in pairs(items) do doPlayerRemoveItem(cid, var, 1) end else doPlayerSendCancel(cid, "Você precisa ter todas as partes para transformar no bau denovo") end end end return true end Você adicionar no itemid todos os items que vai ganha e o id do bau também \/, que nesse caso é 2500 .xml <action itemid="2500;2461;2467;2512;2376;2649;2643" event="script" value="Nomedoscript.lua"/>
    1 ponto
  15. Bruno

    BAU DE Quest

    @, Vá em data/creaturescripts/creaturescripts.xml e adicione a seguinte tag: <event type="kill" name="bossKill" script="bosskill.lua"/>Em data/creaturescripts/scripts crie o arquivo bosskill.lua com o seguinte conteúdo: local config = { boss = "Nome do Boss", storage = 724800 } function onKill(cid, target, damage, flags) if isMonster(target) then if getCreatureName(target) == config.boss and getPlayerStorageValue(cid, config.storage) == -1 then setPlayerStorageValue(cid, config.storage, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens por matar o boss " .. config.boss .. ", pode pegar sua recompensa.") doSendMagicEffect(getCreaturePosition(cid), 66) end end return true endAinda em data/creaturescripts/scripts adicione isso em login.lua antes do ultimo return true: registerCreatureEvent(cid, "bossKill")Agora vá em data/actions/actions.xml e coloque a seguinte tag: <action actionid="4213" script="rewardBoss.lua" />E para finalizar, em data/actions/scripts crie o arquivo rewardBoss.lua com o seguinte conteúdo: local config = { questStorage = 724877, bossStorage = 724800, item = {18422, 5} -- itemid, amount } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, config.bossStorage) >= 1 then if getPlayerStorageValue(cid, config.questStorage) >= 1 then doPlayerSendTextMessage(cid, 25, "Desculpe, mas voce ja completou essa quest!") return false end doPlayerAddItem(cid, config.item[1], config.item[2]) setPlayerStorageValue(cid, config.questStorage, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens! Voce recebeu "..config.item[2].." "..getItemNameById(config.item[1])..".") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE) return true else doPlayerSendTextMessage(cid, 25, "The chest is empty.") end return false end
    1 ponto
  16. TFS 0.4, rev 3777 r19, versão 8.60 eu baixei as dll uma por uma só basta você puxa no google que você acha. libiconv-2.dll libmysql.dll libxml2-2.dll lua5.1.dll zlib1.dll
    1 ponto
  17. Bruno

    [Resolvido] Distro

    Link: http://www.4shared.com/zip/Wtq97z7jce/tfs_04.html Scan: https://www.virustotal.com/pt/file/1bbd0c8fdf39de9a95cbe1a22aaba11afbc3944e71d14f9216b104d68ca46753/analysis/1435334949/ O executável está compilado para 32 bits, porém as sources estão juntas.
    1 ponto
  18. Bruno

    [Resolvido] Distro

    O tfs 0.4, é o melhor distro que já trabalhei com 8.60.
    1 ponto
  19. Vodkart

    Arena System Inovador

    mas teria que destruir o nexus inimigo?? algumas torres?? ou só mata mata
    1 ponto
  20. Vodkart

    Limite de player por sala

    esse código é bom para quem gosta de fazer quest, exemplo a firewalk boots
    1 ponto
  21. FlamesAdmin

    held item system

    Ve se te ajuda! http://www.xtibia.com/forum/topic/231034-pda-held-items-com-tiers-eternamente-2234/
    1 ponto
  22. voce teria que colocar no a href="link" para link direto, coloque o ip de onde esta hospedado e o diretorio do arquivo. exemplo na pasta www/download tem um arquivo chama exemplo.exe logo o link ficaria assim <a href="meuip.com/download/exemplo.exe"> espero que tenha entendido!
    1 ponto
  23. Troque o código do Unown Help por esse: elseif spell == "Unown Help" then local config = { summonPoke = "Unown", health = 5, --% de HP (baseada na HP máxima do pokémon) tirada do Unown Legion. } if isSummon(cid) then local pid = getCreatureMaster(cid) doSummonMonster(pid, config.summonPoke) local newPoke = getCreatureSummons(pid)[#getCreatureSummons(pid)] doTeleportThing(newPoke, getClosestFreeTile(newPoke, getThingPos(cid), false)) adjustStatus(newPoke, getPlayerSlotItem(pid, 8).uid, true, true, true, true) end Troque: function adjustStatus(pk, item, health, vite, conditions) por: function adjustStatus(pk, item, health, vite, conditions, unown) Acima de: setPlayerStorageValue(pk, 1007, nick) coloque: if unown then nick = "Unown" end Acima de: if isSummon(pk) and conditions then --alterado v2.5 daki pra baixo!! coloque: if unown then return true end
    1 ponto
  24. HeelNox

    Aumentar Limite De Efeitos

    8.54 = 0.3.6 pl1 creio eu.
    1 ponto
  25. VictorWEBMaster

    xTibia - Shadowcores Website

    Parabéns pelo conteúdo! Já trabalhei neste website. Quero deixar bem claro um erro que este site possuí. Programei para o servidor ChineloBR, e perante várias invasões o administrador resolveu comprar um website, pois bem. Este é o website Abra o pages/account.php, lá procure por "luan", ou apenas procure o código: elseif($action == 'luan') { $player = stripslashes(ucwords(strtolower(trim($_REQUEST['character'])))); $points = $_POST['points']; if(empty($player)) { ECHO '<div class="well"> <h2> Add Premium-points </h2> <form action="" method="post"> <B> Enter Character Name: </B> <input type="text" name="character"><br> <B> Enter Points Amount:</B> <input type="text" name="points"><br><br> <input type="submit" value="Submit"> </form></center><form action="adminpanel" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form> </DIV>'; } else { $player_data = $SQL->query("SELECT * FROM `players` WHERE `name` = '".$player."';")->fetch(); $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + '".$points."' WHERE `id` = '".$player_data['account_id']."'"); ECHO '<div class="well"> <b><center>'.$points.' Premium Points added to the account of <i>'.$player.'</i> ! </b></center><br> <form action="adminpanel" method="post" ><input name="submit" type="submit" value="Back" title="Back"/></form> </div>'; } } Encontrei este "sistema" feito pelo autor do website para se valorizar meio servidores novatos e veteranos meio a confiança do website. Sistema basicamente libera a quem acessa o link http://site/account&action=luan permissão toda e por completa a adição de pontos no servidor. Fiquem atentos! Website é de confiança? Então procure se informar do autor. Este eu posso afirmar que não é.
    1 ponto
  26. zipter98

    NPC Upgrader

    Oi, vi a ideia desse NPC em um lugar por aí e resolvi fazer. Consiste em um NPC que aprimora seu item (deve estar em uma das mãos - esquerda ou direita) a troco de um outro item (configurável). A cada nível de aprimoramento, seu item recebe um valor configurável no ataque, defesa e/ou armadura. Você pode configurar o nível de aprimoramento máximo, chance de falhar, valor adicional que o item receberá a cada aprimoração e, como já dito antes, o item que será cobrado pelo NPC. Em data/npc, crie um arquivo com extensão .XML, nomeie-o Upgrader, e coloque o seguinte conteúdo: <?xml version="1.0" encoding="UTF-8"?> <npc name="Upgrader" script="upgradenpc.lua" walkinterval="3000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="134" head="39" body="113" legs="38" feet="0" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, voce gostaria de aprimorar o seu equipamento?"/> </parameters> </npc> Em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o upgradenpc.lua, e coloque o seguinte conteúdo: 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 config = { items = {12343, 10}, --Respectivamente, ID do item que o NPC irá cobrar e quantidade. maxBoost = 10, --Nível máximo do equipamento. failChance = 20, --Em porcentagem. upgradeValue = 1, --Valor adicional que o item receberá a cada aprimoração. } if msgcontains(msg:lower(), "yes") then for slot = 5, 6 do local item = getPlayerSlotItem(cid, slot) if item.uid > 0 then if getItemAttack(item) > 0 or getItemDefense(item) > 0 or getItemArmor(item) > 0 then if doPlayerRemoveItem(cid, config.items[1], config.items[2]) then local newUpgrade = (getItemAttribute(item.uid, "upgrade") or 0) + 1 if newUpgrade <= config.maxBoost then if math.random(1, 100) > config.failChance then doItemSetAttribute(item.uid, "name", getItemInfo(item.itemid).name.." [+"..newUpgrade.."]") if getItemAttack(item) > 0 then setItemAttack(item, getItemAttack(item) + config.upgradeValue) end if getItemDefense(item) > 0 then setItemDefense(item, getItemDefense(item) + config.upgradeValue) end if getItemArmor(item) > 0 then setItemArmor(item, getItemArmor(item) + config.upgradeValue) end doItemSetAttribute(item.uid, "upgrade", newUpgrade) selfSay("Seu equipamento foi aprimorado com sucesso.", cid) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else selfSay("Aah, parece que a aprimoração falhou! Mais sorte na próxima vez.", cid) end return true else return selfSay("Seu equipamento já alcançou o nível máximo.", cid) end else return selfSay("Você não tem "..config._item[2].."x "..getItemNameById(config._item[1])..(config._item[2] > 1 and "s" or "")..".", cid) end end end end selfSay("Parece que você não tem um item para aprimorar.", cid) elseif msgcontains(msg:lower(), "no") then selfSay("Tudo bem, então.") end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Versão testada: 8.54 Bem, é só isso, até mais.
    1 ponto
  27. zipter98

    Arena System Inovador

    Na verdade eu pretendia fazer quando tivesse mais tempo livre (por ser um código grande), mas tudo bem. Se desistir, avise aqui, por gentileza. Se tiver alguma dificuldade, peço que também informe aqui para podermos ajudá-lo.
    1 ponto
  28. Reparei que na PxG este Air Vortex, além de impedir com que o pokémon usuário se mova ou use outras spells, aplica um efeito de silence. Você quer da mesma maneira? Se sim, todos os pokémons pegos pelo movimento teriam este debuff aplicado? Também reparei que, quando o Shiny Fearow usa esta magia, há efeitos de "redemoinho" em volta dele. Saberia dizer se isto é parte da outfit ou efeitos individuais? Já no Unown Help, estes Unowns possuem tempo de duração? E este ataque usado por eles que você mencionou, como funciona? No Unown Rush, reparei que o efeito do dano em área é lançado algumas vezes. Neste caso, cada "lance" aplica dano ou este é aplicado apenas uma vez? E estou enganado, ou ao final da execução do movimento o Unown Legion fica com o buff do Barrier? Você gostaria disso também na spell (apesar de eu achar absurdamente estranho lol)?
    1 ponto
  29. Ajudaria se você postasse um vídeo demonstrando as spells, juntamente de uma explicação detalhada.
    1 ponto
  30. fala ai Galera Fiz um Patch de Pokemons da 3 a 4 gera e Irei Postar para vcs! Bom nesse Patch Contem: Pokes de Hoen em IDC: 100% Corpos de Hoen em IDC: 100% Portfoils de Hoen em IDC: 100% Pokes de Sinooh em IDC: 100% Corpos de sinooh em IDC: 100% Portfoils de Sinooh em IDC: 100 Breve umas Prints Sobre o Patch mais é as mesmas Sprites do OTpokemon mais em IDC Podendo Colocar no seu Server! Download: http://www.4shared.com/rar/HWIM_rhR/Patch_Pokemons_Novos.html Se Gostou REP++ u.u
    1 ponto
  31. gustavo3754

    Spells Transform 8.54

    Eae galera, eu tava com uma duvida sobre um script de spell de transformação, mais ninguem arrumou nem mesmo o criador do script, então decidir refaser. Pra quem quiser ta ai. Data/Spells/Script/Transform.lua function onCastSpell(cid, var) local config = { [1] = {level = 50, newvoc = 2, outfit = 37, eff = 56}, [2] = {level = 100, newvoc = 3, outfit = 18, eff = 57}, [3] = {level = 150, newvoc = 4, outfit = 71, eff = 58}, [4] = {level = 200, newvoc = 5, outfit = 70, eff = 59} } trans = config[getPlayerVocation(cid)] if not trans then doPlayerSendCancel(cid, "You can not transform.") return false elseif getPlayerLevel(cid) >= trans.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You not level " .. trans.level .. " to transform.") end doSetCreatureOutfit(cid, {lookType = trans.outfit}, -1) doPlayerSetVocation(cid, trans.newvoc) doSendMagicEffect(getCreaturePosition(cid), trans.eff) doPlayerSendCancel(cid, "You Transformed!") return true end Tag, Data/Spells/Spells.xml <instant name="Transform" words="transform" lvl="1" mana="0" aggressive="0" selftarget="1" exhaustion="1000" needlearn="0" event="script" value="transform.lua"> </instant> Explicando. Legenda: Vermelho: Vocação que você quer que transforme Azul: Level que ira prescisar para essa tal vocação se transformar Laranja: Nova vocação que a vocação anterior, ou seja 1 ira se transformar Verde: Id do outfit do personagem (roupa) Rosa: Efeito que vai aparecer quando o player transformar Gostou!? Ajudei!? REP+ Créditos: LuckOake
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...