-- 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
- Fórum
- OTServ
- Recursos
- Scripting
- Globalevents e Spells
- [TFS 1.x] Critical System
info
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: Partiu Baladinha

info
Grupo: Visconde
Registrado: 24/07/09
Posts: 356
Reputação: +28
Gênero: 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..
Editado Junho 6 por curruwilliam
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Banidos
Registrado: 31/05/15
Posts: 30
Reputação: +2
Char no Tibia: Samuel on

deu erro aq tfs parou de funcionar
info
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Herói
Registrado: 01/05/08
Posts: 2.6k
Reputação: +536
Gênero: 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
Grupo: Visconde
Registrado: 24/07/09
Posts: 356
Reputação: +28
Gênero: 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
Grupo: Visconde
Registrado: 24/07/09
Posts: 356
Reputação: +28
Gênero: 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?