-
NPCs benutzen Bögen nicht mehr
Ein Gruppe feindlicher NPCs benutzt seltsamerweise seine Bögen nicht mehr. Wenn man weit genug weg ist, ziehen die NPCs andauernd ihre Nahkampfwaffe und stecken sie wieder weg. Das Ganze ist sehr merkwürdig, da weder an der Waffe noch an den NPCs etwas geändert wurde. Hat jemand von euch eine Idee woran es liegen könnte?
-
Hört sich an, als hättet ihr >= mit <= vertauscht.
Wurde an der B_ChoseWeapon was geändert?
"Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
-Korallenkette
-
Zitat von Bisasam
Hört sich an, als hättet ihr >= mit <= vertauscht.
Wurde an der B_ChoseWeapon was geändert?
B_ChoseWeapon? Wo soll die Datei sein? Oder meinst du B_SelectWeapon? Doch da wurde nichts geändert.
-
Ja sorry meinte select. Irgendwo in der ZS_Attack wird geregelt, welche Waffe zum Kämpfen benutzt wird. Vielleicht habt ihr da was verdreht.
"Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
-Korallenkette
-
Zitat von Bisasam
Ja sorry meinte select. Irgendwo in der ZS_Attack wird geregelt, welche Waffe zum Kämpfen benutzt wird. Vielleicht habt ihr da was verdreht.
Nein, das kann ich ausschließen. blackpirate hat mir aber mittlerweile geschrieben. Er hat ein paar Tests gemacht und herausgefunden, dass die NPCs normale Pfeile abschießen können. Nur keine Magiepfeile mehr, wie das bisher der Fall gewesen war. Das müsste aber zu beheben sein, wenn ich die Magiepfeile in B_CreateAmmo eintrage. Werde ich gleich mal ausprobieren.
-
Ich habe den NPCs 2 Magiepfeile direkt ins Inventar gelegt, die diese auch sogleich verschossen haben. Die fehlenden Magiepfeile waren also der Grund für den Fehler gewesen. Leider aber haben die NPCs auch nur diese 2 Pfeile benutzt. Danach trat der Fehler erneut auf. Das Problem ist also, dass, trotz meinen Eintragungen in B_CreateAmmo, keine Magiepfeile bei den NPCs erzeugt werden. Anbei der Scriptauszug.
Code:
// ******************************************************
// B_CreateAmmo
// ------------
// generiert Munition, wenn FK-Waffe equippt oder gezogen
// ******************************************************
func void B_CreateAmmo(var C_NPC slf)
{
var C_ITEM rangedWeapon;
if (Npc_IsInFightMode(slf, FMODE_FAR))
{
rangedWeapon = Npc_GetReadiedWeapon(slf);
}
else if (Npc_HasEquippedRangedWeapon (slf))
{
rangedWeapon = Npc_GetEquippedRangedWeapon(slf);
}
else //weder gezogenen noch equippten Bogen
{
return;
};
// ------ Munition auffüllen ------
if (rangedWeapon.munition == ItRw_Arrow)
{
if (Npc_HasItems(slf, ItRw_Arrow) < 10)
{
CreateInvItems (slf, ItRw_Arrow, 10);
};
}
else if (rangedWeapon.munition == ItRw_Addon_MagicArrow)
{
if (Npc_HasItems(slf, ItRw_Arrow) < 10)
{
CreateInvItems (slf, ItRw_Arrow, 10);
};
}
else if (rangedWeapon.munition == ItRw_Bolt)
{
if (Npc_HasItems(slf, ItRw_Bolt) < 10)
{
CreateInvItems (slf, ItRw_Bolt, 10);
};
}
else if (rangedWeapon.munition == ItRw_Addon_MagicBolt)
{
if (Npc_HasItems(slf, ItRw_Addon_MagicBolt) < 10)
{
CreateInvItems (slf, ItRw_Addon_MagicBolt, 10);
};
}
else if (rangedWeapon.munition == ItRw_Patrone)
{
if (Npc_HasItems(slf, ItRw_Patrone) < 10)
{
CreateInvItems (slf, ItRw_Patrone, 10);
};
};
};
-
Wie oft wird die Funktion aufgerufen? Wenn nur am Beginn der ZS_Attack o.ä. und nicht im Loop, ists klar warum es nur so wenig pfeile gibt.
edit: Stimmt, Leon hat recht. Da werden magische abgefragt und normale erzeugt.
"Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
-Korallenkette
Geändert von Bisasam (19.01.2018 um 09:22 Uhr)
-
Falls der NPC magische Pfeile benötigt erzeugst du trotzdem nur normale Pfeile, bei den magischen Bolzen hast du es richtig gemacht
-
Warum nicht einfach so?:
Code:
func void B_CreateAmmo(var C_NPC slf)
{
var C_ITEM rangedWeapon;
if (Npc_IsInFightMode(slf, FMODE_FAR))
{
rangedWeapon = Npc_GetReadiedWeapon(slf);
}
else if (Npc_HasEquippedRangedWeapon (slf))
{
rangedWeapon = Npc_GetEquippedRangedWeapon(slf);
}
else //weder gezogenen noch equippten Bogen
{
return;
};
// ------ Munition auffüllen ------
if(Npc_HasItems(slf, rangedWeapon.munition) < 10)
{
CreateInvItems (slf, rangedWeapon.munition, 10);
};
};
-
Npc_IsInFightMode funktioniert (zumindest in G1) nicht immer. Da ist man mit Npc_HasReadiedRangedWeapon besser beraten.
"Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
-Korallenkette
-
Ja, das hatte ich jetzt einfach übernommen.
Geht um den Teil:
Code:
// ------ Munition auffüllen ------
if(Npc_HasItems(slf, rangedWeapon.munition) < 10)
{
CreateInvItems (slf, rangedWeapon.munition, 10);
};
-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|