Chara(角色)
<p><strong>简要描述:</strong> </p>
<ul>
<li>出现在游戏中的角色</li>
</ul>
<p><strong>属性:</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">属性</th>
<th>类型</th>
<th>说明</th>
<th>使用范例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">id</td>
<td><code>string</code></td>
<td>角色标识</td>
</tr>
<tr>
<td style="text-align: left;">chaName</td>
<td><code>string</code></td>
<td>角色名称</td>
</tr>
<tr>
<td style="text-align: left;">cell</td>
<td><code>Vector2</code></td>
<td>角色在棋盘中的位置</td>
<td>左上角<code>Vector2(0, 0)</code> 右下角<code>Vector2(9, 5)</code></td>
</tr>
<tr>
<td style="text-align: left;">position</td>
<td><code>Vector2</code></td>
<td>角色在画面上的位置</td>
<td>一格表示一百,通常是cell的一百倍</td>
</tr>
<tr>
<td style="text-align: left;">moveSpeed</td>
<td><code>int</code></td>
<td>角色的移动速度,默认300,既每秒移动3格(一格100)</td>
</tr>
<tr>
<td style="text-align: left;">aiOn</td>
<td><code>boolean</code></td>
<td>是否开启ai自动攻击</td>
<td>为<code>false</code>则不会进行攻击,但技能CD会照转</td>
</tr>
<tr>
<td style="text-align: left;">aiCha</td>
<td><code>Chara</code></td>
<td>当前的仇恨目标</td>
<td>为友军则会攻击友军</td>
</tr>
<tr>
<td style="text-align: left;">att</td>
<td><code>Att</code></td>
<td>角色呈现的最终属性</td>
<td>修改无效</td>
</tr>
<tr>
<td style="text-align: left;">attInfo</td>
<td><code>Att</code></td>
<td>临时属性(会在上下场时清空)</td>
<td>参考绿巨人的血量成长</td>
</tr>
<tr>
<td style="text-align: left;">attCoe</td>
<td><code>Att</code></td>
<td>角色的基础属性点</td>
</tr>
<tr>
<td style="text-align: left;">attAdd</td>
<td><code>Att</code></td>
<td>角色的附加属性值</td>
</tr>
<tr>
<td style="text-align: left;">buffs</td>
<td><code>Array</code></td>
<td>角色身上拥有的buff列表</td>
<td>清空此列表会导致装备失效</td>
</tr>
<tr>
<td style="text-align: left;">items</td>
<td><code>Array</code></td>
<td>装备列表</td>
</tr>
<tr>
<td style="text-align: left;">isMoveIng</td>
<td><code>boolean</code></td>
<td>角色是否在移动中</td>
</tr>
<tr>
<td style="text-align: left;">isDeath</td>
<td><code>boolean</code></td>
<td>角色是否已死亡</td>
</tr>
<tr>
<td style="text-align: left;">isSumm</td>
<td><code>boolean</code></td>
<td>角色是否召唤生物</td>
</tr>
<tr>
<td style="text-align: left;">skillStrs</td>
<td><code>Array</code></td>
<td>技能描述文本列表</td>
</tr>
<tr>
<td style="text-align: left;">atkEff</td>
<td><code>string</code></td>
<td>攻击时的特效名字</td>
<td><code>atkEff = "atk_dao"</code></td>
</tr>
<tr>
<td style="text-align: left;">lv</td>
<td><code>int</code></td>
<td>角色等级</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">skills</td>
<td><code>Array</code></td>
<td>cd技能列表</td>
<td>每一个cd技能都拥有<code>id</code> <code>cd</code> <code>nowTime</code>三个属性</td>
</tr>
<tr>
<td style="text-align: left;">HurtType</td>
<td><code>enum</code></td>
<td>伤害类型<code>PHY/MGI/REAL</code> 代表<code>物理/魔法/真实</code></td>
<td><code>Chara.HurtType.MGI</code></td>
</tr>
<tr>
<td style="text-align: left;">AtkType</td>
<td><code>enum</code></td>
<td>攻击类型<code>NORMAL/SKILL/EFF/MISS</code> 代表<code>正常/技能/特效/落空</code></td>
<td><code>if atkInfo.atkType == Chara.AtkType.NORMAL:</code></td>
</tr>
<tr>
<td style="text-align: left;">atkIng</td>
<td><code>var</code></td>
<td>判断是否在攻击,只读</td>
</tr>
<tr>
<td style="text-align: left;">sprcPos</td>
<td><code>Vector2</code></td>
<td>数值和特效的出现点,默认角色图片中心</td>
</tr>
<tr>
<td style="text-align: left;">normalSpr</td>
<td><code>Object</code></td>
<td>角色图片的偏移</td>
<td>X轴以右为正方向,Y轴以下位正方向。向左偏移40像素 <code>normalSpr.position = Vector2(-40, 0)</code></td>
</tr>
<tr>
<td style="text-align: left;">isDrag</td>
<td><code>boolean</code></td>
<td>角色是否可拖拽</td>
</tr>
<tr>
<td style="text-align: left;">dire</td>
<td><code>int</code></td>
<td>角色当前的左右面向</td>
<td>1朝右,-1朝左</td>
</tr>
<tr>
<td style="text-align: left;">evos</td>
<td><code>Array</code></td>
<td>角色的进化分支列表</td>
</tr>
</tbody>
</table>
<p><strong>信号列表</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">事件名</th>
<th style="text-align: left;">参数</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">onHurt(atkInfo)</td>
<td style="text-align: left;">aktInfo:伤害信息</td>
<td>角色受伤时</td>
</tr>
<tr>
<td style="text-align: left;">onHurtEnd(atkInfo)</td>
<td style="text-align: left;">aktInfo:伤害信息</td>
<td>角色受伤后</td>
</tr>
<tr>
<td style="text-align: left;">onPlusHp(val)</td>
<td style="text-align: left;">val:恢复值</td>
<td>恢复生命时</td>
</tr>
<tr>
<td style="text-align: left;">onKillChara(atkInfo)</td>
<td style="text-align: left;">aktInfo:伤害信息</td>
<td>击杀其他单位时</td>
</tr>
<tr>
<td style="text-align: left;">onDeath(atkInfo)</td>
<td style="text-align: left;">aktInfo:伤害信息</td>
<td>死亡时</td>
</tr>
<tr>
<td style="text-align: left;">onAtkChara(atkInfo)</td>
<td style="text-align: left;">atkInfo:伤害信息</td>
<td>造成伤害时</td>
</tr>
<tr>
<td style="text-align: left;">onChangeTeam(team)</td>
<td style="text-align: left;">team:队伍编号</td>
<td>改变队伍时</td>
</tr>
<tr>
<td style="text-align: left;">onPressed(cha)</td>
<td style="text-align: left;">cha:点击的角色</td>
<td>角色被点击时</td>
</tr>
<tr>
<td style="text-align: left;">onAddItem(item)</td>
<td style="text-align: left;">item:添加的道具</td>
<td>添加道具时</td>
</tr>
<tr>
<td style="text-align: left;">onDelItem(item)</td>
<td style="text-align: left;">item:删除的道具</td>
<td>删除道具时</td>
</tr>
<tr>
<td style="text-align: left;">onCastCdSkill(id)</td>
<td style="text-align: left;">id:技能编号</td>
<td>施放技能时</td>
</tr>
<tr>
<td style="text-align: left;">onAddBuff(buff)</td>
<td style="text-align: left;">buff:添加的buff</td>
<td>添加buff时</td>
</tr>
<tr>
<td style="text-align: left;">onCharaDel(cha)</td>
<td style="text-align: left;">cha:被删除的角色</td>
<td>被删除时</td>
</tr>
<tr>
<td style="text-align: left;">onNewChara(cha)</td>
<td style="text-align: left;">cha:被召唤角色</td>
<td>召唤生物时</td>
</tr>
</tbody>
</table>
<p><strong>方法列表</strong> </p>
<table>
<thead>
<tr>
<th style="text-align: left;">方法名</th>
<th style="text-align: left;">参数类型</th>
<th>说明</th>
<th style="text-align: left;">返回类型</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">addSkillTxt(string)</td>
<td style="text-align: left;"><code>string</code></td>
<td>给角色技能描述</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">moveCell(cell)</td>
<td style="text-align: left;"><code>Vector2</code></td>
<td>向指定量移动位置</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">setCell(cell)</td>
<td style="text-align: left;"><code>Vector2</code></td>
<td>向指定位置移动,若指定位置被占用,则移动失败</td>
<td style="text-align: left;"><code>boolean</code></td>
</tr>
<tr>
<td style="text-align: left;">matCha(cell)</td>
<td style="text-align: left;"><code>Vector2</code></td>
<td>获取目标位置的单位,没有则返回空</td>
<td style="text-align: left;"><code>Chara</code>/<code>null</code></td>
</tr>
<tr>
<td style="text-align: left;">isMatin(cell)</td>
<td style="text-align: left;"><code>Vector2</code></td>
<td>判断目标位置是否在地图内</td>
<td style="text-align: left;"><code>boolean</code></td>
</tr>
<tr>
<td style="text-align: left;">getCellChas(cell, ran, mTeam)</td>
<td style="text-align: left;"><code>Vector2</code>/<code>int</code>/<code>int</code></td>
<td>从cell格子开始,获取ran范围内的mTeam单位(0:所有,1:敌人,2:友军)</td>
<td style="text-align: left;"><code>Array</code></td>
</tr>
<tr>
<td style="text-align: left;">getAllChas(mTeam)</td>
<td style="text-align: left;"><code>int</code>队伍编号 (0:所有 1:敌军 2:友军)</td>
<td>获取队伍内所有单位</td>
<td style="text-align: left;"><code>Array</code></td>
</tr>
<tr>
<td style="text-align: left;">rndChas(chas,num)</td>
<td style="text-align: left;"><code>Array</code>/<code>int</code></td>
<td>从一个单位组 返回随机num个单位 若只有一个单位就返回一个</td>
<td style="text-align: left;"><code>Chara</code>/<code>Array</code></td>
</tr>
<tr>
<td style="text-align: left;">hurtChara(cha,val,hurtType,atkType )</td>
<td style="text-align: left;">cha:目标单位 val:伤害值 hurtType:伤害类型 atkType:攻击类型</td>
<td>对目标单位造成伤害,无法触发暴击等普攻效果</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">hurtArit(atkInfo)</td>
<td style="text-align: left;">atkInfo:伤害信息</td>
<td>造成伤害 需要自己设置 攻击信息</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">plusHp(val,veff)</td>
<td style="text-align: left;">val:恢复量 veff:是否显示特效<code>boolean</code>默认显示</td>
<td>恢复血量,为负则扣血,若通过此方法将单位扣至负血,则该单位无法死亡,需要注意</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">upAtt()</td>
<td style="text-align: left;">--</td>
<td>立即更新属性,特殊时才使用,否则都会自动更新</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">addBuff(buff)</td>
<td style="text-align: left;">buff:要添加的状态</td>
<td>给角色添加Buff</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">hasBuff(id)</td>
<td style="text-align: left;">id:buff的id</td>
<td>查找是否有目标id的buff</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">delBuff(buff)</td>
<td style="text-align: left;">buff:要删除的buff</td>
<td>删除目标buff</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">delAllBuff()</td>
<td style="text-align: left;">--</td>
<td>删除除了装备以外的buff,也会删掉装备效果</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">addItem(item)</td>
<td style="text-align: left;">item:目标装备</td>
<td>添加装备,仅临时添加给角色</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">delItem(item)</td>
<td style="text-align: left;">item:目标装备</td>
<td>删除装备,仅从角色身上删除</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">hasItem(id)</td>
<td style="text-align: left;">id:装备id</td>
<td>是否有目标装备</td>
<td style="text-align: left;"><code>boolean</code></td>
</tr>
<tr>
<td style="text-align: left;">get_team()</td>
<td style="text-align: left;"></td>
<td>返回角色的队伍</td>
<td style="text-align: left;"><code>int</code></td>
</tr>
<tr>
<td style="text-align: left;">addCdSkill(id,cd)</td>
<td style="text-align: left;">id:技能id cd:冷却时间</td>
<td>添加cd型技能</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">getSkill(id)</td>
<td style="text-align: left;">id:技能id</td>
<td>获取目标技能信息</td>
<td style="text-align: left;"><code>Object</code></td>
</tr>
<tr>
<td style="text-align: left;">revive(hp)</td>
<td style="text-align: left;">hp:复活恢复的血量,疑似无效</td>
<td>复活角色,当角色死透时方可调用</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">cellRan(v,cell )</td>
<td style="text-align: left;">v:位置1 cell:位置2(为空时为自己的位置)</td>
<td>返回两个位置之间的距离</td>
<td style="text-align: left;"><code>int</code></td>
</tr>
<tr>
<td style="text-align: left;">normalAtkChara(cha)</td>
<td style="text-align: left;">cha:目标角色</td>
<td>产生普通攻击</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">newChara(id,cell)</td>
<td style="text-align: left;">id:召唤的角色id cell:位置</td>
<td>召唤单位到指定位置</td>
<td style="text-align: left;"><code>Chara</code></td>
</tr>
<tr>
<td style="text-align: left;">_onHurt(atkInfo)</td>
<td style="text-align: left;">atkInfo:攻击信息</td>
<td>被攻击事件</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onKillChara(atkInfo)</td>
<td style="text-align: left;">atkInfo:攻击信息</td>
<td>杀死单位时</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onDeath(atkInfo)</td>
<td style="text-align: left;">atkInfo:攻击信息</td>
<td>角色死亡时,此时角色尚未死透</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onAtkChara(atkInfo)</td>
<td style="text-align: left;">atkInfo:攻击信息</td>
<td>发起攻击时,可以修改攻击伤害,但无法修改暴击</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onBattleStart()</td>
<td style="text-align: left;"></td>
<td>战斗开始时</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onBattleEnd()</td>
<td style="text-align: left;"></td>
<td>战斗结束时</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onCharaDel(cha)</td>
<td style="text-align: left;">cha:被删除的角色</td>
<td>被删除时</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_upS()</td>
<td style="text-align: left;"></td>
<td>每秒执行</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">newEff(name,offset,isUi)</td>
<td style="text-align: left;">name:特效名称(字符串) offset:偏移 isUi:是否时ui</td>
<td>创建一个新的特效</td>
<td style="text-align: left;"><code>Eff</code></td>
</tr>
<tr>
<td style="text-align: left;">remove()</td>
<td style="text-align: left;"></td>
<td>移除角色</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onNormalAtk(cha)</td>
<td style="text-align: left;">cha:普攻目标</td>
<td>进行普攻时</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
<tr>
<td style="text-align: left;">_onAtkInfo(atkInfo)</td>
<td style="text-align: left;">atkInfo:攻击信息</td>
<td>获得攻击信息时,攻击或受伤均会触发,同时是否暴击等操作可以在此进行</td>
<td style="text-align: left;"><code>void</code></td>
</tr>
</tbody>
</table>
<p><strong>备注</strong> </p>
<ul>
<li>更多返回错误代码请看首页的错误代码描述</li>
</ul>