Bom gente, coloquei um zombie event no meu server, está tudo ok, menos os Zombies.. É assim:
1- O Zombie NÃO pode ser atacado;
2- O Zombie NÃO mata o player em 1 hit(estou com DONATE Set, mas devia funcionar) tem que matar o player ao encostar no mesmo;
3- Como um KNIGHT vai participar do evento, se o zombie tem que matar o player em 1 hit? Somente encostando no player;
4- Como configuro para quando sobrar apenas 1 player na arena, acabar o evento e ele receber os prêmios, depois de 3 segundos ?
Ai vai o meu evento:
creaturescripts/scripts/login.lua
registerCreatureEvent(cid, "zombieevent")
creaturescripts/scripts/zombieevent.lua
local config = {
playerCount = 2001, -- Storage dos players que entram e sai do evento
goblet = 5805, -- Troféu que vai pro vencedor do evento
rewards = {2195, 2152, 2160}, -- Recompensas.
moneyReward = {2160, 10, 1}, -- {moneyId, quantidade, usar}1 pra usar 0 pra não usar}
-- Area que o zumbi vai spawnar
fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até
toPosition = {x = 577, y = 600, z = 7} -- em baixo toPostion
}
function onStatsChange(cid, attacker, type, combat, value)
if isPlayer(cid) and isMonster(attacker) then
if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then
if getGlobalStorageValue(config.playerCount) >= 2 then
doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED)
local corpse = doCreateItem(3058, 1, getPlayerPosition(cid))
doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")
elseif getGlobalStorageValue(config.playerCount) == 1 then
if isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) then
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.")
local corpse = doCreateItem(3058, 1, getPlayerPosition(cid))
doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".")
local teleportPos = {x = 652, y = 1020, z = 7, stackpos = 1} -- Posição em que se abre o teleport
local teleportId = 1387
function onTimer()
for i = 1, 255 do
teleportPos.stackpos = i
if getThingFromPos(teleportPos).itemid == teleportId then
doRemoveItem(getThingFromPos(teleportPos).uid, 1)
end
end
return true
end
globalevents/scripts/zombieevent.lua
local config = { semana_mes = "semana",
days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento
goblet = 5805, -- Troféu que vai pro vencedor do evento
rewards = {2195, 2152, 2160}, -- Recompensas.
moneyReward = {2160, 10, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar}
playerCount = 2001, -- Storage dos players que entram e sai do evento
zombieCount = 2002, -- Storage do zombie do event
teleportActionId = 2008, -- Action ID do teleport
teleportPosition = {x = 652, y = 1020, z = 7, stackpos = 1}, -- Onde o teleport é criado
teleportToPosition = {x = 559, y = 589, z = 7}, -- Pra onde será teleportado
teleportId = 1387, -- ID do teleporte
timeToStartEvent = 2, -- Minutos que o portal irá ficar aberto até os player entrarem
timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie
zombieName = "event zombie", -- Nome do zombie sumonado
playersNeededToStartEvent = 3, -- Players necessários pro evento ser iniciado
-- Area que o zumbi vai spawnar
fromPosition = {x = 543, y = 578, z = 7}, -- top de fromPosition até
toPosition = {x = 577, y = 600, z = 7} -- -- em baixo toPostion
}
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)
doBroadcastMessage("Zombie event starting in " .. config.timeToStartEvent .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
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)
doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(config.zombieCount) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED)
Pergunta
jvcasarin 56
Bom gente, coloquei um zombie event no meu server, está tudo ok, menos os Zombies.. É assim:
1- O Zombie NÃO pode ser atacado;
2- O Zombie NÃO mata o player em 1 hit(estou com DONATE Set, mas devia funcionar) tem que matar o player ao encostar no mesmo;
3- Como um KNIGHT vai participar do evento, se o zombie tem que matar o player em 1 hit? Somente encostando no player;
4- Como configuro para quando sobrar apenas 1 player na arena, acabar o evento e ele receber os prêmios, depois de 3 segundos ?
Ai vai o meu evento:
creaturescripts/scripts/login.lua
creaturescripts/scripts/zombieevent.lua
globalevents/scripts/fechazombie.lua
monsters/Zombie event.xml
movements/scripts/zombieevent.lua
local config = { playerCount = 2001, -- Storage do players do evento
Créditos:
Smart Maxx
POR FAVOR ME AJUDEM!
up
up
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados