• 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!

HP/Mana ring.

Nofus

New Member
Joined
Jul 16, 2009
Messages
415
Reaction score
1
Hi guys, I got a 8.54 OT Server and i wanna make a special ring.

I want to do so when I put the ring on. It transforms me and i will look like a Morgaroth/Ghazbaran.
The ring will add 8.000 Mana And HP. <- I want it to show in bars.

ALSO, While wearing this ring. I want it to take 2cc every second.

Please someone be detailed as much as possible. PLEASE HELP!
 
To regenerate:

Code:
	<attribute key="manaGain" value="8000" />
	<attribute key="manaTicks" value="1000" />
	<attribute key="healthGain" value="8000" />
	<attribute key="healthTicks" value="1000" />

It might works ;)

To transform like Morgaroth/Ghazbaran and while wearing the ring i don't know how to do :<
It need to do script.
 
Mate i added those stuff you sent me, and it looks like this in items:

Code:
<item fromid="10492" toid="10498" name="pavement" />
	<item id="10502" article="a" name="Ring of Eleria">
		<attribute key="weight" value="40" />
		<attribute key="slotType" value="ring" />
		<attribute key="manaGain" value="8000" />
	        <attribute key="manaTicks" value="1000" />
	        <attribute key="healthGain" value="8000" />
	        <attribute key="healthTicks" value="1000" />
	</item>

I dont know what this Pavement thing is, But when i wear it ingame after restarting my bars doesnt change, still the same.
 
In movements.xml:

Code:
	<movevent event="DeEquip" itemid="10502" slot="ring" function="onDeEquipItem"/>
	<movevent event="Equip" itemid="10502" slot="ring" level="80" function="onEquipItem">
		<vocation name="Knight"/>
		<vocation name="Elite Knight" showInDescription="0"/>	
		<vocation name="Druid"/>
		<vocation name="Elder Druid" showInDescription="0"/>	
		<vocation name="Sorcerer"/>
		<vocation name="Master Sorcerer" showInDescription="0"/>	
		<vocation name="Paladin"/>
		<vocation name="Royal Paladin" showInDescription="0"/>	
	</movevent>
 
dude, It looks like this in movements

Code:
<movevent event="Equip" itemid="10502" slot="ring" level="80" function="onEquipItem">
	</movevent>

I tried to add those all vocations but it still doesnt work.
 
no lol.

Lua:
-- edit by Wibben ''
-- >> Small config section --
 
local outfitMale =
{
lookType = 12,
lookHead = 12,
lookBody = 30,
lookLegs = 135,
lookFeet = 50,
lookAddons = 0
}
 
local outfitFemale =
{
lookType = 12,
lookHead = 19,
lookBody = 53,
lookLegs = 92,
lookFeet = 79,
lookAddons = 0
}
 
local cointype = 2160 -- Id of the coin the spell will use (2148 = gold coin, 2152 = platinum coin, 2160 = crystal coin) --
local tbcw = 1000 -- coin wasting time interval (miliseconds) --
local ncws = 1 -- number of coins used up during time interval --
local ncni = 1 -- number of coins needed to trigger the transformation --
local stcn = 10 -- number of coins needed to execute script (must be higher than ncni value) --
local warn = 1 -- warns player when runing short on coins, 1 = yes --
local cwar = 50 -- number of coins that triggers the warnings --
 
local bmaineff = CONST_ME_YELLOW_RINGS
local bsecondeff = CONST_ME_BLOCKHIT
local bflingeff = CONST_ANI_HOLY
local blandeff = CONST_ME_HOLYAREA
local bringwaste = CONST_ME_FIREWORK_BLUE
local bringabsorb = CONST_ME_MAGIC_GREEN
 
local gmaineff = CONST_ME_EXPLOSIONAREA
local gsecondeff = CONST_ME_FIREAREA
local gflingeff = CONST_ANI_FIRE
local glandeff = CONST_ME_FIREWORK_RED
local gringwaste = CONST_ME_FIREWORK_RED
local gringabsorb = CONST_ME_MAGIC_RED
 
-- Small config section << --
 
local condition1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition1, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FIST, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_CLUB, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SWORD, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_AXE, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_DISTANCE, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SHIELD, 40)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING, 40)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAGICPOINTS, 60)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 140)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 160)
 
