Dark-Tibia


En este foro encontras ayuda subre tu Otserver
 
ÍndicePortalFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse
Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» johnnathann
Sáb Sep 15, 2012 8:48 pm por johnnathannj

»  [8.70] Real Global Map 1.8 + Imagenes + Scans
Lun Jun 11, 2012 4:53 am por Lazcano

» Speedy War [8.60]
Vie Mar 30, 2012 2:12 pm por GOD ALE

»  [Rpg-Pvp][8.60]Kreuus Easy
Jue Mar 29, 2012 11:42 pm por GOD ALE

» [Script] Royal Crossbow!
Jue Mar 29, 2012 11:22 pm por GOD ALE

» Ayuda con el ot server
Jue Mar 29, 2012 10:45 pm por GOD ALE

»  Tiko ot editado 8.60
Jue Mar 29, 2012 10:34 pm por GOD ALE

»  VikiRanch.'[8.60] war v.1.0
Jue Mar 29, 2012 9:54 pm por GOD ALE

» Abrir Puertos De Tibia En El Router Thomson tg585 de telmex
Vie Oct 28, 2011 1:21 pm por panda

Mejores posteadores
Dj Pacos
 
admin heber723
 
God Maracula
 
GoD Mexicansoul
 
God Dunckan
 
Admin Azteca
 
Slayer
 
God Damubu
 
DJ Punk
 
Glonlova
 

Comparte | 
 

 [GLOBALEVENT] Zombie Event

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Dj Pacos
Admin
Admin


100

Mensajes : 169
Puntos : 294
Reputación : 56
Fecha de inscripción : 01/05/2011
Edad : 24

MensajeTema: [GLOBALEVENT] Zombie Event   Jue Mayo 05, 2011 12:05 pm

Se abre un teleport por 5 minutos y el que quiere entrar a la competencia entra a este. Los players son teleportados a una zona que tu elijas.

NOTA: La zona debe ser NO-PVP y NO-LOGOUT

Luego de que pasan los 5 minutos comienzan a aparecer zombies en dicha zona y los players que sean tocados son devueltos al templo, el ultimo player que quede gana una recompensa!

1. Se van a Data/ Globalevents / scripts. Aqui en esta carpeta copian un archivo .lua y le cambian el nombre a "zombieevent" y pegan esto dentro:

Código:

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}, -- Coordenadas donde el teleport sera creado
    teleportToPosition = {x = 1190, y = 1076, z = 7}, -- Coordenadas del teleport a donde el teleport k aparece te lllevara
    teleportId = 1387, -- Id of the teleport
    timeToStartEvent = 5, -- Despues de estos minutos el teleport sera serrado y el evento empezara
    timeBetweenSpawns = 20, -- Segundos k tardaran cada uno de los zombies para aparecer
    zombieName = "event zombie", -- nombre del monstruo k sera invocado
    playersNeededToStartEvent = 5, -- Players needed before the zombies can spawn.
   
    -- Estas coordenadas deben ser exactamente las mismas k en Movement!
    -- Los zombies seran invocados aleatoriamente en esta area
    fromPosition = {x = 1186, y = 1072, z = 7}, -- ezkierda arriba
    toPosition = {x = 1195, y = 1081, z = 7}, -- derecha abajo estas 2 coordenadas izkierda y derecha forman un cuadrado no sean Loquendos y esto es lo ultimo por editar aki
    }

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

2. Ahora se van a Data / Movements /scripts. Aqui lo mismo de siempre COPIAN un .lua y le ponen el nombre de "zombieevent" y le pegan esto dentro:

Código:

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 true
end

function tpBack(cid, fromPosition)
    doTeleportThing(cid, fromPosition, true)
    doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT)
end

3. Ahora vamos a Data / Creaturescripts / scripts. Otra vez copian nombran "zombieevent" y pegan esto dentro:

Código:

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}, -- second collumn(count) 0 if you don't want money to be used. or a stackable item you want more than 1 of.
   
    -- Estas coordenadas deben ser exactamente las misma del script en blobal event!
    -- Los zombies seran invocados aleatoriamente en esta coordenada
    fromPosition = {x = 1186, y = 1072, z = 7}, -- supongo k ya saben como es esto 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
    end
return true
end

En este script de arriba que acabamos de poner donde dice: rewards = {2195, 2152, 2160} yo le elimine las 2 primeras recompenzas que son Boots of Haste y Platinum coin, Le dejé el 2160 por que son Crystal Coins.

Donde dice: moneyReward = {2160, 10, 1} Ahi pueden cambiar la cantidad de Crystal Coins que ganará el ultimo player que quede, {2160 = el Id del item que ganará osea Crystal Coins, 10 = cantidad de Crystal Coins, 1 = activado y 0 = Desactivado} Yo lo puse asi moneyReward = {2160, 50, 1}

4. Luego en Creaturescripts/scripts/login.lua copian esta linea abajo de los registers:

Código:

registerCreatureEvent(cid, "zombieevent")

5. Ahora se van a Data / Global Event y abren el archivo globalevent.xml y pegan esto:

Código:

<globalevent name="zombieevent" interval="xxx" event="script" value="zombieevent.lua"/>

Donde dice interval="xxx" xxx = el tiempo que se tomará el evento para ejecutarce, 300 equivale a 5 minutos.

6. Ahora van Data / Movement y abren el archivo movement.xml y pegan:

Código:

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

7. Ahora van a Data / CreatureScript y abren el archivo creaturescript.xml y pegan esto dentro:

Código:

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

8. Ahora se van a Data / Monsters y copian un archivo .lua y le cambian el nombre a "Event Zombie" y dentro le pegan esto:

Código:

<?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"/>
        <immunity invisible="1"/>
    </immunities>
    <voices interval="5000" chance="10">
        <voice sentence="You wont last.. long!"/>
        <voice sentence="Mmmmh.. braains!"/>       
        <voice sentence="Your... time is over!"/>       
        <voice sentence="Where are you.. going!"/>
    </voices>
    <loot>
        <item id="2148" countmax="1" chance="100000"/><!-- gold coin -->
    </loot>
</monster>

9. Ahora dentro de monsters.xml pegan esto:

Código:

<monster name="Event Zombie" file="Event Zombie.xml"/>


Eso seria todo! Perdon por el mega post pero creo que es un event muy divertido y vale la pena!

Ahora algunas imagenes:






De aqui se pueden descargar el mapa que se ve en las imagenes: http://www.speedyshare.com/files/27615761/Arena.rar

Eso seria todo! Espero que a alguien le interese y no me haya hecho el esfuerzo por nada Razz

Creo que me meresco un poquito de repp+ Smile

Creditos:
70% Gatupojk
30% kudzu1988

Volver arriba Ir abajo
Ver perfil de usuario
God Maracula
Admin
Admin


100

Mensajes : 81
Puntos : 102
Reputación : 4
Fecha de inscripción : 04/05/2011
Edad : 23
Localización : C: Vaguiando

MensajeTema: Re: [GLOBALEVENT] Zombie Event   Jue Mayo 05, 2011 12:50 pm

Mucha we mucha

+*REP*

_________________


Maracula Up!
¡Se Que Es Difisil! Pero;


Den +REP

Visitame en mis mejores post
Spoiler:
 

Tansolo Clickea en spoiler y podras verlos!

Mi Ot Server ESTA!
Volver arriba Ir abajo
Ver perfil de usuario
admin heber723
Admin
Admin


100

Mensajes : 128
Puntos : 1163
Reputación : 16
Fecha de inscripción : 27/04/2011

MensajeTema: Re: [GLOBALEVENT] Zombie Event   Jue Mayo 05, 2011 1:58 pm

si esta bien chido este event aunque es muy rapido xD +rep

_________________
Si nesesitas ayuda puedes consultarme en:
Ironmancast@hotmail.com
Volver arriba Ir abajo
Ver perfil de usuario
GoD Mexicansoul
Aportador
Aportador


50

Mensajes : 72
Puntos : 157
Reputación : 25
Fecha de inscripción : 27/04/2011

MensajeTema: Re: [GLOBALEVENT] Zombie Event   Jue Mayo 05, 2011 4:37 pm

Buena pero ya lo habia visto pero no en este foro Wink
Volver arriba Ir abajo
Ver perfil de usuario
God Dunckan
Nivel 4
Nivel 4


100

Mensajes : 67
Puntos : 192
Reputación : 22
Fecha de inscripción : 03/05/2011

MensajeTema: Re: [GLOBALEVENT] Zombie Event   Miér Mayo 11, 2011 7:53 pm

Buena Wee reeep

_________________
God Dunckan Very Happy:D







dangerous-ot.servegame.com 8.60 entren y diviertansee..!!!!!
Volver arriba Ir abajo
Ver perfil de usuario
Contenido patrocinado




MensajeTema: Re: [GLOBALEVENT] Zombie Event   Hoy a las 9:20 am

Volver arriba Ir abajo
 
[GLOBALEVENT] Zombie Event
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» El Refugio, nuevo foro Zombie
» (AYUDA)Busco temas de zombie o resident evil para mi foro
» Zombie War Z v1.2.3 Apk Mod
» ZOMBIE HQ APK + DATA FILE VERSION 1.7.4 {ILIMITADO ORO Y Z}
» [Juego] ZOMBIE PANIC IN THE WONDERLAND PLUS (MOD OFFLINE, SIN PUBLICIDAD, TODO DESBLOQUEADO)

Permisos de este foro:No puedes responder a temas en este foro.
Dark-Tibia :: Scripts-
Cambiar a: