-
Vielen Dank für die Skripte, Lord Sargon! Ließen sich wunderbar parsen und funktionierte auch (fast) alles auf Anhieb. Zumindest soweit ich getestet habe.
Mal schauen, bin jetzt das Wochenende nicht da, da probiere ich später weiter.
Muss jetzt erstmal noch den einen Fehler suchen und beseitigen, aber sonst siehts gut aus.
LG
-
Ich bins wieder
Also ich habe jetzt einiges ausprobiert und mir die Skripte durchgeschaut, in der Hoffnung, zwei Fehler beheben zu können:
Zum Einen den bekannten Bug, dass man die Klaue Beliars sofort nach Spielbeginn im Turm von Xardas erbeten kann, obwohl man die Klaue noch gar nicht im Inventar und Raven noch nicht besiegt hat.
Und zum Zweiten ein Bug, dass ich den Stachel Beliars nicht als Pfeil erbeten kann. Sobald das Bogen-Talent höher als das Armbrust-Talent ist, soll der Stachel Beliars ja ein Pfeil und kein Bolzen mehr sein. Das klappt auch nicht, ich bekomme keinen Pfeil ins Inventar gelegt und danach sind auch die Auswahloptionen am Beliarschrein weg, die Klaue aufzubessern oder wieder in etwas anderes umzuwandeln. (Bolzen funktioniert einwandfrei und ist auch benutzbar!)
Aber erstmal zum ersten Bug, der ja allseits bekannt ist. Habe mir den Code dazu angeschaut und kann eigentlich keine Fehler erkennen... Was ich aber nicht so ganz verstehe sind folgende Codezeilen:
Code:
func int C_SCHASBELIARSRUNE()
{
if NPC_HASITEMS(HERO, ITRU_BELIARSRAGE) == TRUE || NPC_HASITEMS(HERO, ITRU_SUCKENERGY) == TRUE || NPC_HASITEMS(HERO, ITRU_GREENTENTACLE) == TRUE || NPC_HASITEMS(HERO, ITRU_SWARM) == TRUE || NPC_HASITEMS(HERO, ITRU_SKULL) == TRUE || NPC_HASITEMS(HERO, ITRU_SUMMONZOMBIE) == TRUE || NPC_HASITEMS(HERO, ITRU_SUMMONGUARDIAN) == TRUE || NPC_HASITEMS(HERO, ITRU_ZEITSPALT) == TRUE
{
return TRUE;
};
return FALSE;
};
func int C_SCHASBELIARSRANGEDWEAPON()
{
if BELIARW_UPGRADETOARROW > 0 || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_01) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_02) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_03) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_04) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_05) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_06) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_07) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_08) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_09) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_10) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_11) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_12) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_13) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_14) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_15) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_16) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_17) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_18) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_19) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_20) || BELIARW_UPGRADETOBOLT > 0 || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_01) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_02) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_03) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_04) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_05) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_06) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_07) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_08) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_09) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_10) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_11) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_12) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_13) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_14) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_15) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_16) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_17) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_18) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_19) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_20)
{
return TRUE;
};
return FALSE;
};
func int C_SCHASBELIARSMELEEWEAPON()
{
if NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_RAVEN) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_01) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_02) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_03) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_04) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_05) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_06) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_07) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_08) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_09) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_10) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_11) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_12) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_13) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_14) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_15) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_16) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_17) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_18) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_19) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_1H_20) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_01) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_02) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_03) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_04) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_05) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_06) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_07) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_08) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_09) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_10) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_11) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_12) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_13) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_14) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_15) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_16) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_17) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_18) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_19) || NPC_HASITEMS(HERO, ITMW_BELIARWEAPON_2H_20)
{
return TRUE;
};
return FALSE;
};
func int C_SCHASBELIARSWEAPON()
{
if C_SCHASBELIARSMELEEWEAPON() || C_SCHASBELIARSRUNE() || C_SCHASBELIARSRANGEDWEAPON()
{
return TRUE;
};
return FALSE;
};
func int C_ISITEMBELIARSWEAPON(var C_ITEM WEAP)
{
if HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_RAVEN) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_01) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_02) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_03) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_04) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_05) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_06) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_07) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_08) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_09) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_10) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_11) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_12) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_13) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_14) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_15) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_16) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_17) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_18) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_19) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_1H_20) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_01) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_02) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_03) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_04) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_05) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_06) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_07) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_08) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_09) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_10) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_11) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_12) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_13) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_14) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_15) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_16) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_17) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_18) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_19) == TRUE || HLP_ISITEM(WEAP, ITMW_BELIARWEAPON_2H_20) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_01) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_02) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_03) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_04) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_05) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_06) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_07) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_08) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_09) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_10) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_11) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_12) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_13) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_14) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_15) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_16) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_17) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_18) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_19) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_ARROW_20) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_01) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_02) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_03) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_04) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_05) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_06) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_07) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_08) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_09) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_10) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_11) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_12) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_13) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_14) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_15) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_16) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_17) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_18) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_19) == TRUE || HLP_ISITEM(WEAP, ITRW_BELIARWEAPON_BOLT_20) == TRUE || HLP_ISITEM(WEAP, ITRU_BELIARSRAGE) == TRUE || HLP_ISITEM(WEAP, ITRU_SUCKENERGY) == TRUE || HLP_ISITEM(WEAP, ITRU_GREENTENTACLE) == TRUE || HLP_ISITEM(WEAP, ITRU_SWARM) == TRUE || HLP_ISITEM(WEAP, ITRU_SKULL) == TRUE || HLP_ISITEM(WEAP, ITRU_SUMMONZOMBIE) == TRUE || HLP_ISITEM(WEAP, ITRU_SUMMONGUARDIAN) == TRUE || HLP_ISITEM(WEAP, ITRU_ZEITSPALT) == TRUE
{
return TRUE;
};
return FALSE;
};
func int C_SCHASREADIEDBELIARSWEAPON()
{
var C_ITEM READYWEAP;
READYWEAP = NPC_GETREADIEDWEAPON(HERO);
if C_ISITEMBELIARSWEAPON(READYWEAP)
{
return TRUE;
};
return FALSE;
};
func int C_SCHASEQUIPPEDBELIARSWEAPON()
{
var C_ITEM EQUIPWEAP;
EQUIPWEAP = NPC_GETEQUIPPEDMELEEWEAPON(HERO);
if C_ISITEMBELIARSWEAPON(EQUIPWEAP)
{
return TRUE;
};
return FALSE;
};
Return True und direkt danach wieder Return False? Was bringt das?
Edit: Für mich ergibt das keinen Sinn, erst eine lange If-Condition, die TRUE zurückgibt, wenn alles erfüllt wird, und direkt hinter dem If wird FALSE zurückgegeben?? Ist das vielleicht der Fehler? :S
Geändert von gladi1994 (08.05.2017 um 12:34 Uhr)
-
Warum ergibt das keinen Sinn? Folgendes ist doch auch perfekt logisch:
Code:
func int greaterThanFive(var int nr) {
if (nr > 5) {
return TRUE;
};
return FALSE;
};
-
Zitat von Lehona
Warum ergibt das keinen Sinn? Folgendes ist doch auch perfekt logisch:
Code:
func int greaterThanFive(var int nr) {
if (nr > 5) {
return TRUE;
};
return FALSE;
};
Stimmt, jetzt wo du es schreibst... Mir fehlte da irgendwie das ELSE, aber das muss ja nicht da stehen.
Blöde Frage, sorry...
Kann man Folgendes denn auch so schreiben? :
Code:
func int C_SCHASBELIARSRUNE()
{
if NPC_HASITEMS(HERO, ITRU_BELIARSRAGE) == TRUE || NPC_HASITEMS(HERO, ITRU_SUCKENERGY) == TRUE || NPC_HASITEMS(HERO, ITRU_GREENTENTACLE) == TRUE || NPC_HASITEMS(HERO, ITRU_SWARM) == TRUE || NPC_HASITEMS(HERO, ITRU_SKULL) == TRUE || NPC_HASITEMS(HERO, ITRU_SUMMONZOMBIE) == TRUE || NPC_HASITEMS(HERO, ITRU_SUMMONGUARDIAN ) == TRUE || NPC_HASITEMS(HERO, ITRU_ZEITSPALT) == TRUE
{
return TRUE;
};
return FALSE;
};
func int C_SCHASBELIARSRANGEDWEAPON()
{
if BELIARW_UPGRADETOARROW > 0 || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_01) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_02) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_03) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_04) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_05) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_06) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_07) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_08) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_09) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_10) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_11) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_12) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_13) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_14) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_15) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_16) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_17) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_18) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_19) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_ARROW_20) || BELIARW_UPGRADETOBOLT > 0 || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_01) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_02) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_03) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_04) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_05) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_06) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_07) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_08) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_09) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_10) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_11) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_12) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_13) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_14) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_15) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_16) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_17) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_18) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_19) || NPC_HASITEMS(HERO, ITRW_BELIARWEAPON_BOLT_20)
{
return TRUE;
};
return FALSE;
};
Genau so steht es im Skript. In der Funktion C_ScHasBeliarsRune wird "Npc_HasItems" immer mit "== TRUE" abgefragt, in der Funktion C_ScHasBeliarsRangedWeapon hingegen nicht. Kann man das "== TRUE" weglassen? Das weiß ich auch nicht...
-
Daedalus kann, wie C, mit Integern in einer If-Abfrage arbeiten. Um genau zu sein gelten alle Werte ungleich 0 als TRUE und nur 0 zählt als FALSE. Bei Vergleichen (mit ==) ist das Ergebnis entweder 1 (wenn die Werte gleich sind) oder 0 (wenn die Werte unterschiedlich sind).
Das heißt aber auch, dass folgende Versionen unterschiedliche Bedeutungen haben:
Code:
if (Npc_HasItems(...) == TRUE) { // Der NPC hat genau 1 Item
if (Npc_HasItems(...)) { // Der NPC hat mindestens 1 Item
Die erste Funktion würde also FALSE zurückgeben, wenn man mehr als eine von irgendeiner Beliarrune hat. Das ist natürlich nicht vorgesehen, also sollte es üblicherweise funktionieren...
-
Also ist auch das korrekt und daran liegt es nicht... Mist! ^^
Dann muss ich weiter schauen..
Vielen Dank trotzdem
-
Auf den ersten Blick: In B_CreateBeliarsRangedWeapon() wird BeliarW_UpgradeToArrow immer auf 0 gesetzt. Damit ist der ganze obere Block hinfällig und sinnlos (ganz davon abgesehen, dass BeliarWeapCurrentLvl > 20 'undefiniert' ist).
Ich habe es mal umformatiert, damit man es besser lesen kann ohne ewig zu scrollen:
Code:
func void B_CreateBeliarsRangedWeapon(var C_NPC slf)
{
if slf.HitChance[NPC_TALENT_BOW] > slf.HitChance[NPC_TALENT_CROSSBOW] {
if BeliarWeapCurrentLvl <= 1 { BeliarW_UpgradeToArrow = 1; }
else if BeliarWeapCurrentLvl == 2 { BeliarW_UpgradeToArrow = 2; }
else if BeliarWeapCurrentLvl == 3 { BeliarW_UpgradeToArrow = 3; }
else if BeliarWeapCurrentLvl == 4 { BeliarW_UpgradeToArrow = 4; }
else if BeliarWeapCurrentLvl == 5 { BeliarW_UpgradeToArrow = 5; }
else if BeliarWeapCurrentLvl == 6 { BeliarW_UpgradeToArrow = 6; }
else if BeliarWeapCurrentLvl == 7 { BeliarW_UpgradeToArrow = 7; }
else if BeliarWeapCurrentLvl == 8 { BeliarW_UpgradeToArrow = 8; }
else if BeliarWeapCurrentLvl == 9 { BeliarW_UpgradeToArrow = 9; }
else if BeliarWeapCurrentLvl == 10 { BeliarW_UpgradeToArrow = 10; }
else if BeliarWeapCurrentLvl == 11 { BeliarW_UpgradeToArrow = 11; }
else if BeliarWeapCurrentLvl == 12 { BeliarW_UpgradeToArrow = 12; }
else if BeliarWeapCurrentLvl == 13 { BeliarW_UpgradeToArrow = 13; }
else if BeliarWeapCurrentLvl == 14 { BeliarW_UpgradeToArrow = 14; }
else if BeliarWeapCurrentLvl == 15 { BeliarW_UpgradeToArrow = 15; }
else if BeliarWeapCurrentLvl == 16 { BeliarW_UpgradeToArrow = 16; }
else if BeliarWeapCurrentLvl == 17 { BeliarW_UpgradeToArrow = 17; }
else if BeliarWeapCurrentLvl == 18 { BeliarW_UpgradeToArrow = 18; }
else if BeliarWeapCurrentLvl == 19 { BeliarW_UpgradeToArrow = 19; }
else if BeliarWeapCurrentLvl == 20 { BeliarW_UpgradeToArrow = 20; };
BeliarW_UpgradeToBolt = 0;
}
else if BeliarWeapCurrentLvl <= 1 { BeliarW_UpgradeToBolt = 1; }
else if BeliarWeapCurrentLvl == 2 { BeliarW_UpgradeToBolt = 2; }
else if BeliarWeapCurrentLvl == 3 { BeliarW_UpgradeToBolt = 3; }
else if BeliarWeapCurrentLvl == 4 { BeliarW_UpgradeToBolt = 4; }
else if BeliarWeapCurrentLvl == 5 { BeliarW_UpgradeToBolt = 5; }
else if BeliarWeapCurrentLvl == 6 { BeliarW_UpgradeToBolt = 6; }
else if BeliarWeapCurrentLvl == 7 { BeliarW_UpgradeToBolt = 7; }
else if BeliarWeapCurrentLvl == 8 { BeliarW_UpgradeToBolt = 8; }
else if BeliarWeapCurrentLvl == 9 { BeliarW_UpgradeToBolt = 9; }
else if BeliarWeapCurrentLvl == 10 { BeliarW_UpgradeToBolt = 10; }
else if BeliarWeapCurrentLvl == 11 { BeliarW_UpgradeToBolt = 11; }
else if BeliarWeapCurrentLvl == 12 { BeliarW_UpgradeToBolt = 12; }
else if BeliarWeapCurrentLvl == 13 { BeliarW_UpgradeToBolt = 13; }
else if BeliarWeapCurrentLvl == 14 { BeliarW_UpgradeToBolt = 14; }
else if BeliarWeapCurrentLvl == 15 { BeliarW_UpgradeToBolt = 15; }
else if BeliarWeapCurrentLvl == 16 { BeliarW_UpgradeToBolt = 16; }
else if BeliarWeapCurrentLvl == 17 { BeliarW_UpgradeToBolt = 17; }
else if BeliarWeapCurrentLvl == 18 { BeliarW_UpgradeToBolt = 18; }
else if BeliarWeapCurrentLvl == 19 { BeliarW_UpgradeToBolt = 19; }
else if BeliarWeapCurrentLvl == 20 { BeliarW_UpgradeToBolt = 20; };
BeliarW_UpgradeToArrow = 0;
};
Wahrscheinlich war eher das gemeint:
Code:
func void B_CreateBeliarsRangedWeapon(var C_NPC slf)
{
if slf.HitChance[NPC_TALENT_BOW] > slf.HitChance[NPC_TALENT_CROSSBOW] {
if BeliarWeapCurrentLvl < 1 {
BeliarW_UpgradeToArrow = 1;
} else if BeliarWeapCurrentLvl > 20 {
BeliarW_UpgradeToArrow = 20; //FIXME: 0? (no upgrade if > 20)
} else {
BeliarW_UpgradeToArrow = BeliarWeapCurrentLvl;
};
BeliarW_UpgradeToBolt = 0;
} else { // HitChance[NPC_TALENT_BOW] <= HitChance[NPC_TALENT_CROSSBOW]
if BeliarWeapCurrentLvl < 1 {
BeliarW_UpgradeToBolt = 1;
} else if BeliarWeapCurrentLvl > 20 {
BeliarW_UpgradeToBolt = 20; //FIXME: 0? (no upgrade if > 20)
} else {
BeliarW_UpgradeToBolt = BeliarWeapCurrentLvl;
};
BeliarW_UpgradeToArrow = 0;
};
};
"Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
Geändert von NicoDE (08.05.2017 um 14:37 Uhr)
-
-
08.05.2017 18:14
#29
Zitat von gladi1994
Zum Beispiel die rot markierte -1. Was hat denn die -1 da zu bedeuten?
Das wird gar nicht verwendet, die PC_PRAYSHRINE_UPGRATEBELIARSWEAPON_CONDITION liefert ohnehin immer FALSE.
Relevant sind also weiter unten die PC_PRAYSHRINE_UPGRATEBELIARSWEAPON_SWORD_CONDITION und die PC_PRAYSHRINE_UPGRATEBELIARSWEAPON_AMMO_CONDITION, die liefern beide TRUE, wenn man keine Klaue hat, weil die Abfrage C_SCCANUPGRATEBELIARSWEAPON TRUE liefert, also muss zusätzlich abgefragt werden, ob man die jeweilige Waffe hat.
Das wäre dann C_SCCANUPGRATEBELIARSWEAPON(UPGRADE_SWORD) && C_SCHASBELIARSMELEEWEAPON() bzw. C_SCCANUPGRATEBELIARSWEAPON(UPGRADE_MUNI) && C_SCHASBELIARSRANGEDWEAPON()...
-
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|