Ir para conteúdo
  • Cadastre-se

(Resolvido)Dúvida na função


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Alguém pode me ajudar a modificar essa função/lib que tenho e colocar um contador de time nela?

function getPlayerExhaust(player,number,time)

now = os.time()
before = getPlayerStorageValue(player,number)

exhaust = os.difftime(now,before)

if before == -1 then
setPlayerStorageValue(player,number,now)
return -1
else
if exhaust >= time then
setPlayerStorageValue(player,number,now)
return -1
else
return 1
end
end
end

Eu queria saber como eu conseguiria fazer isso

Tipo para que eu colocasse em outra action

e aparecesse o time do exhaust

doPlayerSendTextMessage(cid,22,"Espere "..exhaustime.." segundos.")

Link para o post
Compartilhar em outros sites

e aparecesse o time do exhaust

 
doPlayerSendTextMessage(cid, 22, "Espere "..getPlayerStorageValue(cid, storage) - os.time().." segundos.")

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

 

doPlayerSendTextMessage(cid, 22, "Espere "..getPlayerStorageValue(cid, storage) - os.time().." segundos.")

Bem, eu coloquei aqui, nao sei se isso e um problema da funcao, mas.. apareceu essa mensagem no script

10:13 Espere -1418116409 segundos.

Isso e algum problema do script? ou error na funcao?, des de ja, grato pela atencao.

Link para o post
Compartilhar em outros sites
  • Solução

function getPlayerExhaust(player, number)
local before = getPlayerStorageValue(player,number)
exhaust = (before - os.time()) > 0 and (before - os.time()) or 0
return exhaust
end

pronto, ele retorna o exhaust que o player tem naquele determinado storage. 

De quebra ainda fiz uma função pra setar o exhaust no storage

function setPlayerExhaust(player, number, time)
local before = getPlayerStorageValue(player,number)
a = before > os.time() and before or os.time()
return setPlayerStorageValue(player, number, a + time)
end

Pra escrever em uma action é só fazer:

 

doPlayerSendTextMessage(cid, 22, "Espere ".. getPlayerExhaust(cid, >STORAGE VEM AQUI<).." segundo(s).")
Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Já existe as funçoes de exhaust.

 

 

exhaust.get(cid, storage) < Retorna os segundos de exhaust.
exhaust.set(cid, storage, value) < Seta um valor de segundos como exhaust.

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

realmente ja existe mas saca só uma coisa:

//lua-made functions
	doPlayerGiveItem(cid, itemid, amount, subType)
	doPlayerTakeItem(cid, itemid, amount)
	doPlayerBuyItem(cid, itemid, count, cost, charges)
	doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
	doPlayerSellItem(cid, itemid, count, cost)
	doPlayerWithdrawMoney(cid, money)
	doPlayerDepositMoney(cid, money)
	comparePos(pos, posEx)
	isInRange(pos, fromPos, toPos)
	getArea(pos, rangeX, rangeY)
	isPremium(cid)
	getMonthDayEnding(day)
	getMonthString(m)
	getArticle(str)
	isNumber(str)
	getDistanceBetween(firstPosition, secondPosition)
	doPlayerAddAddons(cid, addon)
	isSorcerer(cid)
	isDruid(cid)
	isPaladin(cid)
	isKnight(cid)
	isRookie(cid)
	getDirectionTo(pos, posEx)
	getCreatureLookPosition(cid)
	getPosByDir(fromPosition, direction[, size])
	doPlayerWithdrawAllMoney(cid)
	doPlayerDepositAllMoney(cid)
	doPlayerTransferAllMoneyTo(cid, target)
	doPlayerAddLevel(cid, amount, round)
	doPlayerAddMagLevel(cid, amount)
	doPlayerAddSkill(cid, amount)
	playerExists(name)
	getTibiaTime()
	doWriteLogFile(file, text)
	isInArea(pos, fromPos, toPos)
	getExperienceForLevel(lv)
	doMutePlayer(cid, time)
	getPlayerGroupName(cid)
	getPlayerVocationName(cid)
	getPromotedVocation(vid)
	doPlayerRemovePremiumDays(cid, days)
	getPlayerMasterPos(cid)
	getHouseOwner(houseId)
	getHouseName(houseId)
	getHouseEntry(houseId)
	getHouseRent(houseId)
	getHousePrice(houseId)
	getHouseTown(houseId)
	getHouseTilesCount(houseId)
	getItemNameById(itemid)
	getItemPluralNameById(itemid)
	getItemArticleById(itemid)
	getItemName(uid)
	getItemPluralName(uid)
	getItemArticle(uid)
	getItemText(uid)
	getItemSpecialDescription(uid)
	getItemWriter(uid)
	getItemDate(uid)
	getTilePzInfo(pos)
	getTileZoneInfo(pos)
	debugPrint(text)
	doShutdown()
	doSummonCreature(name, pos)
	getOnlinePlayers()
	getPlayerByName(name)
	isPlayerGhost(cid)
	getPlayerFrags(cid)
	getPartyLeader(cid)
	isInParty(cid)
	isPrivateChannel(channelId)
	doConvertIntegerToIp(int, mask)
	doConvertIpToInteger(int, mask)
	getBooleanFromString(str)
	doCopyItem(item, attributes)
	exhaustion.check(cid, storage)
	exhaustion.get(cid, storage)
	exhaustion.set(cid, storage, time)
	exhaustion.make(cid, storage, time)
	table.find(table, value)
	table.isStrIn(txt, str)
	table.countElements(table, item)
	table.getCombinations(table, num)
	string.split(str)
	string.trim(str)
	string.explode(str, sep)



Tá lendo o lua-made ali em cima? Essas são as funções que não existem na source e foram criadas em alguma lib do server, isso implica que não é todo server que vai ter ela, além do mais desconhecemos o propósito do player ou a versão do servidor que ele está utilizando (funções do tipo lua made surgiram por volta de 8.1+) então acho que é mais apropriado mostrar pra ele onde ele errou doque apresentar algo novo que talvez não vá ser utilizável. Mas em todo caso foi muito bem lembrado falar dessas funções.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

A lib nao funcionou corretamente

e sim a versao utilizada e 7.80

no distro ele n ao seta a storage

Aparece isso no distro do servidor, quando executo a action

GetPlayerStorageValue : player not found

Link para o post
Compartilhar em outros sites

falha minha, agr deve ir.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Agora no caso, onde posso configurar a quantidade de tempo?, funcionou mas ele so mostra para esperar 0 segundos

O time dele esta funcionando normal, eu coloco 5 segundos e funciona

mas ja no script manda esperar 0 segundos, sempre.

Link para o post
Compartilhar em outros sites

Agora que você já adicionou na lib vc só usa as duas funções pra pegar o exhaust, lembra que o number tem que ser o mesmo pra dar certo.
Você usa uma spell e coloca um 
setPlayerExhaust(cid, 49281, 70) -- adiciona 70 segundos de exhaust

Depois pra usar dnv vc faz um 

if getPlayerExhaust(cid, 49281) == 0 then
{
Solta a spell dnv

}

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo