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?
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian

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?
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

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
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian

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 Dezembro 2 por gabriel28
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

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?
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian

Tá funfando. Agora só ta com esse problema na hora de tirar o bônus. Creio que seja porque está dando o bônus em porcentagem, eu testei com valor exato e funcionou certo.
info
Grupo: Herói
Registrado: 07/03/16
Posts: 1.4k
Reputação: +385
Gênero: Masculino

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.
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

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 Dezembro 2 por DuuhCarvalho
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody
substitui o script por esse:
function onUse(cid, item, frompos, item2, topos)local storage = 80777local storage2 = 80888local vocation = {4,8,12} -- id da vocation knight (ou outra)local value = getCreatureMaxHealth(cid) / 10if isInArray(vocation, getPlayerVocation(cid)) then if os.time() > getPlayerStorageValue(cid, storage) then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+ value) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) setPlayerStorageValue(cid, storage, os.time()+ 1*24*60*60) setPlayerStorageValue(cid, storage2, 1) doPlayerSendTextMessage(cid, 22, "You add 10% hp to you health!") doSendMagicEffect(getCreaturePosition(cid), 30) doRemoveItem(item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já usou esse item hoje, tente novamente em 24 horas.") endelse doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item exclusivo para knights.")endreturn trueende coloca esse onlogin em creaturescript:
function onLogin(cid)local storage2 = 80888local health = getCreatureMaxHealth(cid)*0.10 if getPlayerStorageValue(cid, storage2) >= 1 then setPlayerStorageValue(cid, storage2, 0) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) - health) doRemoveCreature(cid) end return trueendnão testei, vê se funciona ai.