Ir para conteúdo

Featured Replies

Postado

Eu estava tentando por um limite de vocação em um script que acrescenta bônus de hp, só que sempre da erro, e meus conhecimentos em lua beiram a nada.

Alguém pode dar uma luz pondo esse limite de vocação, e ver se o limite de uso por dia está certo?

 

Segue o script:

local storage = 80777
local vocs = {9,10,11,12}
function onUse(cid, item, frompos, item2, topos)
local value = getCreatureMaxHealth(cid) / 10
	if getPlayerLevel(cid) >= 8 and getPlayerVocation(cid, vocs) then
	 setCreatureMaxHealth(cid, math.floor(getCreatureMaxHealth(cid)+ value))
	doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
	doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!")
	doCreatureSetStorage(cid, storage, math.max(0, getCreatureStorage(cid, storage)) + 1)
	doSendMagicEffect(getCreaturePosition(cid), 30)
	doRemoveItem(item.uid, 1)
	end
	doPlayerSendTextMessage(cid, 27, "You have received "..it[2].." "..getItemNameById(it[1])..". You can take your reward in "..time.." minutes.")
	setPlayerStorageValue(cid, storage, os.time() + time * 60)
	else
	return doPlayerSendCancel(cid, "You have already received your reward for today.")
	elseif getPlayerVocation(cid, vocs) = false
	return doPlayerSendCancel(cid, "Your vocation don't use it.")
	return true
end

Agradeço desde já.

Postado

Qual é o erro?

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
  • 1 month later...
Postado
  • Autor

Na verdade o código é esse:

 

Spoiler

local storage = 80777
function onUse(cid, item, frompos, item2, topos)
local value = getCreatureMaxHealth(cid) / 10
if getPlayerLevel(cid) >= 8 then
setCreatureMaxHealth(cid, math.floor(getCreatureMaxHealth(cid)+ value))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!")
doCreatureSetStorage(cid, storage, math.max(0, getCreatureStorage(cid, storage)) + 1)
doSendMagicEffect(getCreaturePosition(cid), 30)
doRemoveItem(item.uid, 1)
end
doPlayerSendTextMessage(cid, 27, "You have received "..it[2].." "..getItemNameById(it[1])..". You can take your reward in "..time.." minutes.")
setPlayerStorageValue(cid, storage, os.time() + time * 60)
else
return doPlayerSendCancel(cid, "You have already received your reward for today.")
end
return true
end

 

 

E está com esse erro:  input:14: 'end' expected (to close 'function' at line 2) near 'else'

O que mandei antes foi uma tentativa minha fracassada de corrigir o script e acrescentar um limite de vocações.

 

Gostaria que alguém experiente o fizesse por mim, corrigir esse erro e por o limite de vocação, e verificar se também está com o limite de uso de apenas umas vez por dia.

Editado por gabriel28 (veja o histórico de edições)

Postado

Tente assim:
 

function onUse(cid, item, frompos, item2, topos)
local storage = 80777
local value = getCreatureMaxHealth(cid) / 10
if getPlayerLevel(cid) >= 8 then
setCreatureMaxHealth(cid, math.floor(getCreatureMaxHealth(cid)+ value))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!")
doCreatureSetStorage(cid, storage, math.max(0, getCreatureStorage(cid, storage)) + 1)
doSendMagicEffect(getCreaturePosition(cid), 30)
doRemoveItem(item.uid, 1)
else
return doPlayerSendCancel(cid, "You have already received your reward for today.")
end
return true
end

 

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Postado
  • Autor
21 minutos atrás, luangop disse:

Tente assim:
 


function onUse(cid, item, frompos, item2, topos)
local storage = 80777
local value = getCreatureMaxHealth(cid) / 10
if getPlayerLevel(cid) >= 8 then
setCreatureMaxHealth(cid, math.floor(getCreatureMaxHealth(cid)+ value))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!")
doCreatureSetStorage(cid, storage, math.max(0, getCreatureStorage(cid, storage)) + 1)
doSendMagicEffect(getCreaturePosition(cid), 30)
doRemoveItem(item.uid, 1)
else
return doPlayerSendCancel(cid, "You have already received your reward for today.")
end
return true
end

 

 

 

Ainda não testei, mas tem como por só pra knight usar?

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo