Advertisement
warriortimmy

Complementary Script

Mar 12th, 2011
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 30.18 KB | None | 0 0
  1. =begin
  2.  
  3.   *** SCRIPT CREADO POR NEWOLD, FEBRERO-MARZO 2011, TRIPLE TRIAD 1.0 ***
  4.  
  5. =end
  6.  
  7.  
  8. # =============================================================================
  9. # *****************************************************************************
  10. # =============================================================================
  11. class Game_Interpreter
  12.   # ---------------------------------------------------------------------------
  13.   def getcard(*ids)
  14.     # Función para asignar cartas al mazo del jugador y de los enemigos
  15.     # -------------------------------------------------------------------------
  16.     # Debug_mode: En modo debug a todas las cartas se le otorgan estos valores
  17.     # de ataque: Ataques Arriba e Izquierdo 8 | Ataques Abajo y Derecho = 10
  18.     # (Útil para comprobar las reglas y combos de forma rápida)
  19.     # No olvidar desactivar esta variable para salir del modo debug
  20.     debug_mode = true
  21.     # -------------------------------------------------------------------------
  22.     min_atk = 1  # Ataque mínimo que tendrán las cartas
  23.     max_atk = 10 # Ataque Máximo que tendrán las cartas
  24.     cards_add = false # flaq para indicar si la operación de añadir cartas
  25.                       # se ha podido efectuar con éxito
  26.     # *************************************************************************
  27.     # Loop para recorrer todos los parámetros pasados
  28.     # *************************************************************************
  29.     ids.each do |id|
  30.       # Conseguir la carta
  31.       card = Newold::CARDS::Cards[id]
  32.       # Valor que indica si la carta es una carta única
  33.       cartaunica = card[4]
  34.       # Si la carta es única se comprueba que no haya sido ya añadida a algún
  35.       # mazo de cartas enemigo o al del jugador y en caso de que ya esté
  36.       # añadida se descartará esta carta
  37.       if cartaunica == 1
  38.         if $deck['uniquecards'].include?(id)
  39.           if ids.size == 1
  40.             return false
  41.           else
  42.             next
  43.           end
  44.         end
  45.       end
  46.       next if card == nil
  47.       # Creando una id única para la carta
  48.       if $deck['uniqueid'][id] != nil
  49.         $deck['uniqueid'][id] += 1
  50.       else
  51.         $deck['uniqueid'][id] = 0
  52.       end
  53.       size = $deck['uniqueid'][id]
  54.       uniqid = "#{id}_#{size}"
  55.       # Nombre de la imagen de la carta
  56.       cardimagename = card[0]
  57.       # Posición de los valores de ataque
  58.       posvalatk = card[5]
  59.       # Nombre del personaje o técnica
  60.       name = card[1]
  61.       # Elemento de la carta
  62.       element = card[2]
  63.       # Propietario de la carta (Se usa para asignar el color a la carta en el
  64.       # tablero de juego y puede ser 0 = Jugador y 1 = Enemigo)
  65.       owner = (!@enemybuild ? 0 : 1)
  66.       # Dueño original de la carta. Este valor se usa para decidir cuando una
  67.       # carta formaba parte de la baraja del jugador pero fue robada por un
  68.       # enemigo o viceversa (las cartas robadas por el enemigo tendrán
  69.       # porcentajes de ser jugadas por éste en otra partida. Contra mejor sea
  70.       # la carta más fácil será que la juegue)
  71.       # (0 = Jugador y 1 = Enemigo))
  72.       oldowner = (!@enemybuild ? 0 : 1)
  73.       # Valores de ataque de la carta
  74.       if card[4] == 0 # Carta de ataque variable
  75.         mod = [-3,-2,-1,0,1,2,3] # variabilidad del ataque
  76.         v = rand(mod.size)
  77.         atk_arr = card[3][0] + mod[v] # Ataque Arriba
  78.         v = rand(mod.size)
  79.         atk_izq = card[3][1] + mod[v] # Ataque Izquierda
  80.         v = rand(mod.size)
  81.         atk_der = card[3][2] + mod[v] # Ataque Derecha
  82.         v = rand(mod.size)
  83.         atk_aba = card[3][3] + mod[v] # Ataque Abajo
  84.       else # Carta de ataque fijo
  85.         atk_arr = card[3][0]
  86.         atk_izq = card[3][1]
  87.         atk_der = card[3][2]
  88.         atk_aba = card[3][3]
  89.       end
  90.       # Aplicar límites a los valores de ataque
  91.       # -----------------------------------------------------
  92.       # Limitando Ataque Arriba
  93.       if atk_arr > max_atk then atk_arr = max_atk end
  94.       if atk_arr < min_atk then atk_arr = min_atk end
  95.       # Limitando Ataque Izquierda
  96.       if atk_izq > max_atk then atk_izq = max_atk end
  97.       if atk_izq < min_atk then atk_izq = min_atk end
  98.       # Limitando Ataque Derecha
  99.       if atk_der > max_atk then atk_der = max_atk end
  100.       if atk_der < min_atk then atk_der = min_atk end
  101.       # Limitando Ataque Abajo
  102.       if atk_aba > max_atk then atk_aba = max_atk end
  103.       if atk_aba < min_atk then atk_aba = min_atk end
  104.       # -----------------------------------------------------
  105.       # Categoria de la carta
  106.       categoria = card[6]
  107.       # -----------------------------------------------------
  108.       # Construyendo la nueva carta
  109.       if debug_mode
  110.         atk_der = atk_aba = 10
  111.         atk_arr = atk_izq = 8
  112.       end
  113.       newcard = [uniqid,name,element,[atk_arr,atk_izq,atk_der,atk_aba],
  114.       cartaunica,owner,oldowner,cardimagename,posvalatk,categoria]
  115.       # Asignando la carta al deck (mazo de cartas) para que pueda ser usada.
  116.       # (En caso de que la carta sea única, solo será añadida una vez)
  117.       if !@enemybuild
  118.         # Mazo del jugador
  119.         if $deck['player'][id] != nil
  120.           $deck['player'][id].push(newcard)
  121.         else
  122.           $deck['player'][id] = []
  123.           $deck['player'][id].push(newcard)
  124.         end
  125.       else
  126.         # Mazo del enemigo
  127.         if @especificid != nil
  128.           enemyid = "#{@especificid}_#{@map_id}"
  129.         else
  130.           enemyid = "#{@event_id}_#{@map_id}"
  131.         end
  132.         if $deck['enemy'][enemyid] == nil
  133.           $deck['enemy'][enemyid] = []
  134.         end
  135.         if $deck['enemy'][enemyid][id] != nil
  136.           $deck['enemy'][enemyid][id].push(newcard)
  137.         else
  138.           $deck['enemy'][enemyid][id] = []
  139.           $deck['enemy'][enemyid][id].push(newcard)
  140.         end
  141.       end
  142.       if cartaunica == 1
  143.         $deck['uniquecards'].push(id)
  144.       end
  145.       cards_add = true
  146.     end
  147.     # *************************************************************************
  148.     if cards_add
  149.       return 1
  150.     else
  151.       return -1
  152.     end
  153.     # -------------------------------------------------------------------------
  154.   end
  155.   # ---------------------------------------------------------------------------
  156.   def getcardrandom(n,*ids)
  157.     # Asigna un número 'n' de cartas al jugador de entre las 'ids' dadas
  158.     cards = []
  159.     s = 0
  160.     while n > 0
  161.       r = getcard(ids[rand(ids.size)])
  162.       while r == -1
  163.         r = getcard(ids[rand(ids.size)])
  164.       end
  165.       n -= 1
  166.     end
  167.   end
  168.   # ---------------------------------------------------------------------------
  169.   def buildeck(*ids)
  170.     # Funcion para asignar cartas al NPC con el que se está hablando
  171.     @enemybuild = true
  172.     enemyid = "#{@event_id}_#{@map_id}"
  173.     if $deck['enemy'][enemyid] != nil
  174.       while cards_enemy?(enemyid) < 10
  175.         getcard(ids[rand(ids.size)]) # Aleatorio
  176.       end
  177.       @enemybuild = nil
  178.       return -1
  179.     end
  180.     cards = []
  181.     for i in 0...ids.size
  182.       #getcard(ids[rand(ids.size)]) # Aleatorio
  183.       getcard(ids[i])
  184.     end
  185.     @enemybuild = nil
  186.   end
  187.   # ---------------------------------------------------------------------------
  188.   def buildeck_byid(id,*ids)
  189.     # Funcion para asignar cartas al NPC en el mapa actual con id igual a id dada
  190.     @enemybuild = true
  191.     @especificid = id
  192.     enemyid = "#{id}_#{@map_id}"
  193.     if $deck['enemy'][enemyid] != nil
  194.       while cards_enemy?(enemyid) < 10
  195.         getcard(ids[rand(ids.size)]) # Aleatorio
  196.       end
  197.       @enemybuild = nil
  198.       @especificid = nil
  199.       return -1
  200.     end
  201.     for i in 0...ids.size
  202.       getcard(ids[i])
  203.     end
  204.     @enemybuild = nil
  205.     @especificid = nil
  206.   end
  207.   # ---------------------------------------------------------------------------
  208.   def forze_addcard_toenemy(id,*ids)
  209.     # Añade 1 o más cartas al deck del NPC cuya id es igual a la id dada
  210.     enemyid = "#{id}_#{@map_id}"
  211.     @enemybuild = true
  212.     @especificid = id
  213.     for i in 0...ids.size
  214.       getcard(ids[i])
  215.     end
  216.     @enemybuild = nil
  217.     @especificid = nil
  218.   end
  219.   # ---------------------------------------------------------------------------
  220.   def playgamecard(music=nil)
  221.     # Ejecuta el juego triple Triad
  222.     $scene = TripleTriad.new("#{@event_id}_#{@map_id}",@map_id,false,music)
  223.   end
  224.   # ---------------------------------------------------------------------------
  225.   def play_tutorial
  226.     # Ejecuta el juego Triple Triad en modo Tutorial
  227.     $scene = TripleTriad.new(nil,nil,true)
  228.   end
  229.   # ---------------------------------------------------------------------------
  230.   def addenemyrule(level = 5,combo=-1,igual=-1,suma=-1,pared=-1,
  231.     elemental=-1,abierto=-1,random=-1,hastalamuerte=-1,pago=0,
  232.     usepluswall=-1,usecombowithwall=-1,checkallcards=-1,forzegetcard=nil)
  233.     # Añade un conjunto de reglas al NPC con el que se está hablando
  234.       id = "#{@event_id}_#{@map_id}"
  235.       $deck['emenyIA'][id] = [level,combo,igual,suma,pared,elemental,
  236.                              abierto,random,hastalamuerte,pago,
  237.                              usepluswall,usecombowithwall,checkallcards,
  238.                              forzegetcard]
  239.   end
  240.   # ---------------------------------------------------------------------------
  241.   def addmaprule(level = 5,combo=nil,igual=nil,suma=nil,pared=nil,
  242.     elemental=nil,abierto=nil,random=nil,hastalamuerte=nil,pago=0,
  243.     usepluswall=-1,usecombowithwall=-1,checkallcards=-1)
  244.     # Añade un conjunto de reglas específicas al mapa en curso
  245.       id = @map_id
  246.       $deck['maprule'][id] = [level,combo,igual,suma,pared,elemental,
  247.                              abierto,random,hastalamuerte,pago,
  248.                              usepluswall,usecombowithwall,checkallcards]
  249.   end                        
  250.   # ---------------------------------------------------------------------------
  251.   def cardsmenu
  252.     # LLama al menú de cartas
  253.     $scene = CardsMenu.new
  254.     #menu.main
  255.   end
  256.   # ---------------------------------------------------------------------------
  257.   def checkcardplayer(id)
  258.     # Comprueba si el jugador tiene una carta específica
  259.     # Devuelve 'true' en caso afirmativo y 'false' en caso negativo
  260.     return ($deck['player'][id] != nil and $deck['player'][id] != [])
  261.   end
  262.   # ---------------------------------------------------------------------------
  263.   def checkcardenemy(id)
  264.     # Comprueba si el NPC con el que se está hablando tiene una carta específica
  265.     # Devuelve 'true' en caso afirmativo y 'false' en caso negativo
  266.     enemyid = "#{@event_id}_#{@map_id}"
  267.     return ($deck['enemy'][enemyid][id] != nil and
  268.             $deck['enemy'][enemyid][id] != [])
  269.   end
  270.   # ---------------------------------------------------------------------------
  271.   def checkplayercards
  272.     # Devuelve el Total de cartas poseidas por el jugador
  273.     totalcards = 0
  274.     $deck['player'].each do |cards|
  275.       if cards != nil and cards != []
  276.         cards.each do |card|
  277.           totalcards += 1
  278.         end
  279.       end
  280.     end
  281.     return totalcards
  282.   end
  283.   # ---------------------------------------------------------------------------
  284.   def cards_enemy?(enemyid)
  285.     # Devuelve la cantidad de cartas totales del enemigo cuya id = enemyid
  286.     return 0 if $deck['enemy'][enemyid] == nil
  287.     totalcards = 0
  288.     $deck['enemy'][enemyid].each do |cards|
  289.       if cards != nil and cards != []
  290.         cards.each do |card|
  291.           totalcards += 1
  292.         end
  293.       end
  294.     end
  295.     return totalcards
  296.   end
  297.   # ---------------------------------------------------------------------------
  298.   def checkplayercollection
  299.     # Devuelve el Porcentaje completado de la colección de cartas
  300.     total_cards = Newold::CARDS::Cards.size
  301.     player_cards = 0.0
  302.     for i in 0...$deck['player'].size
  303.       next if $deck['player'][i] == nil or $deck['player'][i] == []
  304.       player_cards += 1
  305.     end
  306.     return (player_cards / total_cards) * 100
  307.   end
  308.   # ---------------------------------------------------------------------------
  309.   def playercollectionperc_tovar(id)
  310.     # Le da a la variable especificada (id) el valor del porcentaje completado
  311.     # de la colección de cartas formateado con 2 decimales
  312.     n = checkplayercollection
  313.     n = sprintf('%.2f', n)
  314.     $game_variables[id] = n.to_f
  315.   end
  316.   # ---------------------------------------------------------------------------
  317.   def check_stats_enemy(id1,id2,id3,id4,id5,id6,id7)
  318.     # Devuelve las estadísticas del enemigo con el que se está hablando
  319.     # Le da a las variables especificadas (id1,id2,id3,id4,id5) estos valores:
  320.     # Variable 1 (id1) => Número de juegos completados
  321.     # Variable 2 (id2) => Número de juegos Ganados
  322.     # Variable 3 (id3) => Número de juegos Perdidos
  323.     # Variable 4 (id4) => Número de juegos Empatados
  324.     # Variable 5 (id5) => Porcentaje de juegos ganados
  325.     # Variable 6 (id6) => Porcentaje de juegos perdidos
  326.     # Variable 7 (id7) => Porcentaje de juegos empatados
  327.     enemyid = "#{@event_id}_#{@map_id}"
  328.     if $deck['stats'][enemyid] != nil
  329.       $game_variables[id1] = $deck['stats'][enemyid]['games']
  330.       $game_variables[id2] = $deck['stats'][enemyid]['wingames']
  331.       $game_variables[id3] = $deck['stats'][enemyid]['lostgames']
  332.       $game_variables[id4] = $deck['stats'][enemyid]['drawgames']
  333.       sum = $game_variables[id2] + $game_variables[id3] +
  334.             $game_variables[id4] + 0.0
  335.       if sum != 0.0
  336.         n1 = sprintf('%.2f', ($game_variables[id2] / sum))
  337.         n2 = sprintf('%.2f', ($game_variables[id3] / sum))
  338.         n3 = sprintf('%.2f', ($game_variables[id4] / sum))
  339.         $game_variables[id5] = (n1.to_f * 100).to_i
  340.         $game_variables[id6] = (n2.to_f * 100).to_i
  341.         $game_variables[id7] = (n3.to_f * 100).to_i
  342.       else
  343.         $game_variables[id5] = 0
  344.         $game_variables[id6] = 0
  345.         $game_variables[id7] = 0
  346.       end
  347.     else
  348.       $game_variables[id1] = $game_variables[id2] = $game_variables[id3] =
  349.       $game_variables[id4] = $game_variables[id5] = $game_variables[id6] =
  350.       $game_variables[id7] = 0
  351.     end
  352.   end
  353.   # ---------------------------------------------------------------------------
  354.   def check_stats_player(id1,id2,id3,id4,id5,id6,id7)
  355.     # Devuelve las estadísticas del enemigo con el que se está hablando
  356.     # Le da a las variables especificadas (id1,id2,id3,id4,id5) estos valores:
  357.     # Variable 1 (id1) => Número de juegos completados
  358.     # Variable 2 (id2) => Número de juegos Ganados
  359.     # Variable 3 (id3) => Número de juegos Perdidos
  360.     # Variable 4 (id4) => Número de juegos Empatados
  361.     # Variable 5 (id5) => Porcentaje de juegos ganados
  362.     # Variable 6 (id6) => Porcentaje de juegos perdidos
  363.     # Variable 7 (id7) => Porcentaje de juegos empatados
  364.     $game_variables[id1] = $deck['stats']['player']['games']
  365.     $game_variables[id2] = $deck['stats']['player']['wingames']
  366.     $game_variables[id3] = $deck['stats']['player']['lostgames']
  367.     $game_variables[id4] = $deck['stats']['player']['drawgames']
  368.     sum = $game_variables[id2] + $game_variables[id3] +
  369.           $game_variables[id4] + 0.0
  370.       if sum != 0.0
  371.         n1 = sprintf('%.2f', ($game_variables[id2] / sum))
  372.         n2 = sprintf('%.2f', ($game_variables[id3] / sum))
  373.         n3 = sprintf('%.2f', ($game_variables[id4] / sum))
  374.         $game_variables[id5] = (n1.to_f * 100).to_i
  375.         $game_variables[id6] = (n2.to_f * 100).to_i
  376.         $game_variables[id7] = (n3.to_f * 100).to_i
  377.       else
  378.         $game_variables[id5] = 0
  379.         $game_variables[id6] = 0
  380.         $game_variables[id7] = 0
  381.       end
  382.   end
  383.   # ---------------------------------------------------------------------------
  384.   def deletecardplayer(*ids)
  385.     # Borra las cartas con las ids dadas del mazo del jugador
  386.     # En caso de tener varias cartas de ese tipo, la carta borrada será
  387.     # elegida aleatoriamente entre las mismas.
  388.     # Devuelve '1' en caso de haber borrado alguna carta del mazo de cartas
  389.     # del jugador y '-1' en caso de no haber podido borrar ninguna
  390.     deleteitem = false
  391.     for i in 0...ids.size
  392.       id = ids[i]
  393.       if $deck['player'][id] != nil and $deck['player'][id] != []
  394.         cardid = rand($deck['player'][id].size)
  395.         $deck['player'][id].delete_at(cardid)
  396.         if $deck['uniquecards'].include?(id)
  397.           $deck['uniquecards'].delete(id)
  398.         end
  399.         deleteitem = true
  400.       end
  401.     end
  402.     if deleteitem
  403.       return 1
  404.     else
  405.       return -1
  406.     end
  407.   end
  408.   # ---------------------------------------------------------------------------
  409.   def deletecardenemy(*ids)
  410.     # Borra las cartas con las ids dadas del mazo del NPC con el que
  411.     # se está hablando. En caso de tener varias cartas de ese tipo, la carta
  412.     # borrada será elegida aleatoriamente entre las mismas.
  413.     # Devuelve '1' en caso de haber borrado alguna carta del mazo de cartas
  414.     # del NPC y '-1' en caso de no haber podido borrar ninguna
  415.     enemyid = "#{@event_id}_#{@map_id}"
  416.     return -1 if $deck['enemy'][enemyid] == nil
  417.     deleteitem = false
  418.     for i in 0...ids.size
  419.       id = ids[i]
  420.       if $deck['enemy'][enemyid][id] != nil and
  421.         $deck['enemy'][enemyid][id] != []
  422.         cardid = rand($deck['enemy'][enemyid][id].size)
  423.         $deck['enemy'][enemyid][id].delete_at(cardid)
  424.         if $deck['uniquecards'].include?(id)
  425.           $deck['uniquecards'].delete(id)
  426.         end
  427.         deleteitem = true
  428.       end
  429.     end
  430.     if deleteitem
  431.       return 1
  432.     else
  433.       return -1
  434.     end
  435.   end
  436.   # ---------------------------------------------------------------------------
  437.   def deletecardenemy_byid(id,*ids)
  438.     # Borra las cartas con las ids dadas del mazo del NPC en el mapa con
  439.     # la id dada. En caso de tener varias cartas de ese tipo, la carta
  440.     # borrada será elegida aleatoriamente entre las mismas.
  441.     # Devuelve '1' en caso de haber borrado alguna carta del mazo de cartas
  442.     # del NPC y '-1' en caso de no haber podido borrar ninguna
  443.     enemyid = "#{id}_#{@map_id}"
  444.     return -1 if $deck['enemy'][enemyid] == nil
  445.     deleteitem = false
  446.     for i in 0...ids.size
  447.       id = ids[i]
  448.       if $deck['enemy'][enemyid][id] != nil and
  449.         $deck['enemy'][enemyid][id] != []
  450.         cardid = rand($deck['enemy'][enemyid][id].size)
  451.         $deck['enemy'][enemyid][id].delete_at(cardid)
  452.         if $deck['uniquecards'].include?(id)
  453.           $deck['uniquecards'].delete(id)
  454.         end
  455.         deleteitem = true
  456.       end
  457.     end
  458.     if deleteitem
  459.       return 1
  460.     else
  461.       return -1
  462.     end
  463.   end
  464.   # ---------------------------------------------------------------------------
  465.   def findanddeletecard(id)
  466.     # Esta función Busca entre todos los mazos de cartas de los NPC por una
  467.     # carta con la id dada y la borra cuando la encuentra.
  468.     # Esta función solo se aplica cuando la carta es única.
  469.     # Devuelve '1' cuando ha encontrado y borrado la carta y '-1' cuando la
  470.     # carta que se intentaba buscar no era única o no la ha encontrado.
  471.     return -1 if Newold::CARDS::Cards[id] == nil # Carta no definida
  472.     return -1 if Newold::CARDS::Cards[id][4] != 1 # Carta definida pero no es única
  473.     # Carta definida y única. Empieza el loop para buscarla entre los mazos de
  474.     # los NPC definidos
  475.     $deck['enemy'].each do |key,value|
  476.       next if value[id] == nil or value[id] == []
  477.       $deck['enemy'][key].delete_at(id)
  478.       if $deck['uniquecards'].include?(id)
  479.         $deck['uniquecards'].delete(id)
  480.       end
  481.       return 1 # Carta encontrada y borrada, Devuelve 1 y termina el loop
  482.     end
  483.     return -1 # No se ha encontrado la carta, Devuelve -1 y termina
  484.   end
  485.   # ---------------------------------------------------------------------------
  486.   def findcard(id)
  487.     # Esta función Busca entre todos los mazos de cartas de los NPC por una
  488.     # carta con la id dada.
  489.     # Devuelve 'true' cuando ha encontrado la carta y
  490.     # 'false' cuando no la encontró
  491.     return false if Newold::CARDS::Cards[id] == nil # Carta no definida
  492.     # Carta definida.
  493.     # Empieza el loop para buscarla entre los mazos de los NPC definidos
  494.     $deck['enemy'].each do |key,value|
  495.       next if value[id] == nil or value[id] == []
  496.       return true # Carta encontrada, Devuelve true y termina
  497.     end
  498.     return false # No se ha encontrado la carta, Devuelve false y termina
  499.   end
  500.   # ---------------------------------------------------------------------------
  501. end
  502. # =============================================================================
  503. # *****************************************************************************
  504. # =============================================================================
  505.  
  506.  
  507. # =============================================================================
  508. # *****************************************************************************
  509. # =============================================================================
  510. class Array # Añadiendo un nuevo método a la clase Array (Creador: Newold)
  511.   # Con esto se desordenada un Array aleatoriamente
  512.   def rsort
  513.     new_array = []
  514.     while self.size > 0
  515.       n = rand(self.size)
  516.       new_array.push(self[n])
  517.       self.delete_at(n)
  518.     end
  519.     return new_array
  520.   end
  521. end
  522. # =============================================================================
  523. # *****************************************************************************
  524. # =============================================================================
  525.  
  526. # =============================================================================
  527. # *****************************************************************************
  528. # =============================================================================
  529. class Scene_Map
  530.   alias updatenewoldtripletriadgame update
  531.   def update
  532.     updatenewoldtripletriadgame
  533.     if $game_map.interpreter.running?
  534.       return
  535.     end
  536.     if Input.trigger?(Input::A)
  537.       # Activar página para jugar a las cartas con el NPC seleccionado
  538.       # pulsando el botón A
  539.       case $game_player.direction
  540.       when 8
  541.         x,y = $game_player.x, $game_player.y - 1
  542.       when 4
  543.         x,y = $game_player.x - 1, $game_player.y
  544.       when 6
  545.         x,y = $game_player.x + 1, $game_player.y
  546.       when 2
  547.         x,y = $game_player.x, $game_player.y + 1
  548.       end
  549.       for ev in $game_map.events.values
  550.         if ev.x == x and ev.y == y
  551.           for page in ev.event.pages.reverse
  552.           #page = ev.event.pages[ev.event.pages.size - 1]
  553.             c = page.condition
  554.             # Switch 1 condition confirmation
  555.             if c.switch1_valid
  556.               if $game_switches[c.switch1_id] == false
  557.                 next
  558.               end
  559.             end
  560.             # Switch 2 condition confirmation
  561.             if c.switch2_valid
  562.               if $game_switches[c.switch2_id] == false
  563.                 next
  564.               end
  565.             end
  566.             # Variable condition confirmation
  567.             if c.variable_valid
  568.               if $game_variables[c.variable_id] < c.variable_value
  569.                 next
  570.               end
  571.             end
  572.             # Self switch condition confirmation
  573.             if c.self_switch_valid
  574.               switch = c.self_switch_ch
  575.               if switch != 'B'
  576.                 next
  577.               end
  578.             end
  579.             breakthis = true
  580.             for item in page.list
  581.               if item.code == 108
  582.                 if item.parameters.include?('cardgame')
  583.                   breakthis = false
  584.                   break
  585.                 end
  586.               end
  587.             end
  588.             break if breakthis
  589.             key = [$game_map.map_id, ev.id, "B"]
  590.             $game_self_switches[key] = true
  591.             $game_map.refresh
  592.             ev.start
  593.           end
  594.           break
  595.         end
  596.       end
  597.     end
  598.   end
  599. end
  600. # =============================================================================
  601. # *****************************************************************************
  602. # =============================================================================
  603.  
  604.  
  605. # =============================================================================
  606. # *****************************************************************************
  607. # =============================================================================
  608. class Game_Event
  609.   attr_reader     :event
  610. end
  611. # =============================================================================
  612. # *****************************************************************************
  613. # =============================================================================
  614.  
  615.  
  616. # =============================================================================
  617. # *****************************************************************************
  618. # =============================================================================
  619. class Scene_File < Scene_Base
  620.   # ---------------------------------------------------------
  621.   alias write_save_data_add_cards_by_newold write_save_data
  622.   def write_save_data(file)
  623.     write_save_data_add_cards_by_newold(file)
  624.     Marshal.dump($deck, file)
  625.   end
  626.   # ---------------------------------------------------------
  627.   alias read_save_data_add_cards_by_newold read_save_data
  628.   def read_save_data(file)
  629.     read_save_data_add_cards_by_newold(file)
  630.     $deck = Marshal.load(file)
  631.   end
  632.   # ---------------------------------------------------------
  633. end
  634. # =============================================================================
  635. # *****************************************************************************
  636. # =============================================================================
  637.  
  638. # =============================================================================
  639. # *****************************************************************************
  640. # =============================================================================
  641. class Scene_Title
  642.   # ----------------------------------------------------------------------
  643.   alias command_new_game_title_mod_for_triple_triad command_new_game
  644.   def command_new_game
  645.     $deck['player'] = []
  646.     # El deck que controla las cartas de todos los enemigos
  647.     $deck['enemy'] = {}
  648.     # El deck que controla que cartas unicas han sido ya añadidas a alguna baraja.
  649.     $deck['uniquecards'] = []
  650.     # El deck que controla las ids únicas para las nuevas cartas creadas.
  651.     $deck['uniqueid'] = []
  652.     # Espacio reservado para guardar configuraciones de partidas para enemigos
  653.     # específicos (Usar el comando addenemyrule con el comando llamar script)
  654.     $deck['emenyIA'] = {}
  655.     # Espacio reservado para guardar configuraciones de partidas para mapas
  656.     # específicos (Usar el comando addmaprule con el comando llamar script)
  657.     $deck['maprule'] = {}
  658.     command_new_game_title_mod_for_triple_triad
  659.   end
  660. end
  661. # =============================================================================
  662. # *****************************************************************************
  663. # =============================================================================
  664.  
  665.  
  666. # =============================================================================
  667. # *****************************************************************************
  668. # =============================================================================
  669. class TripleTriad
  670.   # ----------------------------------------------------------------------
  671.   alias backupsaveinmain main
  672.   def main
  673.     $deck['backupresolution'][0] = Graphics.width
  674.     $deck['backupresolution'][1] = Graphics.height
  675.     Graphics.resize_screen(640, 480)
  676.     backupsaveinmain
  677.     Graphics.resize_screen($deck['backupresolution'][0], $deck['backupresolution'][1])
  678.   end
  679.   # ----------------------------------------------------------------------
  680.   alias deletebackupsaveindispose dispose
  681.   def dispose
  682.     deletebackupsaveindispose
  683.   end
  684.   # ----------------------------------------------------------------------
  685. end
  686. # =============================================================================
  687. # *****************************************************************************
  688. # =============================================================================
  689.  
  690.  
  691. # =============================================================================
  692. # *****************************************************************************
  693. # =============================================================================
  694. # ---------------------------------------------------------------------------
  695. # VARIABLE GLOBAL QUE CONTIENE LOS MAZOS DE CARTAS Y CONFIGURACIONES VARIAS
  696. $deck = {}
  697. # Aquí se guadra la resolución actual de la pantalla antes de cambiar a la
  698. # resolución del juego Triple Triad (640x480)
  699. $deck['backupresolution'] = []
  700. # Guarda las veces jugadas con un enemigo, veces ganadas, perdidas.
  701. $deck['stats'] = {}
  702. # Guarda las veces jugadas totales, ganadas totales, perdidas totales. (Jugador)
  703. $deck['stats']['player'] = {'games'=>0,'wingames'=>0,'lostgames'=>0,'drawgames'=>0}
  704. # El deck que controla las cartas del jugador
  705. $deck['player'] = []
  706. # El deck que controla las cartas de todos los enemigos
  707. $deck['enemy'] = {}
  708. # El deck que controla que cartas unicas han sido ya añadidas a alguna baraja.
  709. $deck['uniquecards'] = []
  710. # El deck que controla las ids únicas para las nuevas cartas creadas.
  711. $deck['uniqueid'] = []
  712. # Espacio reservado para guardar configuraciones de partidas para enemigos
  713. # específicos (Usar el comando addenemyrule con el comando llamar script)
  714. $deck['emenyIA'] = {}
  715. # Espacio reservado para guardar configuraciones de partidas para mapas
  716. # específicos (Usar el comando addmaprule con el comando llamar script)
  717. $deck['maprule'] = {}
  718. # Lista de elementales para usar con las cartas (ID + Nombre)
  719. $deck['elementallist'] = {
  720.       # Elemental ID => ["Ruta de la imagen","Nombre del elemento"],
  721.       1 => ["CardsGame/icons/iconelemental1","Viento"],   # Viento
  722.       2 => ["CardsGame/icons/iconelemental2","Fuego"],     # Fuego
  723.       3 => ["CardsGame/icons/iconelemental3","Trueno"],    # Trueno
  724.       4 => ["CardsGame/icons/iconelemental4","Tierra"],    # Tierra
  725.       5 => ["CardsGame/icons/iconelemental5","Agua"],      # Agua
  726.     }
  727. # =============================================================================
  728. # *****************************************************************************
  729. # =============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement