Jump to content
Rpg²S Forum

ColossAlex_10

Utenti
  • Posts

    424
  • Joined

  • Last visited

Posts posted by ColossAlex_10

  1. Guardian, che domande... Le prossime Location non forestose saranno implementate tramite DLC!!!

     

    ... Nah, scherzavo :cool:

     

    Le zone abitate più importanti sono la città di Oryos e il Villaggio di Khaya, che sarà esteso all'incirca quanto la zona dei Sobborghi. Quest'ultima non la considererei una città vera e propria, anche se sarà diversa da Oryos, di dimensioni minori e più cupa. La zona del Castello di Oryos non sarà piccola, comprenderà diverse stanze. Per quanto riguarda il mondo di gioco, cercheremo di renderlo il più vario possibile, sia a livello d'ambientazione che di nemici. Inseriremo alcuni dungeon (le cave che vedete nelle foreste della mappa), all'interno dei quali ci saranno alcuni enigmi, segreti da scovare e nemici più potenti. I dungeon serviranno anche ad altro, molto più importante, ma per ora non spoileriamo nulla perchè non è ancora il momento :wink:. Avremmo intenzione di inserire un livello di difficoltà gradualmente maggiore, cosicchè non saremo solo noi a migliorare ma anche i nemici. Ora stiamo creando il database di armi, armature e oggetti, quindi è per questo che da un po' non ci sentite, ma tranquilli siamo vivi e vegeti! :cool:

     

     

  2. Buonasera a tutti! Come la va?! Spero bene ^ ^ (che poi chissà chi è sto "Tutti")

     

    Prima di mostrarvi ciò che devo, vi annuncio ora che li abbiamo finiti che ci sono due sistemi relativi agli equipaggiamenti, e ora cercherò di spiegarvi per benino come funzionano.

     

    Il primo sistema, quello direttamente inerente alle battaglie, è un semplicissimo menù richiamabile tramite la "P" (esatto! "P" di Pogba!) che ci permetterà di assegnare Arma, Scudo, Skill e un'oggetto. Vi chiederete, "Perchè un oggetto solo se gli slot sono due?" - Beh, ci piacerebbe rendere questo gioco gradualmente impegnativo, e per fare ciò abbiamo deciso di inserire un sistema di recupero HP basato su una pozione fissa ricaricabile a, manco a dirlo, un falò, che peraltro vi servirà per aumentare le stats e salvare (Sì, forse fa un tantino Dark Souls ma, amen!). In questo modo siamo certi che non ci sarà la possibilità di spammare colpi a random "perchè tanto arrivato a 10 HP posso usare la pozione". Ennò belli miei, avrete all'inizio UNA sola pozione. E no, gli HP non si ricaricano :tongue: ..In questo modo siamo certi che si aggiungerà un po' più di calma e strategia al modo di giocare. Chiudendo con l'assegnazione, questa viene fatta tramite gli Hotkeys A D Q W E R T Y.

     

    Il secondo sistema, che è quello che vi mostreremo oggi, vi consentirà di andare ad agire sull'equipaggiamento, in modo da variare indirettamente le vostre statistiche. Infatti, non potendo sempre avere sotto mano un falò per livellare, crediamo che avere questa possibilità possa, oltre che darvi la "voglia" di esplorare posti per trovare nuove armature, elmi, amuleti ecc... rendere l'equipaggiamento una parte integrante ed utile del gioco, in quanto ogni oggetto equipaggiabile potrebbe avere diverse caratteristiche oltre ad ovviamente rendervi più forti difensivamente o più agili ecc. Quindi, come direbbero le english speaking people, without further ado, here's the screen :mellow:

     

    http://i.imgur.com/3FLJHYU.png

     

    Prima che qualcuno mi crocifigga per quei "Empty" e "Sword", non abbiamo ancora tradotto del tutto il DB per cui modificheremo alla fine queste cosacce ^ ^ Fatemi sapere un po' come vi sembra, va'!

     

    This is it, folks! Ci si vede presto! :cool:

  3. Certo capisco cosa intendi, il fatto è che la modifica di script, a meno che non sia strettamente funzionale alle nostre necessità preferiamo evitarla, nel senso che io lavoro, lui è un universitario e potrete ben capire che "lavorando" al progetto solo 1 o 2 ore per sera il tempo non è esattamente dalla nostra parte xD E, dato che ci piacerebbe veder concluso questo progetto sarebbe vitale riuscire a ottimizzare i tempi per ogni cosa che ci viene in mente di fare.

     

    Intanto già che parliamo di script, vi "lascio" dicendovi che abbiamo modificato un po' l'antilag, aumentando la frequenza di refresh dello schermo rispetto a prima, tramite la console di rgss parrebbero non esserci cali di frame, parrebbe stabile ai 50/60 FPS. Non so se la cosa vi possa interessare o meno, ma lo faccio comunque presente xD

     

    PS. Aspettatevi qualche troll-news ogni tanto, dobbiamo creare hype :tongue:

     

    Bye :cool:

  4. Avete qualche tipo diverso di albero? Si riesce a rimediare? ^ ^

    La passabilità sembra buona nonostante lo screen sia pieno, c'è da impostare la semitrasparenza per l'erba alta. Per il resto belle risorse.

    ^ ^

     

    Carino e semplice l'HUD anche i tasti paion comodi con il sistema qwerty... S è usato per saltare od altro? ^ ^

     

    Ringraziamo per i bei commenti! Guardian, che hai contro quegli alberelli? :( Comunque come sapete su sto tool gli alberi e in generale la vegetazione sono il problema più "grave" a livello di mapping... Qualcosa stiamo ancora cercando ma bisogna vedere un po' come sta anche con i vari stili ecc... non si può cambiare di punto in bianco vegetazione se solo la mappa prima ce n'era di un altro tipo... Quindi siamo un po' titubanti su questo, ma ne usciremo! Per quanto riguarda l'erba invece avevamo già in mente di renderla semi-transp in stile pokemon, però mi sembrava troppo... "pokemon", appunto! ahah

     

    Per quel che riguarda il tasto S, beh... è usato per... "Od altro". Diciamo che più avanti, saprete ^ ^

     

     

    ABS di Falcao? È fatto molto bene. Avevo cominciato a usarlo anche io, ma poi ho scelto la XAS perché mi è sembrato più fluido.

     

    Sì, l'ABS è quello. Avevamo bisogno di poter creare più skill e poterle equipaggiare, non una alla volta... Per cui ci è sembrato il più adatto :cool:

  5. Bonsoir! O bonnenuit ahaha.

     

    Allora, rispondo a Ickh (nome interessante :D), i menù sono diciamo ancora in fase di modifica, tra un bug e l'altro ogni giorno di lavoro ce n'è da fare, non vi stufereste mai di bestemmiare con 'sto progetto, ve lo posso assicurare. E' comunque proprio per questo che postiamo qui, avere un feedback o comunque qualcuno che ti dia un'idea meno "di parte" ci vuole. Vedremo come starà con qualche modifica, poi posteremo ciò che ne verrà fuori :)

     

    Ora per la felicità del Guardiano d'Israele (non esattamente un gran nome, coi tempi che corrono) rilascio UFFICIALMENTE lo screen di cui si parlava Eoni fa!

     

    http://i.imgur.com/sSbh1TQ.png

     

    Ebbene, potete vedere che se menano le mani qua! (Scusate ma un bello slime coatto in ogni gioco ci dev'essere) Primo screen in cui potrete vedere l'HUD, ma soprattutto in generale il combattimento. La barra dei nemici è ancora quella base, poi la cambieremo, diciamo che non è una cosa prioritaria ma va nella "black-list" di tutto ciò che è solo un piccolo pugno nell'occhio da scansare a livello grafico :wink:

     

    Presto avrete nostre nuove notizie, o magari no, chissà!

     

    Bye :cool:

  6. Ciao, ti ringrazio per esserti interessato al progetto, Mi fa piacere una persona in piú che segue questo gioco :)

    Durante la giornata di domani o Lunedì vi mostreremo qualcosina dei menú, statistiche e quello per l'assegnazione dei punti abilitá.

    Se intanto qualcuno che è interessato al progetto e che ha letto il topic vuole dirci come la pensa ci fa piacere :) Adios

  7. Storia classica sulla quale non ci sbottoniamo più di tanto, un po' di background? ^ ^

    No, niente di niente :D

    Preferiamo per ora lasciare questo, ond'evitare spoiler, da una parola di troppo in su in merito alla trama potrebbe essere tutto svelato. Perciò i personaggi e la trama in particolare, verranno molto approfonditi nel corso del gioco, si spera in un crescendo di buone sensazioni da parte del player.

     

    Diversi chara, qualche nome/sprite rivisto/sentito, ma mi piacciono come personaggi.Oh nel gameplay vedo BS in tempo reale! Script od eventi? E:3 La parte degli enigmi e degli eventi mi suona bene, quando li avete postate un po' di esempi in caso.

    ^ ^

     

    Quella nel title è la piuma di Photoshop CS2? XD

    Il mapping non pare male, non mi spiace quello screen del cimitero (tomba un po' misera per uno di sangue reale > <), in attesa di altre news, buona fortuna nel frattempo! ^ ^

    Il BS sarà script, non abbiamo tempo di farlo ad eventi. E' anche per questo se abbiamo deciso di aggiungere enigmi ad eventi, appunto, per far pesare meno la parte script vista la presenza del BS e soprattutto per farvi comunque vedere qualche nostra "idea".

     

    Il title è molto semplice e minimale, non è animato. Semplice cursore che fa selezionare l'azione da compiere allo start. (La piuma è una semplice icona di un iconset XD)

     

    Per quel che riguarda il mapping, ti dirò la verità non me ne va mai bene una, nel senso che sia io che Andre siamo due perfezionisti (seppur ognuno al proprio campo), e quindi ogni mappa che facciamo ci pensiamo 34 volte prima di dire "Sì ci piace". In merito alle tombe, c'è una ragione se sono così per cui è tutto calcolato ^ ^.

     

    Appena avremo qualche News interessante o qualche screen d'impatto non mancheremo di presentarli :biggrin:

  8. Gilgames ColossAlex_10

    http://i.imgur.com/5hvWyvw.png & http://www.rpg2s.net/forum/uploads/profile/photo-3390.jpg?_r=0

    Presentano

    http://i.imgur.com/kE2JA0n.png

    Hola a todos! :cool:

    Questa sera io e il mio amico Andrea vi proponiamo un progetto a cui stiamo lavorando da un po' di tempo, come potete vedere si chiama Bloody Vengeance: Lullaby of Lost Souls, ed è un gioco in via di sviluppo con RMVXAce. L'idea di una collaborazione in merito è venuta quasi per caso, e dopo averci pensato un po' abbiamo deciso di prendere come matrice di riferimento il mio vecchio progetto Restless Souls per VX. Ad ogni modo ci tengo a precisare che non ha nulla a che fare con quello, che "all'epoca" avevo abbandonato per mancanza di tempo.

     

    Da qui abbiamo preso spunto, migliorato e corretto quelle che erano le imperfezioni, e posso dirvi con certezza che arriviamo a questo punto con un progetto praticamente "nuovo", rivoluzionato e profondamente mutato da quel che era il mio ideale iniziale. Chiaramente per alcune cose si potrà notare una somiglianza, come ad esempio un simile incipit nella trama e un level design simile (dopotutto, son ancora io che faccio le ambientazioni, quindi lo stile è quello!). Senza ulteriori parole al vento, vediamo punto per punto di cosa si tratta.

     

    http://i.imgur.com/H2KuGWU.png

     

    Sul pianeta di Kimelia, il Regno di Theratia sta attraversando un periodo vitale eccellente grazie al governo del Re Eldor. Tutto procede quasi senza intoppi fino al giorno del decimo anniversario dell'incoronazione di Eldor, quando, proprio nel bel mezzo della festa, egli viene assassinato. I figli del Re disperati, insieme a una loro amica di infanzia, decidono quindi di investigare per scovare l'assassino e vendicare il sovrano defunto.

     

    http://i.imgur.com/BA3Eb4k.png

     

     

    http://i.imgur.com/fxxmVvj.png Cedrick: E' il figlio di Eldor, nonchè principe di Oryos, capitale del Regno di Theratia. La madre, Clarice, muore durante il parto, ed anche per questo quando il padre viene assassinato, promette di trovare l'assassino a qualunque costo e di vendicare la sua dipartita.

     

    http://i.imgur.com/A39zTyu.png Inakel: E' il fratellastro di Cedrick. Fu portato in salvo da Eldor, dal villaggio che egli decise di radere al suolo per porre fine alle loro ribellioni.

     

    http://i.imgur.com/3qe2Car.png Nalin: E' l'amica d'infanzia inseparabile di Cedrick, e sua compagna di avventure. E' sua "partner" durante gli allenamenti e cerca di fare del suo meglio per aiutarlo durante la sua ricerca dell'assassino del padre.

     

    http://i.imgur.com/VOTd2eg.png Skar: E' il fratello di Eldor e suo consigliere personale. In passato, il padre abdicò in favore di Eldor, non dandogli la possibilità di salire al trono. E' un abile Mayabi, così si chiamano coloro che conoscono e padroneggiano le arti oscure. Eldor gli chiede infatti di imparare a padroneggiare queste capacità, in modo da poter in futuro rimpiazzare l'esercito Imperiale con le Anime Perdute.

     

    http://i.imgur.com/prIwbjy.png Boldran: E' il comandante dell'esercito Imperiale di Oryos. Non è d'accordo col Re, il quale vuole rimpiazzare l'esercito Imperiale con le Anime Perdute, truppa di non-morti rimasti in una sorta di Limbo a causa dei loro crimini passati. Teme che con l'andare del tempo possa venire accantonato anche il suo posto da comandante.

     

    http://i.imgur.com/lG2U8aY.pngAzura : Giovane ragazza del Villaggio di Khaya, che Cedrick incontrerà nella seconda parte del gioco.

     

     

    http://i.imgur.com/OriOeVK.png

     

     

    In Aggiornamento:

    • Battle System in tempo reale, con HUD e assegnazione veloce di armi, skill e oggetti;
    • Trama elaborata;
    • Sistema di assegnazione di punti abilità accumulati a ciascun Level-Up;
    • Enigmi ad Eventi;
    • Sistema organizzato di Quest principali con ricompense, più alcune Quest secondarie;
    • Add-Ons grafici ambientali.

     

    http://i.imgur.com/5cM0frb.png

     

     

    http://i.imgur.com/ITgXRNA.png

     

    http://i.imgur.com/rbkCDKz.png

     

    http://i.imgur.com/HuaGeIK.png

     

    http://i.imgur.com/WVw5nzG.png

     

    Crediti:

     

    Aggiornerò la sezione quando avremo concluso del tutto la ricerca di materiale. (E comunque inseriremo crediti scorrevoli a fine gioco)

     

     

     

    Per ora è tutto, diteci cosa ne pensate e se il progetto vi interessa.

    Intanto vi salutiamo e ci sentiamo a prossime news! Ciao a tutti!

     

    Andrea & Matteo :biggrin:

  9. Eccolo! Sono colpevole, ahah! Hai fatto spoiler! D: ebbene, prima o poi ci sarà un topic su questo sito in merito a qualcosa che abbiamo in lavorazione. Tempo al tempo, intanto benvenutornato amico mio :D

     

    Ps. Guardian tranquillo, nulla di demenziale questa volta! Ahahah ^ ^

  10. Hola a todos! Ho in cantiere qualcosa di interessante e mi serviva uno script che mi consentisse di dare la possibilità al giocatore di scegliere manualmente quale abilità aumentare per salire di livello. Ho trovato questo "Stat Distribution" che non è male:

     

     

    =begin
    +------------------------------------------------------------------------------+
    # ** Stat points distribution system 1.71	 #
    #	 By Lettuce.	 #
    #	 #
    #	 #
    #Some help:	 #
    #	 - Position wasn't stored properly in mode 1 (Thanks Akin)	 #
    #	 - Some sort of notification to player (Thanks Akin)	 #
    #	 - Player switch now supports LEFT and RIGHT arrow (Thanks Akin)	 #
    #	 - Advice on using class attr instead of global var (Thanks GoldenShadow) #
    #	 #
    #------------------------------------------------------------------------------#
    # This script lets you distribute points onto your actor's stats	 #
    #	 #
    # Call scene using this: $scene = Scene_Stat_Dist.new(0)	 #
    #	 #
    #	 #
    # You can give points to your actors by using this code	 #
    #	 #
    # $game_party.members[<member ID>].points += <amount of points>	 #
    #	 #
    # If you want your actor to get points after leveling:	 #
    # Under Game_Actor, in def change_exp, under the line level_up; paste this #
    #	 #
    # difference = @level - last_level	 #
    # $game_actors[@actor_id].points += <amount of points>	 #
    #	 #
    # OR (if you want RO mode; explained below)	 #
    #	 #
    #	 difference = @level - last_level	 #
    #	 $game_actors[@actor_id].points += ((@level/5).floor+2).floor*difference #
    #	 #
    # # It seems the game returns non 0 based array if we use game_party >.<;	 #
    #	 #
    # **Note**	 #
    # This script does not stop your actors from gaining stats points defined in #
    # the database. It will just add to it.	 #
    # Set the stats to 1 all the way in the database to disable growth	 #
    #	 #
    # **Modes**	 #
    # 1 : Add one point to the attribute per point	 #
    # 2 : Use RO system, attribute with value needs more points to increase.	 #
    # Explanation: In RO, if you got high stats, you need more points to	 #
    # increase it. So if you have 90 ATK and 5 INT...You can	 #
    # choose to use 10 points for 1 more ATK OR use that 10 points	 #
    # to get 6 INT	 #
    +------------------------------------------------------------------------------+
    =end
    ############################### Configuration ##################################
    #Starting points; how many points to give to actor at the beginning of the game
    StartPoints = 8
    #Maximum attribute point you allowed in your game
    MaxStat = 500
    MaxHP = 9999
    MaxMP = 5000
    #Max hit, eva and crit rate are all in percentage
    MaxHIT = 100
    MaxEVA = 20
    MaxCRIT = 50
    
    #How many points needed per increase
    PointsPerHP = 2
    PointsPerMP = 2
    PointsPerHIT = 10
    PointsPerEVA = 8
    PointsPerCRIT = 6
    
    #How many stats will increase per point?
    IncreaseBy = 2
    HPIncreaseBy = 25
    MPIncreaseBy = 15
    HITIncreaseBy = 5
    EVAIncreaseBy = 1
    CRITIncreaseBy = 1
    
    
    #1 for normal mode, 2 or RO mode [points required calculated through formula]
    Mode = 2
    #You can chage font family and size here
    Fontname = "Candara"
    Fontsize = 18
    
    LayoutMode = 2
    
    #========================== End Configuration ==================================
    OFFSET = -10
    #==============================================================================
    # ** Lettuce_Window_Top
    #------------------------------------------------------------------------------
    # This window displays Title message
    #==============================================================================
    
    class Lettuce_Window_Top < Window_Base
    def initialize
    super(0,0,544,70)
    self.contents = Bitmap.new(width-32,height-32)
    self.contents.font.name = Fontname
    self.contents.font.size = Fontsize
    refresh
    end
    
    def refresh
    self.contents.clear
    self.contents.draw_text(0,-10,544-32,32,"Talents Distribution",1)
    self.contents.font.size = Fontsize-2
    self.contents.draw_text(0,10,544-32,32,"Use arrow keys to change character; points can only be assigned once.",1)
    end
    
    end
    #==============================================================================
    # ** Lettuce_Window_Points
    #------------------------------------------------------------------------------
    # This window displays the attributes of a party member
    #==============================================================================
    class Lettuce_Window_Points < Window_Base
    def initialize(member_index)
    super(401,320,144,52)
    self.contents = Bitmap.new(width-32,height-32)
    self.contents.font.name = Fontname
    self.contents.font.size = Fontsize
    refresh(member_index)
    end
    
    def refresh(member_index)
    actor = $game_party.members[member_index]
    points = actor.points
    self.contents.clear
    self.contents.draw_text(0,0,162,20,"Points: "+points.to_s)
    end
    end
    
    #==============================================================================
    # ** Lettuce_Window_Info
    #------------------------------------------------------------------------------
    # This window displays the attributes of a party member
    #==============================================================================
    
    class Lettuce_Window_Info < Window_Base
    def initialize(member_index)
    super(0,71,400,346)
    self.contents = Bitmap.new(width-32,height-32)
    self.contents.font.name = Fontname
    self.contents.font.size = Fontsize
    @exo = 25 #equipment section X coordinate offset
    @exo2 = 35 #equipment section X coordinate offset
    @eyo = -10 #equipment section Y coordinate offset
    refresh(member_index)
    end
    
    def refresh(member_index)
    actor = $game_party.members[member_index]
    self.contents.clear
    self.contents.font.size = Fontsize
    draw_actor_face(actor,10,10,92)
    draw_actor_name(actor,120,10)
    self.contents.font.size = Fontsize
    self.contents.draw_text(190,30,200,20,"Class: "+actor.class.name)
    self.contents.draw_text(120,30,200,20,"Lv. "+actor.level.to_s)
    
    if LayoutMode == 1
    draw_actor_state(actor,200,280,168)
    elsif LayoutMode == 2
    draw_actor_state(actor,220,10)
    end
    
    s1 = actor.exp_s #total exp
    s2 = actor.current_lvl_exp #exp to get to this level
    if s1.is_a?(Numeric)
    s3 = s1-s2 #progress in this level
    s4 = actor.next_lvl_exp #exp needed for next level
    self.contents.font.size = Fontsize-3
    self.contents.draw_text(230,74,90,20,"EXP: "+s3.to_s+"/"+s4.to_s,0)
    self.contents.font.size = Fontsize
    else
    self.contents.draw_text(230,74,85,20,"-----/-----",2)
    end
    
    #Preparing bar colours
    back_color = Color.new(39, 58, 83, 255)
    
    str_color1 = Color.new(238, 238, 170, 255)
    str_color2 = Color.new(238, 221, 102, 255)
    
    def_color1 = Color.new(170, 221, 170, 255)
    def_color2 = Color.new(102, 153, 136, 255)
    
    spi_color1 = Color.new(170, 153, 187, 255)
    spi_color2 = Color.new(102, 85, 136, 255)
    
    agi_color1 = Color.new(150, 205, 205, 255)
    agi_color2 = Color.new( 66, 144, 164, 255)
    
    hp_color1 = Color.new(136, 187, 187, 255)
    hp_color2 = Color.new( 68, 119, 119, 255)
    
    mp_color1 = Color.new(136, 187, 238, 255)
    mp_color2 = Color.new( 68, 119, 187, 255)
    
    exp_color1 = Color.new(246, 243, 224, 255)
    exp_color2 = Color.new(255, 182, 0, 255)
    if s1.is_a?(Numeric)
    self.contents.fill_rect(230,90,89,7,back_color)
    self.contents.gradient_fill_rect(232,92,(85*s3)/s4,3,exp_color1,exp_color2)
    
    else
    self.contents.fill_rect(230,60,89,7,back_color)
    end
    
    
    self.contents.fill_rect(120,67,104,7,back_color)
    self.contents.gradient_fill_rect(122,69,100*actor.hp/actor.maxhp,3,hp_color1,hp_color2)
    self.contents.draw_text(120,44,100,30,"HP",0)
    self.contents.draw_text(120,44,100,30,actor.hp.to_s + "/" + actor.maxhp.to_s,2)
    
    self.contents.fill_rect(120,90,104,7,back_color)
    self.contents.gradient_fill_rect(122,92,100*actor.mp/actor.maxmp,3,mp_color1,mp_color2)
    self.contents.draw_text(120,67,100,30,"MP",0)
    self.contents.draw_text(120,67,100,30,actor.mp.to_s + "/" + actor.maxmp.to_s,2)
    
    ##weapons
    dual_w = true if actor.two_swords_style == true
    weapon = $data_weapons[actor.weapon_id]
    
    shield = $data_armors[actor.armor1_id]
    shield = dual_w ? $data_weapons[actor.armor1_id] : $data_armors[actor.armor1_id]
    helm =$data_armors[actor.armor2_id]
    body =$data_armors[actor.armor3_id]
    accessory =$data_armors[actor.armor4_id]
    
    
    
    bonus_atk = 0
    bonus_def = 0
    bonus_spi = 0
    bonus_agi = 0
    evasion = 0
    crit = 4
    
    if $data_actors[actor.id].critical_bonus
    crit +=4
    end
    
    if weapon
    bonus_atk += weapon.atk
    bonus_def += weapon.def
    bonus_spi += weapon.spi
    bonus_agi += weapon.agi
    if weapon.critical_bonus
    crit += 4
    end
    end
    if dual_w && shield
    bonus_atk += shield.atk
    bonus_def += shield.def
    bonus_spi += shield.spi
    bonus_agi += shield.agi
    if weapon.critical_bonus
    crit += 4
    end
    end
    if shield && !dual_w
    bonus_atk += shield.atk
    bonus_def += shield.def
    bonus_spi += shield.spi
    bonus_agi += shield.agi
    evasion += shield.eva
    end
    if helm
    bonus_atk += helm.atk
    bonus_def += helm.def
    bonus_spi += helm.spi
    bonus_agi += helm.agi
    evasion += helm.eva
    end
    if body
    bonus_atk += body.atk
    bonus_def += body.def
    bonus_spi += body.spi
    bonus_agi += body.agi
    evasion += body.eva
    end
    if accessory
    bonus_atk += accessory.atk
    bonus_def += accessory.def
    bonus_spi += accessory.spi
    bonus_agi += accessory.agi
    evasion += accessory.eva
    end
    if LayoutMode == 1
    draw_item_name(weapon,160+@exo,125+@eyo,true)
    if weapon
    two_hand = true if weapon.two_handed == true
    
    end
    if two_hand	
    draw_item_name(weapon,160+@exo,155+@eyo,true)
    elsif dual_w
    dweapon = $data_weapons[actor.armor1_id]
    draw_item_name(dweapon,160+@exo,155+@eyo,true)
    else
    draw_item_name(shield,160+@exo,155+@eyo,true)
    end
    draw_item_name(helm,160+@exo,185+@eyo,true)
    draw_item_name(body,160+@exo,215+@eyo,true)
    draw_item_name(accessory,160+@exo,245+@eyo,true)
    
    #Testing area for Weapon upgrade script
    #self.contents.font.size = Fontsize - 7
    #self.contents.draw_text(160+@exo,135,30,20,"[+"+weapon.level.to_s+"]",0)
    
    self.contents.font.color = Color.new(200,200,200,255)
    if !weapon
    #draw_icon(216,160+@exo,125+@eyo,true)
    self.contents.draw_text(184+@exo,127+@eyo,200,16,"<No Equipment>")
    end
    if !shield
    #draw_icon(217,160+@exo,155+@eyo,true)
    if !two_hand
    self.contents.draw_text(184+@exo,157+@eyo,200,16,"<No Equipment>")
    end
    end
    if !helm
    #draw_icon(218,160+@exo,185+@eyo,true)
    self.contents.draw_text(184+@exo,187+@eyo,200,16,"<No Equipment>")
    end
    if !body
    #draw_icon(219,160+@exo,215+@eyo,true)
    self.contents.draw_text(184+@exo,217+@eyo,200,16,"<No Equipment>")
    end
    if !accessory
    #draw_icon(220,160+@exo,245+@eyo,true)
    self.contents.draw_text(184+@exo,247+@eyo,200,16,"<No Equipment>")
    end
    self.contents.font.color = Color.new(255,255,255,255)
    
    elsif LayoutMode == 2
    draw_item_name(weapon,160+@exo2,125+OFFSET+@eyo,true)
    #if weapon
    if weapon
    two_hand = true if weapon.two_handed
    end
    if two_hand
    draw_item_name(weapon,160+@exo2,165+OFFSET+@eyo,true)
    else
    draw_item_name(shield,160+@exo2,165+OFFSET+@eyo,true)
    end
    #end
    =begin
    if weapon.two_handed == true
    draw_item_name(weapon,160+@exo2,165+OFFSET+@eyo,true)
    else
    draw_item_name(shield,160+@exo2,165+OFFSET+@eyo,true)
    end
    =end
    draw_item_name(helm,160+@exo2,205+OFFSET+@eyo,true)
    draw_item_name(body,160+@exo2,245+OFFSET+@eyo,true)
    draw_item_name(accessory,160+@exo2,285+OFFSET+@eyo,true)
    
    
    
    self.contents.font.color = Color.new(200,200,200,255)
    if !weapon
    #draw_icon(216,160+@exo2,125+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,127+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    if weapon
    if !shield and weapon.two_handed == false
    #draw_icon(217,160+@exo2,165+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,167+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    else
    if !shield
    #draw_icon(217,160+@exo2,165+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,167+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    end
    
    if !helm
    #draw_icon(218,160+@exo2,205+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,207+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    if !body
    #draw_icon(219,160+@exo2,245+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,247+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    if !accessory
    #draw_icon(220,160+@exo2,285+OFFSET+@eyo,true)
    self.contents.draw_text(184+@exo2,287+OFFSET+@eyo,200,16,"<No Equipment>")
    end
    self.contents.font.color = Color.new(255,255,255,255)
    end
    
    
    
    self.contents.font.size = Fontsize-3
    self.contents.draw_text(10,120,100,20,Vocab::atk+": ")
    self.contents.draw_text(10,120,100,20,(actor.atk-bonus_atk).to_s+" + "+bonus_atk.to_s,2)
    
    self.contents.fill_rect(10,140,104,7,back_color)
    self.contents.gradient_fill_rect(12,142,((actor.atk-bonus_atk)*100)/MaxStat,3,str_color1,str_color2)
    
    self.contents.draw_text(10,150,100,20,Vocab::def+": ")
    self.contents.draw_text(10,150,100,20,(actor.def-bonus_def).to_s+" + "+bonus_def.to_s,2)
    
    self.contents.fill_rect(10,170,104,7,back_color)
    self.contents.gradient_fill_rect(12,172,((actor.def-bonus_def)*100)/MaxStat,3,def_color1,def_color2)
    
    self.contents.draw_text(10,180,100,20,Vocab::spi+": ")
    self.contents.draw_text(10,180,100,20,(actor.spi-bonus_spi).to_s+" + "+bonus_spi.to_s,2)
    
    self.contents.fill_rect(10,200,104,7,back_color)
    self.contents.gradient_fill_rect(12,202,((actor.spi-bonus_spi)*100)/MaxStat,3,spi_color1,spi_color2)
    
    self.contents.draw_text(10,210,100,20,Vocab::agi+": ")
    self.contents.draw_text(10,210,100,20,(actor.agi-bonus_agi).to_s+" + "+bonus_agi.to_s,2)
    
    self.contents.fill_rect(10,230,104,7,back_color)
    self.contents.gradient_fill_rect(12,232,((actor.agi-bonus_agi)*100)/MaxStat,3,agi_color1,agi_color2)
    
    if weapon
    hit_rate = weapon.hit
    else
    hit_rate = 95
    end
    
    
    self.contents.font.size = Fontsize-3
    self.contents.font.color = Color.new(162,212,98,255)
    self.contents.draw_text(1,245,100,20,"Maximum ATK :",2)
    self.contents.draw_text(1,260,100,20,"Hit rate (%) :",2)
    self.contents.draw_text(1,275,100,20,"Evasion rate (%) :",2)
    self.contents.draw_text(1,290,100,20,"Critical Rate (%) :",2)
    
    self.contents.draw_text(105,245,60,20,(actor.atk*4).to_s,0)
    self.contents.draw_text(105,260,60,20,actor.base_hit.to_s + "+" + actor.hitr.to_s,0)
    self.contents.draw_text(105,275,60,20,actor.base_eva.to_s + "+" +actor.evar.to_s,0)
    self.contents.draw_text(105,290,60,20,actor.base_cri.to_s + "+" + actor.crir.to_s,0)
    
    self.contents.font.size = Fontsize-4
    self.contents.font.color = text_color(16)
    self.contents.draw_text(135,260,60,20,"[Req:"+PointsPerHIT.to_s+"pt.]",2)
    self.contents.draw_text(135,275,60,20,"[Req:"+PointsPerEVA.to_s+"pt.]",2)
    self.contents.draw_text(135,290,60,20,"[Req:"+PointsPerCRIT.to_s+"pt.]",2)
    
    #self.contents.draw_text(120,260,60,20,(hit_rate+actor.hit_bonus).to_s,0)
    #self.contents.draw_text(120,275,60,20,(evasion+actor.eva).to_s,0)
    #self.contents.draw_text(120,290,60,20,(crit+actor.cri_bonus).to_s,0)
    
    if LayoutMode == 1
    
    self.contents.font.color = Color.new(155,199,206,255)
    self.contents.font.size = Fontsize-6
    if weapon
    self.contents.draw_text(185+@exo,140+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s)
    self.contents.draw_text(219+@exo,140+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s)
    self.contents.draw_text(253+@exo,140+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s)
    self.contents.draw_text(287+@exo,140+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s)
    end
    
    if shield
    self.contents.draw_text(185+@exo,170+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s)
    self.contents.draw_text(219+@exo,170+@eyo,100,20,Vocab::def+"+"+shield.def.to_s)
    self.contents.draw_text(253+@exo,170+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s)
    self.contents.draw_text(287+@exo,170+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s)
    end
    
    if helm
    self.contents.draw_text(185+@exo,200+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s)
    self.contents.draw_text(219+@exo,200+@eyo,100,20,Vocab::def+"+"+helm.def.to_s)
    self.contents.draw_text(253+@exo,200+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s)
    self.contents.draw_text(287+@exo,200+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s)
    end
    
    if body
    self.contents.draw_text(185+@exo,230+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s)
    self.contents.draw_text(219+@exo,230+@eyo,100,20,Vocab::def+"+"+body.def.to_s)
    self.contents.draw_text(253+@exo,230+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s)
    self.contents.draw_text(287+@exo,230+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s)
    end
    
    if accessory
    self.contents.draw_text(185+@exo,260+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s)
    self.contents.draw_text(219+@exo,260+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s)
    self.contents.draw_text(253+@exo,260+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s)
    self.contents.draw_text(287+@exo,260+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s)
    end
    end
    
    if Mode == 2
    self.contents.font.size = Fontsize-6
    self.contents.font.color = Color.new(155,199,206,255)
    self.contents.draw_text(23,100,125,20,"POINTS",2)
    self.contents.draw_text(29,110,125,20,"REQUIRED",2)
    self.contents.font.size = Fontsize-2
    self.contents.draw_text(20,125,115,20,required(actor.atk-bonus_atk).to_s,2)
    self.contents.draw_text(20,155,115,20,required(actor.def-bonus_def).to_s,2)
    self.contents.draw_text(20,185,115,20,required(actor.spi-bonus_spi).to_s,2)
    self.contents.draw_text(20,215,115,20,required(actor.agi-bonus_agi).to_s,2)
    end
    
    if LayoutMode == 2
    self.contents.font.color = Color.new(155,199,206,255)
    self.contents.font.size = Fontsize-6
    if weapon
    self.contents.draw_text(185+@exo2,140+OFFSET+@eyo,100,20,Vocab::atk+"+"+weapon.atk.to_s)
    self.contents.draw_text(185+@exo2,150+OFFSET+@eyo,100,20,Vocab::def+"+"+weapon.def.to_s)
    self.contents.draw_text(253+@exo2,140+OFFSET+@eyo,100,20,Vocab::spi+"+"+weapon.spi.to_s)
    self.contents.draw_text(253+@exo2,150+OFFSET+@eyo,100,20,Vocab::agi+"+"+weapon.agi.to_s)
    end
    
    if shield
    self.contents.draw_text(185+@exo2,180+OFFSET+@eyo,100,20,Vocab::atk+"+"+shield.atk.to_s)
    self.contents.draw_text(185+@exo2,190+OFFSET+@eyo,100,20,Vocab::def+"+"+shield.def.to_s)
    self.contents.draw_text(253+@exo2,180+OFFSET+@eyo,100,20,Vocab::spi+"+"+shield.spi.to_s)
    self.contents.draw_text(253+@exo2,190+OFFSET+@eyo,100,20,Vocab::agi+"+"+shield.agi.to_s)
    end
    
    if helm
    self.contents.draw_text(185+@exo2,220+OFFSET+@eyo,100,20,Vocab::atk+"+"+helm.atk.to_s)
    self.contents.draw_text(185+@exo2,230+OFFSET+@eyo,100,20,Vocab::def+"+"+helm.def.to_s)
    self.contents.draw_text(253+@exo2,220+OFFSET+@eyo,100,20,Vocab::spi+"+"+helm.spi.to_s)
    self.contents.draw_text(253+@exo2,230+OFFSET+@eyo,100,20,Vocab::agi+"+"+helm.agi.to_s)
    end
    
    if body
    self.contents.draw_text(185+@exo2,260+OFFSET+@eyo,100,20,Vocab::atk+"+"+body.atk.to_s)
    self.contents.draw_text(185+@exo2,270+OFFSET+@eyo,100,20,Vocab::def+"+"+body.def.to_s)
    self.contents.draw_text(253+@exo2,260+OFFSET+@eyo,100,20,Vocab::spi+"+"+body.spi.to_s)
    self.contents.draw_text(253+@exo2,270+OFFSET+@eyo,100,20,Vocab::agi+"+"+body.agi.to_s)
    end
    
    if accessory
    self.contents.draw_text(185+@exo2,300+OFFSET+@eyo,100,20,Vocab::atk+"+"+accessory.atk.to_s)
    self.contents.draw_text(185+@exo2,310+OFFSET+@eyo,100,20,Vocab::def+"+"+accessory.def.to_s)
    self.contents.draw_text(253+@exo2,300+OFFSET+@eyo,100,20,Vocab::spi+"+"+accessory.spi.to_s)
    self.contents.draw_text(253+@exo2,310+OFFSET+@eyo,100,20,Vocab::agi+"+"+accessory.agi.to_s)
    end
    end
    end
    
    def required(base)
    return (((base-1)/10)+2).floor
    end
    
    end
    
    #==============================================================================
    # ** Lettuce_Window_Help
    #------------------------------------------------------------------------------
    # This window displays property of each attribute
    #==============================================================================
    class Lettuce_Window_Help < Window_Base
    def initialize(index)
    super(401,372,144,44)
    self.contents = Bitmap.new(width-32,height-32)
    self.contents.font.size = Fontsize-4
    refresh(index)
    end
    
    def refresh(index)
    self.contents.clear
    self.contents.font.color = text_color(16)
    
    case index
    when 0
    self.contents.draw_text(0,-5,112,20,"HP + "+HPIncreaseBy.to_s)
    when 1
    self.contents.draw_text(0,-5,112,20,"MP + "+MPIncreaseBy.to_s)
    when 2
    self.contents.draw_text(0,-5,112,20,Vocab::atk+" + "+IncreaseBy.to_s)
    when 3
    self.contents.draw_text(0,-5,112,20,Vocab::def+" + "+IncreaseBy.to_s)
    when 4
    self.contents.draw_text(0,-5,112,20,Vocab::spi+" + "+IncreaseBy.to_s)
    when 5
    self.contents.draw_text(0,-5,112,20,Vocab::agi+" + "+IncreaseBy.to_s)
    when 6
    self.contents.draw_text(0,-5,112,20,"HIT + "+HITIncreaseBy.to_s)
    when 7
    self.contents.draw_text(0,-5,112,20,"EVA + "+EVAIncreaseBy.to_s)
    when 8
    self.contents.draw_text(0,-5,112,20,"CRIT + "+CRITIncreaseBy.to_s)
    end
    
    
    end
    
    end
    
    
    #==============================================================================
    # ** Scene_Stat_Dist
    #------------------------------------------------------------------------------
    # Performs stat distribution process :)
    #==============================================================================
    class Scene_Stat_Dist < Scene_Base
    def initialize(menu_index)
    @menu_index = menu_index
    end
    
    def start
    super
    create_menu_background
    ihp = " Stamina"
    imp = " Intellect"
    i1 = " Attack Power"
    i2 = " Defense"
    i3 = " Spell Power"
    i4 = " Agility"
    i5 = " Accuracy"
    i6 = " Evasion"
    i7 = " Critical Hit"
    @window_select = Window_Command.new(144,[ihp,imp,i1,i2,i3,i4,i5,i6,i7])
    if $position
    @window_select.index = $position - 1
    else
    @window_select.index = 0
    end
    
    @window_select.active = true
    @window_select.x = 401
    @window_select.y = 71
    
    @window_top = Lettuce_Window_Top.new
    @window_points = Lettuce_Window_Points.new(@menu_index)
    @window_info = Lettuce_Window_Info.new(@menu_index)
    @window_help = Lettuce_Window_Help.new(@window_select.index)
    end
    
    def terminate
    super
    dispose_menu_background
    @window_top.dispose
    @window_points.dispose
    @window_info.dispose
    @window_help.dispose
    @window_select.dispose
    end
    
    def update
    update_menu_background
    #@window_points.refresh(@menu_index)
    
    @window_select.update
    #@window_help.refresh(@window_select.index)
    if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN)
    @window_help.refresh(@window_select.index)
    end
    
    @changes = 0
    if Input.trigger?(Input::B)
    Sound.play_cancel
    $scene = Scene_Map.new
    elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT)
    @menu_index += 1
    @menu_index %= $game_party.members.size
    $scene = Scene_Stat_Dist.new(@menu_index)
    elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT)
    @menu_index += $game_party.members.size - 1
    @menu_index %= $game_party.members.size
    $scene = Scene_Stat_Dist.new(@menu_index)
    elsif Input.trigger?(Input::C)
    #Points addition begins
    #which attribute
    if Mode == 1
    do_point_reg
    elsif Mode == 2
    do_point_rag
    end
    end
    
    end
    
    def do_point_reg
    @att = @window_select.index
    
    actor = $game_party.members[@menu_index]
    
    ##weapons
    weapon = $data_weapons[actor.weapon_id]
    shield = $data_armors[actor.armor1_id]
    helm =$data_armors[actor.armor2_id]
    body =$data_armors[actor.armor3_id]
    accessory =$data_armors[actor.armor4_id]
    
    bonus_atk = 0
    bonus_def = 0
    bonus_spi = 0
    bonus_agi = 0
    
    if weapon
    bonus_atk += weapon.atk
    bonus_def += weapon.def
    bonus_spi += weapon.spi
    bonus_agi += weapon.agi
    end
    if shield
    bonus_atk += shield.atk
    bonus_def += shield.def
    bonus_spi += shield.spi
    bonus_agi += shield.agi
    end
    if helm
    bonus_atk += helm.atk
    bonus_def += helm.def
    bonus_spi += helm.spi
    bonus_agi += helm.agi
    end
    if body
    bonus_atk += body.atk
    bonus_def += body.def
    bonus_spi += body.spi
    bonus_agi += body.agi
    end
    if accessory
    bonus_atk += accessory.atk
    bonus_def += accessory.def
    bonus_spi += accessory.spi
    bonus_agi += accessory.agi
    end
    
    case @att
    
    when 0 #HP
    if actor.points < PointsPerHP
    Sound.play_cancel
    elsif actor.maxhp >= MaxHP
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].maxhp += HPIncreaseBy
    if $game_party.members[@menu_index].maxhp > MaxHP
    $game_party.members[@menu_index].maxhp = MaxHP
    end
    actor.points -= PointsPerHP
    @changes += 1
    $position = 1
    end
    
    when 1 #MP
    if actor.points < PointsPerMP
    Sound.play_cancel
    elsif actor.maxmp >= MaxMP
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].maxmp += MPIncreaseBy
    if $game_party.members[@menu_index].maxmp > MaxMP
    $game_party.members[@menu_index].maxmp = MaxMP
    end
    actor.points -= PointsPerMP
    @changes += 1
    $position = 1
    end
    
    when 2 #ATK
    if actor.points < 1
    Sound.play_cancel
    elsif (actor.atk-bonus_atk) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].atk += IncreaseBy
    if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat
    $game_party.members[@menu_index].atk = MaxStat+bonus_atk
    end
    actor.points -= 1
    @changes += 1
    $position = 1
    end
    
    when 3 #DEF
    if actor.points < 1
    Sound.play_cancel
    elsif (actor.def-bonus_def) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].def += IncreaseBy
    if ($game_party.members[@menu_index].def-bonus_def) > MaxStat
    $game_party.members[@menu_index].def = MaxStat+bonus_def
    end
    actor.points -= 1
    @changes += 1
    $position = 2
    end
    
    when 4 #SPI
    if actor.points < 1
    Sound.play_cancel
    elsif (actor.spi-bonus_spi) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].spi += IncreaseBy
    if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat
    $game_party.members[@menu_index].spi = MaxStat+bonus_spi
    end
    actor.points -= 1
    @changes += 1
    $position = 3
    end
    when 5 #AGI
    if actor.points < 1
    Sound.play_cancel
    elsif (actor.agi-bonus_agi) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].agi += IncreaseBy
    if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat
    $game_party.members[@menu_index].agi = MaxStat+bonus_agi
    end
    actor.points -= 1
    @changes += 1
    $position = 4
    end
    
    
    when 6 #HIT
    if actor.points < PointsPerHIT
    Sound.play_cancel
    elsif actor.hitr >= MaxHIT
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].hitr += HITIncreaseBy
    if $game_party.members[@menu_index].hitr > MaxHIT
    $game_party.members[@menu_index].hitr = MaxHIT
    end
    actor.points -= PointsPerHIT
    @changes += 1
    $position = 1
    end
    when 7 #EVA
    if actor.points < PointsPerEVA
    Sound.play_cancel
    elsif actor.evar >= MaxEVA
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].evar += EVAIncreaseBy
    if $game_party.members[@menu_index].evar > MaxEVA
    $game_party.members[@menu_index].evar = MaxEVA
    end
    actor.points -= PointsPerEVA
    @changes += 1
    $position = 1
    end
    when 8 #CRIT
    if actor.points < PointsPerCRIT
    Sound.play_cancel
    elsif actor.crir >= MaxCRIT
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].crir += CRITIncreaseBy
    if $game_party.members[@menu_index].crir > MaxCRIT
    $game_party.members[@menu_index].crir = MaxCRIT
    end
    actor.points -= PointsPerCRIT
    @changes += 1
    $position = 1
    end
    end
    
    if @changes > 0
    @window_info.refresh(@menu_index)
    @window_points.refresh(@menu_index)
    #$scene = Scene_Stat_Dist.new(@menu_index)
    end
    end
    
    def do_point_rag
    @att = @window_select.index
    
    actor = $game_party.members[@menu_index]
    
    ##weapons
    weapon = $data_weapons[actor.weapon_id]
    shield = $data_armors[actor.armor1_id]
    helm =$data_armors[actor.armor2_id]
    body =$data_armors[actor.armor3_id]
    accessory =$data_armors[actor.armor4_id]
    
    bonus_atk = 0
    bonus_def = 0
    bonus_spi = 0
    bonus_agi = 0
    
    if weapon
    bonus_atk += weapon.atk
    bonus_def += weapon.def
    bonus_spi += weapon.spi
    bonus_agi += weapon.agi
    end
    if shield
    bonus_atk += shield.atk
    bonus_def += shield.def
    bonus_spi += shield.spi
    bonus_agi += shield.agi
    end
    if helm
    bonus_atk += helm.atk
    bonus_def += helm.def
    bonus_spi += helm.spi
    bonus_agi += helm.agi
    end
    if body
    bonus_atk += body.atk
    bonus_def += body.def
    bonus_spi += body.spi
    bonus_agi += body.agi
    end
    if accessory
    bonus_atk += accessory.atk
    bonus_def += accessory.def
    bonus_spi += accessory.spi
    bonus_agi += accessory.agi
    end
    
    case @att
    
    when 0 #HP
    if actor.points < PointsPerHP
    Sound.play_cancel
    elsif actor.maxhp >= MaxHP
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].maxhp += HPIncreaseBy
    if $game_party.members[@menu_index].maxhp > MaxHP
    $game_party.members[@menu_index].maxhp = MaxHP
    end
    actor.points -= PointsPerHP
    @changes += 1
    $position = 1
    end
    
    when 1 #MP
    if actor.points < PointsPerMP
    Sound.play_cancel
    elsif actor.maxmp >= MaxMP
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].maxmp += MPIncreaseBy
    if $game_party.members[@menu_index].maxmp > MaxMP
    $game_party.members[@menu_index].maxmp = MaxMP
    end
    actor.points -= PointsPerMP
    @changes += 1
    $position = 1
    end
    
    when 2 #ATK
    base_value = actor.atk-bonus_atk
    points = actor.points
    if enough_point(base_value,points)
    Sound.play_cancel
    elsif (actor.atk-bonus_atk) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].atk += IncreaseBy
    if ($game_party.members[@menu_index].atk-bonus_atk) > MaxStat
    $game_party.members[@menu_index].atk = MaxStat+bonus_atk
    end
    actor.points -= required(base_value)
    @changes += 1
    $position = 1
    end
    
    when 3 #DEF
    base_value = actor.def-bonus_def
    points = actor.points
    if enough_point(base_value,points)
    Sound.play_cancel
    elsif (actor.def-bonus_def) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].def += IncreaseBy
    if ($game_party.members[@menu_index].def-bonus_def) > MaxStat
    $game_party.members[@menu_index].def = MaxStat+bonus_def
    end
    actor.points -= required(base_value)
    @changes += 1
    $position = 2
    end
    
    when 4 #SPI
    base_value = actor.spi-bonus_spi
    points = actor.points
    if enough_point(base_value,points)
    Sound.play_cancel
    elsif (actor.spi-bonus_spi) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].spi += IncreaseBy
    if ($game_party.members[@menu_index].spi-bonus_spi) > MaxStat
    $game_party.members[@menu_index].spi = MaxStat+bonus_spi
    end
    actor.points -= required(base_value)
    @changes += 1
    $position = 3
    end
    when 5 #AGI
    base_value = actor.agi-bonus_agi
    points = actor.points
    if enough_point(base_value,points)
    Sound.play_cancel
    elsif (actor.agi-bonus_agi) >= MaxStat
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].agi += IncreaseBy
    if ($game_party.members[@menu_index].agi-bonus_agi) > MaxStat
    $game_party.members[@menu_index].agi = MaxStat+bonus_agi
    end
    actor.points -= required(base_value)
    @changes += 1
    $position = 4
    end
    when 6 #HIT
    if actor.points < PointsPerHIT
    Sound.play_cancel
    elsif actor.hitr >= MaxHIT
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].hitr += HITIncreaseBy
    if $game_party.members[@menu_index].hitr > MaxHIT
    $game_party.members[@menu_index].hitr = MaxHIT
    end
    actor.points -= PointsPerHIT
    @changes += 1
    $position = 1
    end
    when 7 #EVA
    if actor.points < PointsPerEVA
    Sound.play_cancel
    elsif actor.evar >= MaxEVA
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].evar += EVAIncreaseBy
    if $game_party.members[@menu_index].evar > MaxEVA
    $game_party.members[@menu_index].evar = MaxEVA
    end
    actor.points -= PointsPerEVA
    @changes += 1
    $position = 1
    end
    when 8 #CRIT
    if actor.points < PointsPerCRIT
    Sound.play_cancel
    elsif actor.crir >= MaxCRIT
    Sound.play_cancel
    else
    Sound.play_use_item
    $game_party.members[@menu_index].crir += CRITIncreaseBy
    if $game_party.members[@menu_index].crir > MaxCRIT
    $game_party.members[@menu_index].crir = MaxCRIT
    end
    actor.points -= PointsPerCRIT
    @changes += 1
    $position = 1
    end
    end
    if @changes > 0
    @window_points.refresh(@menu_index)
    @window_info.refresh(@menu_index)
    #$scene = Scene_Stat_Dist.new(@menu_index)
    end
    end
    
    def enough_point(base,points)
    required = (((base-1)/10)+2).floor
    if required > points
    return true
    elsif required <= points
    return false
    end
    end
    
    def required(base)
    return (((base-1)/10)+2).floor
    end
    
    end
    
    
    #==============================================================================
    # ** Game_Actor
    #------------------------------------------------------------------------------
    # Giving game actor a point attribute
    # -> $game_party.member[x].points
    #==============================================================================
    
    class Game_Actor < Game_Battler
    
    attr_accessor :points
    attr_accessor :hit_bonus
    attr_accessor :eva_bonus
    attr_accessor :cri_bonus
    attr_accessor :hitr
    attr_accessor :evar
    attr_accessor :crir
    #attr_accessor :current_lvl_exp
    #attr_accessor :next_lvl_exp
    alias Lettuce_Game_Actor_Ini initialize
    
    def initialize(actor_id)
    Lettuce_Game_Actor_Ini(actor_id)
    @points = StartPoints
    @hitr = 0
    @evar = 0
    @crir = 0
    #@current_lvl_exp = @exp_list[@level-1]
    #@next_lvl_exp = @exp_list[@level]
    end
    
    def points
    return @points
    end
    
    #--------------------------------------------------------------------------
    # * Get Hit Rate
    #--------------------------------------------------------------------------
    def hit
    if two_swords_style
    n1 = weapons[0] == nil ? 95 : weapons[0].hit
    n2 = weapons[1] == nil ? 95 : weapons[1].hit
    n = [n1, n2].min
    else
    n = weapons[0] == nil ? 95 : weapons[0].hit
    end
    if n+@hitr <= MaxHIT
    return n+@hitr
    else return MaxHIT
    end
    end
    #--------------------------------------------------------------------------
    # * Get Evasion Rate
    #--------------------------------------------------------------------------
    def eva
    n = 5
    for item in armors.compact do n += item.eva end
    if n+@evar <= MaxEVA
    return n+@evar
    else return MaxEVA
    end
    end
    #--------------------------------------------------------------------------
    # * Get Critical Ratio
    #--------------------------------------------------------------------------
    def cri
    n = 4
    n += 4 if actor.critical_bonus
    for weapon in weapons.compact
    n += 4 if weapon.critical_bonus
    end
    if n+@crir <= MaxCRIT
    return n+@crir
    else return MaxCRIT
    end
    end
    
    #--------------------------------------------------------------------------
    # * Get Hit Rate
    #--------------------------------------------------------------------------
    def base_hit
    if two_swords_style
    n1 = weapons[0] == nil ? 95 : weapons[0].hit
    n2 = weapons[1] == nil ? 95 : weapons[1].hit
    n = [n1, n2].min
    else
    n = weapons[0] == nil ? 95 : weapons[0].hit
    end
    return n
    end
    #--------------------------------------------------------------------------
    # * Get Evasion Rate
    #--------------------------------------------------------------------------
    def base_eva
    n = 5
    for item in armors.compact do n += item.eva end
    return n
    end
    #--------------------------------------------------------------------------
    # * Get Critical Ratio
    #--------------------------------------------------------------------------
    def base_cri
    n = 4
    n += 4 if actor.critical_bonus
    for weapon in weapons.compact
    n += 4 if weapon.critical_bonus
    end
    return n
    end
    
    
    #--------------------------------------------------------------------------
    # * bonus rates
    #--------------------------------------------------------------------------
    def hitr
    return @hitr
    end
    
    def evar
    return @evar
    end
    
    def crir
    return @crir
    end
    
    
    
    def current_lvl_exp
    return @exp_list[@level]
    end
    
    def next_lvl_exp
    return @exp_list[@level+1]-@exp_list[@level]
    end
    end 

     

    Ora: Qual è il problema? Beh, volevo far sì che il personaggio aumentasse di livello grazie ai "soldi" tipici con i quali si acquistano anche gli equipaggiamenti, e quindi ho sostituito

     

    points = actor.points con points = $game_party.gold

     

    Ma purtroppo l'unica cosa che fa è visualizzare i soldi. Allora ho tolto la riga nella configurazione StartPoints = 8 e nella riga 1177 ho messo @points = $game_party.gold al posto di @points = StartPoints e poco sotto return $game_party.gold.

     

    Il problema qui è che funziona ma i "soldi" sono infiniti, ovvero anche se ho 100 G lui continua ad aumentare di livello e non descresce l'ammontare di G. Per quanto ne so io di Ruby ho cercato di fare il possibile, qualche buon uomo (o buona donna) potrebbe aiutarmi?

     

    ^^

     

     

  11. Mi sono accorto di essere un cretino XD Oggi ho formattato il pc perchè aveva dei problemi ecc, ho prontamente salvato rmvx e progetto annesso + cose varie, ma mi sono dimenticato l'XP! Ora non so più dove diavolo cercarlo, avevo la 1.02a, non è che qualcuno sa aiutarmi? ^ ^ se no mi tocca usare l'ace :dry:

  12. A parte il limite di tile set imposto dal VX e il fatto che andando avanti la faccenda diventava insostenibile, è anche un fatto di manualità, avendo cominciato sull'XP ci sono alcune cose li che mi vengono meglio. L'ho ripreso in mano oggi dopo sei mesi che non toccavo l'XP ed è stato come se non l'avessi mai "lasciato" xD lo trovo più completo e allo stesso tempo più semplice per alcune cose del VX. Sull'XP ci ho fatto dei giochini idioti di qualche decina di minuti che (fortunatamente sono andati persi) creavo quando non avevo un acca da fare, roba demenziale, quindi mi ci sono abbastanza spaccato su :)
  13. Ah bene fa piacere sapere che il progetto è vivo... ee sì, pure tu! XD

    Gli ultimi anni ;____ ; tranquillo poi la strada sarà tutta in discesa... verso un precipizio con università o lavoro! XD

    ^ ^

    [/quote

    Ah bene ._. XD

     

    Volevo informare tutti che (per la gioia immensa di Guardian, credo xD) ho constatato che 'sto progetto è irrealizzabile sul VX, quindi lo sposto su.. XP! Appena ho un po' di tempo comincerò a fare qualcosa per aggiornare le mappe, in modo da avere almeno qualcosa da scambiare con queste mappe che ci sono qui.. Ovviamente ci sarà qualche modifica anche al game play e alle features quindi ci penserò su e valuterò qui e la le "opportunità" che l'XP offre. Per me sarà una specie di ritorno agli albori visto che avevo cominciato la mia avventura nel making con quel tool :) prego qualcuno se possibile di spostare la discussione nella sezione XP. Nel caso in cui ciò non fosse possibile aprirò un topic apposito appena avrò la possibilità :)

  14. Ciao a tutti ragazzi! Volevo solo farvi sapere che il progetto non è morto e nemmeno io! (Per fortuna) Sto avendo qualche problema di tempo a causa della scuola, sono all'ultimo anno, è un po' una brutta bestia e mi sto concentrando su quello. Per ora non ho più molto tempo per dedicarmi al gioco, ma vi faccio comunque sapere che il progetto c'è e seppur a rilento va avanti :)
  15. Domanda: "come dark souls non darai alcun incipit al giocatore? Cioè, chi gioca non sarà guidato da una vera e propria trama verso un obbiettivo oppure sì?"

     

    La domanda sorge spontanea dato che se penso a dark souls le caratteristiche che mi vengono in mente sono queste :D

     

    Assolutamente no, per me è una colonna portante la trama, e di conseguenza ovviamente le location si attengono ad essa. Come riferimento Dark Souls intendo il tipo di esplorazione e il tipo di approccio possibile ad esso. Poniamo il caso, all'inizio del gioco...(Spoiler, aprite solo se non avete alcuna intenzione di giocare o avete già finito o mai lo avrete)

     

     

    ...Al Santuario del Legame del fuoco sarà abbastanza suicida andare verso cimitero e catacombe, perchè si verrà brutalmente linciati da scheletrini e scheletroni, in quanto non si hanno livellatura ed armi adatte al proseguimento. Andando invece in direzione del borgo dei non morti la situazione e i nemici saranno più semplici da tenere sotto controllo, senza dover necessariamente fare brutte fini o darsela a gambe levate per non rischiare le anime sudatamente ottenute.

     

     

    Detto ciò, vedi che al giocatore non viene posto un limite all'esplorazione, ma è da suicidio frequentare determinati posti con livello inadatto, il che ti porta a seguire una ben definita via, anche se sta poi a te decidere dove andare a tuo rischio e pericolo. In parole povere, sul territorio di Alis, non ci sono limiti all'esplorazione, nel senso che non vi troverete davanti uno di quei giochi in cui avete solo una unica strada da seguire, ma un "mondo" autonomo che potrete esplorare illimitatamente* dove per avanzare nella storia dovrete andare per gradi, ma se non volete attenervi alla storia e semplicemente avere di fronte un titolo rpg in cui combattere per livellare e arrivare al massimo livello possibile potete farlo. In pratica è un titolo due-in-uno, o per lo meno, così l'ho al momento partorito xD

     

    *in realtà nei limiti richiesti dal titolo, il tool e le ambientazioni.

×
×
  • Create New...