Ir para conteúdo

Zombie Events + Pagina Gesior.


Isbigo

Posts Recomendados

Olá a todos, venho aqui lhes trazer o script de Zombie Event.

Não tenho certeza se estou postando na areá correta, mais caso eu não esteja por favor movam o tópico.

Mãos a obra.

Zombie Events.



wjdth1.jpg



Testado em: TFS 0.4


Se quiser testar em outro distro responsabilidade de vocês.



Algumas informações sobre ele primeiramente,
Quando o evento está começando você terá certos minutos em você para incorporar o teleport antes que desapareça.
Quando o teleport desaparece mesmo acontece com zombie spawn após 20 segundos.
Zombie iram aparece 1 de cada vez, a cada 20 segundos.
Os players que morrerem no evento, serão teleportados para o templo.
O vencedor do evento, recebe algumas recompensas e um cale-se dourado com seu nome.



Lembrando a areá de evento tem que ser non-pvp para que os possam disputar la.





Vamos la.

Globalevents/scripts/zombie event.lua

local config = {playerCount = 2001, -- Global storage for counting the players left/entered in the eventzombieCount = 2002, -- Global storage for counting the zombies in the eventteleportActionId = 2000, -- Action id of the teleport needed for the movement scriptteleportPosition = {x = 1135, y = 1077, z = 3, stackpos = 1}, -- Where the teleport will be createdteleportToPosition = {x = 1190, y = 1076, z = 7}, -- Where the teleport will take youteleportId = 1387, -- Id of the teleporttimeToStartEvent = 5, -- Minutes, after these minutes the teleport will be removed and the event will be declared startedtimeBetweenSpawns = 20, -- Seconds between each spawn of zombiezombieName = "event zombie", -- Name of the zombie that should be summonedplayersNeededToStartEvent = 5, -- Players needed before the zombies can spawn.-- Should be the same as in the creaturescript!-- The zombies will spawn randomly inside this areafromPosition = {x = 1186, y = 1072, z = 7}, -- top left cornor of the playgroundtoPosition = {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))endfunction startEvent()local get = getThingfromPos(config.teleportPosition)if get.itemid == config.teleportId thendoRemoveItem(get.uid, 1)endlocal fromp, top = config.fromPosition, config.toPositionif getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent thenaddEvent(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 dofor y = fromp.y, top.y dofor z = fromp.z, top.z doareapos = {x = x, y = y, z = z, stackpos = 253}getPlayers = getThingfromPos(areapos)if isPlayer(getPlayers.uid) thendoPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. config.timeBetweenSpawns .. " seconds! Good luck!")endendendendelsedoBroadcastMessage("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 dofor y = fromp.y, top.y dofor z = fromp.z, top.z doareapos = {x = x, y = y, z = z, stackpos = 253}getPlayers = getThingfromPos(areapos)if isPlayer(getPlayers.uid) thendoTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false)doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT)endendendendendendfunction spawnZombie()if getGlobalStorageValue(config.playerCount) >= 2 thenpos = {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)endend


Movements/scripts/zombie event.lua

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


Creaturescripts/scripts/zombie event.lua

local config = {playerCount = 2001, -- Global storage for counting the players left/entered in the eventgoblet = 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 areafromPosition = {x = 1186, y = 1072, z = 7}, -- top left cornor of the playgroundtoPosition = {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) thenif isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) thenif getGlobalStorageValue(config.playerCount) >= 2 thendoBroadcastMessage(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 thenif isInArea(getPlayerPosition(cid), config.fromPosition, config.toPosition) thendoBroadcastMessage(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) dodoPlayerAddItem(cid, items, 1)endif config.moneyReward[3] == 1 thendoPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2])endendfor x = config.fromPosition.x, config.toPosition.x dofor y = config.fromPosition.y, config.toPosition.y dofor z = config.fromPosition.z, config.toPosition.z doareapos = {x = x, y = y, z = z, stackpos = 253}getMonsters = getThingfromPos(areapos)if isMonster(getMonsters.uid) thendoRemoveCreature(getMonsters.uid)endendendendendreturn falseendendreturn trueend


Creaturescripts/scripts/login.lua poste a seguinte função.

registerCreatureEvent(cid, "zombieevent")


Globalevents.xml insira:

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


Movements.xml insira:

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


Creaturescripts.xml insira:

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



Esta parte e de grande importância.



Na pasta Monster crie um arquivo chamado Event zombie.xml e insira isto dentro:

<?xml version="1.0" encoding="UTF-8"?><monster name="Event Zombie" nameDescription="an event zombie" race="undead" experience="280" speed="100" manacost="0"><health now="500" max="500"/><look type="311" corpse="9875"/><targetchange interval="5000" chance="50"/><strategy attack="100" defense="0"/><flags><flag summonable="0"/><flag attackable="0"/><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="2000" min="-350" max="-350"/></attacks><defenses armor="15" defense="10"/><immunities><immunity paralyze="1"/></immunities><voices interval="5000" chance="10"><voice sentence="You wont last long!"/><voice sentence="Mmmmh.. braains!"/></voices><loot><item id="2148" countmax="1" chance="100000"/><!-- gold coin --></loot></monster>



Depois em monstros.xml adicione a seguinte linha:

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



Por pedidos vai ai uma pagina para seu website.



Vá ate "C:/xampp/htdcos/" crie um arquivo chamado Zombieevent.php dentro coloque isso.

<?PHP$main_content .= '<h4 style="" id="pt"><br><center><h2><b> Zombie Event</b></h2></center><br><br><center><object height="350" width="425"><imgsrc="http://i52.tinypic.com/wjdth1.jpg" height="700"width="525"></object></center><br><br><br> </h4><b></b><center><b>O que é o Zombie Event?</b><br><br>É um evento que acontece todos os dias as 12:00, 18:30 e 21:30 hr noservidor.<br><br><br><b>Como funciona?<br></b><br>Quando estiver na hora irá abrir um teleport no mesmo lugar onde aparece oteleport da WoE, basta você entrar e aguardar o tempo para inicio do Evento,o objetivo do jogo é correr dos zombies, a cada 20 segundos irá nascer um novo emalguma área randomica, você deve correr pois se eles te tocarem vocêautomaticamente é retirado do evento e volta para o seu temple.O ultimo jogador que sobrar vivo vence o evento.<br><br><br><b>Quais são os prêmios?<br></b><br>O ganhador irá ganhar<b> 100k</b>, uma <b>Boots of Haste</b> e um <b>Globet com onome dele</b>.<br><br></center>';?>



Depois abra o index.php em "C:/xampp/htdcos/".

Depois de:

case "buypoints":$topic = "Buy Points";$subtopic = "buypoints";include("buypoints.php");break;



Cole isso:

case "zombieevent":$topic = "Zombie event";$subtopic = "zombieevent";include("zombieevent.php");break;



Agora vá em "C:/xampp/htdcos/layout/tibiacom/" abra o arquivo layout.php.

Depois de:

<a href='?subtopic=highscores'><div id='submenu_highscores' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'><div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div><div id='ActiveSubmenuItemIcon_highscores' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div><div class='SubmenuitemLabel'>Highscores</div><div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div></div></a>



Cole isso:

<a href='?subtopic=zombieevent'><div id='submenu_zombieevent' class='Submenuitem'onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'><div class='LeftChain' style='background-image:url(<?PHP echo $layout_name;?>/images/general/chain.gif);'></div><div id='ActiveSubmenuItemIcon_highscores' class='ActiveSubmenuItemIcon'style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div><div class='SubmenuitemLabel'>Zombie Event</div><div class='RightChain' style='background-image:url(<?PHP echo $layout_name;?>/images/general/chain.gif);'></div></div></a>



Agora clique aqui e confira seu zombie events.

Aqui vocês podem baixar o mapa para se usar com este evento:
Download:
Click aqui

Scan:
Clique aqui

Prontinho espero que gostem.


Créditos:


Gatupojk [Pelo script]
DawnOT [Pelo Mapa ]
Isbigo [Por postar ]



Gostou? REP+ button_ok.png

Arrumado Monster.
Site Adicionado.

Link para o comentário
Compartilhar em outros sites

Vou só confirmar uma coisa aqui e se tiver tudo serto vc vai ganhar REP+

 

#EDIT

 

Olha como Sou mapper eu não gostei muito do lugar do evento e arumei um poko mais o Script esta muito bom PARABENS CARA REP+

Link para o comentário
Compartilhar em outros sites

Se você quiser da uma caprichada no MAP eu, posso postar ele para download aqui, e que esse map não e meu foi um que eu vi para download, então descedi postar, coloquei até os creditos ;)

Link para o comentário
Compartilhar em outros sites

[04/09/2011 10:21:09] [Warning - Monsters::loadMonster] Cannot load monster (Event Zombie) file (data/monster/Event Zombie.xml).

[04/09/2011 10:21:09] Line: 33, Info: Premature end of data in tag monster line 2

 

 

 

DEU ESSE ERRO AE DA 1 AJUDINHA AE?

Link para o comentário
Compartilhar em outros sites

Alguma tags no script do seu monstro...

 

Você pós o script correto do monstro que esta aqui?

 

Você esta usando o TFS 0.4?

 

Se estiver usando esses argumentos, irei da uma conferida no possível bug.

Link para o comentário
Compartilhar em outros sites

Alguma tags no script do seu monstro...

 

Você pós o script correto do monstro que esta aqui?

 

Você esta usando o TFS 0.4?

 

Se estiver usando esses argumentos, irei da uma conferida no possível bug.

EU USO TFS DO BAIAK ORIGINAL ;s

 

Mano Quanto Tempo Que o Evento Dura? Para Que O Player Que Ficar Mais Tempo Ganhe A Recompensa?..

Link para o comentário
Compartilhar em outros sites

essa tag

 

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

 

Lá em time mude para o horário que quiser.

Mas como eu faço para colocar tipo, em tal dia ser o evento? ness tag <globalevent name="zombieevent" time="15:00" event="script" value="zombie event.lua"/> só muda o horario nao é? ai vai fazer todos os dias..ou se nao der para programar para tal dia, fazer um comando para que seja Manual, entende?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...