Jump to content
Rpg²S Forum

giver

Utenti
  • Posts

    1,288
  • Joined

  • Last visited

Posts posted by giver

  1. Non c'è bisogno di uno script, lo puoi già impostare (attivare/disattivare) nella pagina evento, con una delle opzioni sotto il riquadro con la gtafica usata per l'evento) o come passo nell'opzione Segui Percorso, e/o attraverso un passo del comando-evento Muovi Evento (quest'ultima, quindi, funziona anche per l'eroe/player) . . .

     

    EDIT - Tecnicamente, se non ricordo male, si può fare anche usando la Muovi Evento e non abilitare l'opzione ignora se bloccato . . .

  2. Diciamo che per ovviare, basta andare nel codice di Window_BattleResult, e, all'interno del def initialize, subito dopo l'istruzione super o prima dell'istruzione refresh, scrivere

    self.z = 9998
    

     

    Mi sono inoltre accorto che c'è un altro bug nella parte di codice fatta da valentino, che genera errore se il mostro non ha drop aggiuntivi, quindi ecco un'altra revisione del suo script

     

     

    #---------------------------ITEM PLUS SYSTEM-----------------------------------
    #Script creato da Valentino Avon, se usate questo script creditatemi ;)
    #Lo script permette di ottenere più oggetti dai nemici sconfiggendoli in battaglia.
    #------------------------------CONFIGURAZIONE-----------------------------------
    module Enemy
    # Usi il CTB di charlie o lo "standard" ?
    # true se CTB, false se "standard"
    USO_IL_CTB = true
    #a = armatura  i = oggetto  w = arma
    #ITEM = {ENEMYID =>[[(a/i/w),ITEMID,PROBABILITA]]}
     ITEM = {1 => [["a",1,30], ["i",4,40],["i",5,80]],
    	  2 => [["i",1,40], ["w",2,40]]
     }
    end
    #-------------------------------------------------------------------------------
    class Window_BattleResult < Window_Base
     attr_reader :exp
     attr_reader :gold
     attr_reader :treasures
    end
    class Scene_Battle
     alias item_start_phase5 start_phase5
     def start_phase5
    item_start_phase5
    treasure = []
    for enemy in $game_troop.enemies
     unless Enemy::ITEM[enemy.id].nil?
       for item in Enemy::ITEM[enemy.id]
       treasure.push($data_items[item[1]]) if item[0] == "i" and rand(100) < item[2]
       treasure.push($data_armors[item[1]]) if item[0] == "a" and rand(100) < item[2]
       treasure.push($data_weapons[item[1]]) if item[0] == "w" and rand(100) < item[2]
     end
     end
    end
    for item in treasure
     case item
     when RPG::Item
      $game_party.gain_item(item.id, 1)
     when RPG::Weapon
      $game_party.gain_weapon(item.id, 1)
     when RPG::Armor
      $game_party.gain_armor(item.id, 1)
     end
    end
    if Enemy::USO_IL_CTB
     xp = @result_window2.exp
     g = @result_window2.gold
     treasure += @result_window2.treasures
     @result_window2.dispose
     @result_window2 = nil
     @result_window2 = Window_BattleResult.new(xp, g, treasure)
     @result_window2.z = 9998
    else
     xp = @result_window.exp
     g = @result_window.gold
     treasure += @result_window.treasures
     max_treasure = [treasure.size, 12].min
     treasure = treasure[0...max_treasure]
     @result_window.dispose
     @result_window = nil
     @result_window = Window_BattleResult.new(xp, g, treasure)
     @result_window.z = 9998
    end
     end
    end
    

     

  3. Strano, nè la BattleResult nè start_phase5 cambiano la z della finestra, quindi è un problema che già doveva esistere prima della mia revisione dello script . . .

    Comunque, ecco lo script modificaro per mettere la finestra dei drop in primo piano . . .

     

    EDIT2 - Eliminata anche questa revisione in quanto ho notato un altro bug nell'originale, corretto nella versione più sotto . . .

     

    EDIT - @Cloud_93: Potresti provare a vedere se senza questo script il problema si presenta comunque ?

  4. *AHAHAHAHAHAH !!!!!!!11111111111111111!UNO!!111!*

     

    1) Ho guardato meglio lo script di Valentino, e, se lo hai postato completo, non aggiunge gli oggetti del multi-drop nell'inventario del party . . .

     

    2) Non mi hai ancora detto che errore ti dà . . . Quindi, ri-chiedo, Che errore dà ?

     

    3) Sono un rompi, lo so, ma mi potresti postare anche il def start_phase5 del CTB ?

     

    4) Charlie ha rilasciato la 3.2 del suo BS. Stai usando quella ? Perchè da ciò che hai postato sembra tu stia usando la 3.1 . . .

  5. Una delle cose che non sono mai riuscito a fare in 6 anni di making è far apparire il valore di una variabile su schermo, se non facendo "condizione se var=1,2,3 ecc... then mostra picture 1,2,3 ecc..." cosa impensabile se si arriva a numeri come 1000 e oltre!

    Colgo l'occasione per vedere se qualcuno sa come si fa : D (dato che qua su c'è scritto che si può fare anche l'hud :3)

    Perchè impensabile ? Non è che servono 1000 IF, ne bastano una trentina per un valore intorno a mille, usando 3 (layer) picture e non una sola (è vero che col VX ce ne sono solo 20, ma nell'ace mi pare siano 100 . . .)

     

    Se poi usi il call script per fare il mostra picture, puoi evitare tutte le IF e fare solo i calcoli necessari a ricavare ogni cifra . . . ( call script mostra picture per XP )

     

    Come si ricava una cifra da un valore ? Semplice, si fa in modo che la cifra diventi quella delle unità, dopodichè si fa modulo 10 sul numero "aggiustato" con la cifra da ricavare . . . Ad esempio, se dobbiamo ricavare la cifra delle centinaia, si divide il valore per 100, poi si fa modulo 10 del risultato . . .

     

    Un esempio, per XP, perchè non conosco l'rgss necessario a mostrare picture nell'ACE . . .

    Diciamo che il valore da mostrare è nella variabile 1, ed usiamo la variabile 2 per i calcoli necessari . . .

    # Copiamo il valore da trattare nella variabile 2

    # Nota, potremmo usare una locale, ma per comodità ne usiamo una evento

    # anche per permettere appunto di fare almeno i calcoli anche ad eventi

    $game_variables[2] = $game_variables[1]

    # Essendo la prima cifra le unità, non c'è calcolo da fare per portala in quella posizione

    $game_variables[2] %= 10

    # Mostriamo la cifra tramite call script. le immagini si chiamano cifra0, cifra1, cifra2, ecc

    # numero picture

    numpic = 50

    # nome immagine

    nomepic = "cifra" + $game_variables[2].to_s

    # mostra picture

    $game_screen.pictures[numpic].show(nomepic, 1,

    624, 32, 100, 100, 255, 1)

    # Copiamo ancora il valore da trattare nella variabile 2, per la seconda cifra

    $game_variables[2] = $game_variables[1]

    # Essendo la seconda cifra, le decine, dobbiamo dividere per 10 e farle diventare unità

    $game_variables[2] /= 10

    $game_variables[2] %= 10

    # Mostriamo la cifra tramite call script

    # numero picture

    numpic = 49

    # nome immagine

    nomepic = "cifra" + $game_variables[2].to_s

    # mostra picture

    $game_screen.pictures[numpic].show(nomepic, 1,

    600, 32, 100, 100, 255, 1)

    # Copiamo ancora il valore da trattare nella variabile 2, per la terza cifra

    $game_variables[2] = $game_variables[1]

    # Essendo la terza cifra, le centinaia, dobbiamo dividere per 100 e farle diventare unità

    $game_variables[2] /= 100

    $game_variables[2] %= 10

    # Mostriamo la cifra tramite call script

    # numero picture

    numpic = 48

    # nome immagine

    nomepic = "cifra" + $game_variables[2].to_s

    # mostra picture

    $game_screen.pictures[numpic].show(nomepic, 1,

    576, 32, 100, 100, 255, 1)

    Fatto. Questo codice mostra un valore di tre cifre usando altrettante picture. I valori del mostra picture sono stati messi secondo logica, ma scelti in maniera puramente esemplificativa . . .

  6. Ecco, prova un po' se funziona . . .

     

    #===============================================================================
    # Quest Log System
    # Author game_guy
    # Version 3.0
    #   con piccola modifica by giver dc20120609.772
    #-------------------------------------------------------------------------------
    #Intro:
    # Uno script che tiene traccia delle missioni si ottengono e completano.
    #
    # Features:
    # Segna i nomi delle missioni se sono state completate
    # Si possono creare missioni molto facilmente
    # E' in grado di visualizzare una descrizione abbastanza lunga
    # E' in grado di visualizzare un'immagine
    # Si possono aggiungere e completare facilmente missioni
    # Piu' compatibile rispetto le precedenti versioni
    #
    # Istruzioni:
    # Scorrere verso il basso fino a visualizzare "Begin Config" e seguire quelle istruzioni
    # Scorrere verso il basso fino a visualizzare "Begin Quest Setup" e seguire quelle istruzioni
    #
    # Script Calls:
    # Quest.add(id, diff) ~ Aggiunge una missione(ID) a quelle del gruppo, con DIFFicoltà della stessa
    # Quest.take(id) ~ Prende la missione(ID) a quelle del gruppo
    # Quest.complete(id) ~ Completa la missione(ID)
    # Quest.completed?(id) ~ Ritorna true se la missione (ID) e' completata
    # Quest.has?(id) ~ Ritorna true se il gruppo ha la missione (ID)
    #$scene = Scene_Quest.new ~ Apri il menu' missioni
    #
    # Credits:
    # game_guy ~ for making it
    # Beta Testers ~ Sally and Landith
    # Blizzard ~ piccolo pezzo di codice che ho preso in prestito dal suo bestiario
    #===============================================================================
    module GameGuy
    #==================================================
    # Begin Config
    # UsePicture ~ Vero verra' visualizzata l'immagine nelle missioni
    # falso non avverra'
    #==================================================
    UsePicture = false
    def self.qreward(id)
     case id
    #==================================================
    # Quest Reward (ricompensa missione)
    # Use when x then return "Reward"
    # x = id, Reward = reward in quotes
    #==================================================
     when 1 then return "100 Gold"
     when 2 then return "3 Potions"
     when 3 then return "Strength Ring"
     end
     return "????"
    end
    def self.qpicture(id)
     case id
    #==================================================
    # Quest Picture (immagine missione)
    # Use when x then return "picture"
    # x = id, picture = picture name in quotes
    #==================================================
     when 1 then return "ghost"
     end
     return nil	 # ""
    end
    def self.qname(id)
     case id
    #==================================================
    # Quest Name (Nome missione)
    # Use when x then return "name"
    # x = id, name = quest name in quotes
    #==================================================
     when 1 then return "Missione1"
     when 2 then return "Missione2"
     when 3 then return "Missione3"
     end
     return ""
    end
    def self.qlocation(id)
     case id
    #==================================================
    # Quest Location (Luogo missione)
    # Use when x then return "location"
    # x = id, location = location in quotes
    #==================================================
     when 1 then return "ARTON WOODS"
     when 2 then return "EEKA"
     when 3 then return "EEKA"
     end
     return "????"
    end
    def self.qdescription(id)
     case id
    #==================================================
    # Quest Description (Descrizione missione)
    # Use when x then return "description"
    # x = id, description = description in quotes
    #==================================================
     when 1 then return "Extremely LOOOOOOOOOOONNNNNNGGGGGGGG quest description as you can see this goes on for awhile. :P:P:P:P:P"
     when 2 then return "Bring gold to Jarns Defense to pay her tab."
     when 3 then return "Go get Kip a hunting knife from Eeka."
     end
     return ""
    end
    def self.qdifficulty(id)
     case id
    #==================================================
    # Quest Difficulty (Difficoltà missione)
    # Use when x then return "difficoltà"
    # x = id, difficoltà = difficulty in quotes
    #==================================================
     when 1 then return "FACILE"
     when 2 then return "MEDIA"
     when 3 then return "DIFFICILE"
     end
     return ""
    end
    end
    module Quest
    def self.add(id, diff = 0)
     $game_party.add_quest(id, diff)
    end
    def self.take(id)
     $game_party.take_quest(id)
    end
    def self.complete(id)
     $game_party.complete(id)
    end
    def self.completed?(id)
     return $game_party.completed?(id)
    end
    def self.has?(id)
     return $game_party.has_quest?(id)
    end
    end
    class Game_Party
    attr_accessor :quests
    attr_accessor :completed
    alias gg_quests_lat initialize
    def initialize
     @quests = []
     @completed = []
     @difficulties = {}
     gg_quests_lat
    end
    def add_quest(id, diff)
     unless @quests.include?(id)
      @quests.push(id)
     end
     @difficulties = {} if @difficulties.nil?
     @difficulties[id] = diff
    end
    def difficulty(id)
     if @difficulties.nil? || @difficulties[id].nil?
      return 0
     end
     return @difficulties[id]
    end
    def completed?(id)
     return @completed.include?(id)
    end
    def complete(id)
     unless @completed.include?(id)
      if @quests.include?(id)
       @completed.push(id)
      end
     end
    end
    def has_quest?(id)
     return @quests.include?(id)
    end
    def take_quest(id)
     @quests.delete(id)
     @completed.delete(id)
    end
    end
    class Scene_Quest
    def main
     @quests = []
     for i in $game_party.quests
      @quests.push(GameGuy.qname(i))
     end
     @map = Spriteset_Map.new
     @quests2 = []
     for i in $game_party.quests
      @quests2.push(i)
     end
     @quests_window = Window_Command.new(180, @quests)
     @quests_window.height = 240
     @quests_window.back_opacity = 110
     Graphics.transition
     loop do
      Graphics.update
      Input.update
      update
      if $scene != self
       break
      end
     end
     @quests_window.dispose
     @quest_info6.dispose if @quest_info6 != nil
     @quest_info5.dispose if @quest_info5 != nil
     @quest_info4.dispose if @quest_info4 != nil
     @quest_info3.dispose if @quest_info3 != nil
     @quest_info2.dispose if @quest_info2 != nil
     @quest_info1.dispose if @quest_info1 != nil
     @map.dispose
    end
    def update
     @quests_window.update
     if @quests_window.active
      update_quests
      return
     end
     if @quest_info1 != nil
      update_info
      return
     end
     if @quest_info2 != nil
      update_info
      return
     end
     if @quest_info3 != nil
      update_info
      return
     end
     if @quest_info4 != nil
      update_info
      return
     end
     if @quest_info5 != nil
      update_info
      return
     end
     if @quest_info6 != nil
      update_info
      return
     end
    end
    def update_quests
     if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new
      return
     end
     if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
      @quest_info6 = Window_QuestInfo6.new(@quests2[@quests_window.index])
      @quest_info6.back_opacity = 110
      @quest_info5 = Window_QuestInfo5.new(@quests2[@quests_window.index])
      @quest_info5.back_opacity = 110
      @quest_info4 = Window_QuestInfo4.new(@quests2[@quests_window.index])
      @quest_info4.back_opacity = 110
      @quest_info3 = Window_QuestInfo3.new(@quests2[@quests_window.index])
      @quest_info3.back_opacity = 110
      @quest_info2 = Window_QuestInfo2.new(@quests2[@quests_window.index])
      @quest_info2.back_opacity = 110
      @quest_info1 = Window_QuestInfo1.new(@quests2[@quests_window.index])
      @quest_info1.back_opacity = 110
      @quests_window.active = false
      return
     end
    end
    def update_info
     if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @quests_window.active = true
      @quest_info1.dispose
      @quest_info1 = nil
      @quest_info2.dispose
      @quest_info2 = nil
      @quest_info3.dispose
      @quest_info3 = nil
      @quest_info4.dispose
      @quest_info4 = nil
      @quest_info5.dispose
      @quest_info5 = nil
      @quest_info6.dispose
      @quest_info6 = nil
      return
     end
    end
    end
    class Window_QuestInfo1 < Window_Base
    def initialize(quest)
     super(180, 0, 230,60)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Quest:")
     self.contents.font.color = normal_color
     self.contents.draw_text(64, 0, 480, 32, GameGuy.qname(@quest))
    end
    end
    class Window_QuestInfo2 < Window_Base
    def initialize(quest)
     super(180, 400, 460, 80)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Reward:")
     self.contents.font.color = normal_color
     self.contents.draw_text(0, 20, 480, 32, GameGuy.qreward(@quest))
    end
    end
    class Window_QuestInfo3 < Window_Base
    def initialize(quest)
     super(0, 240, 180, 80)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Location:")
     self.contents.font.color = normal_color
     self.contents.draw_text(0, 20, 480, 32, GameGuy.qlocation(@quest))
    end
    end
    class Window_QuestInfo4 < Window_Base
    def initialize(quest)
     super(0, 320, 180, 80)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Stato:")
     self.contents.font.color = normal_color
     if $game_party.completed.include?(@quest)
      self.contents.font.color = crisis_color
      self.contents.draw_text(0, 20, 480, 32, "CONCLUSA")
     else
      self.contents.font.color = normal_color
      self.contents.draw_text(0, 20, 480, 32, "SVOLGIMENTO")
     end
    end
    end
    class Window_QuestInfo5 < Window_Base
    def initialize(quest)
     super(180, 60, 460, 340)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Description:")
     self.contents.font.color = normal_color
     text = self.contents.slice_text(GameGuy.qdescription(@quest), 460)
     text.each_index {|i|
      self.contents.draw_text(0, 32 + i*32, 460, 32, text[i])
     }
    end
    end
    class Window_QuestInfo6 < Window_Base
    def initialize(quest)
     super(0, 400, 180, 80)
     self.contents = Bitmap.new(width - 32, height - 32)
     @quest = quest
     refresh
    end
    def refresh
     self.contents.clear
     if GameGuy::UsePicture
      pic = GameGuy.qpicture(@quest)
      bitmap = RPG::Cache.picture(GameGuy.qpicture(@quest)) if pic != nil
      rect = Rect.new(0, 0, bitmap.width, bitmap.height) if pic != nil
      self.contents.blt(480-bitmap.width-32, 0, bitmap, rect) if pic != nil
     end
     self.contents.font.color = system_color
     self.contents.draw_text(0, 0, 480, 32, "Difficoltà:")
     self.contents.font.color = normal_color
     qdiff = $game_party.difficulty(@quest)
     self.contents.draw_text(0, 20, 480, 32, GameGuy.qdifficulty(qdiff))
    end
    end
    class Bitmap
    def slice_text(text, width)
     words = text.split(' ')
     return words if words.size == 1
     result, current_text = [], words.shift
     words.each_index {|i|
      if self.text_size("#{current_text} #{words[i]}").width > width
       result.push(current_text)
       current_text = words[i]
      else
       current_text = "#{current_text} #{words[i]}"
      end
      result.push(current_text) if i >= words.size - 1
     }
     return result
    end
    end
    

     

     

     

    Quello di prima è un metodo per newbies dello scripting che amano arrangiarsi da soli . . .

  7. Scusa, non mi ero accorto di questa discussione . . .

     

    Vediamo se ho capito: vuoi che le Quest abbiano le caratteristiche indicate da una serie di valori numerici invece che basate solo sull'ID . . .

    Es.: Adesso è come se si indicasse Quest.add(1, 1, 1, 1, 1), ossia tutti i parametri indicati per il case uguale all'ID, mentre tu vuoi che sia possibile indicare una cosa del tipo Quest.add(1, 1, 2, 8, 5) . . .

    Oppure vuoi semplicemente separarle per livello di difficoltà ?

     

    Appena mi chiarisci questo punto, avendo perso una scommessa, ti modifico lo script come appropriato . . . Ti avverto che al momento non sono nella possibilità di testarlo . . .

     

     

    EDIT - Nel secondo caso potresti rimediare da solo, riscrivendo il metodo (def) qdifficoltà

     

    def self.qdifficoltà(id)
    case id
    #==================================================
    # Liste degli ID associati a ciascuna difficoltà, dalla lista più lunga a quella più corta
    #==================================================
    when 1, 4, 9, 10, 12, 17, 20, 21, 23
    return "FACILE"
    when 3, 8, 11, 13, 14, 15, 16
    return "DIFFICILE"
    end
    # La difficoltà usata meno spesso
    return "MEDIA"
    end
    

     

     

  8. Ma lo hai fatto nello script ?

    Quando si usa uno script di ciclo giorno-notte nella maggior parte dei casi non è più possibile impostare lo screen tone tramite eventi . . .

    Da un'occhiata superficiale, sembra essere così anche per questo script . . . Se mi posti la versione che usi, magari rendo disattivabile l'impostazione automatica dello screen tone basata sulla fase del giorno . . . Dovrebbe bastare l'aggiunta di un altro switch . . .

  9. Io lo chiamerei più "ripartire da un salvataggio precedente alla modifica del DataBase" . . . Quel personaggio, essendo entrato in gioco, e già stato aggiunto a $game_actors, quindi non viene reinizializzato con i nuovi dati a meno di toglierlo dal party e riaggiungerlo spuntando l'opzione inizializza . . .
  10. Dipende anche dal rapporto che hai col portale . . . Non tutti hanno le stesse policies a riguardo . . .

     

    Con alcuni percepisci molto in termini di percentuale, ma conti come ditta esterna, quindi sobbarcandoti tutte le spese di gestione della stessa, con altri percepisci "poco" (circa il 28% al netto di tutti i costi e tasse), ma conti come dipendente interno del portale, e con le tasse pagate da loro (o incassi il 40% e le normali tasse da lavoro dipendente sono a tuo carico) . . .

  11. L'App Store si tiene il 30 %, e tu intaschi perciò il 70 % . . . ossia 70 centesimi per ogni $/€ del prezzo di vendita . . . E' anche vero, però, che i costi per una produzione seria, se non si riesce ad arrangiarsi, vanno da 10000 a 500000 $/€ per ogni "giochino" . . .

    Di quei 70 cent devi toglierci le tasse...

    Tasse che comunque dipendono dal totale incamerato: ci sono soglie minime per cui le tasse non le devi pagare o sono in percentuale trascurabile . . . Dipende anche dai portali a cui ti appoggi, che in alcuni casi ti sottraggono già le tasse, perchè più comodo per loro stessi e per gli esattori (che non devono stare a rintracciare tutti coloro che hanno venduto presso tali portali per vedere di incassarle) . . .

    Poi, niente bollino SIAE . . . :biggrin:

     

     

    A chi vuole intraprendere questa strada, consiglierei di consultare anche qualche fonte sullo sviluppo dei Casual Games, che aiuta per cose come quella dei salvataggi da citata da Holy87. . .

  12. Le variabili, comunque, possono essere le stesse per tutti gli oggetti da spostare, se ne puoi spostare solo uno alla volta, e lo switch legato all'oggetto in posizione, se non lo blocchi una volta raggiunto il punto corretto dove deve stare, va messo OFF se mosso fuori dalle coordinate corrette . . .

    EDIT - E controlla se tutti gli oggetti sono in posizione solo quando viene messo ON uno switch, ossia solo dopo che l'oggetto spostato risulta in posizione corretta . . .

     

    Ah, e fai muovere l'eroe forzatamente (Muovi Evento) affinchè segua l'oggetto che sta spingendo . . .

  13. non so quanti lo usino per ora html5. è già così usato da essere di massa? c'è gente che ancora usa explorer sei.

    HTML5 è stato pensato per soppiantare Flash, ed Apple è quella che più ne ha supportato lo sviluppo, anche perchè inizialmente (poi s'è dovuta arrendere) non voleva includere il supporto a Flash nei propri prodotti . . .

     

    Permette di creare "web" app (anche offline, con Adobe AIR/Flex SDK) molto complesse, ed è utilizzato molto nello sviluppo per dispositivi mobile di ogni genere, come pure Flash stesso . . .

     

     

    EDIT - @Pech: Se ti accontenti di non sfruttare certe possibilità, come il multi-touch in real-time, i touch screen sono sempre stati programmabili sfruttando il codice per il mouse, quindi con qualunque "strumento" che supporti la programmazione dell'uso del mouse . . . Unity, ha una "espansione" dedicata apposta, ma costa intorno ai 400 $, se non ricordo male . . .

  14. Ma, lol, mi sono dimenticato di averlo scritto sbagliato in due punti invece che solo alla linea 25 . . .

     

    class Game_Party < Game_Unit
     # Mettere gli ID degli actors che causano gameover morendo, separati da virgole
     GAMEOVER_ACTORS = [1]
     #
    end
    
    class Scene_Battle < Scene_Base
     #
     alias giver_remded_scnbtl_btlend battle_end unless $@
     #
     def battle_end(result)
       unless (result == 2 and !$game_troop.can_lose)
      for battler in $game_party.members
        if !battler.exist?
    	  $game_party.remove_actor(battler.id)
        end
      end
       end
       giver_remded_scnbtl_btlend(result)
     end
    end
    
    class Game_Party < Game_Unit
     #
     alias giver_goverpg_gpart_allded all_dead? unless $@
     #
     def all_dead?
       for battler in members
      if ( GAMEOVER_ACTORS.include?(battler.id) and !battler.exist? )
        $game_troop.can_lose = false
        return true
      end
       end
       giver_goverpg_gpart_allded
     end
    end
    

     

    Adesso possono sorgere solo altri errori, non lo stesso di prima . . .

  15. Beh, il procedimento si può dire che è lo stesso per realizzare un menù custom su mappa usando solo picture, ma usando ruby invece di comandy-evento . . . Oserei dire che complessivamente è più semplice da programmare in ruby, scrivendo molta meno roba . . .

     

    Magari, più tardi, "converto" a titolo esemplificativo il codice della command ad immagini del menù per aiutarti a capire quali differenze ci siano nella programmazione . . .

  16. Mah, restando nell'artigianale non dovrebbe essere difficile farlo, usando i nomi degli oggetti, più suffisso, invece di indicarne la lista in un array, e suddividendo in pagine la lista o imbarcarsi in una problematica gestione dello scrolling della lista degli oggetti, qualora diventassero di più di quelli che possono stare nello spazio della finestra . . . Il codice andrebbe messo dentro le relative finestre invece che nella scena ovviamente . . .
×
×
  • Create New...