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

[Emerald Bangle] Tfs 0.3.6 rep++

Dalale

GX
Joined
Jun 13, 2008
Messages
718
Reaction score
2
Location
Sweden
Hello
This script is based on when you put the bangle in your "ring" equipt, your getting around 40% better skills/magic etc. but the problem is when somone removes the ring and put it on again the players get full HP/Mana, I got this script for 0.2 and its working perfectly, but i need this one to work perfectly on my new server tfs 0.3.6
Rep++:cool:

Code:
local outfit =
{
    -- Girls
    {
        lookType   = 308,
        lookHead   = 19,
        lookBody   = 53,
        lookLegs   = 92,
        lookFeet   = 79,
        lookAddons = 0
    },
    -- Boys
    {
        lookType   = 308,
        lookHead   = 19,
        lookBody   = 79,
        lookLegs   = 3,
        lookFeet   = 81,
        lookAddons = 0
    }
}
 
local coinID          = 2160
local wastingInterval = 1000
local wastingQuantity = 1
local triggerQuantity = 5
local warnOnLowSupply = TRUE
local lowSupplyMargin = 200
local storage         = 50780
 
-- Config << --
 
local condition1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition1, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FIST,                45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING,             45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_CLUB,                45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SWORD,               45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_AXE,                 45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_DISTANCE,            45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_SHIELD,              45)
setConditionParam(condition1, CONDITION_PARAM_SKILL_FISHING,             45)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAGICPOINTS,          45)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT,  160)
setConditionParam(condition1, CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT, 140)

 
local condition2 = createConditionObject(CONDITION_HASTE)
setConditionParam(condition2, CONDITION_PARAM_TICKS, -1)
setConditionFormula(condition2, 2.5, 0, 3.0, 0)
 
local area = createCombatArea({
    {0, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0},
    {0, 0, 1, 0, 1, 0, 0},
    {0, 1, 0, 2, 0, 1, 0},
    {0, 0, 1, 0, 1, 0, 0},
    {0, 0, 0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0, 0, 0}
})
 
local animCombat = 
{
    createCombatObject(),
    createCombatObject()
}
 
local sexyEffect =
{
    CONST_ME_MAGIC_GREEN,
    CONST_ME_MAGIC_RED,
    CONST_ME_MAGIC_RED,
    CONST_ME_MAGIC_GREEN
}
 
setCombatParam(animCombat[2], COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(animCombat[2], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(animCombat[1], COMBAT_PARAM_EFFECT, CONST_ME_FIREWORK_RED)
setCombatParam(animCombat[1], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
 
setCombatArea(animCombat[2], area)
setCombatArea(animCombat[1], area)
 
local function StopSuperForm(cid)
    if (getPlayerStorageValue(cid, storage) == 1) then
        setPlayerStorageValue(cid, storage, 0)
        doRemoveCondition(cid, CONDITION_OUTFIT)
        doRemoveCondition(cid, CONDITION_ATTRIBUTES)
        doRemoveCondition(cid, CONDITION_HASTE)
    end
    return TRUE
end
 
local function SuperForm(cid, sexIndex)
    if (isCreature(cid)) then
        if (getPlayerStorageValue(cid, storage) == 1) then
            local goldLeft = getPlayerItemCount(cid, coinID)
            if (goldLeft >= wastingQuantity) then
                local position = getCreaturePosition(cid)
                doPlayerRemoveItem(cid, coinID, wastingQuantity)
                doSendMagicEffect(position, sexyEffect[sexIndex + 2])
                doSendMagicEffect(position, sexyEffect[sexIndex])
                if (goldLeft <= lowSupplyMargin and warnOnLowSupply == TRUE) then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Coins left: " ..(goldLeft - wastingQuantity) .. "!")
                end
                addEvent(SuperForm, wastingInterval, cid, sexIndex)
            else
                                return StopSuperForm(cid)
            end
        end
    end
end
 
function onEquip(cid, item, slot)
    if (getPlayerItemCount(cid, coinID) > triggerQuantity and getPlayerStorageValue(cid, storage) ~= 1) then
	    local sexIndex = getPlayerSex(cid) + 1
        doCombat(cid, animCombat[sexIndex], numberToVariant(cid))
        doSetCreatureOutfit(cid, outfit[sexIndex], -1)
        setPlayerStorageValue(cid, storage, 1)
        doAddCondition(cid, condition1)
        doAddCondition(cid, condition2)
        doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
        doPlayerAddMana(cid, getPlayerMaxMana(cid) - getPlayerMana(cid)) 
        doPlayerRemoveItem(cid, coinID, triggerQuantity)
	    SuperForm(cid, sexIndex)
    elseif (getPlayerStorageValue(cid, storage) == 1) then
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You cannot equip this now!")
    else
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You do not have enough coins!")
    end
    return TRUE
end
 
function onDeEquip(cid, item, slot)
		doRemoveCondition(cid, CONDITION_OUTFIT)
		doRemoveCondition(cid, CONDITION_ATTRIBUTES)
		doRemoveCondition(cid, CONDITION_HASTE)
		return StopSuperForm(cid)
end




Here is the working bangle for the 0.2
Code:
-- >> 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
 
Code:
doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))
doPlayerAddMana(cid, getPlayerMaxMana(cid) - getPlayerMana(cid))

? xd
 
Back
Top