Ir para conteúdo

Featured Replies

Postado

E ai galera fmz? Bm estou com problemas no evento zumbie do meu servidor, ocorre tudo certo até a parte de summom!

Aparece este erro, alguém pode ajudar??!!

 

Se não for pedir demais, espero que me ajudem rápido, pois o server já está em andamento!

REP++++ Pra quem ajudar.

Spoiler

local config = {
    semana_mes = "semana",
    days = {1,2,3,4,5,6,7},
    goblet = 5805, -- id of the gold goblet you'll get when finishing the event.
    rewards = {2195, 2152, 2160}, -- You will get this +  a gold goblet with your name on.
    moneyReward = {2160, 10, 1}, -- second collumn(count) 0 if you don't want money to be used. or a stackable item you want more than 1 of.

    playerCount = 2001, -- Global storage for counting the players left/entered in the event
    zombieCount = 2002, -- Global storage for counting the zombies in the event
    teleportActionId = 2008, -- Action id of the teleport needed for the movement script
    teleportPosition = {x = 152, y = 51, z = 7, stackpos = 1}, -- Where the teleport will be created
    teleportToPosition = {x = 37, y = 272, z = 7}, -- Where the teleport will take you
    teleportId = 1387, -- Id of the teleport
    timeToStartEvent = 2, -- Minutes, after these minutes the teleport will be removed and the event will be declared started
    timeBetweenSpawns = 20, -- Seconds between each spawn of zombie
    zombieName = "event zombie", -- Name of the zombie that should be summoned
    playersNeededToStartEvent = 1, -- Players needed before the zombies can spawn.
    
    -- Should be the same as in the creaturescript!
    -- The zombies will spawn randomly inside this area
    fromPosition = {x = 15, y = 274, z = 7}, -- top left cornor of the playground
    toPosition = {x = 68, y = 273, z = 7} -- bottom right cornor of the playground
    }

function onTime()
    local time = os.date("*t")
    if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then
        local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition)
        doItemSetAttribute(tp, "aid", config.teleportActionId)
        doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
        setGlobalStorageValue(config.playerCount, 0)
        setGlobalStorageValue(config.zombieCount, 0)
        addEvent(startEvent, config.timeToStartEvent * 1000 * 60)
    end
    return TRUE
end

function startEvent()
    local get = getThingfromPos(config.teleportPosition)
    if get.itemid == config.teleportId then
        doRemoveItem(get.uid, 1)
    end
    
    local fromp, top = config.fromPosition, config.toPosition

    if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then
        addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
        doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING)
        
        for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    areapos = {x = x, y = y, z = z, stackpos = 253}
                    getPlayers = getThingfromPos(areapos)
                    if isPlayer(getPlayers.uid) then
                        doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!")
            pvgaylord()
                    end
                end
            end
        end
    else
        doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING)
        for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    areapos = {x = x, y = y, z = z, stackpos = 253}
                    getPlayers = getThingfromPos(areapos)
                    if isPlayer(getPlayers.uid) then
                        doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false)
                        doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT)
                    end
                end
            end
        end
    end
end

function spawnZombie()
    if getGlobalStorageValue(config.playerCount) >= 1 then
        pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)}
        doSummonCreature(config.zombieName, pos)
        doSendMagicEffect(pos, CONST_ME_MORTAREA)
        setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1)
        doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)
        addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
    else
    local fromp, top = config.fromPosition, config.toPosition
        for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    areapos = {x = x, y = y, z = z, stackpos = 253}
                    cid = getThingfromPos(areapos).uid
                    if isPlayer(cid) then
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)
            doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!')
                      for _,items in ipairs(config.rewards) do
                           doPlayerAddItem(cid, items, 1)
                  end
                     if config.moneyReward[3] == 1 then
                    doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2])
                 end
                    doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING)
                    local goblet = doPlayerAddItem(cid, config.goblet, 1)
                    doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.")
            elseif isMonster(cid) then
            doRemoveCreature(cid)
                    end
                end
            end
        end
    end
end

function pvgaylord()
    local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0
    for x = fromp.x, top.x do
            for y = fromp.y, top.y do
                for z = fromp.z, top.z do
                    local areapos = {x = x, y = y, z = z, stackpos = 253}
                    local cid = getThingfromPos(areapos).uid
                    if isPlayer(cid) then
            p = p+1
            elseif isMonster(cid) then
            m = m+1
                    end
                end
            end
        end
    if p ~= getGlobalStorageValue(config.playerCount) then
        setGlobalStorageValue(config.playerCount, p)
    end
    if p < 2 then
        return true
    end
    addEvent(pvgaylord,100,nil)
end

zombie.png

 

