Need help underestanding a piece of script code.

KingHazeel

Veteran
Veteran
Joined
Jul 5, 2018
Messages
125
Reaction score
5
First Language
English
Primarily Uses
RMVXA
I'm using this script that allows you to change the size of an event, in my case, it's to change the sizes of giant characters so their size matches their sprite. This is the script:

https://forums.rpgmakerweb.com/index.php?threads/est-event-size-and-trigger.48891/

When I ran the script, I started noticing that, in my larger town map, I was starting to lag pretty badly, with significant FPS drop. I started experimenting with the scripts until I found a culprit, this script. Having no real knowledge of Ruby or scripting, all I could do was start commenting stuff out until I found what was causing the lag. It's this little piece right here:

class Game_Map
def events_xy(x, y)
@events.values.select {|event|
!event.exclude_trigger_check(x,y) &&
(event.pos?(x, y) || event.size_trigger_check(x,y) || event.extra_trigger_check(x,y))
}
end
def events_xy_nt(x, y)
@events.values.select {|event|
!event.through &&
!event.exclude_trigger_check(x,y) &&
(event.pos_nt?(x, y) ||
event.size_trigger_check(x,y) ||
event.extra_trigger_check(x,y))
}
end
end

When I removed it, the FPS drastically improved in my larger map and the size of my single giant test character is still what it should be. I haven't noticed any consequences to commenting this bit out, but it seems like a bad idea to just press forward full steam ahead without at least some idea of what effects this might have. Does anyone know what this segment is doing?
 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
Those are actually the lines that handle if events on position (x,y) would be triggered..

Theoretically, if you disabled it then the events with bigger size shouldn't be triggered by touch/action triggers unless you're facing/touching the original event tile because only the default check (the one inside the original Game_Map) will run. Basically, with it disabled, action/touch triggers shouldn't use the size defined by the script.
 

KingHazeel

Veteran
Veteran
Joined
Jul 5, 2018
Messages
125
Reaction score
5
First Language
English
Primarily Uses
RMVXA
Hmmm...well if I just use it for giants, then that shouldn't be an issue anyway but...I do wonder if there's another way to reduce lag. The last event size script I used had a similar problem too.
 

mlogan

Global Moderators
Global Mod
Joined
Mar 18, 2012
Messages
15,374
Reaction score
8,536
First Language
English
Primarily Uses
RMMV

I've moved this thread to Script Support. Please be sure to post your threads in the correct forum next time. Thank you.

 

Engr. Adiktuzmiko

Chemical Engineer, Game Developer, Using BlinkBoy'
Veteran
Joined
May 15, 2012
Messages
14,682
Reaction score
3,003
First Language
Tagalog
Primarily Uses
RMVXA
It causes lag because it increases the amount of checks done when updating events (which is done every frame btw). Looking at the script lines, it added 2 new checks to that function, which at least if were talking of simple math, tripled the amount of checks being done.

This is why the lag was gone when you removed the new checks added by the sceipt, it essentially lessened the checks being done.

This is also why its recommend to keep event amount per map to a mininum because every event present, even blank ones, adds to the number of events checked. You can try an anti-lag script and see if it will lessen the lag.

It would also be good if you can test it on other computers, especially older ones or at least have different configuration than yours, and see if it also lags in them.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,035
Messages
1,018,454
Members
137,821
Latest member
Capterson
Top