Jump to content
Rpg²S Forum

Astro86

Utenti
  • Posts

    525
  • Joined

  • Last visited

Posts posted by Astro86

  1. ciao a tutti, mi sono accorto che ho un problema con una script

    BISHOP_SWITCH = 10
    BISHOP_VARIABLE = 5

    class Scene_Shop < Scene_MenuBase
    def create_gold_window
    @gold_window = ($game_switches[bISHOP_SWITCH] ? Window_punti.new : Window_Gold.new)
    @gold_window.viewport = @viewport
    @gold_window.x = Graphics.width - @gold_window.width
    @gold_window.y = @help_window.height
    end
    def do_buy(number)
    if $game_switches[bISHOP_SWITCH]
    $game_variables[bISHOP_VARIABLE] -= number * selling_price
    else
    $game_party.lose_gold(number * buying_price)
    end
    $game_party.gain_item(@item, number)
    end
    def do_sell(number)
    if $game_switches[bISHOP_SWITCH]
    $game_variables[bISHOP_VARIABLE] += number * selling_price
    else
    $game_party.gain_gold(number * selling_price)
    end
    $game_party.lose_item(@item, number)
    end
    end

    non ricordo chi me l'ha creata, forse il buon vecchio Holy xD cmq, lo scopo di questa script è usare il negozio con un tipo differente di valuta data da una variabile (Punti) che progredisce in determinate circostanze

    il problema e che se ad esempio ho 100 Punti, ed uso i punti per comprare un oggetto di valore 1 (abilitando questa script l'oggetto costa 1 punto e non 1 oro) alla fine mi da come residuo dei punti 95... cioè mi toglie 4 punti in più del dovuto... stessa cosa se vendo, mi da 5 Punti invece di 1....

     

    come posso correggere? la formula mi sembra corretta...

    Punti - Numero Oggetti * costo

  2. Ciao, voglio creare un evento in battaglia che se un nemico va KO, mi sale il valore di una variabile... quindi ho fatto una cosa simile

    http://hostpics.altervista.org/uploads/1380019076.png

     

    il problema e che dopo la battaglia, la variabile non aumenta... in cosa sbaglio?

  3. @Astro : ti consiglio di cambiare script per la minimappa questo è fatto un pò maluccio in termini di bug e prestazioni. Se si volesse risolvere ogni bug presente si farebbe prima a scrivere un nuovo script.

    Peccato, e molto "diversa" dalle altre e mi piaceva appunto questa sua particolarità

  4. Scusate il doppio post ma mi da errore se edito O_o

     

    ho riscontrato un'altro errore...

     

    qui

        ObjectColor = {"npc" => Color.new(0,255,0),
                      "teleport" => Color.new(150,50,50),
                      "chest" => Color.new(100,100,100)}
    

    apparte npc, posso inserire il colore che mi pare ma sempre marrone scuro si vede....

  5. si può renderla compatibile con questa script?

    praticamente quando do queste istruzioni per mettere dentro l'armadio un oggetto

    name = "Armadio"
    type = :armor
    id = 4
    amount = 1
    storage_add_item(name, type, id, amount)

     

    mi da errore

    http://hostpics.altervista.org/uploads/1379390132.png

  6. 150% (nella screen non c'è) sarebbe danno superefficace

    130% sarebbe danno efficacie

    100% sarebbe danno normale 

    70% sarebbe danno poco efficacie

    0% sarebbe immune

     

    cio che non imposto nei parametri sul database automaticamente me lo mette come danno normale 

     

    gli ho dato debolezze/resistenze come sta nel Pokédex... solo zubat e doppio tipo e non mi va di mettere o solo Volante o solo Veleno xD

  7. Ok sbaglio mio, avevo dimenticato l'ultima parte....

     

    comunque e buono come bestiario ma mostra solo gli Effetto Elemento non L'elementi d'attacco... cosa che mi preme di più

     

    o trovato uno perfetto

    http://hostpics.altervista.org/uploads/1379276492.png

    http://hostpics.altervista.org/uploads/1379282711.png

     

    solo che mi da solo un elemento di attacco... se si potrebbe modificare in modo che me li da 2 (a fianco c'è anche posto) sarebbe più che magnifico

     

    lascio il codice

     

    #==============================================================================
    # VX Bestiary by VitorJ (http://vjrgss.blogspot.com/)
    #------------------------------------------------------------------------------
    # Adiciona um sistema de bestiario, onde tem a lista de monstro, drops
    # status, xp e etc...
    #------------------------------------------------------------------------------
    # Uso comercial e não comercial permitido com os devidos credito.
    #Comandos----------------------------------------------------------------------
    # Para definir o level do monstro, na caixa de note do mesmo coloque:
    #
    # Onde X é o level do monstro.
    # Para abrir o bestiario use o comando chamar script em um evento:
    # SceneManager.call(Scene_Bestiary)
    #==============================================================================
    module VJBEST
    Rank = []
    Rank_Color = []
    #
    No_Name = "?????" #Nome que aparecera caso não tenha matado o monstro ainda
    No_Param = "????" #Parametros que apareceram caso não tenha matado o monstro
    Count = "Progresso" #Texto que ficara ao lado da % de monstros
    Round = 0 #Quantas casas depois da virgula ira mostrar?
    Kill_Count = "Ussici" #Texto que mostrara o numero de x que matou o monstro.
    Encounter = "Trovati" #Texto que mostrara o numero de x que encontou o monstro.
    Rank_N = "Ranking" #Texto de ranking do heroi
    NK_Battler = "No_Kill" #Nome do battler que ira aparece caso não tenha matado o monstro.
    #Nome do item: caso o monstro não drop, se ainda não tiver descoberto
    No_Item = ["------","??????"]
    #Cor do texto Icone que ficara no fim do nome de um monstro recem descoberto
    #New_Icon = [X,cor]
    #Onde x é o index do icone e a cor deve ser no formato: Color.new(r,g,b).
    New_Icon = [102,Color.new(255,200,0)]
    #Para editar o rank do heroi
    #Rank[X] = ["Rank",cor]
    #Onde X é a porcentagem de progresso e "Rank" é o rank do heroi entre aspas
    #E a cor deve ser no formato: Color.new(r,g,b).
    Rank[0] = ["Novizio",Color.new(170,255,255)]
    Rank[25] = ["Principiante",Color.new(100,255,180)]
    Rank[50] = ["Cacciatore",Color.new(100,170,200)]
    Rank[75] = ["Maestro",Color.new(70,255,100)]
    Rank[100] = ["Leggenda",Color.new(255,200,0)]

    #Nome dos atributos
    Attr_Name = ["Vita","Energia","Attaco","Difesa","Att.sp","Dif.sp","Agilità","Fortuna"]
    Elements = "Stat. - Efficacia attacchi" #Texto de Elementos (fraqueza/força)
    Detail = "Dettagli" #Texto de detalhes
    Exp = "Exp" #Texto de experiencia
    Kill_R = "% Uccisioni" #Texto de porcentagem de vezes que matou
    Damage = "Tipo" #Texto onde mostrara o tipo de dano

    end
    class Window_Bestiary_Enemies < Window_Command
    def initialize
    super(0, 0)
    update_placement
    end
    def window_width
    return 216
    end
    def window_height
    Graphics.height-104
    end
    def update_placement
    self.x = 0
    self.y = 52
    end
    def make_command_list
    @number = []
    for i in 1...$data_enemies.size
    id = "00"+i.to_s if i < 9
    id = "0"+i.to_s if i < 99 and i >= 10
    id = i.to_s if i >= 100
    @number.push(id)
    enabled = $game_party.enemy_killed?(i)
    text = VJBEST::No_Name
    text = $data_enemies[i].name if enabled
    add_command(text,:ok,enabled)
    end
    end
    def item_rect(index)
    rect = Rect.new
    rect.width = item_width-38
    rect.height = item_height
    rect.x = index % col_max * (item_width + spacing) + 38
    rect.y = index / col_max * item_height
    rect
    end
    def item_rect_for_text(index)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    rect
    end
    def draw_item(index)
    if $game_party.new_monster[index+1]
    change_color(VJBEST::New_Icon[1])
    else
    change_color(normal_color, command_enabled?(index))
    end
    rect = item_rect_for_text(index)
    rect.width += 12
    draw_text(rect, command_name(index), alignment)
    ix = contents.width-24
    draw_icon(VJBEST::New_Icon[0], ix, rect.y) if $game_party.new_monster[index+1]
    change_color(normal_color)
    rect.x = 0
    rect.width = 32
    draw_text(rect, @number[index], 2)
    end
    def index=(index)
    @index = index
    update_cursor
    $game_party.new_monster[index+1] = false if $game_party.new_monster[index+1]
    end
    end
    class Window_Enemy_Status < Window_Base
    include VJBEST
    def initialize
    super(216, 0, window_width,window_height)
    @enemy = $data_enemies[0]
    refresh
    end
    def window_width
    return Graphics.width-216
    end
    def window_height
    return Graphics.height-0
    end
    def set_enemy=(id)
    return unless @enemy != $data_enemies[id]
    @enemy = $data_enemies[id]
    refresh
    end
    def refresh
    contents.clear
    @battler.dispose if @battler
    return unless @enemy
    @old_enemy = @enemy
    viewport = Viewport.new
    viewport.z = self.z + 1
    if $game_party.enemy_killed?(@enemy.id)
    battler = @enemy.battler_name
    b_hue = @enemy.battler_hue
    params = @enemy.params
    name = @enemy.name
    i_name = []
    for i in 0..2
    item = @enemy.drop_items[i]
    item = item_object(item.kind,item.data_id)
    if item.nil?
    i_name.push(VJBEST::No_Item[0])
    else
    i_name.push(item.name)
    end
    end
    else
    params = []
    8.times {|i| params[i] = VJBEST::No_Param }
    name = VJBEST::No_Name
    battler = VJBEST::NK_Battler
    b_hue = 0
    i_name = [VJBEST::No_Item[1],VJBEST::No_Item[1],VJBEST::No_Item[1]]
    end
    box_size = (contents.width/2)

    @battler = Sprite.new(viewport)
    @battler.bitmap = Cache.battler(battler, b_hue)
    @battler.ox = @battler.width/2
    @battler.x = self.x + contents.width - (box_size/2)
    @battler.zoom_x -= 0.05 until (@battler.width*@battler.zoom_x) <= box_size
    @battler.zoom_y -= 0.05 until (@battler.height*@battler.zoom_y) <= box_size-8
    @battler.oy = (@battler.height*@battler.zoom_y)/2
    @battler.y = (box_size/2)+12
    @battler.visible = self.visible
    draw_box(contents.width-(box_size+32), 0, (box_size+32), (box_size+32))
    change_color(system_color)



    draw_box((contents.width-box_size)-32, box_size+32, box_size+32, line_height)
    draw_text((contents.width-box_size)-32, box_size+32, box_size+32, line_height, name,1)
    for i in 0..7
    y = 10+(line_height*i)
    x = 0
    param = params[i]
    param_name = VJBEST::Attr_Name[i]
    change_color(normal_color)
    nbox_size = box_size-31
    draw_box(x, y, nbox_size, line_height)
    draw_text(x+2, y, nbox_size, line_height, param_name,0)
    size = contents.text_size(param).width + 5
    contents.fill_rect((nbox_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x, y, nbox_size, line_height, param,2)
    end

    y = box_size+60
    x = 0
    param = $game_party.kill_count(@enemy.id)
    param_name = VJBEST::Kill_Count
    change_color(normal_color)
    draw_box(x, y, box_size, line_height)
    draw_text(x+2, y, box_size, line_height, param_name,0)
    size = contents.text_size("000").width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(text_color(6))
    draw_text(x, y, box_size, line_height, param,2)

    y = box_size+60
    x = box_size-1
    param = $game_party.encounter_count(@enemy.id)
    param_name = VJBEST::Encounter
    change_color(normal_color)
    draw_box(x, y, box_size+1, line_height)
    draw_text(x+2, y, box_size, line_height, param_name,0)
    size = contents.text_size("000").width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(text_color(14))
    draw_text(x, y, box_size, line_height, param,2)
    change_color(system_color)
    for i in 0..2
    y = 240+(line_height*i)
    x = 0
    param_name = i_name[i]
    nbox_size = contents.width
    draw_box(x, y, nbox_size, line_height)
    draw_text(x+2, y, nbox_size, line_height, param_name,0)
    end
    end
    def item_object(kind, data_id)
    return $data_items [data_id] if kind == 1
    return $data_weapons[data_id] if kind == 2
    return $data_armors [data_id] if kind == 3
    return nil
    end
    def draw_box(x,y,width,height)
    height += 1
    contents.fill_rect(x, y, width, height, Color.new(255,255,255,100))
    contents.fill_rect(x+1, y+1, width-2, height-2, Color.new(0,0,0,100))
    end
    def dispose
    @battler.dispose if @battler
    contents.dispose unless disposed?
    super
    end
    def visible=(vis)
    super
    @battler.visible = vis if @battler
    end
    end
    class Window_Enemy_StatusC < Window_Base
    include VJBEST
    def initialize
    super(216, 0, window_width,window_height)
    @enemy = $data_enemies[1]
    refresh
    end
    def window_width
    return Graphics.width-216
    end
    def window_height
    return Graphics.height-0
    end
    def set_enemy=(id)
    return unless @enemy != $data_enemies[id]
    @enemy = $data_enemies[id]
    refresh
    end
    def refresh
    contents.clear
    return unless @enemy
    change_color(system_color)
    draw_box(0,0,contents.width,line_height)
    draw_text(2, y, contents.width, line_height, VJBEST::Detail,1)

    box_size = contents.width/2
    y = line_height*1
    x = 0
    change_color(normal_color)
    draw_box(x,y,box_size,line_height)
    draw_text(x+2, y, box_size, line_height, VJBEST::Exp,0)
    exp = No_Param
    exp = @enemy.exp if $game_party.enemy_killed?(@enemy.id)
    size = contents.text_size(exp).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x+2, y, box_size-2, line_height, exp ,2)

    y = line_height*1
    x = box_size
    change_color(normal_color)
    draw_box(x,y,box_size,line_height)
    draw_text(x+2, y, box_size, line_height, Vocab::level_a,0)
    text = "??"
    text = get_level(@enemy) if $game_party.enemy_killed?(@enemy.id)
    size = contents.text_size(text).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x+2, y, box_size-2, line_height, text ,2)

    y = line_height*2
    x = 0#box_size
    change_color(normal_color)
    draw_box(x,y,box_size,line_height)
    draw_text(x+2, y, box_size, line_height, Vocab::currency_unit,0)
    text = No_Param
    text = @enemy.gold if $game_party.enemy_killed?(@enemy.id)
    size = contents.text_size(text).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x+2, y, box_size-2, line_height, text ,2)

    y = line_height*2
    x = box_size
    change_color(normal_color)
    draw_box(x,y,box_size,line_height)
    draw_text(x+2, y, box_size, line_height, VJBEST::Kill_R,0)
    text = "???"
    text = get_kill_ratio(@enemy) + "%" if $game_party.enemy_killed?(@enemy.id)
    size = contents.text_size(text).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x+2, y, box_size-2, line_height, text ,2)


    y = line_height*4 + 6
    x = 0
    draw_box(x,y,contents.width,line_height)
    draw_text(x+2, y, contents.width, line_height, VJBEST::Elements,1)

    y = line_height*5 + 6
    x = 0
    draw_box(x,y,box_size,line_height)
    change_color(normal_color)
    draw_text(x+2, y, box_size, line_height, VJBEST::Damage,0)
    val = No_Param
    val = get_damage(@enemy) if $game_party.enemy_killed?(@enemy.id)
    size = contents.text_size(val).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    change_color(system_color)
    draw_text(x+2, y, box_size-2, line_height, val ,2)

    elements = get_element(@enemy)
    y = line_height*7 + 6
    for i in 1...$data_system.elements.size-1
    col = (i-1) % 2
    x = box_size*col
    draw_box(x,y,box_size,line_height)
    change_color(normal_color)
    draw_text(x+2, y, box_size, line_height, $data_system.elements[i],0)
    val = "???"
    val = (elements[i]*100).round(0).to_s + "%" if $game_party.enemy_killed?(@enemy.id)
    change_color(system_color)
    size = contents.text_size(val).width + 5
    contents.fill_rect((box_size+x)-size-2, y, 1, line_height, Color.new(255,255,255,100))
    draw_text(x+2, y, box_size-2, line_height, val ,2)
    y += line_height if col == 1
    end
    end
    def get_damage(enemy)
    dam = $data_system.elements[1]
    enemy.features.each do |feat|
    if feat.code == 31
    dam = $data_system.elements[feat.data_id]
    end
    end
    return dam
    end
    def get_element(enemy)
    element = []
    for i in 1...$data_system.elements.size-1
    element[i] = 1.0
    enemy.features.each do |feat|
    if feat.code == 11
    element[i] = feat.value if feat.data_id == i
    end
    end
    end
    return element
    end
    def get_level(enemy)
    level = 1
    note = enemy.note.split("\r\n")
    note.each do |i|
    if i =~ //
    level = $1.to_i
    end
    end
    return level
    end
    def get_kill_ratio(enemy)
    enc = $game_party.encounter_count(enemy.id)
    kic = $game_party.kill_count(enemy.id)
    ratio = kic.fdiv(enc) * 100
    return 0.to_s if ratio.nan? or ratio.infinite?
    return ratio.round(0).to_s
    end
    def draw_box(x,y,width,height)
    height += 1
    contents.fill_rect(x, y, width, height, Color.new(255,255,255,100))
    contents.fill_rect(x+1, y+1, width-2, height-2, Color.new(0,0,0,100))
    end
    end
    class Window_Best_Count < Window_Base
    def initialize
    super(0, 0, window_width,window_height)
    refresh
    end
    def window_width
    return 216
    end
    def window_height
    return 52
    end
    def refresh
    contents.clear
    draw_text(0, 0, contents.width, line_height, VJBEST::Count,0)
    text = $game_party.enemy_count.to_s+"%"
    draw_text(0, 0, contents.width, line_height, text,2)
    end
    end
    class Window_Best_Rank < Window_Base
    def initialize
    super(0, Graphics.height-52, window_width,window_height)
    refresh
    end
    def window_width
    return Graphics.width-327
    end
    def window_height
    return 52
    end
    def refresh
    contents.clear
    draw_text(0, 0, contents.width, line_height, VJBEST::Rank_N,0)
    rank = $game_party.get_rank
    change_color(rank[1])
    draw_text(0, 0, contents.width, line_height, rank[0],2)
    end
    end
    class Scene_Bestiary < Scene_MenuBase
    def start
    super
    create_command_window
    create_enemy_status
    create_enemy_status_c
    create_enemy_count
    create_rank
    end
    def create_background
    super
    @background_sprite.tone.set(0, 0, 0, 128)
    end
    def create_command_window
    @command_window = Window_Bestiary_Enemies.new
    @command_window.set_handler(:ok, method(:change_status))
    @command_window.set_handler(:cancel, method(:return_scene))
    end
    def create_enemy_status
    @enemy_status = Window_Enemy_Status.new
    end
    def create_enemy_status_c
    @enemy_status_c = Window_Enemy_StatusC.new
    @enemy_status_c.visible = false
    end
    def create_enemy_count
    @enemy_count = Window_Best_Count.new
    end
    def create_rank
    @rank = Window_Best_Rank.new
    end
    def update
    update_basic
    @enemy_status.set_enemy = @command_window.index+1
    @enemy_status_c.set_enemy = @command_window.index+1
    end
    def change_status
    @enemy_status.visible = !@enemy_status.visible
    @enemy_status_c.visible = !@enemy_status_c.visible
    @command_window.activate
    end
    end
    class Game_Party < Game_Unit
    attr_accessor :new_monster
    alias vjbest_gp_ini initialize
    def initialize
    @killed_enemies = []
    @kill_count = []
    @en_encounter = []
    @new_monster = []
    vjbest_gp_ini
    end
    def enemy_killed?(i)
    return true if @killed_enemies[i] == true
    return false
    end
    def get_rank
    rank_list = VJBEST::Rank
    rrank = rank_list[0]
    rank_list.each do |rank|
    if !rank.nil?
    pr = rank_list.index(rank)
    if pr <= enemy_count
    rrank = rank
    end
    end
    end
    return rrank
    end
    def kill_count(i)
    kc = @kill_count[i]
    kc = 0 if kc.nil?
    return kc
    end
    def encounter_count(i)
    ee = @en_encounter[i]
    ee = 0 if ee.nil?
    return ee
    end
    def encounter_enemy(i)
    @en_encounter[i] = 0 if @en_encounter[i].nil?
    @en_encounter[i] += 1
    end
    def kill_enemy(i)
    @new_monster[i] = true if @new_monster[i] != false
    @kill_count[i] = 0 if @kill_count[i].nil?
    @kill_count[i] += 1
    @killed_enemies[i] = true
    end
    def enemy_count
    ke = @killed_enemies.compact.size
    ke = 0 if ke < 0
    es = $data_enemies.size
    calc = ke.fdiv(es) * 100
    return calc.round(VJBEST::Round)
    end
    end

    class << BattleManager
    alias vjbest_bm_set setup
    def setup(troop_id, can_escape = true, can_lose = false)
    vjbest_bm_set(troop_id, can_escape, can_lose)
    $game_troop.members.each {|enemy| $game_party.encounter_enemy(enemy.enemy_id)}
    end
    alias vjbest_bm_be battle_end
    def battle_end(result)
    $game_troop.dead_members.each {|enemy| $game_party.kill_enemy(enemy.enemy_id)}
    vjbest_bm_be(result)
    end
    end

     

  8. ciao a tutti, o un problema con questa script

     

    #Basic Game Time + Night/Day v1.6.2
    #----------#
    #Features: Provides a series of functions to set and recall current game time
    # as well customizable tints based on current game time to give the
    # appearance of night and day.
    #
    #Usage: Script calls:
    # GameTime::minute? - returns the current minute
    # GameTime::hour? - returns the current hour
    # GameTime::set(time) - sets the game time to time, in frames (max:1440)
    # GameTime::change(time) - increments the game time! (can be negative)
    # GameTime::pause_time(set) - stops time for events and stuff, true or false
    # GameTime::pause_tint(set) - time runs, but tints do not update
    # GameTime::clock(set) - sets whether clock is visible or not
    #
    #Customization: Set below, in comments.
    #
    #Examples: GameTime::set(360)
    #
    #----------#
    #-- Script by: V.M of D.T
    #
    #- Questions or comments can be:
    # posted on the thread for the script
    # given by email: sumptuaryspade@live.ca
    # provided on facebook: http://www.facebook.com/DaimoniousTailsGames
    # posed on site: daimonioustails.wordpress.com
    #
    #--- Free to use in any project, commercial or non-commercial, with credit given
    # - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)

    #---Game Clock---#
    #USE_CLOCK to true to display game time clock
    #CLOCK_POSITION for position of clock
    # 1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
    #CLOCK_TOGGLE is any input button available, see the INPUT help file for options
    #------#
    USE_CLOCK = true
    CLOCK_POSITION = 2
    CLOCK_TOGGLE = :SHIFT

    module GameTime
    #---Game Time Details---#
    #Number of frames in a game minute, 60 frames = 1 second
    TIME_COUNT = 1200
    #Sets whether to tint screen based on game time
    USE_TINT = true

    #Switch to denote day or night time
    USE_SWITCH = false
    NIGHT_DAY_SWITCH = 5
    DAY_TIME_START = 4
    NIGHT_TIME_START = 18

    #True to pause time while not in map or while during a message
    PAUSE_IN_COMBAT = false
    PAUSE_NOT_IN_MAP = true
    PAUSE_IN_MESSAGE = true

    #Sets time frames of tints by minute count, one day is 1440 minutes
    # 0 = 12am, 360 = 6am, 720 = 12pm, 1080 = 6pm etc...
    PRESUNRISE_TIME = 240
    SUNRISE_TIME = 360
    NOONSTART_TIME = 660
    NOONEND_TIME = 900
    PRESUNSET_TIME = 1080
    SUNSET_TIME = 1260
    MIDNIGHT_TIME = 60 #Must be greater than 0

    #Sets custome tints
    PRESUNRISE_TONE = Tone.new(-75,-75,0,50)
    SUNRISE_TONE = Tone.new(0,0,0,0)
    NOONSTART_TONE = Tone.new(45,45,0,-25)
    NOONEND_TONE = Tone.new(0,0,0,0)
    PRESUNSET_TONE = Tone.new(-50,-50,0,25)
    SUNSET_TONE = Tone.new(-75,-100,0,75)
    MIDNIGHT_TONE = Tone.new(-125,-125,0,125)

    #Include the ids of any maps not to be tinted based on time
    # Usually reserved for indoor maps
    NOTINTMAPS = [2]

    #Store current time in a variable?
    USE_VARIABLE = true
    TIME_VARIABLE = 1

    #---END---#

    def self.init
    $game_time = 0
    $game_time_pause_time = false
    $game_time_pause_tint = false
    end
    def self.update
    if $game_time_pause_time then return else end
    case SceneManager::scene_is?(Scene_Map)
    when true
    if $game_message.visible == true && PAUSE_IN_MESSAGE then else
    $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
    when false

    if !PAUSE_NOT_IN_MAP and !SceneManager::scene_is?(Scene_Battle)
    $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
    if SceneManager::scene_is?(Scene_Battle) && PAUSE_IN_COMBAT != true
    $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
    end
    if $game_time == 1440 then $game_time = 0 end
    $game_variables[TIME_VARIABLE] = $game_time if USE_VARIABLE
    update_night_switch if USE_SWITCH
    GameTime::tint if $game_time_pause_tint != true
    end
    def self.update_night_switch
    if hour? > DAY_TIME_START and hour? < NIGHT_TIME_START
    $game_switches[NIGHT_DAY_SWITCH] = true unless $game_switches[NIGHT_DAY_SWITCH] == true
    else
    $game_switches[NIGHT_DAY_SWITCH] = false unless $game_switches[NIGHT_DAY_SWITCH] == false
    end
    end
    def self.hour?
    return $game_time / 60
    end
    def self.minute?
    return $game_time % 60
    end
    def self.time?
    meri = "AM"
    hour = GameTime::hour?
    minute = GameTime::minute?
    if hour > 11 then meri = "PM" end
    if hour == 0 then hour = 12; meri = "AM" end
    if hour > 12 then hour -= 12 end
    if hour < 10 then hour = " " + hour.to_s else hour.to_s end
    if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
    return hour.to_s + ":" + minute.to_s + " " + meri
    end
    def self.set(number)
    $game_time = number if number < 1440
    GameTime::tint(0) if $game_time_pause_tint != true
    end
    def self.change(number)
    $game_time += number
    $game_time -= 1440 if $game_time > 1440
    $game_time += 1440 if $game_time < 0
    GameTime::tint(0) if $game_time_pause_tint != true
    end
    def self.tint(tint = 60)
    if USE_TINT != true then return end
    for i in NOTINTMAPS
    if $game_map.map_id == i
    $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
    return
    end
    end
    if SceneManager::scene_is?(Scene_Map) then else return end
    case $game_time
    when PRESUNRISE_TIME .. SUNRISE_TIME
    $game_map.screen.start_tone_change(PRESUNRISE_TONE, tint)
    when SUNRISE_TIME .. NOONSTART_TIME
    $game_map.screen.start_tone_change(SUNRISE_TONE, tint)
    when NOONSTART_TIME .. NOONEND_TIME
    $game_map.screen.start_tone_change(NOONSTART_TONE, tint)
    when NOONEND_TIME .. PRESUNSET_TIME
    $game_map.screen.start_tone_change(NOONEND_TONE, tint)
    when PRESUNSET_TIME .. SUNSET_TIME
    $game_map.screen.start_tone_change(PRESUNSET_TONE, tint)
    when SUNSET_TIME .. 1440
    $game_map.screen.start_tone_change(SUNSET_TONE, tint)
    when 0 .. MIDNIGHT_TIME
    $game_map.screen.start_tone_change(SUNSET_TONE, tint)
    when MIDNIGHT_TIME .. PRESUNRISE_TIME
    $game_map.screen.start_tone_change(MIDNIGHT_TONE, tint)
    end
    end
    def self.pause_time(set)
    $game_time_pause_time = set
    end
    def self.pause_tint(set)
    $game_time_pause_tint = set
    end
    def self.clock(set)
    SceneManager.scene.clock_visible?(set)
    end

    class Window_Clock < Window_Base
    def initialize
    case CLOCK_POSITION
    when 1
    super(0,0,115,56)
    when 2
    super(429,0,115,56)
    when 3
    super(0,360,115,56)
    when 4
    super(429,360,115,56)
    end
    self.visible = $game_time_clock_visibility unless $game_time_clock_visibility.nil?
    end
    def update
    self.contents.clear
    self.contents.draw_text(0,0,100,24,GameTime::time?)
    $game_time_clock_visibility = self.visible
    end
    end

    end

    GameTime::init

    module DataManager
    class << self
    alias gametime_msc make_save_contents
    alias gametime_esc extract_save_contents
    end
    def self.make_save_contents
    contents = gametime_msc
    contents[:gametime] = $game_time
    contents
    end
    def self.extract_save_contents(contents)
    gametime_esc(contents)
    $game_time = contents[:gametime]
    end
    end


    class Scene_Map < Scene_Base
    alias gametime_post_transfer post_transfer
    alias gametime_create_all_windows create_all_windows
    alias gametime_update_map update
    def post_transfer
    GameTime::tint(0) if $game_time_pause_tint != true
    gametime_post_transfer
    end
    def create_all_windows
    gametime_create_all_windows
    @gametimeclock = GameTime::Window_Clock.new if USE_CLOCK
    end
    def update
    gametime_update_map
    @gametimeclock.update if @gametimeclock.nil? == false
    if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false
    @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true
    end
    end
    def clock_visible?(set)
    @gametimeclock.visible = set
    end
    end

    class Scene_Base
    alias gametime_update update
    def update
    gametime_update
    GameTime::update
    end
    end

     

     

    Praticamente è una script per l'ora e l'effetto giorno/notte... il problema che ho è che con questa script non mi funziona più la "tinta Schermo" cioè se io faccio ad esempio un evento con inizio automatico o parallelo

    - Tinta Schermo: (-255, -255, -255, 0), @60, Aspetta

    per creare un effetto dissolvenza dello schermo, non mi funziona...

     

    si può fare qualcosa? 

    avevo pensato di intervenire tramite cell script ma non mi ricordo il comando che devo fare xD

  9. Come sapete sto facendo un progetto chiamato Pokémon Alternate World, dopo 3 mesi di riposo per via delle vacanze, riprendo il progetto e volevo iniziare con una richiesta....

     

    attualmente uso un semplice bestiario ma vorrei una cosa più personalizzata incentrata su quel gioco

     

    forrei tipo un funzionamento stile Pokédex dei Pokémon che oltre a far vedere la sua immagine, mi dia una descrizione del mostro, incontrati, e tutti gli attributi degli elementi... cosa più importante, dato che il gioco e dei Pokémon e i Pokémon hanno fino a 2 Tipi, vorrei che la script mi ricavasse i primi 2 elementi di attacco del Pokémon dato che li uso come appunto tipi...

     

    ad esempio, io a un Pokémon gli ho dato questi parametri

    http://hostpics.altervista.org/uploads/1378888738.png

     

    vorrei che nel bestiario vengono inserite tutte le informazioni che ho segnato con un punto rosso + le informazioni dette sopra

     

    Purtroppo un Bestiario cosi non l'ho mai trovato e non penso che sia mai stato creato... quindi sarebbe una cosa da creare da zero o quasi...

     

    è una cosa fattibile un bestiario cosi?

     

    una cosa è certa, sarà uno dei Bestiari più completi che ci sia xD

×
×
  • Create New...