Project1

标题: 技能讲解(快来学习) [打印本页]

作者: lvkeai    时间: 2018-1-12 10:36
标题: 技能讲解(快来学习)
本帖最后由 lvkeai 于 2018-4-19 10:47 编辑

                                                                                                         
第一次写这种教学贴,说的不清楚的大家提出来。


                                 
写这个帖子一个原因是我以后可能不会再用rpgmaker做游戏了(JS在手机上运行太吃力 ),不想让一年的研究失传。

   
第二个就是顺便宣传我的游戏,因为我说的都是我游戏里的技能,哈哈(别人游戏里的技能我也不肯能知道啊)

试玩:https://rpg.blue/thread-405007-1-1.html
网盘地址:https://pan.baidu.com/s/1gheWYtl
正式:http://store.steampowered.com/app/779320/Asura_Valley/

4.19上传插件:格挡插件Lvkeai_ShieldBlock.js  链接:https://pan.baidu.com/s/1zjz2JpYRW355zznswyr85w 密码:yex7  
需要YEP_DamageCore.js,YEP_BuffsStatesCore.js,YEP_CoreEngine.js
04.11 游戏更新了:用了一些美化插件,12号开始打折
最近在用unity,以后一个星期回来看一次,解答问题会有延迟。

01.15更新:原版守护多人使用会导致只有最后一个人生效,修改后多少人都可以生效,可以玩长枪阵了
更新了奸夫淫妇剑的技能动作,大家能一起攻击了,而不是只能在后面助威
这几天在更新游戏,帖子更新的有点慢,有什么想做的技能也可以来问我,我做好了会加一个敌人在我的游戏里,你们玩试玩版就能看到效果了。

今天正式上线了!希望各位兄弟帮我测测。(我竟然不能申请key,我这个开发者可能是假的

第一天:武器===================================================分割线=========================================================
  我为了让武器更有特点,每种武器除了属性不同,还有自带技能。
需要YEP的战斗核心什么的基础插件我就不说了,还需要YEP_BuffsStatesCore(被动核心),YEP_AutoPassiveStates(被动技能),YEP_AbsorptionBarrier(屏障),YEP_X_BattleSysCTB
  剑伤:用剑攻击每次都会加深伤害。
这是一个被动技能,在技能的备注里写<Hide in Battle>(这个技能其实只是用来介绍技能效果的,真正实现技能不是靠他)
在武器的备注写<Passive State: 38>,特性里添加技能“剑伤”
疑问:<Passive State: 38>为什么不直接写在技能备注里?
答:因为这个技能是装备武器学习的,所以会导致无效(至于什么原因导致的我也没去查YEP的代码 ),但是自身学习的被动技能可以这么写。
状态38(制造剑伤):攻击时100%附带状态39
状态39(剑伤)的代码:
<Custom Apply Effect>
target._sworddam=target._sworddam||0;//剑伤叠加伤害
target._swordtime=target._swordtime||0;//剑伤叠加次数
target._swordtime+=1;//每次增加一处剑伤
target.setStateCounter(39, target._swordtime);
</Custom Apply Effect>
<Custom Remove Effect>//状态移除时清0
target._swordtime=0;
target.removeStateCounter(39);
target._sworddam=0;
</Custom Remove Effect>
<Custom React Effect>
   if(value>0&&attacker===origin){//伤害大于0并且造成伤害的是状态给予人
target._sworddam=target._sworddam+origin.atk/10;//每次伤害增强10%
value+=Math.ceil(target._sworddam);//当次造成的伤害加上剑伤伤害
value=Math.min(value,(origin.atk*60));//设定剑伤最大值(因为BOSS也会这个技能,我怕被打死 所以加了上限)
value=Math.ceil(value);
}
</Custom React Effect>

守护:长枪可以攻击来袭敌人守护队友(这是一个主动技能)
技能:范围我方全体,附加守护100%
在技能备注写:
<whole action>
add state 64: user, show//状态64是警戒时间,释放这在守护这段时间不能行动
perform action
motion wait: user
action animation
wait for animation
action effect
</whole action>
守护状态63代码:
<Custom Deselect Effect>
var result = JsonEx.makeDeepCopy(target.result());
if(this.isPhysical()&&result.hpDamage > 0){
var targets=user.opponentsUnit().aliveMembers();
var oatk=0
for(var a=0;a<targets.length;a++){
if(targets[a].isStateAffected(64)){
if ((origin.isStateAffected(10)||origin.isStateAffected(11))) {//眩晕或睡眠没有效果

}else{
targets[a].startAnimation(232);
oatk=oatk+targets[a].atk//将所有处于警戒时间的角色攻击相加
}
}
}
user.gainHp(-Math.ceil(oatk));
user.startAnimation(11);
user.startDamagePopup();
    user.clearResult();
    if (user.isDead()) {
      user.performCollapse();
    }
}

</Custom Deselect Effect>

疑问:为什么不用光环,施法者死了可以直接解除。
答:光环会导致造成的伤害取到受伤人的攻击。

再填装:使用枪械攻击时会消耗MP,所以需要使用TP来恢复
这是一个主动技能,根据当前的TP来恢复MP,有多少恢复多少。如果TP比消耗的MP多还会有剩余TP。
技能代码写在备注:
<Custom TP Cost>
user._oldtp=a.tp;
var utp=((a.mmp-a.mp)/a.mmp)*100
cost=Math.min(utp,a.tp);                    
</Custom TP Cost>
<Before Eval>
var rm=Math.min((user.mmp-user.mp),(user.mmp/100)*user._oldtp);
user.gainMp(Math.ceil(rm));
</Before Eval>

专注:使用弓箭时只要没受伤,就可以越来越快。
这是一个被动技能,没受伤或者受到伤害小于等级*5(为了让这个技能不要太难用)。
在武器的备注写<Passive State: 40>,特性里添加技能“专注”
专注状态40代码:
<Custom Apply Effect>
user._gjzz=user._gjzz||0;//专注叠加次数
</Custom Apply Effect>
<Custom React Effect>
if (this.isHpEffect() &&value > target.level*5){//受伤而且伤害大于等级*5,专注次数清0
target._gjzz=0;
target.setStateCounter(40, target._gjzz);
}
</Custom React Effect>
<Custom Turn End Effect>
user._gjzz=user._gjzz||0;
if(!user.isDead()){//角色没死
var max = BattleManager.ctbTarget();//CTB的最大行动值
var speed = this._ctbSpeed;
speed+=user._gjzz*0.3*max;//每层增加30%行动值
this._ctbSpeed=speed;
if(user._gjzz>0){
user.startAnimation(226);//专注动画
}
if(user._gjzz<4){//小于4层继续叠加
if(user.isStateAffected(10)||user.isStateAffected(11)){//眩晕或睡眠判断
}else{
user._gjzz+=1;
target.setStateCounter(40, target._gjzz);
}
}else{//大于4层清0
user._gjzz=0;
target.setStateCounter(40, target._gjzz);
}
}
</Custom Turn End Effect>
<Custom Victory Effect>
user._gjzz = 0;//胜利了也清0
</Custom Victory Effect>

碎甲:使用锤子时可以击碎敌人护甲
这是一个被动技能:锤子和长枪都能穿透护甲,这个技能为了让锤子的破甲更专业一点。
碎甲状态:防御*50%( 这个不用写代码)

屏障控制:屏障就是法师的盾牌,使用法杖攻击时会把30%伤害转换成屏障。
这是一个被动技能:为了让法师活的更久,当然长枪是可以穿透屏障的,还是有弱点的。
屏障控制状态代码:
<Custom Establish Effect>
if (value > 0 && this.isHpEffect()) {
    var result = target.result();
    var damB = Math.ceil(0.3 * value);//造成伤害的30%
    if (damB> 0) {
      user.gainBarrier(damB, 2);//持续2回合
    }
  }
</Custom Establish Effect>

额外的技能:
今天有人问合体攻击怎么做,我表示这题超纲了 ,不过我还是搞定了 挺有意思的就大家一起看吧。
两个被动技能
第一个给角色用

1、虫群攻击:在第一年的坟场可以见到“控蜂人”
<Custom Confirm Effect>
   if (this.isAttack()) {//如果是攻击(你也可以写魔法特技别的什么)
user._ltarget=target.index();//保存当前攻击的目标ID
var targets=user.friendsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){//【i】会解析成斜体只能用a了
var tar=targets[a];
if(tar!=user){//队友是本人就不要在加状态了,不然boss都要被打死。
tar.addState(350);//出击状态
tar.startAnimation(53);
}
}
}
</Custom Confirm Effect>

2、出击:收到状态的时候发动攻击技能
<Custom Apply Effect>
var skill = 1;//攻击技能
var target = origin._ltarget;//状态给予人的目标。
BattleManager.queueForceAction(user, skill, target);
</Custom Apply Effect>

@zfjlove123 记得去steam买一份支持一下

第二天:技能===================================================分割线=========================================================

分身斩:4次攻击之后给自己附带残影
一种需要魔法释放的技能,最初设计是给法师用的。
<Custom MP Cost>
cost += user.atk; //消耗武器攻击的魔法值,限制双手剑
</Custom MP Cost>
<whole action>
add state 87: user, show//给自己加残影状态,增加闪避
move user: target, back base, 20
opacity user: 5%, 5
perform action
action animation
wait for animation
action effect
death break
action animation
wait for animation
action effect
death break
action animation
wait for animation
action effect
death break
action animation
wait for animation
action effect
death break
opacity user: 100%, 10
</whole action>

快斩剑术:和敌人拼敏捷的剑术,比敌人高攻击三次,低攻击2次
无论攻击三次还是两次消耗TP都是一样的。(为了平衡双手武器会降低敏捷)
<whole action>
move user: target, front base, 20
wait: 20
</whole action>
<Target Action>
MOTION SWING: user
motion wait: user
action animation
wait for animation
action effect
death break
MOTION SWING: user
motion wait: user
action animation
wait for animation
action effect
death break
if target.agi<user.agi//判断敌人的敏捷比自己低,可以再砍一刀
MOTION SWING: user
motion wait: user
action animation
wait for animation
action effect
death break
</Target Action>

顺劈:攻击两个不同的敌人(原版的攻击两个敌人很容易攻击到相同的敌人,那看起了就有点像盗贼的技能了
降低20%的攻击攻击两个敌人
需要YEP_TargetCore
<Custom Target Eval>
var tlist=[];
for (var a = 0; a < foes.aliveMembers().length; ++a) {
      var member = foes.aliveMembers()[a];
      tlist.push(member);
    }
if(foes.aliveMembers().length>2){//敌人大于2选两个不同目标
        tlist = tlist.sort(function(){return Math.random()-0.5});
        targets.push(tlist[0]);
        targets.push(tlist[1]);
}else{//只有一个敌人就只有一个目标
        targets=tlist;
}   
  </Custom Target Eval>

瞄准射击:100%打出暴击的技能
花很长时间瞄准,速度补正就-2000吧
<Target Action>
MOTION missile: user
wait: 30
motion wait: user
force critical//必定暴击
action animation
wait for animation
action effect
death break
</Target Action>

连续突刺:用长枪进行两次攻击,第3次释放技能会增加一个横扫
每次释放还会减少需要TP,虽然这个效果可能用公共方法也能做,但是我的游戏敌人和角色能用的技能都是这些,如果这两个人见面了场面一定很尴尬。
需要3个被动
一层:66(没有代码,挑几个可以连在一起的图标,为了好看)
二层:67
连续突刺控制:68
<Custom Apply Effect>
target._lxtctime=target._lxtctime||0;
target._lxtctime+=1;
</Custom Apply Effect>
<Custom Battle Effect>//战斗开始判断
var stage1 = 66;
var stage2 = 67;
if (target._lxtctime==1) {//使用一次
    target.addState(stage1);//添加第一层状态
  } else if (target._lxtctime==2) {//使用二次
    target.removeState(stage1);//移除第一层状态
    target.addState(stage2);//添加第二层状态
  }else{
target.removeState(stage2);//移除第二层状态
target._lxtctime=1;//再从第一层开始(第二次就只需要释放二次就可以横扫了)
}
</Custom Battle Effect>
<Custom Turn End Effect>//回合结束也要判断
var stage1 = 66;
var stage2 = 67;
if (target._lxtctime==1) {
    target.addState(stage1);
  } else if (target._lxtctime==2) {
    target.removeState(stage1);
    target.addState(stage2);
  }else{
target.removeState(stage2);
target._lxtctime=1;
}
</Custom Turn End Effect>
技能代码:
<whole action>
add state 68: user, show//给自己添加连续突刺控制
move user: target, front base, 20
wait: 20
</whole action>
<Target Action>
MOTION thrust: user
motion wait: user
action animation
wait for animation
action effect
death break
MOTION thrust: user
motion wait: user
action animation
wait for animation
action effect
death break
if user.isStateAffected(67)//如果释放的时候已经是第二层了就释放横扫
MOTION thrust: user
animation 151: user, mirror
motion wait: user
action animation: opponents
wait for animation
action effect: opponents//伤害所有敌人
death break
</Target Action>

<Custom TP Cost>//消耗TP控制
if(user.isStateAffected(66)){
cost -= 7;
}else if(user.isStateAffected(67)){
cost -= 14;
}
</Custom TP Cost>


穿透突刺:对第二个人造成更多伤害
长枪一穿二
攻击两个随机敌人
<damage formula>
this._longtc = this._longtc || 0.8;
value= a.atk*this._longtc;//第一个*0.8,第二个*1.3
this._longtc=this._longtc+0.5;
</damage formula>

无敌冲锋:冲过敌群,将不是重甲和不是巨型的敌人向后推一位
需要有盾牌才能用。自己也会前进一位,需要YEP_RowFormation
但是原版技能只有武器判断,所有要
<Custom Requirement>
  if (user.armors()[0].atypeId===5||user.armors()[0].atypeId===6) {//atypeId写你自己盾牌类型ID,我的游戏中小盾是5,塔盾是6
    visible = true;
  } else {
    visible = false;
  }
</Custom Requirement>
<Pull Forward User Row: 1>
<Custom Target Row>
   if (target.isStateAffected(275)||target.isStateAffected(277)) {//是重甲或巨型,没有影响
     
   } else {
     row += 1;//位置+1
   }
  </Custom Target Row>

战狂:巨魔被攻击的时候增加最大HP
这个技能有点像龙珠超里狼老大的特技
<Custom Deselect Effect>
var result = JsonEx.makeDeepCopy(target.result());
if (target.isAlive() && result.hpDamage > 0) {
target.param[0]+=result.hpDamage;//关键是这句param[0]是MHP,你要想增加其他属性可以自己尝试
target.startAnimation(169);
}  
target._result = result;
</Custom Deselect Effect>

额外技能:双生攻击

狼人兄弟的双生攻击,在第二年村庄里的小破屋
昨天有人问怎么使用另一个人的TP,TP不够的时候还不能使用技能,伤害还要两个人加起来。 要求很多啊。
那就需要3步了。(修改了一下,由于敌人没有学习技能这个判断所有原来会导致敌人无法使用这个技能,现在改为用状态判断)
1、计算伤害
<Passive State: 445>
<damage formula>
var targets=user.friendsUnit().aliveMembers();
var jfyfjdam=0;
for(var a=0;a<targets.length;a++){
if(targets[a].isStateAffected(445)){
var ddam=(targets[a].mhp / 15);
jfyfjdam=jfyfjdam+ddam;
}
}
value=jfyfjdam;               
</damage formula>
<Custom Requirement>
value = false;
var num=1;
var cnum=1;
var targets=user.friendsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
if(targets[a]!=user&&targets[a].isStateAffected(445)){
num=num+1;
if(targets[a].tp>=50&&!targets[a].isStateAffected(12)){
cnum=cnum+1;
}
}
}
if(num==cnum&&num>1){
value = true;
}
  </Custom Requirement>
<Before Eval>
  var targets=user.friendsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
if(targets[a]!=user&&targets[a].isStateAffected(445)){
targets[a].gainTp(-50);
}
}
</Before Eval>
<whole action>
animation 234: user
if user.friendsUnit().aliveMembers()[0].isStateAffected(445)&&user.friendsUnit().aliveMembers()[0]!=user
animation 234: friend 0
end
if user.friendsUnit().aliveMembers().length>1
if user.friendsUnit().aliveMembers()[1].isStateAffected(445)&&user.friendsUnit().aliveMembers()[1]!=user
animation 234: friend 1
end
if user.friendsUnit().aliveMembers().length>2
if user.friendsUnit().aliveMembers()[2].isStateAffected(445)&&user.friendsUnit().aliveMembers()[2]!=user
animation 234: friend 2
move user: target, front base, 20
end
if user.friendsUnit().aliveMembers().length>3
if user.friendsUnit().aliveMembers()[3].isStateAffected(445)&&user.friendsUnit().aliveMembers()[3]!=user
animation 234: friend 3
end
end
end
end
wait: 90
move user: target, front base, 20
if user.friendsUnit().aliveMembers()[0].isStateAffected(445)&&user.friendsUnit().aliveMembers()[0]!=user
move friend 0: target, front base, 20
end
if user.friendsUnit().aliveMembers().length>1
if user.friendsUnit().aliveMembers()[1].isStateAffected(445)&&user.friendsUnit().aliveMembers()[1]!=user
move friend 1: target, front base, 20
end
if user.friendsUnit().aliveMembers().length>2
if user.friendsUnit().aliveMembers()[2].isStateAffected(445)&&user.friendsUnit().aliveMembers()[2]!=user
animation 234: friend 2
move friend 2: target, front base, 20
end
if user.friendsUnit().aliveMembers().length>3
if user.friendsUnit().aliveMembers()[3].isStateAffected(445)&&user.friendsUnit().aliveMembers()[3]!=user
move friend 3: target, front base, 20
end
end
end
end
wait: 20
</whole action>
<Target Action>
perform action
motion wait: user
action animation
opacity user: 50%, 20
FACE user: BACKWARD
move user: target, back base, 20
wait: 7
MOVE user: target, HEAD, 20
wait: 7
move user: target, front base, 20
opacity user: 100%, 20
if user.friendsUnit().aliveMembers()[0].isStateAffected(445)&&user.friendsUnit().aliveMembers()[0]!=user
wait: 14
perform action
motion wait: friend 0
wait: 4
FACE friend 0: BACKWARD
move friend 0: target, back base, 20
wait: 4
MOVE friend 0: target, HEAD, 20
wait: 7
move friend 0: target, back base, 20
end
if user.friendsUnit().aliveMembers().length>1
if user.friendsUnit().aliveMembers()[1].isStateAffected(445)&&user.friendsUnit().aliveMembers()[1]!=user
wait: 14
perform action
motion wait: friend 1
wait: 4
FACE friend 1: BACKWARD
move friend 1: target, back base, 20
wait: 4
MOVE friend 1: target, HEAD, 20
wait: 7
move friend 1: target, back base, 20
end
if user.friendsUnit().aliveMembers().length>2
if user.friendsUnit().aliveMembers()[2].isStateAffected(445)&&user.friendsUnit().aliveMembers()[2]!=user
wait: 14
perform action
motion wait: friend 2
wait: 4
FACE friend 2: BACKWARD
move friend 2: target, back base, 20
wait: 4
MOVE friend 2: target, HEAD, 20
wait: 7
move friend 2: target, back base, 20
end
if user.friendsUnit().aliveMembers().length>3
if user.friendsUnit().aliveMembers()[3].isStateAffected(445)&&user.friendsUnit().aliveMembers()[3]!=user
wait: 14
perform action
motion wait: friend 3
wait: 4
FACE friend 3: BACKWARD
move friend 3: target, back base, 20
wait: 4
MOVE friend 3: target, HEAD, 20
wait: 7
move friend 3: target, back base, 20
end
end
end
end
wait: 3
action effect
death break
wait: 3
action effect
death break
wait: 3
action effect
death break
wait: 3
action effect
death break
wait for animation
force critical
action effect
death break
</Target Action>
<Follow Action>
reset camera
reset zoom
jump user: 200%, 30
move user: return, 30
wait for movement
</Follow Action>
这就简单的完成了奸夫淫妇剑了,砍死江玉郎应该不成问题

第三天:魔法

风精灵的祝福:随机治疗3个队友,优先治疗受伤最重的
召唤小精灵治疗队友,异常调皮,治疗效果波动很大
<Custom Target Eval>
        var hpm = 0;
        var tlist=[];
for (var a = 0; a< user.friendsUnit().aliveMembers().length; a++) {
        var member = user.friendsUnit().aliveMembers()[a];
        var nhpm = member.mhp-member.hp;//取到HP最低的队友
        if (nhpm > 0) {
                if (nhpm > hpm&&tlist.length>0) {
                        tlist.splice(0, 0, member);//将HP少的队友调到数组最前
                } else {
                        tlist.push(member);
                }
                if(nhpm > hpm){
                        hpm = nhpm;
                }
        }
}
while (tlist.length>3){//取前三个受伤的目标
        tlist.splice((tlist.length-1), 1);
}
while (tlist.length < 3){//不满三个受伤目标就全部
        tlist.push(tlist[0]);
}
targets=tlist.sort(function(){return Math.random()-0.5});
</Custom Target Eval>


冰冻爆裂:对已经冰冻的敌人必定造成暴击

<Target action>
face user: target
motion wait: user
action animation
if target.isStateAffected(7)//判断是否是冰冻状态
force critical//暴击
animation 4: target
else
action animation: target
end
wait for animation
action effect
normal critical
</Target action>

寄生种子:敌人受伤,施法人恢复HP
很像dota里大树的技能
寄生种子状态代码:
<Custom Regenerate Effect>
if (origin !== target && origin.isAlive()) {
  var damage = target.hp*0.08+origin.mmp*0.08;//目标当前hp8%+施法者最大hp的8%
  var el=target.elementRate(6)
  damage = Math.ceil(damage*el);//计算目标植物抗性
  origin.startAnimation(46);//运行施法者恢复动画
  origin.gainHp(damage);//恢复HP
  origin.startDamagePopup();
  origin.clearResult();
  target.startAnimation(59);
  target.gainHp(-damage);//目标减少HP
if (target && target.isStateAffected(207)) {
              target.gainHp(damage * 3);
      }
  if (target.isDead()) {
    target.performCollapse();
  }
}
</Custom Regenerate Effect>

灵魂锁链:让所有人一起分担伤害
给自己用可以抗的更久,给敌人用可以让那些血少闪避高的敌人不能躲避伤害。
灵魂锁链状态代码:
<Custom React Effect>
if (value > 0 ) {
  var members = target.friendsUnit().aliveMembers();//取所有活着的队友,死了就不能分担伤害了
  var affected = [];
  for (var a = 0; a < members.length; ++a) {
    var member = members[a];
    if (member && member.isStateAffected(144)) {//叛徒目标是否有灵魂锁链状态
      affected.push(member);
    }
  }
  value = Math.ceil(value / affected.length);//将伤害除以给每个人
  for (var a = 0; a < affected.length; ++a) {//将剩下的伤害分担给其他人
    var member = affected[a];
    if (member !== target) {
      member.startAnimation(12);
      member.gainHp(-value);
      member.startDamagePopup();
      member.clearResult();
      if (member.isDead()) {
        member.performCollapse();
      }
    }
  }
}
</Custom React Effect>

燃烧伤口:点燃敌人,让他每次被攻击都会受到额外伤害
燃烧伤口137状态代码:
<Custom Apply Effect>
user.setStateCounter(137, 20);//预设20层,每次受到攻击减少一层
user._thornBindDmg = origin.mmp*0.10+origin.level;
user._thornBindDmg = Math.min(user._thornBindDmg, 1000);//不能超过1000
</Custom Apply Effect>

<Custom Deselect Effect>
var result = target.result();
if (result.idear() && !target.isDead() && this.isPhysical() && this.isDamage()) {
  target.startAnimation(3);
  var dmg = target._thornBindDmg || 1;//默认是1点伤害
  var el=target.elementRate(2)
  target.gainHp(Math.ceil(-dmg*el));//乘以火抗
  target.startDamagePopup();
if(target.isDead()){
target.performCollapse()
}
  target.clearResult();
  target.addStateCounter(137, -1);//减少一层
  if (target.getStateCounter(137) <= 0) {//小于等于0解除
    target.removeState(137);
  }
}
</Custom Deselect Effect>



