olha essa parte do script e eu vou explicando:
local name, storage = 'fire devil', 11112local sto = 800000local speedchange = 0function onAttack(cid, target)if isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) < 0 thensetPlayerStorageValue(cid, sto, getCreatureSpeed(cid))doChangeSpeed(cid, -getCreatureSpeed(cid))doChangeSpeed(cid, speedchange)return falseendif isMonster(cid) and getCreatureName(cid):lower() == name and isPlayer(target) and getCreatureStorage(target, storage) > 1 then -- O ERRO PERTENCE A ESSA PARTEdoChangeSpeed(cid, -getCreatureSpeed(cid))local oldspeed = getPlayerStorageValue(cid, sto) == -1 and getCreatureBaseSpeed(cid) or getPlayerStorageValue(cid, sto)doChangeSpeed(cid, oldspeed)return false -- O PROBLEMA ESTA AQUIendreturn trueend
no onAttack existem dois if de checagem de storage no player, é feito uma checagem no player ao ser atacado pelo monstro, checa o nome da criatura(fire devil) para saber se é ela que está atacando, checa a storage no target(o player no caso), então é setada uma storage salvando a velocidade da criatura(setPlayerStorageValue(cid, sto, getCreatureSpedd(cid))), então a velocidade é alterada com o doChangeSpeed(cid, -getCreatureSpeed(cid)) e com o doChangeSpeed(cid, speedchange).
o próximo if, é para checar novamente, faz a mesma checagem, só que com uma pequena diferença chega se a storage é positiva que é o valor necessário para o monstro conseguir atacar e voltar a velocidade(essa checagem tbm é feita no player isPlayer(target)), então se o player tiver a storage e for a criatura fire devil que atacou ele a velocudade retornará ao que era antes, pois havia salvado.
resumindo a storage ganha pelo monstro depende da checagem que é feita da storage do player, espero que tenha entendido kkkkk valeu




info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino
Como o monstro ganha storage?