Wahrscheinlich seit dem aktivieren des Skills 'beweglichkeit'
wurde dieser falsch zugeordnet - statt als defendskill wurde
er als angriffsskill gewertet, obwohl er korrekt den typ SM_DEFEND
zugeordnet war.
dieser fehler konnte auftreten, weil dem skill kein im feld item
kein wert ("") zugeordnet war. ich habe dort jetzt item="misc"
zugeordnet. jetzt ist der skill korrekt als defendskill eingetragen
der fehler liegt aber eigentlich nicht in der anmeldung des skills
sondern in /std/living/skills.c in der Funktion SetActiveSkill()
hier werden alle skills (angriff/verteidigung), die automatisch
ausgefuehrt werden koennen in einem array gespeichert, welches
spaeter nur aufgrund des im feld item gespeicherten wert
durchgesehen wird, ist der dort gespeicherte wert "", wird automatisch
von einem angriffskill ausgegangen, ohne zu testen, ob der typ
SM_DEFEND gesetzt ist
while((i=member_array("", att_def_items))>-1) { // 'itemlose' Attack-Skills
active[CS_ATTACK] += ([ att_def_skill[i] : ({
SM->QueryProp(att_def_skill[i], P_SM_STAT),
SM->QueryProp(att_def_skill[i], P_SM_FACTOR),
SM->QueryProp(att_def_skill[i], P_SM_MAGIC) }) ]);
att_def_items[i]=0;
}
Archon
|