Jump to content
Close

maicao22

Member
  • Content Count

    36
  • Joined

  • Last visited

About maicao22

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Muito obrigado meus amigos deu super certo aqui. Rep + para vocês. Sem querer aproveitar da boa vontade, seria pedir muito a implementação do tempo restante subindo na alavanca, igual do global? Para que os outros players que estão esperando para fazer a quest tenha uma noção de quanto tempo aguardar. Visto que se trata de uma quest um tanto demorada para onde vou usar esse script.
  2. Veja como está: local config = { from = {x = 22987, y = 19805, z = 7}, -- coordenada do canto superior esquerdo da área. to = {x = 23024, y = 19992, z = 7}, -- coordenada do canto inferior direito da área. } local t = { lvl = 100, Time = 2, -- em minutos entrada = { {x = 23052, y = 19991, z = 7}, -- pos players {x = 23051, y = 19991, z = 7}, {x = 23050, y = 19991, z = 7}, {x = 23049, y = 19991, z = 7} }, saida = { {x = 23017, y = 19985, z = 7}, -- pos para onde eles irão {x = 23019, y = 19985, z = 7}, {x = 23017, y = 19987, z = 7}, {x = 23019, y = 19987, z = 7} }, monstros = { {{x = 23004, y = 19832, z = 7}, "Juggernaut"}, -- defina pos dos montros e nomes {{x = 23004, y = 19834, z = 7}, "Ghazbaran"} } } function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if #getPlayersInArea(config.from, config.to) and getPlayerStorageValue(cid,18441) == 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(config.from, config.to) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores fazendo a quest.') return true end for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui level '..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do setPlayerStorageValue(cid,18441,1) doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) addEvent(VarAnihiPlayer, t.Time*60*1000, tid) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end
  3. Certo, implementei aqui. Porem apenas para o player que puxou a alavanca está funcionando. Os demais são teleportados para a quest sem receber a determinada storage.
  4. entendi. estarei fazendo aqui e testando. Mas no caso, precisarei de um creaturescripts também para caso ele morra remover a storage, certo?
  5. Mas tipo, isso dai vai fazer com que nao teleporte quem ainda não conseguiu concluir a quest no tempo estipulado. pelo menos foi o que entendi.
  6. Não brother. Apenas uma forma de parar a contagem para quem terminou. Por exemplo: Os players puxam a alavanca e tem 30 minutos no máximo para concluir a quest, do contrário, caso acabe esse tempo todos são teleportador para o templo. O que já ocorre normalmente e está funcionando perfeitamente. No entanto, digamos que os players concluíram a quest em 20 minutos pegaram sua recompensa no bau e entraram no tp para ir pro templo. Então a vida continua e não importa onde ele esteja, os dez minutos restantes continuarão a correr e ele vai ser mandando para o templo mesmo já estando em uma outra quest ou em uma hunt ou fazendo qualquer outra coisa. Só preciso de uma forma para pausar, digamos assim, a contagem do tempo quando os players concluir a quest e passar pelo teleporte. O que acho que da para ser feito com storage. @Vodkart Você é o cara indicado para me ajudar nessa rsrsrs.
  7. Ola pessoal. Venho mais uma vez aqui no TibiaKing solicitar a ajuda dos amigos com o seguinte script. Seguinte, andei trabalhando em um script da anihi que tinha aqui e deixei ele quase 100% do jeito que queria. Com tempo para permanecer na sala e tals. Contudo, estou usando esse script da anihi como base para uma outra quest que envolve uma área maior. Até ai tudo bem, quando acaba o tempo dos jogadores que estavam a fazer a quest eles são teleportador para o templo normalmente. Mas ocorre que caso tais players tenham chegado até o final da quest e a feito em menos tempo do que o tempo necessário, (que no caso ai no script está definido para 2 minutos por conta de testes) ele pode estar em qualquer outro lugar do mapa depois que é mandado para o templo. Portanto estarei deixando o script aqui para quem puder me ajudar a modificá-lo para funcionar 100%. Até tentei usar outros como base aqui trabalhando com storages mas ainda não obtive sucesso. Se alguém pude me ajudar agradeço. Abraços! local config = { from = {x = 22987, y = 19805, z = 7}, -- coordenada do canto superior esquerdo da área. to = {x = 23024, y = 19992, z = 7}, -- coordenada do canto inferior direito da área. } local t = { lvl = 100, Time = 2, -- em minutos entrada = { {x = 23052, y = 19991, z = 7}, -- pos players {x = 23051, y = 19991, z = 7}, {x = 23050, y = 19991, z = 7}, {x = 23049, y = 19991, z = 7} }, saida = { {x = 23017, y = 19985, z = 7}, -- pos para onde eles irão {x = 23019, y = 19985, z = 7}, {x = 23017, y = 19987, z = 7}, {x = 23019, y = 19987, z = 7} }, monstros = { {{x = 23004, y = 19832, z = 7}, "Juggernaut"}, -- defina pos dos montros e nomes {{x = 23004, y = 19834, z = 7}, "Ghazbaran"} } } function getPlayersInArea(fromPos, toPos) local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end function VarAnihiPlayer(cid) if not isCreature(cid) then return LUA_ERROR end if #getPlayersInArea(config.from, config.to) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} if #getPlayersInArea(config.from, config.to) > 0 then doPlayerSendCancel(cid, 'Aguarde, tem jogadores fazendo a quest.') return true end for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui level '..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) addEvent(VarAnihiPlayer, t.Time*60*1000, tid) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end
  8. Refiz todo o processo, reinstalei tudo, mas o erro persiste. Muito estranho, vou ver se nao e algo com meu pc ou sei la. Mas me diga uma coisa, não tenho que registrar no login.lua também não? Bom, vamos lá. Fiz alguns testes aqui e peguei o primeiro script que me passou do statschange e coloquei em outra datapack com a mesma distro que tava usando. Resultado, funcionou perfeitamente. Logo, na minha concepção acabo crendo que o lance de meu servidor não possuir a function não está ligado a distro, e sim algo possível de se resolver diretamente na datapack. Deu certo. Agora voltei para minha datapack e funcionou perfeitamente. Realmente deve ter sido alguma coisa de permissão ou firewal do windows. Muito obrigado pelo script Vodkart voce é fera man. Tmj meu amigo! Por mais pessoas como você no Tibiaking.
  9. Então meu amigo. Segue o print de erro que ta dando agora. Está dando aqueles erros como se o arquivo não existisse ou tivesse errado mas esta tudo certo aqui o nome do arquivo com as tags. Em relação ao statschange, eu nao sei se quer dizer alguma coisa, mas no meu server tem outros scritpts que usam essa função. Como do dodge e critical por exemplo. De todo modo, estou olhando aqui para esse erro e tentando ver se arrumo analisando outros scritps e procurando no google e fico aguardando humildemente uma provável solução caso você a tenha. Até aqui meu muito obrigado por está me ajudando.
  10. recebo o seguinte erro vodkart. >>> Loading creaturescripts... [Error - CreatureEvent::configureEvent] No valid type for creature event: sta´╗┐tschange.
  11. .Qual servidor ou website você utiliza como base?: Otx2 versao 8.60 Fala Galera do Tibiaking. Gostaria de saber se alguém aqui conseguiria desenvolver o seguinte script para mim na versão 8.60 tfs 0.4/otx2 . Gostaria de um boss que quando ele sumonasse os seus summons, não pudesse mais receber dano enquanto seus summons não for morto. Parecido com o Azerus do global. No entanto, esse meu gostaria que o monstro possa ser atacado normalmente quando não houver criaturas que ele sumonara vivas, e assim que o mesmo executar o summon então automaticamente ele pare de receber dano dos players até que seus summons tenham sido mortos. Mas por exemplo, seus primeiros summons foram mortos e ele voltou a receber dano, contudo, passado algum tempo e ele sumonou novamente então bloqueie os ataques outraz vez.. Não sei se consegui ser claro o suficiente e nem sei se é possível nessa versão do tíbia. Mas caso alguém possa fazer esse script para mim agradeço muito e claro, dou aquele rep+ esperto. Desde já agradeço a atenção de todos que aqui leram! Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  12. Muito obrigado grande, funcionando perfeitamente. Uma ultima coisa e paro de incomodar. Mas eu estava pensando aqui se em vez de apenas mandar a mensagem la sobre a cap, enviar o item direto para a dp do player. Ou seja se ele nao tiver cap o script funciona perfeitamente mas o item vai para a depot do player. Acho que ja tou pedindo demais. Creio que isso e bem mais complexo, mas se for possível eu agradeço demais. Vlw amigo!
  13. Obrigado meu brother, deu certinho aqui. So uma ultima curiosidade, apenas para fins acadêmico, pois do jeito que ta esta otimo. Mas digamos que em vez de fazer o item ser adicionado na bp do player com a function doPlayerAddItem, cair como loot do monstro mesmo. Sera que e possivel isso, existe uma function para tal? Mais uma vez brigadão. Vou deixar como ficou o meu abaixo para quem quiser. Adicionei para remover a storage depois que conseguir o item. local config = { chance = 0.1, -- chance em % de dar o item storage = 30318, -- storage que o player precisa ter item = 10523 -- item que vai receber ao matar o monstro } function onDeath(cid, corpse, deathList) if isMonster(cid) then if getPlayerStorageValue(deathList[1], config.storage) >= 1 then if math.random (1,100) <= config.chance then doPlayerAddItem(deathList[1], config.item, 1) doPlayerSendTextMessage(deathList[1],22,"Voce encontrou 1 egg of the Many.") setPlayerStorageValue(deathList[1], 30318, -1) end end end return true end PS: Tentei implementar para verificar a cap do player antes mas nao obtive sucesso. Tentei dessa forma. local config = { chance = 0.1, -- chance em % de dar o item storage = 30318, -- storage que o player precisa ter item = 10523, -- item que vai receber ao matar o monstro peso = 50.00 } function onDeath(cid, corpse, deathList) if isMonster(cid) then if getPlayerFreeCap(cid) >= peso then if getPlayerStorageValue(deathList[1], config.storage) >= 1 then if math.random (1,100) <= config.chance then doPlayerAddItem(deathList[1], config.item, 1) doPlayerSendTextMessage(deathList[1],22,"Voce encontrou 1 egg of the Many.") setPlayerStorageValue(deathList[1], 30318, -1) end end else doPlayerSendTextMessage(deathList[1],20,"Voce nao pode obter o egg of the many enquanto sua bp estiver cheia.") end end return true end
  14. Opa, primeiramente obrigado pela ajuda, Deixa eu perguntar. Tem como colocar por chance do item dropar ou nao? Tipo, uma vez que o player pega a quest eu nao quero que el drope toda vez que matar um monstro desse, mas sim que seja por chance normal onde eu dificultarei para que ele tenha que matar muitas criaturas para ai sim conseguir dropar tal item;

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...