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
3
2.1k
info
Grupo: Barão
Registrado: 04/07/16
Posts: 242
Reputação: +100
Gênero: Masculino

05 de setembro de 2016 às 11:28
2 semanas depois...
info
Grupo: Administrador
Registrado: 08/07/05
Posts: 5.8k
Reputação: +1.4k
Gênero: Outro

12 de setembro de 2016 às 13:25
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!
Editado Setembro 12 por Daniel


info
Grupo: Campones
Registrado: 19/07/15
Posts: 19
Reputação: +10
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
Crie um arquivo chamado temp.lua em creaturescripts/scripts e coloque isso dentro
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
Em talkactions/scripts crie um novo chamado de temp.lua e bote o seguinte dentro
É em talkactions.xml adicione essa linha
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.