Postado Fevereiro 7, 2022 3 anos Autor Em 04/02/2022 em 10:02, luanluciano93 disse: conseguiu? Oi boa tarde, eu tava fora esses dias. Vou tentar agora, caso n consiga voce pode me guiar ? Em 04/02/2022 em 10:02, luanluciano93 disse: conseguiu? Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar ? 26 minutos atrás, deza disse: Oi boa tarde, eu tava fora esses dias. Vou tentar agora, caso n consiga voce pode me guiar ? Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar ? Na vdd nao deu muit certo, nao esta healando =[
Postado Fevereiro 7, 2022 3 anos Autor 14 minutos atrás, luanluciano93 disse: Coloque ai o código de como ficou ... Citar -- CONFIGURAÇÕES aurastr = 9987 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 1000 -- chance de curar em cada volta da aura, em porcentagem quantheal = 20 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 10000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 66 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 14 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) local tab = { [9] = 215, -- [vocationID] = número da cor do texto animado [10] = 210, [11] = 180, [12] = 34 } function ariseText(cid) local texts = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."} doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)]) if isPlayer(cid) then addEvent(ariseText, 600, cid) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) doRemoveItem(item.uid,1) if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Voce desligou a Aura!") doPlayerSendTextMessage(cid,18,"Voce desligou a Aura!") else doPlayerSendCancel(cid,"Voce ligou a Aura!") doPlayerSendTextMessage(cid,18,"Voce ligou a Aura!") setPlayerStorageValue(cid, aurastr, 2) ariseText(cid) end return TRUE end
Postado Fevereiro 8, 2022 3 anos 7 horas atrás, deza disse: Fiz oq vc disse, deu certo, porem quando desligo a aura que e por item, os símbolos não param de sair, poderia me ajudar ? Se você perceber, a função ariseText(cid) cria uma repetição, que dentro da função "chama" ela novamente ... O problema é que quando "chama" ela novamente não existe nunhuma checagem, por isso ela fica infinita ... Como dá para ver no script, ela deve continuar apena quando o valor da storage AURASTR estiver 2, portanto você deve fazer essa verificação para continuar a repetição ... function ariseText(cid) local texts = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."} doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)]) if isPlayer(cid) then addEvent(ariseText, 600, cid) end return true end Onde existe a verificação se ele é um jogador, coloque a verificação da storage ... if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then A função function ariseText(cid) pode ser local, pois ela só funciona dentro desse script. local function ariseText(cid) Todos os return TRUE ou return FALSE são gambiarras, o correto é minúsculos. As configurações do script tbem devem ser locais, de preferência em uma tabela local tabelaX = {} STYLLER OT 2022
Postado Fevereiro 8, 2022 3 anos Autor 15 minutos atrás, luanluciano93 disse: Se você perceber, a função ariseText(cid) cria uma repetição, que dentro da função "chama" ela novamente ... O problema é que quando "chama" ela novamente não existe nunhuma checagem, por isso ela fica infinita ... Como dá para ver no script, ela deve continuar apena quando o valor da storage AURASTR estiver 2, portanto você deve fazer essa verificação para continuar a repetição ... function ariseText(cid) local texts = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."} doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)]) if isPlayer(cid) then addEvent(ariseText, 600, cid) end return true end Onde existe a verificação se ele é um jogador, coloque a verificação da storage ... if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then A função function ariseText(cid) pode ser local, pois ela só funciona dentro desse script. local function ariseText(cid) Todos os return TRUE ou return FALSE são gambiarras, o correto é minúsculos. As configurações do script tbem devem ser locais, de preferência em uma tabela local tabelaX = {} Sinceramente, dessa vez não entendi quase nada =[ Eu não sei quase nada, to tentando seguir as ordens que vc esta ditando. eu teria que trocar o if isPlayer(cid) then por if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then e isso ? e essa parte aqui? eu adiciono onde ? local function ariseText(cid) Eu tentei fazer +/- oque vc disse, n deu erro no console, porem nao esta ativando ! Citar -- CONFIGURAÇÕES aurastr = 9987 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 1000 -- chance de curar em cada volta da aura, em porcentagem quantheal = 20 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 10000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 66 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 14 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) local tab = { [9] = 215, -- [vocationID] = número da cor do texto animado [10] = 210, [11] = 180, [12] = 34 } function ariseText(cid) local texts = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."} doSendAnimatedText(getThingPos(cid), texts[math.random(1, #texts)], tab[getPlayerVocation(cid)]) if isPlayer(cid) and getPlayerStorageValue(cid, aurastr) == 2 then addEvent(ariseText, 600, cid) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) doRemoveItem(item.uid,1) if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Voce desligou a Aura!") doPlayerSendTextMessage(cid,18,"Voce desligou a Aura!") else doPlayerSendCancel(cid,"Voce ligou a Aura!") doPlayerSendTextMessage(cid,18,"Voce ligou a Aura!") setPlayerStorageValue(cid, aurastr, 2) local function ariseText(cid) end end return true end
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.