local condition2 = createConditionObject(CONDITION_HASTE)
setConditionParam(condition2, CONDITION_PARAM_TICKS, -1)
setConditionFormula(condition2, 2.5, 0, 3.0, 0)
 
function superform1(param)
	if param.crca == 1 then
 
		local pos = getCreaturePosition(param.cid)
		local sex = getPlayerSex(param.cid)
 
		local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
		local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
		local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
		local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}
 
		local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
		local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
		local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
		local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}
 
		if sex == 1 then
			doSendMagicEffect(pos, bmaineff)
			doSendMagicEffect(pos, bsecondeff)
 
			doSendDistanceShoot(pos, nha, bflingeff)
			doSendDistanceShoot(pos, sha, bflingeff)
			doSendDistanceShoot(pos, wha, bflingeff)
			doSendDistanceShoot(pos, eha, bflingeff)
			doSendDistanceShoot(pos, nwa, bflingeff)
			doSendDistanceShoot(pos, nea, bflingeff)
			doSendDistanceShoot(pos, sea, bflingeff)
			doSendDistanceShoot(pos, swa, bflingeff)
 
			doSendMagicEffect(nha, blandeff)
			doSendMagicEffect(sha, blandeff)
			doSendMagicEffect(wha, blandeff)
			doSendMagicEffect(eha, blandeff)
			doSendMagicEffect(nwa, blandeff)
			doSendMagicEffect(nea, blandeff)
			doSendMagicEffect(sea, blandeff)
			doSendMagicEffect(swa, blandeff)
 
			doSetCreatureOutfit(param.cid, outfitMale, -1)
		else
			doSendMagicEffect(pos, gmaineff)
			doSendMagicEffect(pos, gsecondeff)
 
			doSendDistanceShoot(pos, nha, gflingeff)
			doSendDistanceShoot(pos, sha, gflingeff)
			doSendDistanceShoot(pos, wha, gflingeff)
			doSendDistanceShoot(pos, eha, gflingeff)
			doSendDistanceShoot(pos, nwa, gflingeff)
			doSendDistanceShoot(pos, nea, gflingeff)
			doSendDistanceShoot(pos, sea, gflingeff)
			doSendDistanceShoot(pos, swa, gflingeff)
 
			doSendMagicEffect(nha, glandeff)
			doSendMagicEffect(sha, glandeff)
			doSendMagicEffect(wha, glandeff)
			doSendMagicEffect(eha, glandeff)
			doSendMagicEffect(nwa, glandeff)
			doSendMagicEffect(nea, glandeff)
			doSendMagicEffect(sea, glandeff)
			doSendMagicEffect(swa, glandeff) 
			doSetCreatureOutfit(param.cid, outfitFemale, -1)
		end
 
		doAddCondition(param.cid, condition1)
		doAddCondition(param.cid, condition2)
 
		local mhp = getCreatureMaxHealth(param.cid)
		local mma = getPlayerMaxMana(param.cid)
		local chp = getCreatureHealth(param.cid)
		local cma = getPlayerMana(param.cid)
 
		local dhp = mhp - chp
		local dma = mma - cma	
 
		doPlayerRemoveItem(param.cid, cointype, ncni)
 
		param.crcb = 1
		param.sex = sex
		setPlayerStorageValue(param.cid, 50780, 1)
 
		addEvent(superform2, 1, param)
	end
end
 
function superform2(param)
	if param.crca == 1 and param.crcb == 1 and isCreature(param.cid) == TRUE and getPlayerStorageValue(param.cid, 50780) == 1 then
		local pos = getCreaturePosition(param.cid)
		doPlayerRemoveItem(param.cid, cointype, ncws)
		if param.sex == 1 then		
			doSendMagicEffect(pos, bringwaste)
			doSendMagicEffect(pos, bringabsorb)
		else
			doSendMagicEffect(pos, gringwaste)
			doSendMagicEffect(pos, gringabsorb)
		end
		local goldleft = getPlayerItemCount(param.cid, cointype)
		if goldleft < cwar and warn == 1 then
			doPlayerSendTextMessage(param.cid, MESSAGE_STATUS_CONSOLE_RED, "Coins left: " ..goldleft.. ".")
		end
		if goldleft < ncws then
			param.crca = 0
			param.crcb = 0
			setPlayerStorageValue(param.cid, 50780, 0)
			doPlayerSendTextMessage(param.cid, MESSAGE_EVENT_DEFAULT, "Your bangle has been destroyed!")
			 
			local pos = getCreaturePosition(param.cid)
 
			local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
			local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
			local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
			local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}
 
			local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
			local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
			local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
			local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}
 
 
			doRemoveCondition(param.cid, CONDITION_OUTFIT)
			doRemoveCondition(param.cid, CONDITION_ATTRIBUTES)
			doRemoveCondition(param.cid, CONDITION_HASTE)
 
			if param.sex == 1 then
				doSendMagicEffect(pos, bmaineff)
				doSendMagicEffect(pos, bsecondeff)
 
				doSendDistanceShoot(pos, nha, bflingeff)
				doSendDistanceShoot(pos, sha, bflingeff)
				doSendDistanceShoot(pos, wha, bflingeff)
				doSendDistanceShoot(pos, eha, bflingeff)
				doSendDistanceShoot(pos, nwa, bflingeff)
				doSendDistanceShoot(pos, nea, bflingeff)
				doSendDistanceShoot(pos, sea, bflingeff)
				doSendDistanceShoot(pos, swa, bflingeff)
 
				doSendMagicEffect(nha, blandeff)
				doSendMagicEffect(sha, blandeff)
				doSendMagicEffect(wha, blandeff)
				doSendMagicEffect(eha, blandeff)
				doSendMagicEffect(nwa, blandeff)
				doSendMagicEffect(nea, blandeff)
				doSendMagicEffect(sea, blandeff)
				doSendMagicEffect(swa, blandeff)
			else
				doSendMagicEffect(pos, gmaineff)
				doSendMagicEffect(pos, gsecondeff)
 
				doSendDistanceShoot(pos, nha, gflingeff)
				doSendDistanceShoot(pos, sha, gflingeff)
				doSendDistanceShoot(pos, wha, gflingeff)
				doSendDistanceShoot(pos, eha, gflingeff)
				doSendDistanceShoot(pos, nwa, gflingeff)
				doSendDistanceShoot(pos, nea, gflingeff)
				doSendDistanceShoot(pos, sea, gflingeff)
				doSendDistanceShoot(pos, swa, gflingeff)
 
				doSendMagicEffect(nha, glandeff)
				doSendMagicEffect(sha, glandeff)
				doSendMagicEffect(wha, glandeff)
				doSendMagicEffect(eha, glandeff)
				doSendMagicEffect(nwa, glandeff)
				doSendMagicEffect(nea, glandeff)
				doSendMagicEffect(sea, glandeff)
				doSendMagicEffect(swa, glandeff)
			end
		else
			addEvent(superform2, tbcw, param)
		end
	end
 
end
 
function onEquip(cid, item, slot)
	local param = {cid = cid, item = item, slot = slot}
	local gold = getPlayerItemCount(cid, cointype)
	if gold > stcn then
		param.crca = 1
		addEvent(superform1, 1, param)
	end
	return TRUE
end
 
