Ir para conteúdo
  • 0

Talkactions !mana E !vida


kalevra

Pergunta

Bom eu tenho os 2 scripts, ja refiz o de vida mais ele não funciona no servidor (8.60)

 

Script de Vida. (Não esta pegando)

 

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nVida atual: " .. getCreatureHealth(cid) .. "\nVida máxima: " .. getCreatureMaxHealth(cid) .. "")

return true

end

if isPremium(cid) == TRUE then

local pid = getPlayerByNameWildcard(param)

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O jogador com o nome " .. param .. " não esta online ou não existe.")

return true

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nVida de [ " .. getCreatureName(pid) .. " ] atual: " .. getCreatureHealth(pid) .. "\nVida de [ " .. getCreatureName(pid) .. " ] máxima: " .. getCreatureMaxHealth(pid) .. "")

return true

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Apenas jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")

return true

end

end

 

 

 

Script de Mana (Esta pegando)

function onSay(cid, words, param, channel)

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nMana atual: " .. getCreatureMana(cid) .. "\nMana máxima: " .. getCreatureMaxMana(cid) .. "")

 

return true

end

if isPremium(cid) == TRUE then

local pid = getPlayerByNameWildcard(param)

if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O jogador com o nome " .. param .. " não esta online ou não existe.")

return true

end

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nMana de [ " .. getCreatureName(pid) .. " ] atual: " .. getCreatureMana(pid) .. "\nMana de [ " .. getCreatureName(pid) .. " ] máxima: " .. getCreatureMaxMana(pid) .. "")

return true

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Apenas jogadores VIP podem utilizar este comando para visualizar informações de outros jogadores.")

 

return true

end

end

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

infomanahp.lua

function onSay(cid, words, param, channel)
if words == "!health" then
if param == "" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Minha Vida atual: [" .. getCreatureHealth(cid) .. "/" .. getCreatureMaxHealth(cid) .. "]")
return true
end
local player = getPlayerByNameWildcard(param)
if(not player)then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true
elseif not isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ser premium.") return true
end
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vida de "..getCreatureName(player).." Atual: ["..getCreatureHealth(player).."/" .. getCreatureMaxHealth(player) .. "]")
elseif words == "!mana" then
if param == "" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Minha Mana atual: [" .. getCreatureMana(cid) .. "/" .. getCreatureMaxMana(cid) .. "]")
return true
end
local player = getPlayerByNameWildcard(param)
if(not player)then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true
elseif not isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ser premium.") return true
end
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mana de " ..getCreatureName(player).. " Atual: ["..getCreatureMana(player).."/" .. getCreatureMaxMana(player) .. "]")
end
return true
end

 

talkactions.xml

<talkaction words="!mana;!health" event="script" value="infomanahp.lua"/>

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

AH TA ESQUECI DE MUDAR A FUNÇÃO, no meu ot a função é "getPlayerHealth(cid)" de vez de "getCreatureHealth(cid)"

 

 

pronto, está editado

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

Continua dando em nada aqui, mana funciona normalmente mais o comando !health.

 

Eu usei o comando e apareceu isso:

 

[05/05/2012 11:55:15] [Error - TalkAction Interface]

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:onSay

[05/05/2012 11:55:15] Description:

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:4: attempt to call global 'getPlayerHealth' (a nil value)

[05/05/2012 11:55:15] stack traceback:

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:4: in function <data/talkactions/scripts/infomanahp.lua:1>

 

--

 

Na talkaction.xml posso substituir !health por !vida normal sem afetar o script?

Link para o comentário
Compartilhar em outros sites

  • 0

Continua dando em nada aqui, mana funciona normalmente mais o comando !health.

 

Eu usei o comando e apareceu isso:

 

[05/05/2012 11:55:15] [Error - TalkAction Interface]

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:onSay

[05/05/2012 11:55:15] Description:

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:4: attempt to call global 'getPlayerHealth' (a nil value)

[05/05/2012 11:55:15] stack traceback:

[05/05/2012 11:55:15] data/talkactions/scripts/infomanahp.lua:4: in function <data/talkactions/scripts/infomanahp.lua:1>

 

--

 

Na talkaction.xml posso substituir !health por !vida normal sem afetar o script?

velho eu editei o script ontem, eu já mudei a função "getPlayerHealth" por "getCreatureHealth", só copiar de novo o script.

 

e se você mudar o !health por !vida vai afetar sim, você tem que alterar tanto na tag quanto no script '-'

Link para o comentário
Compartilhar em outros sites

  • 0

