Thank you for your reply !
I will try it later.
What about the ally target skills problem I found ?
I tested it and :
-> When player use a skill that target an ally (healing / buff stats etc) it works
-> When an enemy use the same skill on another ennemy, the game launch the battle but nothing happens (no healing / no buff etc)
-> Even weirder, when an ennemy use thoses skill on itself, it works.
It only happens when I use the SRPG Gear core MV V.1.21 Q (and later updates).
Also, the Agi attack no cost option in the plugin parameters don't work for me. Ally and ennemies consume MP on the second hit.
Is there a note tage or something to add on skills ?
When I used Shoukang's AgiAttackControl plugin (to replace the agi ratio by the agi difference) it worked. Since the SRPG_Core has the option to choose between ratio and I turns off the Shoukang plugin it don't works at all.
MV - SRPG Engine MV - Plugins for creating Tactical Battle System
● ARCHIVED · READ-ONLY
-
-
Hey folks, been ABSOULTELY LOVING this SRPG plugin. Ever since this has been introduced, I have been on this for weeks and just having a hell of a time making an SRPG at long last. And nearly everything I want is here, there is just ONE tiny thing I'm trying to do.
Being able to change a characters commands based on equipment you have. Is there any possible way to do that? If there is, is there an existing plugin that can do that? -
What do you mean by this ?Being able to change a characters commands based on equipment you have. Is there any possible way to do that? If there is, is there an existing plugin that can do that?
-
Like changing the Actor Command List or even just the Actor Original Command ID. (and reaction skill) based on what weapon or armor you have equipped. And each character has a different animation, as shown in the video link here. (I'm using Yanfly's animation plugins.)
I'm using RPG Maker MV. (Probably helps narrow that down, haha.)
-
If I remember you can use the reaction notetag in weapon and armor (and there is a specific priorities) to change the reaction skill.
For the command part I don't know :/
I think original command can only apply in actor or class notetag. -
is it possible to have area of effect skills to be altered by line of sight? so that the srpgAreaRange will be affected by line of sight aswell?
i got it to work to an extent for srpg core 1.34+Q , i used the logic for Los checks from range control and modified them for aoe then had the show area and redraw area function evaluate the visible tiles to the blocked tiles than modified the necessary functions that effect targets of aoe skills and the trigger action function to only trigger on target units in visible tiles, there was a substantial drop in game performance initially but was able to fix it to run smoothly (Precomputing _losAoeTable,Optimized LoS Checks,Batch Processing and Caching and Selective Rendering) i use ai to write my code so cant share it here but happy to send it to any one who wants it -
Yes, i think it eas shoukangs. You get custom command for each actorHey folks, been ABSOULTELY LOVING this SRPG plugin. Ever since this has been introduced, I have been on this for weeks and just having a hell of a time making an SRPG at long last. And nearly everything I want is here, there is just ONE tiny thing I'm trying to do.
Being able to change a characters commands based on equipment you have. Is there any possible way to do that? If there is, is there an existing plugin that can do that? -
Both Shoukang's Action Order plugins don't seem to work with States that has "Attack Anyone" or "Attack Ally"- their turn is just skipped entirely :(
-
I will share the code, but i wiil not customize alignment to your needs. Credits to ariake_takumi, boomy, and gsc
Here's the edited draw contents for Window_SrpgPrediction
window srpg predictionJavaScript:// 内容を描画する Window_SrpgPrediction.prototype.drawContents = function() { this.opacity = 0; this.resetFontSettings(); var windowWidth = this.windowWidth(); //adjust height var lineHeight = this.lineHeight(); var padding = 24; var user = this._actionArray[1]; var target = this._targetArray[1]; // add background image 816 x 624 px located in system folder this._background = new Sprite(ImageManager.loadSystem('prediction')); this.addChildAt(this._background, 1); this._background.anchor.x = 0.5; this._background.anchor.y = 0.5; this._background.x = Graphics.boxWidth / 2; this._background.y = -86; this._background.z = 1; // draw user bust (right side) 300 x 300 px located in system folder this._bust = new Sprite(ImageManager.loadSystem(user.name())); this._bust.scale.x = -1; this.addChildAt(this._bust, 1); this._bust.anchor.x = 0.5; this._bust.anchor.y = 1; this._bust.x = Graphics.boxWidth * (10 / 12); this._bust.y = Graphics.boxHeight - 624; // draw target bust (left side) 300 x 300 px located in system folder if(!target.isActor()) { var loadBust = target.name(); this._bust2 = new Sprite(ImageManager.loadSystem(loadBust)); this._bust2.visible = true; } else { this._bust2 = new Sprite(ImageManager.loadSystem(target.name())); if (user === target) { this._bust2.visible = false;} this._bust2.scale.x = 1; } this.addChildAt(this._bust2, 1); this._bust2.anchor.x = 0.5; this._bust2.anchor.y = 1; this._bust2.x = Graphics.boxWidth * (2 / 12); this._bust2.y = Graphics.boxHeight - 624; // attacker var action = user.currentAction(); var damage = action.srpgPredictionDamage(target); var hit = action.itemHit(target); var eva = action.itemEva(target); var cri = action.itemCri(user); var xx = 96 ; this.drawText('Action', orderX - 8, -8, iconBoxWidth * 2, 'center'); // draw name and action name this.drawText(user.name(), windowWidth / 2 + 32, lineHeight * 0 - 4, windowWidth / 2, 'center'); this.drawSrpgBattleActionName(user, action, windowWidth / 2 + padding * 2 + xx, lineHeight * 1 - 8, true); //this.drawSrpgBattleDistance(user, action, windowWidth / 2 + 172 + padding * 2, lineHeight * 3); this.contents.fontSize = 20; // draw damage hit crit this.drawSrpgBattleDamage(damage, windowWidth / 2 + padding + 100 + xx, lineHeight * 3 + 4); this.drawSrpgBattleHit(hit, eva, windowWidth / 2 + padding + 100 + xx, lineHeight * 4 - 6); this.drawSrpgBattleCri(cri, windowWidth / 2 + padding + 100 + xx, lineHeight * 5 - 18); // draw HP icon this.drawIcon(13, windowWidth / 2 + 16 + 32 + xx, lineHeight * 2 + 2); this.contents.fontSize = 40; this.drawText(user.hp, windowWidth / 2 + 16 + 64 + xx, lineHeight * 2); this.contents.fontSize = 16; // check if double action is true and action used is normal attack if (_srpgUseAgiAttackPlus == 'true' && target.agi > user.agi && user.attackSkillId() === action.item().id) { var nowHp = user.hp - (2 * target.currentAction().srpgPredictionDamage(user)); } else {var nowHp = user.hp - target.currentAction().srpgPredictionDamage(user);} // limit new HP to 0 and maxp HP if (nowHp > user.mhp) { nowHp = user.mhp; } else if (nowHp < 0) { nowHp = 0; } var width = this.textWidth('00000'); this.drawText(nowHp, windowWidth / 2 + 160 + width + 16 + xx, lineHeight * 2 + 12); this.resetFontSettings(); // draw HP gauge var rate = nowHp / user.mhp; this.drawGauge(windowWidth / 2 + 16 + 32 + xx, lineHeight * 2 + 12, windowWidth / 3 - 48, rate, this.hpGaugeColor1(), this.hpGaugeColor2()); // target var reaction = target.currentAction(); // If the skill cannot be used or the attacker is unable to respond if (reaction && (!target.canUse(reaction.item()) || user.currentAction().item().meta.srpgUncounterable)) { reaction = null; } if (!reaction || user === target) { this.drawSrpgBattleActionName(target, reaction, padding, lineHeight * 0, false); } else { var damage = reaction.srpgPredictionDamage(user); var hit = reaction.itemHit(user); var eva = reaction.itemEva(user); var cri = reaction.itemCri(target); // draw name and action name this.drawText(target.name(),-64, lineHeight * 0 - 4,windowWidth / 2, 'center'); this.drawSrpgBattleActionName(target, reaction, padding + 32, lineHeight * 1 - 8, true); //this.drawSrpgBattleDistance(target, reaction, 172 + padding, lineHeight * 1); // draw damage hit crit this.contents.fontSize = 20; this.drawSrpgBattleDamage(damage, padding + 100, lineHeight * 3 + 4); this.drawSrpgBattleHit(hit, eva, padding + 100, lineHeight * 4 - 6); this.drawSrpgBattleCri(cri, padding + 100, lineHeight * 5 - 18); // draw HP icon this.drawIcon(13, padding + 36, lineHeight * 2 + 2); this.contents.fontSize = 40; this.drawText(target.hp, padding + 16 + 64, lineHeight * 2); this.contents.fontSize = 16; // check if double action is true and action used is normal attack if (_srpgUseAgiAttackPlus == 'true' && user.agi > target.agi && target.attackSkillId() === action.item().id) { var nowHp = target.hp - (2 * user.currentAction().srpgPredictionDamage(target)); } else {var nowHp = target.hp - user.currentAction().srpgPredictionDamage(target);} // limit new HP to 0 and maxp HP if (nowHp > target.mhp) { nowHp = target.mhp; } else if (nowHp < 0) { nowHp = 0; } var width = this.textWidth('00000'); this.drawText( nowHp, padding + 150 + width + 16, lineHeight * 2 + 12); this.resetFontSettings(); // draw HP Gauage var rate = nowHp / target.mhp; this.drawGauge( 28 + 32 , lineHeight * 2 + 12, windowWidth / 3 - 48, rate, this.hpGaugeColor1(), this.hpGaugeColor2()); } if (_srpgPredictionWindowMode === 2) return; // action order BattleManager.makeActionOrders(); this.contents.fontSize = 18; var order = BattleManager.actionBattlers(); var doubleActioncheck = []; var doubleActionRate = 0; var iconBoxWidth = Window_Base._iconWidth + 4; var orderX = this.windowWidth() / 2 - this.standardPadding() - iconBoxWidth +10; var orderY = lineHeight - 2; var line = 0 this.drawText('Action', orderX - 8, -8, iconBoxWidth * 2, 'center'); for (var i = 0; i < order.length; i++) { battler = order[i]; // user if (user === battler && action && action.item()) { // first action if (doubleActioncheck.indexOf(battler) < 0) { this.drawSrpgBattleOrders(battler, action.item(), orderX, 17 + orderY * line); // double action } else if (_srpgUseAgiAttackPlus === 'true' && doubleActioncheck.indexOf(battler) >= 0) { actionRate = this.setDoubleActionRate(user, target); if (actionRate > 0) { this.drawSrpgBattleOrders(battler, action.item(), orderX, 17 + orderY * line); this.drawSrpgActionRate(actionRate, orderX + iconBoxWidth, 17 + orderY * line); } } // next doubleActioncheck.push(battler); line++; // target } else if (target === battler && reaction && reaction.item()) { // 初回行動時 if (doubleActioncheck.indexOf(battler) < 0) { this.drawSrpgBattleOrders(battler, reaction.item(), orderX, 17 + orderY * line); // 応戦が反撃率に応じる場合 if (_srpgBattleReaction === 2 && target.cnt > 0) { this.drawSrpgActionRate(target.cnt * 100, orderX, 17 + orderY * line); } // double action } else if (_srpgUseAgiAttackPlus === 'true' && doubleActioncheck.indexOf(battler) >= 0) { actionRate = this.setDoubleActionRate(target, user); if (_srpgBattleReaction === 2 && target.cnt > 0) actionRate = Math.floor(actionRate * target.cnt); if (actionRate > 0) { this.drawSrpgBattleOrders(battler, reaction.item(), orderX, 17 + orderY * line); this.drawSrpgActionRate(actionRate, orderX, 17 + orderY * line); } } // next doubleActioncheck.push(battler); line++; } } };
action orderJavaScript:// draw action order Window_SrpgPrediction.prototype.drawSrpgBattleOrders = function(battler, item, x, y) { // for nomal attack, show weapon icon var arrowicon1 = 92; // actor arrow head var arrowicon2 = 93; // actor arrow tail var arrowicon3 = 90; // actor arrow tail var arrowicon4 = 91; // actor arrow head if (DataManager.isSkill(item) && item.id === battler.attackSkillId() && !battler.hasNoWeapons()) { if (battler.isActor()) { var item = battler.weapons()[0]; this.drawIcon(arrowicon1, x-32, y + 2); this.drawIcon(arrowicon2, x, y + 2); this.drawIcon(item.iconIndex, x + 32, y + 2); } else { var item = $dataWeapons[Number(battler.enemy().meta.srpgWeapon)]; this.drawIcon(item.iconIndex, x, y + 2); this.drawIcon(arrowicon3, x + 32, y + 2); this.drawIcon(arrowicon4, x + 64, y + 2); } // else draw skill icon } else { if (battler.isActor()) { this.drawIcon(item.iconIndex, x + 32 , y + 2); } else { this.drawIcon(item.iconIndex, x , y + 2); } } };
attack effectiveJavaScript:// 使用する攻撃名の描画 Window_SrpgPrediction.prototype.drawSrpgBattleActionName = function(battler, action, x, y, flag) { if (action && flag === true) { var skill = action.item(); if (skill) { var costWidth = this.costWidth(); this.changePaintOpacity(this.isEnabled(battler, skill)); // 通常攻撃の場合、装備している武器名を表示する if (DataManager.isSkill(skill) && skill.id === battler.attackSkillId() && !battler.hasNoWeapons()) { if (battler.isActor()) { var item = battler.weapons()[0]; } else { var item = $dataWeapons[Number(battler.enemy().meta.srpgWeapon)]; } this.drawItemName(item, x, y, 280 - costWidth); // 通常攻撃以外のスキル名はそのまま表示する } else { this.drawItemName(skill, x, y, 280 - costWidth); } this.drawSkillCost(battler, skill, x, y, 288); this.changePaintOpacity(1); // is attack effective if (battler.isActor()) { if ($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].currentAction().item().damage.elementId) > 1) { this.drawIcon(94, x + 6, y - 6); // effective icon ID } else if ($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].currentAction().item().damage.elementId) < 1) { this.drawIcon(95, x + 6, y + 6); // not effective icon ID } } else if (!battler.isActor()) { if ($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].currentAction().item().damage.elementId) > 1) { this.drawIcon(94, x + 6, y + 6); // effective icon ID } else if ($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].currentAction().item().damage.elementId) < 1) { this.drawIcon(95, x + 6, y + 6); // not effective icon ID } } } else { this.drawText('------------', x + 52, y, 96, 'right'); } } else { this.drawText('------------', x + 52, y, 96, 'right'); } };
dmg hit criJavaScript:// battle damage Window_SrpgPrediction.prototype.drawSrpgBattleDamage = function(damage, x, y) { this.changeTextColor(this.systemColor()); var width = this.textWidth('00000'); if (damage >= 0) { this.drawText(_textSrpgDamage, x, y, 164); this.resetTextColor(); this.drawText(damage, x + 90, y, width, 'right'); } else { this.drawText(_textSrpgHealing, x, y, 164); this.resetTextColor(); this.drawText(damage * -1, x + 90, y, width, 'right'); } }; // battle cri Window_SrpgPrediction.prototype.drawSrpgBattleCri = function(cri, x, y) { var val = cri; var width = this.textWidth('000%'); this.changeTextColor(this.systemColor()); this.drawText("Cri", x, y, 98); this.resetTextColor(); this.drawText(Math.floor(val * 100) + '%', x + 110, y, width, 'right'); }; // battle hit Window_SrpgPrediction.prototype.drawSrpgBattleHit = function(hit, eva, x, y) { var val = Math.floor((hit.clamp(0, 1.0) * (1.0 - eva).clamp(0, 1.0)) * 100); // 命中・回避を同時に処理する var width = this.textWidth('000%'); this.changeTextColor(this.systemColor()); this.drawText(TextManager.param(8), x, y, 98); this.resetTextColor(); this.drawText(val.clamp(0, 100) + '%', x + 110, y, width, 'right'); };
Sorry to quote you, but while searching, I found this as the most recent modification for the Window Prediction. If I understand correctly, it works with version 1.11Q but not with the newer ones (I’m using 1.32Q).
Does anyone happen to know if there’s a plugin to more easily manage the Window Prediction in the newer versions?
At the moment, I’m slowly modifying the parameters myself in SRPG_core.js, but I was wondering if someone else might have already done it to save some time and effort. :) -
what do you mean it doesnt work? you just need to add the variables that appeared. i checked twitter its 1.23Q. my modification is hard coded and not a patch. examine the code or shoukang and gsc instruction, so you can edit to your needs. It's been a long while since i touched this plugin since i was still on 1.11Q and now its 1.23Q
-
It might sound ridiculous, but I thought SRPG Gear MV and SRPG Engine MV were the exact same thing... and now a whole new world opens up for me to understand. :eek:
what do you mean it doesnt work? you just need to add the variables that appeared. i checked twitter its 1.23Q. my modification is hard coded and not a patch. examine the code or shoukang and gsc instruction, so you can edit to your needs. It's been a long while since i touched this plugin since i was still on 1.11Q and now its 1.23Q -
Hey I have a question.
I know it must use Shoukang Advanced-interactuion plugin to to that, but I don't know how to set conditions. I will explain.
I want to include chest / door events in the game. What I want to :
-> If the character has a certain skill, it will unlock the door / chest
-> If the character don't have that skill, the game will check if a key is in the inventory. If it is, it will unlock the door / chest and consume a key, if there is no key, the chest / door can't be unlock
So I think it's something like (conditional call) :
if active batler has the skill "unlock"
-> unlock the door
else
if the item key is in the inventory
->item key -1
->unlock door
else
->nothing happens
I know how I can check if the item is in the inventory, but I don't know how to check if the actor has the skill (for the 1st condition). Whitch scrip call must be used to do that ? -
I'm not sure as I'm away from my PC at the moment and can't test it but might be $gameSystem.EventToUnit(eventID)[1].hasSkill(skillId);Hey I have a question.
I know it must use Shoukang Advanced-interactuion plugin to to that, but I don't know how to set conditions. I will explain.
I want to include chest / door events in the game. What I want to :
-> If the character has a certain skill, it will unlock the door / chest
-> If the character don't have that skill, the game will check if a key is in the inventory. If it is, it will unlock the door / chest and consume a key, if there is no key, the chest / door can't be unlock
So I think it's something like (conditional call) :
if active batler has the skill "unlock"
-> unlock the door
else
if the item key is in the inventory
->item key -1
->unlock door
else
->nothing happens
I know how I can check if the item is in the inventory, but I don't know how to check if the actor has the skill (for the 1st condition). Whitch scrip call must be used to do that ? -
Hello, and thank you everyone for always being so helpful and patient!
I'm using SRPG_EventUnitGraves, and I'd like to know the simplest way to interact with a grave, so that the actor is revived at the grave's location.
I'm trying this:
var actorID = $gameVariables.value(10);
var actorevent = $gameSystem.ActorToEvent(actorID);
this.unitRaise(actorevent);
$gameMap.event(actorevent).setPosition($gamePlayer.posX(),$gamePlayer.posY());
$gameMap.event(actorevent).requestAnimation(49);
But occasionally, after revived, the actor's sprite doesn't appear and isn't selectable, and I get this error in the console:
YEP_TargetCore.js:1058 SCRIPT CALL ERROR
YEP_TargetCore.js:1059 var actorID = $gameVariables.value(10);var actorevent = $gameSystem.ActorToEvent(actorID);this.unitRaise(actorevent);$gameMap.event(actorevent).setPosition($gamePlayer.posX(),$gamePlayer.posY());$gameMap.event(actorevent).requestAnimation(49);
YEP_TargetCore.js:1060 RangeError: Maximum call stack size exceeded at rpg_objects.js:2375 at Array.reduce (<anonymous>) at Game_Actor.Game_BattlerBase.allTraits (rpg_objects.js:2375) at Game_Actor.Game_BattlerBase.traits (rpg_objects.js:2381) at Game_Actor.Game_BattlerBase.traitsSet (rpg_objects.js:2411) at Game_Actor.Game_BattlerBase.addedSkills (rpg_objects.js:2515) at Game_Actor.skills (rpg_objects.js:3793) at Game_Actor.priorityTag (SRPG_RangeControl.js:319) at Game_Event.Game_CharacterBase.passFriends (SRPG_RangeControl.js:653) at Game_Event.Game_CharacterBase.isSrpgCollidedWithEvents (SRPG_RangeControl.js:614)
This error happens if I try to revive the latest killed actor (actor4). If I revive the first killed (actor1) it works correctly, and actor 1 is revived in the same spot as where his grave was.
This error is not consistent though. A few turns later, both actor1 and actor4 were killed again, and I saved the game and revived actor1 first. It worked. Then I reloaded and revived actor4 first. It also worked correctly.
But I was able to repeat the error. I restarted the entire battle, actor4 died first, and actor3 died later. When I revived actor3 first, I got the same console error.
I also tried this script that someone posted here years ago:
for (var i = 1; i <= $gameMap.events().length; i++) {
var battleunit = $gameSystem.EventToUnit();
var eventunit = $gameMap.event();
if (battleunit && eventunit && (battleunit[0] === 'actor') && (battleunit[1].isDead())) {
this.unitRaise(i);
battleunit[1].gainHp(Math.floor(battleunit[1].mhp*0.15));battleunit[1].startDamagePopup();
break;
}
};
$gameMap.event(i).setPosition($gamePlayer.posX(),$gamePlayer.posY());
$gameMap.event(i).requestAnimation(267);
But if there are two graves next to the unit (actor1 and actor4) and the unit interacts with grave4 to revive actor4, what happens instead is actor1 is revived and teleported to the location of grave4.
I think errors for both script methods only happen if I don't specify which event has which actor in the battlemap. I have three events with the notetag:
<type:actor><id:0>
I think if instead I give specific actor ids for each event, I can't repeat the error. But I'm not sure.
<type:actor><id:1>
<type:actor><id:3>
<type:actor><id:4>
So just to summarize, I would either like what script or method you all use to revive an actor at the location of their grave, or figure out what's wrong with my script.
Again, thank you everyone! I hope I was thorough and didn't skip reading something. -
I tested it (with event ID = 0 because the thief unit don't has a fix event id, it can be any event unit with the notetage <type:actor><id:0>) and it don't work at all :/.I'm not sure as I'm away from my PC at the moment and can't test it but might be $gameSystem.EventToUnit(eventID)[1].hasSkill(skillId);
I can possibly cheat using the "distance between event" script call but the skill would be no-more use at all.
Maybe something like "check distance between the thief / door // check if the thief has the skill equipped" but i think it's a too difficult code for something very simple.
EDIT : it works with the "actor/event distance" method. Many code lines for nothing I guess, but it seems to work. -
I tested it (with event ID = 0 because the thief unit don't has a fix event id, it can be any event unit with the notetage <type:actor><id:0>) and it don't work at all :/.
I can possibly cheat using the "distance between event" script call but the skill would be no-more use at all.
Maybe something like "check distance between the thief / door // check if the thief has the skill equipped" but i think it's a too difficult code for something very simple.
EDIT : it works with the "actor/event distance" method. Many code lines for nothing I guess, but it seems to work.
JavaScript:var eventID = $gameTemp.activeEvent().eventId(); $gameSystem.EventToUnit(eventID)[1].hasSkill(SkillId);
you can use this to get the event id of an active event that hasnt been specified or thats been set up with battle prepare, i tested it on a basic set up in srpg gear and seems to work just replace skillId with the lock pick skill -
Been messing around with the UIs as of late and I think I got a format that looks good for the battles. I'm still working on the implementation, but if people are interested, I will share the code I wrote for this. It does have some specific requirements to use, though. Not developed to be plug and play.
Also, does anyone know how to get the x and y values of the active and target events? I'm working on a pretty bare bones elevation implementation but for the life of me I can't seem to figure out how to grab them. Answer's probably incredibly simple and I'm just dumb! -
this works for active events X and Y position in the console logsBeen messing around with the UIs as of late and I think I got a format that looks good for the battles. I'm still working on the implementation, but if people are interested, I will share the code I wrote for this. It does have some specific requirements to use, though. Not developed to be plug and play.
View attachment 328895
Also, does anyone know how to get the x and y values of the active and target events? I'm working on a pretty bare bones elevation implementation but for the life of me I can't seem to figure out how to grab them. Answer's probably incredibly simple and I'm just dumb!
JavaScript:var activeEvent = $gameTemp.activeEvent(); var activeUnitId = activeEvent.eventId(); var activeX = $gameMap.event(activeUnitId).x; var activeY = $gameMap.event(activeUnitId).y; var activeXandYcords = [activeX, activeY];//just for testing activeXandYcords;//for testing
and the same works for target events
JavaScript:hope it helpsvar targetEvent = $gameTemp.targetEvent(); var targetUnitId = targetEvent.eventId(); var targetX = $gameMap.event(targetUnitId).x; var targetY = $gameMap.event(targetUnitId).y; var targetXandYcords = [targetX, targetY];//just for testing targetXandYcords;//for testing -
Thanks for the script call !JavaScript:
var eventID = $gameTemp.activeEvent().eventId(); $gameSystem.EventToUnit(eventID)[1].hasSkill(SkillId);
you can use this to get the event id of an active event that hasnt been specified or thats been set up with battle prepare, i tested it on a basic set up in srpg gear and seems to work just replace skillId with the lock pick skill
I have a question. Where must I put ?
May I put it in a normal "script call" before set the conditional or May I put that in the "script call" during the conditionnal ? (English is not my first language I hope you could understand what I mean)
It's honnestly excellent and i'm really interrested !Been messing around with the UIs as of late and I think I got a format that looks good for the battles. I'm still working on the implementation, but if people are interested, I will share the code I wrote for this. It does have some specific requirements to use, though. Not developed to be plug and play.
View attachment 328895
Also, does anyone know how to get the x and y values of the active and target events? I'm working on a pretty bare bones elevation implementation but for the life of me I can't seem to figure out how to grab them. Answer's probably incredibly simple and I'm just dumb!
Do you think it's possible to had the MP under HP and the skill / weapon name above units name ?
I also saw you share your predictive windows battle screenshot a long ago. It's possible to share it too ? -
i put it in the conditional script check when i tested itThanks for the script call !
I have a question. Where must I put ?
May I put it in a normal "script call" before set the conditional or May I put that in the "script call" during the conditionnal ? (English is not my first language I hope you could understand what I mean)
It's honnestly excellent and i'm really interrested !
Do you think it's possible to had the MP under HP and the skill / weapon name above units name ?
I also saw you share your predictive windows battle screenshot a long ago. It's possible to share it too ?
on the 4th tab in the conditional branch i just entered it in the script section:thumbsup-right: