Hello, how to have a weapon behave like a "missile" even though its category isn't?
Case in point, I would like to include a knife that can be thrown whereas regular knives can't.
Therefore it has the tag <weaponRange:2>.
But I would also like to know if it's possible to add another tag so that when using this weapon, the battler doesn't move and only the animation of the weapon is played?
Hi, I assume you are testing on the 1.32Q demo. It has something to do with the Dynamic Motion plugin. The default attack skill has a note tag:
<D-Motion:near&foot&Wait/>, which will cause the battler to move close to the target and attack.
You can assign another attack skill Id to the weapon, which doesn't have this note tag.
You can refer to the setup of bow attack skill (Id 32) in the 1.32Q demo.
For more usage and samples of Dynamic action and dynamic animation, you can refer to the
documentation translated by Ryan, I'm not an expert on these.
Hello! I'm using SRPG_DirectionMod.js. However, when attacking from side and back, the correct damage and hit values are not displayed on the prediction window. Is this a specification? I would appreciate it if anyone could provide information.
By the way, in SRPG_TerrainEffect.js The correct value was displayed.
In the direction mod plugin:
Solution
1. replace the
Game_Action.prototype.evalDamageFormula function wih this one:
JavaScript: Game_Action.prototype.evalDamageFormula = function(target) {
var value = _Game_Action_evalDamageFormula.call(this, target);
if ($gameSystem.isSRPGMode() == true) {
if ($gameTemp.activeEvent() && $gameTemp.targetEvent()) {
if ($gameSystem.isSubBattlePhase() == 'battle_window') decideAttackdirection(); // Shoukang add this line
if (this.subject() == $gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1] &&
$gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[0] !=
$gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[0]) {
if ($gameTemp.getAttackDirection() == 'side') {
value *= side_dmg;
} else if ($gameTemp.getAttackDirection() == 'back') {
value *= back_dmg;
}
}
}
}
return value;
};
2. Add this poorly designed function(I would never write such fuction, it's a part of a function in direction mode plugin:
JavaScript: decideAttackdirection = function() {
var differenceX = $gameTemp.activeEvent().posX() - $gameTemp.targetEvent().posX();
var differenceY = $gameTemp.activeEvent().posY() - $gameTemp.targetEvent().posY();
if (Math.abs(differenceX) == Math.abs(differenceY)) {
if (differenceX < 0 && differenceY < 0) {
switch ($gameTemp.targetEvent().direction()) {
case 2:
case 8:
$gameTemp.activeEvent().setDirection(2);
break;
case 4:
case 6:
$gameTemp.activeEvent().setDirection(6);
break;
}
}
if (differenceX > 0 && differenceY < 0) {
switch ($gameTemp.targetEvent().direction()) {
case 2:
case 8:
$gameTemp.activeEvent().setDirection(2);
break;
case 4:
case 6:
$gameTemp.activeEvent().setDirection(4);
break;
}
}
if (differenceX < 0 && differenceY > 0) {
switch ($gameTemp.targetEvent().direction()) {
case 2:
case 8:
$gameTemp.activeEvent().setDirection(8);
break;
case 4:
case 6:
$gameTemp.activeEvent().setDirection(6);
break;
}
}
if (differenceX > 0 && differenceY > 0) {
switch ($gameTemp.targetEvent().direction()) {
case 2:
case 8:
$gameTemp.activeEvent().setDirection(8);
break;
case 4:
case 6:
$gameTemp.activeEvent().setDirection(4);
break;
}
}
} else {
if (Math.abs(differenceX) > Math.abs(differenceY)) {
if (differenceX < 0) {
$gameTemp.activeEvent().setDirection(6);
} else if (differenceX > 0) {
$gameTemp.activeEvent().setDirection(4);
}
} else {
if (differenceY < 0) {
$gameTemp.activeEvent().setDirection(2);
} else if (differenceY > 0) {
$gameTemp.activeEvent().setDirection(8);
}
}
}
var direction = 'side';
switch ($gameTemp.targetEvent().direction()) {
case 2:
switch ($gameTemp.activeEvent().direction()) {
case 2:
direction = 'back';
break;
case 8:
direction = 'front';
break;
}
break;
case 4:
switch ($gameTemp.activeEvent().direction()) {
case 4:
direction = 'back';
break;
case 6:
direction = 'front';
break;
}
break;
case 6:
switch ($gameTemp.activeEvent().direction()) {
case 4:
direction = 'front';
break;
case 6:
direction = 'back';
break;
}
break;
case 8:
switch ($gameTemp.activeEvent().direction()) {
case 2:
direction = 'front';
break;
case 8:
direction = 'back';
break;
}
break;
}
var battlerArray = $gameSystem.EventToUnit($gameTemp.activeEvent().eventId());
var skill = battlerArray[1].action(0).item();
if (skill.meta.srpgDirection) {
if (skill.meta.srpgDirection == 'false') {
direction = 'front';
}
}
$gameTemp.setAttackDirection(direction);
};
I want to compete with sprite image characters in more than 3 frames and 5 frames. What should I do? Please tell me in detail.
No idea, I don't feel like it's related to SRPG games either.
How about trying this first?
Galv's Character Frames