Postado Fevereiro 2, 2020 5 anos .Qual servidor ou website você utiliza como base? TFS 0.4 Qual o motivo deste tópico? Estou precisando de uma ajuda para montar uma ideia que ja existe em alguns servidores hoje em dia, mas tendo o script em mãos consigo renovar um pouco para oque eu quero. vamos lá, estou precisando de um script que cria X item em uma posição random no mapa no andar "7" no caso em qualquer parte do mapa no andar "7". Um exemplo seria para aparecer um bau no mapa, eu adcionaria uma action nesse bau para quando o player achar e clicar nele o action criaria um monstro por exemplo. Mas preciso apenas do script que crie X item em qualquer lugar do mapa de preferencia um globalevents. se for possivel e colocar uma tabela onde eu possa colocar mais items e colocar a chance para cada item aparecer seria ótimo. tenho em mente uma ideia que seria criar monstros e items em uma area aleatoria no mapa. os monstros dariam alguns items bons como loot e os items serveriam para alguma quest por exemplo. Achei o script abaixo aqui no tibiaking, mas ele não é oque estou precisando, se alguém puder adapta-lo seria de grande ajuda! Você tem o código disponível? Se tiver publique-o aqui: function onStartup() local fromx = 2795 -- posiçao x superior a esquerda da area que sera analisada local tox = 2799 -- posiçao x inferior a direita da area que sera analisada local fromy = 879 -- posiçao y superior a esquerda da area que sera analisada local toy = 886 -- posiçao y inferior a direita da area que sera analisada local floor = 7 -- posição z referece ao andar que criara o item local item = 2160 -- item que sera criado local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor} local function ckfox() local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor} if doCreateItem(item, 1, pos) == TRUE then return true end addEvent(ckfox, 100) end if doCreateItem(item, 1, pos) == TRUE then else addEvent(ckfox, 100) return true end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Fevereiro 3, 2020 5 anos Olá eu fiz um script, bem provavel não dará erro mas eu não testei rsrs.. Testa ai e me fala.. O script a seguir, deve ser colocado em globalevents, cria um arquivo.lua dentro de "Servidor/data/globalevents/scripts" e adicione o script a seguir, agora salve-o. Agora você deve colocar a tag em "Servidor/data/globalevents/globalevents.xml" contendo um horário, ou a frequência que o script irá ser chamado, exemplo: <globalevent name="NomeScript" time="21:50" event="script" value="NOMEDOARQUIVO.lua"/> ou <globalevent name="NomeScript" interval="100" event="script" value="NOMEDOARQUIVO.lua"/> time, seria o horário que o item vai spawnar, e interval será de segundos em segundos, no caso ali está configurado para ser todos os dias as 21:50 e o de baixo vai ocorrer de 100 em 100 segundos local fromx = 2795 -- posiçao x superior a esquerda da area que sera analisada local tox = 2799 -- posiçao x inferior a direita da area que sera analisada local fromy = 879 -- posiçao y superior a esquerda da area que sera analisada local toy = 886 -- posiçao y inferior a direita da area que sera analisada local floor = 7 -- posição z referece ao andar que criara o item -- Inicio e Fim devem ser 0, pois serão preenchidos de acordo com sua chance, -- e se você preencher não fará diferença pois o valor será modificado mesmo assim :D -- Quanto maior o número em "Chance" maior será a probabilidade de ser o item escolhido local Itens = { {Item = 2160, Chance = 100, Inicio = 0, Fim = 0}, {Item = 2161, Chance = 100, Inicio = 0, Fim = 0} {Item = 2162, Chance = 80, Inicio = 0, Fim = 0} {Item = 2163, Chance = 500, Inicio = 0, Fim = 0} {Item = 2164, Chance = 200, Inicio = 0, Fim = 0} } function onThink(cid, interval, lastExecution) local pos = {x= math.random(fromx, tox), y=math.random(fromy, toy), z=floor} local ItemSpawn = RetornarItemRandom() if ItemSpawn > 0 then if doCreateItem(ItemSpawn, 1, pos) == true then return true end end return true end function RetornarItemRandom() local Num = 0 -- Adicionar probabilidades for i = 1, #Itens do Itens[i].Inicio = Num Num = ((Num + Itens[i].Chance) - 1) Itens[i].Fim = Num end -- Criar a chance local Math = math.random(0, Num) -- Retornar item for i = 1, #Itens do if Itens[i].Inicio <= Math and Itens[i].Fim >= Math then return Itens[i].Item end end return 0 end Editado Fevereiro 3, 2020 5 anos por Pokemon Nox Oficial (veja o histórico de edições)
Postado Fevereiro 3, 2020 5 anos Autor @Pokemon Nox Oficial O Script está funcionado, porém está criando items dentro das paredes também e eu não queria isso, quero que crie os items em qualquer parte do mapa, exceto dentro de paredes, montanhas, arvores, etc... você pode me ajudar? se póssivel colocar para não spawnar em area pz também seria ótimo! agradeço pela ajuda irmão. Editado Fevereiro 3, 2020 5 anos por hiquezerah (veja o histórico de edições)
Postado Fevereiro 4, 2020 5 anos mas dentro desse bau, teria itens dentro? ou caso fosse uma bag, já teria itens dentro da bag? ou é somente itens aleatorios? digamos, uma solar axe por exemplo no chao
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.