Ir para conteúdo
  • 0

To Com Uma Duvida Em Um Script.


othereality

Pergunta

eai galera eu estou com um escript do Doidin aqui,

foi até apriveitar pra agradecer ele por ter feito =D

 

mas ele tem um unico problema que eu não consegui resolver,

o scrip a seguir:

 

-- [( Script created by Doidin for XTibia.com )] --
function onUse(cid, item, fromPosition, item2, toPosition)

local itemid = 2195  -- ID do item que o player ganhará!
local monstername1 = "Dragon Lord" -- Nome dos monstros que serão sumonados após o player clicar no item!
local monstername2 = "Dragon" -- Nome dos monstros que serão sumonados após o player clicar no item!
local monster1 = {x=161,y=101,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord)
local monster2 = {x=162,y=102,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord)
local monster3 = {x=163,y=103,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord)
local monster4 = {x=164,y=104,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon)
local monster5 = {x=165,y=105,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon)

actionstatus = getPlayerStorageValue(cid,6666)
if actionstatus == -1 then
if doCreatureSay(cid,"You went in the wrong place, beware!",TALKTYPE_ORANGE_1) then
setPlayerStorageValue(cid,6666,1)
else
doPlayerSendTextMessageCancel(cid,MESSAGE_INFO_DESCR,"Sorry is not possible.")
end

function Quest()
doPlayerSendTextMessage(cid,22,"You have found the secret item!")
doPlayerAddItem(cid,itemid,1)
end

function Summon()
doSummonCreature(monstername1,monster1)
doSummonCreature(monstername1,monster2)
doSummonCreature(monstername1,monster3)
doSummonCreature(monstername2,monster4)
doSummonCreature(monstername2,monster5)
doSendMagicEffect(monster1,36)
doSendMagicEffect(monster2,36)
doSendMagicEffect(monster3,36)
doSendMagicEffect(monster4,36)
doSendMagicEffect(monster5,36)
end

addEvent(Summon,100)
addEvent(Summon,15000)
addEvent(Summon,30000)
addEvent(Summon,45000)
addEvent(Summon,60000)
addEvent(Summon,75000)
addEvent(Quest,6000)
end
end

 

 

na parte onde aparece:

 

addEvent(Summon,100)
addEvent(Summon,15000)
addEvent(Summon,30000)
addEvent(Summon,45000)
addEvent(Summon,60000)
addEvent(Summon,75000)
addEvent(Quest,6000)

 

Não está funcionando todos os summons aparecem ao mesmo tempo,

não importa o tempo que eu bote.

 

e tem um:

 

addEvent(Summon,time)

 

a mais do que a quantidade de monstros a ser sumonados é assim mesmo?

 

 

vlw Doidin pelo script,

e obrigado a quem poder me ajudar.

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

9 respostass a esta questão

Posts Recomendados

  • 0

Mano não intendo disso mas vo tenta ajuda.

Normal:

addEvent(Summon,100)
addEvent(Summon,15000)
addEvent(Summon,30000)
addEvent(Summon,45000)
addEvent(Summon,60000)
addEvent(Summon,75000)
addEvent(Quest,6000)

Mude para:

addEvent(monster1,100)
addEvent(monster2,15000)
addEvent(monster3,30000)
addEvent(monster4,45000)
addEvent(monster5,60000)
addEvent(Quest,6000)

 

Se isso não der certo o erro pode ter sido ocorido porque tem addEvent(Summon,time) a mais, retire 1 deles e teste.Espero ter ajudado.

_____________________________________________________________________________________________________________________________________

Ajudei? verdinha :button_ok:

61ec48409f664c3bb1ef6ef151dcbd11.0.gif

Link para o comentário
Compartilhar em outros sites

  • 0

eai infernity,

vlw pela ajuda mas nem funcionou.

 

mas dando mais uma mechida eu percebi o seguinte:

o script sumona todos os bixos para cada addEvent(Summon,time), e no tempo certo.

 

se eu retirar oque tem a mais ele buga,

e se eu trocar por "monster1" também buga.

 

ainda nada.

se tiver alguma outra idéia diz ae que eu testo. =D

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei não, não era pra acontecer isso. Mas o que você pode fazer é adicionar uma função para cada evento.

 

Exemplo:

 

function Summon1()
doSummonCreature(monstername1,monster1)
doSendMagicEffect(monster1,36)

 

addEvent(Summon1, time)

 

É uma possível solução, mas como não manjo disso não posso dizer muita coisa.

Abraços e boa sorte.

Link para o comentário
Compartilhar em outros sites

  • 0

Hmm, parece que o nosso amigo Doidin se equivocou um pouquinho.

 

Vamos lá, observe esta parte do código:

 

function Summon()
doSummonCreature(monstername1,monster1)
doSummonCreature(monstername1,monster2)
doSummonCreature(monstername1,monster3)
doSummonCreature(monstername2,monster4)
doSummonCreature(monstername2,monster5)
doSendMagicEffect(monster1,36)
doSendMagicEffect(monster2,36)
doSendMagicEffect(monster3,36)
doSendMagicEffect(monster4,36)
doSendMagicEffect(monster5,36)
end

addEvent(Summon,100)
addEvent(Summon,15000)
addEvent(Summon,30000)
addEvent(Summon,45000)
addEvent(Summon,60000)
addEvent(Summon,75000)

 

Agora pense comigo. Ele criou uma função que sumona 5 monstros quando executada. E ele usou a função addEvent que faz essa função ser executada após tanto tempo.

 

Porém, ele usou o addEvent 5 vezes, logo, 5 monstros vão ser criados depois de tanto tempo, depois de mais tanto tempo mais 5, e assim vai... (se eles não estão sendo criado deve ser por falta de espaço na área)

 

A solução é fazer como henrique sugeriu.

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

  • 0

vlw henrique,

e vlw demonbeholder está acontecendo exatamente isso.

acabei conseguindo resolver do jeito que o henrique sugerio.

 

e só pra comentar:

é impressionante a habilidade pra lidar com scripts que eu percebo em algumas pessoas aqui no xtibia,

demonbeholder conseguio descrever exatamente que erro ocorreria sem testar o script.

 

 

vlw a todos.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

 

Juntando tudo o que nossos amigos falaram e também com algumas modificações que eu mesmo fiz, acho que o script poderá ficar assim :)

 

local config = {
storageNumber = 6666,
giveItem = 2195,
msg = {
	found = "You have found the secret item!",
	warn = "You went to the wrong place, beware!",
	cancel = "Sorry, not possible."
},
monster = {
	["Dragon Lord"] = 3,
	["Dragon"] = 2
}
}


function onUse(cid, item, fromPosition, itemEx, toPosition)
local function summon()
	for monster, times in pairs(config.monster) do
		for i = 1, times do
			addEvent(doSummonCreature, i*1000, monster, {x = 160+i, y = 100+i, z = 7})
		end
	end
end

local status = getPlayerStorageValue(cid, config.storageNumber)
if(status ~= 1) then
	doCreatureSay(cid, config.msg.warn, TALKTYPE_ORANGE_1)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msg.found)
	doPlayerAddItem(cid, config.giveItem, 1)
	addEvent(summon, 0)
else
	doPlayerSendCancel(cid, config.msg.cancel)
end
return true
end

 

Eu não testei, mas acho que funciona (y)

 

Abraços,

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

  • 0

o meu funcionando direitonho ficou assim:

 

 

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

local itemid = 2195
local monstername1 = "Dragon Lord"
local monstername2 = "Dragon"
local monster1 = {x=161,y=101,z=7}
local monster2 = {x=162,y=102,z=7}
local monster3 = {x=163,y=103,z=7}

actionstatus = getPlayerStorageValue(cid,6666)
if actionstatus == -1 then
if doCreatureSay(cid,"You went in the wrong place, beware!",TALKTYPE_ORANGE_1) then
setPlayerStorageValue(cid,6666,1)
else
doPlayerSendTextMessageCancel(cid,MESSAGE_INFO_DESCR,"Sorry is not possible.")
end

function Quest()
doPlayerSendTextMessage(cid,22,"You have found the secret item!")
doPlayerAddItem(cid,itemid,1)
end

function Summon1()
doSummonCreature(monstername1,monster1)
doSendMagicEffect(monster1,36)
end

function Summon2()
doSummonCreature(monstername1,monster2)
doSendMagicEffect(monster2,36)
end

function Summon3()
doSummonCreature(monstername2,monster3)
doSendMagicEffect(monster3,36)
end

addEvent(Summon1,100)
addEvent(Summon2,15000)
addEvent(Summon3,30000)
addEvent(Quest,6000)
end
end

 

Se alguem quer está ai. /\

acho que o seu ficou menor mas esse e mais facinho de editar.

 

=P

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...