先更新一个超复杂的,昨天在外网外国友人问的。
火焰追逐:有火焰追逐状态后,敌人被火属性魔法攻击,自己会追击

扑火幽灵在第二年的森林里
首先,火焰追逐技能
给所有敌人一个属性 347(不用图标,看不见最好),同时给自己一个属性 348 火焰追逐
技能代码:(动作还可以改一下)
<whole action>
animation 66: user
add state 348: user, show
perform action
motion wait: user
action animation
wait for animation
action effect
death break
</whole action>
然后 347状态代码:

<Custom Respond Effect>

if (target.result().hpDamage > 0) {
  var elements = this.getItemElements();
  while (elements.length > 0) {
    var element = elements.shift();//获得受到攻击的属性
    if (element === 2) {//属性是火焰
var targets=target.opponentsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
if(targets[a].isStateAffected(348)){//如果有火焰追逐状态
targets[a].addState(346);
targets[a].startAnimation(53);
}
}
    }        
  }
}
</Custom Respond Effect>
348状态代码:空
346状态代码:发动攻击
<Custom Apply Effect>
var skill = 1;
var target = origin.index();
BattleManager.queueForceAction(user, skill, target);
</Custom Apply Effect>

这样就可以实现了, 英语不好{:4_145:} ,不知道外网他们看的懂不。


第四天:增强
在我的游戏中一种装备,可更换的附带特殊被动零件(就是变种天赋,可插拔免洗点,插槽有限)
网友技能:
记忆盾,记忆剑:记住技能然后再全部释放
原来看YEP大神写过一个类似的,只不过他那个是一个一个放,一次全部释放有点太冰淇淋了。不过还是能实现。
记忆盾状态:和大神的代码一样
<Custom Apply Effect>
// 初始化这个临时全局数组.
$gameTemp._memorySkills = [];
// 状态层数等于记住了多少个技能
user.setStateCounter(stateId, $gameTemp._memorySkills.length);
</Custom Apply Effect>

<Custom Select Effect>
// 判断是敌方技能,不是攻击
if (this.isSkill() && !this.isAttack() && this.isForOpponent()) {
  // 创建一个bypass技能列表。
  var bypassedSkills = [];
  // 插入将跳过此效果的技能的ID。普通攻击什么的就不要记忆了
  bypassedSkills.push(1, 2, 3, 4, 5, 6, 7);
  // 获取当前操作的技能ID。
  var skillId = this.item().id;
  // 检查技能是否被忽略。
  if (!bypassedSkills.contains(this.item().id)) {
     //  将技能添加到记忆技能列表中。
     $gameTemp._memorySkills.push(skillId);
     // 更新计数器
     target.setStateCounter(stateId, $gameTemp._memorySkills.length);   
  }
}
</Custom Select Effect>

<Custom Deselect Effect>
//检查效果是否还未发生,用户和目标在不同的团队中。
if (!this._warpingShield && user.isActor() !== target.isActor()) {
  // 创建一个bypass技能列表。
  var bypassedSkills = [];
  //  插入技能ID,可以跳过此效果。
  bypassedSkills.push(1, 2, 3, 4, 5, 6, 7);
  //  检查这种效果是不是一种技能,而不是一种基本的攻击
  if (this.isSkill() && !this.isAttack() && !bypassedSkills.contains(this.item().id)) {
    //  把效果标记为已经发生了。
    this._warpingShield = true;
    // 这是在效果的冷却时间(保存5回合)。
    var turns = 5;
    // Get this skill's ID
    var id = this.item().id;
    //  加上许多转向攻击者的技能冷却。
    user.addCooldown(id, turns);
  }
}
</Custom Deselect Effect>

记忆剑:这里有改动,
<After Eval>
user.addState(344);//技能释放后添加状态复仇时刻,原本在这里就释放记忆的技能了,但是我试了下,一个技能里面并不能连续释放多个技能。还要靠状态
</After Eval>

// This is the setup action list for the effect
<Setup Action>
clear battle log
display action
immortal: targets, true
perform start
wait for movement
cast animation
wait for animation
action effect
clear battle log
display action
</Setup Action>

// Clear the whole actions
<Whole Action>
</Whole Action>

// Clear the target actions
<Target Action>
</Target Action>

状态344复仇时刻:
<Custom Apply Effect>
var target = -2;
var skills = $gameTemp._memorySkills || [];
//  检查技能列表长度是否大于0。
if (skills.length > 0) {
for(var a=0;a<skills.length;a++){
BattleManager.queueForceAction(user, skills[a], target);
}
// Otherwise 否则
} else {
  // 默认普通攻击
  var skillId = 1;
BattleManager.queueForceAction(user, skillId, target);
}
$gameTemp._memorySkills=[];
user.setStateCounter(345, 0);
</Custom Apply Effect>
接下来这些效果都需要用到被动插件
遇强则强:敌人的hp在70%以上,伤害增加。
<Custom Confirm Effect>
if (this.isPhysical() && this.isHpEffect() && value > 0) {
if(target.hp>target.mhp*0.7){
var xs=Math.max((target.mhp/user.mhp),1.3);//伤害系数,敌人最大HP/角色最大HP
value = Math.ceil(value*xs);
}
}
</Custom Confirm Effect>
弱点打击:如果敏捷比敌人高则造成更多伤害。
<Custom Confirm Effect>
if (this.isPhysical() && this.isHpEffect() && value > 0) {//如果是物理攻击
if(user.agi>=target.agi){
  value = Math.ceil(value*(user.agi/target.agi));//伤害乘以(角色敏捷/目标敏捷)
target.startAnimation(222);
}
}
</Custom Confirm Effect>
看破:如果敌人只有一个增加30%闪避。
状态增加30%闪避
<Custom Passive Condition>
  if (user.opponentsUnit().aliveMembers().length==1) {//如果只有一个敌人,状态启用
    condition = true;
  } else {
    condition = false;
  }
</Custom Passive Condition>
精华吸收:回合结束时每有一个敌人死亡恢复20%MP。
<Custom Battle Effect>
user._deadenum2=user._deadenum2||0;//敌人死亡数量初始
user._deadenum2=user.opponentsUnit().deadMembers();
</Custom Battle Effect>

<Custom Action Start Effect>
var num=user.opponentsUnit().deadMembers().length-user._deadenum2;
if(num>0){
user.gainMp(Math.ceil(user.mmp*0.2*num));
user.startAnimation(211);
user._deadenum2=user.opponentsUnit().deadMembers().length;
}
</Custom Action Start Effect>
<Custom Select Effect>
var num=user.opponentsUnit().deadMembers().length-user._deadenum2;//本回合死亡敌人减去死亡敌人数量
if(num>0){
user.gainMp(Math.ceil(user.mmp*0.2*num));
user.startAnimation(211);
user._deadenum2=user.opponentsUnit().deadMembers().length;//更新死亡敌人数量
}
</Custom Select Effect>
<Custom Action End Effect>
var num=user.opponentsUnit().deadMembers().length-user._deadenum2;
if(num>0){
user.gainMp(Math.ceil(user.mmp*0.2*num));
user.startAnimation(211);
user._deadenum2=user.opponentsUnit().deadMembers().length;
}
</Custom Action End Effect>
孤胆英雄:只剩下一个人时,属性大量增加。
状态所有属性200%
<Custom Passive Condition>
  if (user.friendsUnit().aliveMembers().length==1) {//只剩下一个队员状态启动
    condition = true;
  } else {
    condition = false;
  }
</Custom Passive Condition>
静电:回合开始时对敌人造成伤害。
<Custom Passive Condition>
  if (!user.isStateAffected(6)) {//如果沉默不会触发
    condition = true;
  } else {
    condition = false;
  }
  </Custom Passive Condition>
