Ir para conteúdo
  • 0

Function Dosendanimatedtext


NewAge

Pergunta

Passei meu sv pra versao 9.60 e ele perdeu essa função, ja tentei colocar um script da otland, mas parece q só funciona com numeros, alguem pode me dizer como adicionar essa função no meu ot? Pq to querendo fazer tp falante mas não funfa: dosendanimatedtext is now a deprecated function e tb quando mato bixos nao ta aparecendo a quantidade de xp ganhada, algue

function doSendAnimatedText(pos, value, color, player)
    if(not tonumber(value))then
		    return error("arg #2 in doSendAnimatedText is not a number")
    end
    if(isPlayer(player))then
		    doSendTextMessage(player, MESSAGE_EXPERIENCE, "", pos, value, color)
    else
		    for _, v in ipairs(getSpectators(pos, 7, 5, true)) do
				    if(isPlayer(v))then
						    doSendTextMessage(v, MESSAGE_EXPERIENCE, "", pos, value, color)
				    end
		    end
    end
end
function doPlayerAddExpEx(cid, amount)
if(not doPlayerAddExp(cid, amount)) then
 return false
end
local position = getThingPosition(cid)
doPlayerSendTextMessage(cid, MESSAGE_EXPERIENCE, "You gained " .. amount .. " experience.", amount, COLOR_WHITE, position)
local spectators, name = getSpectators(getThingPosition(cid), 7, 7), getCreatureName(cid)
for _, pid in ipairs(spectators) do
 if isPlayer(pid) and pid ~= cid then
  doPlayerSendTextMessage(pid, MESSAGE_EXPERIENCE_OTHERS, name .. " gained " .. amount .. " experience.", amount, COLOR_WHITE, position)
 end
end
return true
end
function isInArray(array, value, caseSensitive)
if (caseSensitive == nil or caseSensitive == false) and type(value) == "string" then
 local lowerValue = value:lower()
 for _, _value in ipairs(array) do
  if type(_value) == "string" and lowerValue == _value:lower() then
   return true
  end
 end
else
 for _, _value in ipairs(array) do
  if (value == _value) then return true end
 end
end
return false
end
function doPlayerGiveItem(cid, itemid, amount, subType)
local item = 0
if(isItemStackable(itemid)) then
 item = doCreateItemEx(itemid, amount)
 if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
  return false
 end
else
 for i = 1, amount do
  item = doCreateItemEx(itemid, subType)
  if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
   return false
  end
 end
end
return true
end
function doPlayerGiveItemContainer(cid, containerid, itemid, amount, subType)
for i = 1, amount do
 local container = doCreateItemEx(containerid, 1)
 for x = 1, getContainerCapById(containerid) do
  doAddContainerItem(container, itemid, subType)
 end
 if(doPlayerAddItemEx(cid, container, true) ~= RETURNVALUE_NOERROR) then
  return false
 end
end
return true
end
function doPlayerTakeItem(cid, itemid, amount)
return getPlayerItemCount(cid, itemid) >= amount and doPlayerRemoveItem(cid, itemid, amount)
end
function doPlayerSellItem(cid, itemid, count, cost)
if(not doPlayerTakeItem(cid, itemid, count)) then
 return false
end
if(not doPlayerAddMoney(cid, cost)) then
 error('[doPlayerSellItem] Could not add money to: ' .. getPlayerName(cid) .. ' (' .. cost .. 'gp).')
end
return true
end
function doPlayerWithdrawMoney(cid, amount)
if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
 return false
end
local balance = getPlayerBalance(cid)
if(amount > balance or not doPlayerAddMoney(cid, amount)) then
 return false
end
doPlayerSetBalance(cid, balance - amount)
return true
end
function doPlayerDepositMoney(cid, amount)
if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
 return false
end
if(not doPlayerRemoveMoney(cid, amount)) then
 return false
end
doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
return true
end
function doPlayerAddStamina(cid, minutes)
return doPlayerSetStamina(cid, getPlayerStamina(cid) + minutes)
end
function isPremium(cid)
return (isPlayer(cid) and (getPlayerPremiumDays(cid) > 0 or getBooleanFromString(getConfigValue('freePremium'))))
end
function getMonthDayEnding(day)
if(day == "01" or day == "21" or day == "31") then
 return "st"
elseif(day == "02" or day == "22") then
 return "nd"
elseif(day == "03" or day == "23") then
 return "rd"
end
return "th"
end
function getMonthString(m)
return os.date("%B", os.time{year = 1970, month = m, day = 1})
end
function getArticle(str)
return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
end
function doNumberFormat(i)
local str, found = string.gsub(i, "(%d)(%d%d%d)$", "%1,%2", 1), 0
repeat
 str, found = string.gsub(str, "(%d)(%d%d%d),", "%1,%2,", 1)
until found == 0
return str
end
function doPlayerAddAddons(cid, addon)
for i = 0, table.maxn(maleOutfits) do
 doPlayerAddOutfit(cid, maleOutfits[i], addon)
end
for i = 0, table.maxn(femaleOutfits) do
 doPlayerAddOutfit(cid, femaleOutfits[i], addon)
end
end
function getTibiaTime(num)
local minutes, hours = getWorldTime(), 0
while (minutes > 60) do
 hours = hours + 1
 minutes = minutes - 60
end
if(num) then
 return {hours = hours, minutes = minutes}
end
return {hours =  hours < 10 and '0' .. hours or '' .. hours, minutes = minutes < 10 and '0' .. minutes or '' .. minutes}
end
function doWriteLogFile(file, text)
local f = io.open(file, "a+")
if(not f) then
 return false
end
f:write("[" .. os.date("%d/%m/%Y %H:%M:%S") .. "] " .. text .. "\n")
f:close()
return true
end
function getExperienceForLevel(lv)
lv = lv - 1
return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end
function doMutePlayer(cid, time)
local condition = createConditionObject(CONDITION_MUTED, (time == -1 and time or time * 1000))
return doAddCondition(cid, condition, false)
end
function doSummonCreature(name, pos)
local cid = doCreateMonster(name, pos, false, false)
if(not cid) then
 cid = doCreateNpc(name, pos)
end
return cid
end
function getPlayersOnlineEx()
local players = {}
for i, cid in ipairs(getPlayersOnline()) do
 table.insert(players, getCreatureName(cid))
end
return players
end
function getPlayerByName(name)
local cid = getCreatureByName(name)
return isPlayer(cid) and cid or nil
end
function isPlayer(cid)
return isCreature(cid) and cid >= AUTOID_PLAYERS and cid < AUTOID_MONSTERS
end
function isPlayerGhost(cid)
return isPlayer(cid) and (getCreatureCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE, CONDITIONID_DEFAULT) or getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBESEEN))
end
function isMonster(cid)
return isCreature(cid) and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS
end
function isNpc(cid)
-- Npc IDs are over int32_t range (which is default for lua_pushnumber),
-- therefore number is always a negative value.
return isCreature(cid) and (cid < 0 or cid >= AUTOID_NPCS)
end
function isUnderWater(cid)
return isInArray(underWater, getTileInfo(getCreaturePosition(cid)).itemid)
end
function doPlayerAddLevel(cid, amount, round)
local experience, level, amount = 0, getPlayerLevel(cid), amount or 1
if(amount > 0) then
 experience = getExperienceForLevel(level + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(level))
else
 experience = -((round and getPlayerExperience(cid) or getExperienceForLevel(level)) - getExperienceForLevel(level + amount))
end
return doPlayerAddExperience(cid, experience)
end
function doPlayerAddMagLevel(cid, amount)
local amount = amount or 1
for i = 1, amount do
 doPlayerAddSpentMana(cid, getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid), false)
end
return true
end
function doPlayerAddSkill(cid, skill, amount, round)
local amount = amount or 1
if(skill == SKILL__LEVEL) then
 return doPlayerAddLevel(cid, amount, round)
elseif(skill == SKILL__MAGLEVEL) then
 return doPlayerAddMagLevel(cid, amount)
end
for i = 1, amount do
 doPlayerAddSkillTry(cid, skill, getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill), false)
end
return true
end
function isPrivateChannel(channelId)
return channelId >= CHANNEL_PRIVATE
end
function doBroadcastMessage(text, class)
local class = class or MESSAGE_STATUS_WARNING
if(type(class) == 'string') then
 local className = MESSAGE_TYPES[class]
 if(className == nil) then
  return false
 end
 class = className
elseif(class < MESSAGE_FIRST or class > MESSAGE_LAST) then
 return false
end
for _, pid in ipairs(getPlayersOnline()) do
 doPlayerSendTextMessage(pid, class, text)
end
print("> Broadcasted message: \"" .. text .. "\".")
return true
end
function doPlayerBroadcastMessage(cid, text, class, checkFlag, ghost)
local checkFlag, ghost, class = checkFlag or true, ghost or false, class or TALKTYPE_BROADCAST
if(checkFlag and not getPlayerFlagValue(cid, PLAYERFLAG_CANBROADCAST)) then
 return false
end
if(type(class) == 'string') then
 local className = TALKTYPE_TYPES[class]
 if(className == nil) then
  return false
 end
 class = className
elseif(class < TALKTYPE_FIRST or class > TALKTYPE_LAST) then
 return false
end
for _, pid in ipairs(getPlayersOnline()) do
 doCreatureSay(cid, text, class, ghost, pid)
end
print("> " .. getCreatureName(cid) .. " broadcasted message: \"" .. text .. "\".")
return true
end
function doCopyItem(item, attributes)
local attributes = ((type(attributes) == 'table') and attributes or { "aid" })
local ret = doCreateItemEx(item.itemid, item.type)
for _, key in ipairs(attributes) do
 local value = getItemAttribute(item.uid, key)
 if(value ~= nil) then
  doItemSetAttribute(ret, key, value)
 end
end
if(isContainer(item.uid)) then
 for i = (getContainerSize(item.uid) - 1), 0, -1 do
  local tmp = getContainerItem(item.uid, i)
  if(tmp.itemid > 0) then
   doAddContainerItemEx(ret, doCopyItem(tmp, true).uid)
  end
 end
end
return getThing(ret)
end
function doSetItemText(uid, text, writer, date)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
doItemSetAttribute(uid, "text", text)
if(writer ~= nil) then
 doItemSetAttribute(uid, "writer", tostring(writer))
 if(date ~= nil) then
  doItemSetAttribute(uid, "date", tonumber(date))
 end
end
return true
end
function getItemWeightById(itemid, count, precision)
local item, count, precision = getItemInfo(itemid), count or 1, precision or false
if(not item) then
 return false
end
if(count > 100) then
 -- print a warning, as its impossible to have more than 100 stackable items without "cheating" the count
 print('[Warning] getItemWeightById', 'Calculating weight for more than 100 items!')
end
local weight = item.weight * count
return precission and weight or math.round(weight, 2)
end
function choose(...)
local arg = {...}
return arg[math.random(1, table.maxn(arg))]
end
function doPlayerAddExpEx(cid, amount)
if(not doPlayerAddExp(cid, amount)) then
 return false
end
local position = getThingPosition(cid)
doPlayerSendTextMessage(cid, MESSAGE_EXPERIENCE, "You gained " .. amount .. " experience.", amount, COLOR_WHITE, position)
local spectators, name = getSpectators(position, 7, 7), getCreatureName(cid)
for _, pid in ipairs(spectators) do
 if(isPlayer(pid) and cid ~= pid) then
  doPlayerSendTextMessage(pid, MESSAGE_EXPERIENCE_OTHERS, name .. " gained " .. amount .. " experience.", amount, COLOR_WHITE, position)
 end
end
return true
end
function getItemTopParent(uid)
local parent = getItemParent(uid)
if(not parent or parent.uid == 0) then
 return nil
end
while(true) do
 local tmp = getItemParent(parent.uid)
 if(tmp and tmp.uid ~= 0) then
  parent = tmp
 else
  break
 end
end
return parent
end
function getItemHolder(uid)
local parent = getItemParent(uid)
if(not parent or parent.uid == 0) then
 return nil
end
local holder = nil
while(true) do
 local tmp = getItemParent(parent.uid)
 if(tmp and tmp.uid ~= 0) then
  if(tmp.itemid == 1) then -- a creature
   holder = tmp
   break
  end
  parent = tmp
 else
  break
 end
end
return holder
end
function valid(f)
return function(p, ...)
 if(isCreature(p)) then
  return f(p, ...)
 end
end
end
function addVipAccount(cid, count)  --function by Mirto, MiltonHit - ######
	    db.executeQuery("UPDATE `accounts` SET `premium_points` = premium_points + '"..count.."' WHERE `name` ='"..getPlayerAccount(cid).."'")
end
function getVipBalance(cid)  --function by Mirto, MiltonHit - ######
	 local skpo = db.getResult("SELECT * FROM `accounts` where `name`='"..getPlayerAccount(cid).."'")
	 return skpo:getDataInt("premium_points")
end
function getNumber(txt) --return number if its number and is > 0, else return 0 (function maded by Gesior)
	 x = string.gsub(txt,"%a","")
	 x = tonumber(x)
	 if x ~= nill and x > 0 then
	    return x
	 else
	    return 0
	 end
end
function getItemsFromList(items)
local str = ''
if table.maxn(items) > 0 then
for i = 1, table.maxn(items) do
str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1])
if i ~= table.maxn(items) then str = str .. ', ' end end end
return str
end
function doRemoveItemsFromList(cid,items) -- by vodka
local count = 0
if table.maxn(items) > 0 then
for i = 1, table.maxn(items) do
if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then
count = count + 1 end  end  end
if count == table.maxn(items) then
for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end
else return false end
return true end

m pode me ajudar?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...