Pokemon Essentials Wiki
Advertisement
Tienda

Comprando objetos en un Tienda.

Esta página explica cómo crear una Tienda Pokémon. Más en general, explicado cómo comprar y vender objetos.

Compras y ventas[]

Cuando se define un objeto, uno de los datos que se definen es el precio de ese objeto. Este es el precio que el jugador deberá pagar al momento de comprar ese objeto en una Tienda. Cuando el jugador vende el objeto en la Tienda, lo venderá a la mitad del precio. Estos precios se pueden modificar individualmente en una Tienda; ver más abajo.

Si un objeto tiene definido en precio de 0, no podrá ser vendido en una Tienda. Además, algunos objetos importantes (como los Objetos Claves o MOs), y también las MTs si están definidas de uso infinito, tampoco pueden ser vendidos, independientemente del precio definido. Aun así, un objeto relevante sí puede ser comprado en una Tienda. En este último caso, solo se puede comprar una unidad a la vez, y desaparecerá de la lista de objetos disponibles cuando el jugador ya lo tenga.

Creación de una Tienda[]

EventoTienda

Un evento de Tienda típico.

Para crear un PNJ que venderá/comprará objetos en una Tienda, utilice el script pbPokemonMart() en un evento de la siguiente manera:

@>Script: pbPokemonMart([
 :      : :POKEBALL,:GREATBALL,
 :      : :POTION,:SUPERPOTION,
 :      : :ANTIDOTE,:PARLYZHEAL,
 :      : :AWAKENING,:BURNHEAL,
 :      : :ICEHEAL,:ESCAPEROPE,
 :      : :REPEL
 :      : ])
@>

Los scripts que muestran la pantalla de la Tienda están en la sección PokemonMart.

Cambiar el precio de un objeto[]

Es posible cambiar el precio de un objeto en una Tienda en particular, o cambiar la cantidad de unidades de un determinado objeto comprará una Tienda (o ambos). No hay límite en la cantidad de objetos que se pueden modificar de esta forma.

Antes de ejecutarse el script pbPokemonMart(), se puede utilizar uno de los siguientes:

setPrice(:POTION,250)
setSellPrice(:POTION,200)
setPrice(:POTION,250,200)

El primer script establecerá el precio de venta de las pociones de la Tienda en $250, en lugar de los $300 por defecto. El precio de compra (es decir, la cantidad de dinero que la Tienda le entrega al jugador a cambio del objeto) es la mitad de ese valor, es decir, $125 en lugar de los $150 por defecto.

El segundo script establecerá el precio de compra de las pociones a $200, en lugar de los $150 por defecto. El precio de venta de las pociones (es decir, la cantidad de dinero que el jugador debe entregarle a la Tienda) seguirá siendo de $300 por defecto, por lo tanto, el precio de compra no debe ser necesariamente la mitad del precio de venta.

El tercer script es una combinación de los primeros dos. Establece tanto el precio de venta como el de compra para las pociones.

Se pueden utilizar estos scripts todas las veces que se desee. No es necesario ponerlos en el mismo script pbPokemonMart() del comando de evento. Sus efectos se guardan en una variable temporal y solo afectará a la siguiente Tienda que se acceda, por lo que tiene sentido ponerlo justo antes de acceder a dicha Tienda. Es totalmente posible terminar usando una gran cantidad de estos scripts dependiendo de cuánto se quiera controlar la economía del juego.

Creación de un PNJ vendedor[]

Un vendedor es un PNJ que vende objetos, pero no es una Tienda (es decir, el jugador no puede venderle objetos y la pantalla de compras no es mostrada). Este tipo de NPJ puede vender objetos raros o exóticos, u objetos más comunes a precios reducidos.

El evento del NPJ vendedor contiene mensajes y condiciones que preguntan al jugador si quiere comprar sus objetos. La transacción real (es decir, tomar el dinero, entregar el objeto) puede ser agregada fácilmente en el evento utilizando la siguiente nota:

Notas: SellItem(POTION,150)

El número es el precio al que será vendido el objeto. Cuando el juego es compilado, esta nota es eliminada, en su lugar se tendrán los siguientes comandos:

@>Condiciones y efectos : Dinero Mayor de 150
  @>Condiciones y efectos : Script: $PokemonBag.pbCanStore?(PBItems::POTION)
    @>Cambiar dinero : - 150
    @>Texto: \G¡Aquí tienes!
    @>Script: Kernel.pbReceiveItem(PBItems::POTION)
    @>
   : Excepción
    @>Texto: \GNo tienes más especio en la Mochila.
    @>
   : FIN
  @>
 : Excepción
  @>Texto: \GNo tienes el dinero suficiente.
  @>
 : FIN
@>

Si el precio del objeto es 0, entonces la primera condición que válida la cantidad de dinero del jugador es omitida. Sin embargo, en caso de que el PNJ simplemente le entregara al jugador un objeto, esta sería una forma larga de hacerlo. Sin embargo, podría ser una manera corta de codificarlo.

Tenga en cuenta que los comandos SOLAMENTE realizarán la transacción en sí. Aún se tiene que agregar texto y opciones que le permitan al jugador decidir si quiere comprar el objeto o no.

Consejos[]

  • Los juegos de Pokémon más recientes cambian la cantidad de objetos disponibles para comprar dependiendo de la cantidad de medallas de gimnasio que tenga el jugador en lugar de la ubicación de la Tienda. Simplemente, se agregan los comandos Condiciones y efectos que validen este número, y llamen a distintas versiones de pbPokemonMart en cada caso (sin diferentes objetos).
  • Se podrían tener algunas Tiendas que tengan mayor demanda de ciertos objetos dependiendo de diferentes factores. Por ejemplo, una Tienda en un desierto pagará más por bebidas, o una Tienda que tenga descuentos en algunos objetos como promociones temporales.
Advertisement