Ir para conteúdo
  • 0

MathhCunha

Pergunta

Venho aqui hoje, para pedir dois scripts :)

 

--First--

Exevo Aura (FOXWORLD 8.4)

-Informações sobre o poder:

*Ele cria uma wand na mão do jogar durante 30 min, e so pode soltar a magia novamente depois de 30min :')

 

--Second--

Bau que Learn Spell

-Informações sobre o BAU:

*Ele remove 10 points(comprado por R$) e da o char o direito de soltar a magia

 

 

Obrigado pela a AJUDA mdr.gifmdr.gif

 

Informações do Server :

New Yoruts Slayer 8.6

TFS 0.3.6 (Crying Damson)

Editado por MathhCunha
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

 

Hey, aqui nao ta mostrando não.

Não tá mostrando a correção em spoiler?

 

http://pastebin.com/SRNS27CF

 

No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu :) Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.

 

Mais mesmo assim obrigado.

Erro :
[03/09/2013 13:27:01] [Error - CreatureScript Interface]
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:onLogin
[03/09/2013 13:27:01] Description:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)
[03/09/2013 13:27:01] stack traceback:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>
Editado por MathhCunha
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

Hey, aqui nao ta mostrando não.

Não tá mostrando a correção em spoiler?

 

http://pastebin.com/SRNS27CF

 

No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu :) Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.

 

Mais mesmo assim obrigado.

Erro :
[03/09/2013 13:27:01] [Error - CreatureScript Interface]
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:onLogin
[03/09/2013 13:27:01] Description:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)
[03/09/2013 13:27:01] stack traceback:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>

 

 

Cara, não tá lendo a função doRemoveWand antes... tenta passar pra functions.lua na lib ou copiar e colar ela antes do script de login

Link para o comentário
Compartilhar em outros sites

  • 0

 

 

 

Hey, aqui nao ta mostrando não.

Não tá mostrando a correção em spoiler?

 

http://pastebin.com/SRNS27CF

 

No Notebook, não estava aparecendo. Mais entrei aqui no Desketop apareceu :) Valeu. Vou testa e amanha respondo aqui te avisar se tiver algum BUG.

 

Mais mesmo assim obrigado.

Erro :
[03/09/2013 13:27:01] [Error - CreatureScript Interface]
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:onLogin
[03/09/2013 13:27:01] Description:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)
[03/09/2013 13:27:01] stack traceback:
[03/09/2013 13:27:01] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>

 

 

Cara, não tá lendo a função doRemoveWand antes... tenta passar pra functions.lua na lib ou copiar e colar ela antes do script de login

 

Tem como me ajudar? Eu tentai colocar ele em functions.lua não deu. Coloquei ele no script de Login e não deu.

Link para o comentário
Compartilhar em outros sites

  • 0
[03/09/2013 14:34:39] [Error - CreatureScript Interface]
[03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:onLogin
[03/09/2013 14:34:39] Description:
[03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:5: attempt to call global 'doRemoveWand' (a nil value)
[03/09/2013 14:34:39] stack traceback:
[03/09/2013 14:34:39] data/creaturescripts/scripts/new/wand.lua:5: in function <data/creaturescripts/scripts/new/wand.lua:3>

 

Deu erro novamento :'(

Link para o comentário
Compartilhar em outros sites

  • 0

Tá dando erro mesmo, mas pondo na lib, funciona. Tenta cria um arquivo na pasta lib, pôr só essa função:

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,wandsto) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

E salvar como wandfunction.lua

Aqui ainda tá dando uns erros, mas não é nessa parte.

 

Edit: pronto, agora tá funcionando!

As tags continuam as mesmas, mas vou repassar os arquivos modificados:

 

wandlogin.lua (creaturescripts/scripts)

 

 

local id_da_wand = 102

function onLogin(cid)
	if getPlayerItemCount(cid,id_da_wand) >= 1 then
		if doRemoveWand(cid) == true then
			return true
		else
			local tempo_restante = getPlayerStorageValue(cid,505090) - os.time(t)
			addEvent(doRemoveWand,tempo_restante*1000,cid)
		end
	end
	return true
end

 

 

 

wandmove.lua (movements/scripts)

 

 

 

function onDeEquip(cid, item, slot)
	pos = getThingPos(item.uid)
	local player = getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=253}).uid
	doRemoveItem(item.uid)
	doPlayerAddItem(player,item.itemid,1)
	return true
end

 

 

 

conjurewand.lua (spells/scripts)

 

 

 

local id_da_wand = 102
local tempo_de_exhaust = 30 -- em minutos (da spell)
local tempo_de_wand = 30 -- em minutos (de duração da wand)
local wandsto = 505090
local storage = 505091
	


function onCastSpell(cid, var)	
	tempo_de_wand = tempo_de_wand * 60
	tempo_de_exhaust = tempo_de_exhaust * 60
	
	if exhaustion.check(cid, storage) == false then
		if exhaustion.check(cid,wandsto) == false then
			if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then
				doPlayerAddItem(cid,id_da_wand,1)
				doSendMagicEffect(getCreaturePosition(cid),12)
				exhaustion.set(cid,wandsto,tempo_de_wand)
				exhaustion.set(cid,storage,tempo_de_exhaust)
				addEvent(doRemoveWand,(tempo_de_wand*1000)+1000,cid)
				return true
			else
				doPlayerSendCancel(cid,'You cannot use this spell with your hands full.')
				doSendMagicEffect(getCreaturePosition(cid),2)
			end
		else
			doPlayerSendCancel(cid,'You are exhausted.')
			doSendMagicEffect(getCreaturePosition(cid),2)
		end
	else
		doSendMagicEffect(getCreaturePosition(cid),2)
		doPlayerSendCancel(cid,'You are exhausted.')
	end
	return false
end

 

 

 

wandfunction.lua (lib/)

 

 

 

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,wandsto) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

 

 

Editado por omega blueheaven
Link para o comentário
Compartilhar em outros sites

  • 0

Tá dando erro mesmo, mas pondo na lib, funciona. Tenta cria um arquivo na pasta lib, pôr só essa função:

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,wandsto) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

E salvar como wandfunction.lua

Aqui ainda tá dando uns erros, mas não é nessa parte.

 

Edit: pronto, agora tá funcionando!

As tags continuam as mesmas, mas vou repassar os arquivos modificados:

 

wandlogin.lua (creaturescripts/scripts)

 

 

local id_da_wand = 102

function onLogin(cid)
	if getPlayerItemCount(cid,id_da_wand) >= 1 then
		if doRemoveWand(cid) == true then
			return true
		else
			local tempo_restante = getPlayerStorageValue(cid,505090) - os.time(t)
			addEvent(doRemoveWand,tempo_restante*1000,cid)
		end
	end
	return true
end

 

 

 

wandmove.lua (movements/scripts)

 

 

 

function onDeEquip(cid, item, slot)
	pos = getThingPos(item.uid)
	local player = getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=253}).uid
	doRemoveItem(item.uid)
	doPlayerAddItem(player,item.itemid,1)
	return true
end

 

 

 

conjurewand.lua (spells/scripts)

 

 

 

local id_da_wand = 102
local tempo_de_exhaust = 30 -- em minutos (da spell)
local tempo_de_wand = 30 -- em minutos (de duração da wand)
local wandsto = 505090
local storage = 505091
	


function onCastSpell(cid, var)	
	tempo_de_wand = tempo_de_wand * 60
	tempo_de_exhaust = tempo_de_exhaust * 60
	
	if exhaustion.check(cid, storage) == false then
		if exhaustion.check(cid,wandsto) == false then
			if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then
				doPlayerAddItem(cid,id_da_wand,1)
				doSendMagicEffect(getCreaturePosition(cid),12)
				exhaustion.set(cid,wandsto,tempo_de_wand)
				exhaustion.set(cid,storage,tempo_de_exhaust)
				addEvent(doRemoveWand,(tempo_de_wand*1000)+1000,cid)
				return true
			else
				doPlayerSendCancel(cid,'You cannot use this spell with your hands full.')
				doSendMagicEffect(getCreaturePosition(cid),2)
			end
		else
			doPlayerSendCancel(cid,'You are exhausted.')
			doSendMagicEffect(getCreaturePosition(cid),2)
		end
	else
		doSendMagicEffect(getCreaturePosition(cid),2)
		doPlayerSendCancel(cid,'You are exhausted.')
	end
	return false
end

 

 

 

wandfunction.lua (lib/)

 

 

 

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,wandsto) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

 

 

Com este script ai, quando da 30 minutos a wand desaparece? (e que eu estou sem tempo para testar agora)

Link para o comentário
Compartilhar em outros sites

  • 0

Quote

[03/09/2013 20:24:03] [Error - MoveEvents Interface]

[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip

[03/09/2013 20:24:03] Description:

[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found

 

[03/09/2013 20:24:03] [Error - MoveEvents Interface]

[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip

[03/09/2013 20:24:03] Description:

[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)

[03/09/2013 20:24:03] stack traceback:

[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>

 

Esse e o erro de MoveEvents.

 

 

Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. não cria outra.

Editado por MathhCunha
Link para o comentário
Compartilhar em outros sites

  • 0

E vamos à luta...

 

 

 

[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found
[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)
[03/09/2013 20:24:03] stack traceback:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>

 

 

 

 

Esse e o erro de MoveEvents.

 

 

Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. Não cria outra. A wand ainda nao sumiu. e o Outro Erro e que tipo se eu coloca menos tempo a wand cria e some. Se eu tirar de 30 Min a wand some eu coloquei 29 a wand criou e imediatamente ela sumiu.

 

 

Cara, aqui funcionou o movement, eu testei esse bastante antes de postar porque o outro tava dando erro

Mas testa assim:

function onDeEquip(cid, item, slot)
	doRemoveItem(item.uid)
	doPlayerAddItem(cid,item.itemid,1)
	return true
end

Não é pra sumir quando loga. É pra sumir somente se o tempo já passou, aí se não tiver passado, o script coloca pra sumir no tempo certo. Só some se você mudou os storages que eu tava usando.

Achei um possível erro, troca o script da magia:

 

 

local id_da_wand = 102
local tempo_de_exhaust = 30 -- em minutos (da spell)
local tempo_de_wand = 30 -- em minutos (de duração da wand)
local wandsto = 505090
local storage = 505091
	


function onCastSpell(cid, var)	
	tempo_de_wand = tempo_de_wand * 60
	tempo_de_exhaust = tempo_de_exhaust * 60
	
	if exhaustion.check(cid, storage) == false then
		if exhaustion.check(cid,wandsto) == false then
			if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then
				doPlayerAddItem(cid,id_da_wand,1)
				doSendMagicEffect(getCreaturePosition(cid),12)
				exhaustion.set(cid,wandsto,tempo_de_wand)
				exhaustion.set(cid,storage,tempo_de_exhaust)
				addEvent(doRemoveWand,(tempo_de_wand*1000)+100,cid)
				return true
			else
				doPlayerSendCancel(cid,'You cannot use this spell with your hands full.')
				doSendMagicEffect(getCreaturePosition(cid),2)
			end
		else
			doPlayerSendCancel(cid,'You are exhausted.')
			doSendMagicEffect(getCreaturePosition(cid),2)
		end
	else
		doSendMagicEffect(getCreaturePosition(cid),2)
		doPlayerSendCancel(cid,'You are exhausted.')
	end
	return false
end

 

 

 

lib:

 

 

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,505090) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

 

 

 

Não esquece de colocar o id da wand na lib também. Cara, vendo aqui não me parece ter nenhum erro. Se aparecer mais algum, tenta dar um up e pedir pra algum outro desocupado dar uma olhada no que eu fiz ou refazer. Se eu tiver tempo, testo e vejo se o problema é aí.

 

Link para o comentário
Compartilhar em outros sites

  • 0

E vamos à luta...

 

 

 

[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] (luaGetThingPosition) Thing not found
[03/09/2013 20:24:03] [Error - MoveEvents Interface]
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:onDeEquip
[03/09/2013 20:24:03] Description:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: attempt to index global 'pos' (a boolean value)
[03/09/2013 20:24:03] stack traceback:
[03/09/2013 20:24:03] data/movements/scripts/wandmove.lua:4: in function <data/movements/scripts/wandmove.lua:1>

 

 

 

 

Esse e o erro de MoveEvents.

 

 

Tambem tem outro erro. o Seguinte, quando a gente loga some a wand BOM, mais ai quando eu entro denovo ae não da pra criar outra wand. Depois que cria 1 Wand. Não cria outra. A wand ainda nao sumiu. e o Outro Erro e que tipo se eu coloca menos tempo a wand cria e some. Se eu tirar de 30 Min a wand some eu coloquei 29 a wand criou e imediatamente ela sumiu.

 

 

Cara, aqui funcionou o movement, eu testei esse bastante antes de postar porque o outro tava dando erro

Mas testa assim:

function onDeEquip(cid, item, slot)
	doRemoveItem(item.uid)
	doPlayerAddItem(cid,item.itemid,1)
	return true
end

Não é pra sumir quando loga. É pra sumir somente se o tempo já passou, aí se não tiver passado, o script coloca pra sumir no tempo certo. Só some se você mudou os storages que eu tava usando.

Achei um possível erro, troca o script da magia:

 

 

local id_da_wand = 102
local tempo_de_exhaust = 30 -- em minutos (da spell)
local tempo_de_wand = 30 -- em minutos (de duração da wand)
local wandsto = 505090
local storage = 505091
	


function onCastSpell(cid, var)	
	tempo_de_wand = tempo_de_wand * 60
	tempo_de_exhaust = tempo_de_exhaust * 60
	
	if exhaustion.check(cid, storage) == false then
		if exhaustion.check(cid,wandsto) == false then
			if getPlayerSlotItem(cid, 5).itemid == 0 or getPlayerSlotItem(cid,6).itemid == 0 then
				doPlayerAddItem(cid,id_da_wand,1)
				doSendMagicEffect(getCreaturePosition(cid),12)
				exhaustion.set(cid,wandsto,tempo_de_wand)
				exhaustion.set(cid,storage,tempo_de_exhaust)
				addEvent(doRemoveWand,(tempo_de_wand*1000)+100,cid)
				return true
			else
				doPlayerSendCancel(cid,'You cannot use this spell with your hands full.')
				doSendMagicEffect(getCreaturePosition(cid),2)
			end
		else
			doPlayerSendCancel(cid,'You are exhausted.')
			doSendMagicEffect(getCreaturePosition(cid),2)
		end
	else
		doSendMagicEffect(getCreaturePosition(cid),2)
		doPlayerSendCancel(cid,'You are exhausted.')
	end
	return false
end

 

 

 

lib:

 

 

function doRemoveWand(cid)
	if not isPlayer(cid) then return false end
	if exhaustion.check(cid,505090) == true then
		return false
	end
	for slot = 5,6 do
		if getPlayerSlotItem(cid, slot).itemid == id_da_wand then
			doPlayerRemoveItem(cid,id_da_wand,1)
		end
	end
	return true
end

 

 

 

Não esquece de colocar o id da wand na lib também. Cara, vendo aqui não me parece ter nenhum erro. Se aparecer mais algum, tenta dar um up e pedir pra algum outro desocupado dar uma olhada no que eu fiz ou refazer. Se eu tiver tempo, testo e vejo se o problema é aí.

 

Hey, o negocio de sumir e a creatureevent que tu postou. Ele quando loga some a wand.

Cara, Valeu pela a ajuda. Mais eu acho que o erro e no meu ot. Mais mesmo assim Obrigado.

 

Quando você tiver um tempo e eu entender mais um pouco sobre scripts eu tento introduzir esse sistema no meu server. Mais Quando voce tiver um tempo, tenta ver se tu acha mais algum erro.

 

 

Eu uso o Ot New Slayer 8.6

 

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar, qualquer coisa te mando PM, então.

Boa sorte aí, recomendo que comece com esses tutoriais se quiser começar a aprender scripting:

http://www.xtibia.com/forum/topic/99746-pasta-data-enciclopedia-13-tutoriais-para-entender-ela-toda/

 

Depois pode dar uma olhada na Escolinha de Scripting do Roksas também.

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar, qualquer coisa te mando PM, então.

Boa sorte aí, recomendo que comece com esses tutoriais se quiser começar a aprender scripting:

http://www.xtibia.com/forum/topic/99746-pasta-data-enciclopedia-13-tutoriais-para-entender-ela-toda/

 

Depois pode dar uma olhada na Escolinha de Scripting do Roksas também.

 

Valeu. Eu sei so o basico mesmo do basico. Agora como eu vou abrir um ot dedicado, eu tenho que pelomenos saber o intermediário.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...