Soulrender

Jack Of All Trades
Regular
Joined
Jan 12, 2019
Messages
1,619
Reaction score
1,153
First Language
Polish
Primarily Uses
RMMV
I'm actually lost and I can't figure out, what's going on so I'm asking you for help.

I have installed SRD_SummonCore.js plugin wich as you know, allows to summon an actor to battlefield.
Summoning works fine, but, when the actor is beign unsummoned, game simply just crashes with following error:

I'm using MV 1.6.2

Edit: OK. I made - needless to say - patch, by simply removing this method from YEP_X_AnimatedSVEnemies.js plugin:

Code:
Sprite_Animation.prototype.updateSvePosition = function() {
  if (typeof this._target.parent._battler != 'undefined' && this._target.parent._battler.isEnemy() && typeof this._target.parent._mainSprite != 'undefined'){
    if (this._animation.position !== 3) {
      if (this._animation.position === 0) {
        this.y += this._target.parent._mainSprite.height - this._target.parent.texture.height;
      } else if (this._animation.position === 1) {
        this.y += (this._target.parent._mainSprite.height - this._target.parent.texture.height) / 2;
      }
    }
  }
};

however I'm not sure I've done right thing. (but works)
 
Last edited:

Rugman

Regular
Regular
Joined
Jun 11, 2020
Messages
302
Reaction score
89
First Language
English
Primarily Uses
RMMV
I was having the same issue and ended up removing the summon plugin because of it. I’ll be sure to test this out.
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
16,823
Reaction score
9,341
First Language
English
Primarily Uses
RMMV

I've moved this thread to Plugin Support. Thank you.

 
Joined
Jul 8, 2017
Messages
55
Reaction score
13
First Language
English
Primarily Uses
RMMV
I'm actually lost and I can't figure out, what's going on so I'm asking you for help.

I have installed SRD_SummonCore.js plugin wich as you know, allows to summon an actor to battlefield.
Summoning works fine, but, when the actor is beign unsummoned, game simply just crashes with following error:

I'm using MV 1.6.2

Edit: OK. I made - needless to say - patch, by simply removing this method from YEP_X_AnimatedSVEnemies.js plugin:

Code:
Sprite_Animation.prototype.updateSvePosition = function() {
  if (typeof this._target.parent._battler != 'undefined' && this._target.parent._battler.isEnemy() && typeof this._target.parent._mainSprite != 'undefined'){
    if (this._animation.position !== 3) {
      if (this._animation.position === 0) {
        this.y += this._target.parent._mainSprite.height - this._target.parent.texture.height;
      } else if (this._animation.position === 1) {
        this.y += (this._target.parent._mainSprite.height - this._target.parent.texture.height) / 2;
      }
    }
  }
};

however I'm not sure I've done right thing. (but works)
I did this but once the summon is killed the battle is stuck in place
 

Soulrender

Jack Of All Trades
Regular
Joined
Jan 12, 2019
Messages
1,619
Reaction score
1,153
First Language
Polish
Primarily Uses
RMMV
There is an alternative option for summoning. Primitive, but it causes no problems.

You need Yanfly's Buff States Core plugin - Get it Here!

Then, you make this kind of state:
2021-08-10 19_51_48-Database.png

Code:

Code:
//Summon Actor to battle and set all params to full
<Custom Apply Effect>
$gameParty.addActor(8)
$gameActors.actor(8).recoverAll()
$gameActors.actor(8).startAnimation(16)
<Custom Apply Effect>

//When state wears off, remove summoned actor
<Custom Remove Effect>
$gameActors.actor(8).startAnimation(15)
$gameParty.removeActor(8)
<Custom Remove Effect>

(In place of num 8 you can type any ID of actors present in database, except already present in party)

