LO
pedido

Script Portal de monstros

Por LordTibia123, 23 de fev. de 2013 em Scripts

resolvido
script
16
1.5k
23 de fevereiro de 2013 às 18:33

Eu criei um script em que você usa uma chave num portal e então sai um monstro aleatório... Só que não funcionou, alguém poderia concertar este erro para mim?

 

local monstro = {
{"Ogre", 1},
{"demon", 1},
}
local chance = 20 --1% chance
function onUse(cid, item, fromPosition, itemEx, toPosition)
local function back(item, pos)
doCreateItem(item.itemid, 1, pos)
end
if itemEx.itemid == 12593 then << id do portao
  local item = getTileItemById(toPosition, 12593) << id do portao
  addEvent(back, choose(5, 10, 15) * 60 * 1000, itemEx, toPosition)
  doSendMagicEffect(toPosition, 1)
if math.random(1000) <= chance*20 then
  local this = monstro[math.random(#monstro)]
	   local pokes = doCreateMonster("Ogre",toPosition)
	   if isCreature(monstro) then
			  local summon = getCreatureSummons(cid)[1]
			  if isCreature(summon) then
					 doSendMagicEffect(getThingPos(summon), 173)
					 doChallengeCreature(summon, monstro)
			  else
					 doSendMagicEffect(getThingPos(cid), 173)
					 doChallengeCreature(cid, monstro)
end
return true
end
end
end

RoksasR
23 de fevereiro de 2013 às 18:41

Primeiro de tudo, o script inteiro não funcionou, acho que deu um erro no Distro e você não viu, pois os comentários estavam com o símbolo ">>, <<", em vez de " -- ou --[[]]--"

 

E ainda faltava um end ^^

 

Experimente agora:

 

 

local monstro = {

{"Ogre", 1},

{"demon", 1},

}

local chance = 20 --1% chance

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

local function back(item, pos)

doCreateItem(item.itemid, 1, pos)

end

if itemEx.itemid == 12593 then -- id do portao

local item = getTileItemById(toPosition, 12593) -- id do portao

addEvent(back, choose(5, 10, 15) * 60 * 1000, itemEx, toPosition)

doSendMagicEffect(toPosition, 1)

if math.random(1000) <= chance*20 then

local this = monstro[math.random(#monstro)]

local pokes = doCreateMonster("Ogre",toPosition)

if isCreature(monstro) then

local summon = getCreatureSummons(cid)[1]

if isCreature(summon) then

doSendMagicEffect(getThingPos(summon), 173)

doChallengeCreature(summon, monstro)

else

doSendMagicEffect(getThingPos(cid), 173)

doChallengeCreature(cid, monstro)

end

return true

end

end

end

end

 

23 de fevereiro de 2013 às 18:51

Funfou certim, só que eu queria que ele removesse a chave, tem como arrumar?

 

@edit

não está vindo demon, apenas ogre's..

 

tem a ver com essa tag?

 

local pokes = doCreateMonster("Ogre",toPosition)

dalvorsnD
24 de fevereiro de 2013 às 04:11

caralho vei, que script horroroso =s, enfim, ta ai:

local monstro = {
"Ogre",
"demon",
}
local chance = 20 --2% chance

function onUse(cid, item, fromPosition, itemEx, toPosition)
local function back(item, pos)
	doCreateItem(item.itemid, 1, pos)
end
if itemEx.itemid == 12593 then -- id do portao
	local item = getTileItemById(toPosition, 12593) -- id do portao
	addEvent(back, choose(5, 10, 15) * 60 * 1000, itemEx, toPosition)
	doSendMagicEffect(toPosition, 1)
	if math.random(1000) <= chance then
		local this = monstro[math.random(#monstro)]
		local pokes = doCreateMonster(this,toPosition)
		if isCreature(pokes) then
			local summon = getCreatureSummons(cid)[1]
			if isCreature(summon) then
				doSendMagicEffect(getThingPos(summon), 173)
				doChallengeCreature(summon, pokes)
			else
				doSendMagicEffect(getThingPos(cid), 173)
				doChallengeCreature(cid, pokes)
			end
		end
	end
end

return true
end

Editado Fevereiro 24 por dalvorsn

24 de fevereiro de 2013 às 11:34

[24/02/2013 11:33:25] [Error - LuaScriptInterface::loadFile] data/actions/scripts/portal/portal.lua:11: unexpected symbol near '<'

[24/02/2013 11:33:25] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/portal/portal.lua)

[24/02/2013 11:33:25] data/actions/scripts/portal/portal.lua:11: unexpected symbol near '<'

RoksasR
24 de fevereiro de 2013 às 11:43

Substitua por:

 

local monstro = {

"Ogre",

"demon",

}

local chance = 20 --2% chance

 

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

local function back(item, pos)

doCreateItem(item.itemid, 1, pos)

end

if itemEx.itemid == 12593 then -- id do portao

local item = getTileItemById(toPosition, 12593) -- id do portao

addEvent(back, choose(5, 10, 15) * 60 * 1000, itemEx, toPosition)

doSendMagicEffect(toPosition, 1)

if math.random(1000) <= chance then

local this = monstro[math.random(#monstro)]

local pokes = doCreateMonster(this,toPosition)

if isCreature(pokes) then

local summon = getCreatureSummons(cid)[1]

if isCreature(summon) then

doSendMagicEffect(getThingPos(summon), 173)

doChallengeCreature(summon, pokes)

else

doSendMagicEffect(getThingPos(cid), 173)

doChallengeCreature(cid, pokes)

end

end

end

end

 

return true

end

 

24 de fevereiro de 2013 às 11:57

Eu uso a chave e o sai o efeito do portão, não ta removendo a chave e também não aparece nenhum monstro, tem a ver com a rate? é que eu usei várias vezes a chave e não spawno nada

 

@edit é as chances que são bem baixas ms... agora acabo de spawna um. Só que não remove a chave, tem como colocar pra remover?

dalvorsnD
24 de fevereiro de 2013 às 12:13

A chance ta muito baixa pow, 2%, eu refiz o script , esse negócio tava muito feio

local monsters = {
"Ogre",
"demon",
}
local id_portal = 12593
local chance = 500 -- 50%

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

if itemEx.itemid ==  id_portal then
	if math.random(1000) <= chance then
		local monster = doCreateMonster(monsters[math.random(#monster)],toPosition)
		doSendMagicEffect(toPosition, 1)
		doRemoveItem(item.uid)
		if isCreature(monster)  then
			local summon = getCreatureSummons(cid)[1]
			doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173)
			doChallengeCreature(summon and summon or cid, monster)
		end
	end
end

return true
end

Editado Fevereiro 24 por dalvorsn

SlicerS
24 de fevereiro de 2013 às 12:15

local summon = getCreatureSummons[1]

 

local summon = getCreatureSummons(cid)[1]

dalvorsnD
24 de fevereiro de 2013 às 12:16

local summon = getCreatureSummons[1]

 

local summon = getCreatureSummons(cid)[1]

nem reparei, ty

24 de fevereiro de 2013 às 12:32

Funfou! só tem um problema, tpw o player ta com 100 key's juntas e quando da use no portal todas somem '-' e só some quando vem monstro

RoksasR
24 de fevereiro de 2013 às 12:43

Que tal assim:

 

 

 

local monsters = {

"Ogre",

"demon",

}

local id_portal = 12593

local chance = 500 -- 50%

 

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

 

if itemEx.itemid == id_portal then

if math.random(1000) <= chance then

local monster = doCreateMonster(monsters[math.random(#monster)],toPosition)

doSendMagicEffect(toPosition, 1)

doRemoveItem(item.uid,1)

if isCreature(monster) then

local summon = getCreatureSummons(cid)[1]

doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173)

doChallengeCreature(summon and summon or cid, monster)

end

end

end

 

return true

end

 

 

dalvorsnD
24 de fevereiro de 2013 às 12:46

Funfou! só tem um problema, tpw o player ta com 100 key's juntas e quando da use no portal todas somem '-' e só some quando vem monstro

 

local monsters = {
   "Ogre",
   "demon",
}
local id_portal = 12593
local chance = 500 -- 50%

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

   if itemEx.itemid ==  id_portal then
       doRemoveItem(item.uid, 1)
       if math.random(1000) <= chance then
           local monster = doCreateMonster(monsters[math.random(#monster)],toPosition)
           doSendMagicEffect(toPosition, 1)
           if isCreature(monster)  then
               local summon = getCreatureSummons(cid)[1]
               doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173)
               doChallengeCreature(summon and summon or cid, monster)
           end
       end
   end

   return true
end

 

Ajustado.

24 de fevereiro de 2013 às 13:05

Funfou! só tem um problema, tpw o player ta com 100 key's juntas e quando da use no portal todas somem '-' e só some quando vem monstro

 

local monsters = {
"Ogre",
"demon",
}
local id_portal = 12593
local chance = 500 -- 50%

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

if itemEx.itemid ==  id_portal then
	doRemoveItem(item.uid, 1)
	if math.random(1000) <= chance then
		local monster = doCreateMonster(monsters[math.random(#monster)],toPosition)
		doSendMagicEffect(toPosition, 1)
		if isCreature(monster)  then
			local summon = getCreatureSummons(cid)[1]
			doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173)
			doChallengeCreature(summon and summon or cid, monster)
		end
	end
end

return true
end

 

Ajustado.

 

Vlw agora funfo +REP duvida sanada

RoksasR
24 de fevereiro de 2013 às 13:08

Dúvida sanada,

reported.