• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Freeze rune problem

killing

Member
Joined
Feb 23, 2012
Messages
815
Reaction score
11
Location
BIH
Hello
I have Freeze rune Script.
LUA:
local freezetime = 7   
 
local cooldown = 10 -- time to use again
 
local storage = 19002
 
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, 0)
		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))
	doCreatureSetNoMove(itemEx.uid, 1)
	countDown(freezetime , toPosition, 0, "melted", 5)
	addEvent(removed,freezetime*1000,itemEx.uid)
	return true
end

and now i want to player Can't use Runes in Freeze time!(Or attack other players)
 
What I would do is use doPlayerSetGroupId(cid, group), having already made a custom group in groups.xml with flags such as:

CannotUseCombat
CannotAttackPlayer/Monster
NoGainMana
NoGainHealth etc

Use a OT Flags Generator to obtain the flag value that you need. It can be found in the Tools section.

Of course you'd switch their group back afterwords, perhaps store previous group in storage.
 
Back
Top