Valoración: 8
Rising Water (TriggeredWaterZone)

Con este Tutorial puedes aprender a hacer lo que todos hemos querido hacer desde que hemos empezado a mapear: hacer subir el nivel del agua (no podemos separar las aguas como Moisés, pero por algo se empieza )


Bueno, este es mi primer Tutorial asi que no se muy bien por donde hay que empezar. Empezaré con lo básico.
Para hacer que suba, o baje (o las dos cosas) el nivel del agua, tenemos que tener claro que en UEd(2.0) no se pueden crear '' moving zones '' así que habrá que hacerlo de manera que se parezca lo máximo posible.

Lo que necesitas para hacer que suba/baje (o las dos cosas) el nivel del agua es:

  • 1 botón (el Tag no se cambia , Event=Dispatcher)
  • 1 Dispatcher (el Tag no se cambia , varios Events)
  • 1 Watersheet (plano con propiedades de agua: transparente, unlit, zoneportal) convertido en Mover (Tag=Water , Event=None)
  • varios TriggerWaterZone info's (Tags= desde Nivel 1 hasta Nivel 5 Events =None)

Para entendernos mejor, lo que en realidad estamos haciendo es dividir la ''piscina'' en varias zonas (como mucho 7), poner un TriggerWaterZone en cada una de las zonas en las que hemos dividido la "piscina" y conectarlas al Dispatcher (que a su vez estará conectado al botón) y jugar con los intervalos de tiempo. Me explico: al pulsar el botón se activara el Mover (Watersheet) que tardara 5 segundos (por ejemplo) en subir o bajar; pues ahora ese tiempo lo tenemos que dividir entre el numero zonas que tenemos (en este caso 5 ) por lo tanto cada TriggerWaterZone se tendra que activar (uno por uno) a intervalos de 1 segundo.

Hasta aquí todo bien lo único malo es que en el UEd(2.0) no hay TriggerWaterZone, pues habrá que hacerlo.... esto es un poco coñazo porque tienes que copiarlo letra a letra sin equivocarte (los espacios también cuentan.....bueno, por lo menos los del principio de cada línea)

Pasos a seguir:

1. Abre el UEd(2.0)

2. Abre el Actor Class Browser---->Info--->ZoneInfo--->WaterZone

3. Dale con el botón derecho del raton a "New"

4. Package: MyLevel

Name: TriggerWaterZone

5. Copia las siguientes líneas en el Script (tienes que borrar lo que haya dentro del Script):

(lo que hay entre los signos iguales realmente no importa .... puedes poner tu nombre si quieres, como hice yo )

 

//======================================================= ======================

// TriggerWaterZone.

// This class allows you to change a zone from a Regular Zone to a Water Zone

// using the normal trigger method.

// Created by Scott 'Slasher IV' Kircher

//======================================================= ======================

class TriggerWaterZone expands WaterZone;

function PostBeginPlay()

{

 Super.PostBeginPlay();

 

 if(!bWaterZone)

 {

  ViewFlash=vect(0,0,0);

  ViewFog=vect(0,0,0);

 }

}

function Trigger( actor Other, pawn EventInstigator )

{

 local Actor A;

 local Pawn P;

 local Decoration D;

 local TriggerWaterZone oldself;

 oldself=self;

 if(bWaterZone)

 {

  bWaterZone=false;

  ViewFlash=vect(0,0,0);

  ViewFog=vect(0,0,0);

  ForEach AllActors(class 'Actor', A)

   if(A.Region.Zone==oldself)

   {

    ActorEntered(A);

    A.ZoneChange(self);

    if(A.Buoyancy>0.0)

    {

     A.SetPhysics(PHYS_Falling);

    }

   }

  ForEach AllActors(class 'Pawn', P)

  {

   if(P.HeadRegion.Zone==oldself)

   {

    P.HeadZoneChange(self);

    P.PainTime=-1.0;

   }

   if(P.FootRegion.Zone==oldself)

   {

    P.FootZoneChange(self);

   }

  }

 }

 else

 {

  bWaterZone=true;

  ViewFlash=Default.ViewFlash;

  ViewFog=Default.ViewFog;

  ForEach AllActors(class 'Actor', A)

   if(A.Region.Zone==oldself)

   {

    ActorEntered(A);

    A.ZoneChange(self);

    if(A.Buoyancy>0.0)

    {

     A.Velocity.Z+=1;

     A.SetPhysics(PHYS_Falling);

    }

   }

  ForEach AllActors(class 'Decoration', D)

   if(D.Region.Zone==oldself)

   {

    D.bBobbing=False;

    D.Bump(self);

   }

  ForEach AllActors(class 'Pawn', P)

  {

   if(P.HeadRegion.Zone==oldself)

   {

    P.HeadZoneChange(self);

    P.PainTime=P.UnderWaterTime;

    P.SetPhysics(PHYS_Swimming);

   }

   if(P.FootRegion.Zone==oldself)

   {

    P.FootZoneChange(self);

   }

  }

 }

}

 

 

 

6. Dale a ''Compile the script'' o simplemente a F7

7. Cierra el Script

8. En el "Actor Class Browser"dale a "View" y luego "Show Packages"

