Postado Outubro 1, 2017 7 anos Autor 13 minutos atrás, antharaz disse: A bp que some e a que aparece tem o mesmo id? Sim, por exemplo: coloca uma azul vazia no coal basin ali e aparece uma azul na table ali na frente do jogador com a recompensa dentro.
Postado Outubro 1, 2017 7 anos @dimmebag Mas ae o player pode pegar a nova bag, tirar o premio, depois colocar ela vazia denovo e fazer isso 1000x... mas vou dar um jeito de não colocar a mesma bag toda hora. Você mencionou que o npc é fácil para qlqr um, então fazer o globalevents com o teleport também será, postarei só o action da alavanca: Spoiler local config = { pos = { bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca }, ids = {1988,2245,5467}, premio = { {id = 2152, minimo = 1, maximo = 10}, {id = 2229, minimo = 1, maximo = 20} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local bp = getThingFromPos(config.pos.bp_vazia) local usada = getItemAttribute(bp.uid, 'usada') if usada or not isInArray(config.ids,bp.itemid) then doSendMagicEffect(getThingPos(cid),2) return false end doItemSetAttribute(bp.uid, 'usada', 1) doTeleportThing(bp.uid,config.pos.bp_com_premio) for _,t in pairs(config.premio) do doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo)) end return true end
Postado Outubro 1, 2017 7 anos Autor @antharaz Não tinha pensado nisso. Mas no caso do globalevent, pra quem não entende nada fica complicado... Pois envolve criar o TP no lugar exato, mandar o broadcast e também tem a parte do tempo de duração do evento e de kickar os jogadores pra fora do lugar do evento após o tempo.
Postado Outubro 1, 2017 7 anos @dimmebag Action: Spoiler local config = { pos = { bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca }, ids = {1988,2245,5467}, premio = { {id = 2152, minimo = 1, maximo = 10}, {id = 2229, minimo = 1, maximo = 20} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local bp = getThingFromPos(config.pos.bp_vazia) local usada = getItemAttribute(bp.uid, 'usada') if usada or not isInArray(config.ids,bp.itemid) then doSendMagicEffect(getThingPos(cid),2) return false end doItemSetAttribute(bp.uid, 'usada', 1) doTeleportThing(bp.uid,config.pos.bp_com_premio) for _,t in pairs(config.premio) do doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo)) end return true end Globalevent: Spoiler local config = { pos = { teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO }, id_tp = 1387, --id do teleport msg = { comecou = "Começou o evento negada.", --MENSAGEM QND COMEÇA acabou = "Terminou o evento negada." --MENSAGEM QND TERMINA }, tempo = 20 --tempo de duração em minutos } function onThink(interval) doBroadcastMessage(config.msg.comecou) local teste = doCreateTeleport(config.id_tp, config.pos.teleporta_para, config.pos.teleport) addEvent(function() doRemoveItem(getTileItemById(config.pos.teleport, config.id_tp).uid) doBroadcastMessage(config.msg.acabou) for _,player in pairs(getOnlinePlayers()) do if isInArea(getThingPos(cid),config.pos.superior_esquerdo,config.pos.inferior_direito) then doTeleportThing(cid, getPlayerMasterPos(cid)) end end end, config.tempo*60000) return true end As pos do canto superior esquerdo e inferior direito tem que formar uma área aonde os players estarão e terão que ser seleportados, ex:
Postado Outubro 1, 2017 7 anos Autor @antharaz Vou configurar e testar aqui. 38 minutos atrás, antharaz disse: @dimmebag Action: Ocultar conteúdo local config = { pos = { bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca }, ids = {1988,2245,5467}, premio = { {id = 2152, minimo = 1, maximo = 10}, {id = 2229, minimo = 1, maximo = 20} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local bp = getThingFromPos(config.pos.bp_vazia) local usada = getItemAttribute(bp.uid, 'usada') if usada or not isInArray(config.ids,bp.itemid) then doSendMagicEffect(getThingPos(cid),2) return false end doItemSetAttribute(bp.uid, 'usada', 1) doTeleportThing(bp.uid,config.pos.bp_com_premio) for _,t in pairs(config.premio) do doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo)) end return true end Globalevent: Ocultar conteúdo local config = { pos = { teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO }, id_tp = 1387, --id do teleport msg = { comecou = "Começou o evento negada.", --MENSAGEM QND COMEÇA acabou = "Terminou o evento negada." --MENSAGEM QND TERMINA }, tempo = 20 --tempo de duração em minutos } function onThink(interval) doBroadcastMessage(config.msg.comecou) local teste = doCreateTeleport(config.id_tp, config.pos.teleporta_para, config.pos.teleport) addEvent(function() doRemoveItem(getTileItemById(config.pos.teleport, config.id_tp).uid) doBroadcastMessage(config.msg.acabou) for _,player in pairs(getOnlinePlayers()) do if isInArea(getThingPos(cid),config.pos.superior_esquerdo,config.pos.inferior_direito) then doTeleportThing(cid, getPlayerMasterPos(cid)) end end end, config.tempo*60000) return true end As pos do canto superior esquerdo e inferior direito tem que formar uma área aonde os players estarão e terão que ser seleportados, ex: Nessa parte aqui, tem a config ali onde o tp aparece, para onde leva mas não teria que ter ali tambem uma posição pra levar quando encerrar? E tem também o fator de configuração dos horarios pra aparecer o tp que no caso são dois (ex: 14h e 21h)... teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO Editado Outubro 1, 2017 7 anos por dimmebag (veja o histórico de edições)
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.