Postado Maio 20, 2021 4 anos Salve galera do TK venho aqui em busca de ajuda para arrumar esse sistema de boss diário que eu estou tentando implementar no meu servidor. O que eu estou tentando fazer é o seguinte: 1º O player vai fazer uma task para matar 1000 Dragons, ao matar essa quantidade de dragons vai receber um Storage do NPC. 2º Com o Storage que o player vai receber do NPC ele vai ter acesso a um teleport dentro da cave de Dragon que leva para uma sala com um piso que só vai ser acessado a cada 20 horas. 3º Ao acessar esse piso o player vai matar matar um Boss e ao matar esse Boss ele vai receber um storage que irá durar 20 horas (Caso o player tenha esse storage ele NÃO vai acessar o piso do 2º ponto) 4º Na sala do Boss terá um Baú que ao ser aberto o player receberá uma quantia de dinheiro + um Storage que dará acesso a um atalho para a sala do piso de acesso do 2º ponto. Após liberar o atalho do 4º ponto o player terá full acesso a esse Boss que poderá ser feito a cada 20 horas. Tenho alguns scripts que eu estava editando aqui vou deixa-los abaixo. Movements: Spoiler dragon.lua --- Piso de acesso ao boss (2º ponto) Spoiler function onStepIn(cid, item, position, fromPosition) local pos = {x = 5030, y = 5002, z = 15} local config = { msgDenied = "Voce so pode lutar contra o Dafir a cada 24 horas.", msgWelcome = "Boa Sorte!." } if getPlayerStorageValue(cid, 52001) - os.time() >= 0 then doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 10) end return true end movements.xml Spoiler <movevent type="StepIn" actionid="51001" event="script" value="dragon.lua"/> Creaturescript: Spoiler dragon.lua -- Storage que irá receber ao derrotar o boss (com tempo) Spoiler function onKill(cid, target) config = { NickBoss ="Darfir", storageAcess = 51001, tempo = 20 } if isMonster(target) then if getCreatureName(target) == config.NickBoss then setPlayerStorageValue(cid, config.storageAcess, config.tempo*60*60+os.time()) end return true end end function onLogin(cid) registerCreatureEvent(cid, "pdragon") return true end login.lua Spoiler registerCreatureEvent(cid, "pdragon") creaturescripts.xml Spoiler <event type="kill" name="pdragon" event="script" value="dragon.lua"/> Actions: Spoiler dragon.lua -- Porta de acesso ao atalho do 4º ponto Spoiler function onUse(cid, item, frompos, item2, topos) local storage = 51002 if getPlayerStorageValue (cid, storage) > 0 then doTeleportThing(cid,topos) doTransformItem(item.uid, 1256) else return doPlayerSendTextMessage(cid, 23, "Para passar nessa porta voce precisa derrotar o poderoso Darfir.") end return true end baudragon.lua -- Bau que ficará na sala do boss que dara item + storage de acesso a porta de atalho Spoiler local itemid, count = 2152, 50 -- ItemID, count local storage = 51002 function onUse(cid, item, fromPosition, itemEx, toPosition) if getCreatureStorage(cid, storage) == -1 then doPlayerSendTextMessage(cid, 23, "Voce recebeu 50 Platinum Coins.") doPlayerAddItem(cid, itemid, count) doCreatureSetStorage(cid, storage, 1) else doPlayerSendTextMessage(cid, 23, "O bau esta vazio.") return true end return true end Actions.xml Spoiler <action uniqueid="52001" event="script" value="dragon.lua"/> <action uniqueid="52002" event="script" value="baudragon.lua"/> Nota: Aparentemente está tudo Ok, mas o problema é que o storage que o boss está dando ao morrer ele não está saindo do player impedindo que o player volte até a sala do boss depois de 20 horas. Nota 2: Eu ainda não tenho o NPC da task do 1º ponto, se alguém disponibilizar pra mim darei REP++ Nota 3: Uso TFS 0.4 Espero que dê pra entender o que preciso, tentei me expressar e organizar da melhor forma. ♥ Editado Maio 20, 2021 4 anos por Sivermisty (veja o histórico de edições)
Postado Maio 20, 2021 4 anos Solução Mano, uma dica que dou pra todo mundo que está aprendendo programação/script... aprenda usar identação. Ajuda muito hehe. movement: Spoiler function onStepIn(cid, item, position, fromPosition) local pos = {x = 5030, y = 5002, z = 15} local config = { msgDenied = "Voce so pode lutar contra o Dafir a cada 20 horas.", msgWelcome = "Boa Sorte!" } if getPlayerStorageValue(cid, 52001) >= os.time() then doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 10) end return true end Creaturescript: Spoiler function onKill(cid, target) config = { NickBoss ="Darfir", storageAcess = 51001, tempo = 20 -- em horas. } if isMonster(target) then if getCreatureName(target) == config.NickBoss then setPlayerStorageValue(cid, config.storageAcess, (((config.tempo*60)*60)+os.time())) end return true end end function onLogin(cid) registerCreatureEvent(cid, "pdragon") return true end Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Maio 20, 2021 4 anos Autor 19 minutos atrás, luangop disse: Mano, uma dica que dou pra todo mundo que está aprendendo programação/script... aprenda usar identação. Ajuda muito hehe. movement: Mostrar conteúdo oculto function onStepIn(cid, item, position, fromPosition) local pos = {x = 5030, y = 5002, z = 15} local config = { msgDenied = "Voce so pode lutar contra o Dafir a cada 20 horas.", msgWelcome = "Boa Sorte!" } if getPlayerStorageValue(cid, 52001) >= os.time() then doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 10) end return true end Creaturescript: Mostrar conteúdo oculto function onKill(cid, target) config = { NickBoss ="Darfir", storageAcess = 51001, tempo = 20 -- em horas. } if isMonster(target) then if getCreatureName(target) == config.NickBoss then setPlayerStorageValue(cid, config.storageAcess, (((config.tempo*60)*60)+os.time())) end return true end end function onLogin(cid) registerCreatureEvent(cid, "pdragon") return true end Caraca mano, obrigado pela dica. Tudo funcionou certinho, marquei como solução e te dei um Gostei bem gostoso (com todo respeito) auhdsud. ♥
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.