IS

Zombie Events + Pagina Gesior.

Por Isbigo, 03 de set. de 2011 em Globalevents e Spells

otserv
tibia
script
89
37k
IsbigoI
03 de setembro de 2011 às 19:03

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.

Editado Agosto 1 por Frenvius

RajasR
03 de setembro de 2011 às 19:16

esse dae nao tem a pagina para o website?

IsbigoI
03 de setembro de 2011 às 19:29

Aqui estou sem mais logo mais posso arrumar.

LukaszGL
03 de setembro de 2011 às 19:35

Aprovado PARABENS.

IsbigoI
03 de setembro de 2011 às 19:37

Valeu obrigado.

LukaszGL
03 de setembro de 2011 às 19:53

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+

IsbigoI
03 de setembro de 2011 às 19:57

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 ;)

LtkshowL
04 de setembro de 2011 às 10:23

[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?

IsbigoI
04 de setembro de 2011 às 13:06

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.

LtkshowL
07 de setembro de 2011 às 11:24

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?..

07 de setembro de 2011 às 11:31

Poste a Parte do site cara !

baiakudaotsB
08 de setembro de 2011 às 13:03

Como faço para mudar o horario do evento...ou entao qual o comando para fazer criar o teleport e começar o evento :x???

SkyDangerousS
08 de setembro de 2011 às 13:15

essa tag

 

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

 

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

baiakudaotsB
08 de setembro de 2011 às 18:25

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?

osbrotO
08 de setembro de 2011 às 20:06

Sem palavras, topico bem organizado, post muito bom mesmo, e acima de tudo script incrivel, parabens!!!