RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: woratana am Mai 05, 2008, 05:46:47

Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: woratana am Mai 05, 2008, 05:46:47
Neo Save System
Version 1.0
by Woratana
Release Date: 04/05/2008


Introduction
This script will allow you to have unlimited save slots. You can also change save file's name and path.

It will replace old Save/Load scene with new interface,
and you are able to use image as background if you don't like windowskin. :P

Each save slot in this Neo Save System will have screenshot, so you will need screenshot.dll by Andreas21. :)
(You can download it below script in this post~)


Features
Version 1.0
# - Unlimited save slots, you can choose max save slot
# - You can use image for scene's background
# - Choose your save file's name, and folder to store save files
# - Choose to show only information you want
# - Editable text for information's title
# - Include Screenshot for each save file, you can choose its image type
# - Remove text you don't want from map's name (e.g. tags for special script)
# - Choose map that you don't want to show its name
# - Include save confirmation window before overwrite old save


Screenshots
(http://i32.tinypic.com/windyp.jpg)
Save/load screen without background

(http://i30.tinypic.com/2nss9ki.jpg)
Save/load screen with background


Demo
This is the demo for script :)
Thanks Enterbrain's sample map for sweet map in demo. :)
(http://i28.tinypic.com/2m76dc4.jpg) (http://ucash.in/2a603ed)


Script
Place it above main
[attachment=811:neosavesystem10.txt]

You also need screenshot.dll by Andreas 21.
Download it from here:
http://www.rpgrevolution.com/users/woratana/DLL_file/ (http://www.rpgrevolution.com/users/woratana/DLL_file/)
and put it in your project's folder.

Dankeschön an Gurkengelee!
<a href="http://www.filefactory.com/file/a8a6a5/n/screenshot_dll">screenshot.dll</a><br />
~EE



Instruction
- Don't forget to put screenshot.dll in your game folder!
- If you want to use background image, you have to put the image in folder 'Pictures'
- You can change setting in script's setting part.
- Make sure to put this script above Main.


Author's Notes
Free for use in your non-commercial work if credit included. If your project is commercial, please contact me.

Please do not redistribute this script without permission. If you want to post it on any forum, please link to this topic.


Credit
- Andreas and Cybersam for [XP] Screenshot script.


Bug Report?
Please give me these informations:
Zitat
- What is it says in error window?
- When is it get error? (Right after run game, when you choose something, etc.)
- What have you changed in setting part?
- Do you have any other scripts running in your game that may crash with this script?
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: xelawebdev am Mai 05, 2008, 09:17:44
Nice Script ;)Thx @ woratana
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Cege am Mai 05, 2008, 11:29:59
nice Script ;)

but..... ?? sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /](

(http://img74.imageshack.us/img74/2936/bild1va5.jpg)

(http://img146.imageshack.us/img146/6822/bild2sj5.jpg)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am Mai 05, 2008, 11:41:57
hast du versucht eine normale save zu laden?
PS: das ist leider nicht möglich (denk ich)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Cege am Mai 05, 2008, 12:08:43
Ne ist auch nich möglich... Kommt der selbe fehler...
komm nichtmal zur Auswahl hin...


EDIT :
Fragt mich nich wie, aber zumindest geht es jetzt!
Sehr cooles Script *freu*
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: $@$uk€ am Mai 05, 2008, 13:52:56
At first of all, thank you very much for this script, i like it a lot!
But i have a question:
In which line can i change the symbol for the saved and unsaved slots?
Because i have an other iconset, then the standard one, because of that i want to change the icon.
I hope you can answer me fast^^

edit:
Oh ok, i found it, they're line 47 and 48, but thank you all the same^^
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: mICHi am Mai 05, 2008, 14:58:22
Sehr geniales Script, hab ich auch direkt in mein aktuelles Spiel eingebaut und funzt ohne probleme : )
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Silvanus am Mai 05, 2008, 15:41:56
Very very very very very ~~~~ usefull x_X
I will put this script in my game x3

Ah, by the way, woratana, would you like comments in german or english ._.~?
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Snake am Mai 05, 2008, 17:01:00
Woah!
AWESOME Script Wora!
Very good work!
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Dainreth am Mai 05, 2008, 20:21:47
*sing* wora, wora, wora is so great lalala */sing*
What should I say, very beautiful script with these pictures, faces and so on it looks more interesting than that boring save-system. So thanks for a great script again!

btw. Most of your scripts were called "neo ...". I was a bit confused when I'm searching for one, because of the threadnames all beginning with neo xD
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Stef-san am Mai 05, 2008, 21:49:47
very awesome script :)

thx for this !

i will use it in my game

looks beautiful with picture and some information about member, location and time happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am Mai 05, 2008, 21:56:07
ideas:
-save the screen in the savefile
-to erase [] from name use .gsub(/\[\w*\]/) {""}-can you make a version for XP? (possiple for both?)

i would like help...
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Shinda am Mai 05, 2008, 22:02:11
Wow!

Dein Script sieht super aus! Werde es auch in mein derzeitiges Projekt aufnehmen.

THX Worata happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: woratana am Mai 06, 2008, 05:29:14
Thanks everyone, I appreciate your support to my script. :)

@Cege
It's possible that you've changed data to save in save file, or maybe one of script you're using does~ sad.gif\" style=\"vertical-align:middle\" emoid=\":(\" border=\"0\" alt=\"sad.gif\" /]

p.s. seems like you got it to work~ :)

@Hanmac
Thanks :)

Well, I'm not sure if you can save bitmap data in save file. :P
+ You can convert this to XP if you like to. :)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Evil95 am Mai 06, 2008, 18:13:25
very nice script. :)
but i have a little problem.
(http://img329.imageshack.us/img329/2391/neosavesystemty5.png)
at "Location" you can read [int]. it's from hellminors day night script. now my question. can you hide it?
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: ERZENGEL am Mai 06, 2008, 18:17:01
Such einfach nach dieser Stelle und schreib das [INT] in das Array:  MAP_NAME_TEXT_SUB = %w{}
  # Text that you want to remove from map name,
  # e.g. %w{[LN] [DA]} will remove text '[LN]' and '[DA]' from map name
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Evil95 am Mai 06, 2008, 18:20:38
danke erzengel. hat geklappt  happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: woratana am Mai 07, 2008, 00:02:20
Thanks Erzengel :)

I'll appreciate if anyone can help me translate comment part to German. :)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Talyana Meriweather Rahl am Mai 07, 2008, 00:10:17
shin and i saw it on rpgrevolution and we think this script is genious,
now we installed it but our screenshot is black only.^^;
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Dainreth am Mai 07, 2008, 16:22:05
@woratana
If you want to translate something into German, of course, I will help you. So just send me a PM and I will do it.
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Silvanus am Mai 07, 2008, 18:35:28
I've tried to translate the script.
I send it Dainreth later via ICQ, to check.  x.x
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: woratana am Mai 07, 2008, 23:43:48
Alright, thanks you guys for doing this. :)I really appreciate it.

