Construction Set Skriptthread zum Construction Set

mit max 2pkt schaden fällt mir nix ein aber du könntest eine eigenschaft mit zb 99% schild amchen udn die dann hinzufügen lassen.

scn NPCscript

begin gamemode
if player.getitemcount <item-ID> == <anzahl>
addspell <spell-ID>
else
removespell <spell-ID>
endif
end
 
  • Like
Reaktionen: Anti_Held
Hmm, so würd' ich das nicht machen.
Ich würde es eher so machen, dass der feindliche NPC eine Eigenschaft hat, welche ihm z.B. 50 Leben pro Sekunde wiedergibt. Diese wird entfernt, wenn der Spieler einen Gegenstand anlegt.

Wäre das auch etwas?

:bye:
 
  • Like
Reaktionen: Anti_Held
Wenn es ein bestimmter NPC ist, ginge das eventuell.
Du könntest dann in etwa so ein Skript auf den Gegner legen:
Code:
scn name

long health
long oldhealth

Begin onHit player

if player.getEquipped <Objekt-ID>
 set health to getAV health
 if (oldhealth - health) > 2
  setAV health (oldhealth - 2)
 endif
endif

end

Begin GameMode

if player.getEquipped <Objekt-ID>
 set oldhealth to getAV health
endif

end
 
  • Like
Reaktionen: Anti_Held
@darkruler: dann kann man aber im prinzip gar keimnen schaden mehr machen....

@diarrhoe: ich weiß nicht ob dein script funktioniert,weil du glaubichhealth und oldhealth permanent einlesen lassen musst....auf jeden fall hast du "==1" bei den equippeditem-blöcken vergessen.
 
@diarrhoe: ich weiß nicht ob dein script funktioniert,weil du glaubichhealth und oldhealth permanent einlesen lassen musst....auf jeden fall hast du "==1" bei den equippeditem-blöcken vergessen.

Bei Diarrhoe`s Skript stimmt alles. Bei einem Treffer werden die aktuellen Lebenspunkte abgefragt und dann eben 2 Lebenspunkte abgezogen.
Und ein "== 1" ist nicht nötig. Das Skript erkennt das auch so. ;)
 
"OldHealth" lasse ich jeden Frame setzen, um zu wissen, wie viele HP der NPC kurz vor dem Schlag hatte. Der "onHit"-Block wird erst nach der Schadenskalkulation durchlaufen, sodass ich einen aktuellen Wert für die HP bekomme. Die Differenz aus "oldHealth" und "health" ist letztendlich das, was der NPC durch den Schlag an HP verloren hat (zumindest soll es das sein).
Eine Abfrage beim "getEquipped" ist in diesem Fall nicht nötig, da kein Vergleich bedeutet, dass das Ergebnis ungleich 0 ist (!= 0). Wenn man die Zeichen weglässt, ist es außerdem performancefreundlicher (laut CS-Wiki).
 
Also der Skript macht jetzt folgendes ?

Hat der Spielet das Amulett macht er ganz normal Schaden.

Wenn nicht nur maximal 2.

Richtig ?
 
Hallo. Ich hab eine Frage. Wie ist es möglich Globale Variablen zu erhöhen z.B. Ich hab die Zahl 0 und es kommen 5 Punkte dazu und wie kann man die wieder auslesen. Beim Auslesen hät ich es gerne so: Wenn GlobaleVariable < 50 dann tu das.
 
Du musst in deinen Scripts die Globale einfach abfragen.

Code:
set <Globale> to 1

if(<globale> == 1)
Behandel sie einfach wie eine normale Variable, die du aber in jedem Script verwenden kannst.
 
  • Like
Reaktionen: kaiserfloh67
Wie ist die Klausel um abzufragen das etwas nur bei einer bestimmten Queststage geht.

begin ontrigger player
( Die Klausel die mir fehlt )
set bla xx
end
 
Code:
If getStage <Quest-ID> == <Queststufe> 

...

Endif
[EDIT]
Kahmul du Drängler :p

[EDIT2]
@Björn: Du hast das Vergleichen mit der Queststufe vergessen ;)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Anti_Held
ich meinte eig eher dass wenn der spieler den gegenstand nicht hat, die lebensenergie nicht eingelesen wird und der gegner somit den ganz normalen schaden erhält....
 
Ahh, jetzt verstehe ich es. Ich habe ein "nicht" in der Frage übersehen. Ich ändere es eben.
Tschuldigung Anti-Held, hier ist das verbesserte hoffentlich richtige Skript:
Code:
scn name

long health
long oldHealth

Begin onHit player

if player.getEquipped <Objekt-ID>
 return
endif
set health to getAV health
if (oldhealth - health) > 2
 setAV health (oldhealth - 2)
endif

end

Begin GameMode

if player.getEquipped <Objekt-ID>
 return
endif
set oldHealth to getAV health

end
 
  • Like
Reaktionen: Anti_Held