Jump to content
Rpg²S Forum

Alato

Utenti Speciali
  • Posts

    899
  • Joined

  • Last visited

Posts posted by Alato

  1. Mi accodo a ciò che già è stato detto: mi aspettavo molta più violenza, ma invece si è rivelato cruento "a tratti" e sempre in momenti in cui ci stava, non era mai violenza gratuita come si può vedere in altri film altrettanto "non vietati ai minori".

     

    Bando alle polemiche in cui non voglio infilarmi, devo dire che mi è piaciuto moltissimo: dalla regia, ai personaggi, alla storia, alla violenza stessa. Tutto è ben calibrato e emozionante, e non era tutto sommato l'americanata che pensavo. La parte nella città poi è un piacere per gli occhi: scorci fantastici e, almeno per un profano della storia maya come me, molto realistici.

     

    Mel Gibson in questo film ha colto nel segno più di quanto abbia fatto con The Passion, imho.

  2. Sticazzi z4g0! Complimentoni, non c'è che dire, spero che presto posterai una demo (magari non criptata ^^). Quoto le domande di havah, e aggiungo: il porblema dello scattoso è dovuto dal modo in cui ha creato l'engine o a limiti del maker? Credo la seconda ma son comunque curioso.
  3. Lo sto provando.

    Un piccolo bacarozzo

    Se una volta che premi l'interruttore della luce lo spegni, il protagonista ripete il discorso che ha fatto appena entrato.

     

  4. Mi sono scordato di dire che lo script va a sostituire alcuni metodi di update (precisamente quelli di Game_Character, Game_Map, Spriteset_Map) quindi se volete fare delle modifiche a quei metodi dovete farle nelle versioni che avete incollato. In pratica quelli vecchi vengono tagliati fuori da questo script.

     

    Se vi vengono in mente cose da aggiungere avvisate, qualche aggiunta per la versione 2 la sto già facendo. :P

  5. Mai giocato però ne avevo viste delle sessioni eoni fa..mi è sembrato sicuramente molto inquietante, e per questo molto bello visto il genere :D

     

    C'è da dire che dipende sempre dal master per la qualità della giocata quindi bisognerebbe tastare con mano. ^^

     

    P.s.

    I Piccoli Brividi....ne ho ancora una ventina sul comodino...quanti ricordi XDDD

     

    Insieme alle favolose avventure di Lupo Solitario hanno modellato la mia infanzia ;O;

  6. Citizens Script v1.0

    Descrizione

    Questo script permette di rendere le grosse città/villaggi ricche di personaggi creando solo pochi eventi e senza pesare sul gioco.
    Basterà scrivere all'interno di un commento dell'evento "begin passante" e l'evento otterrà delle caratteristiche particolari:
    • Movimento Casuale Personalizzato: si muove spesso in avanti e ogni tanto cambia direzione
    • Frequenza e Velocità: sono entrambe decise via script, la velocità è casuale
    • Grafica: la grafica dell'evento è gestita dallo script, che ne sceglie una a caso tra i characters di default "Civilian"
    • Posizionamento: se i cittadini si allontaneranno troppo dal personaggio, verranno riposizionati casualmente nelle vicinanze dell'eroe (ovviamente fuori dallo schermo)

    Capite che in questo modo creando una decina di eventi Cittadino il personaggio incontrerà sempre persone diverse, qualunque sia la dimensione della città!

    Autore

    Alato

    Credits: questo script contiene l'XPML Script di Rataime e una versione modificata da me dell'Anti Event Lag Script di Near Fantastica

    Allegati

    Lo script in versione txt è in fondo alla pagina

    Istruzioni per l'uso

    Create una pagina sopra il main, e incollate al suo interno lo script.
    Fatto ciò vi basterà creare un commento "begin passante" all'interno degli eventi che volete rendere Cittadini. Consiglio di provarlo in una mappa ampia.

     

     

    #==============================================================================
    # - Citizens Script ~ v1.0 # ( 13/12/06 )
    #--------------------------#---------------------------------------------------
    # by Alato ~ www.rpg2s.net #
    #--------------------------#
    # Contiene l'XPML Script di Rataime e una versione
    # modificata da me dell'Anti Event Lag Script di 
    # Near Fantastica.
    #------------------------------------------------------------------------------
    # Incollato questo script in una pagina sopra il Main
    # avrete a disposizione un nuovo comando per gli eventi.
    # Scrivendo "begin passante" in un commento dell'evento
    # questo verrà considerato come un passante, cioè sarà
    # sempre presente vicino allo schermo.
    # Grafica, velocità e frequenza sono gestiti dallo
    # script in maniera casuale (per la grafica utilizza
    # i character di default "Civilian").
    # 
    # In caso di domande o problemi chiedete nel forum
    # di www.rpg2s.net
    #==============================================================================
    
    ############################################
    ######## Aggiunte a Game_Character #########
    ############################################
    class Game_Character
      #--------------------------------------------------------------------------
      # - Aggiornamento
      #--------------------------------------------------------------------------
      def update
    	if passante?
    	  @move_type = 77 # Movimento Passanti
    	  @move_frequency = 6
    	end
    	if jumping?
    	  update_jump
    	elsif moving?
    	  update_move
    	else
    	  update_stop
    	end
    	if @anime_count > 18 - @move_speed * 2
    	  if not @step_anime and @stop_count > 0
    		@pattern = @original_pattern
    	  else
    		@pattern = (@pattern + 1) % 4
    	  end
    	  @anime_count = 0
    	end
    	if @wait_count > 0
    	  @wait_count -= 1
    	  return
    	end
    	if @move_route_forcing
    	  move_type_custom
    	  return
    	end
    	if @starting or lock?
    	  return
    	end
    	if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
    	  case @move_type
    	  when 1 
    		move_type_random
    	  when 2 
    		move_type_toward_player
    	  when 3 
    		move_type_custom
    	  when 77
    		move_type_passante
    	  end
    	end
      end
      #--------------------------------------------------------------------------
      # - Riposiziona
      #--------------------------------------------------------------------------
      def riposiziona
    	case rand(3)
    	when 0
    	  r_x = $game_map.display_x + rand(21)*128 - 128*3
    	  r_y = $game_map.display_y - 128*3
    	when 1
    	  r_x = $game_map.display_x + rand(21)*128 - 128*3
    	  r_y = $game_map.display_y + 2176 + 128*3
    	when 2
    	  r_x = $game_map.display_x - 128*3
    	  r_y = $game_map.display_y + rand(16)*128 - 128*3
    	when 3
    	  r_x = $game_map.display_x + 2816 + 128*3
    	  r_y = $game_map.display_y + rand(16)*128 - 128*3
    	end
    	x = r_x / 128
    	y = r_y / 128
    	if $game_map.passable?(x, y, 0)
    	  @real_x = r_x
    	  @real_y = r_y
    	  @x = x
    	  @y = y
    	else
    	  riposiziona
    	end
    	r = rand(23) + 1
    	if r < 10
    	  name = "10" + r.to_s + "-Civilian0" + r.to_s
    	else
    	  name = "1" + r.to_s + "-Civilian" + r.to_s
    	end
    	@character_name = name
    	@move_speed = rand(2)+ 1
      end
      #--------------------------------------------------------------------------
      # - Movimento Passante
      #--------------------------------------------------------------------------
      def move_type_passante
    	case rand(19)
    	when 0..16 
    	  move_forward
    	when 17
    	  move_random
    	when 18
    	  @stop_count = 0
    	end
      end
    end
    
    ############################################
    ######### Aggiunte a GAme_Event ############
    ############################################
    class Game_Event < Game_Character
      #--------------------------------------------------------------------------
      # - Controlla se è un passante
      #--------------------------------------------------------------------------
      def passante?
    	params = XPML_read("passante",@id,2)
    	return (params != nil)
      end
    end
    
    ############################################
    ######### Aggiunte a Game_Player ###########
    ############################################
    class Game_Player < Game_Character
      #--------------------------------------------------------------------------
      # - Il Player non è mai un passante
      #--------------------------------------------------------------------------
      def passante?
    	return false
      end
    end
    
    		   ###################
    ############ XPML Definition ###############
    		   #	  by Rataime #
    		   ###################
     def XPML_read(markup,event_id,max_param_number=0)
       parameter_list = nil
       event=$game_map.events[event_id]
       return if event.list==nil
    	 for i in 0...event.list.size
    	   if event.list[i].code == 108 and event.list[i].parameters[0].downcase == "begin "+markup.downcase
    		 parameter_list = [] if parameter_list == nil
    		 for j in i+1...event.list.size
    		   if event.list[j].code == 108
    			 parts = event.list[j].parameters[0].split
    			 if parts.size!=1 and parts[0].downcase!="begin"
    			   if parts[1].to_i!=0 or parts[1]=="0"
    				 parameter_list.push(parts[1].to_i)
    			   else
    				 parameter_list.push(parts[1])
    			   end
    			 else
    			   return parameter_list
    			 end
    		   else
    			 return parameter_list
    		   end
    		   return parameter_list if max_param_number!=0 and j==i+max_param_number
    		 end
    	   end
    	 end
       return parameter_list
     end
     
    	  ############################
    ####### Anti Event Lag Script v3 ###############
    	  #	   by Near Fantastica #
    	  ############################
    	  #		   ~ mod by Alato #
    	  ############################
    #====
    # ¦ Game_Map
    #====
    
    class Game_Map
    #------
    def in_range?(object)
    screne_x = $game_map.display_x
    screne_x -= 256
    screne_y = $game_map.display_y
    screne_y -= 256
    screne_width = $game_map.display_x
    screne_width += 2816
    screne_height = $game_map.display_y
    screne_height += 2176
    return false if object.real_x <= screne_x
    return false if object.real_x >= screne_width
    return false if object.real_y <= screne_y
    return false if object.real_y >= screne_height
    return true
    end
    #------
    def in_big_range?(object)
    screne_x = $game_map.display_x
    screne_x -= 256*6
    screne_y = $game_map.display_y
    screne_y -= 256*6
    screne_width = $game_map.display_x
    screne_width += 2816 + 256*5
    screne_height = $game_map.display_y
    screne_height += 2176 + 256*5
    return false if object.real_x <= screne_x
    return false if object.real_x >= screne_width
    return false if object.real_y <= screne_y
    return false if object.real_y >= screne_height
    return true
    end
    #------
    def update
    if $game_map.need_refresh
     refresh
    end
    if @scroll_rest > 0
     distance = 2 ** @scroll_speed
     case @scroll_direction
     when 2
       scroll_down(distance)
     when 4
       scroll_left(distance)
     when 6  
       scroll_right(distance)
     when 8  
       scroll_up(distance)
     end
     @scroll_rest -= distance
    end
    for event in @events.values
     if in_range?(event) or event.trigger == 3 or event.trigger == 4
       event.update
     elsif event.passante? # se è un passante riposizionalo
       event.update
       until in_big_range?(event)
    	 event.riposiziona
       end
     end
    end
    for common_event in @common_events.values
     common_event.update
    end
    @fog_ox -= @fog_sx / 8.0
    @fog_oy -= @fog_sy / 8.0
    if @fog_tone_duration >= 1
     d = @fog_tone_duration
     target = @fog_tone_target
     @fog_tone.red = (@fog_tone.red * (d - 1) + target.red) / d
     @fog_tone.green = (@fog_tone.green * (d - 1) + target.green) / d
     @fog_tone.blue = (@fog_tone.blue * (d - 1) + target.blue) / d
     @fog_tone.gray = (@fog_tone.gray * (d - 1) + target.gray) / d
     @fog_tone_duration -= 1
    end
    if @fog_opacity_duration >= 1
     d = @fog_opacity_duration
     @fog_opacity = (@fog_opacity * (d - 1) + @fog_opacity_target) / d
     @fog_opacity_duration -= 1
    end
    end
    end
    
    #====
    # ¦ Spriteset_Map
    #====
    
    class Spriteset_Map
    #------
    def in_range?(object)
    screne_x = $game_map.display_x
    screne_x -= 256
    screne_y = $game_map.display_y
    screne_y -= 256
    screne_width = $game_map.display_x
    screne_width += 2816
    screne_height = $game_map.display_y
    screne_height += 2176
    return false if object.real_x <= screne_x
    return false if object.real_x >= screne_width
    return false if object.real_y <= screne_y
    return false if object.real_y >= screne_height
    return true
    end
    #------
    def in_big_range?(object)
    screne_x = $game_map.display_x
    screne_x -= 256*6
    screne_y = $game_map.display_y
    screne_y -= 256*6
    screne_width = $game_map.display_x
    screne_width += 2816 + 256*5
    screne_height = $game_map.display_y
    screne_height += 2176 + 256*5
    return false if object.real_x <= screne_x
    return false if object.real_x >= screne_width
    return false if object.real_y <= screne_y
    return false if object.real_y >= screne_height
    return true
    end
    #------
    def update
    if @panorama_name != $game_map.panorama_name or
      @panorama_hue != $game_map.panorama_hue
     @panorama_name = $game_map.panorama_name
     @panorama_hue = $game_map.panorama_hue
     if @panorama.bitmap != nil
       @panorama.bitmap.dispose
       @panorama.bitmap = nil
     end
     if @panorama_name != ""
       @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
     end
     Graphics.frame_reset
    end
    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
     @fog_name = $game_map.fog_name
     @fog_hue = $game_map.fog_hue
     if @fog.bitmap != nil
       @fog.bitmap.dispose
       @fog.bitmap = nil
     end
     if @fog_name != ""
       @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
     end
     Graphics.frame_reset
    end
    @tilemap.ox = $game_map.display_x / 4
    @tilemap.oy = $game_map.display_y / 4
    @tilemap.update
    @panorama.ox = $game_map.display_x / 8
    @panorama.oy = $game_map.display_y / 8
    @fog.zoom_x = $game_map.fog_zoom / 100.0
    @fog.zoom_y = $game_map.fog_zoom / 100.0
    @fog.opacity = $game_map.fog_opacity
    @fog.blend_type = $game_map.fog_blend_type
    @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
    @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
    @fog.tone = $game_map.fog_tone
    i=0
    for sprite in @character_sprites
     if sprite.character.is_a?(Game_Event)
       if in_range?(sprite.character) or sprite.character.trigger == 3 or sprite.character.trigger == 4 or (sprite.character.passante? and in_big_range?(sprite.character))
    	 sprite.update
    	 i+=1
       end
     else
       sprite.update
       i+=1
     end
    end
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.ox = $game_map.display_x / 4
    @weather.oy = $game_map.display_y / 4
    @weather.update
    for sprite in @picture_sprites
     sprite.update
    end
    @timer_sprite.update
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    @viewport3.color = $game_screen.flash_color
    @viewport1.update
    @viewport3.update
    end
    end 

     

     

     

    Postate qui nel caso si riscontrino bug o problemi di sorta. :P

    Citizens_Script.txt

  7. Quello che dice Keroro è una possibile formula per la curva di apprendimento (utilizzando le successioni), poi ovviamente anche quelle di Maverick sono possibili formule anche se un po' più lineari.

     

    La mia idea era appunto di farvi partire da quegli array e tirar su qualche formula di battaglia, però volevo capire bene chi è che stava seguendo l'esercitazione.

    Mi pare che comunque i dubbi siano venuti fuori lo stesso e hanno ottenuto pronta risposta. :nn:

     

    Tra poco torno a proseguire l'esercitazione.

  8. Vabbè, isoliamo casi come questo e i bambini che imitano Andy Bogard, è chiaro che il loro cervello

    ha preso troppe ferie quest'anno......

     

    Comunque, secondo me, come è già stato detto, è inutile mettere censure e divieti, se esistono EMule e altri mezzi per procurarseli, i giochi, io direi di aprire la vendita a tutti, perchè tanto, ad un certo punto è una questione di scelte, da bambino io, se un gioco mi scuoteva, lo lasciavo stare, (anche se poi, con la maggiore età li ho ripresi...) perchè OGNUNO POSSIEDE LA CAPACITA' DI CAPIRE QUELLO CHE STA FACENDO, di distinguere perfettamente quello che è giusto o sbagliato, (Fuori dai casi limite citati sopra), anche di spegnere la play ad un certo punto. Quoto quello che ha detto Baldo, sono cazzi di chi li compra, i software,

     

    ma questo vale anche per la candeggina, ad esempio, dopo che l'hai comprata devi capire che non è una nuova salsa messicana, ma serve per la pulizia. Devi un pò capire quello che ca**o stai facendo....

     

    O sbaglio??

     

    PS: Alato, "Cugino", con una g sola....

     

    Ero ironico..consiglio un ripasso della discografia di Elio e le storie tese.

     

     

    In ogni caso se c'è gente spostata come Eneman che può leggere i libri di Chuck Palahniuk e poi infilarsi realmente delle penne nel culo, allora dovrebbero vietare anche i libri.

     

    E i film.

     

    E i pupazzetti.

     

    Mah...secondo me quando fanno articoli di questo tipo, tentano semplicemente di fornire una spiegazione alla supposta ignoranza/demenzialità delle nuove generazioni: cercano delle scuse per dimenticare che sono stati loro a farla crescere in questo modo senza fare nulla.

    Se dei ragazzi pestano a scuola coetanei handicappati , o si inchiappettano bambine delle elementari dovrebbero farsi un esame di coscienza i genitori, non bisognerebbe puntare il dito su qualche videogioco a caso.

  9. Per quanto riguarda i nomi: @array era un nome qualsiasi, potete metterci quello che vi pare.

     

    @pippo = []
    @pluto = []
    ...

     

    Non dovete assolutamente usare il '.' e per quanto riguarda le regole sui nomi utilizzabili sono le stesse relative alle variabili

    Rispondendo a Zerathul, quel 10 * i significa "dieci moliplicato per i" quindi ad ogni giro cambiando i cambia anche il valore inserito nell'elemento dell'array.

     

    Infatti nella versione "svolta" in ognuno ho messo il valore che ha i all'interno dell'indice.

  10. Allora, vediamo.

    Questo ? il primo abbozzo del Laboratorio, un posto in cui gli utenti possono lavorare su piccolli script proposti dall'insegnante di turno e in generale fare esercizio. Era un po' che pensavo di aprirlo ma mi mancava un argomento da cui partire: vista l'assenza, almeno per ora, di una lezione che spieghi l'utilizzo degli Array, proprio questi saranno il nostro primo argomento!
    Il Grado 1 sta ad indicare il livello che bisogna avere per partecipare, poich? questo ? un servizio esclusivo per gli Studenti del Campus.
     

    Laboratorio di RGSS - Array e Ciclo for

    Ora cercher? di darvi una breve infarinatura dei concetti di base per poter metterci subito al lavoro.

    Concetti di base

    "Un array (o matrice) ? un gruppo di locazioni di memoria che hanno lo stesso nome e si distinguono le une dalle altre attraverso un indice" questa ? la sua definizione.
    Ma andiamo ad analizzarne il significato: considerando che le variabili sono etichette associate a locazioni di memoria, si capisce che gli array in pratica sono un insieme di variabili con lo stesso nome.
    Per poterle distinguere l'una dall'altra si utilizza un indice che viene inserito all'interno di due parentesi quadre subito dopo il nome. L'indice parte da 0 e va aumentando.

    Vediamo questo esempio:

    @array[0] = 10

    Che cosa abbiamo fatto? @array ? un array, e abbiamo inserito il valore 10 nella suo primo elemento. Ogni elemento funziona esattamente come una qualunque variabile.
    Quindi:

    @array[0]
    
    @array[1]
    
    @array[2]

    sono tutte considerabili come variabili differenti accomunate dallo stesso nome.

    Probabilmente vi starete chiedendo perch? bisogna utilizzarli se funzionano esattamente come le variabili: ora non ? chiaro perch? abbiamo pochi elementi, ma immaginate di avvere un array con migliaia di elementi, la comodit? di poterli richiamare semplicemente tramite un indice ? enorme!

    Per creare un array ci sono diversi modi:

    @array = []
    
    @array = Array.new

    Questi creano un array generico, insomma non sappiamo qual ? il numero di elementi e cosa contengono.
    Possiamo invece scrivere:

    @array = [10, 15, 20]

    per ottenere un array di tre elementi che contengono rispettivamente i valori 10, 15 e 20.

    Continuando sulla falsariga di quest'ultimo esempio, immaginiamo di voler stampare il contenuto dei tre elementi dell'array.

    print @array[0]
    
    print @array[1]
    
    print @array[2]

    Come vedete l'indice parte sempre da 0 e non da 1, quindi se volete richiamare il secondo elemento dell'array dovete mettere un 2 tra le quadre.

    Ora pensate che ci sono comandi che permettono di fare la stessa azione 'n' volte: capirete che potrete in poche righe applicare un comando a centinaia di elementi di un array.
    Uno di questi comandi, il pi? comodo per questo utilizzo, ? il for.

    @array = []
    
    for i in 0..3
    
    @array[i] = 10 * i
    
    end

    Analizziamo questo pezzettino di codice: il for ? un ciclo che ripete l'azione contenuta tra for ed end e ad ogni giro aumenta la variabile i di 1, variabile che si pu? utilizzare per qualunque operazione. Questo lo fa partendo dal primo numero dopo l'in fino al numero dopo i puntini: in questo caso quindi parte da 0 e va fino a 3.
    ATTENZIONE: non lasciatevi ingannare dallo zero, il ciclo viene ripetuto 4 volte e non 3 come sembrerebbe a prima vista; infatti i valori di i ad ogni giro saranno 0, 1, 2 e 3 quindi il ciclo far? 4 giri.

    In questo caso ? possibile fare la stessa operazione senza utilizzare for:

    @array = []
    
    @array[0] = 10 * 0
    
    @array[1] = 10 * 1
    
    @array[2] = 10 * 2
    
    @array[3] = 10 * 3

    In questo caso gli elementi erano solo quattro, ma se per esempio fosse stato for i in 0.. 2700 evidentemente sarebbe stato impossibile farlo senza l'utilizzo degli array e di for.


    Un po' d'esercizio

    Invito chi gi? conosceva l'argomento ad evitare di partecipare, per dare spazio a chi ha pi? bisogno di aiuto. Col passare del tempo baster? controllare il Grado ma per ora conto sul vostro buonsenso. ;P

    Ora proviamo a fare qualcosa, cominciando da qualcosa di semplice:

    Create 5 diversi array ognuno con un nome di un attributo: Forza, Destrezza, Agilita(non metteteci l'accento che non lo accetta), Intelligenza e Costituzione.
    Ovviamente cercate nel limite del possibile di fare da soli, altrimenti ? tempo perso. ^^

     

  11. Eh Ene...l'ultima volta stavo per venire ma poi i miei han capito che non stavo andando a un fantomatico Bologna Comics estivo. XD

     

    Comunque io non dicevo di Bologna in sé, ma del motorshow: tutti i miei conoscenti truzzi ci vanno, quindi per ragionamento suppongo che avvenga lo stesso nelle altre città. Indi per cui, potremmo girare per Bologna e tralasciare il tristo motorshow. ;O;

  12. Interrogazione B - Grado 1

    Data di chiusura: Domenica 11 Marzo, Mezzanotte.
    Prossima apertura: n/a


    1) Appello
    Crea una array che contenga tutti i numeri pari compresi tra 1 e 100, poi inserisci i valori 50 e 60 nelle variabili x e y prendendole dall'array. Inserisci infine il primo valore dell'array nella variabile z.
    Verrà valutata la chiarezza del codice e la sua brevità, oltre al funzionamento.
    Non è necessario che sia contenuto in una classe.
    Dovete scrivere il vostro lavoro in un *.txt chiamato "Int._B_Grado_1,_NomeUtente" e allegarlo ad un MP che mi manderete, chiamato "Int.B, Grado 1, NomeUtente".


    2) Appello
    Verrà aggiunta in caso fosse necessaria.



    Quando avete inviato postate un messaggio con scritto "Inviato" in questo topic.

    Per domande sul contenuto dell'interrogazione potete chiedere qui.

    Buon lavoro!

  13. Che dire: belle belle!

     

    Tralasciando commenti su certi topic che mi hanno sinceramente preoccupato ( mah.. o_ ) le magliette sono ben fatte e il logo piazzato su un capo d'abbigliamento rulla. In ogni caso propongo di inserire altre versioni con un logo piccolino sul cuore ( :°D ) e qualcos'altro al centro, tanto per cambiare. ;O;

     

    Le mutande le compro solo se sono zebrate.

     

    Con la scritta dorata circondata di brillanti.

     

     

    Al massimo maculate.

     

     

×
×
  • Create New...