9. Selecciona "My Package" y luego guardalo (Save Pkgs.)

 

 

Bueno ya está con el Script (esto ha sido lo mas difícil)

El resto es fácil:

- Una vez que hayas dividido la piscina en 5 partes con Zone Portals (MUY IMPORTANTE: Al dividir la piscina asegúrate de que los Zone Portals estén 1 unidad por encima o por debajo de la posición que tenga el Mover=WaterSheet en ese instante. Ejemplo si tu ''piscina'' mide 1000 y la divides en 5 partes te queda 200 por cada zona, pues tú tienes que poner los Zone Portals 1 unidad por debajo o por encima, es decir 199 o 201 así el primer ZonePortal estará a 199 o 201, el siguiente estará a 398 o 402, así sucesivamente) tienes que colocar un TriggerWaterZone en cada una de esas zonas.

-Ahora abres las propiedades de lo TriggerWaterZones y en sus correspondientes Tags pones desde Nivel1 hasta Nivel5 (es decir :TriggerWaterZone1--->Tag=Nivel1, TriggerWaterZone2--->Tag=Nivel2, y así con todos)

- Ahora seleccionas todos los TriggerWaterZones y en sus Propiedades--->ZoneInfo: bWaterZone = False (esto solo si quieres que tu piscina empiece vacía y que se vaya llenando, si lo quieres al revés déjalo en True)

- Ahora añade un Dispatcher abre sus propiedades--->Dispatcher--->OutEvents=(te saldrán varios desde 0 a 7) en el primero[0] pon ''Water'' (es el Tag del WaterSheet), en el segundo [1] pon "Nivel1" (el Tag del primer TriggerWaterZone) , y así con todos. Como puedes observar debajo de OutEvents hay otra propiedad llamada OutDelays= en el primero[0] pones 0 (le corresponde al WaterSheet, esto quiere decir que al darle al botón el plano se moverá instantaneamente); en los demas =1

- Ahora tienes que poner un botón que tenga en Event=Dispatcher (el Tag no cambia) si quieres que suba y baje tienes que cambiar en las propiedades del botón ->object->initialstate->TriggerToggle ahora subirá y se quedará así hasta que le vuelvas a dar al botón, que es cuando bajará.

- Ahora haz un Mover (Watersheet =plano con propiedades de agua:transparente, unlit,ZonePortal) y cambia en sus propiedades el Tag (Tag=Water , Event=None)

- Ahora solo te falta añadir un trigger (para el boton) que active al Dispatcher

- Luego si quieres añádele sonidos y ya está!

Si tenéis algun problema o creéis que hay algún fallo decídmelo, nadie es perfeto (y yo menos).

10 Feb 2007, 02:47
#1

muy buena 2face!

10 Feb 2007, 03:37
#2

La verdad es que te lo has currado traduciéndolo n1

10 Feb 2007, 07:58
#3

joder face, buenisima, muchas gracias!

10 Feb 2007, 11:23
#4

muy bien, gracias

10 Feb 2007, 15:32
#5

#2 tradcido y mejorado .... en el tuto original ponia que solo funcionaba 1 vez (triggered once only) pero la verdad esque si cambias la propiedad delboton y lo haces que sea TriggerTogle sube y baja (lo malo es que al volver a bajar el nivel del agua, las zonas se iran transformando de waterzone a ''zona normal de abajo ariba )

10 Feb 2007, 15:42
#6

5#y no se puede hacer otro triger k lo haga al reves y k sea el el k ese ejecute cuando le das a "bajar agua" ?

10 Feb 2007, 20:57
#7

#6 pues mira en eso no habia pensado (en el mapa que hice yo habia otros tres movers conectados al boton y no queria complicarlo mas)......pero supongo que si que se puede.

10 Feb 2007, 21:31
#8

ta bien el tuto face

11 Feb 2007, 19:33
#9

buenissima face......gracioas!

22 Jun 2007, 23:24
#10

soy novato, pregunta, alguien tiene un manual de unreal editor 2.0 o algo que se le parezca...!

23 Jun 2007, 17:04
#11

#10 no creo k exista eso, aunk me parece haber visto algo en internet sobre un libro de tutos .... pero aun asi estara en ingles y sera mas gordo k la biblia ... lo siento

Si kieres aprender a Mapear bajate tutos de internet (la mayoria estan en ingles,o frances pero tambien los hay en español aunk no tantos : P ) busca en google (como hemos hecho todos)

14 Jul 2007, 22:23
#12

muchas gracias face!

22 Nov 2007, 00:01
#13

en el mod SilentAssassins hay un ejemplo de esto, el segundo nivel de las alcantarillas, pero solo sube el agua y se mantiene ahi

29 Nov 2007, 15:46
#14

Tengo un problema, no me puedo mover en 3D por el editor, ya hice lo de BIR, BDR Y BIR+BDR pero no pasa nada.

Por que no puedo? que tengo que hacer? si me pudiese explicar se los agradeceria mucho porque me estoy volviendo loco con eso.

Tengo unas ideas para mapas que estan buenas y me gustaria hacer.

Regístrate para poder comentar.

Si ya estás registrado solo tienes que iniciar sesión.

 
Juegos
Plataformas
Los + visitados