@Talyana
Umh, have you tried turn off Aero in vista? :)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Talyana Meriweather Rahl am Mai 08, 2008, 04:33:42
What O_O the script has a bug with vista? XD'
omfg...than i can't use ;_;'

(sorry for my very bad english |D' my translater shin is'nt on)
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: woratana am Mai 08, 2008, 05:34:33
It will has bug if you turn on Aero, because screenshot.dll is not support Aero -0-/
(or Aero is not support screenshot.dll :P)

I'm thinking about change this to use image for each map instead of screenshot tho :3
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Agito Ace am Mai 08, 2008, 12:00:49
very Good script^^. Thx.
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Evil95 am Mai 12, 2008, 18:39:42
i have a prob with this script. the lvl display is ever 1.  even if a hero lvl 2 or higher.
how can i fix it?

PS: i know that's my english is bad^^
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Dainreth am Mai 12, 2008, 20:04:17
Just a little thing. When character is at the end of the map and the player wants to save it works..but on the screenshot there is no character. I know just a little thing, but maybe you'll find a solution.

@Silvanus
Habe deine Übersetzung nicht bekommen, habe aber auch 'ne eigene gemacht, kannst mir ja deine nochmal zukommen lassen (am besten per PN), dann schau ich mal ob deine nicht besser ist.
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: War-Raptor am Juni 12, 2008, 17:22:42
A very useful script!
It looks a lot better then the standart save system and I think the possibility to have more saveslots is also good too (4 was really not enough XD )

But I have a question.

Has someone already tried to combine hellminors simple questlog script with this one?
I mean for saving the questdata with it?

Cause I wanted to use both scripts but I have to figure out where to change them, and it would be cool if there is already a solution.

and now in german XD:

Also wollte wissen ob nicht zufällig jemand schon die beiden scripte neo save system und hellminors simple quest log zusammen benutzt und es so umgeskriptet hat dass die questdaten mit abgespeichert werden?

Wäre dankbar für einen kleinen Hinweis wie es denn gemacht wurde, wenn nicht ist auch gut, dann setze ich mich halt ans umskripten happy.gif\" style=\"vertical-align:middle\" emoid=\"^_^\" border=\"0\" alt=\"happy.gif\" /]


@MODS: sorry wenn ich einen alten thread ausgrabe XD
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am Juni 13, 2008, 10:18:16
trage bei load

@data[slot_id]["hier steht was sinvolles"] = $questlog


und bei save

$questlog = @data[slot_id]["hier steht was sinvolles"]



PS:
1. must du namen anpassen.
2. muss es an der gleichen position sein.



PPS: für das APD bau ich eine speicher verwaltung mit der man auch durch neues speichern die savefiles nicht kaput macht.


@woratana: have or will you make a XP version?
so i can fusion the to one?
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: War-Raptor am Juni 13, 2008, 17:40:31
Zitat von: Hanmac
trage bei load

@data[slot_id]["hier steht was sinvolles"] = $questlog


und bei save

$questlog = @data[slot_id]["hier steht was sinvolles"]



PS:
1. must du namen anpassen.
2. muss es an der gleichen position sein.



PPS: für das APD bau ich eine speicher verwaltung mit der man auch durch neues speichern die savefiles nicht kaput macht.


@woratana: have or will you make a XP version?
so i can fusion the to one?

Hm, kannst du mir mal genau sagen wo du diese Zeilen hintun willst?
Ich hatte eher gedacht dass bspw fürs Load folgende zeile in der load_save_data funktion beizufügen

      @data[slot_id]["questlog"] = Marshal.load(file)

und das saving übernimmt das questlogskript.

aber denke dass ich mich da irgendwo vertue

Aber egal was ich mache ich kriege einen stack error
Titel: + [NEO SAVE SYSTEM ] +
Beitrag von: Evolution am Juni 18, 2008, 12:03:37
gleiches problem hier.checke net wohin genau man einfügen sollte =O
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Evil95 am Juli 12, 2008, 14:25:00
ick erhalte auch ein "Stack Level to deep" error...
und ick weiß nich wo ich
@data[slot_id]["hier steht was sinvolles"] = $questlogund
$questlog = @data[slot_id]["hier steht was sinvolles"]einfügen soll.  :-\
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Im Not Jesus am Juli 16, 2008, 18:33:36
great script  ;D
thank you!  :D
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Evolution am August 06, 2008, 21:56:55
hmm weiß nun jezz mindestens einer wie man das nun mit dem questscript kombiniert?

 weil ich genau wegen diesem  problem schon net weitermakere =(
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: War-Raptor am August 08, 2008, 09:53:24
Habs noch net gefunden. Bin aber immer noch kräftig am rumprobieren. wenn ich es hinkrieg geb ich bescheid. allerdings hoffe ich dass jemand anderes mir die lösung geben könnte XD

Also von der logik her sollte es eigentlich funktionieren aber ich hab keine ahnung warum ich dauernd einen stack error kriege... XD
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Gimlykiller am September 15, 2008, 20:27:46
Ich kann irgendwie die demo nicht downloaden also wenn
jemand den script so hir rein stellen
würde wär ich sehr froooooooooooooooooooooooooooooooooo

Beitrag Nr. 2:
Hat sich erledigt konnte jetzt downloaden
nur leider ist da jetzt schon das nächste Proplem
(http://Frank\Desktop\Proplem)

Diese meldung kommt immer beim starten des Spieles

Beitrag Nr. 3:
Sry

aber irgendwie wird da kein Bild angezeigt


Anmerkung von mir:
Beim nächsten mal bitte (http://imagesload.net/daten_no/1219537283_aendern.png) verwenden um Mehrfachbeiträge zu vermeiden. Bilder kannst du z.B. auf http://imagesload.net hochladen und um sie in den Beitrag einzubinden nimmst du den Code für's Forum, den du nach dem Hochladen siehst.
Danke, EE.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Dainreth am September 16, 2008, 23:53:18
Könntest du dir bitte mal die Forenregeln ansehen, ich sag ja eigentlich nie was, aber drei Posts hintereinander wirken dann doch etwas komisch, dafür gibt's den Editbutton. Welche Fehlermeldung wird nun angezeigt und von welchem Bild redest du?
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Gimlykiller am September 17, 2008, 14:23:30
Hier die Fehler meldunghttp://imagesload.net/daten_no/1221654095_Proplem.gif (http://imagesload.net/daten_no/1221654095_Proplem.gif)
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Dainreth am September 17, 2008, 14:54:41
Ich kann dir keine hunderprozentig sichere Antwort geben, da ich mich mit RGSS nict auskenne, allerdings denke ich, dass diese Fehlermeldung darauf hinweist, dass du folgendes vergessen hast:

You also need screenshot.dll by Andreas 21.
Download it from here:
[url]http://www.rpgrevolution.com/users/woratana/DLL_file/[/url] ([url]http://www.rpgrevolution.com/users/woratana/DLL_file/[/url])
and put it in your project's folder.


Wenn das der Fall ist einfach runterladen und in den Game Folder, wie wora gesagt hat.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Xeox am Oktober 07, 2008, 22:57:57
Das script ist cool,ich würde es auch gern benutzen,jedoch weiß ich nicht wo ich die screenshot.dll herbekomme....die seite da hilft mir nicht weiter,kann mir jmd weiter helfen?
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Gurkengelee am Oktober 07, 2008, 23:03:45
Ich habs mal hochgeladen, da Woratanas Seite grade irgendwie nicht zu erreichen ist.

Hier ist der Link: <a href="http://www.filefactory.com/file/a8a6a5/n/screenshot_dll">screenshot.dll</a><br />

Ich danke dir im Namen der Community und füg den Link in woras Beitrag ein.
~EE
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Xeox am Oktober 07, 2008, 23:15:32
Heh cool dank dir
Edit: es funktioniert einwand frei...großes Lob nochmals daran
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Lanari am November 09, 2008, 14:39:23
Huhu wiso geht keiner der Downloads man kommt nur auf
seiten raus die einem nichts Saugen lassen sondern nur Registrierungen
Erfordern? Uk Cash und was weiss ich :/ Wo kann man das Bekommen? (Alles)
Garnicht mehr? Würde es gerne mal anstesten.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Akwa am Dezember 14, 2008, 19:54:45
Immer wenn ich speicher hab ich bei dem kleinen Bild kein screen sonder einfach schwarz trotz screenshot.dll
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: eugene222 am Dezember 14, 2008, 20:14:02
Hast du Vista?
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am Dezember 14, 2008, 21:15:33
wenn ja deaktiviere aero
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Akwa am Dezember 15, 2008, 18:37:05
Ja ich habe Vista Home Premium 32Bit
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Shinji am Dezember 15, 2008, 18:45:57
->
Zitat
wenn ja deaktiviere aero
:)
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Akwa am Dezember 15, 2008, 18:51:13
Ich versteh das nicht:

wenn ja deaktiviere Aero
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: eugene222 am Dezember 15, 2008, 18:58:49
Aero ist das Standartdesing von Vista. Die Screenshot.dll hat Probleme mit Aero, das ist der Grund weshalb ich auch auf diesen Skript verzichtet hab. Überleg dir mal ob du nicht ein anderes Save Skript suchst, wenn nicht wie gesagt, es lauft nicht unter Aero.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Akwa am Dezember 15, 2008, 19:10:02
Was gibt es denn noch so für Saveskripts
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: eugene222 am Dezember 15, 2008, 19:12:01
So fallen mir jetzt keine ein, aber ich hab glaub ich auf rmvx.org welche gesehen. Musst du nachschauen. Oder vielleicht war es auch auf rpgrevolution.com. Aber auf jeden Fall weiß ich, dass es welche gibt.

mfg. eugene
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am Dezember 15, 2008, 21:04:15
meins wird genauso aussehn (weswegen auch woratana credit bekommt)
aber soll unter vx die snap_to_bitmap nutzen
dadürch müsste es auch unter aero laufen
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Kisuke Urahara am Dezember 19, 2008, 11:14:47
O.o ich kann die Demo nicht downloaden...die datei si nicht vorhanden.

Kann die nochmal jemand uploaden?
Can somebody upload the Demo again? It's a broken link.

mfg Ryu
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Sk!p am Dezember 19, 2008, 13:54:36
Ich habe das Script von Silva geschickt bekommen,
allerdings in schon etwas abgewandelter Form, also nicht mehr das reine Skript.
Aber ich Stelle es hier mal zur Verfügung.
Zitat
#===============================================================
# ? [VX] ? Neo Save System with Unlimited save slots ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 04/05/2008
# ? Version: 1.0
#--------------------------------------------------------------
# ? Credit: - Andreas21 and Cybersam for Screenshot Script
# - RPG Revolution for hosted screenshot DLL file.
#--------------------------------------------------------------
# ? Requirement: screenshot.dll by Andreas21.
# You can download it from:
# [url]http://www.rpgrevolution.com/users/woratana/DLL_file/[/url]
# Put it in project folder. (folder that has Game.exe)
#--------------------------------------------------------------
# ? Features:
# - Unlimited save slots, you can choose max save slot
# - You can use image for scene's background
# - Choose your save file's name, and folder to store save files
# - Choose to show only information you want
# - Editable text for information's title
# - Include Screenshot for each save file, you can choose its image type
# - Remove text you don't want from map's name (e.g. tags for special script)
# - Choose map that you don't want to show its name
# - Include save confirmation window before overwrite old save
#=================================================================

module Wora_NSS
  #==========================================================================
  # * START NEO SAVE SYSTEM - SETUP
  #--------------------------------------------------------------------------
  NSS_WINDOW_OPACITY = 100 # All windows' opacity (Lowest 0 - 255 Highest)
  # You can change this to 0 in case you want to use image for background
  NSS_IMAGE_BG = 'title' # Background image file name, it must be in folder Picture.
  # use '' for no background
  NSS_IMAGE_BG_OPACITY = 255 # Opacity for background image
 
  MAX_SAVE_SLOT = 10 # Max save slots no.
  SLOT_NAME = 'Speicher{id}'
  # Name of the slot (show in save slots list), use {id} for slot ID
  SAVE_FILE_NAME = 'Save{id}.rvdata'
  # Save file name, you can also change its file type from .rvdata to other
  # use {id} for save slot ID
  SAVE_PATH = 'Speicherdateien/' # Path to store save file, e.g. 'Save/' or '' (for game folder)
 
  SAVED_SLOT_ICON = 133 # Icon Index for saved slot
  EMPTY_SLOT_ICON = 141 # Icon Index for empty slot
 
  IMAGE_FILETYPE = '.png' # Image type for screenshot
  # '.bmp', or '.jpg', or '.png'
 
  EMPTY_SLOT_TEXT = '-Kein Speicher-' # Text to show for empty slot's data
 
  DRAW_GOLD = true # Draw Gold
  DRAW_PLAYTIME = true # Draw Playtime
  DRAW_LOCATION = false # Draw location
  DRAW_FACE = true # Draw Actor's face
  DRAW_LEVEL = false # Draw Actor's level
  DRAW_NAME = true # Draw Actor's name
 
  PLAYTIME_TEXT = 'Spielzeit: '
  GOLD_TEXT = 'Gold: '
  LOCATION_TEXT = 'Ort: '
  LV_TEXT = 'Level '
 
  MAP_NAME_TEXT_SUB = %w{}
  # Text that you want to remove from map name,
  # e.g. %w{[LN] [DA]} will remove text '[LN]' and '[DA]' from map name
  MAP_NO_NAME_LIST = [] # ID of Map that will not show map name, e.g. [1,2,3]
  MAP_NO_NAME_NAME = 'Unbekannt' # What you will use to call map in no name list
 
  MAP_BORDER = Color.new(0,0,0,200) # Map (Screenshot) border color (R,G,B,Opacity)
  FACE_BORDER = Color.new(0,0,0,200) # Face border color
 
  ## SAVE CONFIRMATION WINDOW ##
  SFC_Text_Confirm = 'Speichern Bestätigen' # Text to confirm to save file
  SFC_Text_Cancel = 'Zurück' # Text to cancel to save
  SFC_Window_Width = 250 # Width of Confirmation Window
  SFC_Window_X_Offset = 0 # Move Confirmation Window horizontally
  SFC_Window_Y_Offset = 0 # Move Confirmation Window vertically
  #----------------------------------------------------------------------
  # END NEO SAVE SYSTEM - SETUP
  #=========================================================================

  #-------------------------------------------------------------
  # Screenshot V2 by Andreas21 and Cybersam
  #-------------------------------------------------------------
  @screen = Win32API.new 'screenshot', 'Screenshot', %w(l l l l p l l), ''
  @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  @findwindow = Win32API.new 'user32', 'FindWindowA', %w(p p), 'l'
  module_function
  def self.shot(file_name)
    case IMAGE_FILETYPE
    when '.bmp'; typid = 0
    when '.jpg'; typid = 1
    when '.png'; typid = 2
    end
    # Get Screenshot
    filename = file_name + IMAGE_FILETYPE
    @screen.call(0, 0, Graphics.width, Graphics.height, filename, self.handel,
    typid)
  end
  def self.handel
    game_name = "\0" * 256
    @readini.call('Game','Title','',game_name,255,".\\Game.ini")
    game_name.delete!("\0")
    return @findwindow.call('RGSS Player',game_name)
  end
end

class Scene_File < Scene_Base
  include Wora_NSS
  attr_reader :window_slotdetail
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    if NSS_IMAGE_BG != ''
      @bg = Sprite.new
      @bg.bitmap = Cache.picture(NSS_IMAGE_BG)
      @bg.opacity = NSS_IMAGE_BG_OPACITY
    end
    @help_window = Window_Help.new
    command = []
    (1..MAX_SAVE_SLOT).each do |i|
      command << SLOT_NAME.clone.gsub!(/\{ID\}/i) { i.to_s }
    end
    @window_slotdetail = Window_NSS_SlotDetail.new
    @window_slotlist = Window_SlotList.new(160, command)
    @window_slotlist.y = @help_window.height
    @window_slotlist.height = Graphics.height - @help_window.height
    @help_window.opacity = NSS_WINDOW_OPACITY
    @window_slotdetail.opacity = @window_slotlist.opacity = NSS_WINDOW_OPACITY
   
    # Create Folder for Save file
  if SAVE_PATH != ''
    Dir.mkdir(SAVE_PATH) if !FileTest.directory?(SAVE_PATH)
  end
    if @saving
      @index = $game_temp.last_file_index
      @help_window.set_text(Vocab::SaveMessage)
    else
      @index = self.latest_file_index
      @help_window.set_text(Vocab::LoadMessage)
      (1..MAX_SAVE_SLOT).each do |i|
        @window_slotlist.draw_item(i-1, false) if !@window_slotdetail.file_exist?(i)
      end
    end
    @window_slotlist.index = @index
    # Draw Information
    @last_slot_index = @window_slotlist.index
    @window_slotdetail.draw_data(@last_slot_index + 1)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    unless @bg.nil?
      @bg.bitmap.dispose
      @bg.dispose
    end
    @window_slotlist.dispose
    @window_slotdetail.dispose
    @help_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if !@confirm_window.nil?
      @confirm_window.update
      if Input.trigger?(Input::C)
        if @confirm_window.index == 0
          determine_savefile
          @confirm_window.dispose
          @confirm_window = nil
        else
          Sound.play_cancel
          @confirm_window.dispose
          @confirm_window = nil
        end
      elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @confirm_window.dispose
      @confirm_window = nil
      end
    else
      update_menu_background
      @window_slotlist.update
      if @window_slotlist.index != @last_slot_index
        @last_slot_index = @window_slotlist.index
        @window_slotdetail.draw_data(@last_slot_index + 1)
      end
      @help_window.update
      update_savefile_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Update Save File Selection
  #--------------------------------------------------------------------------
  def update_savefile_selection
    if Input.trigger?(Input::C)
      if @saving and @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_decision
        text1 = SFC_Text_Confirm
        text2 = SFC_Text_Cancel
        @confirm_window = Window_Command.new(SFC_Window_Width,[text1,text2])
        @confirm_window.x = ((544 - @confirm_window.width) / 2) + SFC_Window_X_Offset
        @confirm_window.y = ((416 - @confirm_window.height) / 2) + SFC_Window_Y_Offset
      else
        determine_savefile
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Save
  #--------------------------------------------------------------------------
  def do_save
    File.rename(SAVE_PATH + 'temp' + IMAGE_FILETYPE,
    make_filename(@last_slot_index).gsub(/\..*$/){ '_ss' } + IMAGE_FILETYPE)
    file = File.open(make_filename(@last_slot_index), "wb")
    write_save_data(file)
    file.close
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Execute Load
  #--------------------------------------------------------------------------
  def do_load
    file = File.open(make_filename(@last_slot_index), "rb")
    read_save_data(file)
    file.close
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
    @last_bgm.play
    @last_bgs.play
  end
  #--------------------------------------------------------------------------
  # * Confirm Save File
  #--------------------------------------------------------------------------
  def determine_savefile
    if @saving
      Sound.play_save
      do_save
    else
      if @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_load
        do_load
      else
        Sound.play_buzzer
        return
      end
    end
    $game_temp.last_file_index = @last_slot_index
  end
  #--------------------------------------------------------------------------
  # * Create Filename
  #     file_index : save file index (0-3)
  #--------------------------------------------------------------------------
  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index + 1).to_s }
  end
  #--------------------------------------------------------------------------
  # * Select File With Newest Timestamp
  #--------------------------------------------------------------------------
  def latest_file_index
    latest_index = 0
    latest_time = Time.at(0)
    (1..MAX_SAVE_SLOT).each do |i|
      file_name = make_filename(i - 1)
      next if !@window_slotdetail.file_exist?(i)
      file_time = File.mtime(file_name)
      if file_time > latest_time
        latest_time = file_time
        latest_index = i - 1
      end
    end
    return latest_index
  end
end

class Window_SlotList < Window_Command
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    icon_index = 0
    self.contents.clear_rect(rect)
    if $scene.window_slotdetail.file_exist?(index + 1)
      icon_index = Wora_NSS::SAVED_SLOT_ICON
    else
      icon_index = Wora_NSS::EMPTY_SLOT_ICON
    end
    if !icon_index.nil?
      rect.x -= 4
      draw_icon(icon_index, rect.x, rect.y, enabled) # Draw Icon
      rect.x += 26
      rect.width -= 20
    end
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
  end
 
  def cursor_down(wrap = false)
    if @index < @item_max - 1 or wrap
      @index = (@index + 1) % @item_max
    end
  end

  def cursor_up(wrap = false)
    if @index > 0 or wrap
      @index = (@index - 1 + @item_max) % @item_max
    end
  end
end

class Window_NSS_SlotDetail < Window_Base
  include Wora_NSS
  def initialize
    super(160, 56, 384, 360)
    @data = []
    @exist_list = []
    @bitmap_list = {}
    @map_name = []
  end

  def draw_data(slot_id)
    contents.clear # 352, 328
    load_save_data(slot_id) if @data[slot_id].nil?
    if @exist_list[slot_id]
      save_data = @data[slot_id]
      # DRAW SCREENSHOT~
      contents.fill_rect(0,30,352,160, MAP_BORDER)
      if save_data['ss']
        bitmap = get_bitmap(save_data['ss_path'])
        rect = Rect.new((Graphics.width-348)/2,(Graphics.height-156)/2,348,156)
        contents.blt(2,32,bitmap,rect)
      end
    if DRAW_GOLD
      # DRAW GOLD
      gold_textsize = contents.text_size(save_data['gamepar'].gold).width
      goldt_textsize = contents.text_size(GOLD_TEXT).width
      contents.font.color = system_color
      contents.draw_text(0, 0, goldt_textsize, WLH, GOLD_TEXT)
      contents.draw_text(goldt_textsize + gold_textsize,0,200,WLH, Vocab::gold)
      contents.font.color = normal_color
      contents.draw_text(goldt_textsize, 0, gold_textsize, WLH, save_data['gamepar'].gold)
    end
    if DRAW_PLAYTIME
      # DRAW PLAYTIME
      hour = save_data['total_sec'] / 60 / 60
      min = save_data['total_sec'] / 60 % 60
      sec = save_data['total_sec'] % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      pt_textsize = contents.text_size(PLAYTIME_TEXT).width
      ts_textsize = contents.text_size(time_string).width
      contents.font.color = system_color
      contents.draw_text(contents.width - ts_textsize - pt_textsize, 0,
      pt_textsize, WLH, PLAYTIME_TEXT)
      contents.font.color = normal_color
      contents.draw_text(0, 0, contents.width, WLH, time_string, 2)
    end
    if DRAW_LOCATION
      # DRAW LOCATION
      lc_textsize = contents.text_size(LOCATION_TEXT).width
      mn_textsize = contents.text_size(save_data['map_name']).width
      contents.font.color = system_color
      contents.draw_text(0, 190, contents.width,
      WLH, LOCATION_TEXT)
      contents.font.color = normal_color
      contents.draw_text(lc_textsize, 190, contents.width, WLH,
      save_data['map_name'])
    end
      # DRAW FACE & Level & Name
      save_data['gamepar'].members.each_index do |i|
        actor = save_data['gamepar'].members
        face_x_base = (i*80) + (i*8)
        face_y_base = 216
        lvn_y_plus = 10
        lv_textsize = contents.text_size(actor.level).width
        lvt_textsize = contents.text_size(LV_TEXT).width
      if DRAW_FACE
        # Draw Face
        contents.fill_rect(face_x_base, face_y_base, 84, 84, FACE_BORDER)
        draw_face(actor.face_name, actor.face_index, face_x_base + 2,
        face_y_base + 2, 80)
      end
      if DRAW_LEVEL
        # Draw Level
        contents.font.color = system_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize - lvt_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lvt_textsize, WLH, LV_TEXT)
        contents.font.color = normal_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lv_textsize, WLH, actor.level)
      end
      if DRAW_NAME
        # Draw Name
        contents.draw_text(face_x_base, face_y_base + 2 + 80 + lvn_y_plus - 6, 84,
        WLH, actor.name, 1)
      end
      end
    else
      contents.draw_text(0,0, contents.width, contents.height - WLH, EMPTY_SLOT_TEXT, 1)
    end
  end
 
  def load_save_data(slot_id)
    file_name = make_filename(slot_id)
    if file_exist?(slot_id) or FileTest.exist?(file_name)
      @exist_list[slot_id] = true
      @data[slot_id] = {}
      # Start load data
      file = File.open(file_name, "r")
      @data[slot_id]['time'] = file.mtime
      @data[slot_id]['char'] = Marshal.load(file)
      @data[slot_id]['frame'] = Marshal.load(file)
      @data[slot_id]['last_bgm'] = Marshal.load(file)
      @data[slot_id]['last_bgs'] = Marshal.load(file)
      @data[slot_id]['gamesys'] = Marshal.load(file)
      @data[slot_id]['gamemes'] = Marshal.load(file)
      @data[slot_id]['gameswi'] = Marshal.load(file)
      @data[slot_id]['gamevar'] = Marshal.load(file)
      @data[slot_id]['gameselfvar'] = Marshal.load(file)
      @data[slot_id]['gameactor'] = Marshal.load(file)
      @data[slot_id]['gamepar'] = Marshal.load(file)
      @data[slot_id]['gametro'] = Marshal.load(file)
      @data[slot_id]['gamemap'] = Marshal.load(file)
      @data[slot_id]['total_sec'] = @data[slot_id]['frame'] / Graphics.frame_rate
      @data[slot_id]['ss_path'] = file_name.gsub(/\..*$/){'_ss'} + IMAGE_FILETYPE
      @data[slot_id]['ss'] = FileTest.exist?(@data[slot_id]['ss_path'])
      @data[slot_id]['map_name'] = get_mapname(@data[slot_id]['gamemap'].map_id)
      file.close
    else
      @exist_list[slot_id] = false
      @data[slot_id] = -1
    end
  end

  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index).to_s }
  end
 
  def file_exist?(slot_id)
    return @exist_list[slot_id] if !@exist_list[slot_id].nil?
    @exist_list[slot_id] = FileTest.exist?(make_filename(slot_id))
    return @exist_list[slot_id]
  end

  def get_mapname(map_id)
    if @map_data.nil?
      @map_data = load_data("Data/MapInfos.rvdata")
    end
    if @map_name[map_id].nil?
      if MAP_NO_NAME_LIST.include?(map_id)
        @map_name[map_id] = MAP_NO_NAME_NAME
      else
        @map_name[map_id] = @map_data[map_id].name
        MAP_NAME_TEXT_SUB.each_index do |i|
          @map_name[map_id].sub!(MAP_NAME_TEXT_SUB, '')
        end
      end
    end
    return @map_name[map_id]
  end
 
  def get_bitmap(path)
    if !@bitmap_list.include?(path)
      @bitmap_list[path] = Bitmap.new(path)
    end
    return @bitmap_list[path]
  end
 
  def dispose
    @bitmap_list.each {|i| i[1].dispose }
    super
  end
end

class Scene_Title < Scene_Base
  def check_continue
    file_name = Wora_NSS::SAVE_PATH + Wora_NSS::SAVE_FILE_NAME.gsub(/\{ID\}/i) { '*' }
    @continue_enabled = (Dir.glob(file_name).size > 0)
  end
end

class Scene_Map < Scene_Base
  alias wora_nss_scemap_ter terminate
  def terminate
    Wora_NSS.shot(Wora_NSS::SAVE_PATH + 'temp')
    wora_nss_scemap_ter
  end
end
#======================================================================
# END - NEO SAVE SYSTEM by Woratana
#======================================================================

Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Emelie Rose am Dezember 22, 2008, 14:44:45
hat wer das original script?

bei mir kommt immer dieser fehler:

(http://file1.npage.de/002326/74/bilder/aufzeichnen1.png)
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: eugene222 am Dezember 22, 2008, 16:02:24
Es gibt eine Version 2 von Woratan, welche nicht mehr mit der Screenshot.dll arbeitet. Sie benutzt jetzt Bilder statt der dll. Wenn du interessiert an der Version2 bist, hier der Link:
http://www.mediafire.com/?mmwxyy42dqz
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Emelie Rose am Dezember 22, 2008, 16:05:20
vielen dank
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Bahamut am März 18, 2009, 13:10:42
Hi there.
Well, I'm using the new version without the screenshot.dll and it just works great. thanks a lot for this awesome masterpiece :D

keep on scripting!

-Baha
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Stef-san am März 21, 2009, 08:17:32
aah.. endlich ohne diese screenshot dll :D nice nice. danke fuer den Link! :D
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Hanmac am März 21, 2009, 15:19:59
ja aber der nachteil ist das der nicht mehr sie map speichert wo man ist
PS: ich mach grad eine nette  version die speichert das direct in die save file
das geht beim vx auch ohne dll
aber beim xp braucht er die
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: eugene222 am März 21, 2009, 20:44:20
@Hanmac
Schön das du ne nette Version machst, aber das Problem ist halt. dass es diese Version noch nicht gibt.
Also was bringt uns das? Das hast du hier schonmal gesagt. Also mich interessierts nicht, solange ich keine Demo
sehe oder wenigstens Screens.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: wolfassguy am März 26, 2009, 11:58:17
Ich würde den skribt auch gern benutzen jedoch kann ich den link der mich
zum download für demo schickt nicht öffnen ... die screenshot.dll habe ich bereits ...
kannn jemand das vllt noch mal posten ... also das skribt ? ( eben mit screenshot )
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Agito Ace am Juni 11, 2009, 10:22:47
Sehr schönes Script^^.

Allerdings ist der DL Link defekt.
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: tobistyle am Juni 11, 2009, 14:10:00
Für die Version 3 klick hier (http://www.mediafire.com/?abmywhzndgq)

Hier ist noch die Version 1 (ist auf deutsch von mir^^):
===============================================================
# ? [VX] ? Neo Save System with Unlimited save slots ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 04/05/2008
# ? Version: 1.0
#--------------------------------------------------------------
# ? Credit: - Andreas21 and Cybersam for Screenshot Script
# - RPG Revolution for hosted screenshot DLL file.
#--------------------------------------------------------------
# ? Requirement: screenshot.dll by Andreas21.
# You can download it from:
# http://www.rpgrevolution.com/users/woratana/DLL_file/
# Put it in project folder. (folder that has Game.exe)
#--------------------------------------------------------------
# ? Features:
# - Unlimited save slots, you can choose max save slot
# - You can use image for scene's background
# - Choose your save file's name, and folder to store save files
# - Choose to show only information you want
# - Editable text for information's title
# - Include Screenshot for each save file, you can choose its image type
# - Remove text you don't want from map's name (e.g. tags for special script)
# - Choose map that you don't want to show its name
# - Include save confirmation window before overwrite old save
#=================================================================

module Wora_NSS
  #==========================================================================
  # * START NEO SAVE SYSTEM - SETUP
  #--------------------------------------------------------------------------
  NSS_WINDOW_OPACITY = 255 # All windows' opacity (Lowest 0 - 255 Highest)
  # You can change this to 0 in case you want to use image for background
  NSS_IMAGE_BG = '' # Background image file name, it must be in folder Picture.
  # use '' for no background
  NSS_IMAGE_BG_OPACITY = 255 # Opacity for background image
 
  MAX_SAVE_SLOT = 20 # Max save slots no.
  SLOT_NAME = 'SLOT {id}'
  # Name of the slot (show in save slots list), use {id} for slot ID
  SAVE_FILE_NAME = 'Saveslot{id}.rvdata'
  # Save file name, you can also change its file type from .rvdata to other
  # use {id} for save slot ID
  SAVE_PATH = '' # Path to store save file, e.g. 'Save/' or '' (for game folder)
 
  SAVED_SLOT_ICON = 133 # Icon Index for saved slot
  EMPTY_SLOT_ICON = 141 # Icon Index for empty slot
 
  IMAGE_FILETYPE = '.png' # Image type for screenshot
  # '.bmp', or '.jpg', or '.png'
 
  EMPTY_SLOT_TEXT = '-Keine Daten-' # Text to show for empty slot's data
 
  DRAW_GOLD = true # Draw Gold
  DRAW_PLAYTIME = true # Draw Playtime
  DRAW_LOCATION = true # Draw location
  DRAW_FACE = true # Draw Actor's face
  DRAW_LEVEL = true # Draw Actor's level
  DRAW_NAME = true # Draw Actor's name
 
  PLAYTIME_TEXT = 'Spielzeit: '
  GOLD_TEXT = 'Gold: '
  LOCATION_TEXT = 'Ort: '
  LV_TEXT = 'Lv '
 
  MAP_NAME_TEXT_SUB = %w{}
  # Text that you want to remove from map name,
  # e.g. %w{[LN] [DA]} will remove text '[LN]' and '[DA]' from map name
  MAP_NO_NAME_LIST = [] # ID of Map that will not show map name, e.g. [1,2,3]
  MAP_NO_NAME_NAME = '??????????' # What you will use to call map in no name list
 
  MAP_BORDER = Color.new(0,0,0,200) # Map (Screenshot) border color (R,G,B,Opacity)
  FACE_BORDER = Color.new(0,0,0,200) # Face border color
 
  ## SAVE CONFIRMATION WINDOW ##
  SFC_Text_Confirm = 'Datei überschreiben' # Text to confirm to save file
  SFC_Text_Cancel = 'Zurück' # Text to cancel to save
  SFC_Window_Width = 200 # Width of Confirmation Window
  SFC_Window_X_Offset = 0 # Move Confirmation Window horizontally
  SFC_Window_Y_Offset = 0 # Move Confirmation Window vertically
  #----------------------------------------------------------------------
  # END NEO SAVE SYSTEM - SETUP
  #=========================================================================

  #-------------------------------------------------------------
  # Screenshot V2 by Andreas21 and Cybersam
  #-------------------------------------------------------------
  @screen = Win32API.new 'screenshot', 'Screenshot', %w(l l l l p l l), ''
  @readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
  @findwindow = Win32API.new 'user32', 'FindWindowA', %w(p p), 'l'
  module_function
  def self.shot(file_name)
    case IMAGE_FILETYPE
    when '.bmp'; typid = 0
    when '.jpg'; typid = 1
    when '.png'; typid = 2
    end
    # Get Screenshot
    filename = file_name + IMAGE_FILETYPE
    @screen.call(0, 0, Graphics.width, Graphics.height, filename, self.handel,
    typid)
  end
  def self.handel
    game_name = "\0" * 256
    @readini.call('Game','Title','',game_name,255,".\\Game.ini")
    game_name.delete!("\0")
    return @findwindow.call('RGSS Player',game_name)
  end
end

class Scene_File < Scene_Base
  include Wora_NSS
  attr_reader :window_slotdetail
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    if NSS_IMAGE_BG != ''
      @bg = Sprite.new
      @bg.bitmap = Cache.picture(NSS_IMAGE_BG)
      @bg.opacity = NSS_IMAGE_BG_OPACITY
    end
    @help_window = Window_Help.new
    command = []
    (1..MAX_SAVE_SLOT).each do |i|
      command << SLOT_NAME.clone.gsub!(/\{ID\}/i) { i.to_s }
    end
    @window_slotdetail = Window_NSS_SlotDetail.new
    @window_slotlist = Window_SlotList.new(160, command)
    @window_slotlist.y = @help_window.height
    @window_slotlist.height = Graphics.height - @help_window.height
    @help_window.opacity = NSS_WINDOW_OPACITY
    @window_slotdetail.opacity = @window_slotlist.opacity = NSS_WINDOW_OPACITY
   
    # Create Folder for Save file
  if SAVE_PATH != ''
    Dir.mkdir(SAVE_PATH) if !FileTest.directory?(SAVE_PATH)
  end
    if @saving
      @index = $game_temp.last_file_index
      @help_window.set_text(Vocab::SaveMessage)
    else
      @index = self.latest_file_index
      @help_window.set_text(Vocab::LoadMessage)
      (1..MAX_SAVE_SLOT).each do |i|
        @window_slotlist.draw_item(i-1, false) if !@window_slotdetail.file_exist?(i)
      end
    end
    @window_slotlist.index = @index
    # Draw Information
    @last_slot_index = @window_slotlist.index
    @window_slotdetail.draw_data(@last_slot_index + 1)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    unless @bg.nil?
      @bg.bitmap.dispose
      @bg.dispose
    end
    @window_slotlist.dispose
    @window_slotdetail.dispose
    @help_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if !@confirm_window.nil?
      @confirm_window.update
      if Input.trigger?(Input::C)
        if @confirm_window.index == 0
          determine_savefile
          @confirm_window.dispose
          @confirm_window = nil
        else
          Sound.play_cancel
          @confirm_window.dispose
          @confirm_window = nil
        end
      elsif Input.trigger?(Input::B)
      Sound.play_cancel
      @confirm_window.dispose
      @confirm_window = nil
      end
    else
      update_menu_background
      @window_slotlist.update
      if @window_slotlist.index != @last_slot_index
        @last_slot_index = @window_slotlist.index
        @window_slotdetail.draw_data(@last_slot_index + 1)
      end
      @help_window.update
      update_savefile_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Update Save File Selection
  #--------------------------------------------------------------------------
  def update_savefile_selection
    if Input.trigger?(Input::C)
      if @saving and @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_decision
        text1 = SFC_Text_Confirm
        text2 = SFC_Text_Cancel
        @confirm_window = Window_Command.new(SFC_Window_Width,[text1,text2])
        @confirm_window.x = ((544 - @confirm_window.width) / 2) + SFC_Window_X_Offset
        @confirm_window.y = ((416 - @confirm_window.height) / 2) + SFC_Window_Y_Offset
      else
        determine_savefile
      end
    elsif Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # * Execute Save
  #--------------------------------------------------------------------------
  def do_save
    File.rename(SAVE_PATH + 'temp' + IMAGE_FILETYPE,
    make_filename(@last_slot_index).gsub(/\..*$/){ '_ss' } + IMAGE_FILETYPE)
    file = File.open(make_filename(@last_slot_index), "wb")
    write_save_data(file)
    file.close
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Execute Load
  #--------------------------------------------------------------------------
  def do_load
    file = File.open(make_filename(@last_slot_index), "rb")
    read_save_data(file)
    file.close
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    Graphics.fadeout(60)
    Graphics.wait(40)
    @last_bgm.play
    @last_bgs.play
  end
  #--------------------------------------------------------------------------
  # * Confirm Save File
  #--------------------------------------------------------------------------
  def determine_savefile
    if @saving
      Sound.play_save
      do_save
    else
      if @window_slotdetail.file_exist?(@last_slot_index + 1)
        Sound.play_load
        do_load
      else
        Sound.play_buzzer
        return
      end
    end
    $game_temp.last_file_index = @last_slot_index
  end
  #--------------------------------------------------------------------------
  # * Create Filename
  #     file_index : save file index (0-3)
  #--------------------------------------------------------------------------
  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index + 1).to_s }
  end
  #--------------------------------------------------------------------------
  # * Select File With Newest Timestamp
  #--------------------------------------------------------------------------
  def latest_file_index
    latest_index = 0
    latest_time = Time.at(0)
    (1..MAX_SAVE_SLOT).each do |i|
      file_name = make_filename(i - 1)
      next if !@window_slotdetail.file_exist?(i)
      file_time = File.mtime(file_name)
      if file_time > latest_time
        latest_time = file_time
        latest_index = i - 1
      end
    end
    return latest_index
  end
end

class Window_SlotList < Window_Command
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index, enabled = true)
    rect = item_rect(index)
    rect.x += 4
    rect.width -= 8
    icon_index = 0
    self.contents.clear_rect(rect)
    if $scene.window_slotdetail.file_exist?(index + 1)
      icon_index = Wora_NSS::SAVED_SLOT_ICON
    else
      icon_index = Wora_NSS::EMPTY_SLOT_ICON
    end
    if !icon_index.nil?
      rect.x -= 4
      draw_icon(icon_index, rect.x, rect.y, enabled) # Draw Icon
      rect.x += 26
      rect.width -= 20
    end
    self.contents.clear_rect(rect)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, @commands[index])
  end
 
  def cursor_down(wrap = false)
    if @index < @item_max - 1 or wrap
      @index = (@index + 1) % @item_max
    end
  end

  def cursor_up(wrap = false)
    if @index > 0 or wrap
      @index = (@index - 1 + @item_max) % @item_max
    end
  end
end

class Window_NSS_SlotDetail < Window_Base
  include Wora_NSS
  def initialize
    super(160, 56, 384, 360)
    @data = []
    @exist_list = []
    @bitmap_list = {}
    @map_name = []
  end

  def draw_data(slot_id)
    contents.clear # 352, 328
    load_save_data(slot_id) if @data[slot_id].nil?
    if @exist_list[slot_id]
      save_data = @data[slot_id]
      # DRAW SCREENSHOT~
      contents.fill_rect(0,30,352,160, MAP_BORDER)
      if save_data['ss']
        bitmap = get_bitmap(save_data['ss_path'])
        rect = Rect.new((Graphics.width-348)/2,(Graphics.height-156)/2,348,156)
        contents.blt(2,32,bitmap,rect)
      end
    if DRAW_GOLD
      # DRAW GOLD
      gold_textsize = contents.text_size(save_data['gamepar'].gold).width
      goldt_textsize = contents.text_size(GOLD_TEXT).width
      contents.font.color = system_color
      contents.draw_text(0, 0, goldt_textsize, WLH, GOLD_TEXT)
      contents.draw_text(goldt_textsize + gold_textsize,0,200,WLH, Vocab::gold)
      contents.font.color = normal_color
      contents.draw_text(goldt_textsize, 0, gold_textsize, WLH, save_data['gamepar'].gold)
    end
    if DRAW_PLAYTIME
      # DRAW PLAYTIME
      hour = save_data['total_sec'] / 60 / 60
      min = save_data['total_sec'] / 60 % 60
      sec = save_data['total_sec'] % 60
      time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
      pt_textsize = contents.text_size(PLAYTIME_TEXT).width
      ts_textsize = contents.text_size(time_string).width
      contents.font.color = system_color
      contents.draw_text(contents.width - ts_textsize - pt_textsize, 0,
      pt_textsize, WLH, PLAYTIME_TEXT)
      contents.font.color = normal_color
      contents.draw_text(0, 0, contents.width, WLH, time_string, 2)
    end
    if DRAW_LOCATION
      # DRAW LOCATION
      lc_textsize = contents.text_size(LOCATION_TEXT).width
      mn_textsize = contents.text_size(save_data['map_name']).width
      contents.font.color = system_color
      contents.draw_text(0, 190, contents.width,
      WLH, LOCATION_TEXT)
      contents.font.color = normal_color
      contents.draw_text(lc_textsize, 190, contents.width, WLH,
      save_data['map_name'])
    end
      # DRAW FACE & Level & Name
      save_data['gamepar'].members.each_index do |i|
        actor = save_data['gamepar'].members[i]
        face_x_base = (i*80) + (i*8)
        face_y_base = 216
        lvn_y_plus = 10
        lv_textsize = contents.text_size(actor.level).width
        lvt_textsize = contents.text_size(LV_TEXT).width
      if DRAW_FACE
        # Draw Face
        contents.fill_rect(face_x_base, face_y_base, 84, 84, FACE_BORDER)
        draw_face(actor.face_name, actor.face_index, face_x_base + 2,
        face_y_base + 2, 80)
      end
      if DRAW_LEVEL
        # Draw Level
        contents.font.color = system_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize - lvt_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lvt_textsize, WLH, LV_TEXT)
        contents.font.color = normal_color
        contents.draw_text(face_x_base + 2 + 80 - lv_textsize,
        face_y_base + 2 + 80 - WLH + lvn_y_plus, lv_textsize, WLH, actor.level)
      end
      if DRAW_NAME
        # Draw Name
        contents.draw_text(face_x_base, face_y_base + 2 + 80 + lvn_y_plus - 6, 84,
        WLH, actor.name, 1)
      end
      end
    else
      contents.draw_text(0,0, contents.width, contents.height - WLH, EMPTY_SLOT_TEXT, 1)
    end
  end
 
  def load_save_data(slot_id)
    file_name = make_filename(slot_id)
    if file_exist?(slot_id) or FileTest.exist?(file_name)
      @exist_list[slot_id] = true
      @data[slot_id] = {}
      # Start load data
      file = File.open(file_name, "r")
      @data[slot_id]['time'] = file.mtime
      @data[slot_id]['char'] = Marshal.load(file)
      @data[slot_id]['frame'] = Marshal.load(file)
      @data[slot_id]['last_bgm'] = Marshal.load(file)
      @data[slot_id]['last_bgs'] = Marshal.load(file)
      @data[slot_id]['gamesys'] = Marshal.load(file)
      @data[slot_id]['gamemes'] = Marshal.load(file)
      @data[slot_id]['gameswi'] = Marshal.load(file)
      @data[slot_id]['gamevar'] = Marshal.load(file)
      @data[slot_id]['gameselfvar'] = Marshal.load(file)
      @data[slot_id]['gameactor'] = Marshal.load(file)
      @data[slot_id]['gamepar'] = Marshal.load(file)
      @data[slot_id]['gametro'] = Marshal.load(file)
      @data[slot_id]['gamemap'] = Marshal.load(file)
      @data[slot_id]['total_sec'] = @data[slot_id]['frame'] / Graphics.frame_rate
      @data[slot_id]['ss_path'] = file_name.gsub(/\..*$/){'_ss'} + IMAGE_FILETYPE
      @data[slot_id]['ss'] = FileTest.exist?(@data[slot_id]['ss_path'])
      @data[slot_id]['map_name'] = get_mapname(@data[slot_id]['gamemap'].map_id)
      file.close
    else
      @exist_list[slot_id] = false
      @data[slot_id] = -1
    end
  end

  def make_filename(file_index)
    return SAVE_PATH + SAVE_FILE_NAME.gsub(/\{ID\}/i) { (file_index).to_s }
  end
 
  def file_exist?(slot_id)
    return @exist_list[slot_id] if !@exist_list[slot_id].nil?
    @exist_list[slot_id] = FileTest.exist?(make_filename(slot_id))
    return @exist_list[slot_id]
  end

  def get_mapname(map_id)
    if @map_data.nil?
      @map_data = load_data("Data/MapInfos.rvdata")
    end
    if @map_name[map_id].nil?
      if MAP_NO_NAME_LIST.include?(map_id)
        @map_name[map_id] = MAP_NO_NAME_NAME
      else
        @map_name[map_id] = @map_data[map_id].name
        MAP_NAME_TEXT_SUB.each_index do |i|
          @map_name[map_id].sub!(MAP_NAME_TEXT_SUB[i], '')
        end
      end
    end
    return @map_name[map_id]
  end
 
  def get_bitmap(path)
    if !@bitmap_list.include?(path)
      @bitmap_list[path] = Bitmap.new(path)
    end
    return @bitmap_list[path]
  end
 
  def dispose
    @bitmap_list.each {|i| i[1].dispose }
    super
  end
end

class Scene_Title < Scene_Base
  def check_continue
    file_name = Wora_NSS::SAVE_PATH + Wora_NSS::SAVE_FILE_NAME.gsub(/\{ID\}/i) { '*' }
    @continue_enabled = (Dir.glob(file_name).size > 0)
  end
end

class Scene_Map < Scene_Base
  alias wora_nss_scemap_ter terminate
  def terminate
    Wora_NSS.shot(Wora_NSS::SAVE_PATH + 'temp')
    wora_nss_scemap_ter
  end
end
#======================================================================
# END - NEO SAVE SYSTEM by Woratana
#======================================================================
Für Version 1 die Screenshot.dll gibt es hier (http://www.filefactory.com/file/a8a6a5/n/screenshot_dll)
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Emelie Rose am Juni 11, 2009, 22:51:27
Bei mir kommt immer die meldung "seite konnten nicht gefunden werden"
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: tobistyle am Juni 12, 2009, 17:32:58
Bei mir gehen die links, versuchs mal mit einem anderen Browser
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: DominikWW am März 27, 2010, 01:32:00
Hab das Demo gedownloadet und den Script bei mein Projekt eingefügt aber da kommt dann diese fehlermeldung wenn ich ein gespeichertes Spiel versuche zu laden:

Unable to find graphiks/pictures/map_ss2
Titel: Re: + [NEO SAVE SYSTEM ] +
Beitrag von: Kvote am März 27, 2010, 02:01:33
Das liegt wohl daran das Skript eine Map aus dem Projekt versucht zu laden die nicht vorhanden ist, ich würde dir raten ein neues Spiel anzufangen.
SimplePortal 2.3.3 © 2008-2010, SimplePortal