|
-
Ich habe das nicht eingebaut und kann nur wenig dazu sagen.
Starker Schwertkämpfer macht mehr Damage bei Wildtieren
Schwertmeister hingegen bei menschlichen Gegnern, Skeletten, Zombies, Harpien, Dämonen usw.
Orktöter bei Orks, ggf. auch Echsenkriegern
-
Habe gerade gesehen dass im 6. Kapitel die Skelettkrieger magische Pfeile benutzen. Sollten diese Pfeile beim Helden auch Zusatzschaden verursachen, oder sind die zum Aufstocken des Munitionsvorrats des Helden da?
In der ursprünglichen Version des Skriptes wurde zwar geprüft, ob der hero Magische Pfeile ausgerüstet hatte, aber da die Prüfung falsch war, ob der hero der Schütze ist, konnte hier durchaus auch mal der Skelettkrieger Zusatzschaden machen (wenn der Held eben auch gerade magische Pfeile verwendet hat).
Im aktuellen Skript macht der Skelettmagier nie Zusatzschaden, da jetzt korrekt geprüft wird, ob der Held der Schütze war.
Wenn auch andere Gegner mit Spezialpfeilen Zusatzschaden machen sollen, dann muss ich die Blöcke für Pfeile/Bolzen-Schaden nochmal überarbeiten. Da muss dann konsequent mit self und other gearbeitet werden, bis zu dem Punkt an dem es um die EXP Vergabe geht, da die nur gemacht werden sollte, wenn 'other' der 'hero' ist.
-
Ich denke, dass auch der Hero Damage bekommen sollte, wenn man mit Spezialpfeilen nach ihm schießt. Ich hatte mir nämlich überlegt ob man den Assassinen Giftpfeile geben sollte. Hier sind die überarbeiteten Scripte.
https://upload.worldofplayers.de/files10/VcBB_AssessDamage.rar
Geändert von Alain Dufont (11.03.2017 um 10:39 Uhr)
-
Wieso hast Du bei bei den Bogentreffern eigentlich die Prüfung der Hitpoints eingebaut? Das braucht es beim Bogen doch eigentlich gar nicht. Bogentreffer sind am Ende immer tödlich, der Getroffene kann gar nicht bewusstlos werden (im Gegensatz zu Nahkampftreffern).
Code:
if (Hlp_GetInstanceID(ItRw_SharpArrow) == Hlp_GetInstanceID(item))
&& (self.attribute[ATR_HITPOINTS] >= 10)//neu Test 23.2.17
-
Zitat von TazmanDevil
Wieso hast Du bei bei den Bogentreffern eigentlich die Prüfung der Hitpoints eingebaut? Das braucht es beim Bogen doch eigentlich gar nicht. Bogentreffer sind am Ende immer tödlich, der Getroffene kann gar nicht bewusstlos werden (im Gegensatz zu Nahkampftreffern).
Code:
if (Hlp_GetInstanceID(ItRw_SharpArrow) == Hlp_GetInstanceID(item))
&& (self.attribute[ATR_HITPOINTS] >= 10)//neu Test 23.2.17
Manche Spieler haben berichtet, dass sie manchmal auch beim Bogenschießen keine XP bekamen. Darum wollte ich testen ob es mit dieser Änderung funktioniert. Bisher waren die Tests positiv. Die XP kam bei mir jedenfalls immer.
-
Zitat von Alain Dufont
Manche Spieler haben berichtet, dass sie manchmal auch beim Bogenschießen keine XP bekamen. Darum wollte ich testen ob es mit dieser Änderung funktioniert. Bisher waren die Tests positiv. Die XP kam bei mir jedenfalls immer.
Bei mir kommt auch ohne diesen Bedingung die XP immer. Ich hatte noch nicht einen Fall bemerkt, bei dem beim Bogen keine XP vergütet wurde. Sie kommt halt bei den aktuellen Skripten immer beim ersten Treffer.
Ich lass es mal drin, der letzten Treffer geben dann halt keinen Zusatzschaden mehr, d.h. der Rüstungsschutz kommt hier wieder zum tragen und man braucht dann eventuell noch ein paar Treffer mehr. Löst zumindest mal das Problem mit den magischen Erzgolems, die kann man nämlich auch mit Sprengpfeilen statt der heiligen Axt erledigen.
-
Zitat von TazmanDevil
Bei mir kommt auch ohne diesen Bedingung die XP immer. Ich hatte noch nicht einen Fall bemerkt, bei dem beim Bogen keine XP vergütet wurde. Sie kommt halt bei den aktuellen Skripten immer beim ersten Treffer.
Ich lass es mal drin, der letzten Treffer geben dann halt keinen Zusatzschaden mehr, d.h. der Rüstungsschutz kommt hier wieder zum tragen und man braucht dann eventuell noch ein paar Treffer mehr. Löst zumindest mal das Problem mit den magischen Erzgolems, die kann man nämlich auch mit Sprengpfeilen statt der heiligen Axt erledigen.
Möglich, dass sich der Spieler geirrt hat aber dann hat die Änderung immerhin einen Sinn. Dass man die magischen Erzgolems mit Sprengpfeilen töten kann, wusste ich nämlich noch gar nicht.
Geändert von Alain Dufont (12.03.2017 um 13:08 Uhr)
-
Hier sind die angepassten Abfragen für Zusatzschaden durch Pfeile/Bolzen
AssessDamage_partial.zip
Die kannst Du in beiden AssessDamage Skripten verwenden.
Die sind ja momentan identisch mit dem Unterschied, dass in der B_MM_AssessDamage noch die ganzen geschaerftcarr, firearr, magicarr, sprengarr, usw verwendet werden, während B_AssessDamage beim FK-Sonderschaden nur noch geschaerftcarr und firearr verwendet werden. Aber wie ich früher bereits erwähnt hatte, könnte man das auch mit nur einem einzigen C_Item implementieren.
Wobei ich mich allerdings wirklich fragen muss, wieso ich die XP Vergabe drin gelassen habe. Die kann man jetzt wegwerfen. Mit Deiner hinzugefügten Abfrage wird ja verhindert, dass der Gegner durch Sonderschaden sterben kann.
-
Zitat von TazmanDevil
Hier sind die angepassten Abfragen für Zusatzschaden durch Pfeile/Bolzen
AssessDamage_partial.zip
Die kannst Du in beiden AssessDamage Skripten verwenden.
Die sind ja momentan identisch mit dem Unterschied, dass in der B_MM_AssessDamage noch die ganzen geschaerftcarr, firearr, magicarr, sprengarr, usw verwendet werden, während B_AssessDamage beim FK-Sonderschaden nur noch geschaerftcarr und firearr verwendet werden. Aber wie ich früher bereits erwähnt hatte, könnte man das auch mit nur einem einzigen C_Item implementieren.
Wobei ich mich allerdings wirklich fragen muss, wieso ich die XP Vergabe drin gelassen habe. Die kann man jetzt wegwerfen. Mit Deiner hinzugefügten Abfrage wird ja verhindert, dass der Gegner durch Sonderschaden sterben kann.
Okay, ich lass aber die XP sicherheitshalber drin. Schaden tut es ja nicht und doppelt erhält man keine.
Ich sehe, dass du die Bedingung if ( (Hlp_GetInstanceID(hero) == Hlp_GetInstanceID(other)) || (other.aivar[AIV_PARTYMEMBER]==TRUE) ) wieder eingesetzt hast. Warum jetzt doch?
(edit. okay, verstehe. Du hattest hierfür die Bedingung oben entfernt)
Es wäre übrigens gut wenn man grundsätzlich einige Gegner gegen den Bonusschaden immun machen könnte, z.B. Feuergolems gegen Feuer- und Sprengpfeile, Eisgolems gegen Eispfeile und Steingolems gegen Schwerter und Degen. Wie mache ich das am besten?
Geändert von Alain Dufont (12.03.2017 um 13:19 Uhr)
-
Zitat von Alain Dufont
Es wäre übrigens gut wenn man grundsätzlich einige Gegner gegen den Bonusschaden immun machen könnte, z.B. Feuergolems gegen Feuer- und Sprengpfeile, Eisgolems gegen Eispfeile und Steingolems gegen Schwerter und Degen. Wie mache ich das am besten?
So etwas würde ich nur machen, wenn ein Monster gegen den Schaden immun ist. In G2 haben die meisten Monster keine Immunitäten, sondern nur erhöhte Schutzwerte.
Du kannst einem Feuergolem auch Feuerschaden zufügen. Es braucht halt nur wesentlich mehr.
Variante1:
Müsste man machen können, über 'protection[]' von 'self' und Damagetype der Waffe von 'other'.
Hier mal die Schutzwerte von einem Troll:
Code:
protection [PROT_BLUNT] = 125;
protection [PROT_EDGE] = 125;
protection [PROT_POINT] = IMMUNE;
protection [PROT_FIRE] = 125;
protection [PROT_FLY] = IMMUNE;
protection [PROT_MAGIC] = 250;
Wie Du siehst hat dieser Immunitäten. Da müsste man das in etwa so lösen können:
Geschärften Pfeil
Code:
if (geschaerftcarr.munition == ItRw_SharpArrow)
&& (Npc_HasItems(other, ItRw_SharpArrow) > 0)
&& (IMMUNE != self.protection[PROT_POINT])
{...
Schmetterpfeil: PROT_BLUNT
Magiepfeil: PROT_MAGIC
Feuerpfeil: PROT_FIRE
Sprengpfeil: PROT_FIRE
Eispfeil und Giftpfeil lässt sich so nicht lösen, da es keine entsprechende Protection gibt.
Ähnlich dann bei Waffenperks über den Damagetype der Waffe (DAM_EDGE, DAM_POINT, ...) von 'other' und den Immunitäten von 'self'.
Variante2:
Über self.guild, .npctype oder .aivar[AIV_MM_REAL_ID] von bestimmte Gegner vom Bonusschaden ausschliessen. Hier kenne ich mich allerdings nicht wirklich aus. Um die ganzen Guilden und Klassengeschichten habe ich immer einen Bogen gemacht. Die Anzahl der Prüfungen könnte allerdings lang werden. Und da muss man immer auch im Auge behalten, dass AssessDamage im Kampf bei jedem Treffer läuft und das eben dann auch CPU Zeit kostet. Und das letzte was Du willst sind noch mehr Ruckler.
-
Zitat von TazmanDevil
So etwas würde ich nur machen, wenn ein Monster gegen den Schaden immun ist. In G2 haben die meisten Monster keine Immunitäten, sondern nur erhöhte Schutzwerte.
Du kannst einem Feuergolem auch Feuerschaden zufügen. Es braucht halt nur wesentlich mehr.
Variante1:
Müsste man machen können, über 'protection[]' von 'self' und Damagetype der Waffe von 'other'.
Hier mal die Schutzwerte von einem Troll:
Code:
protection [PROT_BLUNT] = 125;
protection [PROT_EDGE] = 125;
protection [PROT_POINT] = IMMUNE;
protection [PROT_FIRE] = 125;
protection [PROT_FLY] = IMMUNE;
protection [PROT_MAGIC] = 250;
Wie Du siehst hat dieser Immunitäten. Da müsste man das in etwa so lösen können:
Geschärften Pfeil
Code:
if (geschaerftcarr.munition == ItRw_SharpArrow)
&& (Npc_HasItems(other, ItRw_SharpArrow) > 0)
&& (IMMUNE != self.protection[PROT_POINT])
{...
Schmetterpfeil: PROT_BLUNT
Magiepfeil: PROT_MAGIC
Feuerpfeil: PROT_FIRE
Sprengpfeil: PROT_FIRE
Eispfeil und Giftpfeil lässt sich so nicht lösen, da es keine entsprechende Protection gibt.
Ähnlich dann bei Waffenperks über den Damagetype der Waffe (DAM_EDGE, DAM_POINT, ...) von 'other' und den Immunitäten von 'self'.
Variante2:
Über self.guild, .npctype oder .aivar[AIV_MM_REAL_ID] von bestimmte Gegner vom Bonusschaden ausschliessen. Hier kenne ich mich allerdings nicht wirklich aus. Um die ganzen Guilden und Klassengeschichten habe ich immer einen Bogen gemacht. Die Anzahl der Prüfungen könnte allerdings lang werden. Und da muss man immer auch im Auge behalten, dass AssessDamage im Kampf bei jedem Treffer läuft und das eben dann auch CPU Zeit kostet. Und das letzte was Du willst sind noch mehr Ruckler.
Okay, das muss ich mir in Ruhe ansehen. Ich sehe aber jetzt, dass Eisgolems bei Eispfeilen keine Sonderdamage erhalten und das bei Feuergolems genauso ist.
-
Beim durchsehen des Triggerskriptes ist mir noch etwas aufgefallen, was hier relevant war/sein könnte.
Kann der Gegner noch irgendwo durch Extraschaden sterben, oder ist das jetzt überall deaktiviert (FK auf jeden Fall deaktiviert wegen self.attribute[ATR_HITPOINTS] >= ..., NK weiss ich den aktuellsten Stand nicht).
Code:
if ((Npc_IsDead(Almansor))
&& (AssAschdodTot1 == FALSE)
&& (Almansor.aivar[AIV_KilledByPlayer] == TRUE))
{
NpcAschdodTot_Points = (NpcAschdodTot_Points + 2);
AssAschdodTot1 = TRUE;
};
AssAschdodTot1 ist bei mir im Save FALSE, Almansor hatte ich aber gekillt, und zwar mit dem Bogen. Welche Pfeile genau weiss ich nicht mehr, müssten Sprengpfeile oder Magiepfeile gewesen sein.
Ich nehme mal an, dass der durch den Zusatzschaden umkam, und er deshalb auch nicht die Almansor.aivar[AIV_KilledByPlayer] auf TRUE hatte und letztlich ist AssAschdodTot1 FALSE und NpcAschdodTot_Points wurde nicht erhöht. Sollte man beim NK noch durch Extraschaden sterben können, dann muss wohl auch die AIVAR noch gesetzt werden, sofern other der Hero ist.
-
Zitat von TazmanDevil
Beim durchsehen des Triggerskriptes ist mir noch etwas aufgefallen, was hier relevant war/sein könnte.
Kann der Gegner noch irgendwo durch Extraschaden sterben, oder ist das jetzt überall deaktiviert (FK auf jeden Fall deaktiviert wegen self.attribute[ATR_HITPOINTS] >= ..., NK weiss ich den aktuellsten Stand nicht).
Code:
if ((Npc_IsDead(Almansor))
&& (AssAschdodTot1 == FALSE)
&& (Almansor.aivar[AIV_KilledByPlayer] == TRUE))
{
NpcAschdodTot_Points = (NpcAschdodTot_Points + 2);
AssAschdodTot1 = TRUE;
};
AssAschdodTot1 ist bei mir im Save FALSE, Almansor hatte ich aber gekillt, und zwar mit dem Bogen. Welche Pfeile genau weiss ich nicht mehr, müssten Sprengpfeile oder Magiepfeile gewesen sein.
Ich nehme mal an, dass der durch den Zusatzschaden umkam, und er deshalb auch nicht die Almansor.aivar[AIV_KilledByPlayer] auf TRUE hatte und letztlich ist AssAschdodTot1 FALSE und NpcAschdodTot_Points wurde nicht erhöht. Sollte man beim NK noch durch Extraschaden sterben können, dann muss wohl auch die AIVAR noch gesetzt werden, sofern other der Hero ist.
NpcAschdodTot_Points zählt die toten NPCs eines Ortes (in diesem Fall für Aschdod) und ist für die Anklage vor dem Assassinengericht wichtig. In diesem Fall würde dann Almansors Tod nicht gezählt werden. Ich hoffe aber, dass ich alle Fälle, wo Extraschaden berechnet wird, überarbeitet habe. Diese sollte es nur bei den Spezialpfeilen, den drei Nahkampf- und den drei Fernkampftalenten geben.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|