Ir para conteúdo

Caronte

Membro
  • Registro em

  • Última visita

Tudo que Caronte postou

  1. @leonardobo, editei, vê lá se continua... F5
  2. Desculpa eu não entendi... eu coloquei o tempo menor para testar aqui, vou editar o post para colocar 15 e 30
  3. doPlayerSendCancel(cid, "You are exhausted in Doton Doryu Heki for: "..(getPlayerStorageValue(cid, 2343) - os.time() ).." seconds.")
  4. Caronte postou uma resposta no tópico em Suporte Tibia OTServer
    Vá em (lib/050-function.lua) e coloque na primeira linha, salve e feche... function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 2 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end Depois só mudar o seu script para este: function onDeath(cid, corpse, killer) local pos = getCreaturePosition(cid) local monster = 'morte' -- criatura local timer = 3 -- quanto tempo vai demorar pra sumir function removeMonster() for _, pid in ipairs(getCreatureSummons(killer[1])) do doRemoveCreature(pid) end return true end if not isWalkable(pos, false, true, false) then return true end if isPlayer(cid) and isPlayer(killer[1]) then doConvinceCreature(killer[1], doCreateMonster(monster, pos)) doSendAnimatedText(getThingPos(cid), "DEATH!", 19) -- O "death" é a frase que irá aparece em cima do corpo doSendMagicEffect(getThingPos(cid), 29) addEvent(removeMonster, timer*1000) end return true end Vê se é como você quer...
  5. local remove_time = 5 -- tempo em segundos para remover as magic wall local item_id = 5750 -- id da magic wall function onCastSpell(cid, var) if math.random(0, 100) <= 30 then if (getPlayerStorageValue(cid, 2343) - os.time()) < 0 then setPlayerStorageValue(cid, 2343, (os.time() + 15)) end return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, "You are exhausted in Doton Doryu Heki for: "..(getPlayerStorageValue(cid, 2343) - os.time() ).." seconds.") and false end if (getPlayerStorageValue(cid, 2343) - os.time()) > 0 then return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, "You are exhausted in Doton Doryu Heki for: "..(getPlayerStorageValue(cid, 2343) - os.time() ).." seconds.") and false end setPlayerStorageValue(cid, 2343, (os.time() + 30)) local pos = getThingPosition(getCreatureTarget(cid)) posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1} posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1} posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1} posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1} posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1} posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1} posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1} posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1} posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8} for i=1, #posAll do if isWalkable(posAll[i]) then doCreateItem(item_id, 1, posAll[i]) end end addEvent(removeItem, remove_time*1000, posAll) return true end function isWalkable(pos, creature, pz, proj) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function removeItem(posAll) for i=1, #posAll do for j=0, 255 do pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j} removeTile = getThingfromPos(pos_stack) if removeTile.itemid == item_id then doRemoveItem(removeTile.uid) end end end end Aqui ta pegando direito, você quer que não fale as words ? coloquei para não falar a magia.
  6. Opa, esqueci de um negócio, testa novamente.
  7. Caronte postou uma resposta no tópico em Outros Jogos
    Interessante, pena que eu não tenho celular pra testar ...( perdi )
  8. local remove_time = 5 -- tempo em segundos para remover as magic wall local item_id = 5750 -- id da magic wall function onCastSpell(cid, var) if math.random(0, 100) <= 30 then return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and setPlayerStorageValue(cid, 2343, (os.time() + 15)) end if (getPlayerStorageValue(cid, 2343) - os.time()) > 0 then return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) and doPlayerSendCancel(cid, "You are exhausted") end setPlayerStorageValue(cid, 2343, (os.time() + 30)) local pos = getThingPosition(getCreatureTarget(cid)) posTile1 = {x=pos.x+1,y=pos.y+1,z=pos.z,stackpos=1} posTile2 = {x=pos.x+1,y=pos.y,z=pos.z,stackpos=1} posTile3 = {x=pos.x+1,y=pos.y-1,z=pos.z,stackpos=1} posTile4 = {x=pos.x,y=pos.y-1,z=pos.z,stackpos=1} posTile5 = {x=pos.x-1,y=pos.y-1,z=pos.z,stackpos=1} posTile6 = {x=pos.x-1,y=pos.y,z=pos.z,stackpos=1} posTile7 = {x=pos.x-1,y=pos.y+1,z=pos.z,stackpos=1} posTile8 = {x=pos.x,y=pos.y+1,z=pos.z,stackpos=1} posAll = {posTile1,posTile2,posTile3,posTile4,posTile5,posTile6,posTile7,posTile8} for i=1, #posAll do if isWalkable(posAll[i]) then doCreateItem(item_id, 1, posAll[i]) end end addEvent(removeItem, remove_time*1000, posAll) return true end function isWalkable(pos, creature, pz, proj) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function removeItem(posAll) for i=1, #posAll do for j=0, 255 do pos_stack = {x=posAll[i].x,y=posAll[i].y,z=posAll[i].z,stackpos=j} removeTile = getThingfromPos(pos_stack) if removeTile.itemid == item_id then doRemoveItem(removeTile.uid) end end end end
  9. Sem o script da spell, fica impossível pra quem não tem...
  10. local walls = { -- horizontal = { [3362] = 3401, [3401] = 3400, [3400] = 3648, -- }, -- vertical = { [3361] = 3399, [3399] = 3387, [3387] = 3648, -- }, } function onUse(cid, item, toPosition, itemEx, fromPosition) if itemEx.itemid == 3387 then setPlayerStorageValue(cid, 4858, "v") else setPlayerStorageValue(cid, 4858, "h") end if walls[itemEx.itemid] ~= nil then doTransformItem(itemEx.uid, walls[itemEx.itemid] ) doSendMagicEffect(fromPosition, CONST_ME_GROUNDSHAKER) else doPlayerSendCancel(cid, "Local de uso incorreto") doSendMagicEffect(toPosition, CONST_ME_POFF) end if walls[itemEx.itemid] == 3648 and getPlayerStorageValue(cid, 4858) == "h" then addEvent(function() doRemoveItem(getTileItemById({ x = fromPosition.x, y = fromPosition.y, z = fromPosition.z}, 3648).uid) doCreateItem(3362,1,fromPosition) doSendMagicEffect(fromPosition, CONST_ME_MAGIC_RED) end, 2000) elseif walls[itemEx.itemid] == 3648 and getPlayerStorageValue(cid, 4858) == "v" then addEvent(function() doRemoveItem(getTileItemById({ x = fromPosition.x, y = fromPosition.y, z = fromPosition.z}, 3648).uid) doCreateItem(3361,1,fromPosition) doSendMagicEffect(fromPosition, CONST_ME_MAGIC_RED) end, 2000) end return true end <action itemid="2556" event="script" value="Xcripts/martelo.lua"/>
  11. Caronte postou uma resposta no tópico em Eventos de Mapping
    Segue a foto sem iluminação: Lembrando que não mappeio regularmente...
  12. Caronte postou uma resposta no tópico em Eventos de Mapping
    Eu posso dar desculpa para tudo que você falou, porém, apesar de eu discordar de algumas coisas,é melhor eu me auto-avaliar, e ver o que te desagradou... Uma coisa que não gostei de ver, são os motivos de votação...
  13. Caronte postou uma resposta no tópico em Eventos de Mapping
    6x4 Septy desclassificado por revelar qual mapa é o dele. eu teria perdido sem chorar, apesar de não entender as justificativas, ele provavelmente iria ganhar... Podem desafiar..
  14. Caronte postou uma resposta no tópico em Playground (Off-topic)
    Tá, agora fala isso pra uma pessoa analfabeta, que não sabe nem o que é enem... que mora lá na puta que pariu, e é ignorante.
  15. Caronte postou uma resposta no tópico em Playground (Off-topic)
    A vida não é naruto não kra, kkkk você acha que os caras que trabalham nos coletivos não se esforçam ? to cansado de ver gente se fodendo, da minha familia, meus professores, meus amigos, desconhecidos... a questão que eu quero levantar, é que, na vida, tu não pode viver só com o objetivo de ter dinheiro, você vai morrer mesmo...
  16. Sem o sistema, ninguém vai resolver seu problema
  17. as storages não são as que você ta usando, tem que mudar...
  18. É melhor colocar o storage ao matar o boss, e não pisar no tile, pois se forem dois player e 1 dar o último hit, o outro não vai poder ganhar storage, e nem voltar lá...
  19. Ao matar o boss, ele não pode entrar no teleporte até ter 3 storages? Preciso me preocupar onde ganha esse storage 12003 ? ou você já tem ? o que você realmente precisa ? @Gustavo12345, Fiz esse: function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local BosPos = { x = 123, y = 456, z = 7 } -- posição da sala do primeiro boss local OldWidowPos = { x = 123, y = 456, z = 7 } -- posição da sala da the old widow if getPlayerStorageValue(cid,12001) == 1 and getPlayerStorageValue(cid,12002) ~= 1 then doTeleportThing(cid, BosPos) elseif getPlayerStorageValue(cid,12001) == 1 and getPlayerStorageValue(cid,12002) == 1 and getPlayerStorageValue(cid,12003) == 1 and getPlayerStorageValue(12004) ~= 1 then doTeleportThing(cid, OldWidowPos) else doTeleportThing(cid, fromPosition) end return true end que é o script só do teleport
  20. Infinita, mas é bem simples de colocar pra acabar...
  21. Bem simples, porém pode ser aplicado em outras coisas. obrigado por contribuir...
  22. Obrigado por contribuir, conteúdo aprovado e movido.
  23. Caronte postou uma resposta no tópico em Eventos de Mapping
    Podem votar: MAPA 01 MAPA 02 Modelo para votação: Mapa 03 Justificativa: Não precisa seguir este modelo, mas deve conter um dos mapas e a justificativa do voto. Votar em branco não é permitido por que ele não está participando desse duelo.
  24. Caronte postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Bem legal, nunca tinha parado pra pensar nisso...

Informação Importante

Confirmação de Termo