Yes direction fix would be a great addition. Also is there any plans for adding a flash enemy to the skill settings? Similar to what is currently available in the animations section where you can make the default enemy sprites flash.
Coincidentally, I've thrown together a really hacky target flash custom function. It's not the best way probably, but it seems to get the job done for now. Step 1 The following code goes into my personal master plugin JavaScript file that I use to override other plugins or write my custom functions. It goes at the bottom of all my plugins to ensure it will be the last to run. Code: Skill_Sequencer.prototype.targetFlash = function(action, targets) { if ( targets.length ) { // TODO: find more efficient way to make sprite blink targets[0].setOpacity(0); setTimeout( function(){ targets[0].setOpacity(0); } , 100 ); setTimeout( function(){ targets[0].setOpacity(255); } , 150 ); setTimeout( function(){ targets[0].setOpacity(0); } , 200 ); setTimeout( function(){ targets[0].setOpacity(255); }, 250 ); setTimeout( function(){ targets[0].setOpacity(0); } , 300 ); setTimeout( function(){ targets[0].setOpacity(255); } , 350 ); setTimeout( function(){ targets[0].setOpacity(0); } , 400 ); setTimeout( function(){ targets[0].setOpacity(255); } , 450 ); } } I used targets[0] temporarily to just target the first enemy in the array of possible enemies within attack range. To target all enemies in range, you can use a loop iterating on variable i, and replace targets[0] with targets[i ] Then I aliased the "startOnDamageTargetAction" function to add this extra switch case: Code: var _Skill_Sequencer_startOnDamageTargetAction = Skill_Sequencer.prototype.startOnDamageTargetAction; Skill_Sequencer.prototype.startOnDamageTargetAction = function(action, targets) { var cmd = action[0].toLowerCase(); if ( cmd === 'flash' ) { return this.targetFlash(action, targets); } _Skill_Sequencer_startOnDamageTargetAction.call(this, action, targets); }; Edited again to prevent action.shift() from happening twice. It seems if I use action[0] to reference the first action item but not remove it from the array, then action.shift() from the original plugin function can still run without error. Otherwise, action.shift() will return null, and toLowerCase() cannot be used on a null object, which throws an error. Oddly, the call() function at the end of this example runs even though there's a return statement above. Does anyone know why? Please let me know if there's a better way to go about this anyone. Thanks. Step 2 For the skill where you want this animation to happen, place somewhere between the <absOnDamage> note tag Code: target flash
@Arise what I was trying to get to is that you don't need to go to the Game_Interpreter, just call the function from the class. Seems like what you're doing in some cases is: Game_CharacterBase > Game_Interpreter > Game_CharacterBase > QPathfind There's no need for those 1st 2 steps since you can go from the Game_CharacterBase to QPathfind. So if 'this' returns the Game_CharacterBase, call the w.e. pathfind func u need from it, like 'this.chase(parameter)' and not create an interpreter to run a plugin command. If 'this' is the Game_Interpreter then use the .character(0) to grab the character and call it's pathfind func or run the plugincommand func and pass the args so it runs the qpathfind command @Shiko it worked fine for me. Make sure you set the x and y or a bindTo @melonkoi Atm no, you would need to create an addon. I have it this way so you can use those single frame enemies that are direction fixed but can still fire their skills in any direction @Xalezar You'll need to find a better event spawning plugin, one that clones an event off a different map preferably . @Suv It's intentional. That skill bar is more of a basic hud. It's not something I recommend anyone to actually use but to build off / make their own hud from. @Vetmora Not without creating an addon @Xalezar's post is pretty much how it'd be done, though you didn't use the alias which I suggest you do. Code: var _Skill_Sequencer_startOnDamageTargetAction = Skill_Sequencer.prototype.startOnDamageTargetAction; Skill_Sequencer.prototype.startOnDamageTargetAction = function(action, targets) { var cmd = action.shift().toLowerCase(); if (cmd === 'flash') { return this.targetFlash(action, targets); } _Skill_Sequencer_startOnDamageTargetAction.call(this, actions, targets); };
Hey Quxios, I have a question. How do you set up region events on QEvents? I know on QuasiEvents you only needed to set up the comment <region:x> after you set up an event but this doesn't seem to be the case with the new QEvents.
@Quxios: I did some testing and it looks like the pathfinding has some issues when it has to run in diagonal. Like running between some diagonal tunnel. If the tunnel is oriented from left to right or top down all looks fine with pathfinding, but if the tunnel is rotated 45 degrees (isometric actually) the pathfinding seems to have issues as the character starts walking, walks a bit, then stops for 1 second (probably to recalculate the pathfind) then walks again and so on.
@Xalezar @Quxios Thanks for the help guys, much appreciated. However not exactly sure where to put the code in the QABS file?
I have a question about your QMAP Editor - actually, a function request. I know a lot of people enjoy this editor because of the freeform tile-less ability to add items... BUT, what about a snap-to-grid idea? where a map object can be forced to start at a grid point? Just a thought, as I'm trying to create "super-Tiles of 10x10 as little mini-parallaxes and foregrounds and think this would be awesome to have.
Anyone know of a way of making specific events unable to move diagonally? I know that you can change the parameter to turn off diagonal movement altogether, but that doesn't really help here. Also, is there anyway of making specific events restricted to grid movement? Edit: Another question - is there a way of detecting player/event pixel position? For example, for standard grid-movement, player/event position can be acquired through Control Variables (Map X/Y of Event/Player). However, I can't seem to find a way to find the X and Y *pixel* coordinates of events and players, which can be troublesome for eventing.
There may be a problem with the collision detection for QMovement since last patch. It's suddenly possible to pass through some of the colliders I set up in MapEditor. I think it may be due to intersecting with other collision/interaction areas but I can't pinpoint the exact cause myself. I'd post a screenshot but all those red layers make it unreadable.
@Suv I have the same issue on one of my maps. They're both behind other QMap objects, but I have plenty of other maps where a QMap object behind another object still acts as expected. I'm not sure if this is related to the issue @Suv mentioned, but the last time I checked one of my maps had a bizarre spot where it acted like it had a collider in a spot where there wasn't one (no events, no QMap objects, and the collider image didn't have anything there either).
QMap 2.0.1 Fixed issue with Map objects meta not being created. Should fix all issues with the map objects notes being ignored Also forgot to mention here. But I'm slowly stopping support with my MV plugins. You can read more here. @HasdrubalBarca I left region events out of QEvents. Was going to readd but ended up forgetting. Not sure if I will add back in though @Arise It might depend on how wide that angled path is. Because it's still calculating by grid spaces, so if there's not enough room it can fail even though the character should fix ideally. Ex: if I made a character with a collider 48x48 and had a path that was 48 pixels tall but had that path offset a bit, the pathfind can fail. @Vetmora You can put it inside it's own file (open any txt, paste it in and set the ex as .js, or if you saved it as a .txt just rename it to .js) and load it to the plugin manager. Or paste it at the very bottom of QABS, though note you'd have to paste it every time there's an update @jayray It originally had grid snapping but it didn't work too well. I do plan on readding it though @Etori You'd have to make changes to the plugin to enable/disable options for specific events. To get pixel coordinates you can use the .px / .px values. So like: $gamePlayer.px @Suv Should be fixed in 2.0.1 @GameFire are you still able to find that spot / can it be reproduced?
Well, that's interesting. Looks like QUpdate isn't working for me anymore. So I'm having to go through the github repo and manually find all the plugins that I need to update. Will update my post once all the plugins are updated, since with just updating to QMap 2.0.1 my game is stuck on loading after selecting "new game". Edit: Okay, I think I updated them all. QUpdate still doesn't work, though. I can hit f9 on the title screen and it pulls up a window. The window's just empty. And still, selecting "new game" just leads to the game being stuck on loading.
Yes, I think is something fishy with qupdate under nwjs. It seems the ssl cert has some issues and as a result it refuse to load it. Failed to load resource: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH GET https://quxios.github.io/data/pluginsMin.json net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH QUpdate.js:111 QUpdate.getRepoPlugins QUpdate.js:243 (anonymous function) QUpdate.js:257 (anonymous function)
Didn't help unfortunately. I think my problem shows up only when an event overlaps a map object placed by your map editor.
Turned off QMap, now the game doesn't get stuck loading after selecting "new game". But turning QMap back on makes the game go back to being stuck.
Ive encountered a strange problem, my part members are frozen in place when I start a playtest, the only plugins I have installed for this test are Qplus, Qmovement and Qabs
I think I've read somewhere that the party members that follow the leader just don't work well with Qmovement (might have been other plugin though).
Also, with the latest version of the QMap Editor (4.0.0), it seems I'm no longer able to type a . directly into the anchor point boxes. I can type it into something else and paste it into the box, at least.