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

Windows How to fix GMP Bug?

this is potion .lua

PHP:
local config = {
	
removeOnUse = "yes",
	
usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
	
splashable = "no",
	
range = -1,
	
realAnimation = "yes", -- make text effect visible only for players in range 1x1
	
multiplier = {
		health = 1.0,
		mana = 1.0
	}
}



config.removeOnUse = getBooleanFromString(config.removeOnUse)

config.usableOnTarget = getBooleanFromString(config.usableOnTarget)

config.splashable = getBooleanFromString(config.splashable)

config.realAnimation = getBooleanFromString(config.realAnimation)


local POTIONS = {
	[8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
	[7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
	[7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
	[7591] = {empty = 7635, splash = 42, health = {600, 800}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
	[8473] = {empty = 7635, splash = 42, health = {900, 1100}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

	[7620] = {empty = 7636, splash = 47, mana = {100, 150}}, -- mana potion
	[7589] = {empty = 7634, splash = 47, mana = {110, 200}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
	[7590] = {empty = 7635, splash = 47, mana = {300, 400}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

	[8472] = {empty = 7635, splash = 43, health = {500, 600}, mana = {150, 290}, level = 80, vocations = {3, 7}, vocStr = "paladins"}
}



local exhaust = createConditionObject(CONDITION_EXHAUST)

setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))



function onUse(cid, item, fromPosition, itemEx, toPosition)
	
local potion = POTIONS[item.itemid]
	
if(not potion) then
		
return false
	
end

	
if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
		
if(not config.splashable) then
			
return false
		
end

		
if(toPosition.x == CONTAINER_POSITION) then
			
toPosition = getThingPosition(item.uid)
		
end

		
doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
		
doRemoveItem(item.uid, 1)
		
if(not potion.empty or config.removeOnUse) then
			
return true
		
end

		
if(fromPosition.x ~= CONTAINER_POSITION) then
			
doCreateItem(potion.empty, fromPosition)
		
else
			
doPlayerAddItem(cid, potion.empty, 1)
		
end

		
return true
	
end

	
if(hasCondition(cid, CONDITION_EXHAUST)) then
		
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
		
return true
	
end

	
if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
		not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
	then
		
doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
		
return true
	
end

	
if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(itemEx.uid)) > config.range) then
		
return false
	
end

	
local health = potion.health
	
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
		
return false
	
end

	
local mana = potion.mana
	
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
		
return false
	
end

	
doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
	
if(not config.realAnimation) then
		
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
	
else
		
for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
			
if(isPlayer(tid)) then
				
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
			
end
		
end
	
end

	
doAddCondition(cid, exhaust)
	
doRemoveItem(item.uid, 1)
	
if(not potion.empty or config.removeOnUse) then
		
return true
	
end

	
if(fromPosition.x ~= CONTAINER_POSITION) then
		
doCreateItem(potion.empty, fromPosition)
	
else
		
doPlayerAddItem(cid, potion.empty, 1)
	
end

	
return true

end

if yours are bugged then us this
 
this is potion .lua

PHP:
local config = {
	
removeOnUse = "yes",
	
usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
	
splashable = "no",
	
range = -1,
	
realAnimation = "yes", -- make text effect visible only for players in range 1x1
	
multiplier = {
		health = 1.0,
		mana = 1.0
	}
}



config.removeOnUse = getBooleanFromString(config.removeOnUse)

config.usableOnTarget = getBooleanFromString(config.usableOnTarget)

config.splashable = getBooleanFromString(config.splashable)

config.realAnimation = getBooleanFromString(config.realAnimation)


local POTIONS = {
	[8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
	[7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
	[7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
	[7591] = {empty = 7635, splash = 42, health = {600, 800}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
	[8473] = {empty = 7635, splash = 42, health = {900, 1100}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

	[7620] = {empty = 7636, splash = 47, mana = {100, 150}}, -- mana potion
	[7589] = {empty = 7634, splash = 47, mana = {110, 200}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
	[7590] = {empty = 7635, splash = 47, mana = {300, 400}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

	[8472] = {empty = 7635, splash = 43, health = {500, 600}, mana = {150, 290}, level = 80, vocations = {3, 7}, vocStr = "paladins"}
}



local exhaust = createConditionObject(CONDITION_EXHAUST)

setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))



function onUse(cid, item, fromPosition, itemEx, toPosition)
	
local potion = POTIONS[item.itemid]
	
if(not potion) then
		
return false
	
end

	
if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
		
if(not config.splashable) then
			
return false
		
end

		
if(toPosition.x == CONTAINER_POSITION) then
			
toPosition = getThingPosition(item.uid)
		
end

		
doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
		
doRemoveItem(item.uid, 1)
		
if(not potion.empty or config.removeOnUse) then
			
return true
		
end

		
if(fromPosition.x ~= CONTAINER_POSITION) then
			
doCreateItem(potion.empty, fromPosition)
		
else
			
doPlayerAddItem(cid, potion.empty, 1)
		
end

		
return true
	
end

	
if(hasCondition(cid, CONDITION_EXHAUST)) then
		
doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
		
return true
	
end

	
if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
		not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
	then
		
doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
		
return true
	
end

	
if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(itemEx.uid)) > config.range) then
		
return false
	
end

	
local health = potion.health
	
if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
		
return false
	
end

	
local mana = potion.mana
	
if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
		
return false
	
end

	
doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
	
if(not config.realAnimation) then
		
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
	
else
		
for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
			
if(isPlayer(tid)) then
				
doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
			
end
		
end
	
end

	
doAddCondition(cid, exhaust)
	
doRemoveItem(item.uid, 1)
	
if(not potion.empty or config.removeOnUse) then
		
return true
	
end

	
if(fromPosition.x ~= CONTAINER_POSITION) then
		
doCreateItem(potion.empty, fromPosition)
	
else
		
doPlayerAddItem(cid, potion.empty, 1)
	
end

	
return true

end

if yours are bugged then us this

Dosen't Work, People still get debuged..
 
Back
Top