Noock 10 Postado Setembro 5, 2016 Share Postado Setembro 5, 2016 eae pessoal do xtibia, aqui esta um script reformulado que um membro deixou no xtibia a muito tempo. nesse script o tibia irar se tornar mais "real", Tornando possível levar dano de frio ou calor, funciona basicamente assim, dependendo da sua roupa e sua altura no tibia (em Z, subsolo e acima do solo) você irar ganhar temperatura, e quando chegar a uma certa temperatura você irar levar dano, ex: eu desci ate o fundo, onde e muito frio portanto se eu não tiver uma roupa quente o suficiente vou levar dano de frio. sem mais delongas vamos ao script ~~ #Instalação Spoiler Crie um arquivo chamado temp.lua em creaturescripts/scripts e coloque isso dentro Spoiler tempConfig = {-- Confing sub_config = true, -- Ativar temperatura subterranea? ( false - Não ) ( true - Sim ) death_config = true, -- Poder morrer se temperatura for muito alta/baixa?-- Temperatura normal temp_base = 26,-- Dano (aleatorio entre o minimo e o maximo) base_dano = -1, -- Dano por temperatura um pouco alta/baixa max_base_dano = -100, -- Dano por temperatura muito alta/baixa delay = 2000, -- tempo em milissigundos dos danos--Temperaturas (quando tiver essa temperatura vai levar dano) Temperatura_Calor = 40, Temperatura_Frio = 20,-- Quando tiver nessa temperatura o limite do dano e expandido Temperatura_Calor_D = 50, Temperatura_Frio_D = 10}-- determina a temperatura da outfit...outfit_temp = {-- Female Outfits [136] = 5,-- Citizen-- Male Outfits [128] = 5-- Citizen}-- determina a temperatura no acima do solo/subsolosub = {[0] = -8,--Nivel Mais Alto[1] = -5,[2] = -3,[3] = 2,[4] = 4,[5] = 3,[6] = 1,[7] = 0,--Nivel Normal[8] = 1,[9] = 2,[10] = -3,[11] = -5,[12] = -8,[13] = -10,[14] = -15,[15] = -20}--Nivel Mais Baixofunction onThink(creature, interval) local player = creature:getPlayer() local f = player:getPosition() local playerOutfit = player:getOutfit() local temp_local = player:getStorageValue(121314) if player:getAccountType() < ACCOUNT_TYPE_GOD then temp_user = ((tempConfig.temp_base + outfit_temp[playerOutfit.lookType]) + temp_local) if tempConfig.sub_config == true then -- Temperatura em alta/baixa altitides temp_user = temp_user + sub[f.z] end player:setStorageValue(12345, temp_user) if temp_user >= tempConfig.Temperatura_Calor then addEvent(function() player:sendTextMessage(MESSAGE_STATUS_WARNING, "muito Calor...") if temp_user >= (tempConfig.Temperatura_Calor + 6) then player:addHealth(math.random(tempConfig.base_dano, (tempConfig.max_base_dano + (temp_user - tempConfig.Temperatura_Calor)))) else player:addHealth(math.random(tempConfig.base_dano, -5)) end end ,tempConfig.delay) elseif temp_user <= tempConfig.Temperatura_Frio then addEvent(function() player:sendTextMessage(MESSAGE_STATUS_WARNING, "muito Frio...") if temp_user <= (tempConfig.Temperatura_Frio - 6) then player:addHealth(math.random(tempConfig.base_dano, (tempConfig.max_base_dano + (temp_user - tempConfig.Temperatura_Frio)))) else player:addHealth(math.random(tempConfig.base_dano, -5)) end end ,tempConfig.delay) elseif temp_user >= tempConfig.Temperatura_Calor_D or temp_user <= tempConfig.Temperatura_Frio_D then addEvent(function() if tempConfig.death_config == true then player:sendTextMessage(MESSAGE_STATUS_WARNING, "...") player:addHealth(math.random(tempConfig.base_dano - 5, tempConfig.max_base_dano)) end end ,tempConfig.delay) end endend É em Creaturescript/Scripts/login.lua adicione a seguinte linha antes do return true no final do script player:registerEvent("Temp") return trueend É em Creaturescripts.xml e adicione a seguinte linha em qualquer lugar <event type="think" name="Temp" script="temp.lua" /> Em talkactions/scripts crie um novo chamado de temp.lua e bote o seguinte dentro function onSay(player, words, param) local temp = player:getStorageValue(12345) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Voce esta sentindo ".. temp .." Graus")end É em talkactions.xml adicione essa linha <talkaction words="!temp" script="temp.lua"/> infelizmente eu não consegui adaptar tudo, principalmente a parte do movements, se alguém conseguir agradeceria se postasse #Créditos Pc98 Autor do script. @patrickjean Por disponibilizar no Xtibia a base que eu usei > link < @Noock por quase nada. Link para o comentário https://xtibia.com/forum/topic/242064-temperatura/ Compartilhar em outros sites More sharing options...
Gabriel Netto 100 Postado Setembro 5, 2016 Share Postado Setembro 5, 2016 sNão acho muito interessante levar dano, mas ficar mais lento quando está com outfits "pesadas" no calor, ter que comer mais comida no frio, diminuir o dano quando estiver com mt frio ou mt calor etc ficaria legal. O único problema q eu vi nesse script aí é que ele seta a temperatura por tile, e não por área, e isso acaba limitando teu mapping, saca? Mas é uma ideia bem bacana Link para o comentário https://xtibia.com/forum/topic/242064-temperatura/#findComment-1703580 Compartilhar em outros sites More sharing options...
Administrador Administrador 1439 Postado Setembro 12, 2016 Administrador Share Postado Setembro 12, 2016 Poderia aplicar, nessas áreas, a condição ativada ao pisar em um fire field, mas com dano bem menor. Se não eu acho que fica zuado, mas acho que vai da preferência de cada um que for usar e do tipo de servidor. Obrigado por trazer o sistema ao fórum, muito bom! Link para o comentário https://xtibia.com/forum/topic/242064-temperatura/#findComment-1704053 Compartilhar em outros sites More sharing options...
Posts Recomendados