Charakter-Effekte: Unterschied zwischen den Versionen

Aus Schicksalsklinge Wiki
Wechseln zu: Navigation, Suche
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Beispiel für einen Effekt auf einen NPC (Gegner)
+
Beispiel für einen Effekt auf einen NPC (Gegner).
 
Wird ausgelöst durch einen Treffer mit der Waffe, Effekt läuft über poison.
 
Wird ausgelöst durch einen Treffer mit der Waffe, Effekt läuft über poison.
  
Zunächst die nötigen Effekte bei dem Item (Waffe)
+
Zunächst die nötigen Effekte bei dem Item (Waffe):
 
<syntaxhighlight lang="XML">
 
<syntaxhighlight lang="XML">
 
<effect on="spawn" type="uses" mod="999" />
 
<effect on="spawn" type="uses" mod="999" />
Zeile 14: Zeile 14:
 
<syntaxhighlight lang="XML">
 
<syntaxhighlight lang="XML">
 
<effect intname="poison_lunatic_schwert" duration="999" battle="true" langid="chartext_opp_lunatic_schwert" unique="true">
 
<effect intname="poison_lunatic_schwert" duration="999" battle="true" langid="chartext_opp_lunatic_schwert" unique="true">
<type>other</type>
+
<type>other</type>
<display>negative</display>
+
<display>negative</display>
<!-- Nur beim ersten Treffer wird der RS um 1 reduziert (wenn > 0) -->
+
<!-- Nur beim ersten Treffer wird der RS um 1 reduziert (wenn > 0) -->
<script><![CDATA[
+
<script><![CDATA[
function OnAdd() {
+
</syntaxhighlight>
 +
<syntaxhighlight lang="Javascript">
 +
    function OnAdd() {
 
var RS = getCharAttribute("RS",0);
 
var RS = getCharAttribute("RS",0);
 
var RSmod = 0;
 
var RSmod = 0;
var RSnew = RS;
 
 
if ( RS > 0 ) RSmod = -1;
 
if ( RS > 0 ) RSmod = -1;
 
setEffect( "RS", RSmod );  
 
setEffect( "RS", RSmod );  
RSnew = RS + RSmod;
+
var RSnew = RS + RSmod;
 
showMessage("RS alt: "+RS+"  RS neu: "+RSnew);
 
showMessage("RS alt: "+RS+"  RS neu: "+RSnew);
}
+
    }
]]></script>
+
</effect>
+
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
<syntaxhighlight lang="XML">
 +
]]></script>
 +
</effect>
 +
</syntaxhighlight>
 +
 +
Durch battle="true" wird festgelegt, dass es sich um einen Effekt handelt, der ausschließlich im Kampf aktiv sein kann. Demzufolge bedeutet die Angabe unter duration, dass es sich dabei um Kampfrunden handelt. Bei einem Effekt außerhalb eines Kampfes (also ohne battle="true") bestimmt man über duration die Stunden, die der Effekt andauern soll.
 +
Da unique="true", wird der Effekt nur einmal pro Gegner ausgelöst. Der RS darf nicht unter 0 sinken, da sonst durch die Berechnung TP - RS = SP ein zusätzlicher SP entstehen würde. Das "showMessage" dient nur zu Prüfzwecken und kann natürlich entfernt werden.
 +
 +
--lunatic 22:12, 9. Apr. 2014 (CEST)
 +
[[Category:Modding]]

Aktuelle Version vom 11. April 2014, 11:12 Uhr

Beispiel für einen Effekt auf einen NPC (Gegner). Wird ausgelöst durch einen Treffer mit der Waffe, Effekt läuft über poison.

Zunächst die nötigen Effekte bei dem Item (Waffe):

<effect on="spawn" type="uses" mod="999" />
<effect on="spawn" type="varusestype" which="lunatic_schwert" />
<effect on="data" type="usestype" which="poison" />


Hier die Definition unter dem <effects>-Tag:

<effect intname="poison_lunatic_schwert" duration="999" battle="true" langid="chartext_opp_lunatic_schwert" unique="true">
<type>other</type>
<display>negative</display>
<!-- Nur beim ersten Treffer wird der RS um 1 reduziert (wenn > 0) -->
<script><![CDATA[
    function OnAdd() {
	var RS = getCharAttribute("RS",0);
	var RSmod = 0;
	if ( RS > 0 ) RSmod = -1;
	setEffect( "RS", RSmod ); 
	var RSnew = RS + RSmod;
	showMessage("RS alt: "+RS+"   RS neu: "+RSnew);
    }
]]></script> 
</effect>

Durch battle="true" wird festgelegt, dass es sich um einen Effekt handelt, der ausschließlich im Kampf aktiv sein kann. Demzufolge bedeutet die Angabe unter duration, dass es sich dabei um Kampfrunden handelt. Bei einem Effekt außerhalb eines Kampfes (also ohne battle="true") bestimmt man über duration die Stunden, die der Effekt andauern soll. Da unique="true", wird der Effekt nur einmal pro Gegner ausgelöst. Der RS darf nicht unter 0 sinken, da sonst durch die Berechnung TP - RS = SP ein zusätzlicher SP entstehen würde. Das "showMessage" dient nur zu Prüfzwecken und kann natürlich entfernt werden.

--lunatic 22:12, 9. Apr. 2014 (CEST)