local freezetime = 6
local cooldown = 10
local storage = 19002
local antifreeze = 10297
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 41)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_SUBID, 1)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, -1)
setCombatCondition(combat, exhaust)
local exhaustt = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaustt, CONDITION_PARAM_SUBID, 2)
setConditionParam(exhaustt, CONDITION_PARAM_TICKS, -1)
setCombatCondition(combat, exhaustt)
function countDown(number, pos, effect, msgonend, effectonend)
local n = number
for i = 1, number do
addEvent(doSendAnimatedText,i* 1000, pos, n > 1 and n.."" or msgonend .."", n < 6 and TEXTCOLOR_RED or TEXTCOLOR_GREEN)
addEvent(doSendMagicEffect,i* 1000, pos, n > 1 and effect or effectonend )
n = n -1
end
n = number
return true
end
function removed(cid)
if isPlayer(cid) then
doCreatureSetNoMove(cid, false)
doRemoveCondition(cid,CONDITION_EXHAUST,1)
doRemoveCondition(cid,CONDITION_EXHAUST,2)
end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getTileInfo(getThingPos(cid)).protection then
return false
end
if exhaustion.get(cid,storage) then
return doPlayerSendCancel(cid,"You can't use this yet.")
end
if not isPlayer(itemEx.uid) or cid == itemEx.uid then
return doPlayerSendCancel(cid,"You can only use this on another players.")
end
doSendAnimatedText(getThingPos(itemEx.uid),"SLOW!", TEXTCOLOR_WHITE)
exhaustion.set(cid,storage,cooldown)
doCombat(cid, combat, numberToVariant(itemEx.uid))
if getPlayerSlotItem(itemEx.uid, CONST_SLOT_RIGHT).itemid == antifreeze or getPlayerSlotItem(itemEx.uid, CONST_SLOT_LEFT).itemid == antifreeze then
return doPlayerSendCancel(cid,"Your enemy have an anti-freeze item!.")
else
doCreatureSetNoMove(itemEx.uid, true)
countDown(freezetime , toPosition, 0, "melted", 5)
addEvent(removed,freezetime*1000,itemEx.uid)
end
return true
end
getPlayerSlotItem(itemEx.uid, CONST_SLOT_RIGHT).itemid == antifreeze or getPlayerSlotItem(itemEx.uid, CONST_SLOT_LEFT).itemid == antifreeze
Try this code, you have to edit the antifreeze value for your Freeze Shield id.
PHP:local freezetime = 6 local cooldown = 10 local storage = 19002 local antifreeze = 10297 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 41) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_SUBID, 1) setConditionParam(exhaust, CONDITION_PARAM_TICKS, -1) setCombatCondition(combat, exhaust) local exhaustt = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaustt, CONDITION_PARAM_SUBID, 2) setConditionParam(exhaustt, CONDITION_PARAM_TICKS, -1) setCombatCondition(combat, exhaustt) function countDown(number, pos, effect, msgonend, effectonend) local n = number for i = 1, number do addEvent(doSendAnimatedText,i* 1000, pos, n > 1 and n.."" or msgonend .."", n < 6 and TEXTCOLOR_RED or TEXTCOLOR_GREEN) addEvent(doSendMagicEffect,i* 1000, pos, n > 1 and effect or effectonend ) n = n -1 end n = number return true end function removed(cid) if isPlayer(cid) then doCreatureSetNoMove(cid, false) doRemoveCondition(cid,CONDITION_EXHAUST,1) doRemoveCondition(cid,CONDITION_EXHAUST,2) end end function onUse(cid, item, fromPosition, itemEx, toPosition) if getTileInfo(getThingPos(cid)).protection then return false end if exhaustion.get(cid,storage) then return doPlayerSendCancel(cid,"You can't use this yet.") end if not isPlayer(itemEx.uid) or cid == itemEx.uid then return doPlayerSendCancel(cid,"You can only use this on another players.") end doSendAnimatedText(getThingPos(itemEx.uid),"SLOW!", TEXTCOLOR_WHITE) exhaustion.set(cid,storage,cooldown) doCombat(cid, combat, numberToVariant(itemEx.uid)) if getPlayerSlotItem(itemEx.uid, CONST_SLOT_RIGHT).itemid == antifreeze or getPlayerSlotItem(itemEx.uid, CONST_SLOT_LEFT).itemid == antifreeze then return doPlayerSendCancel(cid,"Your enemy have an anti-freeze item!.") else doCreatureSetNoMove(itemEx.uid, true) countDown(freezetime , toPosition, 0, "melted", 5) addEvent(removed,freezetime*1000,itemEx.uid) end return true end
Note: It only works if the shield is on the right hand!
@EDIT:
FIXED by Cyko to check both hands.
okay Thanks..
- - - Updated - - -
Where to put this script?
doSendAnimatedText(getThingPos(itemEx.uid),"SLOW!", TEXTCOLOR_WHITE)
exhaustion.set(cid,storage,cooldown)
doCombat(cid, combat, numberToVariant(itemEx.uid))
Between this should go under else: