Hallo, bin schon seit Tagen dran aber irgendwie komm ich nicht drauf.
Hab ne Rune zu nem TELEPAD gemacht mit 3 (4) Sekunden Timer. Irgendwie hat Ich erst, dass der Timer immer von vorne angefangen hat obwohl er bei 0 stehen bleiben sollte. Nun (keine Ahnung warum) verschwindet die Rune nach ablauf der Zeit (Und wenn ich mein Item neu erstelle ist der TIMER auf 1750sek.)
Hier mal der SCRIPT:
[ITEMDEF i_rune_pits1]
ID=i_rune_marker
CATEGORY=Custom Items
SUBSECTION=Teleporter
DESCRIPTION=Rune to Pits
NAME=Pits
TYPE=t_telepad
ON@CREATE
COLOR=0b7d
ON=@STEP
MORE=1
IF (<TIMER>=3)
SRC.MESSAGE 3
ELIF (<TIMER>=2)
SRC.MESSAGE 2
ELIF (<TIMER>=1)
SRC.MESSAGE 1
ELIF (<TIMER>=0)
SRC.GO=6036,1177,0
MORE=0
endif
RETURN 0
ON@TIMER
IF (<MORE>=1)
TIMER=4
endif
RETURN 1
Ich weiss auch nich am Anfang hats ja ganz gut funktioniert, wollt nur das er wartet bis man mal wieder drauf tritt und neu anfängt und nicht dauernt von selbst neu zählt und jetzt hab ich irgendwas verändert, kein plan mehr was...
Danke im voraus für Antworten.
ITEM verschwindet nach TIMER
Moderator: Mods - Sphere
Re: ITEM verschwindet nach TIMER
Ich hatte derlei vor geraumer Zeit auf andere Art gelöst. Vielleicht hilft Dir das ja weiter. :
Code: Alles auswählen
[itemdef i_teleporter_custom]
ID=01f1c
NAME=Teleporter
TYPE=t_script
WEIGHT=0
on=@create
ATTR=attr_newbie|attr_move_never
on=@dclick
if <src.isgm>
sdialog d_teleporter
endif
return 1
on=@step
if ((<morex> <= 0) && (<morey> <= 0) )
src.sysmessageua 060,0,0,deu Fehler : Keine Zielkoordinaten eingegeben.
return 1
endif
if <src.isgm>
if !(<src.flags> & statf_insubstantial)
src.flags = <src.flags>|statf_insubstantial
src.go <morep>
src.update
endif
else
if <src.findid(i_mem_teleporter_delay)>
return 1
endif
// Memory zum teleportieren
serv.newitem i_mem_teleporter
new.link=<uid>
src.equip <new.uid>
new.timer 3
new.attr=attr_decay
// Dummy-Item um triggern zu verhindern
serv.newitem i_mem_teleporter_delay
src.equip <new.uid>
new.timer 5
new.attr=attr_decay
endif
return 1
[itemdef i_mem_teleporter]
id=i_memory
type=t_eq_script
name=teleporter_memory
on=@timer
if (<cont.p.x>==<link.p.x>)&&(<cont.p.y>==<link.p.y>)
cont.flags |= 08
cont.update
cont.f_teleporter_teleto <link.morep>
if !<isempty <link.tag0.teleporter_message>>
cont.timerf 1,f_teleporter_message "<link.tag.teleporter_message>"
endif
endif
remove
return 1
[itemdef i_mem_teleporter_delay]
id=i_memory
type=t_eq_script
name=teleporter_memory
[function f_teleporter_teleto]
flags &= ~08
p <args>
update
return 0
[function f_teleporter_message]
src.sysmessageua 030,0,1,deu <args>
return 0
//////////////////////////////////////////////////////////////////////////
// Dialoge
//////////////////////////////////////////////////////////////////////////
[DIALOG d_teleporter]
70,40
page 0
RESIZEPIC 0 0 1010 300 350
dhtmlgump 0 30 300 30 0 0 <def.center><def.BFONT>color="#444444"><def.big>Mini-Wurmloch fuer Quirinus<def.BFONTE><def.centere>
dhtmlgump 20 70 300 30 0 0 <def.BFONT>color="#444444"><def.big>Derzeitige Zieloordinaten :<def.BFONTE>
dhtmlgump 20 90 300 30 0 0 <def.BFONT>color="#000088"><def.big><qval (<morep> != 0) ? <morep>:Keine Koordinaten eingestellt><def.BFONTE>
BUTTON 20 133 2118 2117 1 0 100
dhtmlgump 40 130 300 30 0 0 <def.BFONT>color="#444444"><def.big>Neue Koordinaten einstellen<def.BFONTE>
BUTTON 20 153 2118 2117 1 0 200
dhtmlgump 40 150 300 30 0 0 <def.BFONT>color="#444444"><def.big>Koordinaten loeschen<def.BFONTE>
BUTTON 20 173 2118 2117 1 0 300
dhtmlgump 40 170 300 30 0 0 <def.BFONT>color="#444444"><def.big>Zu Koordinaten gehen<def.BFONTE>
BUTTON 20 173 2118 2117 1 0 300
dhtmlgump 40 170 300 30 0 0 <def.BFONT>color="#444444"><def.big>Zu Koordinaten gehen<def.BFONTE>
BUTTON 20 233 2118 2117 0 2 0
dhtmlgump 40 230 300 30 0 0 <def.BFONT>color="#444444"><def.big>Sysmessage auswaehlen<def.BFONTE>
page 2
RESIZEPIC 350 0 1010 300 350
dhtmlgump 350 30 300 30 0 0 <def.center><def.BFONT>color="#444444"><def.big>Text fuer Sysmessage<def.BFONTE><def.centere>
dhtmlgump 360 60 280 80 0 0 <def.BFONT>color="#444444"><def.big>Bitte in der Sysmessage kein Semikolon verwenden, dies kann zu Fehlern fuehren. Umlaute werden ebenfalls nicht angezeigt.<def.BFONTE>
resizepic 360 160 9300 280 100
if !(<isempty <tag.teleporter_message>>)
dtextentrylimited 365 162 270 140 0481 3 150 <tag.teleporter_message>
else
dtextentrylimited 365 162 270 80 0481 3 150 <var.blankline>
endif
BUTTON 450 273 2118 2117 1 0 600
dhtmlgump 470 270 300 30 0 0 <def.BFONT>color="#444444"><def.big>Loeschen<def.BFONTE>
BUTTON 450 293 2118 2117 1 0 700
dhtmlgump 470 290 300 30 0 0 <def.BFONT>color="#444444"><def.big>Uebernehmen<def.BFONTE>
[DIALOG d_teleporter button]
on=0
return 1
on=100
src.sysmessageua 030,0,0,deu Bitte klicke auf den Ort der als Ziel eingetragen werden soll.
targetfg f_teleporter <uid>
return 0
on=200
src.sysmessageua 060,0,0,deu Koordinaten wurden geloescht. Neue per oberstem Button setzen, oder mit "set morep x y z"
morep 0 0 0
return 1
on=300
if ((<morex> <= 0) && (<morey> <= 0) )
src.sysmessageua 060,0,0,deu Keine Zielkoordinaten eingegeben.
return 1
endif
if !(<src.flags> & statf_insubstantial)
src.flags =<src.flags>|statf_insubstantial
src.timerf 1,f_teleporter_effect <def.def_teleporter_effect_<argchkid>>
src.update
endif
src.go <morep>
return 1
on=600
tag.teleporter_message=
src.sysmessage Systemnachricht geloescht.
return 1
on=700
tag.teleporter_message=<argtxt[3]>
src.sysmessage Systemnachricht gesetzt.
return 1
[function f_teleporter]
src.sysmessageua 030,0,0,deu Koordinaten gesetzt.
serv.uid.<args>.morep <targp.x> <targp.y> <targp.z>
return 1
Re: ITEM verschwindet nach TIMER
OK. Dummer kleiner fehler...
hab das "=" vergessen ON=@TIMER
Also jetzt funktioniert das wieder mit dem drauf laufen dann runter zählen 3,2,1 und Teleport an den Ort. Rune bleibt auch jetzt da und er setzt am Ende More auf 0, sodass es nicht automatisch wieder den TIMER einschaltet.
"""ABER"""
Wenn ich drauf lauf kommt More 1 (ist ja noch richtig), aber er fängt den Countdown (TIMER) nicht wieder von 4Sekunden an.... der bleibt auf -1 (INGAME .Info) ???
versteh echt nicht warum...
Ist doch total logisch und mega einfach gehalten, oder hab ich irgendwo nen denkfehler 

hab das "=" vergessen ON=@TIMER
Also jetzt funktioniert das wieder mit dem drauf laufen dann runter zählen 3,2,1 und Teleport an den Ort. Rune bleibt auch jetzt da und er setzt am Ende More auf 0, sodass es nicht automatisch wieder den TIMER einschaltet.
"""ABER"""
Wenn ich drauf lauf kommt More 1 (ist ja noch richtig), aber er fängt den Countdown (TIMER) nicht wieder von 4Sekunden an.... der bleibt auf -1 (INGAME .Info) ???
versteh echt nicht warum...


Re: ITEM verschwindet nach TIMER
einfach noch eine Abfrage einbauen :
if <timer> < 0
timer=3
endif
if <timer> < 0
timer=3
endif
Re: ITEM verschwindet nach TIMER
Merci für den Tipp, hat mich auf ne andere Idee gebracht ^^
Sieht vielleicht für manche (Sch***e) aus, aber ich bin stolz drauf
Hab`s nen bisschen abgeändert und jetzt funktioniert soweit ganz gut
[ITEMDEF i_rune_pits1]
ID=i_rune_marker
CATEGORY=Custom Items
SUBSECTION=Teleporter
DESCRIPTION=Rune to Pits
NAME=Pits
TYPE=t_telepad
ON=@CREATE
COLOR=03e
MORE=0
TIMER=5
ON=@STEP
MORE=1
IF ((<more>=1) && (<TIMER>=0))
TIMER=5
LINK.UID
ELIF (<TIMER>=0)
TIMER=0
ELIF (<TIMER><0)
TIMER=0
ELIF (<TIMER>=4)
SRC.MESSAGE 3
ELIF (<TIMER>=3)
SRC.MESSAGE 2
ELIF (<TIMER>=2)
SRC.MESSAGE 1
ELIF (<TIMER>=1)
SRC.GO=6036,1177,0
MORE=0
endif
RETURN 0
ON=@TIMER
IF (<MORE>=1)
TIMER=5
endif
RETURN 1
Möchte jetzt nich nerven oder so
aber ich frag einfach mal...
Ich muss jetzt dauernt auf der Rune draufstehen damit des Teil runterzählt und mich weg Telet.
Und im I-Net hab ich was nachgelesen aber so verstehen tuh ichs nicht.
Will nen Link oder irgendwie was den Player greift in seine ID das wenn er auf die Rune tritt das er egal wo hin er dann rennt oder sich beamt das der TIMER trotzdem über seinem Kopf weiter läuft und ihn dann zum festgemachten ort telet.
"AUßER" er wird angegriffen oder geht in den Kampf-Modus, dann soll er den ganzen Script abbrechen ///Aber den teil will ich selber versuchen zu machen
Wichtig wäre mir erst mal ob man da nen Link an den Player festmachen kann ???
mit Link.uid ??? hat der was damit zu tun ?
Sieht vielleicht für manche (Sch***e) aus, aber ich bin stolz drauf

Hab`s nen bisschen abgeändert und jetzt funktioniert soweit ganz gut

