function onSay(cid, words, param, channel)
flypos = getCreaturePosition(cid)
npos = {x=flypos.x, y=flypos.y, z=flypos.z - 7} 
pos = getCreaturePosition(cid)flyoutfit = {lookType = 239, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
if getCreatureCondition(cid, CONDITION_INFIGHT) == true then 	
doPlayerSendCancel(cid, "Sorry, you are in battle.")
else
	if isPremium(cid) ==  false then
		doPlayerSendCancel(cid, "Sorry, you are not premium.")
	else
		if pos.z == 7 then
		doTeleportThing(cid, npos) 
		doSendMagicEffect(npos, 14)
		doSetCreatureOutfit(cid, flyoutfit, -1)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You are now flying!")
		end
	end
end
end
 
  
Arrumei ae pra premium somente usar, e se tiver battle ele n pode voar  
  
Achei interessante esse script  
  
E pro back, pra ele voltar em sua posição atual, porém no "Z" 7: 
 
function onSay(cid, words, param, channel)
flypos = getCreaturePosition(cid)
npos2 = getPlayerMasterPos(cid)
poszao = {x=flypos.x, y=flypos.y, z=flypos.z+7}
pos = getCreaturePosition(cid)
if pos.z == 0 then
doTeleportThing(cid, poszao)
doRemoveCondition(cid, CONDITION_OUTFIT) 
doSendMagicEffect(poszao, 14)
end
end