Ir para conteúdo

Pedro.

Membro
  • Registro em

  • Última visita

Tudo que Pedro. postou

  1. crie um creaturescript, e adicione isto. local rate = 20 --- porcentagem que irá ganhar a mais. function onKill(cid, target, lastHit) if isPremium(cid) then local monster = Monster(target) if not monster then return true end for id, damage in pairs(monster:getDamageMap()) do local player = Player(id) if player then local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() local expFormula = (((experience * Game.getExperienceStage(player:getLevel())) / 100) * rate) player:addExperience(math.floor(expFormula), true) end end end return true end adiciona o event em login player:registerEvent("Exp_Extra") e a tag em xml. <event type="kill" name="Exp_Extra" event="script" value="expextra.lua"/> créditos: luangostosão
  2. cara, o que o pessoal tá te mandando é um script de tile normal de vip system, por exemplo. Você usa uma potion e ganha uma storage de VIP, dai voce vai ter a permissão de passar no tile, acho que dá para usar no que você quer.. basta mudar algumas coisas, textos etc. no caso a tag você muda pelo item da "berserker potion" <action itemid="BERSERKER POTION" script="test.lua"/> Enfim, vamos ao script. Piso para passar somente quem usar o item. Crie em data/movements/scripts um arquivo entrada.lua function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "VOCE PRECISA USAR O ITEM...", msgWelcome = "MUDAR PELO TEXTO QUE DESEJA" } if getPlayerStorageValue(cid, 55489) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end TAG 0.4 <movevent type="StepIn" uniqueid="13500" event="script" value="entrada.lua"/> TAG 1.0 <movevent event="StepIn" uniqueid="13500" script="entrada.lua"/> Crie em actions/script/other um arquivo .lua, certifique-se de por o mesmo nome na tag em action.xml function onUse(cid, item) if getPlayerStorageValue(cid, 55489) - os.time() < 0 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Agora voce e um player VIP.") setPlayerStorageValue(cid, 55489, os.time() + (30*24*60*60)) doRemoveItem(item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Voce ja e VIP so poderá renovar daqui 30 dias.") end return TRUE end Nessa´parte 30*24*60*60 onde esta 30 coloca os dias que quer adicionar créditos: Mitsuig
  3. tente assim. action.xml <action itemid="10309" script="test.lua"/> action/lua. local config = { removeItem = "yes", strInName = "[DNT] ", vipStorage = 13500, vipDays = 15 } config.removeItem = getBooleanFromString(config.removeItem) function onUse(cid, item, fromPosition, itemEx, toPosition) local name, guid = getCreatureName(cid), getPlayerGUID(cid) doRemoveItem(item.uid, config.removeItem and 1 or 0) setPlayerStorageValue(cid, config.vipStorage, (config.vipDays*24*60*60) + os.time()) doRemoveCreature(cid) db.query("UPDATE `players` SET `name` = '"..config.strInName..""..name.."' WHERE `id` = "..guid..";") return true end depois vá em login.lua e la no final você coloca isso; if(string.find(getCreatureName(cid), "[DNT] ") then if(getPlayerStorageValue(cid, 13500) < os.time) then local newname, guid = string.match(getCreatureName(cid), " (.+)"), getPlayerGUID(cid) setPlayerStorageValue(cid, 13500, -1) doRemoveCreature(cid) db.query("UPDATE `players` SET `name` = '"..newname.."' WHERE `id` = "..guid..";") return true end end
  4. qual versão do seu tfs?
  5. vai em lib, crie um lua e adicione 034-exhaustion.lua exhaustion = { check = function (cid, storage) if(getPlayerFlagValue(cid, PLAYERFLAG_HASNOEXHAUSTION)) then return false end return getPlayerStorageValue(cid, storage) >= os.time() end, get = function (cid, storage) if(getPlayerFlagValue(cid, PLAYERFLAG_HASNOEXHAUSTION)) then return false end local exhaust = getPlayerStorageValue(cid, storage) if(exhaust > 0) then local left = exhaust - os.time() if(left >= 0) then return left end end return false end, set = function (cid, storage, time) setPlayerStorageValue(cid, storage, os.time() + time) end, make = function (cid, storage, time) local exhaust = exhaustion.get(cid, storage) if(not exhaust) then exhaustion.set(cid, storage, time) return true end return false end }
  6. Pedro. postou uma resposta no tópico em Suporte Tibia OTServer
    complicado, nunca abri servidor em casa caseiro, sempre foi por dedicado.
  7. Pedro. postou uma resposta no tópico em Suporte Tibia OTServer
    verefique o firewall também, ve se está ativo as vezes ele bloqueia, dps ve seu ip http://www.meuip.com.br/ e pede p alguem tentar entrar.
  8. escolha a melhor resposta para adicionar a tag [ Resolvido ]
  9. ótimo tutorial, porém para quem não entende, tá bem vago de como fazer as modificações, achar arquivos etc.
  10. ao invés de player:addMount(i), tente adicionar doPlayerAddMount(cid, montaria)
  11. Exemplo: Eu aceitei uma quest e terminei ela, após isso eu ganhei uma storage 701. Dai eu vou na sala de boss, para eu passar no tp antes tem um TILE que precisa dessa storage, o player passa tranquilo, porém ele consegue passar mil vezes, eu quero fazer com que ele passe apenas 1 vez. Para não fica matando o boss 20x tópico resolvido ;x function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 701) <= 0 then doTeleportThing(cid, getPlayerMasterPos(cid)) doPlayerSendTextMessage(cid, 22, "Você precisa terminar a missão antes, você foi teletransportado para o templo.") elseif getPlayerStorageValue(cid, 702) <= 0 then setPlayerStorageValue(cid, 702, 1) else doTeleportThing(cid, getPlayerMasterPos(cid)) doPlayerSendTextMessage(cid, 22, "Você só pode passar aqui uma vez.") end return TRUE end
  12. tente esse daqui http://www.mediafire.com/download/u0bao9bcp9ua5vr/Gesior+ACC+0.3.8+-+TibiaKing.com.rar
  13. porque não usa gesior amigo?
  14. qual a versão do seu servidor?
  15. Bom, to fazendo uma quest no meu servidor que funciona de seguinte maneira. O Player pede a missão em um npc, e depois que completar ele vai ganhar storage 701. Após isso, ele vai em outro npc, que vai ser teleportado para um local aonde ele vai poder matar o boss, ele só vai conseguir matar o boss, depois que tiver a storage 701 pra passar no tile. [ Até ai ok ] Eu gostaria de saber, como eu faço pra ele conseguir passa no tile apenas uma vez, para que ele não fique matando o boss toda hora. Ps: eu já tentei fazer um script que seta-se outra storage assim que ele matasse o boss, porém não adiantou, alguém tem alguma solução para mim? /script do tile. function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 701) <= 0 then doTeleportThing(cid, getPlayerMasterPos(cid)) doPlayerSendTextMessage(cid, 22, "você precisa terminar a missão antes, você foi teletransportado para o templo.") end return TRUE end
  16. aconselho trocar de site, é para wodbo? deve haver outros por aí.
  17. tente assim. movements/script/blabla.lua function onStepIn(cid) if isPlayer(cid) then setPlayerStorageValue(cid, POR AQUI SUA STORAGE, 0) end return true end <movevent type="StepIn" actionid="256900" event="script" value="blabla.lua"/>
  18. só você mudar a storage <quest name="The Pits of Inferno" startstorageid="39822" startstoragevalue="1"> <mission name="Acces to shortcuts" storageid="39822" startvalue="1" endvalue="2"> <missionstate id="1" description="At the end of this quest you will be able to use shortcuts."/> <missionstate id="2" description="Unlocked shortcut and now do not have to move all the 15 lever and you can use the teleport in the necromancer's house."/> </mission> <mission name="Thrones: Verminor" storageid="2082" startvalue="1" endvalue="1"> <missionstate id="1" description="You have already absorbed some of Veminor's spirit."/> </mission> <mission name="Thrones: Infernatil" storageid="2080" startvalue="1" endvalue="1"> <missionstate id="1" description="You have already absorbed some of Infernatil's spirit."/> </mission> <mission name="Thrones: Tafariel" storageid="2081" startvalue="1" endvalue="1"> <missionstate id="1" description="You have already absorbed some of Tafariel's spirit."/> </mission>
  19. área correta seria suporte de scripts, daqui a pouco alguém direciona pra lá. tente assim; crie um tp.lua em creaturescript e adicione isso lá. local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end - Tutorial - ["Orshabaal] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script>
  20. bump ²
  21. me impressiono com a quantidade de fera em lua aqui, mds ;x
  22. Olá, se ainda não tiver resolvido, tente dessa maneira. Creaturescript, crie um lua droploot.lua e adicione isto. registre em login. player:registerEvent("DropLoot") adicione isto em xml. <event type="death" name="DropLoot" script="droploot.lua"/> espero respostas.

Informação Importante

Confirmação de Termo