Shenlong 2 Postado Julho 8, 2008 Share Postado Julho 8, 2008 NPC Sistema de Clima Créditos: Nahruto (OTFans) & Colandus - OpenLua Se já tiver aqui me descupem eu procurei e não achei! Este é um npc criado pelo Nahruto, pelo o que eu entendi o NPC funciona assim: É um NPC que durante um certo intervalo de tempo que nós programamos no script e a chance de efeitos ele envia uma tempestade para o server Então agora vamos aos scripts. Versão 1.0 vá em data/npc/scripts e crie um arquivo chamado de stormer.lua e coloque isto dentro: local check_interval = 60*10 local mindamage = 30 local maxdamage = 100 ---------------------------------End Configuration---------------------------------- local check_clock = os.clock() local focus = 0 function getplayersfromArea(areapos) local players = { } for areax = 990, 1010 do for areay = 990, 1007 do areapos = {x=areax, y=areay, z=7, stackpos=253} creature = getThingfromPos(areapos) if creature.itemid > 0 then if isPlayer(creature.uid) == TRUE then table.insert (players, creature.uid) end end end end return players end function onThink() local chance = math.random(1,10) if (os.clock() - check_clock) > check_interval and chance >=5 then players_table = getplayersfromArea(areapos) if #players_table >= 1 then for i = 1, #players_table do doNpcSetCreatureFocus(players_table) formdamage = math.random(mindamage, maxdamage) doCreatureAddHealth(players_table,-formdamage) stormefects = math.random(40, 43) doSendMagicEffect(getThingPos(players_table),stormefects) doSendAnimatedText(getThingPos(players_table),formdamage,179) doPlayerSendTextMessage(players_table,22,'You were beaten by a storm.') check_clock = os.clock() focus = 0 end elseif table.getn(players_table) < 1 then focus = 0 check_clock = os.clock() end end focus = 0 end Explicando em vermelho é intervalo entre as tempestades.(60*10 = 10 minutos) em azul é o menor dano causado pela tempestade em rosa é o maior dano causado pela tempestade Agóra vá na pasta data/npc e crie um arquivo chamado Stormer.xml e cole isto dentro: <?xml version="1.0"?> <npc name="Stormer" script="data/npc/scripts/stormer.lua" access="5" lookdir="2" autowalk="25"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="275" /> </npc> Lembrete: 1 - você deve coloca o npc aonde os player não o vejam, afinal onde já se viu tempestade por npc? 2 - Ele está configurado para o templo do mapa Evolutions, para mudar para o seu server mude isto: for areax = 990, 1010 do for areay = 990, 1007 do areapos = {x=areax, y=areay, z=7, stackpos=253} Pronto a versão 1.0 está pronta agora vamos a versão 2.0. Versão 2.0 * É uma versão avançada da anterior * Nesta versão o npc tem uma visão de raio* Tem mais configurações* Mais fácil de se configurar * Adicionado um pouco de brilho para tornar o golpe, de cor configurável. * Ele acrescentou efeitos, e deixar a possibilidade de que o usuário facilmente adicionar efeitos. Então agora vamos começar. 1 - adicione isto no global.lua -- Area iterator by Colandus @ OpenLua.com function mapArea(fromPos, toPos) local x, y, z = fromPos.x, fromPos.y, fromPos.z return function() if (y < toPos.y) then y = y+1 elseif (x < toPos.x) then y = fromPos.y x = x+1 else x = fromPos.x y = fromPos.y z = z+1 end if (x < toPos.x and y <= toPos.y or z < toPos.z) then return x, y, z end end end -- Function by Colandus @ OpenLua.com function getThingsfromArea(pos, radius, stackpos) local things, thing = {} local fromPos = {x=pos.x-radius, y=pos.y-radius, z=pos.z} local toPos = {x=pos.x+radius, y=pos.y+radius, z=pos.z} for x, y, z in mapArea(fromPos, toPos) do if (getThingfromPos({x=x, y=y, z=z, stackpos=0}).itemid > 0) then thing = getThingfromPos({x=x, y=y, z=z, stackpos=stackpos}).uid if (isPlayer(thing) == 1) then table.insert(things, thing) end end end return things end 2 - Vá em data/npc/scripts e crie um arquivo chamado de climate.lua e cole isto dentro: -- Script by Nahruto and Colandus -- -- Config -- local storm = { interval = 60*10, radius = 25, damage = {min=30, max=100, color=179}, light = {color=210, duration=2}, message = "You were beaten by a storm.", effects = {40, 41, 42, 43, 53} } -- Config -- local check_clock = os.clock() function onThink() local damage = 0 if (os.clock() - check_clock) > storm.interval then screenPlayers = getThingsfromArea(getCreaturePosition(getNpcCid()), storm.radius, 253) for _, player in pairs(screenPlayers) do doNpcSetCreatureFocus(player) damage = math.random(storm.damage.min, storm.damage.max) doCreatureAddHealth(player, -damage) doSetCreatureLight(player, 7, storm.light.color, storm.light.duration*1000) doSendMagicEffect(getThingPos(player), storm.effects[math.random(1, #storm.effects)]) doSendAnimatedText(getThingPos(player), damage, storm.damage.color) doPlayerSendTextMessage(player, 22, storm.message) end check_clock = os.clock() end end Explicando em vermelho é intervalo entre as tempestades.(60*10 = 10 minutos) em rosa é os raios que o npc pega ( acho que são os SQM ) em laranja são os danos que a trovoada vai provocar e a cor do efeito do dano em roxo é a cor e o tamanho do flash em rosa claro é a mensagem que será enviada quando der o for atingido pela tempestade não intendi direito isso em azul escuro os efeitos usados na tempestade 3 - agora vá em data/npc e crie um arquivo com nome de climate.xml e coloque isto dentro: <?xml version="1.0"?> <npc name="Climate" script="data/npc/scripts/climate.lua" access="5" lookdir="2" autowalk="25"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="275" /> </npc> 4 - Coloque o npc em seu mapa . Lembrete: -- Se o raio do npc está perto de uma zona sem um mapa, muitos erros no console, certifique-se de colocar o rádio, mesmo que a área tem mapa completo. E aqui acaba meu primeiro tutorial Espero que gostem A versão 1.0 eu testei mais e 2.0 não Tchau e até mais. Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/ Compartilhar em outros sites More sharing options...
Flyw 0 Postado Julho 8, 2008 Share Postado Julho 8, 2008 Nossa mto bom, Parabéns (fixo,fixo \o/) Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-573691 Compartilhar em outros sites More sharing options...
lekmat 0 Postado Julho 8, 2008 Share Postado Julho 8, 2008 Owning ^^ fico mto masssa kra d++ adorei boa ideia flyw fixo ^^ Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574226 Compartilhar em outros sites More sharing options...
Shenlong 2 Postado Julho 8, 2008 Autor Share Postado Julho 8, 2008 Valeu galera que bom que gostaram dúvidas postem aqui Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574242 Compartilhar em outros sites More sharing options...
paladinwell 0 Postado Julho 8, 2008 Share Postado Julho 8, 2008 Muito Legal gostei muito Parabens vou colocar no meu ot de brincadeira =D Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574249 Compartilhar em outros sites More sharing options...
spookyman 0 Postado Julho 8, 2008 Share Postado Julho 8, 2008 O_o cara que foda!! Muito bom esse script! Mereçe fixo [3] Spookyman~~ Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574377 Compartilhar em outros sites More sharing options...
mekyz 0 Postado Julho 8, 2008 Share Postado Julho 8, 2008 Nss!!.. mtoo lokooo!!.. Adoreii!.. esse ja ta confirmado no meu 8.2!!.. :smile_positivo: @Shenlong Vlw por trazer para o XTibia!!.. ;D Otimo Trabalho!.. Abraço!.. Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574385 Compartilhar em outros sites More sharing options...
Shenlong 2 Postado Julho 9, 2008 Autor Share Postado Julho 9, 2008 a todos acima muito obrigado dúvidas post aqui Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574628 Compartilhar em outros sites More sharing options...
Northon 3 Postado Julho 9, 2008 Share Postado Julho 9, 2008 Muito legal, pena que não é seu. Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574655 Compartilhar em outros sites More sharing options...
Shenlong 2 Postado Julho 9, 2008 Autor Share Postado Julho 9, 2008 (editado) Northon Realmente pena que não é meu mais o que importa é que estou ajudando o XTibia Valeu pelo comentário Dúvidas postem aqui Editado Julho 9, 2008 por Shenlong Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-574748 Compartilhar em outros sites More sharing options...
joia 2 Postado Julho 10, 2008 Share Postado Julho 10, 2008 Ow....eu tava vendo akele seu tudo la de mudança de clima e ta dando erro ake....aparece... Lua Script Error: [Npc interface ] data/npc/scripts/climate.lua:onThink luaGetThingfromPos <>. Tile not found Oq eu faço? Fiz td do jeito q ta la e da esse erro...ajuda plxxxx Vlww Abrasss Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-576084 Compartilhar em outros sites More sharing options...
Shenlong 2 Postado Julho 12, 2008 Autor Share Postado Julho 12, 2008 joia qual a versão do seu otserv? eu testei em aries e funcionou perfeitamente Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-577280 Compartilhar em outros sites More sharing options...
joia 2 Postado Julho 12, 2008 Share Postado Julho 12, 2008 Yurots 1.2...versao 8.10.... Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-577448 Compartilhar em outros sites More sharing options...
manirao 0 Postado Julho 15, 2008 Share Postado Julho 15, 2008 Mto Bom... O Script e Tals Ficou Massa!!! Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-579354 Compartilhar em outros sites More sharing options...
Henrique Moura 193 Postado Julho 15, 2008 Share Postado Julho 15, 2008 Gostei. muito bom, é realmente pena que não é seu, mais só por postar já vale algo, ta garantido no meu ot. tente postar ss pra galera que nao for fazer ver como fica, Beleza? Sem Mais, Valew. /kk Link para o comentário https://xtibia.com/forum/topic/90100-npcsistema-de-clima/#findComment-579356 Compartilhar em outros sites More sharing options...
Posts Recomendados