NA
pedido

Zombie Event Para Heroserv

Por Nathan Fischer, 10 de set. de 2012 em Scripts

heroserv
zombie event
tfs 0.4
12
3.2k
Nathan FischerN
10 de setembro de 2012 às 19:06

Queria pedir se alguem tem o mapa heroserv com zombie event

 

Ou tem uma versão zombie event pra ele TFS 0.3.6

 

Pode ser tb o mapa heroserv em tfs 0.4

 

 

REP+ por 2 semanas quem conseguir

15790911
10 de setembro de 2012 às 19:12

Zombie events

 

wjdth1.jpg

 

Testado em TFS 0.3.6.

Se alguem quiser testar em 0.4, e funcionar, avise!!

 

 

Vamos lá:

 

Globalevents/scripts/zombieevent.lua:

 

 

local config = {

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 = 2000, -- Action id of the teleport needed for the movement script

teleportPosition = {x = 1135, y = 1077, z = 3, stackpos = 1}, -- Where the teleport will be created

teleportToPosition = {x = 1190, y = 1076, z = 7}, -- Where the teleport will take you

teleportId = 1387, -- Id of the teleport

timeToStartEvent = 5, -- 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 = 5, -- 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 = 1186, y = 1072, z = 7}, -- top left cornor of the playground

toPosition = {x = 1195, y = 1081, z = 7}, -- bottom right cornor of the playground

}

 

function onTimer()

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)

print(getGlobalStorageValue(2001))

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!")

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) >= 2 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)

end

end

 

 

 

 

Movements/scripts/zombieevent.lua:

 

 

 

local config = {

playerCount = 2001, -- Global storage for counting the players in the event maxPlayers = 15, -- Max players who can participate } function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getGlobalStorageValue(config.playerCount) < config.maxPlayers then setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)+1) if getGlobalStorageValue(config.playerCount) == config.maxPlayers then doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(config.playerCount) .. " players]! The event will soon start.") else doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(config.playerCount) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) end else addEvent(tpBack, 1000, cid, fromPosition) doPlayerSendCancel(cid, "The event is full. There is already " .. config.maxPlayers .. " players participating in the quest.") return false end print(getStorage(config.playerCount) .. " Players in the zombie event.") return trueend function tpBack(cid, fromPosition) doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)

end

 

 

Creaturescripts/scripts/zombieevent.lua

 

 

local config = {

playerCount = 2001, -- Global storage for counting the players left/entered in the event 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. -- {moneyId, count, using? 1 for using moneyReward, 0 for not using.} moneyReward = {2160, 10, 1}, -- Should be same as in the globalevent! -- The zombies will spawn randomly inside this area fromPosition = {x = 1186, y = 1072, z = 7}, -- top left cornor of the playground toPosition = {x = 1195, y = 1081, z = 7}, -- bottom right cornor of the playground } 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")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) setGlobalStorageValue(config.playerCount, getGlobalStorageValue(config.playerCount)-1) 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")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) 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 end for x = config.fromPosition.x, config.toPosition.x do for y = config.fromPosition.y, config.toPosition.y do for z = config.fromPosition.z, config.toPosition.z do areapos = {x = x, y = y, z = z, stackpos = 253} getMonsters = getThingfromPos(areapos) if isMonster(getMonsters.uid) then doRemoveCreature(getMonsters.uid) end end end end end return false end endreturn true

end

 

 

