-- ordered as in creaturescripts.xml
local events = {
'TutorialCockroach',
'ElementalSpheresOverlords',
'BigfootBurdenVersperoth',
'BigfootBurdenWarzone',
'BigfootBurdenWeeper',
'BigfootBurdenWiggler',
'SvargrondArenaKill',
'NewFrontierShardOfCorruption',
'NewFrontierTirecz',
'ServiceOfYalaharDiseasedTrio',
'ServiceOfYalaharAzerus',
'ServiceOfYalaharQuaraLeaders',
'InquisitionBosses',
'InquisitionUngreez',
'KillingInTheNameOfKills',
'MastersVoiceServants',
'SecretServiceBlackKnight',
'ThievesGuildNomad',
'WotELizardMagistratus',
'WotELizardNoble',
'WotEKeeper',
'WotEBosses',
'WotEZalamon',
'PlayerDeath',
'AdvanceSave',
'AdvanceRookgaard',
'PythiusTheRotten',
'DropLoot',
'CriticalSystem'
}
local function onMovementRemoveProtection(cid, oldPosition, time)
local player = Player(cid)
if not player then
return true
end
local playerPosition = player:getPosition()
if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
player:setStorageValue(Storage.combatProtectionStorage, 0)
return true
end
addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
end
function onLogin(player)
local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
if player:getLastLoginSaved() <= 0 then
loginStr = loginStr .. ' Please choose your outfit.'
player:sendTutorial(1)
else
if loginStr ~= '' then
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
end
loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
end
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
local playerId = player.uid
-- Stamina
Game.getStorageValue("stamina")[playerId] = 0
-- Promotion
local vocation = player:getVocation()
local promoted = player:isPromoted()
if player:isPremium() then
local value = player:getStorageValue(Storage.Promotion)
if promoted and value ~= 1 then
player:setStorageValue(Storage.Promotion, 1)
elseif not promoted and value == 1 then
player:setVocation(vocation:getPromotion())
end
elseif promoted then
player:setVocation(vocation:getDemotion())
end
-- Events
for i = 1, #events do
player:registerEvent(events)
end
if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
onMovementRemoveProtection(playerId, player:getPosition(), 10)
end
-- Critical System
if player:getCriticalLevel() == -1 then
player:setCriticalLevel(0)
end
return true
end
- Forums
- OTServ
- Recursos
- Scripting
- Globalevents e Spells
- [TFS 1.x] Critical System
info
Group: Marquês
Joined: 03/02/13
Posts: 1.2k
Reputation: +254
Gender: Masculino
Tibia Character: Partiu Baladinha

info
Group: Visconde
Joined: 24/07/09
Posts: 356
Reputation: +28
Gender: Masculino

Beleza, descobri.. acho que agora está tudo certo rep + ![]()
Tava chupando manga aqui, e tava colocando depois do return...
Acho que tem algo com problema, os players não leva dano de bixo nenhum.
@Edit
Aquela lib faz com que os player não leve dano de monstros..
Edited Junho 6 by curruwilliam
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

Beleza, descobri.. acho que agora está tudo certo rep +
Tava chupando manga aqui, e tava colocando depois do return...
Acho que tem algo com problema, os players não leva dano de bixo nenhum.
@Edit
Aquela lib faz com que os player não leve dano de monstros..
A mesma lib pertence a outro sistema,
O Dodge System que defende metade dos hits enquanto o Critical aumenta.
info
Group: Banidos
Joined: 31/05/15
Posts: 30
Reputation: +2
Tibia Character: Samuel on

deu erro aq tfs parou de funcionar
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

deu erro aq tfs parou de funcionar
Tfs parou de funcionar não é um erro do script, para de funcionar quando você faz exatamente o que?
amigo, deu um erro estranho.. tipo.. meus chares novos não recebem nenhum tipo de dano de monstros
eles são atacados, mas não recebem dano
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

amigo, deu um erro estranho.. tipo.. meus chares novos não recebem nenhum tipo de dano de monstros
eles são atacados, mas não recebem dano
Você ta usando no tfs 1.1 ou 1.2?
Você fez alguma alteração?
1.2, sem alterações que podem influenciar, minhas alterações na source são só de canal de loot e tal, não tem ligação... eu removi o creaturescript do seu sistema e meus chares voltarão a levar danos.
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

1.2, sem alterações que podem influenciar, minhas alterações na source são só de canal de loot e tal, não tem ligação... eu removi o creaturescript do seu sistema e meus chares voltarão a levar danos.
Mas o creaturescript é o script em si.
Mas o creaturescript é o script em si.
sim eu sei, mas eu removi pra ver se o bug era o seu script ou a minha source... e também desbugar meus chares pra mim fazer outras coisas
info
Group: Herói
Joined: 01/05/08
Posts: 2.6k
Reputation: +536
Gender: Masculino

sim eu sei, mas eu removi pra ver se o bug era o seu script ou a minha source... e também desbugar meus chares pra mim fazer outras coisas
Sim, eu entendo.
Gera algum erro no console ao usar o script?
não há erro algum, verifiquei tudo, sobre o case sensitive do registro do login, não tinha nada errado, mais tarde vou testar novamente, com outro data pack e um char novo
info
Group: Visconde
Joined: 24/07/09
Posts: 356
Reputation: +28
Gender: Masculino

A mesma lib pertence a outro sistema,
O Dodge System que defende metade dos hits enquanto o Critical aumenta.
Então tenho que usar o outro sistema tbm ?





info
Group: Visconde
Joined: 24/07/09
Posts: 356
Reputation: +28
Gender: Masculino
Só não consegui adicionar no 'login.lua':
-- ordered as in creaturescripts.xml local events = { 'TutorialCockroach', 'ElementalSpheresOverlords', 'BigfootBurdenVersperoth', 'BigfootBurdenWarzone', 'BigfootBurdenWeeper', 'BigfootBurdenWiggler', 'SvargrondArenaKill', 'NewFrontierShardOfCorruption', 'NewFrontierTirecz', 'ServiceOfYalaharDiseasedTrio', 'ServiceOfYalaharAzerus', 'ServiceOfYalaharQuaraLeaders', 'InquisitionBosses', 'InquisitionUngreez', 'KillingInTheNameOfKills', 'MastersVoiceServants', 'SecretServiceBlackKnight', 'ThievesGuildNomad', 'WotELizardMagistratus', 'WotELizardNoble', 'WotEKeeper', 'WotEBosses', 'WotEZalamon', 'PlayerDeath', 'AdvanceSave', 'AdvanceRookgaard', 'PythiusTheRotten', 'DropLoot', 'CriticalSystem' } local function onMovementRemoveProtection(cid, oldPosition, time) local player = Player(cid) if not player then return true end local playerPosition = player:getPosition() if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then player:setStorageValue(Storage.combatProtectionStorage, 0) return true end addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1) end function onLogin(player) local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!' if player:getLastLoginSaved() <= 0 then loginStr = loginStr .. ' Please choose your outfit.' player:sendTutorial(1) else if loginStr ~= '' then player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) end loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved())) end player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr) local playerId = player.uid -- Stamina Game.getStorageValue("stamina")[playerId] = 0 -- Promotion local vocation = player:getVocation() local promoted = player:isPromoted() if player:isPremium() then local value = player:getStorageValue(Storage.Promotion) if promoted and value ~= 1 then player:setStorageValue(Storage.Promotion, 1) elseif not promoted and value == 1 then player:setVocation(vocation:getPromotion()) end elseif promoted then player:setVocation(vocation:getDemotion()) end -- Events for i = 1, #events do player:registerEvent(events[i]) end if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10) onMovementRemoveProtection(playerId, player:getPosition(), 10) end return true endSIm, como vou saber se ta dando critical?