<Custom Action Start Effect>
var targets=user.opponentsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
var dam=Math.round((user.mat*100)/(100+targets[a].mdf));//魔法抗性减少伤害
var el=targets[a].elementRate(9)//获取电属性抗性
targets[a].gainHp(Math.ceil(-dam*el));
targets[a].startAnimation(77);
targets[a].startDamagePopup();
targets[a].clearResult();
if(targets[a].isDead()){
targets[a].performCollapse()
}
}
}

</Custom Action Start Effect>

关于怎么查看属性
比如你要取targets的名字
var names = "";
        for (var name in targets) {
                names += name + ": " + targets[name] + ", ";
        }
        console.log("name="+names);
然后运行的时候按F8看输出,找到name=(一大段),然后找到targets的名字(例如: _name:黄蜂)
要根据名字判断的时候就可以写if(targets._name=="黄蜂")

格挡插件:链接:https://pan.baidu.com/s/1zjz2JpYRW355zznswyr85w 密码:yex7
需要YEP_DamageCore.js,YEP_BuffsStatesCore.js,YEP_CoreEngine.js
  
里面有使用说明
1、破盾状态让格挡几率<DAMAGE BDRATE: -100>
2、防御状态让格挡几率增加<DAMAGE BDRATE: +40>
3、给斧头武器增加破盾属性<DAMAGE AXENUM: +1>
4、大盾牌格挡几率<DAMAGE BDRATE: +50>,小盾牌格挡几率<DAMAGE BDRATE: +30>,格挡值<DAMAGE BDR: +50>
   

作者: zfjlove123    时间: 2018-1-12 13:17
学习了,希望楼主大大能经常更新!!
作者: zfjlove123    时间: 2018-1-12 13:20
楼主能不能做一个协助攻击,是一个被动,只要拥有被动的角色普通攻击,那么所有的队友将一起对目标攻击一次
作者: qq1065526265    时间: 2018-1-12 13:21
坐等楼主更新
作者: lvkeai    时间: 2018-1-12 13:27
zfjlove123 发表于 2018-1-12 13:20
楼主能不能做一个协助攻击,是一个被动,只要拥有被动的角色普通攻击,那么所有的队友将一起对目标攻击一次 ...

这个我没做过,有空我试试
作者: zfjlove123    时间: 2018-1-12 13:30
或者做一个自动保护的被动,有队友被攻击,移动到队友前面帮助抵挡50%的伤害
作者: lvkeai    时间: 2018-1-12 14:05
zfjlove123 发表于 2018-1-12 13:30
或者做一个自动保护的被动,有队友被攻击,移动到队友前面帮助抵挡50%的伤害 ...

原版自带的掩护就会保护血量最少的队友,只不过的抵挡100%伤害
作者: hinasama    时间: 2018-1-12 19:07
感谢LZ分享!
请问LZ能做出一个合体技能吗?描述为:发动合体技消耗A和B角色的TP,当A和B其中一方的TP不足时不可发动,攻击力算式为A.atk+B.atk-敌人.def。我试了下用公共事件附加状态,然而总会陷入死循环,请问LZ有没有方法_(:з」∠)_
作者: lvkeai    时间: 2018-1-12 19:19
hinasama 发表于 2018-1-12 19:07
感谢LZ分享!
请问LZ能做出一个合体技能吗?描述为:发动合体技消耗A和B角色的TP,当A和B其中一方的TP不足 ...

我没做过啊,想法不错,我研究研究
作者: zfjlove123    时间: 2018-1-13 09:25
if (this.isAttack()) {//
这里如果要使用技能该怎么写?
作者: lvkeai    时间: 2018-1-13 10:15
hinasama 发表于 2018-1-12 19:07
感谢LZ分享!
请问LZ能做出一个合体技能吗?描述为:发动合体技消耗A和B角色的TP,当A和B其中一方的TP不足 ...

搞定了,记得去steam支持一下
作者: lvkeai    时间: 2018-1-13 10:20
zfjlove123 发表于 2018-1-13 09:25
if (this.isAttack()) {//
这里如果要使用技能该怎么写?

this.isSkill() 技能
this.isMagical()魔法
作者: zfjlove123    时间: 2018-1-13 10:35
lvkeai 发表于 2018-1-13 10:20
this.isSkill() 技能
this.isMagical()魔法

非常感谢大神
作者: hinasama    时间: 2018-1-13 13:15
lvkeai 发表于 2018-1-13 10:15
搞定了,记得去steam支持一下

哇!感谢LZ!在1L的STEAM地址里吗?
作者: hinasama    时间: 2018-1-13 13:27
lvkeai 发表于 2018-1-13 10:15
搞定了,记得去steam支持一下

_(:з」∠)_本来想私信请教下,结果没有权限。想请问一下那串实现代码的具体操作,我理解的话是,把你写的那串代码做成一个JS文件导入进去。然后是把3个代码都写在这个技能的备注里吗?
作者: lvkeai    时间: 2018-1-13 13:45
hinasama 发表于 2018-1-13 13:15
哇!感谢LZ!在1L的STEAM地址里吗?

是啊,还没解封
作者: lvkeai    时间: 2018-1-13 13:46
hinasama 发表于 2018-1-13 13:27
_(:з」∠)_本来想私信请教下,结果没有权限。想请问一下那串实现代码的具体操作,我理解的话是,把你写 ...

写在备注里面,右下角,年轻人基础还不好啊。
作者: hinasama    时间: 2018-1-13 13:56
lvkeai 发表于 2018-1-13 13:46
写在备注里面,右下角,年轻人基础还不好啊。

是的_(:з」∠)_才接触RPG MAKER2个月。
if(targets[a]!=user&&targets[a].isLearnedSkill(420))
请问这个地方的A和(420)是需要替换成角色ID和技能ID的吗?

作者: hinasama    时间: 2018-1-13 14:12
lvkeai 发表于 2018-1-13 13:46
写在备注里面,右下角,年轻人基础还不好啊。

刚才测试了一下,将420换成了技能ID,TP的需求改为了50,但是在A角色TP为50,B角色TP不足50的时候,A角色还是发动了这个技能,请问是不是我哪里操作出了问题呢?
作者: lvkeai    时间: 2018-1-13 14:40
hinasama 发表于 2018-1-13 14:12
刚才测试了一下,将420换成了技能ID,TP的需求改为了50,但是在A角色TP为50,B角色TP不足50的时候,A角色 ...

人多了缺失有问题
改成这样
<Custom Requirement>
value = false;
var num=1;
var cnum=1;
var targets=user.friendsUnit().aliveMembers();
for(var i=0;i<targets.length;i++){
if(targets[a]!=user&&targets[a].isLearnedSkill(420)){
num=num+1;
if(targets[a].tp>10){
cnum=cnum+1;
}
}
}
if(num==cnum){
value = true;
}
作者: fyqinpku    时间: 2018-1-13 15:43
楼主真是个天才。要是早点遇到这贴就好了。
那个合体技,会让两个我方角色同时移动、移动中展示不同的技能动画吗?
作者: hinasama    时间: 2018-1-13 15:46
lvkeai 发表于 2018-1-13 14:40
人多了缺失有问题
改成这样

唔……还是不行,大佬麻烦看看是不是我哪里使用错了?我是如图这么设置的,备注里面写的是:
<damage formula>
var targets=user.friendsUnit().aliveMembers();
var jfyfjdam=0;
for(var a=0;a<targets.length;a++){
if(targets[a].isLearnedSkill(0016)){//找到每一个学了奸夫淫妇剑的队友
jfyfjdam=jfyfjdam+targets[a].atk;//加上他们的攻击
}
}
value=jfyfjdam;               

<Custom Requirement>
value = false;
var num=1;
var cnum=1;
var targets=user.friendsUnit().aliveMembers();
for(var i=0;i<targets.length;i++){
if(targets[a]!=user&&targets[a].isLearnedSkill(0016)){
num=num+1;
if(targets[a].tp>20){
cnum=cnum+1;
}
}
}
if(num==cnum){
value = true;
}

<Before Eval>
  var targets=user.friendsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
if(targets[a]!=user&&targets[a].isLearnedSkill(0016)){
targets[a].gainTp(-20);//减少tp
}
}

QQ图片20180113154402.png (136.57 KB, 下载次数: 29)

技能设置

技能设置

作者: lvkeai    时间: 2018-1-13 17:02
hinasama 发表于 2018-1-13 15:46
唔……还是不行,大佬麻烦看看是不是我哪里使用错了?我是如图这么设置的,备注里面写的是:

var target ...

全部复制进去就行了,你是不是没加载插件啊?
作者: lvkeai    时间: 2018-1-13 17:12
hinasama 发表于 2018-1-13 15:46
唔……还是不行,大佬麻烦看看是不是我哪里使用错了?我是如图这么设置的,备注里面写的是:

var target ...

额,我是这么写的吗?
结尾的
</damage formula>都没复制过去
作者: hinasama    时间: 2018-1-13 17:22
lvkeai 发表于 2018-1-13 17:12
额,我是这么写的吗?
结尾的
都没复制过去

好的我去加载下其他没加载的插件,复制完再试试
作者: lvkeai    时间: 2018-1-13 17:25
fyqinpku 发表于 2018-1-13 15:43
楼主真是个天才。要是早点遇到这贴就好了。
那个合体技,会让两个我方角色同时移动、移动中展示不同的技能 ...

这更麻烦,不过有个思路,昨天那个大家一起攻击的技能加上这个技能可以做到
作者: zfjlove123    时间: 2018-1-15 10:45
大佬能否写一个技能使用后,在本回合将所有技能都依次释放
作者: lvkeai    时间: 2018-1-15 11:51
fyqinpku 发表于 2018-1-13 15:43
楼主真是个天才。要是早点遇到这贴就好了。
那个合体技,会让两个我方角色同时移动、移动中展示不同的技能 ...

技能更新了,现在大家都有攻击动作了。
作者: lvkeai    时间: 2018-1-15 16:10
zfjlove123 发表于 2018-1-15 10:45
大佬能否写一个技能使用后,在本回合将所有技能都依次释放

你指的所有技能是对方的还是自己的?
写了一个你看看是不是那样
作者: qq1065526265    时间: 2018-1-15 19:43
lvkeai 发表于 2018-1-15 16:10
你指的所有技能是对方的还是自己的?
写了一个你看看是不是那样

我也想知道   是自己的  比如重装机兵的猎人特技全炮齐射  战车全部武器依次释放  次数用完的和坏掉的武器除外  当然了还有主炮齐射、副炮齐射和se齐射
作者: lvkeai    时间: 2018-1-15 20:05
qq1065526265 发表于 2018-1-15 19:43
我也想知道   是自己的  比如重装机兵的猎人特技全炮齐射  战车全部武器依次释放  次数用完的和坏掉的武 ...

额,这工作量太大了
重装机兵讲什么的?老听到,自己玩了下NDS版的,还是口袋妖怪好玩
作者: qq1065526265    时间: 2018-1-15 21:22
本帖最后由 qq1065526265 于 2018-1-15 21:25 编辑
lvkeai 发表于 2018-1-15 20:05
额,这工作量太大了
重装机兵讲什么的?老听到,自己玩了下NDS版的,还是口袋妖怪好玩 ...


  那个续法和法爆总可以吧  就是有几率使法术拥有连续释放两次的状态  和可以使法术拥有暴击的状态

  虽然我也会用事件搞  但是太麻烦了  毕竟不会代码
作者: lvkeai    时间: 2018-1-15 21:37
qq1065526265 发表于 2018-1-15 21:22
那个续法和法爆总可以吧  就是有几率使法术拥有连续释放两次的状态  和可以使法术拥有暴击的状态{:4_12 ...

那要看你是单这个法术有一定几率重复释放,还是添加一个状态有几率重复施法。暴击那个好像原来在哪看过一段代码控制暴击的,当时没仔细看。
我倒是有个“挥霍无度”双倍耗蓝双倍伤害的状态,现成你要不要。
作者: qq1065526265    时间: 2018-1-15 22:06
本帖最后由 qq1065526265 于 2018-1-15 22:08 编辑
lvkeai 发表于 2018-1-15 21:37
那要看你是单这个法术有一定几率重复释放,还是添加一个状态有几率重复施法。暴击那个好像原来在哪看过一 ...


要啊   那个法连当然是有一定的几率重复施法了 至于那个法爆 好像我有个暴击控制插件 我试过技能的 没试过状态   都忘记了
作者: fyqinpku    时间: 2018-1-15 22:12
lvkeai 发表于 2018-1-15 11:51
技能更新了,现在大家都有攻击动作了。

看到那个技能了,真的好复杂!
最后一个问题,是要把那个所有的damage formula,custom xxx等等全都放到技能的Note栏里去吗?
作者: lvkeai    时间: 2018-1-15 22:30
qq1065526265 发表于 2018-1-15 22:06
要啊   那个法连当然是有一定的几率重复施法了 至于那个法爆 好像我有个暴击控制插件 我试过技能 ...

那就很复杂了,明天再搞
作者: lvkeai    时间: 2018-1-15 22:33
fyqinpku 发表于 2018-1-15 22:12
看到那个技能了,真的好复杂!
最后一个问题,是要把那个所有的damage formula,custom xxx等等全都放到 ...

是的,中文删掉其他全要,技能ID改成自己的,动作都只是简单实现,但是能一起动起来了。
作者: qq1065526265    时间: 2018-1-15 22:59
本帖最后由 qq1065526265 于 2018-1-15 23:06 编辑
lvkeai 发表于 2018-1-15 22:33
是的,中文删掉其他全要,技能ID改成自己的,动作都只是简单实现,但是能一起动起来了。 ...


对了  大大  用技能的时候如何实现慢动作  然后恢复  之前看yep插件的动作好像看到过  我看到那个人用一个技能挥刀移动的时候明显慢了  好像掉帧了似的  难道挥刀到一半能设置停顿  或者降速?   还是说可以设置挥刀语句的时候可以改变帧数……我去试试看
作者: lvkeai    时间: 2018-1-15 23:16
qq1065526265 发表于 2018-1-15 22:59
对了  大大  用技能的时候如何实现慢动作  然后恢复  之前看yep插件的动作好像看到过  我看到那个人用一 ...

慢动作没看到啊,但是有好多等待
作者: qq1065526265    时间: 2018-1-15 23:28
lvkeai 发表于 2018-1-15 23:16
慢动作没看到啊,但是有好多等待

我只知道mait
作者: qq1065526265    时间: 2018-1-16 13:24
qq1065526265 发表于 2018-1-15 23:28
我只知道mait

刚刚想到一个点子  如果目标身上有某个状态攻击更改的  比如一男一女打架  首先女使用攻击命令冲上去打男的一拳  如果男的身上带着脱衣状态的话  女的攻击命令就是冲上去甩一巴掌   我是之前看到如果武器攻击是飞行道具的话就不冲上去  想的  貌似可以做成更多的奇怪技能
作者: lvkeai    时间: 2018-1-16 15:35
qq1065526265 发表于 2018-1-16 13:24
刚刚想到一个点子  如果目标身上有某个状态攻击更改的  比如一男一女打架  首先女使用攻击命令冲上去打男 ...

<After Eval>
if (target.isStateAffected(348)) {
  var skillId = 3;
// Otherwise 否则
} else {
  // Default the skill to skill #1
  var skillId = 1;
}
// Set this action to this skill 把这个动作设置成这个技能。
this.setSkill(skillId);
</After Eval>
写在技能里,把当前技能改成别的技能
作者: qq1065526265    时间: 2018-1-16 18:58
本帖最后由 qq1065526265 于 2018-1-16 19:27 编辑
lvkeai 发表于 2018-1-16 15:35
if (target.isStateAffected(348)) {
  var skillId = 3;
// Otherwise 否则


你这是要两个技能么  如果改成目标有某个状态攻击后给自己加状态呢   还有你的游戏是英文的怎么玩
作者: qq1065526265    时间: 2018-1-16 19:41
想问下大佬  你是程序员么 那么厉害    我没有任何基础 如果学js要多久这样  
作者: lvkeai    时间: 2018-1-16 20:57
qq1065526265 发表于 2018-1-16 18:58
你这是要两个技能么  如果改成目标有某个状态攻击后给自己加状态呢   还有你的游戏是英文的怎么玩{:4_86: ...

一样啊,判断里面写user.addState(4);游戏中文的吧,怎么可能英文,你下的steam试玩?属性里面选简体中文,我都试过了
作者: lvkeai    时间: 2018-1-16 21:00
qq1065526265 发表于 2018-1-16 19:41
想问下大佬  你是程序员么 那么厉害    我没有任何基础 如果学js要多久这样   ...

一年?我自学的,工作了三年,JS不难,没听过培训JS的都是用着用着就会了
作者: qq1065526265    时间: 2018-1-16 22:02
lvkeai 发表于 2018-1-16 20:57
一样啊,判断里面写user.addState(4);游戏中文的吧,怎么可能英文,你下的steam试玩?属性里面选简体中文 ...

是试玩版的  一开始游戏就是英文的 看不懂然后关了
作者: lvkeai    时间: 2018-1-16 22:22
qq1065526265 发表于 2018-1-16 22:02
是试玩版的  一开始游戏就是英文的 看不懂然后关了

那我明天更新一版,把你的那些技能怪也加上去
作者: qq1065526265    时间: 2018-1-16 22:41
lvkeai 发表于 2018-1-16 22:22
那我明天更新一版,把你的那些技能怪也加上去

谢谢  大佬  学js有什么书或者视频给我介绍介绍可以么
作者: lvkeai    时间: 2018-1-16 22:54
qq1065526265 发表于 2018-1-16 22:41
谢谢  大佬  学js有什么书或者视频给我介绍介绍可以么

先看视频吧,书还没到时候
作者: qq1065526265    时间: 2018-1-17 08:15
大佬 问个不是技能的问题 能不能让飞空艇前期飞不过山  后期通过事件可以飞过啊  还有让它可以触发角色上方的事件  问了很多人都不知道  或者叫我自己用事件做 但是怎么飞过水飞不过山啊 还有降落地点要在空地的
好无奈
作者: lvkeai    时间: 2018-1-17 09:43
qq1065526265 发表于 2018-1-17 08:15
大佬 问个不是技能的问题 能不能让飞空艇前期飞不过山  后期通过事件可以飞过啊  还有让它可以触发角色上方 ...

只能自己一个一个写了,插件只有静态的,过不去永远过不去那种变不了
作者: qq1065526265    时间: 2018-1-17 13:17
lvkeai 发表于 2018-1-17 09:43
只能自己一个一个写了,插件只有静态的,过不去永远过不去那种变不了

那算了    之前说的法爆我用暴击控制插件试了  不知道为啥放在技能里可以  放在状态里就不行  可是看视频的时候有说可以的
作者: lvkeai    时间: 2018-1-17 14:59
qq1065526265 发表于 2018-1-17 13:17
那算了    之前说的法爆我用暴击控制插件试了  不知道为啥放在技能里可以  放在状态里就不行  可 ...

哪个插件啊?
作者: qq1065526265    时间: 2018-1-17 16:04
lvkeai 发表于 2018-1-17 14:59
哪个插件啊?

YEP_X_CriticalControl   那个放状态里的应该是增加暴击几率的而不是赋予暴击的 不过我想应该是我要在技能那里先设置拥有0%的暴击率  就可以了  今晚回去再试试  
作者: 条野灬吉川富    时间: 2018-1-17 16:13
感谢分享
作者: lvkeai    时间: 2018-1-17 16:36
qq1065526265 发表于 2018-1-17 16:04
YEP_X_CriticalControl   那个放状态里的应该是增加暴击几率的而不是赋予暴击的 不过我想应该是我要在技 ...

value = this.applyCritical(value);
这个直接把伤害值变成暴击,你找个状态写进去试试,有伤害值value的状态
作者: sd981830    时间: 2018-1-17 22:08
为何不换个苹果X呢 顺便祝游戏大卖
作者: lvkeai    时间: 2018-1-17 22:26
sd981830 发表于 2018-1-17 22:08
为何不换个苹果X呢 顺便祝游戏大卖

苹果11都没用,做游戏还是要C++
作者: qq1065526265    时间: 2018-1-17 23:15
本帖最后由 qq1065526265 于 2018-1-17 23:29 编辑
lvkeai 发表于 2018-1-17 16:36
value = this.applyCritical(value);
这个直接把伤害值变成暴击,你找个状态写进去试试,有伤害值value的 ...


不懂  不过我弄好了明明是魔法还设置了魔法攻击  伤害公式也是魔法的  但是用加物理的才行-  -.     <Physical Critical Rate: +99%>
作者: m446016954    时间: 2018-1-17 23:45
请问为什么设置了剑伤后,遇怪就自动平砍了吖?
作者: qq1065526265    时间: 2018-1-17 23:51
???无效? 哪里错了  还是要什么插件?

YTIN}UB@(Y5[I)F62ZTER8F.png (19.58 KB, 下载次数: 27)

YTIN}UB@(Y5[I)F62ZTER8F.png

作者: lvkeai    时间: 2018-1-17 23:55
qq1065526265 发表于 2018-1-17 23:51
???无效? 哪里错了  还是要什么插件?

你插件打的比我还规范。。。
var skillId 写在判断外
var skillId=1
if(){
skillId=10
}else{
skillId=121
}
作者: lvkeai    时间: 2018-1-18 00:00
m446016954 发表于 2018-1-17 23:45
请问为什么设置了剑伤后,遇怪就自动平砍了吖?

还能自动攻击?这应该不是我的代码的问题,是你别的地方影响到了
作者: qq1065526265    时间: 2018-1-18 00:16
lvkeai 发表于 2018-1-18 00:00
还能自动攻击?这应该不是我的代码的问题,是你别的地方影响到了

感觉好难懂啊    你的剑伤没问题的我都在用了   你的游戏还没解  试玩版的改不了中文  因为游戏属性里面就是简体中文
作者: qq1065526265    时间: 2018-1-18 00:17
感觉好难懂啊 你说了我还是不懂   你的剑伤没问题的我都在用了   你的游戏还没解  试玩版的改不了中文  因为游戏属性里面就是简体中文
作者: lvkeai    时间: 2018-1-18 07:55
本帖最后由 lvkeai 于 2018-1-18 08:32 编辑
qq1065526265 发表于 2018-1-18 00:17
感觉好难懂啊 你说了我还是不懂   你的剑伤没问题的我都在用了   你的游戏还没解  试玩版的改不了 ...


还没更新啊,准备早上更新的。。。
已经更新了,不会是英文了
作者: lvkeai    时间: 2018-1-18 08:46
qq1065526265 发表于 2018-1-18 00:17
感觉好难懂啊 你说了我还是不懂   你的剑伤没问题的我都在用了   你的游戏还没解  试玩版的改不了 ...

var skillId=1
if(taget.is........){//判断状态
skillId=10
}else{
skillId=121
}
this.setSkill(skillId)
这样看得懂了吧,就一点不同
作者: qq1065526265    时间: 2018-1-18 13:18
lvkeai 发表于 2018-1-18 08:46
var skillId=1
if(taget.is........){//判断状态
skillId=10


我是这样理解的你看下对不对
var skillId=1  // 使用技能ID=1  也就是攻击指令?
if(taget.is........){  //判断目标状态
skillId=10   //符合条件则使用技能ID=10
}else{
skillId=121  //否则使用技能ID=121
}
this.setSkill(skillId)  //这里虽然说是技能动作但我还是不懂

作者: lvkeai    时间: 2018-1-18 13:31
qq1065526265 发表于 2018-1-18 13:18
我是这样理解的你看下对不对
var skillId=1  // 使用技能ID=1  也就是攻击指令?
if(taget.is........){  ...

嗯,对的
作者: 380617414    时间: 2018-1-18 16:48
也是默默学了一年MV,看到兄弟很是亲切,可惜我的游戏还没做出来,加个朋友吧,380617414。
作者: lvkeai    时间: 2018-1-18 16:55
380617414 发表于 2018-1-18 16:48
也是默默学了一年MV,看到兄弟很是亲切,可惜我的游戏还没做出来,加个朋友吧,380617414。 ...

我是辞职做了一年啊,抱着必死的决心要进游戏业,这其实是第二个RPG了,第一个就是普通RPG实在找不到什么亮点。
作者: qq1065526265    时间: 2018-1-19 00:37
本帖最后由 qq1065526265 于 2018-1-19 00:49 编辑

大佬 你准备换什么做游戏
作者: lvkeai    时间: 2018-1-19 04:52
qq1065526265 发表于 2018-1-19 00:37
大佬 你准备换什么做游戏

APPGAMEKIT2这个好像也是全平台运行,可惜没教程
作者: qq1065526265    时间: 2018-1-19 13:12
请教大佬  技能中判断变量ID:5的数值为7时怎么写?
作者: lvkeai    时间: 2018-1-19 13:29
qq1065526265 发表于 2018-1-19 13:12
请教大佬  技能中判断变量ID:5的数值为7时怎么写?

难道不是5改成7?
作者: qq1065526265    时间: 2018-1-19 14:52
本帖最后由 qq1065526265 于 2018-1-19 14:54 编辑
lvkeai 发表于 2018-1-19 13:29
难道不是5改成7?


不是  我说的数值是一个随机数 当这个变量5的随机数是7时则符合条件   算了你还是告诉我 一个攻击敌人的技能怎样写使其有15%的几率给自己加状态?  给自己加状态插件倒是有说 但不是有几率的 软件自带的只能给目标
作者: lvkeai    时间: 2018-1-19 15:34
qq1065526265 发表于 2018-1-19 14:52
不是  我说的数值是一个随机数 当这个变量5的随机数是7时则符合条件   算了你还是告诉我 一个攻 ...


<After Eval>
var rr = Math.floor(Math.random() * 100);
if(rr<=15){
user.addState(440)
}
</After Eval>
写在技能里
作者: qq1065526265    时间: 2018-1-19 16:20
lvkeai 发表于 2018-1-19 15:34
var rr = Math.floor(Math.random() * 100);
if(rr

谢谢大佬
作者: qq1065526265    时间: 2018-1-19 19:47
闲着蛋疼问大佬一个超麻烦的技能(或者是状态?)不知道大佬会不会打死我  当目标受到诅咒状态时身上的增益状态反转变成减益状态(hp回复率,mp回复率,攻击,防御,魔攻,魔防,速度,回避,命中,)怎么样够麻烦吧
作者: lvkeai    时间: 2018-1-19 21:49
qq1065526265 发表于 2018-1-19 19:47
闲着蛋疼问大佬一个超麻烦的技能(或者是状态?)不知道大佬会不会打死我  当目标受到诅咒状态时 ...

这个YEP有做过,不过我没看
作者: qq1065526265    时间: 2018-1-19 21:58
本帖最后由 qq1065526265 于 2018-1-19 22:00 编辑
lvkeai 发表于 2018-1-19 21:49
这个YEP有做过,不过我没看


yrp插件基本我就是只看翻译过的视频
作者: lvkeai    时间: 2018-1-19 22:06
qq1065526265 发表于 2018-1-19 21:58
yrp插件基本我就是只看翻译过的视频

他还有做技能的视频,我这几天在搞成就,有就发上来了,没做过的就晚点再弄。
作者: qq1065526265    时间: 2018-1-20 09:15
大佬如果这句写成判断敌人的状态不是7时 要怎么写  求教
if target.isStateAffected(7)
作者: lvkeai    时间: 2018-1-20 09:47
qq1065526265 发表于 2018-1-20 09:15
大佬如果这句写成判断敌人的状态不是7时 要怎么写  求教
if target.isStateAffected(7) ...

if !target.isStateAffected(7)
作者: qq1065526265    时间: 2018-1-20 20:42
本帖最后由 qq1065526265 于 2018-1-20 21:01 编辑

本来想写个追杀技能的  此次攻击目标死亡就攻击下一个敌人  结果在判断那里蒙了  怎么设置随机攻击一个敌人
作者: qq1065526265    时间: 2018-1-20 22:53
大佬  我试你的火焰追逐出问题了-  - 目标有状态时  好像是用属性攻击时就跳出来的

)@@O{}H(J07[0DS2M`TN3PQ.png (119.58 KB, 下载次数: 37)

)@@O{}H(J07[0DS2M`TN3PQ.png

作者: lvkeai    时间: 2018-1-20 23:19
qq1065526265 发表于 2018-1-20 22:53
大佬  我试你的火焰追逐出问题了-  - 目标有状态时  好像是用属性攻击时就跳出来的 ...

带属性的普通攻击?
作者: qq1065526265    时间: 2018-1-21 00:13
lvkeai 发表于 2018-1-20 23:19
带属性的普通攻击?

不是  魔法攻击  不管是火还是冰都会这样
作者: lvkeai    时间: 2018-1-21 08:38
qq1065526265 发表于 2018-1-21 00:13
不是  魔法攻击  不管是火还是冰都会这样

你插件都有吗?还是起冲突了?
作者: qq1065526265    时间: 2018-1-21 10:20
lvkeai 发表于 2018-1-21 08:38
你插件都有吗?还是起冲突了?

不知道  跳出这个窗口 而且所有攻击都会变成双层伤害  全是yep插件应该不会冲突的~~

[5_]_UU_~S0JTX7864MG{6Q.png (131.66 KB, 下载次数: 25)

[5_]_UU_~S0JTX7864MG{6Q.png

L`08N)[email protected] (45.58 KB, 下载次数: 28)

L`08N)I_P~ZZS@5UIZFKU8O.png

作者: lvkeai    时间: 2018-1-21 22:50
qq1065526265 发表于 2018-1-21 10:20
不知道  跳出这个窗口 而且所有攻击都会变成双层伤害  全是yep插件应该不会冲突的~~ ...

把target.startDamagePopup();去掉试试
作者: jokefeng    时间: 2018-1-21 23:27
一看技能就知道也是魔兽玩家~哈哈,加个好友呗
作者: lvkeai    时间: 2018-1-22 08:08
jokefeng 发表于 2018-1-21 23:27
一看技能就知道也是魔兽玩家~哈哈,加个好友呗


没有用魔兽技能啊,dota技能倒是有。怎么加好友?
作者: qq1065526265    时间: 2018-1-22 23:32
本帖最后由 qq1065526265 于 2018-1-22 23:49 编辑
lvkeai 发表于 2018-1-21 22:50
把target.startDamagePopup();去掉试试


不行还是跳出窗口  不过什么属性都是单次伤害了


<Custom Respond Effect>
if (target.result().hpDamage > 0) {
  var elements = this.getItemElements();
  while (elements.length > 0) {
    var element = elements.shift();
    if (element === 2) {
var targets=target.opponentsUnit().aliveMembers();
for(var a=0;a<targets.length;a++){
if(targets[a].isStateAffected(25)){
targets[a].addState(26);
targets[a].startAnimation(53);
}
}
    }        
  }
}
</Custom Respond Effect>

HQN[6`SNM62CML(7ZU{K0A2.png (119.93 KB, 下载次数: 21)

HQN[6`SNM62CML(7ZU{K0A2.png

作者: lvkeai    时间: 2018-1-23 08:49
qq1065526265 发表于 2018-1-22 23:32
不行还是跳出窗口  不过什么属性都是单次伤害了

你的火属性是2吗?
作者: qq1065526265    时间: 2018-1-23 23:36
本帖最后由 qq1065526265 于 2018-1-23 23:43 编辑
lvkeai 发表于 2018-1-23 08:49
你的火属性是2吗?


是的- . - 之前提示的物品改造插件有问题删掉之后就变成被动状态插件有问题了  心累
console.error(e);      机器翻译说控制台错误E
作者: lvkeai    时间: 2018-1-24 08:54
qq1065526265 发表于 2018-1-23 23:36
是的- . - 之前提示的物品改造插件有问题删掉之后就变成被动状态插件有问题了  心累
console.e ...

你不要大佬的插件混着用,用一个人的就不会出错了
作者: qq1065526265    时间: 2018-1-24 12:58
lvkeai 发表于 2018-1-24 08:54
你不要大佬的插件混着用,用一个人的就不会出错了

全是yep的
作者: lvkeai    时间: 2018-1-24 23:36
qq1065526265 发表于 2018-1-24 12:58
全是yep的

额。。。这,再仔细检查检查吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1