Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • 2 years later...
Em 15/06/2014 ás 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

2)

playerport.lua 


local config = {
storage = 49608,
tempo = 10
}


function onCastSpell(cid, var)
if isPlayer(getCreatureTarget(cid)) then
local name = getCreatureName(getCreatureTarget(cid))


if getPlayerStorageValue(cid, config.storage) <= 0 then
doPlayerSetStorageValue(cid, config.storage, 1)
doSendMagicEffect(getThingPos(cid), 65)
doSendMagicEffect(getThingPos(getCreatureByName(name)), 65)
addEvent(function()
  if isCreature(cid) then
  doPlayerSetStorageValue(cid, config.storage, 0)
  doTeleportThing(cid, getThingPos(getCreatureByName(name))) 
  end
 end, 1000*config.tempo)
elseif getPlayerStorageValue (cid, config.storage) > 0 then
doSendMagicEffect(getThingPos(cid), 2)
doPlayerSendCancel(cid, "You've already set your target.")
end
else
doPlayerSendCancel (cid, "You can only use this spell on players.")
end
return true
end

e no spells.xml:


<instant name="TK SUPORT" words="itemport" lvl="50" mana="100" prem="1" exhaustion="1000" needlearn="0" event="script" value="especiais/itemport.lua">
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
</instant>
<instant name="TK SUPORT" words="playerport" lvl="50" mana="100" prem="1" range="7" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua">
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
</instant>

agora vá em creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true


 if getPlayerStorageValue(cid, 49607) == -1 then
        setPlayerStorageValue(cid, 49607, 0) 
    end 

 if getPlayerStorageValue(cid, 49608) ~= 0 then
        setPlayerStorageValue(cid, 49608, 0) 
    end 

Tenho uma grande duvida como eu faço para o item sumir quando expirado ??

Editado por David Otserver (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 horas atrás, David Otserver disse:

Tenho uma grande duvida como eu faço para o item sumir quando expirado ??

só botar decay no items.xml. São duas linhas (o tempo que demora em segundos pro item sofrer decay e pra qual id vc vai transformar ele.. pra ele sumir é só botar 0 no id)

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
Em 13/02/2017 ás 07:32, xWhiteWolf disse:

só botar decay no items.xml. São duas linhas (o tempo que demora em segundos pro item sofrer decay e pra qual id vc vai transformar ele.. pra ele sumir é só botar 0 no id)

Não consegui pode me explicar melhor?

Link para o post
Compartilhar em outros sites

procura o id do item no itens.xml e adiciona essas duas linhas aqui:

<attribute key="decayTo" value="0" />
 <attribute key="duration" value="10" />

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • 5 months later...
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?

Link para o post
Compartilhar em outros sites
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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
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 por Dersonpe (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
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 :3
 

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

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
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 :3
 

  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++

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 14/08/2017 em 22:12, xWhiteWolf disse:

ah desculpa, entendi agora...

esse script aí tava cheio de erros, eu refiz nos moldes que você queria, espero que você goste :3
 

  Mostrar conteúdo oculto


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

 

 

 

criei o item e adicionei o decayto para sumir , porem ao usar ele nao some.

Up , o item não esta sumindo

 

meu xml:

    </item>
    <item id="9999" article="a" name="kunai teleport">
        <attribute key="decayTo" value="0" />
        <attribute key="duration" value="10" />

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