Then you create either item or skill with following setting: (in this example it's item for summoning)
2021-08-10 19_54_46-Database.png

I don't know how will it behave with Yanfly's row formation or other plugins altering battle scene, but with clean project
summoned actor will be placed ALWAYS in last position of current team in battle.

If you try to summon actor that is already summoned or present in battle, you will just recover it's HP and MP.
Number 16 in startAnimation also you can change to some other animation in your project, as well as icon also. If you wish to not show animation of summoning, then replace 16 with 0 or delete that lines. You can also change everything else, but most important thing is that code under first image.
 
Joined
Jul 8, 2017
Messages
55
Reaction score
13
First Language
English
Primarily Uses
RMMV
There is an alternative option for summoning. Primitive, but it causes no problems.

You need Yanfly's Buff States Core plugin - Get it Here!

Then, you make this kind of state:
View attachment 198284

Code:

Code:
//Summon Actor to battle and set all params to full
<Custom Apply Effect>
$gameParty.addActor(8)
$gameActors.actor(8).recoverAll()
$gameActors.actor(8).startAnimation(16)
<Custom Apply Effect>

//When state wears off, remove summoned actor
<Custom Remove Effect>
$gameActors.actor(8).startAnimation(15)
$gameParty.removeActor(8)
<Custom Remove Effect>

(In place of num 8 you can type any ID of actors present in database, except already present in party)

Then you create either item or skill with following setting: (in this example it's item for summoning)
View attachment 198285

I don't know how will it behave with Yanfly's row formation or other plugins altering battle scene, but with clean project
summoned actor will be placed ALWAYS in last position of current team in battle.

If you try to summon actor that is already summoned or present in battle, you will just recover it's HP and MP.
Number 16 in startAnimation also you can change to some other animation in your project, as well as icon also. If you wish to not show animation of summoning, then replace 16 with 0 or delete that lines. You can also change everything else, but most important thing is that code under first image.
Does it save levels and experience to the summoned actor? And is there a way to set how many turns the actor is summoned? And is there a way to limit the amount of summons allowed on the field at once?
 
Last edited:

DrBuni

Regular
Regular
Joined
Dec 27, 2020
Messages
234
Reaction score
142
First Language
.
Primarily Uses
RMMV
I swapped SRD's Summon plugin for LadyBaskerville's, which seems to work a little better. It was designed to summon creatures that replace the party, but someone in the plugin thread suggested an edit that makes so the party doesn't go away when summoning.
 

Soulrender

Jack Of All Trades
Regular
Joined
Jan 12, 2019
Messages
1,619
Reaction score
1,153
First Language
Polish
Primarily Uses
RMMV
Does it save levels and experience to the summoned actor?
- I don't know, I never checked it, but I think it does.
- It depends how you setup state, if it is like shown on image then not, because state will be removed at end of battle, and when this state is removed from player, summoned units will vanish, so they won't recieve exp. But if you uncheck Remove At Battle End option then yes, they will recieve exp, but also will remain in party after game returns to regular map.

(...)is there a way to set how many turns the actor is summoned?
- Yes, just set duration of turns in state
2021-08-10 20_58_34-Unsummon Actor causes ... _error_ _ RPG Maker Forums – Brave.png

And is there a way to limit the amount of summons allowed on the field at once?
- Only one actor can be summoned per specific ID, so use example from empty MV project:
When in battle are present: Harold (ID: 1), Therese (ID: 2), Marsha (ID: 3) and Lucius (ID: 4) then you can't summon their clones using their original ID's, you need to add more actors to database, however you can do as much summonings as you desire and database allows it since limit of actors in Database is 1000, but you must fill database with actors having unique ID's and to make that (un)limited summoning, we must slightly change code in notetag field. Basicly you need to store in game Variable either fixed number of actor you wish to summon or you can do it with loop. I give you untested example, but I hope you get the idea.
Code:
<custom apply effect>
var x = 10; //first actor from DB to summon, he has ID: 10
var y = 15; //last actor to summon, he has ID: 15

for (var i = x; i <= y; i++){
    $gameParty.addActor(i);
    $gameActors.actor(i).recoverAll();
    $gameActors.actor(i).startAnimation(animId);
}
</custom apply effect>

<custom remove effect>
var x = 10; //first actor from DB to unsummon, he has ID: 10
var y = 15; //last actor to unsummon, he has ID: 15

for (var i = x; i <= y; i++){
    $gameParty.removeActor(i);
    $gameActors.actor(i).startAnimation(animId);
}
</custom remove effect>

The code above should summon and unsummon your actors from database with ID's between 10 and 15
from my database it would be them:
2021-08-10 21_11_00-Database.png
 
Last edited:

Rugman

Regular
Regular
Joined
Jun 11, 2020
Messages
302
Reaction score
89
First Language
English
Primarily Uses
RMMV
Does it save levels and experience to the summoned actor? And is there a way to set how many turns the actor is summoned? And is there a way to limit the amount of summons allowed on the field at once?
It can save levels if you choose. If you don’t want it to gain levels just set the actors exp gain to 0. The number of turns it is summoned is how long the state is in effect.

edit- ninjaed
 
Joined
Jul 8, 2017
Messages
55
Reaction score
13
First Language
English
Primarily Uses
RMMV
Does it save levels and experience to the summoned actor?
- I don't know, I never checked it, but I think it does.
- It depends how you setup state, if it is like shown on image then not, because state will be removed at end of battle, and when this state is removed from player, summoned units will vanish, so they won't recieve exp. But if you uncheck Remove At Battle End option then yes, they will recieve exp, but also will remain in party after game returns to regular map.

(...)is there a way to set how many turns the actor is summoned?
- Yes, just set duration of turns in state
View attachment 198290

And is there a way to limit the amount of summons allowed on the field at once?
- Only one actor can be summoned per specific ID, so use example from empty MV project:
When in battle are present: Harold (ID: 1), Therese (ID: 2), Marsha (ID: 3) and Lucius (ID: 4) then you can't summon their clones using their original ID's, you need to add more actors to database, however you can do as much summonings as you desire and database allows it since limit of actors in Database is 1000, but you must fill database with actors having unique ID's and to make that (un)limited summoning, we must slightly change code in notetag field. Basicly you need to store in game Variable either fixed number of actor you wish to summon or you can do it with loop. I give you untested example, but I hope you get the idea.
Code:
<custom apply effect>
var x = 10; //first actor from DB to summon, he has ID: 10
var y = 15; //last actor to summon, he has ID: 15

for (var i = x; i <= y; i++){
    $gameParty.addActor(i);
    $gameActors.actor(i).recoverAll();
    $gameActors.actor(i).startAnimation(animId);
}
</custom apply effect>

<custom remove effect>
var x = 10; //first actor from DB to unsummon, he has ID: 10
var y = 15; //last actor to unsummon, he has ID: 15

for (var i = x; i <= y; i++){
    $gameParty.removeActor(i);
    $gameActors.actor(i).startAnimation(animId);
}
</custom remove effect>

The code above should summon and unsummon your actors from database with ID's between 10 and 15
from my database it would be them:
View attachment 198292
I actually don't understand the 3rd answer
I want a summoning character but I don't want them to be able to flood the field with summons, how would I go about setting a limit on that?
 

Soulrender

Jack Of All Trades
Regular
Joined
Jan 12, 2019
Messages
1,619
Reaction score
1,153
First Language
Polish
Primarily Uses
RMMV
I already told that only one actor per unique ID can be summoned:
In other words, you cannot summon actor that is already in field and/or party
See this image:
2021-08-10 21_31_39-Spellzone 2.3.jpg

In battlefield are present default actors with ID's following 1,2,3,4. Therefore those actors cannot be summoned, because they already in field.

Now. I used that state to summon actor from database with ID: 5
yyy.jpg

Summoning was successful because she wasn't in the team before. Now as long she remains in battle (3 turns, she cannot be summoned again, after when she dissapear she can be summoned again. Hold on. I record a video)

Watch:


If you try to summon her again you will extend her existence and recover her HP and MP, but eventually she dissapear and you can summon her again.

(Of course those things can be adjusted in code)
 
Joined
Jul 8, 2017
Messages
55
Reaction score
13
First Language
English
Primarily Uses
RMMV
I already told that only one actor per unique ID can be summoned:
In other words, you cannot summon actor that is already in field and/or party
See this image:
View attachment 198293

In battlefield are present default actors with ID's following 1,2,3,4. Therefore those actors cannot be summoned, because they already in field.

Now. I used that state to summon actor from database with ID: 5
View attachment 198294

Summoning was successful because she wasn't in the team before. Now as long she remains in battle (3 turns, she cannot be summoned again, after when she dissapear she can be summoned again. Hold on. I record a video)

Watch:


If you try to summon her again you will extend her existence and recover her HP and MP, but eventually she dissapear and you can summon her again.

(Of course those things can be adjusted in code)

Yeah I get that, I just meant if there were multiple different monsters they could summon, if there was a way to say they could only summon like 4 at a time
 

Soulrender

Jack Of All Trades
Regular
Joined
Jan 12, 2019
Messages
1,619
Reaction score
1,153
First Language
Polish
Primarily Uses
RMMV
Oh. I see... Then of course you can limit that.

if ($gameParty.members().length < yourDeisredLimit){
//process code summoning code
}

Please note if you make that skill/item for enemy to use, then actors still be summoned for player.
For enemies is quite different approach and only what I know what can do it is this
 

ZCSully

Regular
Regular
Joined
Nov 28, 2021
Messages
147
Reaction score
47
First Language
English
Primarily Uses
RMMV
On SRD Summon Core

I went to the code on lines 836 and 838
Code:
Sprite_Summon.prototype.setBattler = function(battler) {
    Sprite_Battler.prototype.setBattler.call(this, battler);
    const changed = (battler !== this._actor);
    if (changed) {
        this._actor = battler;
        if (battler) {
            this.setActorHome(battler.index());
        }
        this.startEntryMotion();
        this._stateSprite.setup(battler);
        if(this._actor) {
            this._exitAnimation = this._actor.exitAnimation();  
        } else {
            this.setupExitAnimation();                                       
        }
    }
};


I replaced these 2

this._exitAnimation = this._actor.exitAnimation();

this.setupExitAnimation();


with this

this.opacity = 0;

Code:
Sprite_Summon.prototype.setBattler = function(battler) {
    Sprite_Battler.prototype.setBattler.call(this, battler);
    const changed = (battler !== this._actor);
    if (changed) {
        this._actor = battler;
        if (battler) {
            this.setActorHome(battler.index());
        }
        this.startEntryMotion();
        this._stateSprite.setup(battler);
        if(this._actor) {
            this.opacity = 0;
        } else {
            this.opacity = 0;
        }
    }
};

The battler dissapears without animation and it seems to work, i'm going to test further!


EDIT: There are so many incompatibilities with this plugin and YEP that it just throws more errors, I am now getting one about damage pop ups, but the other one is gone!

If anyone knows of any good summon plugins other then SRD that would be great! I just want one that simply summons an actor for a set amount of turns and does NOT screw up the party order, if I have a party of over 4 and 4 active battlers and summon a new actor, it will just summon the 5th person in my party instead of the summoned creature sometimes?
 
Last edited:

Latest Threads

Latest Posts

Latest Profile Posts

I already have the idea for my next plugin... :D

A spoiler: It will have to do with the Switches and time.

Let's see if you can guess what it is?
Anybody else do this thing where you go like, "Oooh, so-and-so wud be such a good name for a game!" And then you write it down. And then yo games-to-be-made folder has like, 89 entries wid nothin' but a name?

Just me? :kaoswt:
We've been tricked, we've been backstabbed and we've been, quite possibly, bamboozled.

1695643923498.png

Finally figured out the source of my problems - WindowBase's contentsWidth() doesn't actually return the width of its contents :kaoswt2:
Lies of P. 5/10. It's like Dark Souls if you removed everything great about Dark Souls. It makes me want to replay Dark Souls.
poor Edward has some kind of affliction

ewd.png

Forum statistics

Threads
134,790
Messages
1,250,643
Members
177,578
Latest member
ddyxw
Top