Shaz, you understood me. This is exactly what I want.
All you have to do is create a new object, set up the default settings, give it an id one more than the last $dataActors' id, and then do whatever you want with it. The question is, do you want to actually update $dataActors (which means the developer could then go and delete it again when they go back to work on the game, and/or you would have to keep track of whether it had been done or not so you don't go adding new actors to $dataActors every time they run the game), or do you want to create a $gameActors object based on it, and as I said above, it still requires a $dataActors object for those things that don't specifically get placed in the $gameActors object.
Well, let's think about it like a clonning actor feature, but for special purposes. This actor will exists only in the game, and not in the database, but I will be able do call him with the methods I would use for a normal actor.
Anyway, I found a solution without needing to create this actor. I overwrited some Scene_Name funcations to be like that:
Scene_Name.prototype.create = function() { Scene_MenuBase.prototype.create.call(this); if ($gameActors.actor(this._actorId) != null && $gameActors.actor(this._actorId) != undefined) { this._actor = $gameActors.actor(this._actorId); } else { this._actor = $gameActors.actor(); } this.createEditWindow(); this.createInputWindow();};Window_NameEdit.prototype.initialize = function(actor, maxLength) { var width = this.windowWidth(); var height = this.windowHeight(); var x = (Graphics.boxWidth - width) / 2; var y = (Graphics.boxHeight - (height + this.fittingHeight(9) + 8)) / 2; Window_Base.prototype.initialize.call(this, x, y, width, height); this._actor = actor; if($gameActors.actor(this._actorId) != null && $gameActors.actor(this._actorId) != undefined) { this._name = actor.name().slice(0, this._maxLength); } else { this._name = '';} this._index = this._name.length; this._maxLength = maxLength; this._defaultName = this._name; this.deactivate(); this.refresh(); if($gameActors.actor(this._actorId) != null && $gameActors.actor(this._actorId) != undefined) { ImageManager.loadFace(actor.faceName()); }};Window_NameEdit.prototype.refresh = function() { this.contents.clear(); if($gameActors.actor(this._actorId) != null && $gameActors.actor(this._actorId) != undefined) { this.drawActorFace(this._actor, 0, 0); } for (var i = 0; i < this._maxLength; i++) { this.drawUnderline(i); } for (var j = 0; j < this._name.length; j++) { this.drawChar(j); } var rect = this.itemRect(this._index); this.setCursorRect(rect.x, rect.y, rect.width, rect.height);};Scene_Name.prototype.onInputOk = function() { if ($gameActors.actor(this._actorId) != null && $gameActors.actor(this._actorId) != undefined) { this._actor.setName(this._editWindow.name()); } else { $gameVariables.setValue(3, this._editWindow.name());} this.popScene();}; This way the name input will work even for the normal needs as for my needs.
But I still want to know how to make this actor thing. Tell me how you would program this object creation thing. This can be of help for me in the future!