Ir para conteúdo
  • 0

Ajuda com esse script.


gabriel28

Pergunta

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 = 80777local 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 trueend

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
22 horas atrás, DuuhCarvalho disse:

substitui o script por esse

 

 

 

É pra criar um arquivo .lua pra esse creaturescript ou por no login.lua? E Qual é a tag que tenho que por no xml do creaturescript?

Link para o comentário
Compartilhar em outros sites

  • 0
35 minutos atrás, gabriel28 disse:

 

É pra criar um arquivo .lua pra esse creaturescript ou por no login.lua? E Qual é a tag que tenho que por no xml do creaturescript?

primeiro substitui o script, depois vai em creaturescripts/scripts/login.lua e antes do ultimo return true coloca isso:

 

local storage22 = 80888local health = getCreatureMaxHealth(cid)*0.10if getPlayerStorageValue(cid, storage22) >= 1 then	setPlayerStorageValue(cid, storage22, 0)	setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - health)	doRemoveCreature(cid)end

 

Link para o comentário
Compartilhar em outros sites

  • 0
18 minutos atrás, DuuhCarvalho disse:

primeiro substitui o script, depois vai em creaturescripts/scripts/login.lua e antes do ultimo return true coloca isso:

 

 

 

Cara, ta indo bem. Tive que tirar a parte do doRemoveCreature(cid), porque sempre na primeira tentativa de logar com o char que tinha usado o item, começava a dar erro em todos os creaturescripts que tinha registrado, ai tinha que dar cancel e logar de novo. Dai removi isso e os erros pararam.

 

Só que, além de remover o bônus, sempre ta removendo um pouco a mais da life original. Quando desloga e reloga, o bônus permanesse, mas dai usa uma spell ou item de heal e o bônus some mas leva um pouco a mais do hp do personagem, como eu disse antes.

Tipo, testei num char com hp de 1360 no total, usei o item, deu o bônus, desloguei e reloguei, ficou o bônus mas usei o spell de heal, o bônus sumiu, mas o hp total ficou 1346. Saiu o bônus mas tirou 14 de hp a mais.

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

  • 0
Em 01/12/2016 at 20:47, gabriel28 disse:

Consegui essa parte, só tá faltando remover o bônus quando o char desloga. =/

 

Aí já é outra questão. 

O script funcionou como deveria?

Link para o comentário
Compartilhar em outros sites

  • 0

Existe uma razão matemática para o erro, que é :

100+10%=110.

110-10%=99. 

10% de 110 é  igual a 11.

 

Pra resolver esse problema teria que marcar o lífe do player em uma store para que o player volte ao valor correto.

 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Poccnn disse:

Existe uma razão matemática para o erro, que é :

100+10%=110.

110-10%=99. 

10% de 110 é  igual a 11.

 

Pra resolver esse problema teria que marcar o lífe do player em uma store para que o player volte ao valor correto.

 

 

exatamente o que pensei kk, estava fazendo aqui..

mas se já tiver feito ótimo 

 

o único problema com a storage é que se o player upar e aumentar a hp quando voltar o hp para o valor da storage, o player vai ficar com o hp menor do q deveria

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

×
×
  • Criar Novo...