[05/05/2012 12:41:04] Reloaded talk actions.

 

[05/05/2012 12:41:08] [Error - TalkAction Interface]

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:onSay

[05/05/2012 12:41:08] Description:

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:4: attempt to call global 'getCreatureHealth' (a nil value)

[05/05/2012 12:41:08] stack traceback:

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:4: in function <data/talkactions/scripts/infomanahp.lua:1>

 

Ta dando isso, esta tudo do jeito que você falou para mim no tópico. Quando se usa !health ele da isso.

Link para o comentário
Compartilhar em outros sites

  • 0

[05/05/2012 12:41:04] Reloaded talk actions.

 

[05/05/2012 12:41:08] [Error - TalkAction Interface]

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:onSay

[05/05/2012 12:41:08] Description:

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:4: attempt to call global 'getCreatureHealth' (a nil value)

[05/05/2012 12:41:08] stack traceback:

[05/05/2012 12:41:08] data/talkactions/scripts/infomanahp.lua:4: in function <data/talkactions/scripts/infomanahp.lua:1>

 

Ta dando isso, esta tudo do jeito que você falou para mim no tópico. Quando se usa !health ele da isso.

 

Sabe porque está dando isso? é porque no seu servidor não existe essa função também!

 

Vou te passar a função que eu fiz:

 

lib/functions coloca

 

function getPlayerHealth(cid) -- by vodka
doPlayerSave(cid)
local PlayerInfo = db.getResult("SELECT `health` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
return PlayerInfo:getDataInt("health")
end

 

ai no script ali onde tiver "getCreatureHealth" troca por "getPlayerHealth"

Link para o comentário
Compartilhar em outros sites

  • 0

Fui em data/lib/function

Ficou assim

 

function setPlayerRecoveryKey(cid)
local wd,newrk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",""
for i = 0, 15 do
 local tmp = math.random(1,#wd)
 newrk = newrk..string.sub(wd,tmp,tmp)
end
local newrk = string.gsub(newrk, "(....)", "%1-", 3)
while true do
 local keyexists = db.getResult("SELECT * FROM `accounts` WHERE `key` = '"..newrk.."'")
 if (keyexists:getID() == -1) then break end
 return setPlayerRecoveryKey(cid)
end
return db.executeQuery("UPDATE `accounts` SET `key` = '"..newrk.."' WHERE `id` = "..getPlayerAccountId(cid)) and newrk or false
end
function getPlayerPoints(cid)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
local p = Info:getDataInt("premium_points")
Info:free()
return p
end

function doPlayerAddPoints(cid, points)
local dif = getPlayerPoints(cid) + points
if dif >= 0 then
	db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
	return TRUE
end
return FALSE
end

function doPlayerRemovePoints(cid, points)
local dif = getPlayerPoints(cid) - points
if dif >= 0 then
 db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
	return TRUE
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 doPlayerBuyItem(cid, itemid, count, cost, charges)
return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItem(cid, itemid, count, charges)
end
function doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItemContainer(cid, containerid, itemid, count, charges)
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 isNumeric(str)
return tonumber(str) ~= nil
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 doPlayerWithdrawAllMoney(cid)
return doPlayerWithdrawMoney(cid, getPlayerBalance(cid))
end
function doPlayerDepositAllMoney(cid)
return doPlayerDepositMoney(cid, getPlayerMoney(cid))
end
function doPlayerTransferAllMoneyTo(cid, target)
return doPlayerTransferMoneyTo(cid, target, getPlayerBalance(cid))
end
function playerExists(name)
return getPlayerGUIDByName(name) ~= nil
end
function getTibiaTime()
local minutes, hours = getWorldTime(), 0
while (minutes > 60) do
 hours = hours + 1
 minutes = minutes - 60
end
return {hours = hours, minutes = 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)
setConditionParam(condition, CONDITION_PARAM_TICKS, time == -1 and time or time * 1000)
return doAddCondition(cid, condition)
end
function getPlayerGroupName(cid)
return getGroupInfo(getPlayerGroupId(cid)).name
end
function getPlayerVocationName(cid)
return getVocationInfo(getPlayerVocation(cid)).name
end
function getPromotedVocation(vid)
return getVocationInfo(vid).promotedVocation
end
function doPlayerRemovePremiumDays(cid, days)
return doPlayerAddPremiumDays(cid, -days)
end
function getPlayerMasterPos(cid)
return getTownTemplePosition(getPlayerTown(cid))
end
function getHouseOwner(houseId)
return getHouseInfo(houseId).owner
end
function getHouseName(houseId)
return getHouseInfo(houseId).name
end
function getHouseEntry(houseId)
return getHouseInfo(houseId).entry
end
function getHouseRent(houseId)
return getHouseInfo(houseId).rent
end
function getHousePrice(houseId)
return getHouseInfo(houseId).price
end
function getHouseTown(houseId)
return getHouseInfo(houseId).town
end
function getHouseDoorsCount(houseId)
return table.maxn(getHouseInfo(houseId).doors)
end
function getHouseBedsCount(houseId)
return table.maxn(getHouseInfo(houseId).beds)
end
function getHouseTilesCount(houseId)
return table.maxn(getHouseInfo(houseId).tiles)
end
function getItemNameById(itemid)
return getItemDescriptionsById(itemid).name
end
function getItemPluralNameById(itemid)
return getItemDescriptionsById(itemid).plural
end
function getItemArticleById(itemid)
return getItemDescriptionsById(itemid).article
end
function getItemName(uid)
return getItemDescriptions(uid).name
end
function getItemPluralName(uid)
return getItemDescriptions(uid).plural
end
function getItemArticle(uid)
return getItemDescriptions(uid).article
end
function getItemText(uid)
return getItemDescriptions(uid).text
end
function getItemSpecialDescription(uid)
return getItemDescriptions(uid).special
end
function getItemWriter(uid)
return getItemDescriptions(uid).writer
end
function getItemDate(uid)
return getItemDescriptions(uid).date
end
function getTilePzInfo(pos)
return getTileInfo(pos).protection
end
function getTileZoneInfo(pos)
local tmp = getTileInfo(pos)
if(tmp.pvp) then
 return 2
end
if(tmp.nopvp) then
 return 1
end
return 0
end
function doShutdown()
return doSetGameState(GAMESTATE_SHUTDOWN)
end
function doSummonCreature(name, pos, displayError)
local displayError, cid = displayError or true, doCreateMonster(name, pos, false, false, displayError)
if(not cid) then
 cid = doCreateNpc(name, pos, displayError)
end
return cid
end
function getOnlinePlayers()
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) or getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBESEEN))
end
function isMonster(cid)
return isCreature(cid) and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS
end
function isNpc(cid)
return isCreature(cid) and cid >= AUTOID_NPCS
end
function doPlayerSetExperienceRate(cid, value)
return doPlayerSetRate(cid, SKILL__LEVEL, value)
end
function doPlayerSetMagicRate(cid, value)
return doPlayerSetRate(cid, SKILL__MAGLEVEL, value)
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)
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 getPartyLeader(cid)
local party = getPartyMembers(cid)
if(type(party) ~= 'table') then
 return 0
end
return party[1]
end
function isInParty(cid)
return type(getPartyMembers(cid)) == 'table'
end
function isPrivateChannel(channelId)
return channelId >= CHANNEL_PRIVATE
end
function doPlayerResetIdleTime(cid)
return doPlayerSetIdleTime(cid, 0)
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 getBooleanFromString(input)
local tmp = type(input)
if(tmp == 'boolean') then
 return input
end
if(tmp == 'number') then
 return input > 0
end
local str = string.lower(tostring(input))
return (str == "yes" or str == "true" or (tonumber(str) ~= nil and tonumber(str) > 0))
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 doRemoveThing(uid)
if(isCreature(uid)) then
 return doRemoveCreature(uid)
end
return doRemoveItem(uid)
end
function setAttackFormula(combat, type, minl, maxl, minm, maxm, min, max)
local min, max = min or 0, max or 0
return setCombatFormula(combat, type, -1, 0, -1, 0, minl, maxl, minm, maxm, -min, -max)
end
function setHealingFormula(combat, type, minl, maxl, minm, maxm, min, max)
local min, max = min or 0, max or 0
return setCombatFormula(combat, type, 1, 0, 1, 0, minl, maxl, minm, maxm, min, max)
end
function doChangeTypeItem(uid, subtype)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
local subtype = subtype or 1
return doTransformItem(thing.uid, thing.itemid, subtype)
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 doItemSetActionId(uid, aid)
return doItemSetAttribute(uid, "aid", aid)
end
function getFluidSourceType(itemid)
local item = getItemInfo(itemid)
return item and item.fluidSource or false
end
function getDepotId(uid)
return getItemAttribute(uid, "depotid") or false
end
function getItemDescriptions(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
local item = getItemInfo(thing.itemid)
return {
 name = getItemAttribute(uid, "name") or item.name,
 plural = getItemAttribute(uid, "pluralname") or item.plural,
 article = getItemAttribute(uid, "article") or item.article,
 special = getItemAttribute(uid, "description") or "",
 text = getItemAttribute(uid, "text") or "",
 writer = getItemAttribute(uid, "writer") or "",
 date = getItemAttribute(uid, "date") or 0
}
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
--[[if(precision) then
 return weight
end
local t = string.explode(tostring(weight), ".")
if(table.maxn(t) == 2) then
 return tonumber(t[1] .. "." .. string.sub(t[2], 1, 2))
end]]--
return weight
end
function getItemWeaponType(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
return getItemInfo(thing.itemid).weaponType
end
function getItemRWInfo(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
local item, flags = getItemInfo(thing.itemid), 0
if(item.readable) then
 flags = 1
end
if(item.writable) then
 flags = flags + 2
end
return flags
end
function getItemLevelDoor(itemid)
local item = getItemInfo(itemid)
return item and item.levelDoor or false
end
function isContainer(uid)
local thing = getThing(uid)
return thing.uid > 0 and type(thing.items) == 'table' and not table.empty(thing.items)
end
function isItemStackable(itemid)
local item = getItemInfo(itemid)
return item and item.stackable or false
end
function isItemRune(itemid)
local item = getItemInfo(itemid)
return item and item.type == ITEM_TYPE_RUNE or false
end
function isItemDoor(itemid)
local item = getItemInfo(itemid)
return item and item.type == ITEM_TYPE_DOOR or false
end
function isItemContainer(itemid)
local item = getItemInfo(itemid)
return item and item.group == ITEM_GROUP_CONTAINER or false
end
function isItemFluidContainer(itemid)
local item = getItemInfo(itemid)
return item and item.group == ITEM_GROUP_FLUID or false
end
function isItemMovable(itemid)
local item = getItemInfo(itemid)
return item and item.movable or false
end
function isCorpse(uid)
local thing = getThing(uid)
if(thing.itemid < 100) then
 return false
end
local item = getItemInfo(thing.itemid)
return item and item.corpseType ~= 0 or false
end
function getContainerCapById(itemid)
local item = getItemInfo(itemid)
if(not item or item.group ~= 2) then
 return false
end
return item.maxItems
end
function getMonsterAttackSpells(name)
local monster = getMonsterInfo(name)
return monster and monster.attacks or false
end
function getMonsterHealingSpells(name)
local monster = getMonsterInfo(name)
return monster and monster.defenses or false
end
function getMonsterLootList(name)
local monster = getMonsterInfo(name)
return monster and monster.loot or false
end
function getMonsterSummonList(name)
local monster = getMonsterInfo(name)
return monster and monster.summons or false
end
function choose(...)
local arg = {...}
return arg[math.random(1, table.maxn(arg))]
end
function getPlayerHealth(cid) -- by vodka
doPlayerSave(cid)
local PlayerInfo = db.getResult("SELECT `health` FROM `players` WHERE `id` = " .. getPlayerGUID(cid))
return PlayerInfo:getDataInt("health")
end

 

 

E esta dando o mesmo erro...

Editado por Koama
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Vodkart pela ajuda, continue assim a tempos que não vejo alguém disposto como você... Já devia ter nome de COLABORADOR.

 

Script Final ficou assim:

infomanahp.lua

(Alteração feita em ~> if words == "!health" then PARA ~> if words == "!vida" then)

 

---- System By Vodkart
function onSay(cid, words, param, channel)
if words == "!vida" then
if param == "" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Minha Vida atual: [" .. getPlayerHealth(cid) .. "/" .. getCreatureMaxHealth(cid) .. "]")
return true
end
local player = getPlayerByNameWildcard(param)
if(not player)then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true
elseif not isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ser premium.") return true
end
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vida de "..getCreatureName(player).." Atual: ["..getPlayerHealth(player).."/" .. getCreatureMaxHealth(player) .. "]")
elseif words == "!mana" then
if param == "" then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Minha Mana atual: [" .. getCreatureMana(cid) .. "/" .. getCreatureMaxMana(cid) .. "]")
return true
end
local player = getPlayerByNameWildcard(param)
if(not player)then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true
elseif not isPremium(cid) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa ser premium.") return true
end
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mana de " ..getCreatureName(player).. " Atual: ["..getCreatureMana(player).."/" .. getCreatureMaxMana(player) .. "]")
end
return true
end

 

Talkactions.XML

 

<talkaction words="!mana;!vida" event="script" value="infomanahp.lua"/>

 

Tranks

 

Creditos total: VODKART

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...