Ir para conteúdo
  • Cadastre-se

(Resolvido)(Pedido) Item que dê acesso


Ir para solução Resolvido por andersonwill,

Posts Recomendados

Então o tópico já diz tudo...
Queria um script que fizesse o player ter acesso a tal área por tantos dias através de tal item.....(3 dias,10 dias e 30 dias) 
Estou implementando um sistema de "Manapool" e na entrada dela teria esse "tile" que para passar teria que usar o tal item.. 
Venderia 3 desses items, de 3 dias, 10 dias e 30...
OBS: Assim que finalizasse o tempo, ele voltaria no templo imediatamente!
Gratoo..
 

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Vou ver aqui e caso eu consiga eu te envio, eu acho que a parte do item  é facil n sei quanto a parte do tempo, e no caso tem que tar com o item na mao ou tem que usar o item? é pra alguma area vip? que se for o caso manda ai o script...

NEW SERVER PROJECT STARTED

Prisma Server

VQV

Link para o post
Compartilhar em outros sites

Pode tirar base de uma area vip, porem, não é, é uma area de treinar ml, um sistema diferente... Item na mão! 

TFS 0.4

Link para o post
Compartilhar em outros sites

Eu não entendi nada  :huh:, o que você quer mesmo ??

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

Para ter esse aceso precisaria estar usando o item ? Ou seria você usar um item e ganhar um acesso durante X dias ?

 

PS: Se tiver que estar usando o item ele pode passar pelo tile e dar o item para um amigo.

Link para o post
Compartilhar em outros sites

Seguinte, estou criando um local que para poder entrar terá que usar um item. (ex: bersek potion)
Esse item, ao dar use nele, ele iria sumir!
Adicionaria 3 dias de acesso.

Ao acabar esses dias, o player seria "chutado" para o templo imediatamente. Por quê tem um sistema que só volta pro templo se o cara deslogar e logar novamente.
 

Deu pra entender?

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Sim deu para entender, já joguei RpgBrasil, nos mundo de Citeron, Danae, então sei muito bem como funciona todos os sistemas que você está pedindo aqui no fórum. Irei verificar se consigo fazer o script.

Link para o post
Compartilhar em outros sites

Sim deu para entender, já joguei RpgBrasil, nos mundo de Citeron, Danae, então sei muito bem como funciona todos os sistemas que você está pedindo aqui no fórum. Irei verificar se consigo fazer o script.

Hummm... muitoo bom, bom saber rsrs. Realmente você vai entender bastante!

Link para o post
Compartilhar em outros sites

Acho que é isso  -.-

function onStepIn(cid, fromPos, item, toPos)
if not getPlayerStorageValue(cid, 19234, 1) then
doPlayerSendCancel(cid, "Voce nao pode passar aqui.")
doTeleportThing(cid, getTownTemplePosition(1))
end
return true
end
function onUse(cid, fromPos, item, toPos, item2)
local item = IDDOITEM
if getPlayerStorageValue(cid, 19234) >= 1 then
doPlayerSendCancel(cid, "Voce ja possui acesso liberado a X area.")
end
doPlayerRemoveItem(cid, item, 1)
addEvent(function () setPlayerStorageValue(cid, 19234, 1) end, os.time()+(86400*7)) --Vai durar 1 semana
doPlayerSendTextMessage(cid, 19, "Voce ganhou 7 dias liberados para X area.")
return true
end
function onThink(cid, interval, lastexecution)
local pos1 = {x=1050, y=1050, z=7} --Superior esquerdo dessa X area
local pos2 = {x=1050, y=1050, z=7} --Inferior direito dessa X area
if isPlayer(cid) and isInRange(getThingPosition(cid), pos1, pos2) and not getPlayerStorageValue(cid, 19234) >= 1 then
doPlayerSendTextMessage(cid, 19, "Que pena acabou seu acesso a X area.")
doTeleportThing(cid, getTownTemplePosition(1))
end
return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

 

Acho que é isso  -.-

function onStepIn(cid, fromPos, item, toPos)
if not getPlayerStorageValue(cid, 19234, 1) then
doPlayerSendCancel(cid, "Voce nao pode passar aqui.")
doTeleportThing(cid, getTownTemplePosition(1))
end
return true
end
function onUse(cid, fromPos, item, toPos, item2)
local item = IDDOITEM
if getPlayerStorageValue(cid, 19234) >= 1 then
doPlayerSendCancel(cid, "Voce ja possui acesso liberado a X area.")
end
doPlayerRemoveItem(cid, item, 1)
addEvent(function () setPlayerStorageValue(cid, 19234, 1) end, os.time()+(86400*7)) --Vai durar 1 semana
doPlayerSendTextMessage(cid, 19, "Voce ganhou 7 dias liberados para X area.")
return true
end
function onThink(cid, interval, lastexecution)
local pos1 = {x=1050, y=1050, z=7} --Superior esquerdo dessa X area
local pos2 = {x=1050, y=1050, z=7} --Inferior direito dessa X area
if isPlayer(cid) and isInRange(getThingPosition(cid), pos1, pos2) and not getPlayerStorageValue(cid, 19234) >= 1 then
doPlayerSendTextMessage(cid, 19, "Que pena acabou seu acesso a X area.")
doTeleportThing(cid, getTownTemplePosition(1))
end
return true
end

 

