Nortas Posted July 22, 2016 Share Posted July 22, 2016 Ciao a tutti!Sto usando uno script per avere la passabilità stella anche sui tileset della sezione A.Non so perchè ma quando metto un tileset B in quella regione finisce sotto il tileset A (mentre dovrebbe rimanere sopra).Ho provato a manipolare le priorità ma non cambia nulla :/ Con gli eventi non succede (rimangono in primo piano). Lo script è questo: ###--------------------------------------------------------------------------### # CP Terrain Tags script # # Version 1.2 # # # # Credits: # # Original code by: Neon Black # # Modified by: # # # # This work is licensed under the Creative Commons Attribution-NonCommercial # # 3.0 Unported License. To view a copy of this license, visit # # http://creativecommons.org/licenses/by-nc/3.0/. # # Permissions beyond the scope of this license are available at # # http://cphouseset.wordpress.com/liscense-and-terms-of-use/. # # # # Contact: # # NeonBlack - neonblack23@live.com (e-mail) or "neonblack23" on skype # ###--------------------------------------------------------------------------### ###--------------------------------------------------------------------------### # Revision information: # # V1.2 - 12.22.2012 # # Fixed an issue related to loading a saved game # # V1.1 - 12.3.2012 # # Rewrote passage checking # # Fixed various passability issues # # V1.0 - 11.30.2012 # # Wrote and debugged main script # ###--------------------------------------------------------------------------### ###--------------------------------------------------------------------------### # Compatibility: # # Alias - Game_CharacterBase: passable? # # Game_Player: moveto # # Game_Follower: chase_preceding_character # # Game_Map: setup, # # Scene_Load: on_load_success # # Overwrites - Game_Player: move_by_input # # Game_Map: check_passage # # New Objects - Game_CharacterBase: move_slope, slope_passable? # # Game_Player: move_modif_direction, move_slope # # Game_Map: reset_map, init_fold, init_setup, add_tile_id, # # bridge_flip, bridge? # ###--------------------------------------------------------------------------### ###--------------------------------------------------------------------------### # Instructions: # # Place this script in the "Materials" section of the scripts above main. # # This script allows tiles on a map to be tagged using regions to change the # # properties of those tiles. This includes slopes, cover, blockers, and # # bridges. Each terrain type is detailed with each config option below. # ###--------------------------------------------------------------------------### ###--------------------------------------------------------------------------### # Config: # # This is the config section of the script. This script is split into a few # # parts to make using it a little easier. You may change these values to # # fit your liking. # # # module CP # Do not edit # module TERRAIN # these lines. # # # ###----- -----### # Slope Options: # # Slope terrains cause the player to move diagonally while walking over them, # # much like a horizontal stair case. This only affects horizontal movement # # and has no effect on vertical movement. As a general rule of thumb, all # # stair tiles must be marked with these tags even if they cannot be walked on. # # Also, both slopes do not work if the bottom edges are touching, so avoid # # creating maps where this happens. Note that events are no affected by these # # tags, only player and followers are. # # # # Region tag for a slope with a shape like \. # DOWN_RIGHT = 3 # Default = 16 # # # # Region tag for a slope with a shape like /. # DOWN_LEFT = 4 # Default = 17 # # # ###----- -----### # Cover Options: # # This affects cover and blocking region tags. Cover tags cause the tile # # tagged to appear above characters and events. Block tags cause the tagged # # tile to become impassible. Because auto tiles have odd passage settings on # # inside tiles, it is recommended to use these tags on edges of cover tiles. # # # # The region tag for cover tiles. # COVER = 1 # Default = 18 # # # # The region id to use for block tiles. # BLOCK = 2 # Default = 19 # # # ###----- -----### # Bridge Options: # # This affects bridge and catwalk type tiles. Bridges use tileset A while # # catwalks use tilesets B-E. Bridges flip when the player steps onto a region # # tagged as a lower or upper tile. To prevent bugs, a player can only step # # from a bridge or catwalk tile onto another bridge or catwalk tile or a # # lower/upper region of the same type. Also note that bridges use the CLEAR # # tile from above for when the bridge is flipped to lower. Events also do NOT # # function properly with bridges, so avoid having events on bridges. # # # # The region IDs to use for bridges and catwalks. # BRIDGE = 5 # Default = 20 # CATWALK = 6 # Default = 21 # # # # The region tags for the upper and lower enterances of the bridge. # LOWER = 7 # Default = 22 # UPPER = 8 # Default = 23 # ###--------------------------------------------------------------------------### ###--------------------------------------------------------------------------### # The following lines are the actual core code of the script. While you are # # certainly invited to look, modifying it may result in undesirable results. # # Modify at your own risk! # ###--------------------------------------------------------------------------### end end $imported = {} if $imported.nil? $imported["CP_TERRAIN"] = 1.1 class Game_CharacterBase def move_slope(horz, vert) @move_succeed = slope_passable?(x, y, horz, vert) if @move_succeed @x = $game_map.round_x_with_direction(@x, horz) @y = $game_map.round_y_with_direction(@y, vert) @real_x = $game_map.x_with_direction(@x, reverse_dir(horz)) @real_y = $game_map.y_with_direction(@y, reverse_dir(vert)) increase_steps end set_direction(horz) if @direction == reverse_dir(horz) set_direction(vert) if @direction == reverse_dir(vert) end def slope_passable?(x, y, horz, vert) x2 = $game_map.round_x_with_direction(x, horz) y2 = $game_map.round_y_with_direction(y, vert) return false unless $game_map.valid?(x2, y2) return true if @through || debug_through? return false if collide_with_characters?(x2, y2) (map_passable?(x, y, horz) && map_passable?(x2, y2, reverse_dir(vert))) || (map_passable?(x, y, vert) && map_passable?(x2, y2, reverse_dir(horz))) end alias cp_terrain_pass passable? def passable?(x, y, d) x2 = $game_map.round_x_with_direction(x, d) y2 = $game_map.round_y_with_direction(y, d) if region_id == CP::TERRAIN::BRIDGE || region_id == CP::TERRAIN::CATWALK return true if @through || debug_through? sets = [CP::TERRAIN::BRIDGE, CP::TERRAIN::CATWALK] $game_map.bridge? ? sets.push(CP::TERRAIN::LOWER) : sets.push(CP::TERRAIN::UPPER) return false unless sets.include?($game_map.region_id(x2, y2)) end cp_terrain_pass(x, y, d) end end class Game_Player < Game_Character def move_by_input return if !movable? || $game_map.interpreter.running? move_modif_direction end def move_modif_direction dir = Input.dir4 return if dir <= 0 case dir when 4 if region_id == CP::TERRAIN::DOWN_LEFT set_direction(4) move_slope(4, 2) elsif $game_map.region_id(@x - 1, @y) == CP::TERRAIN::DOWN_RIGHT set_direction(4) move_slope(4, 8) else move_straight(dir) end when 6 if region_id == CP::TERRAIN::DOWN_RIGHT set_direction(6) move_slope(6, 2) elsif $game_map.region_id(@x + 1, @y) == CP::TERRAIN::DOWN_LEFT set_direction(6) move_slope(6, 8) else move_straight(dir) end else move_straight(dir) end $game_map.bridge_flip(region_id) end def move_slope(horz, vert) @followers.move if slope_passable?(@x, @y, horz, vert) super end alias cp_fix_moveto moveto def moveto(x, y) cp_fix_moveto(x, y) $game_map.bridge_flip(region_id) end end class Game_Follower < Game_Character alias cp_slopes_chase chase_preceding_character def chase_preceding_character set_direction(@preceding_character.direction) unless moving? cp_slopes_chase end end class Game_Map alias cp_terrain_setup setup def setup(map_id) init_fold cp_terrain_setup(map_id) init_setup end def reset_map tf = @flip init_fold @map = load_data(sprintf("Data/Map%03d.rvdata2", @map_id)) @tileset_id = @map.tileset_id init_setup id = tf ? CP::TERRAIN::LOWER : CP::TERRAIN::UPPER bridge_flip(id) end def init_fold @flip = false if @flip.nil? return_tiles end def init_setup @bridges = []; @catwalks = []; @tile_flag_set = {} width.times do |x| height.times do |y| id = region_id(x, y) if id == CP::TERRAIN::BRIDGE || id == CP::TERRAIN::UPPER bset = [x, y] bset.push(data[x, y, 2]) bset.push(tileset.flags[data[x, y, 0]]) @bridges.push(bset) add_tile_id(data[x, y, 0]) end if id == CP::TERRAIN::CATWALK bset = [x, y] bset.push(tileset.flags[data[x, y, 2]]) @catwalks.push(bset) end next unless id == CP::TERRAIN::COVER add_tile_id(data[x, y, 0]) data[x, y, 2] = data[x, y, 0] data[x, y, 0] = 0 tileset.flags[data[x, y, 2]] = 0x10 end end end def add_tile_id(id) @tile_flag_set = {} if @tile_flag_set.nil? return if @tile_flag_set.include?(id) @tile_flag_set[id] = tileset.flags[id] end def check_passage(x, y, bit) @tile_flag_set = {} if @tile_flag_set.nil? rid = region_id(x, y) return false if rid == CP::TERRAIN::BLOCK all_tiles(x, y).each do |tile_id| if (rid == CP::TERRAIN::BRIDGE && bridge?) || (rid == CP::TERRAIN::COVER && tile_id == 0) flag = 0x600 elsif @tile_flag_set.include?(tile_id) && rid != CP::TERRAIN::COVER flag = @tile_flag_set[tile_id] else flag = tileset.flags[tile_id] end next if flag & 0x10 != 0 # [☆]: No effect on passage return true if flag & bit == 0 # [○] : Passable return false if flag & bit == bit # [×] : Impassable end return false # Impassable end def bridge_flip(id) @flip = false if @flip.nil? case id when CP::TERRAIN::LOWER return if @flip @bridges.each do |set| x, y = set[0..1] data[x, y, 2] = data[x, y, 0] data[x, y, 0] = 0 tileset.flags[data[x, y, 2]] = 0x10 end @catwalks.each do |set| x, y = set[0..1] tileset.flags[data[x, y, 2]] = 0x10 end @flip = true when CP::TERRAIN::UPPER return_tiles end end def return_tiles return if !@flip @bridges.each do |set| x, y = set[0..1] data[x, y, 0] = data[x, y, 2] data[x, y, 2] = set[2] tileset.flags[data[x, y, 0]] = set[3] end @catwalks.each do |set| x, y = set[0..1] tileset.flags[data[x, y, 2]] = set[2] end @flip = false end def bridge? @flip = false if @flip.nil? return @flip end end class Scene_Load < Scene_File alias cp_terrain_load on_load_success def on_load_success $game_map.reset_map cp_terrain_load end end ###--------------------------------------------------------------------------### # End of script. # ###--------------------------------------------------------------- Qualcuno riesce a capire perchè fa questo problema? O magari avete qualche scritp + stabile da suggerire che faccia la stessa cosa? Grazie :) Link to comment Share on other sites More sharing options...
KenzaMe92 Posted July 22, 2016 Share Posted July 22, 2016 Che versione hai? La 1.0.2.a ha sistemato il bug della stella e dello screen shake Inviato dal mio LG-H440n utilizzando Tapatalk Nuovi progetti: Script: KZM - MZ Engine (solo core e party per ora) KZM - MV Core KZM - Engine Ace Tutorial Tutorial Uso Variabili per Gestione Opacità Finestre Pocket Quest! by Testament Spoiler da guardare se vi interessano Progetti in corso Avanzamento Le Cronache di Arshes - La Strana Sopravvivenza |||||||||||||||||||| 10% Restart imminente Avanzamento Undead |||||||||||||||||||| 15% Avanzamento Le Cronache di Arshes - La Storia Continua |||||||||||||||||||| 20% Restart Imminente Adozioni... (\__/) ( ^^ ) (< >) Screen Contests MANIFESTO DEL MAKING ITALIANO SALVIAMO IL MAKING ITALIANO!! Dopo un test dei nostri esperti (Alato, Blake e havana24) abbiamo scoperto che ad interesse risponde interesse: cioè se voi dimostrate di essere interessati a ciò che creano gli altri, questi saranno stimolati a continuare a creare! E' un concetto semplice ma estremamente sottovalutato, basta vedere quanti topic di bei giochi sono caduti nel dimenticatoio e sono stati cagati solo da poche persone (prendiamo per esempio il fantastico gioco di Vech che vi invito a vedere nella sezione RM2k). Perciò quello che dobbiamo fare è: leggere, leggere, leggere, postare,8 postare, postare! E questo non significa postare a caso, ma leggere per bene il progetto di qualcuno, le domande poste, le creazioni grafiche e musicali, e fare dei post in cui si propongano miglioramenti, si critichino le brutture, si esaltino le bellezze, si aiutino gli oppressi etc etc BASTA AL MAKING ITALIANO CHE VA A ROTOLI! DIAMOCI UNA SVEGLIATA!! Per dimostrarvi ciò che sto esponendo vi riporto che la volta in cui abbiamo provato (Alato, Blake e havana24) a fare una cosa di questo genere, c'è costata un pomeriggio ma il giorno dopo abbiamo ottenuto il numero massimo di utenti online mai raggiunto!!! Ma soprattutto ciò significa che l'interesse riguardo al making era stato, almeno momentaneamente, risvegliato!! Voi pensate che eravamo solo in 3 a cercare tutti i topic e ravvivarli (con sincerità e senza i soliti falsi "Oh che bello.", ma anche con critiche per lavori incompleti o assurdi) e abbiamo ottenuto quel grande risultato: se lo facessimo tutti non sarebbe una cosa potentissima?!? BASTA ALLE SOLITE BANALI DISCUSSIONI SULLA DECADENZA DEI GIOCHI!! FACCIAMOLI STI GIOCHI!!! Chi è contrario a questa cosa, può pure continuare così ma è una persona che col making non ha nulla a che fare, ma chi crede nel making inizi ora, immediatamente a seguire questa linea di pensiero! Ma chi è d'accordo, chi davvero ci tiene al making, incolli questo Manifesto nella propria firma!! Mettete anche voi questa firma!! Come allegare immagini al forum Bottega Rise of The Hero Link to comment Share on other sites More sharing options...
Nortas Posted July 22, 2016 Author Share Posted July 22, 2016 Ho la 1.02a!Infatti ho uno script di default che si chiama VXAce Star Passability Bug Fixperò non va lo stesso :( 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