[ITEMDEF i_rune_pits1]
ID=i_rune_marker
CATEGORY=Custom Items
SUBSECTION=Teleporter
DESCRIPTION=Rune to Pits
NAME=Pits
TYPE=t_telepad
ON=@CREATE
COLOR=03e
MORE=0
TIMER=5
ON=@STEP
MORE=1
IF ((<more>=1) && (<TIMER>=0))
TIMER=5
LINK.UID
ELIF (<TIMER>=0)
TIMER=0
ELIF (<TIMER><0)
TIMER=0
ELIF (<TIMER>=4)
SRC.MESSAGE 3
ELIF (<TIMER>=3)
SRC.MESSAGE 2
ELIF (<TIMER>=2)
SRC.MESSAGE 1
ELIF (<TIMER>=1)
SRC.GO=6036,1177,0
MORE=0
endif
RETURN 0
ON=@TIMER
IF (<MORE>=1)
TIMER=5
endif
RETURN 1
Möchte jetzt nich nerven oder so

Ich muss jetzt dauernt auf der Rune draufstehen damit des Teil runterzählt und mich weg Telet.
Und im I-Net hab ich was nachgelesen aber so verstehen tuh ichs nicht.
Will nen Link oder irgendwie was den Player greift in seine ID das wenn er auf die Rune tritt das er egal wo hin er dann rennt oder sich beamt das der TIMER trotzdem über seinem Kopf weiter läuft und ihn dann zum festgemachten ort telet.
"AUßER" er wird angegriffen oder geht in den Kampf-Modus, dann soll er den ganzen Script abbrechen ///Aber den teil will ich selber versuchen zu machen

Wichtig wäre mir erst mal ob man da nen Link an den Player festmachen kann ???
mit Link.uid ??? hat der was damit zu tun ?
Re: ITEM verschwindet nach TIMER
Auf diese Weise sollte es funktionieren. Zu beachten ist, dass @Step hier einen kleinen Delay beim ersten Tick verursacht.
Über das Event kannt Du noch weitere Abfragen einbauen. Wichtig ist, dass es immer entfernt wird bei Treffern (etc) sowie beim unequippen des Memory-Items
Über das Event kannt Du noch weitere Abfragen einbauen. Wichtig ist, dass es immer entfernt wird bei Treffern (etc) sowie beim unequippen des Memory-Items
Code: Alles auswählen
[ITEMDEF i_rune_pits1]
ID=i_rune_marker
CATEGORY=Custom Items
SUBSECTION=Teleporter
DESCRIPTION=Rune to Pits
NAME=Pits
TYPE=t_telepad
ON=@CREATE
COLOR=03e
on=@step
if !<src.findid(i_mem_teleporter)>
serv.newitem i_mem_teleporter
new.morep=6036,1177,0
new.more1=3
src.equip <new.uid>
new.attr=attr_decay
new.trigger @timer
src.events +e_teleporter
else
return 1
endif
[EVENTS e_teleporter]
on=@userwarmode
src.sysmessageua 030,0,0,deu Deine Konzentration wird gestört, so dass Du nicht mehr in der Lage bist zu reisen.
if <src.findid(i_mem_teleporter)>
src.findid(i_mem_teleporter).remove
endif
src.timerf 0,events -e_teleporter
return 0
on=@gethit
src.sysmessageua 030,0,0,deu Deine Konzentration wird gestört, so dass Du nicht mehr in der Lage bist zu reisen.
if <src.findid(i_mem_teleporter)>
src.findid(i_mem_teleporter).remove
endif
src.timerf 0,events -e_teleporter
return 0
[itemdef i_mem_teleporter]
id=i_memory
type=t_eq_script
name=teleporter_memory
on=@timer
if <dmore1> > 0
cont.say <dmore1>
more1 -= 1
timer=<dmore1>
else
cont.go <morep>
cont.update
remove
endif
return 1
on=@unequip
cont.events -e_teleporter
Re: ITEM verschwindet nach TIMER
Vielen Dank
Der Script ist (in meinen Augen) absolut Perfekt, den hätt Ich in Wochen nich hingekriegt xD.
Morz interesant wie andere des Schreiben vielleicht lern ich was drauß ^^
Danke nochmal
![Freude :]](./images/smilies/icon_pleased.gif)
Der Script ist (in meinen Augen) absolut Perfekt, den hätt Ich in Wochen nich hingekriegt xD.
Morz interesant wie andere des Schreiben vielleicht lern ich was drauß ^^
Danke nochmal