No caso seria 

Movements

Actions

Globalevents 

 

???

 

Link para o post
Compartilhar em outros sites

Exatamente  ^^ agora falta verificar se é funcional e se é aquilo que você quer...

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

O item ativa normal, porem, nao libera o acesso...

Continuo batendo e voltando no sqm que coloquei a storage, permanece falando que nao tenho acesso...

Link para o post
Compartilhar em outros sites
Esse item, ao dar use nele, ele iria sumir! Adicionaria 3 dias de acesso. Ao acabar esses dias, o player seria "chutado" para o templo imediatamente.

 

accessitem.lua (data\actions\scripts)

local days, key = 3, 45678

function onUse(cid, item)
    return doRemoveItem(item.uid, 1) and setPlayerStorageValue(cid, key, os.time() + days * 86400) and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Now you have access to the area.')
end

actions.xml (data\actions)

<action itemid="XXXXX" event="script" value="accessitem.lua"/>

accesstime.lua (data\creaturescripts\scripts)

local key = 45678
local area = {x = 5, y = 6, z = 7}  -- {posição superior}
local area2 = {x = 5, y = 6, z = 7} -- {posição inferior}

function onLogin(cid)
    local function checkAccessTime(uid, k)
        return getPlayerStorageValue(uid, k) < os.time() and isInArea(getCreaturePosition(uid), area, area2) and doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) and doSendMagicEffect(uid, CONST_ME_TELEPORT) or addEvent(function() if isPlayer(uid) then checkAccessTime(uid, k) end end, 1000)
    end
    
    return addEvent(function() if isPlayer(cid) then checkAccessTime(cid, key) end end, 1000)
end

creaturescripts.xml (data\creaturescripts)

<event type="login" name="CheckAccessTime" event="script" value="accesstime.lua"/>

PS: não registra creature event.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

accessitem.lua (data\actions\scripts)

local days, key = 3, 45678

function onUse(cid, item)
    return doRemoveItem(item.uid, 1) and setPlayerStorageValue(cid, key, os.time() + days * 86400) and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Now you have access to the area.')
end

actions.xml (data\actions)

<action itemid="XXXXX" event="script" value="accessitem.lua"/>

accesstime.lua (data\creaturescripts\scripts)

local key = 45678
local area = {x = 5, y = 6, z = 7}  -- {posição superior}
local area2 = {x = 5, y = 6, z = 7} -- {posição inferior}

function onLogin(cid)
    local function checkAccessTime(uid, k)
        return getPlayerStorageValue(uid, k) < os.time() and isInArea(getCreaturePosition(uid), area, area2) and doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) and doSendMagicEffect(uid, CONST_ME_TELEPORT) or addEvent(function() if isPlayer(uid) then checkAccessTime(uid, k) end end, 1000)
    end
    
    return addEvent(function() if isPlayer(cid) then checkAccessTime(cid, key) end end, 1000)
end

creaturescripts.xml (data\creaturescripts)

<event type="login" name="CheckAccessTime" event="script" value="accesstime.lua"/>

PS: não registra creature event.

Teria como me mandar um script para o movements? Tentei um aqui e deu erro ...

data/movements/script/manapool.lua: onStepIn 

Description:

<LuaGetCreatureStorage> Creature Not Found

 

 

function onStepIn(cid, fromPos, item, toPos)

if not getPlayerStorageValue(cid, 19234, 1) then
doPlayerSendCancel(cid, "Voce nao pode passar aqui.")
doTeleportThing(cid, getTownTemplePosition(1))
end
return true
end

:(

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

olhe axo que isso da certo:

nome do seu script.lua
function onUse(cid, item, fromPosition, itemEx, toPosition)

local days,removeOnUse = 7,true

local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13545)
local timenow = os.time()
local time = getPlayerStorageValue(cid, 13545) - os.time() <= 0 and timenow + daysvalue or storageplayer + daysvalue

doPlayerSendTextMessage
(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13545, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13545) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if removeOnUse == true then doRemoveItem(item.uid, 1) end
return true
end
actions.xml

<action itemid="ID DO SEU ITEM" event="script" value="nome do seu script.lua"/>

 
 
se te ajudei mi ajude com um like
 
post-154810-0-74779100-1428114524_thumb.        post-154810-0-22067300-1428114531_thumb.          post-154810-0-83198200-1427326965.gif
post-154810-0-48855100-1429834735.gif
 
 
 
 
0 comentários:

 

Link para o post
Compartilhar em outros sites

olhe axo que isso da certo:

nome do seu script.lua

function onUse(cid, item, fromPosition, itemEx, toPosition)

local days,removeOnUse = 7,true

local daysvalue = days * 24 * 60 * 60

local storageplayer = getPlayerStorageValue(cid, 13545)

local timenow = os.time()

local time = getPlayerStorageValue(cid, 13545) - os.time() <= 0 and timenow + daysvalue or storageplayer + daysvalue

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")

setPlayerStorageValue(cid, 13545, time)

local quantity = math.floor((getPlayerStorageValue(cid, 13545) - timenow)/(24 * 60 * 60))

doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")

if removeOnUse == true then doRemoveItem(item.uid, 1) end

return true

end

actions.xml

<action itemid="ID DO SEU ITEM" event="script" value="nome do seu script.lua"/>

Ta bem confuso, sou leigo nisso e ta meio bagunçado sua script...

Vai fazer tudo que pedir ai? Ou tenho que implementar nas scripts dos outros ajudantes?

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Olá boa noite bom eu usei esta script e aqui funcionou 100% faça tudo certo que dará certo, vamos lá:

 

Abra a pasta movements>scripts> crie um arquivo chamado    acesso.lua  e adicione isto dentro dele

 

-- Script Feito por Leandro Machado

 
 
function onStepIn(cid, item, position, fromPosition)
 
 
local config = {
msgDenied = "Você não tem acesso a está área, para adquiri-lo o mesmo deverá falar com o administrador.",
msgWelcome = "Bem Vindo a area VIP DONATE!"
}
 
if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return TRUE
end
 
 
Depois abram movements.xml e adicione essa tag dentro dela:
 
<movevent type="StepIn" actionid="13500" event="script" value="acesso.lua"/>
 
 
Agora abra DATA>ACTION e crie um arquivo chamado  acess.lua e adicione isto dentro:
 
-- Script Feito Por Leandro Machado
 
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
 
local days = 30 -- coloque quantos dias o player terá acesso a essa área
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13500)
local timenow = os.time()
 
if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.")
setPlayerStorageValue(cid, 13500, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13500) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
 
return TRUE
end
 
 
Depois abra action.xml e adicione essa tag:
 
<action itemid="5791" script="sistemavip.lua"/>
 
 
O item que dará acesso a está área você coloca o ID na tag em action.xml em itemid="id do item".
 
Depois só abrir o RME e colocar a storage no piso de entrada a esta área, a storage no caso é 13500
 
Créditos:
 
Leandro Machado.
 
 
 
Editado por andersonwill (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

cara, o que o pessoal tá te mandando é um script de tile normal de vip system, por exemplo. Você usa uma potion e ganha uma storage de VIP, dai voce vai ter a permissão de passar no tile, acho que dá para usar no que você quer.. basta mudar algumas coisas, textos etc.

 

no caso a tag você muda pelo item da "berserker potion"

<action itemid="BERSERKER POTION" script="test.lua"/>

Enfim, vamos ao script.

 

Piso para passar somente quem usar o item.
 
Crie em data/movements/scripts  um arquivo entrada.lua
 
function onStepIn(cid, item, position, fromPosition)

local config = {
msgDenied = "VOCE PRECISA USAR O ITEM...",
msgWelcome = "MUDAR PELO TEXTO QUE DESEJA"
}

if getPlayerStorageValue(cid, 55489) - os.time() <= 0 then
doTeleportThing(cid, fromPosition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return TRUE
end

TAG 0.4

<movevent type="StepIn" uniqueid="13500" event="script" value="entrada.lua"/>

TAG 1.0

<movevent event="StepIn" uniqueid="13500" script="entrada.lua"/>
Crie em actions/script/other um arquivo .lua, certifique-se de por o mesmo nome na tag em action.xml
 
function onUse(cid, item)
              if getPlayerStorageValue(cid, 55489) - os.time() < 0 then
              doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Agora voce e um player VIP.")
              setPlayerStorageValue(cid, 55489, os.time() + (30*24*60*60)) 
              doRemoveItem(item.uid, 1)
          else
             doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Voce ja e VIP so poderá renovar daqui 30 dias.")
          end
return TRUE
end
Nessa´parte 30*24*60*60 onde esta 30 coloca os dias que quer adicionar
créditos: Mitsuig
Editado por Jobs (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo