Alato Posted March 27, 2008 Share Posted March 27, 2008 (edited) New Caterpillar Script v0.9DescrizioneCaterpillar script alternativo che permette la visualizzazioni di soli 3 personaggi sulla mappa. Ancora da sviluppare bene ma è un estratto da un mio vecchio progetto più ampio quindi non è detto che ci lavorerò ancora sopra. I personaggi evitano la maggior parte degli ostacoli, ma volendo riuscite ad incastrarli abbastanza facilmente.AutoreAlatoAllegatiFile *.txt in basso.Screen 1-2-3Istruzioni per l'usoIncollate il contenuto del file *.txt in una pagina sopra il main. #================================# # - New Caterpillar Script V0.9 # #--------------------------------# # By Alato ~ www.rpg2s.net # #================================# class Game_Temp attr_accessor :party_change_flag attr_accessor :hp_change_flag alias temp_initialize initialize def initialize temp_initialize @party_change_flag = true @hp_change_flag = true end end class Game_Party # Modifiche per non fare crashare il gioco # quando non ci sono i compagni # (caterpillar script) #sostituiti totalmente add_actor e remove_actor #-------------------------------------------------------------------------- # - Aggiunta Eroe # actor_id : ID Eroe #-------------------------------------------------------------------------- def add_actor(actor_id) # Acquisizione Eroe actor = $game_actors[actor_id] # Quando ci sono meno di 4 eroi e l'eroe non è già nel gruppo if @actors.size < 4 and not @actors.include?(actor) # Aggiungi Eroe @actors.push(actor) # Aggiornamento Giocatore $game_player.refresh # Parte aggiunta $game_temp.party_change_flag = true $game_second_player.refresh $game_third_player.refresh end end #-------------------------------------------------------------------------- # - Rimozione Eroe # actor_id : ID Eroe #-------------------------------------------------------------------------- def remove_actor(actor_id) # Rimozione Eroe @actors.delete($game_actors[actor_id]) # Aggiornamento Giocatore $game_player.refresh # Parte aggiunta $game_temp.party_change_flag = true $game_second_player.refresh $game_third_player.refresh end end class Game_Map_New #-------------------------------------------------------------------------- # - Settaggio Mappa # map_id : ID Mappa #-------------------------------------------------------------------------- def setup(map_id) # Setta l'ID della mappa in @map_id @map_id = map_id # La mappa è presa dal file e settata in @map @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id)) # Settaggio delle Variabili tileset = $data_tilesets[@map.tileset_id] @tileset_name = tileset.tileset_name @autotile_names = tileset.autotile_names @panorama_name = tileset.panorama_name @panorama_hue = tileset.panorama_hue @fog_name = tileset.fog_name @fog_hue = tileset.fog_hue @fog_opacity = tileset.fog_opacity @fog_blend_type = tileset.fog_blend_type @fog_zoom = tileset.fog_zoom @fog_sx = tileset.fog_sx @fog_sy = tileset.fog_sy @battleback_name = tileset.battleback_name @passages = tileset.passages @priorities = tileset.priorities @terrain_tags = tileset.terrain_tags # Inizializzazione Coordiante @display_x = 0 @display_y = 0 # Elimina la richiesta di aggiornamento @need_refresh = false # Settaggio dati degli eventi @events = {} enemies = [] enem_events = [] for i in @map.events.keys @events[i] = Game_Event.new(@map_id, @map.events[i]) if @events[i].nemico? id_nemico = @events[i].name.to_i enemies.push(id_nemico) enem_events.push(i) end end unless enemies.empty? $game_troop.setup(enemies, enem_events) end # Settaggio dati degli eventi couni @common_events = {} for i in 1...$data_common_events.size @common_events[i] = Game_CommonEvent.new(i) end # Settaggio della nebbia @fog_ox = 0 @fog_oy = 0 @fog_tone = Tone.new(0, 0, 0, 0) @fog_tone_target = Tone.new(0, 0, 0, 0) @fog_tone_duration = 0 @fog_opacity_duration = 0 @fog_opacity_target = 0 # Settaggio dello scroll @scroll_direction = 2 @scroll_rest = 0 @scroll_speed = 4 end end ############################################ ######## Aggiunte a Game_Character ######### ############################################ class Game_Character alias chara_initialize initialize def initialize chara_initialize @allerta = false end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def update if party_member? if in_chara_range?(1) == false @move_type = 5 # Movimento party if in_chara_range?(2) == true @move_speed = 4#3 else @move_speed = 4 end elsif $game_player.moving? @move_type = 6 end 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 5 move_party_player when 6 move_type_fermo 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 #-------------------------------------------------------------------------- # - Movimenti Nuovi #-------------------------------------------------------------------------- def move_type_fermo end def move_type_toward_player sx = @x - $game_player.x sy = @y - $game_player.y abs_sx = sx > 0 ? sx : -sx abs_sy = sy > 0 ? sy : -sy if sx + sy >= 20 move_random return end case rand(6) when 0..3 move_toward_player when 4 move_toward_player#move_random when 5 move_toward_player#move_forward end end def move_party_player case @act when 1 mdf = -1 when 2 mdf = 1 end gp = $game_player mdf_x = (gp.direction == 6 ? 1 : gp.direction == 4 ? -1 : gp.direction == 2 ? mdf : gp.direction == 8 ? mdf : 0) mdf_y = (gp.direction == 2 ? 1 : gp.direction == 8 ? -1 : gp.direction == 6 ? mdf : gp.direction == 4 ? mdf : 0) sx = @x - $game_player.x + mdf_x sy = @y - $game_player.y + mdf_y if sx == 0 and sy == 0 return end abs_sx = sx.abs abs_sy = sy.abs if abs_sx == abs_sy rand(2) == 0 ? abs_sx += 1 : abs_sy += 1 end if abs_sx > abs_sy sx > 0 ? move_left : move_right if not moving? and sy != 0 sy > 0 ? move_up : move_down end else sy > 0 ? move_up : move_down if not moving? and sx != 0 sx > 0 ? move_left : move_right end end if not moving? if not in_chara_range?(1) case @act when 1 if abs_sx < abs_sy sx > 0 ? move_right : move_left else sy > 0 ? move_down : move_up end when 2 if abs_sx < abs_sy sx > 0 ? move_left : move_right else sy > 0 ? move_up : move_down end end end end end end #-------------------------------------------------------------------------- # - E' a (quadretti) distanza dall'eroe? #-------------------------------------------------------------------------- def in_chara_range?(quadretti) screne_x = $game_player.real_x screne_x -= 128*(1+quadretti) screne_y = $game_player.real_y screne_y -= 128*(1+quadretti) screne_width = $game_player.real_x screne_width += 128*(1+quadretti) screne_height = $game_player.real_y screne_height += 128*(1+quadretti) return false if real_x <= screne_x return false if real_x >= screne_width return false if real_y <= screne_y return false if real_y >= screne_height return true end ############################################ ######### Aggiunte a GAme_Event ############ ############################################ class Game_Event < Game_Character # # - Controlla se è un membro del party # def party_member? return false end end ############################################ ######### Aggiunte a Game_Player ########### ############################################ class Game_Player def party_member? return false end def nemico? return false end def check_event_trigger_here(triggers) result = false # Quando si sta eseguendo un evento if $game_system.map_interpreter.running? return result end # Loop degli eventi for event in $game_map.events.values # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione" if event.x == @x and event.y == @y and triggers.include?(event.trigger) and event.nemico? == false # Quando l'evento è eseguibile if not event.jumping? and event.over_trigger? event.start result = true end end end return result end #-------------------------------------------------------------------------- # - Controllo esecuzione degli eventi #-------------------------------------------------------------------------- def check_event_trigger_there(triggers) result = false # Quando si sta eseguendo un evento if $game_system.map_interpreter.running? return result end # Sono calcolate le coordinate del tile davanti all'eroe new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0) new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0) # Loop degli Eventi for event in $game_map.events.values # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione" if event.x == new_x and event.y == new_y and triggers.include?(event.trigger) and event.nemico? == false # Quando l'evento è eseguibile if not event.jumping? and not event.over_trigger? event.start result = true end end end # Quando non è rilevato nessun evento if result == false # Quando c'è un "incontra attraverso" nel title d'avanti if $game_map.counter?(new_x, new_y) # Calcola le coordinate di 2 tile davanti all'eroe new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0) new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0) # Loop degli Eventi for event in $game_map.events.values # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Azione" if event.x == new_x and event.y == new_y and triggers.include?(event.trigger) and event.nemico? == false # Quando l'evento è eseguibile if not event.jumping? and not event.over_trigger? event.start result = true end end end end end return result end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def update # Memorizza l'ultimo movimento se ci si sta muovendo last_moving = moving? # Se ci si sta muovendo o si sta eseguendo un evento parallelo # o c'è un muovi evento o c'è una finestra di messaggio unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing # Quando è premuto un tasto muove l'eroe case Input.dir4 when 2 move_down when 4 move_left when 6 move_right when 8 move_up end end # Le coordinate vengono memorizzate in variabili temporanee last_real_x = @real_x last_real_y = @real_y super # Quando l'eroe si muove verso giu ed è possibile muovere la mappa if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y # Muovi la mappa $game_map.scroll_down(@real_y - last_real_y) end # Quando l'eroe si muove verso sinistra ed è possibile muovere la mappa if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X # Muovi la mappa $game_map.scroll_left(last_real_x - @real_x) end # Quando l'eroe si muove verso destra ed è possibile muovere la mappa if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X # Muovi la mappa $game_map.scroll_right(@real_x - last_real_x) end # Quando l'eroe si muove verso sù ed è possibile muovere la mappa if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y # Muovi la mappa $game_map.scroll_up(last_real_y - @real_y) end # Quando non ci si sta muovendo unless moving? # Quando il movimento è appena finito if last_moving # Controllo eventi "Tocco con l'eroe" - "Collisione" result = check_event_trigger_here([1,2]) # Se non ci sono eventi da eseguire if result == false # Se la modalità di debug è disattiva e non si sta premendo ctrl unless $DEBUG and Input.press?(Input::CTRL) # Conteggio incontri casuali if @encounter_count > 0 @encounter_count -= 1 end end end end # Quando C è premuto if Input.trigger?(Input::C) # Controlla esecuzione eventi $game_temp.battle_menu_closed = check_event_trigger_here([0]) $game_temp.battle_menu_closed = check_event_trigger_there([0,1,2]) end end # if moving? and Input.trigger?(Input::C) $game_temp.battle_menu_closed = false end end end #============================================================================== # - Game_Event #------------------------------------------------------------------------------ # E' la classe che gestisce gli eventi # E' usata in Game_Map #============================================================================== class Game_Party_Player < Game_Character #-------------------------------------------------------------------------- # - Variabile #-------------------------------------------------------------------------- attr_reader :trigger # Condizione d'avvio attr_reader :list # Lista dei comandi attr_reader :starting # Se l'evento è in esecuzione #-------------------------------------------------------------------------- # - Inizializzazione Oggetto # map_id : ID Mappa # event : Evento (RPG::Event) #-------------------------------------------------------------------------- def initialize(act) super() @act = act @erased = false @starting = false @through = false # Posizionamento #moveto(@event.x, @event.y) refresh end def party_member? return true end def nemico? return false end #-------------------------------------------------------------------------- # - Settaggio di @starting #-------------------------------------------------------------------------- def clear_starting @starting = false end #-------------------------------------------------------------------------- # - Controllo Sovrapposizione #-------------------------------------------------------------------------- def over_trigger? # Se l'eroe non esiste o non può eseguire eventi if @character_name != "" and not @through # Esecuzione impossibile return false end # Quando la posizione non è calpestabile unless $game_map.passable?(@x, @y, 0) # Esecuzione impossibile return false end # Esecuzione possibile return true end #-------------------------------------------------------------------------- # - Qui c'era def start #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # - Eliminazione #-------------------------------------------------------------------------- def erase @erased = true refresh end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh if $game_party.actors.size <= @act # Vengono cancellati nome e tonalità @character_name = "" @character_hue = 0 return end actor = $game_party.actors[@act] @character_name = actor.character_name @character_hue = actor.character_hue @opacity = 255 @blend_type = 0 end #-------------------------------------------------------------------------- # - Controllo evento con collisione #-------------------------------------------------------------------------- def check_event_trigger_touch(x, y) # Quando è già in esecuzione if $game_system.map_interpreter.running? return end # Quando le coordinate sono uguali e l'evento ha come condizione di inizio "Tocco con l'eroe" if @trigger == 2 and x == $game_player.x and y == $game_player.y # Quando l'evento è eseguibile if not jumping? and not over_trigger? start end end end #-------------------------------------------------------------------------- # - Controllo evento con inizio automatico #-------------------------------------------------------------------------- def check_event_trigger_auto # Quando le coordinate sono uguali if @trigger == 2 and @x == $game_player.x and @y == $game_player.y # Quando l'evento è eseguibile if not jumping? and over_trigger? start end end # Se la condizione è inizio automatico if @trigger == 3 start end end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def update super # Controllo evento con inizio automatico check_event_trigger_auto # Quando c'è un processo parallelo da eseguire if @interpreter != nil # Quando l'interprete non è in esecuzone unless @interpreter.running? # Esecuzione di un evento @interpreter.setup(@list, @event.id) end # Aggiornamento Interprete @interpreter.update end end end class Spriteset_Map #-------------------------------------------------------------------------- # - Inizializzazione Oggetto #-------------------------------------------------------------------------- def initialize # Creazione Livelli @viewport1 = Viewport.new(0, 0, 640, 480) @viewport2 = Viewport.new(0, 0, 640, 480) @viewport3 = Viewport.new(0, 0, 640, 480) @viewport2.z = 200 @viewport3.z = 5000 # Creazione Titlemap @tilemap = Tilemap.new(@viewport1) @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name) for i in 0..6 autotile_name = $game_map.autotile_names[i] @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name) end @tilemap.map_data = $game_map.data @tilemap.priorities = $game_map.priorities # Creazione Panorama @panorama = Plane.new(@viewport1) @panorama.z = -1000 # Creazione Nebbia @fog = Plane.new(@viewport1) @fog.z = 3000 # Creazione Chara @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) @character_sprites.push(Sprite_Character.new(@viewport1, $game_second_player)) @character_sprites.push(Sprite_Character.new(@viewport1, $game_third_player)) # Creazione effetti meteorologici @weather = RPG::Weather.new(@viewport1) # Creazione Pictures @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i])) end # Creazione Sprite del timer @timer_sprite = Sprite_Timer.new # Aggiornamento frame update end end class Interpreter # Modifica al cambia grafica # per non far crashare il caterpillar script def command_322 actor = $game_actors[@parameters[0]] if actor != nil actor.set_graphic(@parameters[1], @parameters[2], @parameters[3], @parameters[4]) end $game_temp.party_change_flag = true $game_player.refresh # Parte aggiunta $game_second_player.refresh $game_third_player.refresh return true end end class Scene_Title def command_new_game # Suona SE azione $game_system.se_play($data_system.decision_se) # Ferma BGM Audio.bgm_stop # Resetta il contatore frame per il tempo di gioco Graphics.frame_count = 0 # Creazione oggetti $game_temp = Game_Temp.new $game_system = Game_System.new $game_switches = Game_Switches.new $game_variables = Game_Variables.new $game_self_switches = Game_SelfSwitches.new $game_screen = Game_Screen.new $game_actors = Game_Actors.new $game_party = Game_Party.new $game_troop = Game_Troop.new $game_map = Game_Map.new $game_player = Game_Player.new $game_second_player = Game_Party_Player.new(1) $game_third_player = Game_Party_Player.new(2) # Creazione Gruppo $game_party.setup_starting_members # Creazione Mappa $game_map.setup($data_system.start_map_id) # Trasferimento al punto d'inizio d_x = $data_system.start_x d_y = $data_system.start_y $game_player.moveto(d_x, d_y) $game_second_player.moveto(d_x + 1, d_y - 1) $game_third_player.moveto(d_x - 1, d_y - 1) # Aggiornamento Giocatore $game_player.refresh if $game_party.actors[1] != nil $game_second_player.refresh end if $game_party.actors[2] != nil $game_third_player.refresh end # Suona BGM e BGS automatici $game_map.autoplay # Aggiornamento Mappa $game_map.update # Cambia Scena $scene = Scene_Map.new end end # qua viene aggiunto il *.update degli altri due personaggi class Scene_Map #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def update # Loop loop do # Aggiornamento mappa ed interprete $game_map.update $game_system.map_interpreter.update $game_player.update $game_second_player.update $game_third_player.update # Aggiornamento sistema e schermo $game_system.update $game_screen.update # Quando il giocatore non deve essere trasportato esce dal loop unless $game_temp.player_transferring break end # Trasporta il giocatore transfer_player # Quando non c'è un fade esce dal loop if $game_temp.transition_processing break end end # Aggiornamento Chipset @spriteset.update # Aggiornamento finestra dei messaggi @message_window.update # Se c'è il gameover if $game_temp.gameover # Va alla scena del gameover $scene = Scene_Gameover.new return end # Se si deve tornare al title if $game_temp.to_title # Va alla scena del title $scene = Scene_Title.new return end # Quando c'è un fade if $game_temp.transition_processing # Elimina la variabile $game_temp.transition_processing = false # Fade if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # Quando c'è un messaggio if $game_temp.message_window_showing return end # Quando il contatore degli incontri è 0 e ci sono gruppi di mostri in lista if $game_player.encounter_count == 0 and $game_map.encounter_list != [] # Quando non c'è un evento o gli incontri non sono disabilitati unless $game_system.map_interpreter.running? or $game_system.encounter_disabled # Scelta del gruppo di nemici n = rand($game_map.encounter_list.size) troop_id = $game_map.encounter_list[n] # Se il gruppo è valido if $data_troops[troop_id] != nil # Chiama la battaglia $game_temp.battle_calling = true $game_temp.battle_troop_id = troop_id $game_temp.battle_can_escape = true $game_temp.battle_can_lose = false $game_temp.battle_proc = nil end end end #Quando B è premuto if Input.trigger?(Input::B) # Quando non c'è un evento o il menu non è disabilitato unless $game_system.map_interpreter.running? or $game_system.menu_disabled # Chiama menu $game_temp.menu_calling = true $game_temp.menu_beep = true end end # Quando è attivo il debug e si preme F9 if $DEBUG and Input.press?(Input::F9) # Chiama il debug $game_temp.debug_calling = true end # Quando il giocatore non si è mosso unless $game_player.moving? # Controlla se c'è quancosa da chiamare if $game_temp.battle_calling call_battle elsif $game_temp.shop_calling call_shop elsif $game_temp.name_calling call_name elsif $game_temp.menu_calling call_menu elsif $game_temp.save_calling call_save elsif $game_temp.debug_calling call_debug end end end end # Qua viene aggiunto il *.moveto degli altri due personaggi class Scene_Map #-------------------------------------------------------------------------- # - Trasporto #-------------------------------------------------------------------------- def transfer_player # Elimina la variable $game_temp.player_transferring = false # Quando la mappa di destinazione è diversa da quella corrente if $game_map.map_id != $game_temp.player_new_map_id # Settaggio nuova mappa $game_map.setup($game_temp.player_new_map_id) end # Settaggio nuova posizione del giocatore $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) $game_second_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) $game_third_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) # Settaggio della nuova direzione case $game_temp.player_new_direction when 2 # Giu $game_player.turn_down when 4 # Sinistra $game_player.turn_left when 6 # Destra $game_player.turn_right when 8 # Sù $game_player.turn_up end # Correzione posizione del giocatore $game_player.straighten # Aggiornamento Mappa $game_map.update # Creazione nuovo spriteset @spriteset.dispose @spriteset = Spriteset_Map.new # Quando c'è un fade if $game_temp.transition_processing # Elimina la variabile $game_temp.transition_processing = false # Fade Graphics.transition(20) end # Suona BGM e BGS automatici della mappa $game_map.autoplay # Resetta il frame Graphics.frame_reset # Aggiornamento Input Input.update end end NewCaterpillarScript.txt Edited March 15, 2013 by Apo aggiunto lo script o•°' - '°•oHei, mitä kuuluu? http://imagegen.last.fm/winterheadphones/recenttracks/5/Alato.gif Link to comment Share on other sites More sharing options...
Eikichi Posted March 27, 2008 Share Posted March 27, 2008 lo provo subito!! p.s. non vedo l'ora di incastrarli per bene!! :rovatfl: :rovatfl: Finrod, GDR PBF2PV e 1PAEquip: - faretra con 20 frecce- arco lungo- pugnale comune- Armatura di cuoio- Torcia- CappuccioMi sa che è ora di vincere qualche premio per rinnovare questa firma! :3Posizioni raggiunte nei contesthttp://rpg2s.net/gif/SCContest3Oct.gifhttp://www.rpg2s.net/awards/bestresourCSist3.jpghttp://www.rpg2s.net/awards/mosthelpful2.jpghttp://www.rpg2s.net/awards/mostpresent2.jpg Link to comment Share on other sites More sharing options...
Alato Posted March 28, 2008 Author Share Posted March 28, 2008 Aggiunti alcuni screenshots, anche se per capire come funzia bisogna provarlo (o dovrei fare un video ma non ne ho voglia :rovatfl: ) o•°' - '°•oHei, mitä kuuluu? http://imagegen.last.fm/winterheadphones/recenttracks/5/Alato.gif Link to comment Share on other sites More sharing options...
Kenshin Posted March 28, 2008 Share Posted March 28, 2008 Non sarebbe meglio vedere 4 pg? magari messi a rombo (basterebbe aggiungerne uno in fondo alla fila ^^;;; ) "Giochiamo a: schiettezza o grande impresa eroica!" Personaggio PBF: LyrielPN: 12/20PV: 2/2PA: 4 (5 col mantello d'acero)Equipaggiamento:Spada comunePugnale comuneArco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)Faretra con 20 frecceCappuccioArmatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)2 anelli di valoreBorsa comune (10 slot)CordaPenna e calamaioLibro vuotoForma di formaggioMappaCannocchialeTagliola di ferroCampanellino di MaiaMantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.181 monete d'oroCintura porta coltelli (6 slot)Coltello da lancio intarsiatoColtello da lancio in metalloColtello da lancio in metallo Campanellino di MaiaSe Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.L'animale vede bene anche di notte e se c'è nebbia.Caratteristiche della creatura:PV 2PA 2Atletica Gr.4Furtività Gr.1Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito. Personaggio PBF: WrenPN: 20/20PV:2/2PA:0Borsa Comune3 filoni di pane4 meleprosciuttoformaggiocoltello da cucina Link to comment Share on other sites More sharing options...
Alato Posted March 28, 2008 Author Share Posted March 28, 2008 Caterpillar script alternativo che permette la visualizzazioni di soli 3 personaggi sulla mappa. Ancora da sviluppare bene ma è un estratto da un mio vecchio progetto più ampio quindi non è detto che ci lavorerò ancora sopra. I personaggi evitano la maggior parte degli ostacoli, ma volendo riuscite ad incastrarli abbastanza facilmente. Era il development kit di ff12.. lì i pg erano solo 3... :rovatfl: Comunque ad aggiungerne uno non ci vuole molto casomai nei prossimi giorni lo faccio se lo vedete necessario, il rombo mi pareva una cagata. o•°' - '°•oHei, mitä kuuluu? http://imagegen.last.fm/winterheadphones/recenttracks/5/Alato.gif Link to comment Share on other sites More sharing options...
Kenshin Posted March 29, 2008 Share Posted March 29, 2008 non lo vedo "necessario" semplicemente che la maggior parte delle persone usa 4 pg attivi... e la fila indiana è più cagata del rombo ^^;;; "Giochiamo a: schiettezza o grande impresa eroica!" Personaggio PBF: LyrielPN: 12/20PV: 2/2PA: 4 (5 col mantello d'acero)Equipaggiamento:Spada comunePugnale comuneArco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)Faretra con 20 frecceCappuccioArmatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)2 anelli di valoreBorsa comune (10 slot)CordaPenna e calamaioLibro vuotoForma di formaggioMappaCannocchialeTagliola di ferroCampanellino di MaiaMantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.181 monete d'oroCintura porta coltelli (6 slot)Coltello da lancio intarsiatoColtello da lancio in metalloColtello da lancio in metallo Campanellino di MaiaSe Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.L'animale vede bene anche di notte e se c'è nebbia.Caratteristiche della creatura:PV 2PA 2Atletica Gr.4Furtività Gr.1Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito. Personaggio PBF: WrenPN: 20/20PV:2/2PA:0Borsa Comune3 filoni di pane4 meleprosciuttoformaggiocoltello da cucina Link to comment Share on other sites More sharing options...
Ale M Posted August 29, 2008 Share Posted August 29, 2008 http://img208.imageshack.us/img208/1875/errorefm0.pngmi da quest'errore Link to comment Share on other sites More sharing options...
Ale M Posted August 30, 2008 Share Posted August 30, 2008 ehm...raga non per rompere però... Link to comment Share on other sites More sharing options...
amivaleo Posted September 1, 2008 Share Posted September 1, 2008 ha dato anche a me lo stesso errore, poi ho riprovato a farlo andare ed ha funzionato...riprova pure tu. Link to comment Share on other sites More sharing options...
Ale M Posted September 1, 2008 Share Posted September 1, 2008 ehm si ho riprovato...ma non fa ç_ç io ne avevo visto uno carino in una demo che ti seguivano in fila indiana. Link to comment Share on other sites More sharing options...
amivaleo Posted September 1, 2008 Share Posted September 1, 2008 o.o boh!ascolta... qui sfociamo nel mistico, ma...prima di riprovare il gioco, ho spostato la posizione dello script nell'elenco.alla prima prova, l'ho messo in alto, il primo dell'elenco. e non mi dava errore, ma neanche funzionava.alla seconda prova, l'ho messo prima delle classi chiamate "sprite", e non appariva nulla.alla terza, l'ho messo subito dopo gli sprite, ma prima degli spriteset e ancora nulla.quindi l'ho rimesso sopra il main... e funzionava tutto! o.o ecco... ora io non so se ho un computer incantato, ma facendo così... ha funzionato...prova pure tu! o.o (malocchio!! O.o) Link to comment Share on other sites More sharing options...
Ale M Posted September 3, 2008 Share Posted September 3, 2008 mi da lo stesso errore in tutti i casi solo quando aggiungo un pg e se ne ho già nel gruppo o non ci nsono o mi da errore però ripeto se lo meto sopra main in un nuovo progetto mi da i bambocci che lo seguono anche se non sono sul gruppo.... Link to comment Share on other sites More sharing options...
amivaleo Posted September 3, 2008 Share Posted September 3, 2008 uhm... forse hai altri script che modificano le stesse classi che modifica anche il caterpillar. ad esempio, forse hai lo script per mostrare le impronte del pg sulla neve, non so. Link to comment Share on other sites More sharing options...
Ale M Posted September 3, 2008 Share Posted September 3, 2008 ehm...no, io ho solo quello del battler e quello del menù circolare....ma anche in un nuovo progetto se prendo un pg mi da l'errore Link to comment Share on other sites More sharing options...
-Akm- Posted December 30, 2008 Share Posted December 30, 2008 È possibile che ti dia errore perché metti 4 personaggi in gruppo? Link to comment Share on other sites More sharing options...
gianlu Posted December 28, 2010 Share Posted December 28, 2010 scusate il necropost ma nessuno ha provato a premere il tasto [C] (o invio) ?viene fuori un messaggio con un errore del tipo "script caterpillar line 505 nomethoderror undefinied metod battle closed= for game temp (numeri) "a me succede sempre quando premo il tasto [C] http://mypsn.eu.playstation.com/psn/profile/gianlu9767.png Il mio progetto personale: (Sospeso) http://img833.imageshack.us/img833/3821/progresso.png <-------Clicca sul banner per vedere il mio sitoCercasi personale (anche alle prime armi) possibilmente grafico e storyboarder Link to comment Share on other sites More sharing options...
Larryhazard Posted March 23, 2011 Share Posted March 23, 2011 Questo mi piace molto più del solito Caterpillar, qualcuno pratico di script non potrebbe provare a risolverne i bug e magari anche ad aggiungere il quarto personaggio? Citazioni varie: "Ah, noi del 2000, avevamo Twilight, Justin Bieber, siamo stati i primi su facebook, quanto siamo fighi noi, altro che questi ragazzini del 2020 che si drogano con la realtà virtuale via AmuSphere o usano il teletrasporto invece di andare in motorino come facevamo noi." << Se un uomo è questo il giorno, e la mia ascia.>>Meo Verrocchio <<Not a lot of people know what it feels like to be angry, in your bones. I mean, they understand, foster parents, everybody understands, for awhile. Then they want the angry little kid to do something he knows he can't do, move on. So after awhile they stop understanding.>> «boia ma c'avete una bella faccia a dire che il metal è una truffa! Ma se da un pò di tempo a questa parte non fate altro che rompere il cazzo ai poveri ascoltatori onesti di musica brutta che vorrebbero solo esser lasciati n pace mentre sragionate dello sghoegaze e dei vostri trend da finocchi. A me pare che aa vera truffa sono i nerd che non hanno mai sentito un disco di ozzy osbourne o che fino a l'anno scorso non avevano presente nemmeno una canzone dei black sabbath ma che ora incensano gli earth e i gli sleep perchè va di moda il doom sulle riviste fiche. Questa sì che è gente che mi fa incazzare. I metallari panzoni che ascoltano il viching invece mi fanno al più tenerezza nella loro sfiga.Bravi andate tutti a parlare di come son fenomeni i boris perché fanno i dischi con merzbow e "OH MIO DIO COME SONO SPERIMENTALI\RIBELLICHIC" però mi raccomando continuate a pensare che i death sono doom e che slogun è uno che suona con giuliano palma.Se c'è qualcuno che magari come me con certe cose metal ci è cresciuto spero che detesterà quanto me questa tendenza di trovare gruppi metal giusti da rivalutare perché c'hanno influenze funky\trip hop\ska e quindi sono geni della sperimentazione e tardi panzoni che fanno semplicemente la loro musica e non si meritano nulla visto che non c'hanno la copertina su blow up.L'unica cosa che vi meritate è zingales.» <<It’s bullshit like “Oh man, you’re a geek now, but just bear with it! Once you’re outta high school away from all these jocks you’re gonna RUN SHIT” that makes the veins in my forehead want to be outside of my fucking skin. Most people quickly realize that life is not a movie sometime shortly after high school or college. Many geeky, nerdy people do not because we have Special Snowflake Syndrome. We’re different or told that we’re different and we think that somehow things will balance out cosmically. We’ll get the girl or guy or anime body pillow. We’ll have the money and success. We’ll be the ones who are happy. And that will happen because…well, we had a rough time in the beginning so it will equal out cuz…magic! What you need to do is take off your “The Geek Shall Inherit the Earth” tshirt, put a bar of soap in it, twist it up, and then beat your fucking face in with it. You will not be handed anything because you were awkward and quirky growing up. Well, unless you’re a girl with that highly marketable Felicia Day-quirk… then you might get to date a dickhead for a year or two and more followers on Instagram than your male counterpart of equal or lesser value.>> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now