-
Posts
3,215 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Calendar
Posts posted by ProGM
-
-
'guri! XD
-
che dire, lo sai giàXD è una figata!
e come sai se hai problemiXD chiama su msn!
-
siete assunti entrambi, betatesterXD
contattatemi su msnXD
la cosa, comunque, consiste nel provare a usare il gioco in ogni modo, anche cercando di provocare "bug volontari", tipo aprire il menu mentre parte la battaglia, o farsi colpire apposta... robe così
-
fammi uno screen dell'errore O_o
-
lo script è questo...porta la risoluzione a 1024x768... se lo modifichi un attimo puoi metterci quello che vuoi... una cosa... è parecchio scomodo da usare, vedi tu!
#============================================================================ # ■ Resolution # By: Near Fantastica # Date: 16.09.05 # Version: 2 # # NOTE :: Add the following in the Main after begin # Resolution.Maximize # #============================================================================ class Resolution #-------------------------------------------------------------------------- # ● define constant #-------------------------------------------------------------------------- GAME_INI_FILE = ".\\Game.ini" # define "Game.ini" file HWND_TOPMOST = 0 # window always active HWND_TOP = -1 # window active when used only SWP_NOMOVE = 0 # window pos and sizes can be changed SW_MAXIMIZE = 3 #-------------------------------------------------------------------------- # ● Resolution.GetPrivateProfileString // check your game title in Game.ini #-------------------------------------------------------------------------- def Resolution.GetPrivateProfileString(section, key) val = "\0"*256 gps = Win32API.new('kernel32', 'GetPrivateProfileString',%w(p p p p l p), 'l') gps.call(section, key, "", val, 256, GAME_INI_FILE) val.delete!("\0") return val end #-------------------------------------------------------------------------- # ● Resolution.client_size // check the window width and height #-------------------------------------------------------------------------- def Resolution.client_size title = Resolution.GetPrivateProfileString("Game", "Title") findwindow = Win32API.new('user32', 'FindWindow', %w(p p), 'l') hwnd = findwindow.call("RGSS Player", title) rect = [0, 0, 0, 0].pack('l4') Win32API.new('user32', 'GetClientRect', %w(l p), 'i').call(hwnd, rect) width, height = rect.unpack('l4')[2..3] return width, height end #-------------------------------------------------------------------------- # ● Resolution.client_grid // check the window width and height as grid #-------------------------------------------------------------------------- def Resolution.client_grid width, height = Resolution.client_size width /= 32 height /= 32 return width, height end #-------------------------------------------------------------------------- # ● Resolution.maximize // Maximize Window #-------------------------------------------------------------------------- def Resolution.maximize # Setup findwindow = Win32API.new('user32', 'FindWindow', %w(p p), 'l') max = Win32API.new('user32', 'ShowWindow', 'LL', 'L') title = Resolution.GetPrivateProfileString("Game", "Title") hwnd = findwindow.call("RGSS Player", title) max.call(hwnd, SW_MAXIMIZE) end end #============================================================================ # ■ Game_Map #============================================================================ class Game_Map #-------------------------------------------------------------------------- def scroll_down(distance) width, height = Resolution.client_grid @display_y = [@display_y + distance, (self.height - height) * 128].min end #-------------------------------------------------------------------------- def scroll_right(distance) width, height = Resolution.client_grid @display_x = [@display_x + distance, (self.width - width) * 128].min end end #============================================================================ # ■ Game_Player #============================================================================ class Game_Player #-------------------------------------------------------------------------- def center(x, y) width, height = Resolution.client_grid max_x = ($game_map.width - width) * 128 max_y = ($game_map.height - height) * 128 $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max end end #============================================================================ # ■ Tilemap #============================================================================ class Tilemap #-------------------------------------------------------------------------- attr_accessor :tileset attr_accessor :tileset attr_accessor :autotiles attr_accessor :map_data attr_accessor :flash_data attr_accessor :priorities attr_accessor :visible attr_accessor :ox attr_accessor :oy #-------------------------------------------------------------------------- def initialize(viewport) @map = [] width, height = $game_map.width * 32, $game_map.height * 32 for p in 0..2 @map[p] = Sprite.new(viewport) @map[p].bitmap = Bitmap.new(width , height) end @map[0].z = 0 @map[1].z = 50 @map[2].z = 1100 @tileset_tile_width = 32 @tileset_tile_height = 32 @tileset = nil @autotiles = [] @autotiles2 = [] @map_data = nil @data = nil @flash_data = nil @priorities = nil @visible = true @ox = 0 @oy = 0 @offset = [0,0] end #-------------------------------------------------------------------------- def update if @data != @map_data refresh end if @offset != [@ox, @oy] draw_left if @offset[0] > @ox draw_right if @offset[0] < @ox draw_up if @offset[1] > @oy draw_down if @offset[1] < @oy @offset = [@ox, @oy] for p in 0..2 @map[p].ox, @map[p].oy = @ox, @oy end end end #-------------------------------------------------------------------------- def draw_left x = $game_map.display_x / 128 sy = $game_map.display_y / 128 w, h = Resolution.client_grid ey = sy + h + 1 for p in 0..5 for z in 0...@map_data.zsize for y in sy...ey id = @map_data[x,y,z] next if id == nil next if @priorities[id] != p next if id < 48 refresh_autotiles(x,y,p,id) if id < 384 refresh_tileset(x,y,p,id) if id >= 384 end end end end #-------------------------------------------------------------------------- def draw_right sy = $game_map.display_y / 128 w, h = Resolution.client_grid x = $game_map.display_x / 128 + w ey = sy + h + 1 for p in 0..5 for z in 0...@map_data.zsize for y in sy...ey id = @map_data[x,y,z] next if id == nil next if @priorities[id] != p next if id < 48 refresh_autotiles(x,y,p,id) if id < 384 refresh_tileset(x,y,p,id) if id >= 384 end end end end #-------------------------------------------------------------------------- def draw_up sx = $game_map.display_x / 128 w, h = Resolution.client_grid y = $game_map.display_y / 128 ex = sx + w + 1 for p in 0..5 for z in 0...@map_data.zsize for x in sx...ex id = @map_data[x,y,z] next if id == nil next if @priorities[id] != p next if id < 48 refresh_autotiles(x,y,p,id) if id < 384 refresh_tileset(x,y,p,id) if id >= 384 end end end end #-------------------------------------------------------------------------- def draw_down sx = $game_map.display_x / 128 w, h = Resolution.client_grid y = $game_map.display_y / 128 + h ex = sx + w + 1 for p in 0..5 for z in 0...@map_data.zsize for x in sx...ex id = @map_data[x,y,z] next if id == nil next if @priorities[id] != p next if id < 48 refresh_autotiles(x,y,p,id) if id < 384 refresh_tileset(x,y,p,id) if id >= 384 end end end end #-------------------------------------------------------------------------- def refresh generate_autotiles2 @data = @map_data sx = $game_map.display_x / 128 sy = $game_map.display_y / 128 w, h = Resolution.client_grid ex = sx + w ey = sy + h for p in 0..5 for z in 0...@map_data.zsize for x in sx...ex for y in sy...ey id = @map_data[x,y,z] next if id == nil next if @priorities[id] != p next if id < 48 refresh_autotiles(x,y,p,id) if id < 384 refresh_tileset(x,y,p,id) if id >= 384 end end end end end #-------------------------------------------------------------------------- def refresh_autotiles(x,y,p,id) p = 2 if p > 2 if id >= 48 and id <= 95 sy = id - 48 sx = id - 48 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[0], src_rect) elsif id >= 96 and id <= 143 sy = id - 96 sx = id - 96 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[1], src_rect) elsif id >= 144 and id <= 191 sy = id - 144 sx = id - 144 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[2], src_rect) elsif id >= 192 and id <= 239 sy = id - 192 sx = id - 192 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[3], src_rect) elsif id >= 240 and id <= 287 sy = id - 240 sx = id - 240 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[4], src_rect) elsif id >= 288 and id <= 335 sy = id - 288 sx = id - 288 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[5], src_rect) elsif id >= 336 and id <= 383 sy = id - 336 sx = id - 336 sy /= 8 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @autotiles2[6], src_rect) end end #-------------------------------------------------------------------------- def refresh_tileset(x,y,p,id) p = 2 if p > 2 sy = id - 384 sy /= 8 sx = id - 384 sx = sx - (8 * sy) src_rect = Rect.new(sx*32, sy*32, 32, 32) @map[p].bitmap.blt(x*32, y*32, @tileset, src_rect) end #-------------------------------------------------------------------------- def dispose for p in 0..2 @map[p].bitmap.dispose end end #========================================================================== == # ■ Generates Autotiles # By: Fuso # Generates the tiles used by the game (can be seen in the editor by # doubleclicking an autotile field), from the images given as # resources. #========================================================================== == def generate_autotiles2(ats = @autotiles, frame_id = 0) h = @tileset_tile_height w = @tileset_tile_width for at in 0..6 @autotiles2[at] = Bitmap.new(@tileset_tile_width * 8, @tileset_tile_height * 6) if @autotiles2[at].nil? break if at >= @autotiles.size # Generate the 16 tiles containing water and a number of corners. # Each bit in i will represent whether or not a certain corner will be filled in. for i in 0...16 @autotiles2[at].blt(i % 8 * w, i / 8 * h, ats[at], Rect.new(frame_id * 3 * w + w, 2 * h, w, h)) if i < 15 @autotiles2[at].blt(i % 8 * w, i / 8 * h, ats[at], Rect.new(frame_id * 3 * w + 2 * w, 0, w / 2, h / 2)) if i & 0x1 == 0x1 @autotiles2[at].blt(i % 8 * w + w / 2, i / 8 * h, ats[at], Rect.new(frame_id * 3 * w + 5 * w / 2, 0, w / 2, h / 2)) if i & 0x2 == 0x2 @autotiles2[at].blt(i % 8 * w + w / 2, i / 8 * h + h / 2, ats[at], Rect.new(frame_id * 3 * w + 5 * w / 2, h / 2, w / 2, h / 2)) if i & 0x4 == 0x4 @autotiles2[at].blt(i % 8 * w, i / 8 * h + h / 2, ats[at], Rect.new(frame_id * 3 * w + 2 * w, h / 2, w / 2, h / 2)) if i & 0x8 == 0x8 end # Generate the 16 tiles containing a certain whole strip + up to 2 corners. # The two most signifant bits will hold the direction of the strip and the other # two bits whether or not the remaining 2 corners will be filled in. for i in 0...16 d = i / 4 # The strip. #@autotiles2[at].blt(i % 8 * w + (d==3 ? w / 2 : 0), 2 * h + i / 8 * h + (d==4 ? h / 2 : 0), ats[at], # Rect.new(d == 0 ? 0 : d == 2 ? 5 * d / 4 : d, d == 1 ? h : d == 3 ? 7 * h / 4 : 2 * h, # (d&3 + 1) * w / 2, (4 - d&3) * h / 2)) @autotiles2[at].blt(i % 8 * w, (2 + i / 8) * h, ats[at], Rect.new(frame_id * 3 * w + d == 0 ? 0 : d == 2 ? 2 * w : w, d == 1 ? h : d == 3 ? 3 * h : 2 * h, w, h)) l1 = (d + 1)%4 l2 = (d + 2)%4 x1 = (l1 == 1 or l1 == 2) ? w / 2 : 0 x2 = (l2 == 1 or l2 == 2) ? w / 2 : 0 y1 = l1/2 * h / 2 y2 = l2/2 * h / 2 @autotiles2[at].blt(i % 8 * w + x1, (2 + i / 8) * h + y1, ats[at], Rect.new(frame_id * 3 * w + 2 * w + x1, y1, w / 2, h / 2)) if i & 0x1 == 0x1 @autotiles2[at].blt(i % 8 * w + x2, (2 + i / 8) * h + y2, ats[at], Rect.new(frame_id * 3 * w + 2 * w + x2, y2, w / 2, h / 2)) if i & 0x2 == 0x2 end # The "double-strip" tiles. @autotiles2[at].blt(0, 4 * h, ats[at], Rect.new(frame_id * 3 * w + 0, 2 * h, w, h)) @autotiles2[at].blt(w / 2, 4 * h, ats[at], Rect.new(frame_id * 3 * w + 5 * w / 2, 2 * h, w / 2, h)) @autotiles2[at].blt(w, 4 * h, ats[at], Rect.new(frame_id * 3 * w + w, h, w, h)) @autotiles2[at].blt(w, 4 * h + h /2, ats[at], Rect.new(frame_id * 3 * w + w, 3 * h + h / 2, w, h / 2)) for i in 0...4 @autotiles2[at].blt((2 + 2 * i)%8 * w, (4 + i/3) * h, ats[at], Rect.new(frame_id * 3 * w + ((i == 1 or i == 2) ? 2 * w : 0), ((i&2) + 1) * h, w, h)) @autotiles2[at].blt((3 + 2 * i)%8 * w, (4 + i/3) * h, ats[at], Rect.new(frame_id * 3 * w + ((i == 1 or i == 2) ? 2 * w : 0), ((i&2) + 1) * h, w, h)) l = (i + 2)%4 x = (l == 1 or l == 2) ? w / 2 : 0 y = l/2 * h / 2 @autotiles2[at].blt((3 + 2 * i)%8 * w + x, (4 + i/3) * h + y, ats[at], Rect.new(frame_id * 3 * w + 2 * w + x, y, w / 2, h / 2)) end for i in 0...4 @autotiles2[at].blt((i + 2) * w, 5 * h, ats[at], Rect.new(frame_id * 3 * w + i/2 * 2 * w, (i == 1 or i == 2) ? 3 * h : h, w, h)) l = (i + 3) % 4 dx = (l == 3 ? w / 2 : 0) dy = (l == 2 ? h / 2 : 0) tx = (l < 2 ? 0 : 2 * w) ty = (l == 0 ? 0 : l == 3 ? 0 : 2 * h) @autotiles2[at].blt((i + 2) * w + dx, 5 * h + dy, ats[at], Rect.new(frame_id * 3 * w + tx + dx, h + ty + dy, w - l%2 * w / 2, h / 2 + l%2 * h / 2)) end # The final two squares which is simply the upper left one and possiby a merge of the # inner corners, we'll make them both the first tile for now. @autotiles2[at].blt(6 * w, 5 * h, ats[at], Rect.new(0, 0, w, h)) @autotiles2[at].blt(7 * w, 5 * h, ats[at], Rect.new(0, 0, w, h)) end end end #============================================================================ # ■ Spriteset_Map #============================================================================ class Spriteset_Map #-------------------------------------------------------------------------- def initialize width, height = Resolution.client_size @viewport1 = Viewport.new(0, 0, width, height) @viewport2 = Viewport.new(0, 0, width, height) @viewport3 = Viewport.new(0, 0, width, height) @viewport2.z = 200 @viewport3.z = 5000 @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 @panorama = Plane.new(@viewport1) @panorama.z = -1000 @fog = Plane.new(@viewport1) @fog.z = 3000 @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)) @weather = RPG::Weather.new(@viewport1) @picture_sprites = [] for i in 1..50 @picture_sprites.push(Sprite_Picture.new(@viewport2, $game_screen.pictures[i])) end @timer_sprite = Sprite_Timer.new update end end -
vi proibisco di parlare di script nella sezione ad eventiXXD vi banno tutti!
anche zeroXD
già i niubbi non usano gli eventi, ci manca anche due che dicono che c'è lo script, così nessuno impara più niente O_o
-
no, che avete capito... mi serve un beta tester, per sapere che errori correggereXXD chiedere l'aiuto di uno scripter non lo faccio, perchè diventa scemo... il codice è disordiantissimo O_o
-
c'è lo script... ma non posso postarlo -_-, scusa
-
no, non hai capitoXXD io sono ProGM di nick, forse anche di fattoXD
lui invece è alastor di nick e progm di fattoXD
-
cos'è sta storia??? io sono progm, non tu, alastorXD
-
scusa, vado otXD
sto cercando di risolvere i vari bugs di kh bs... mi serve una mano, ci sei?
comunque, come sai...XD ma io e la grafica viviamo su due pianeti diversi
-
è un bene che serva a qualcuno ^^
-
io ne ho 15 O_o
-
Prima lezione tradotta per XP da quella di Seph:
Sentinella.zipVersione HTML (38 kb circa)
Sentinella.pdfVersione PDF (130 kb circa)
E la versione originale, per RPG Maker 2000:
01avsentinella.zip

*Mappa Isometrica
in Scripts RGSS (XP)
Posted
beh, sai già che ne penso ;)
se vuoi il progetto lo riuppo io, che ce l'ho qui a portata di mano (credo)