Login.lua (creaturescripts:

 

 

registerCreatureEvent(cid, "zombieevent")

 

 

Globalevents.xml:

 

 

 

<globalevent name="zombieevent" time="15:00" event="script" value="zombie event/globalevent.lua"/>

 

 

 

<movevent type="StepIn" actionid="2000" event="script" value="zombie event/movement.lua"/>

 

 

 

<event type="statschange" name="zombieevent" event="script" value="zombie event/creaturescript.lua"/>

 

 

 

Caso voce n tenha o monstro zombie, vai aki:

 

event zombie.xml

 

 

<monster name="Zombie Event" nameDescription="an event zombie" race="undead" experience="480" speed="170" manacost="0">

<health now="200000000" max="200000000"/>

<look type="311" corpse="9875"/>

<targetchange interval="5000" chance="50"/>

<strategy attack="100" defense="0"/>

<flags>

<flag summonable="0"/>

<flag attackable="1"/>

<flag hostile="1"/>

<flag illusionable="0"/>

<flag convinceable="0"/>

<flag pushable="0"/>

<flag canpushitems="1"/>

<flag canpushcreatures="1"/>

<flag targetdistance="1"/>

<flag staticattack="90"/>

<flag runonhealth="0"/>

</flags>

<attacks>

<attack name="melee" interval="1000" min="-1500" max="-2350"/>

</attacks>

<defenses armor="0" defense="0"/>

<immunities>

<immunity paralyze="1"/>

<immunity invisible="1"/>

<immunity fire="1"/>

<immunity energy="1"/>

<immunity poison="1"/>

</immunities>

<voices interval="5000" chance="10">

<voice sentence="You wont last long!"/>

<voice sentence="Mmmmh.. braains!"/>

</voices>

<script>

<event name="ZombieThink"/>

<event name="ZombieDeath"/>

</script>

<loot>

 

</loot>

</monster>

 

 

monsters.xml:

 

 

<monster name="Event zombie" file="event zombie.xml"/>

 

Editado Setembro 10 por GuizitoG

NewtonnotwenN
10 de setembro de 2012 às 19:12

Seção errada.

 

Reportado para moverem.

Nathan FischerN
10 de setembro de 2012 às 19:31

GuizitoG

Vou ver aki se funcionar dou REP+

15790911
10 de setembro de 2012 às 19:36

Desculpe pela zona que está dentro dos spoilers ;// não sei porque n ficou bunitinho linha por linha...

 

E não se esqueça de arrumar os files, (nas tags que vao nos xml tipo

<event type="statschange" name="zombieevent" event="script" value="zombie event/creaturescript.lua"/>

Coloquei todos em negrito pra facilitar!

Editado Setembro 10 por GuizitoG

Nathan FischerN
10 de setembro de 2012 às 19:43

Cara não deu -- Eu tenho esse script que peguei do Baiak Extreme

Os tipos de erro são:

- O zombie fica hitando até matar

- Erro Function Ontimer

- Quando inicia o evento -- fuction notfound (zombievent)

 

Tem como testar ai e passar por msn?? nathan-300@hotmail.com

 

Versão = Heroserv 0.0.6

15790911
11 de setembro de 2012 às 15:18

Bom, pra qm n sabe n consegui resolver pelo msn, mas para os que também teem a duvida e pra ele também (é pk ele ta off no msn) encontrei um zombie event para all tfs, nao testei, achei no ot land, vai aí:

 

http://otland.net/f163/zombie-event-without-bugs-work-all-forgotten-server-144357/

elliE
11 de setembro de 2012 às 18:21

Caso vc solucionou problema fala, porque tenho esse mesmo problema ;s

Nathan FischerN
15 de setembro de 2012 às 22:59

Eu mesmo consegui

Por favor fexem o tópico

elliE
15 de setembro de 2012 às 23:26

Nathan eu ja te add msn, me arruma veio, tbm preciso ! plz ... sou o Eliton_cnb

mas vc nem ta online ;/

CriticalC
16 de setembro de 2012 às 17:21

Dúvida sanada, tópico movido.

 

Atenciosamente, Critical.

7 meses depois...
xCookieX
27 de abril de 2013 às 21:49

forward.png Nathan me adc SKYPE person.png Lukinhasthunder / MSN people.png william-_-honorio@hotmail.com , se puder me passa o mapa me ajudaria d+ rolleyes.gif ,agradeço button_ok.png