Editado por FidelixMonte
Faltou informação (veja o histórico de edições)

  • Respostas 13
  • Visualizações 556
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local config = { semana_mes = "semana", days = {1,2,3,4,5,6,7}, goblet = 5805, -- id of the gold goblet you'll get when finishing the event. rewards = {2195, 2152, 2160}, -- You will g

Posted Images

Postado

em globalevents posta o zombievent.lua

 

e tbm está dizendo que não possui nenhum monstro com o nome 'zombie event' no servidor

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor

Já está postado em globalevents, no caso ali creio que seja um erro nas linha 81~84 sobre o random de onde os zumbis deverias ser sumonados, mas eu não sei arrumar este tipo de funcao, e a acusação do talkaction sobre  a criatura, ja fiz o monster em pasta, fora da pasta e também declarei ele no monster.xml e nada  :(

Trágico  rsrsrsrsrs! 

Vodkart

sou seu fã! comecei agora no ramo de OT'S e uso muitos scripts de sua autoria! Parabéns por sempre ajudar no fórum!

Editado por FidelixMonte (veja o histórico de edições)

Postado
	local config = {
		semana_mes = "semana",
		days = {1,2,3,4,5,6,7},
		goblet = 5805, -- id of the gold goblet you'll get when finishing the event.
		rewards = {2195, 2152, 2160}, -- You will get this +  a gold goblet with your name on.
		moneyReward = {2160, 10, 1}, -- second collumn(count) 0 if you don't want money to be used. or a stackable item you want more than 1 of.
		playerCount = 2001, -- Global storage for counting the players left/entered in the event
		zombieCount = 2002, -- Global storage for counting the zombies in the event
		teleportActionId = 2008, -- Action id of the teleport needed for the movement script
		teleportPosition = {x = 152, y = 51, z = 7, stackpos = 1}, -- Where the teleport will be created
		teleportToPosition = {x = 37, y = 272, z = 7}, -- Where the teleport will take you
		teleportId = 1387, -- Id of the teleport
		timeToStartEvent = 2, -- Minutes, after these minutes the teleport will be removed and the event will be declared started
		timeBetweenSpawns = 20, -- Seconds between each spawn of zombie
		zombieName = "event zombie", -- Name of the zombie that should be summoned
		playersNeededToStartEvent = 1, -- Players needed before the zombies can spawn.
		
		-- Should be the same as in the creaturescript!
		-- The zombies will spawn randomly inside this area
		fromPosition = {x = 15, y = 274, z = 7}, -- top left cornor of the playground
		toPosition = {x = 68, y = 273, z = 7} -- bottom right cornor of the playground
		}
	function onTime()
		local time = os.date("*t")
		if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then
			local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition)
			doItemSetAttribute(tp, "aid", config.teleportActionId)
			doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
			setGlobalStorageValue(config.playerCount, 0)
			setGlobalStorageValue(config.zombieCount, 0)
			addEvent(startEvent, config.timeToStartEvent * 1000 * 60)
		end
		return TRUE
	end
	function startEvent()
		local get = getThingfromPos(config.teleportPosition)
		if get.itemid == config.teleportId then
			doRemoveItem(get.uid, 1)
		end
		
		local fromp, top = config.fromPosition, config.toPosition
		if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then
			addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
			doBroadcastMessage("Good luck in the zombie event people! The teleport has closed!", MESSAGE_STATUS_WARNING)
			
			for x = fromp.x, top.x do
				for y = fromp.y, top.y do
					for z = fromp.z, top.z do
						areapos = {x = x, y = y, z = z, stackpos = 253}
						getPlayers = getThingfromPos(areapos)
						if isPlayer(getPlayers.uid) then
							doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!")
				pvgaylord()
						end
					end
				end
			end
		else
			doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING)
			for x = fromp.x, top.x do
				for y = fromp.y, top.y do
					for z = fromp.z, top.z do
						areapos = {x = x, y = y, z = z, stackpos = 253}
						getPlayers = getThingfromPos(areapos)
						if isPlayer(getPlayers.uid) then
							doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false)
							doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT)
						end
					end
				end
			end
		end
	end
	function spawnZombie()
		if getGlobalStorageValue(config.playerCount) >= 1 then
			local randomX = math.random(config.fromPosition.x, config.toPosition.x)
			local randomY = math.random(config.fromPosition.y, config.toPosition.y)
			local randomPos = {x = randomX, y = randomY, z = config.fromPosition.z}
			
			doSummonCreature(config.zombieName, randomPos)
			doSendMagicEffect(randomPos, CONST_ME_MORTAREA)
			setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1)
			doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)
			addEvent(spawnZombie, config.timeBetweenSpawns * 1000)
		else
		local fromp, top = config.fromPosition, config.toPosition
			for x = fromp.x, top.x do
				for y = fromp.y, top.y do
					for z = fromp.z, top.z do
						areapos = {x = x, y = y, z = z, stackpos = 253}
						cid = getThingfromPos(areapos).uid
						if isPlayer(cid) then
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)
				doBroadcastMessage(getCreatureName(cid)..' has survived at zombie event!')
						  for _,items in ipairs(config.rewards) do
							   doPlayerAddItem(cid, items, 1)
					  end
						 if config.moneyReward[3] == 1 then
						doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2])
					 end
						doBroadcastMessage(getPlayerName(cid) .. " won the Zombie event! Congratulations!", MESSAGE_STATUS_WARNING)
						local goblet = doPlayerAddItem(cid, config.goblet, 1)
						doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(cid) .. " for winning the Zombie event.")
				elseif isMonster(cid) then
				doRemoveCreature(cid)
						end
					end
				end
			end
		end
	end
	function pvgaylord()
		local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0
		for x = fromp.x, top.x do
				for y = fromp.y, top.y do
					for z = fromp.z, top.z do
						local areapos = {x = x, y = y, z = z, stackpos = 253}
						local cid = getThingfromPos(areapos).uid
						if isPlayer(cid) then
				p = p+1
				elseif isMonster(cid) then
				m = m+1
						end
					end
				end
			end
		if p ~= getGlobalStorageValue(config.playerCount) then
			setGlobalStorageValue(config.playerCount, p)
		end
		if p < 2 then
			return true
		end
		addEvent(pvgaylord,100,nil)
	end

 

Editado por Talesigorvr (veja o histórico de edições)

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Postado
  • Autor

Você editou alguma coisa ?? eu postei ele mas não iniciou, oque você modificou nele? Vlws!

1 hora atrás, Vodkart disse:

em globalevents posta o zombievent.lua

 

e tbm está dizendo que não possui nenhum monstro com o nome 'zombie event' no servidor

Arrumei o monstro obrigado, era o nome que não estava entre ' '. obrigado!

Agora só falta esse erro do sumon! 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo