Karma blocken!

Rund um das Scripten unter Sphere 55i

Moderator: Mods - Sphere

Antworten
Nachricht
Autor
Sariel

Karma blocken!

#1 Beitrag von Sariel » 13 Feb 2007 12:58

Ich habe eine Schrein der das Karma auf Zeit blockt.
Nur leider passiert in der Zeit des Blockes folgendes, die Monster werden kurz vor dem sterben blau (also gut) und man hat ein Mord am Hals.

Gibt es eine moeglichkeit das zu verhindern oder kennt wer ein gutes Script das Karma Bugfrei blockt.

Ich bekomme es leider nicht hin egal wie ich es drehe und wende :angry2:

Benutzeravatar
Torfo
Moderator (Sphere)
Beiträge: 828
Registriert: 13 Jan 2004 12:00
Kontaktdaten:

#2 Beitrag von Torfo » 13 Feb 2007 13:55

Poste doch mal dein Script
Bild

nazghul

#3 Beitrag von nazghul » 13 Feb 2007 14:59

Wenn ich "karma blocken" richtig interpretiere: Umbringen von wasweissich soll das Karma nicht beeinflussen?

Würde ich ganz trivial mit einem Memoryitem lösen, das @equip das aktuelle Karma speichert und dann in einer Schleife alle paar Sekunden den Karma-Wert des trägers gnadenlos mit dem gespeicherten überschreibt. So etwa:

Code: Alles auswählen

[itemdef i_karma_block_mem]
id=i_memory
type=t_eq_script
name=Karma-Blocker

on=@equip
  more1=<src> // WEIRD - DAS FORUM klaut mir das ".KARMA" hinter "SRC" ...
  morex=60 // Anzahl loops mal Anzahl Sekunden, hier "10" - laeuft also 10 Minuten
  timer=10

on=@timer
  if <morex> > 0
    morex = <morex> + -1
    cont.karma = <more1>
    timer=10
  else
    remove
  endif
  return 1

Sariel

#4 Beitrag von Sariel » 14 Feb 2007 03:06

@nazghul denek das wird nicht so leicht machbar sein, da es ueber einen Schrein laufen soll.
Und es soll ja auch nur auf Zeit geblockt sein, nicht immer und durchgehend.
Oder ich hab was missverstanden.

Hier mal das Script wie es derzeit auschaut

Code: Alles auswählen

[quote][TYPEDEF t_chaosshrine]
ON=@Click 
    IF <DISTANCE> < 3
	SRC.MESSAGE Dir wird unwohl bei der Beruehrung
    ENDIF
ON=@DClick
    IF <DISTANCE> > 2
	SRC.SYSMESSAGE Du bist zu weit entfernt.
	RETURN 1
    ELIF !<SRC>
	SAYUA 021,0,0,ENG HINFORT MIT DIR DU WURM! DU WAGST ES OHNE OPFER ZU ERSCHEINEN?
	SRC.EFFECT=1,,6,15,0
	SRC.SOUND=snd_SPELL_LIGHTNING
	SRC.DAMAGE=<EVAL> 
	RETURN 1
    ENDIF
    IF <SRC> > 36000 // erst wieder bei 10 Stunden aufladbar
	SRC.SOUND 0fe
	SAYUA 021,0,0,ENG Ich bin muede deines Anblickes. Verschwinde!
	RETURN 1
    ENDIF
    IF <SRC>
	SRC.CONSUME 4 i_flesh_heart
	SAYUA 021,0,0,ENG Du bist <SRC> der Finsternis! Tritt vor und erhalte deinen Lohn.
	SRC.Karma=-<EVAL>+<SRC>
	VAR.Karmalock=108000 // 30 Stunden 
    ENDIF


    SRC.SOUND 0f7
    SRC.SYSMESSAGE Du bringst menschliche Herzen als Opfer dar.
    IF <SRC>
	SRC.SYSMESSAGE Neue Bosheit stoesst zu der schon vorhandenen und wird mit einem finsteren Laecheln deinerseits quittiert.
	SRC.FINDID.i_timer_karmalock.TIMER=<SRC>+<VAR>
       SRC.TAG.Karmalock=1
    ELSE
	SRC.NEWITEM i_timer_karmalock
	SRC.ACT.EQUIP
	SRC.ACT.Timer=<VAR>
    ENDIF
    VAR.Karmalock=
    RETURN 1[/quote]
Zuletzt geändert von Sariel am 14 Feb 2007 10:55, insgesamt 2-mal geändert.

nazghul

#5 Beitrag von nazghul » 14 Feb 2007 03:16

Sorry, aber wenn Du Deine Skripte nicht in code-tags einschliesst (für die Darstellung im Forum) und einrückst tue ich es mir nicht an, sie durchzulesen (nenn das von mir aus arrogant, ich nenne es Kopfschmerzvermeidung :) )

Das Memory-Item, das ich oben skizzierte, kannst Du im "Erfolgsfall", also wenn bei einem Char die Karma-Änderung blockiert werden soll, einfach erzeugen und den Charakter equippen lassen. Lies Dir einfach das on=@timer durch, dann siehst Du, dass es nicht für immer und ewig ist: Das Item läuft derzeit 60 mal durch eine Schleife, zwischen zwei Schleifendurchläufen liegen 10 Sekunden (timer=10). Bei jedem Durchlauf wird das Karma wieder auf den Wert gesetzt, den der Charakter beim Equip hatte.

Nach dem 60. Schleifendurchlauf entsorgt sich das Item selbst. Seit dem Equip sind bis dahin 600 Sekunden oder 10 Minuten vergangen.

Willst Du die Zeit ändern, ändere entweder den Schleifenzähler (morex), oder die beiden timer= Anweisungen

Sariel

#6 Beitrag von Sariel » 14 Feb 2007 10:57

Sorry habs geaendert

Das mit dem Item hoert sich nicht schlecht an.

Antworten