function onDeEquip(cid, item, slot)
	if isPlayer(cid) and getPlayerStorageValue(cid, 50780) == 1 then
 
		doRemoveCondition(cid, CONDITION_OUTFIT)
		doRemoveCondition(cid, CONDITION_ATTRIBUTES)
		doRemoveCondition(cid, CONDITION_HASTE)
 
		local pos = getCreaturePosition(cid)
		setPlayerStorageValue(cid, 50780, 0)
		local sex = getPlayerSex(cid)
 
		local nha = {x = pos.x, y = pos.y - 3, z = pos.z, stackpos = 255}
		local sha = {x = pos.x, y = pos.y + 3, z = pos.z, stackpos = 255}
		local wha = {x = pos.x - 3, y = pos.y, z = pos.z, stackpos = 255}
		local eha = {x = pos.x + 3, y = pos.y, z = pos.z, stackpos = 255}
 
		local nwa = {x = pos.x - 2, y = pos.y - 2, z = pos.z, stackpos = 255}
		local nea = {x = pos.x + 2, y = pos.y - 2, z = pos.z, stackpos = 255}
		local sea = {x = pos.x + 2, y = pos.y + 2, z = pos.z, stackpos = 255}
		local swa = {x = pos.x - 2, y = pos.y + 2, z = pos.z, stackpos = 255}
 
		if sex == 1 then
			doSendMagicEffect(pos, bmaineff)
			doSendMagicEffect(pos, bsecondeff)
 
			doSendDistanceShoot(pos, nha, bflingeff)
			doSendDistanceShoot(pos, sha, bflingeff)
			doSendDistanceShoot(pos, wha, bflingeff)
			doSendDistanceShoot(pos, eha, bflingeff)
			doSendDistanceShoot(pos, nwa, bflingeff)
			doSendDistanceShoot(pos, nea, bflingeff)
			doSendDistanceShoot(pos, sea, bflingeff)
			doSendDistanceShoot(pos, swa, bflingeff)
 
			doSendMagicEffect(nha, blandeff)
			doSendMagicEffect(sha, blandeff)
			doSendMagicEffect(wha, blandeff)
			doSendMagicEffect(eha, blandeff)
			doSendMagicEffect(nwa, blandeff)
			doSendMagicEffect(nea, blandeff)
			doSendMagicEffect(sea, blandeff)
			doSendMagicEffect(swa, blandeff)
		else
			doSendMagicEffect(pos, gmaineff)
			doSendMagicEffect(pos, gsecondeff)
 
			doSendDistanceShoot(pos, nha, gflingeff)
			doSendDistanceShoot(pos, sha, gflingeff)
			doSendDistanceShoot(pos, wha, gflingeff)
			doSendDistanceShoot(pos, eha, gflingeff)
			doSendDistanceShoot(pos, nwa, gflingeff)
			doSendDistanceShoot(pos, nea, gflingeff)
			doSendDistanceShoot(pos, sea, gflingeff)
			doSendDistanceShoot(pos, swa, gflingeff)
 
			doSendMagicEffect(nha, glandeff)
			doSendMagicEffect(sha, glandeff)
			doSendMagicEffect(wha, glandeff)
			doSendMagicEffect(eha, glandeff)
			doSendMagicEffect(nwa, glandeff)
			doSendMagicEffect(nea, glandeff)
			doSendMagicEffect(sea, glandeff)
			doSendMagicEffect(swa, glandeff)
		end
	end
	return TRUE
end

movements.xml
Code:
 	<movevent event="Equip" itemid="2127" function="onEquipItem" slot="ring" script="chaosbangle.lua"/>
 	<movevent event="DeEquip" itemid="2127" function="onDeEquipItem" slot="ring" script="chaosbangle.lua"/>

rep++??
 
Wibben i added everything you said. I took the ring on, The emerald Bangle and nothing happend lol. Should i do something with it in items.xml?
 
I added the Lua in data\movements\scripts and it's called Chaosbangle

I copied another Lua file then renamed it and removed everything inside it then copied the text you sent me. I went to Movements.xml and wrote this in

Code:
<movevent event="Equip" itemid="2127" function="onEquipItem" slot="ring" script="chaosbangle.lua"/>
 	<movevent event="DeEquip" itemid="2127" function="onDeEquipItem" slot="ring" script="chaosbangle.lua"/>
As you said and i wrote it under "Rings". What's wrong :S please help me.

in Movements.xml it looks like this with some other rings:

Code:
	<movevent type="Equip" itemid="6300" slot="ring" event="function" value="onEquipItem"/>
	<movevent type="Equip" itemid="6301" slot="ring" event="function" value="onEquipItem"/>
	<movevent type="DeEquip" itemid="6301" slot="ring" event="function" value="onDeEquipItem"/>
        <movevent event="Equip" itemid="2127" slot="ring" function="onEquipItem"  script="chaosbangle.lua"/>
 	<movevent event="DeEquip" itemid="2127" slot="ring" function="onDeEquipItem"  script="chaosbangle.lua"/>

What is wrong :S
 
Last edited:
That's what i wrote, but i noticed the script you sent me was not made for 8.54, i found another thread were they have updated it and i used that one instead thanks anyway.
 

Similar threads

Back
Top