Postado Agosto 13, 2017 7 anos Em 15/06/2014 em 17:14, xWhiteWolf disse: 1) itemport.lua: local config = { storage = 49607, tempo = 10, itemid = 6217 } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 10) end return true end Opa, Essa spell me ajudou BASTANTE, porem eu coloquei ela com um time de 120 segundos pra ser usada novamente, mas.. fazendo isso eu não posso usar ela pra voltar no local que ativei, pois eu já fico exhausted, sera que teria alguma forma do exhausted só ser ativado depois que o boneco voltar no local ativado?
Postado Agosto 14, 2017 7 anos 23 hours ago, Dersonpe said: Opa, Essa spell me ajudou BASTANTE, porem eu coloquei ela com um time de 120 segundos pra ser usada novamente, mas.. fazendo isso eu não posso usar ela pra voltar no local que ativei, pois eu já fico exhausted, sera que teria alguma forma do exhausted só ser ativado depois que o boneco voltar no local ativado? pelo q eu entendi vc aumentou o exhaustion da tag no xml, vc deveria ter aumentado o time na config do script. Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Agosto 14, 2017 7 anos 10 horas atrás, xWhiteWolf disse: pelo q eu entendi vc aumentou o exhaustion da tag no xml, vc deveria ter aumentado o time na config do script. Opa, não não, eu aumentei na config do script mesmo, na tag do xml eu deixei em 0. Eu queria que ela só pudesse ser usada novamente em 120 segundos entende? porem quando eu uso ela a primeira vez, quando vou usar o mesmo nome pra poder voltar no local dentro dos 10 segundos que expira o item, ele simplesmente diz que tenho que aguardar 120 segundos.. Assim, deixa eu tentar explicar melhor, eu queria deixar um tempo de 10 segundos pro item expirar, isso eu consegui colocar, porem queria um tempo de exhausted na magia de 120 segundos, porem quando coloco 120 segundos de exhausted, não consigo usar a magia pra voltar ao local depois que ativei, mesmo dentro dos 10 segundos, pois ele da exhausted. Editado Agosto 14, 2017 7 anos por Dersonpe (veja o histórico de edições)
Postado Agosto 15, 2017 7 anos 12 hours ago, Dersonpe said: Opa, não não, eu aumentei na config do script mesmo, na tag do xml eu deixei em 0. Eu queria que ela só pudesse ser usada novamente em 120 segundos entende? porem quando eu uso ela a primeira vez, quando vou usar o mesmo nome pra poder voltar no local dentro dos 10 segundos que expira o item, ele simplesmente diz que tenho que aguardar 120 segundos.. Assim, deixa eu tentar explicar melhor, eu queria deixar um tempo de 10 segundos pro item expirar, isso eu consegui colocar, porem queria um tempo de exhausted na magia de 120 segundos, porem quando coloco 120 segundos de exhausted, não consigo usar a magia pra voltar ao local depois que ativei, mesmo dentro dos 10 segundos, pois ele da exhausted. ah desculpa, entendi agora... esse script aí tava cheio de erros, eu refiz nos moldes que você queria, espero que você goste Spoiler local config = { storage = 49607, -- salva o tempo do item expirar tempo = 10, -- tempo pro item expirar itemid = 6217, -- id do item storagedelay = 49608, -- onde salva o tempo pra usar dnv a spell delayquant = 120 -- quantidade de tempo em segundos q fica sem poder usar uma vez q teleporta de volta. } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storagedelay) - os.time() <= 0 then if getPlayerStorageValue(cid, config.storage) <= 0 then -- procura a primeira posicao livre local index = 0 repeat index = index + 1 until (not positions[index]) -- salva a pos na primeira posicao livre do hash positions[index] = getThingPos(cid) -- salva a posicao livre no storage do player para referencia doPlayerSetStorageValue(cid, config.storage, index) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) positions[getPlayerStorageValue(cid, config.storage)] = nil end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doPlayerSetStorageValue(cid, config.storagedelay, config.delayquant + os.time()) -- tratamento pra remover a pos salva doPlayerSetStorageValue(cid, config.storage, 0) positions[getPlayerStorageValue(cid, config.storage)] = nil -- doSendMagicEffect(getThingPos(cid), 10) end else doPlayerSendCancel(cid, "You have to wait ".. getPlayerStorageValue(cid, config.storagedelay) - os.time() .." seconds to use this spell again.") end return true end Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Agosto 15, 2017 7 anos 2 horas atrás, xWhiteWolf disse: ah desculpa, entendi agora... esse script aí tava cheio de erros, eu refiz nos moldes que você queria, espero que você goste Ocultar conteúdo local config = { storage = 49607, -- salva o tempo do item expirar tempo = 10, -- tempo pro item expirar itemid = 6217, -- id do item storagedelay = 49608, -- onde salva o tempo pra usar dnv a spell delayquant = 120 -- quantidade de tempo em segundos q fica sem poder usar uma vez q teleporta de volta. } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storagedelay) - os.time() <= 0 then if getPlayerStorageValue(cid, config.storage) <= 0 then -- procura a primeira posicao livre local index = 0 repeat index = index + 1 until (not positions[index]) -- salva a pos na primeira posicao livre do hash positions[index] = getThingPos(cid) -- salva a posicao livre no storage do player para referencia doPlayerSetStorageValue(cid, config.storage, index) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) positions[getPlayerStorageValue(cid, config.storage)] = nil end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doPlayerSetStorageValue(cid, config.storagedelay, config.delayquant + os.time()) -- tratamento pra remover a pos salva doPlayerSetStorageValue(cid, config.storage, 0) positions[getPlayerStorageValue(cid, config.storage)] = nil -- doSendMagicEffect(getThingPos(cid), 10) end else doPlayerSendCancel(cid, "You have to wait ".. getPlayerStorageValue(cid, config.storagedelay) - os.time() .." seconds to use this spell again.") end return true end Manoooo, muito obrigado!!!!! você é foda d+++ merece mil rep++
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.