Jump to content

Search the Community

Showing results for tags 'globalevent'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

  1. Como funciona? O meu código faz o seguinte, ele registra a quantidade de players online em tal hora no dia (configurável) em um bloco de notas.. Para que eu vou usar isso? Ai vai da sua criatividade, eu mesmo uso para identificar quais são os horários de picos e também para saber se tem um crescimento de players ao passar dos dias. Aqui vai um exemplo de como ele registra os players: http://prntscr.com/2vb4zt Vamos ao script: Em globalevents.xml coloque essa tag: <globalevent name="Monitor_Online" interval="60000" event="script" value="monitoronline.lua"/> Em interval se o seu tfs não for 0.4, coloque 60 Agora na pasta scripts crie um arquivo lua chamado monitoronline.lua e adicione isso dentro: function onThink(interval, lastExecution) local file = io.open("./monitoronline.txt", "a") local hora = {"7:30","11:30","13:30","15:30","17:30","20:30","22:30"} if table.find(hora, os.date("%H:%M")) then file:write("\n Players Online: ".. #getPlayersOnline() .." \n ["..os.date("%x").."] ["..tostring(os.date("%X")):sub(1, 5).."]") file:close() end return true end E pronto, seu sistema já vai estar funcionando, o arquivo de texto aparece na pasta do seu executável.. Eu sincronizei ele com minha página web, se quiserem o código em PHP me mande PM. http://jogar.snowotserv.com/monitoramento.php Créditos: Keilost - 100%
  2. Opa boa tarde galera, hoje venho trazer a vocês o sistema de evento igual ao do OtPokemon, no qual se define um horario, e sorteia um pokemon para voce matar, quem matar mais pokemons ganha o evento. OBS: Pokemons na tabela podem ser alterados, e os premios também, vamos la. Vá em data/globalevents e crie um arquivo lua com nome Monster Hunter.lua/ depois disso copie o código abaixo e cole no arquivo e salve. local monsters = { "Rattata","Caterpie","Metapod","Raticate","Charmander","Charmeleon","Butterfree","Beautifly","Squirtle","Wartortle","Poliwag","Cubone","Marowak","Diglett","Dugtrio","Sandshrew","Mareep","Beedril","Magnemite","Pikachu","Voltorb","Electrode","Elekid","Gastly","Haunter","Geodude","Machoke","Graveler","Pidgey","Pidgeotto","Weepinbell","Oddish","Gloom","Golbat","Zubat","Drowzee","Abra","Machop","Spearow","Nidoran Female","Nidoran Male","Nidorino","Nidorina","Bulbasaur","Ivysaur","Weedle","Kakuna","Eevee"} -- Monstros que podem ser sorteados local time_min, max = 10, 30 -- Em minutos local premios, gold = {{9020, 1}, {2152, 25}}, 10000 -- {id do item, quantidade} que o jogador ganha e quantia de gold function winMonsterEvent() local max_sto, winner = 0, 0 local monster = getGlobalStorageValue(90904488) for _, pid in pairs(getPlayersOnline()) do local sto = getPlayerStorageValue(pid, 90904487) if sto > max_sto then max_sto = sto winner = pid end end if isPlayer(winner) then local artigo = getPlayerSex(winner) == 0 and "[Derrote o Pokémon]: A jogadora" or "[Derrote o Pokémon]: O jogador" doBroadcastMessage(artigo.." "..getCreatureName(winner).." derrotou "..getPlayerStorageValue(winner, 90904487).." "..monster.."s e venceu o evento. Parabéns!",25) for _, prize in pairs(premios) do doPlayerAddItem(winner, prize[1], prize[2]) end doPlayerAddMoney(winner, gold) else doBroadcastMessage("[Derrote o Pokémon]: O evento terminou e não houve nenhum vencedor.") end setGlobalStorageValue(90904488, 0) end function onTimer() local random = math.random(1, #monsters) local time = math.random(time_min, max) for _, pid in pairs(getPlayersOnline()) do doPlayerSetStorageValue(pid, 90904487, 0) end setGlobalStorageValue(90904488, monsters[random]) doBroadcastMessage("[Derrote o Pokémon]: O evento começou e durará "..time.." minutos. O pokémon sorteado foi "..monsters[random].."! Quem conseguir derrotar mais "..monsters[random].."'s até o fim será o vencedor!",25) addEvent(winMonsterEvent, time*1000*60) return true end Feito isso vá em globalevents.xml e adicione essa tag. <globalevent name="Monster Hunter Event1" time="10:00" event="script" value="Monster Hunter.lua"/> Beleza, feito isso salve e de reload em seu servidor, que ja estara funcionando. Perguntas: "Ah se eu quiser por mais horarios? simples vá na tag copie ela e cole de novo, onde está "Monster Hunter Event1" time="10:00" mude para "Monster Hunter Event2" time="12:00"...lembrando sempre que voce adicionar 1 novo evento o horario também deve mudar. É isso obrigado a todos e até mais. Créditos: PokeZRing (de onde foi retirado) OTP (criador, me corrija caso esteja errado) Eu ( por disponibilizar)
  3. Olá galera. Teria como eu executar uma talkaction "/Castle Start" por uma globalevent numa determinada hora do dia "18:00" sem a presença do god online???? Ajudem, +rep pra qualquer tipo de dicas!!!! Obrigado
  4. Bom dia, Boa tarde e Boa noite ! Pesquisei e vi que tinha uns topicos bem antigos de texto no chão, mas todo com falta de explicação ! Então decidi CRIAR esse para resolve isso ! Bom vamos COMEÇAR ! Vá em globalevents/scripts e crie uma pata .lua chamada textochao.lua e ADICIONE isso dentro da pasta ! local config = { positions = { ["OutlandSul"] = { x = 1026, y = 1074, z = 13 }, ["OutlandNorte"] = { x = 1022, y = 1074, z = 13 }, ["OutlandLeste"] = { x = 1030, y = 1074, z = 13 }, ["Outlands"] = { x = 948, y = 1090, z = 13 }, ["BoostMachines"] = { x = 1032, y = 1055, z = 13 }, ["Coliseum"] = { x = 1032, y = 1057, z = 13 }, ["AREA VIP"] = { x = 1053, y = 1046, z = 5 }, ["Quest VIP 150+"] = { x = 1065, y = 1049, z = 5 }, ["Quest VIP 250+"] = { x = 1067, y = 1049, z = 5 }, ["Sala de Eventos"] = { x = 1063, y = 1047, z = 5 }, ["Nova Área"] = { x = 449, y = 817, z = 13 }, ["Saída"] = { x = 458, y = 826, z = 14 }, ["Lilicove City"] = { x = 948, y = 1093, z = 13 }, ["Nightmare World"] = { x = 1056, y = 1042, z = 5 }, ["BOX 5 VIP"] = { x = 1070, y = 1049, z = 5 }, } } function onThink(cid, interval, lastExecution) for text, pos in pairs(config.positions) do doSendAnimatedText(pos, text, math.random(1, 255)) end return TRUE end Depois vá em data\globalevents abra o globalevents.xml e ADICIONE essa TAG <globalevent name="animatedtext" interval="1" script="textochao.lua"/> Bom vamos as explicações ! para MUDAR o local onde o texto sai, você mexe aqui - { x = 1026, y = 1074, z = 13 }, como pode ver todos tem isso ! Para mudar o NOME do texto você mexe em ["OutlandSul"] Todos tem isso também, você pode mudar de todos ! Para mudar o intervalo de tempo que o texto aparece e desaparece vá no GLOBALEVENTS.XML e na tag vai estar assim -- <globalevent name="animatedtext" interval="1" script="textochao.lua"/> Ali no numero vermelho, é o segundos de intervalo, não coloquei menos que 1 :3 Bom, para meu segundo topico, prevejo pessoas falando que ja tinha tals, mas esse é mais explicado !
  5. Olá pessoal, bom tenho uma duvida e um pedido ao mesmo tempo kkkk queria saber se é possível fixar uma mensagem broadcast, mas não a tradicional que fica no meio da tela e sim no uma fixa no canto superior esquerdo ou direito da tela. É possível fazer isso? se sim alguém poderia me ajudar com isso? Obg a todos! ps: não encontrei a seção de pedidos, se poderem mover agradeço...
  6. Primeiro va até Nome da pasta/Data/actions/scripts e crie um arquivo.lua chamado "sistemavip.lua" function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- coloque os dias que serão a VIP! local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13500) local timenow = os.time() if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13500, time) local quantity = math.floor((getPlayerStorageValue(cid, 13500) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) end return TRUE end Os textos que estao em AZUL e o action ID que voce colocara no piso , Depois que fizer isto salve e feche! Depois abra a actions.xml adiciona isoo! o ITemID coloque o ID de o item que voce quer que adicione a VIP! Agora vamos adicionar as movements! Va até Nome da pasta/Data/movements/scripts e crie um arquivo.lua chamado "sistemavip.lua" local config = { msgDenied = "Você nao e VIP compre agora mesmo!", msgWelcome = "Bem Vindo a area VIP!" } if getPlayerStorageValue(cid, 13500) - 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 Depois abra a movements.xml adiciona isoo! Pronto sua VIP esta pronta! Gostou ?? da REP+ ae
  7. Olá, tudo na boa? Após perceber que alguns servidores possuíam problemas com a recarga de estamina por uma falha causada na própria source decidi procurar um script que pudesse resolver isto, nem que fosse de uma maneira meio "arrumada". Porém vai ser de ótima ajuda para aqueles que desejam manter ativo o sistema de estamina em seu servidor. 1°- Siga até "/data/globalevents/" e adiciona a tag no arquivo "globalevents.xml": <globalevent name="stamina" interval="3600000" event="script" value="stamina.lua"/> 2°- Siga até "/data/globalevents/scripts/" e crie um arquivo chamado "stamina.lua" e preencha: function onThink(interval, lastExecution, thinkInterval) local total,minutes = 151200000,3900000 local query = db.getResult("SELECT `id`, `stamina` FROM `players` WHERE `id` > 6 AND `group_id` < 3;") if (query:getID() ~= -1) then while true do local id, stamina_now = query:getDataInt("id"), query:getDataInt("stamina") if stamina_now < (total-minutes) then db.executeQuery("UPDATE `players` SET `stamina` = "..stamina_now+minutes.." WHERE `id` = "..id) end if not(query:next()) then break end end query:free() end return true end É isto ai, obrigado
  8. Fala galera, tudo bem? Então, eu li o sot#01 alguns dias atrás e achei bem legal a história no qual ele gira em torno. Tive algumas idéias e, mesmo o evento não tendo acontecido por falta de inscritos, resolvi fazer pra lembrar algumas coisas, afinal tinha uns 7 anos que não mexia com scripts para otserv. O resultado, que vou mostrar abaixo, é um evento global (mas que pode muito bem ser adaptado para uma quest ou outra finalidade). Como parte da recompensa do evento, fiz de bonus uma spell baseada na frozenOrb do whitewolf. Bom vamos lá. O Evento Basicamente é um evento estilo aquela brincadeira antiga de criança "dança das cadeiras". Como assim? Bom, na área do evento o número de espaços vazios vai ser sempre o número de players restantes no evento -1. Isso implica que, em cada turno, pelo menos um player deixará o evento. Contexto Luna é uma estrela endeusada pelos elfos e muito poderosa. De tempo em tempo ela se desperta todos os players onlines são convocados para tentarem domar a sua ira. Aquele que sobreviver à ira de Luna sem se congelar será capaz de controlar seu poder até o próximo despertar. editado: Esqueci de avisar que coloquei para ele ignorar o tile central na contagem de tiles livres pois no tile central, do meu mapa, eu coloquei um frozen starlight representando a luna e, a cada round, há uma animação na luna só para ficar bonitinho. Crie um arquivo chamado lunaevent.lua dentro de scripts e coloque o código abaixo nele: Em globalevents.xml coloque a tag: <globalevent name="Luna" interval="18000000" script="lunaevent.lua" /> A recompensa do evento é uma souvenir, um frozen starlight com o nome do vencedor do evento e x horas (no caso 5) podendo utilizar o poder de luna. Bom, eu criei uma spell para ilustrar o poder de luna e como utilizar o storage que foi preenchido para o vencedor do evento para controlar o uso de uma spell. Luna Strike Primeiramente adicione a tag abaixo em spells.xml: <instant name="Luna Strike" words="exori luna" lvl="100" manapercent="5" prem="0" range="6" casterTargetOrDirection="1" blockwalls="1" exhaustion="10000" groups="1,4000" icon="156" needlearn="0" event="script" value="attack/luna strike.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Crie um arquivo chamado luna strike.lua dentro de scripts/attacks e coloque o código abaixo nele: Essa magia tem duas peculiaridades: 1. Ela tem uma chance de 1/15 para cada hit que ela dá de congelar o alvo e tornalo imóvel por 1.8 segundos, o que já está implementado nesse script e já funciona. 2. Em pvp, isso é, ao atacar um player, ela tem uma chance de 1/18 de liberar a Benção de Luna e tornar o caster imune aos ataques daquele player por 3 segundos (atenção, não são de todos os players da área, somente do player que liberou a benção de luna ao receber um hit). Para implementar essa segunda parte, precisamos ir em creature scripts. Adicione as tags abaixo a creaturescripts.xml: <event type="attack" name="NoAtt" event="script" value="luna.lua"/> <event type="cast" name="NoSpell" event="script" value="luna.lua"/> <event type="target" name="NoTgt" event="script" value="luna.lua"/> Crie um arquivo chamado luna.lua dentro de scripts e coloque o código abaixo nele: Pronto, o seu evento está configura e sua magia 'Luna Strike' poderá ser castada pelo último vencedor do mesmo. Espero que gostem, os scripts estão comentados e são bem auto-explicativos, mas qualquer dúvida podem me perguntar. Abraços,
  9. Eaae galera, estou com uma duvida, encontrei pelo fórum um MOD de Jogos Vorazes esse aqui: Porém o mesmo é apenas para TFS 1.2 e eu uso o TFS 0.4 , existe alguma possibilidade de eu colocar esse event no meu servidor mesmo sendo TFS 0.4? Eu até tenho o TFS 1.2 para 8.6 , mas nao está compilado e eu teria de mudar mt sistemas do meu server coisa que eu não manjo auhuahua É isso, gostei mt do mod e queria usa-lo em meu server, tem alguma maneira ?
  10. Gostaria que esse script fosse executado apenas no Domingo, como faço isso? (TFS 0.3.7) globalevents.xml <globalevent name="castleopen" time="20:05" event="script" value="castleopen.lua"/> castleopen.lua function onTime(cid, item, fromPosition, itemEx, toPosition) local item = getTileItemById({x=32311, y=32214, z=6, stackpos=1}, 4907) local item2 = getTileItemById({x=32310, y=32214, z=6, stackpos=1}, 4907) local item3 = getTileItemById({x=32312, y=32214, z=6, stackpos=1}, 4907) local item4 = getTileItemById({x=1000, y=1002, z=4, stackpos=1}, 1051) doRemoveItem(item.uid, 1) doRemoveItem(item2.uid, 1) doRemoveItem(item3.uid, 1) doRemoveItem(item4.uid, 1) doBroadcastMessage("[EVENTO] Castle Opened") return end
  11. Olá, aqui é um código de stream, que irá transmitir ao vivo a partir do seu site. Créditos vai também para TGYoshi para o código, foi feito apenas algumas edições. Obrigado a Raggaer, pelo o php! Créditos para a sua ajuda. Em globalevents/globalevents.xml adicionar esta linha: <globalevent name="Stream" interval="1" event="script" value="stream.lua"/> Em globalevents/scripts, crie um novo arquivo .lua com o nome de stream, adicione isto - Agora no seu website você pode usar isto - Para as outfits você pode usar este - Outfiter 8.60 - Mostrando Roupas No WebSite Créditos - Cyko
  12. Créditos: Caronte Prévia OBS: Foi colocado interval 5000 para testar, que é 5 segundos, mas você pode alterar na TAG. Onde tem o 5000, ajuste a gosto. TFS 0.4 Na pasta (creaturescripts/scripts), crie um arquivo (uptime.lua) com o seguinte conteúdo: function onLogin(cid) local dat = { [12765] = os.date("%M"), -- minutos [22765] = os.date("%H"), -- hora [32765] = os.date("%d"), -- dia [42765] = os.date("%m"), -- mes [52765] = os.date("%S"), -- segundos [62765] = os.date("%y"), -- segundos } for a, b in pairs(dat) do doCreatureSetStorage(cid, a, b) end return true end <TAG/> em (creaturescripts): <event type="login" name="uptime" event="script" value="uptime.lua"/> Em (globalevents/scripts), crie um script, com nome (uptimesay.lua): function onThink(interval) for k, pid in pairs(getPlayersOnline()) do local stors = { mi = getCreatureStorage(pid, 12765), h = getCreatureStorage(pid, 22765), dia = getCreatureStorage(pid, 32765), me = getCreatureStorage(pid, 42765), seg = getCreatureStorage(pid, 52765), an = getCreatureStorage(pid, 62765), } s = "Você está jogando desde: "..stors.h..":"..stors.mi..":"..stors.seg.." de "..stors.dia.."/"..stors.me.."/"..stors.an..", Obrigado pela Preferência, TibiaKingOT.servegame.com agradece !" doPlayerSendTextMessage(pid,20, s) end return true end <TAG/> em (globalevents.xml): <globalevent name="uptosay" interval="5000" event="script" value="uptimesay.lua"/> TFS 1.2 (Se pegar 100% no 1.1, confirme no tópico) Em (globalevents/scripts), crie um script, com nome (uptimesay.lua): function onThink(interval) for k, pid in pairs(Game.getPlayers()) do local stors = { mi = pid:getStorageValue(12765), h = pid:getStorageValue(22765), dia = pid:getStorageValue(32765), me = pid:getStorageValue(42765), seg = pid:getStorageValue(52765), an = pid:getStorageValue(62765), } s = "Você está jogando desde: "..stors.h..":"..stors.mi..":"..stors.seg.." de "..stors.dia.."/"..stors.me.."/"..stors.an..", Obrigado pela Preferência, TibiaKingOT.servegame.com agradece !" pid:sendTextMessage(20, s) end return true end <TAG/> em (globalevents.xml): <globalevent name="uptosay" interval="5000" script="uptimesay.lua"/> Agora na pasta (creaturescripts/scripts), crie um arquivo (uptime.lua) com o seguinte conteúdo: function onLogin(player) local dat = { [12765] = os.date("%M"), -- minutos [22765] = os.date("%H"), -- hora [32765] = os.date("%d"), -- dia [42765] = os.date("%m"), -- mes [52765] = os.date("%S"), -- segundos [62765] = os.date("%y"), -- segundos } for a, b in pairs(dat) do player:setStorageValue(a, b) end return true end <TAG/> em (creaturescripts): <event type="login" name="uptime" script="uptime.lua"/>
  13. Créditos: luanluciano93 e Cristofer. Objetivo Esse script é usada para que o player que fique offline pelo tempo editado, perca a house automaticamente. Tutorial Em globalevents/scripts/ crie um arquivo chamado doCheckHouses.lua e coloque esse código dentro: -- <globalevent type="startup" name="doCheckHouses" script="doCheckHouses.lua" /> local function doCheckHouses() local dias = 3 local tempo = os.time() - (dias * 24 * 60 * 60) local registros = db.storeQuery("SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id` AND `players`.`lastlogin` <= " .. tempo .. ";") if registros ~= false then local count = 0 print('house leave code') repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) print('house leave house count:' .. count) result.free(registros) end end function onStartup() addEvent(doCheckHouses, 60 * 1000) return true end A tag do globalevents.xml esta no script como comentário, é só adiciona-lá. Para editar o tempo (em dias) que se o jogador ficar offline ele perderá a house é nessa linha: local dias = 3 OBS: Esse script é iniciado junto com o servidor, logo após aparecerá na distro as houses removidas e a quantidade total.
  14. Créditos: luanluciano93 Objetivo É uma loteria, no(s) horario(s) que for definir, é sorteado para algum player um determinado item dentre os items configurados no script, por fim aparece uma mensagem no servidor dizendo quem ganhou e o que recebeu ... Tutorial Crie um arquivo em globalevents/scripts/ com o nome loteria.lua e dentro coloque o código: -- <globalevent name="Loteria1" time="09:00:00" script="loteria.lua" /> local rewards = { {2494, 1}, {2472, 1}, {2160, 22}, {5809, 1}, } function onTime(interval) local players = Game.getPlayers() if #players > 0 and #rewards > 0 then local uid, n = math.random(1, #players), math.random(1, #rewards) local ganhador = players[uid] local reward, count = rewards[n][1], rewards[n][2] if ganhador and reward and count then ganhador:addItem(reward, count) Game.broadcastMessage('O player '.. ganhador:getName()..' recebeu '.. count .. ' '..ItemType(reward):getName()..' na loteria.', MESSAGE_STATUS_WARNING) end end return true end A tag do globalevents.xml esta no script como comentario, basta adiciona-la. Você pode também adicionar outras tags para outros horarios, mas sempre mudando o nome. Por exemplo: <globalevent name="Loteria1" time="09:00:00" script="loteria.lua" /> <globalevent name="Loteria2" time="10:00:00" script="loteria.lua" /> E para editar os items, basta coloca o item_id e quantidade, como na sequencia: local rewards = { {2494, 1}, {2472, 1}, {2160, 22}, {5809, 1}, }
  15. Killua Raids System É um sistema normal de raids, compatível com quase todas versões do TFS (testado no 0.3.6 e 0.4), que acontecem automaticamente no local desejado, com dia e hora marcada. Instalando: Crie amoebaRaids.lua em data/globalevents/scripts e coloque isto: No globalevents.xml coloque essa tag: ​<globalevent name="AmoebaRaids" interval="60" event="script" value="amoebaRaids.lua"/> Configurar: A configuração é toda feita nessa tabela: local raids = { {name = "Monstros de fogo", monsters = {"Demon", "Dragon Lord", "Fire Devil"}, boss = "Orshabaal", fromPoss = {x=150, y=37, z=7}, toPoss = {x=157, y=42, z=7}, dates = {"Thursday-15:00", "Saturday-22:12"}, maxMonsters = 15}, {name = "Dragons", monsters = {"Dragon", "Dragon Lord", "Dragon Hatchling"}, boss = "Demodras", fromPoss = {x=1, y=1, z=1}, toPoss = {x=1, y=1, z=1}, dates = {"Monday-12:01", "Sunday-20:10"}, maxMonsters = 20} } name é o nome da invasão, que vai aparecer no broadcast. monsters são os monstros que vão ser criados na invasão. boss é o boss que nasce depois de x segundos após todos os monstros serem criados. fromPoss é o canto superior esquerdo da área onde a invasão vai ocorrer. toPoss é o canto inferior direito da área onde a invasão vai ocorrer. dates são as datas (dias e horarios) em que as invasões ocorrerão. Sendo sempre escritas nesse formato "Dia(em inglês)-hora:minuto" . Exemplo "Monday-12:01". A primeira letra deve ser maiúscula. maxMonsters é o número de monstros que vão ser criados na invasão, sem contar o boss. timeBoss é o tempo (em segundos) que o boss leva pra nascer após todos os outros monstros terem sido criados. Espero que gostem.
  16. Adaptei esse script para o TFS 1.0. function onThink(interval, lastExecution, thinkInterval) local maxDistance = 10 for _, cid in ipairs(getOnlinePlayers()) do local sums = getCreatureSummons(cid) if #sums > 0 then for i = 1, #sums do if getCreaturePosition(cid).z ~= getCreaturePosition(sums[i]).z or getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(sums[i])) > maxDistance then doTeleportThing(sums[i], getCreaturePosition(cid)) end end end end return true end globalevents.xml: <globalevent name="teleport" interval="1" script="teleport.lua"/>
  17. Desc: É simples de instalar. Bem, há sistemas de chuva e outros que são mais avançados que este. Esse está em fase beta. Este sistema de chuva não deve causar nenhum lag, eu acho! Desde que só chove em torno de seu jogador e não sobre o mapa todo! Onde você vai, a chuva vai segui-lo! Você pode configurar: Quando deve começar a chuva, a partir de gotas de chuva tempestade! E também quando bate na água,para fazer salpicos na água! Também ela só vai chover no chão e andar acima. Não sob 7! Falhas: Se o jogador está sob uma itemid, deve bater mais que itemid. Como no telhado, dentro de um edifício, sob uma grande árvore e etc. Bem, esse é o único problema, chove dentro dos prédios! Testado em 0.3.6 e 0.4 Vá em data/globalevents/scripts, copie um arquivo .lua e renomeie para rain.lua, adicione isso - Ainda em globalevents/scripts, copie um arquivo.lua e renomeie pra raintime, adicione isso - Agora vá em globalevents.xml, e adicione as tag's - <globalevent name="Rain" interval="1" event="script" value="rain.lua"/> <globalevent name="RainTime" interval="36000" event="script" value="raintime.lua"/> Para 0.4 - <globalevent name="Rain" interval="1000" event="script" value="rain.lua"/> <globalevent name="RainTime" interval="3600000" event="script" value="raintime.lua"/> Espero que gostem! Créditos - Cyko
  18. Olá pessoal, hoje venho postar o meu primeiro evento do ano ^^. Ele é para ots que gostam de comemorar datas especiais, como o ano novo. Vou explicar como ele funciona: Como funciona tio SmiX? O evento só começa se tiver "x" players registrados. Como eu vejo muitos scripts de pokémon legais por ai, pensei; "Por que não adpitar um deles para Tibia"?. O evento é chamado de "Monster War Arena". Ela sai invocando monstros em uma "arena" e os players serão teleportado para ela, para killar todos os mostros. Semelhante ao "Golden Arena" da PXG. Vamos instala-lo? Não >.< Vá em (globalevents/scripts) e crie um arquivo chamado "event1.lua" e cole o seguinte código dentro: function doSummonMonsterInEvent(cid) summonMonster = getGlobalStorageValue(29474) summonMonsterInPos = math.random(arenaPositionInitial, arenaPositionEnd) for g = 1, #monstersPositions do monster = doSummonCreature(levels[summonMonster][g], monstersPositions[g]) doSendMagicEffect(getThingPos(monster), 21) local sto = getGlobalStorageValue(29474) == -1 and 0 or getGlobalStorageValue(29474) setGlobalStorageValue(29474, sto+1) for _, sid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(sid, playerstoragewararena) == 1 then doPlayerSendTextMessage(sid, 21, "The "..summonMonster.." level monsters appeared.") doPlayerSendTextMessage(sid, 28, "The "..summonMonster.." level monsters appeared.") end end end addEvent(doSummonMonsterInEvent, 30000, cid) end function getPlayerInEvent(cid) if getGlobalStorageValue(wararenastor) >= minPLayers then for _, poid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(poid, playerstoragewararena) == 1 then doPlayerSendTextMessage(poid, 25, "Prepare your weapons warrior. The monsters will spawn in 30 seconds.") doTeleportThing(poid, math.random(arenaPositionInitial, arenaPositionEnd), false) addEvent(doSummonMonsterInEvent, 30 * 1000, cid) end end end end function onTimer(cid, interval, lastExecution) setGlobalStorageValue(29474, 1) doBroadcastMessage("The Monster War Arena will start 5 minuts.") addEvent(getPlayerInEvent, 5 * 1000 * 60, cid) end A tag: <globalevent name="Event1" time="2:50;7:50;11:50;16:50;21:50" event="script" value="event1.lua"/> Agora vamos em lib e criemos um arquivo chamado "eventArena.lua" e cole isto dentro: wararenastor = 10101 -- Global storage playerstoragewararena = 10102 -- Npc storage minPLayers = 5 -- Minimo de players arenaPositionInitial = { x = 1, y = 1, z = 1 } -- Posição da ponta inferior direita da arena arenaPositionEnd = { x = 1, y = 1, z = 1 } -- Posição da ponta superior esquerda da arena, formando assim um quadrado; -------- | *| | | |* | -------- local monstersPositions = { { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 },-- posição aonde os monstros vão nescer { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, { x = 1, y = 1, z = 1 }, } local levels = { [1] = {monsters = {"Rat", "Cave rat", "Rotworm", "Assassin", "Rat", "Cave rat", "Rotworm", "Assassin", "Zombie", ""}}, --/\ Caso não queira colocar os dez monstros deixe um espaço nas aspas } agora vamos em data/talkactions/scripts, crie um arquivo chamado "event1.lua" e colemos isso dentro: function onSay(cid, words, param, channel) if param and (param == "register" or param == "Register") then if getPlayerStorageValue(cid, playerstoragewararena) < 1 then if getGlobalStorageValue(wararenastor) > minPLayers then setPlayerStorageValue(cid, playerstoragewararena, 1) doPlayerSendTextMessage(cid, 27, "You are a registred in the event. Good luck!") end end end return true end tag: <talkaction words="/event" event="script" value="event1.lua"/> Acho que eu esqueci algo, vale lembrar que eu não testei. Preciso da ajuda de vocês para isso. Obrigado.
  19. A pedido de um membro, vou postar esse evento que eu fiz aqui há bastante tempo já. Dei umas boas testadas na época, mas peço que postem os erros caso os encontrem. Informações A cada intervalo de tempo definido, o servidor escolhe automaticamente um alvo entre os jogadores online e anuncia (broadcast). Esse jogador se manterá como alvo por um período também configurável de tempo e, quando for morto, o jogador que o matar receberá itens definidos na configuração. O level mínimo e o grupo a que pode pertencer podem ser configurados. As opções incluem desabilitar o logout do alvo e forçar a escolha de um novo alvo caso o outro morra ou dê logout. Códigos data/lib/targetlib.lua data/creaturescripts/scripts/targetcreature.lua data/globalevents/scripts/targetglobal.lua Tags creaturescripts.xml <event type="kill" name="Target_Kill" event="script" value="targetcreature.lua"/> <event type="login" name="TargetLogin" event="script" value="targetcreature.lua"/> <event type="logout" name="TargetLogout" event="script" value="targetcreature.lua"/> globalevents.xml <globalevent name="Target System" interval="3600000" event="script" value="targetglobal.lua"/> Configuração Bom, ela é feita provavelmente só no arquivo targetlib.lua, mais precisamente nessa parte: A outra parte é que você pode restringir o dia e a hora em que o evento ocorrerá no arquivo targetglobal.lua: local dia = false -- Número do dia que o script será ativado [0-6 = doming-sábado] deixe false se quiser desativado local hora = false -- Hora de cada dia que esse script será ativado [0-23] Novamente, caso encontrem erros, digam qual é o erro e postem o que apareceu no executável ou apontem a parte do código que está dando erro.
  20. Descrição: É para deletar house de players inativos, ou seja, o player que não loga em "X" dias perde a sua house! houseclean.lua function onTimer() local days = 15*24*60*60 doSaveServer() local query = db.getResult("SELECT `owner`,`id` FROM `houses`;") if (query:getID() ~= -1) then while true do local own,houseid = query:getDataInt("owner"),query:getDataInt("id") local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own) if(qry:getID() ~= -1) then last = tonumber(qry:getDataInt("lastlogin")) if last < os.time() - days then setHouseOwner(houseid, NO_OWNER_PHRASE,true) end end if not(query:next()) then break end end query:free() end return true end globalevents.xml <globalevent name="HouseClean" time="03:00" event="script" value="houseclean.lua"/> na tag está para executar o script as 3 da manhã se quiser alterar só mudar essa parte: time="03:00" para configurar os dias que o player que não logar em "X" dias É aqui: local days = 15*24*60*60 no caso está para o jogador que não logar em 15 dias perder a house.</globalevent>
  21. Resposta ao tópico http://www.xtibia.com/forum/topic/218216-pedido-evento-fraghora/ Informações É um evento simples: quem mata mais durante a duração do evento, ganha os prêmios Intervalo entre uma execução e outra configurável Duração configurável Feito em mod (porque é mais fácil de instalar) Vem com comando informativo sobre o evento Testado em 8.6 Código Crie um arquivo chamado Blood Festival.xml na sua pasta de mods com o seguinte código: Configurações Configuração padrão: 1 hora de duração e 4 horas entre o início de cada evento A duração, os prêmios e a opção de contar somente frags unjust são feitas na primeira parte do código, chamada blood_config O intervalo de execução entre os eventos vem como padrão 4hs (14400000 milissegundos). Esse intervalo pode ser modificado nessa parte: Screenshot OBS.: Sim, eu uso muito mal o paint. Mas o script funciona.
  22. Sabe aqueles textos coloridos que ficam subindo no piso, em muitos OT's tem isso e vcs querem colocar no seu, então eu vou trazer para vcs as scripts e um pequeno tutorial : 1 - abra a pasta do seu OT e vá em data/globalevent/scripts copie e cole qualquer arquivo .lua e renomeie para "texto" sem aspas kkkkk dps abra e apague tudo q tem dentro e coloque isto: Oque está em vermelho e para vc mudar se quizer, mais as cordenadas vcs tem q mudar essas são as minhas, então mude. Muito importante se vc quizer adicionar uma outra linha não esqueça da virgula só a ultima linha q fica sem virgula. 2 - Volte para a pasta "globalevents" e abra o arquivo globalevents.xml e adicione isso: E pronto!! REP+
  23. Bom dia,este é meu primeiro post no Xtibia e eu estou com meu servidor online e muitos scripts dele foram difícil conseguir e vi que não tinha no xtibia então resolvi começar a postar e 1 deles é este de deixar o evento DotA automático,então vamos parar de enrolação e vamos la... Va até globalevents/scripts e crie um arquivo .lua com o nome de dota.lua e coloque isto dentro: Nos Days ali você coloca os dias que preferir é os dias que o evento ira abrir,depois va até Globalevents.xml na pasta globalevents e coloque a tag no time coloque o horário que preferir é o horário que o evento ira abrir nos dias que você selecionou. Por enquanto é isto quem puder dar Rep+. Testado em TFS 0.3.6 O Evento completo você acha aqui http://www.xtibia.com/forum/topic/183429-dota-event-100-automatico/ Meu Servidor: http://www.xtibia.com/forum/topic/220681-baiak-mapa-proprio-low-exp/
  24. Boa noite rapazeeeeada! Vim postar um script que uso no meu Server 9.83 Oque ele faz? ele fica criando mensagens para informar para onde o respectivo teleport levará o Jogador. Eis aque uma imagem... No meu caso não Uso TP's e sim tiles. Bom vamos ao que interessa, em data/globalevents/scripts copie qualquer arquivo e renomei ele para talking.lua e cole isto dentro dele. em globalevents.xml adicione está tag ... Para adicionar mais é só seguir copiar e colar a tag {pos = {x = 1032, y = 1025, z = 7}, text = "Teleports", effects = {CONST_ME_MAGIC_BLUE}}, Alguma dúvida? poste ela. Ajudei? REP+
×
×
  • Create New...