147 lines
7.1 KiB
Text
147 lines
7.1 KiB
Text
|
|
*start
|
|
|
|
; ①
|
|
*wait
|
|
[s cond="bao.players[tf.killedPlayerId].nowSpriteId==stStanding && tf.debugMode"]
|
|
|
|
[eval exp="bao.conductor.debugLevel=tkdlNone"]
|
|
[if exp="bao.players[tf.killedPlayerId].nowSpriteId!=stDown && bao.players[tf.killedPlayerId].nowSpriteId!=stDamage3"]
|
|
[wait time=100]
|
|
[jump target=*wait]
|
|
[endif]
|
|
[eval exp="bao.conductor.debugLevel=tkdlVerbose"]
|
|
|
|
; 戻る→②へ
|
|
[retkag3]
|
|
[pause]
|
|
; ③
|
|
|
|
[iscript]
|
|
|
|
tf.inRescueMode = true;
|
|
bao.informLayer.rescueGaugeLayer.value = 0;
|
|
|
|
bao.setObject(%['storage'=>'longPressAttack','shadow'=>false,'parentsprite'=>tf.livingPlayer,'absolute'=>40000]);
|
|
|
|
tf.enemySet = true;
|
|
switch(tf.killedByKind[0]){
|
|
case "ジャイアントスクイッド":
|
|
case "ベイゼル":
|
|
case "触手基部":
|
|
case "レヴィエラ":
|
|
case "エルゴネア":
|
|
case "デスオーク":
|
|
case "ヘルオーク":
|
|
tf.enemySet = false;
|
|
break;
|
|
}
|
|
|
|
|
|
|
|
if(tf.killedBy[0] !== void && isvalid tf.killedBy[0]){
|
|
// プレイヤーキャラを殺した敵をそのプレイヤーの近くへ移動させる
|
|
if(!tf.isExistBoss && (tf.killedBy[0].nowSpriteId==stStanding || tf.killedBy[0].nowSpriteId==stWalk) && tf.killedBy[0].rootY >= bao.stageLayer.topLine){
|
|
tf.tmp = "[waitaction][eval exp='[move path=("+(bao.players[tf.killedPlayerId].rootX)+","+(bao.players[tf.killedPlayerId].rootY)+",0) mode=absolute]']";
|
|
tf.killedBy[0].addQueue(tf.tmp);
|
|
}
|
|
|
|
switch(tf.killedByKind[0]){
|
|
case "戦闘員":
|
|
case "女戦闘員":
|
|
case "上級戦闘員":
|
|
case "スライム":
|
|
case "ゴブリン兵":
|
|
case "一般人":
|
|
case "オルトロス":
|
|
case "邪妖蟲":
|
|
case "オーガ兵":
|
|
tf.enemyKind = tf.killedByKind[0];
|
|
break;
|
|
default:
|
|
tf.enemyKind = "e01";
|
|
break;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
dm("■■■■ tf.killedBy : " + tf.killedBy[0]);
|
|
//dm(tf.tmp);
|
|
// for(var i=0; i<tf.killedBy[0].movingTable.count; i++){
|
|
// tf.killedBy[0].movingTable[i].dm();
|
|
// }
|
|
|
|
[endscript]
|
|
|
|
[if exp="tf.doubleKO"]
|
|
[eval exp="dm('tf.doubleKO is true')"]
|
|
[jump target=*end]
|
|
[endif]
|
|
[wait time=100]
|
|
|
|
|
|
;[if exp="tf.enemySet"]
|
|
; [enemy x=right kind=e01]
|
|
; [enemy x=left kind=e01]
|
|
; [enemy x=left kind=&tf.enemyKind]
|
|
;[endif]
|
|
[eval exp="tf.time = 4000"]
|
|
|
|
*loop
|
|
[iscript]
|
|
tf.enemyCount = 0;
|
|
for(var i=0; i<bao.enemies.count; i++){
|
|
if(bao.enemies[i].kind != "モブ"){
|
|
tf.enemyCount++;
|
|
}
|
|
}
|
|
|
|
if(tf.time > 2000) tf.time -= 100;
|
|
[endscript]
|
|
|
|
[if exp="tf.enemyCount < 5 && tf.enemySet"]
|
|
[if exp="(f.stage == 2 && bao.stageLayer.dispLeft>700) || bao.stageLayer.getAltitude(bao.internalWidth,bao.stageLayer.topLine) > 0"]
|
|
[eval exp="tf.enemyLR = 'left'"]
|
|
[else]
|
|
[eval exp="tf.enemyLR = (intrandom(0,1)==0)? 'left': 'right'"]
|
|
[endif]
|
|
|
|
; [enemy kind=e01]
|
|
[if exp="f.stage != 2"]
|
|
[enemy kind=&((intrandom(0,1)==0)?"e01":"e02") x=&tf.enemyLR]
|
|
[else]
|
|
[enemy kind=&((intrandom(0,1)==0)?"e01":"e03") x=&tf.enemyLR]
|
|
[endif]
|
|
[enemy kind=&tf.enemyKind x=&tf.enemyLR]
|
|
[enemy kind=&tf.enemyKind x=&tf.enemyLR cond="tf.enemyKind!='オーガ兵'"]
|
|
[endif]
|
|
|
|
[iscript]
|
|
|
|
// 抱きつきに行くのを設定し直したり
|
|
if(tf.killedBy[0] === void || !isvalid tf.killedBy[0] || tf.killedBy[0].scriptQueue.count==0){
|
|
var e = bao.getNearestEnemy(tf.killedPlayer, tf.enemyKind);
|
|
if(e !== void && isvalid e && !e.isBoss && (e.nowSpriteId==stStanding || e.nowSpriteId==stWalk)){
|
|
tf.killedBy[0] = e;
|
|
tf.tmp = "[eval exp='[move path=("+(bao.players[tf.killedPlayerId].rootX)+","+(bao.players[tf.killedPlayerId].rootY)+",0) mode=absolute]']";
|
|
tf.killedBy[0].addQueue(tf.tmp);
|
|
//dm("tf.killedBy[0] : " + tf.killedBy[0] + " / tf.tmp : " + tf.tmp);
|
|
}
|
|
}
|
|
|
|
[endscript]
|
|
|
|
|
|
[wait time=&tf.time]
|
|
|
|
|
|
[jump target=*loop]
|
|
|
|
*end
|
|
;[waittrig name=rescue]
|
|
[eval exp='dm("■レスキューモード終了")']
|
|
|
|
; 戻る→④へ
|
|
[retkag3]
|
|
[returnextra]
|