「OnBlocked」の編集履歴(バックアップ)一覧はこちら
「OnBlocked」(2005/12/01 (木) 20:50:47) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
----
・OnBlockedに入るスクリプト。
・扉に進路を邪魔された時に発動する。
----
#Contents
**NWNデフォルト(翻訳付き)
void main()
{
// 妨害しているドアを習得
object oDoor = GetBlockingDoor();
if (GetObjectType(oDoor) == OBJECT_TYPE_CREATURE)
{
// * Increment number of times blocked
//何かに3回ブロックされたら(身動きが取れなければ)飛び道具に持ち替えて攻撃する
//オブジェクトの"X2_NUMTIMES_BLOCKED"を+1する。
/*SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED", GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") + 1);
if (GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") > 3)
{
// ()の内容を喋る
SpeakString("Blocked by creature");
// 自分のローカル関数"X2_NUMTIMES_BLOCKED"を0にセットする
SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED",0);
// 全てのアクションを止める
ClearAllActions();
// 一番近い敵をoEnemyとして習得
object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
// それが有効なら飛び道具を装備して攻撃する
if (GetIsObjectValid(oEnemy) == TRUE)
{
ActionEquipMostDamagingRanged(oEnemy);
ActionAttack(oEnemy);
}
return;
} */
return;
}
//知能が5以上なら(逆に言うと5以下は扉を開けない)
if(GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 5)
{
// 知能が7以上でドアが開けられるならドアを開ける
if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_OPEN) && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 7 )
{
DoDoorAction(oDoor, DOOR_ACTION_OPEN);
}
// ドアが開かないならドアを攻撃する。
else if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_BASH))
{
DoDoorAction(oDoor, DOOR_ACTION_BASH);
}
}
}
**スクリプトver1.000(翻訳付き)
//::///////////////////////////////////////////////
//:: Remodeling On Blocked
//:: VG_C1_ONBLOCK
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
何かに自分の移動を妨げられた時に発動する。
1.知力5以下だと扉には何もしない
2.知力7以上なら扉を開けようとする
3.知力7以上で扉が開けられなければ壊す
4.扉が開かなければ無視する
5.何かに移動を邪魔された場合飛び道具に持ち変える
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
void main()
{
// 妨害しているドアを習得
object oDoor = GetBlockingDoor();
if (GetObjectType(oDoor) == OBJECT_TYPE_CREATURE)
{
// * Increment number of times blocked
//何かに3回ブロックされたら(身動きが取れなければ)飛び道具に持ち替えて攻撃する
//オブジェクトの"X2_NUMTIMES_BLOCKED"を+1する。
/*SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED", GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") + 1);
if (GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") > 3)
{
// ()の内容を喋る
SpeakString("Blocked by creature");
// 自分のローカル関数"X2_NUMTIMES_BLOCKED"を0にセットする
SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED",0);
// 全てのアクションを止める
ClearAllActions();
// 一番近い敵をoEnemyとして習得
object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
// それが有効なら飛び道具を装備して攻撃する
if (GetIsObjectValid(oEnemy) == TRUE)
{
ActionEquipMostDamagingRanged(oEnemy);
ActionAttack(oEnemy);
}
return;
} */
return;
}
//知能が5以上なら(逆に言うと5以下は扉を開けない)
if(GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 5)
{
// 知能が7以上でドアが開けられるならドアを開ける
if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_OPEN) && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 7 )
{
DoDoorAction(oDoor, DOOR_ACTION_OPEN);
}
// ドアが開かないならドアを攻撃する。
else if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_BASH))
{
DoDoorAction(oDoor, DOOR_ACTION_BASH);
}
}
}
----
・OnBlockedに入るスクリプト。
・扉に進路を邪魔された時に発動する。
----
#Contents
**NWNデフォルト(翻訳付き)
void main()
{
// 妨害しているドアを習得
object oDoor = GetBlockingDoor();
if (GetObjectType(oDoor) == OBJECT_TYPE_CREATURE)
{
// * Increment number of times blocked
//何かに3回ブロックされたら(身動きが取れなければ)飛び道具に持ち替えて攻撃する
//オブジェクトの"X2_NUMTIMES_BLOCKED"を+1する。
/*SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED", GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") + 1);
if (GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") > 3)
{
// ()の内容を喋る
SpeakString("Blocked by creature");
// 自分のローカル関数"X2_NUMTIMES_BLOCKED"を0にセットする
SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED",0);
// 全てのアクションを止める
ClearAllActions();
// 一番近い敵をoEnemyとして習得
object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
// それが有効なら飛び道具を装備して攻撃する
if (GetIsObjectValid(oEnemy) == TRUE)
{
ActionEquipMostDamagingRanged(oEnemy);
ActionAttack(oEnemy);
}
return;
} */
return;
}
//知能が5以上なら(逆に言うと5以下は扉を開けない)
if(GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 5)
{
// 知能が7以上でドアが開けられるならドアを開ける
if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_OPEN) && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 7 )
{
DoDoorAction(oDoor, DOOR_ACTION_OPEN);
}
// ドアが開かないならドアを攻撃する。
else if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_BASH))
{
DoDoorAction(oDoor, DOOR_ACTION_BASH);
}
}
}
**スクリプトver1.000(翻訳付き)
//::///////////////////////////////////////////////
//:: Remodeling On Blocked
//:: VG_C1_ONBLOCK
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
何かに自分の移動を妨げられた時に発動する。
1.知力5以下だと扉には何もしない
2.知力7以上なら扉を開けようとする
3.知力7以上で扉が開けられなければ壊す
4.扉が開かなければ無視する
5.何かに移動を邪魔された場合飛び道具に持ち変える
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
void main()
{
// 妨害しているドアを習得
object oDoor = GetBlockingDoor();
if (GetObjectType(oDoor) == OBJECT_TYPE_CREATURE)
{
// * Increment number of times blocked
//何かに3回ブロックされたら(身動きが取れなければ)飛び道具に持ち替えて攻撃する
//オブジェクトの"X2_NUMTIMES_BLOCKED"を+1する。
*SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED", GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") + 1);
if (GetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED") > 3)
{
// 自分のローカル関数"X2_NUMTIMES_BLOCKED"を0にセットする
SetLocalInt(OBJECT_SELF, "X2_NUMTIMES_BLOCKED",0);
// 全てのアクションを止める
ClearAllActions();
// 一番近い敵をoEnemyとして習得
object oEnemy = GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
// それが有効なら飛び道具を装備して攻撃する
if (GetIsObjectValid(oEnemy) == TRUE)
{
ActionEquipMostDamagingRanged(oEnemy);
ActionAttack(oEnemy);
}
return;
}
return;
}
//知能が5以上なら(逆に言うと5以下は扉を開けない)
if(GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 5)
{
// 知能が7以上でドアが開けられるならドアを開ける
if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_OPEN) && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 7 )
{
DoDoorAction(oDoor, DOOR_ACTION_OPEN);
}
// ドアが開かないならドアを攻撃する。
else if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_BASH))
{
DoDoorAction(oDoor, DOOR_ACTION_BASH);
}
}
}