Gump mit Checkbox, weiß nicht weiter...

Rund um das Scripten unter Sphere 55i

Moderator: Mods - Sphere

Antworten
Nachricht
Autor
bloodhawk

Gump mit Checkbox, weiß nicht weiter...

#1 Beitrag von bloodhawk » 17 Jun 2004 20:06

momentan sieht mein gump so aus...

Code: Alles auswählen

[DIALOG d_graumagier]
50,50

page 0
resizepic 0 0 3500 600 400
text 40 10 694 1
text 505 10 2598 2
text 20 30 92 3
button 490 15 2104 2103 1 0 1

page 1
text 40 50 2598 4
text 40 70 2598 5
text 170 70 2598 6
text 40 90 2598 7
text 170 90 2598 8
text 40 110 2598 9
text 170 110 2598 10
text 40 130 2598 11
text 170 130 2598 12
text 40 150 2598 13
text 170 150 2598 14
text 40 170 2598 15
text 170 170 2598 16
text 40 190 2598 17
text 170 190 2598 18
text 40 210 2598 19
text 170 210 2598 20
text 170 250 2598 21
button 25 75 2104 2103 1 0 5
button 25 95 2104 2103 1 0 6
button 25 115 2104 2103 1 0 7
button 25 135 2104 2103 1 0 8
button 25 155 2104 2103 1 0 9
button 25 175 2104 2103 1 0 10
button 25 195 2104 2103 1 0 11
//button 25 215 2104 2103 1 0 12
checkbox 25 215 2104 2103 0 12
button 490 385 2104 2103 1 0 1000

[DIALOG d_graumagier TEXT]
<VAR.LEERZEILE>
Magiermenue
Schliessen
Graumagier
Zirkel 1
Clumsy
01
Create Food
02
Feeblemind
04
Heal
08
Magic Arrow
010
Night Sight
020
Reactive Armor
040
Weaken
080
<SRC.TAG.zauber_1>

[DIALOG d_graumagier BUTTON]
ONBUTTON=1
close
ONBUTTON=2
ONBUTTON=3
ONBUTTON=4
ONBUTTON=5
ONBUTTON=6
ONBUTTON=7
ONBUTTON=8
ONBUTTON=9
ONBUTTON=10
ONBUTTON=11
ONBUTTON=12
SRC.TAG.weaken=080
ONBUTTON=1000
SYSMESSAGE <SRC.TAG.weaken>
SYSMESSAGE <ARGCHK[12]>
IF (<ARGCHK[12]>)
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>+<SRC.TAG.weaken>
ENDIF
RETURN 0
was ich jetzt aber vorhabe is ansich ganz simpel...ich habe vor ein gumpmenü für die gms zu bauen über dass sie die spells der player regulieren können.

d.h. ein gm klickt seinen dann benutzbaren gegenstand an, dann den player, wo je nach zauberklasse ein anderes gump aufpoppt (also für graumagier das graumagiergump etc.) -> alle spells die der player dann hat, sollen per checkbox schon "gecheckt" sein...und die die er nicht hat, halt nicht ;)

allerdings weiss ich nicht, wie man das abfragt...ob der gecheckt ist, ob er den spell hat etc. da die spells ja alle in hex abgespeichert werden...

und wenn ich jetzt anklicke, dass er z.b. einen weiteren spell kriegen soll, soll er den einfach dazutragen...

ich benutze derzeit ein spellbook, welches sich die zauber aus dem tag.zauber_1 und tag.zauber_2 holt...und die halt jeweils in more1 und more2 speichert...

das is ne ganz sinnig lösung wie ich finde, da die player da weiterhin auf das buch drauf zugreifen können, und spruchrollen die sie hineintun, werden demnach ja auch sofort wieder entfernt ;)

bloodhawk

#2 Beitrag von bloodhawk » 19 Jun 2004 17:28

keiner n plan ? :(

Gast

#3 Beitrag von Gast » 19 Jun 2004 23:00

mach dem player ein mem item das er equipt und dann wird dann pro spell also zb tag.create food=nix bei create gesetzt und dann einfach if !findid.tag.create food=nix return 0 else src.sysmessage ne haste noch nicht drauf den spell return 1 so in der art musste halt mal bissel mit rumpropsen

bloodhawk

#4 Beitrag von bloodhawk » 19 Jun 2004 23:22

lol wozu dann n memitem ?

und dann hab ich ja im endeffekt doch für jeden spell n eigenes tag...und das will ich ja grad nicht...

Apocalypse

#5 Beitrag von Apocalypse » 20 Jun 2004 13:40

Sind die Spells jetzt in Tags oder im Buch gespeichert..? Auf jedenfall mal..:

checkbox 25 215 2104 2103 <QVAL (strcmp(<tag.zauber_1>,)) ? 1: 0) 12

bzw.
checkbox 25 215 2104 2103 <QVAL (<findid.i_spellbook.more1> & #zauberflag#) ? 1 : 0> 12

Zur Erklärung:
<QVAL (bedingung) ? (wenn ja) : (wenn nein) >

Und die Zauberflags ließen sich am besten in Axis mittels "Tweak Spellbook" (Item Tweak) herausfinden

Weaken ist z.b. 080 und wird in More1 gespeichert, also:
checkbox 25 215 2104 2103 <QVAL (<findid.i_spellbook.more1>&080) ? 1 : 0> 12

bloodhawk

#6 Beitrag von bloodhawk » 20 Jun 2004 14:00

das ne gute hilfe...danke :D

und die spells sind im tag gespeichert...

und was muss ich dann unten als aktion angeben ?

beim button gibste ja an ->
ONBUTTON=1
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>&080

Apocalypse

#7 Beitrag von Apocalypse » 20 Jun 2004 17:03

Einfach einen Button wie "Ãœbernehmen" setzen, und darunter dann:

ON=1
IF (0<ARGCHK[0]>) // Checkbox 0 gesetzt?
src.tag.zauber_1=<src.tag.zauber_1>&080 // Hinzufügen
ELSE
src.tag.zauber_1=<src.tag.zauber_1>&~080 // Entfernen
ENDIF
IF (0<ARGCHK[1]>) // Checkbox 1 gesetzt?
src.tag.zauber_1=<src.tag.zauber_1>&08
ELSE
src.tag.zauber_1=<src.tag.zauber_1>&~08
ENDIF

usw.. für jeden Zauber eben.

bloodhawk

#8 Beitrag von bloodhawk » 20 Jun 2004 17:10

ahso...ich verstehe :D

danke dir :)))

hilft guti ;)

*gleich ma test*

bloodhawk

#9 Beitrag von bloodhawk » 21 Jun 2004 02:32

nu is noch die frage...wie bekomm ich es hin, dass die zaubersprüche, die bereits auf dem tag gespeichert sind, halt schon n ge"check"ten knopf haben ?

geht das überhaupt ?

Apocalypse

#10 Beitrag von Apocalypse » 21 Jun 2004 12:51

das hatten wir doch schon -_^

checkbox 25 215 2104 2103 <QVAL (<SRC.TAG.zauber_1>&080) ? 1 : 0> 0

Mh, wo ich das so sehe, kannst Checkboxen natürlich unabhängig von Buttons indizieren, da sie ja keine Buttons sind.

bloodhawk

#11 Beitrag von bloodhawk » 21 Jun 2004 13:43

ahso...klar...voll übersehen *G* danke dir trotzdem nochma :D

bloodhawk

#12 Beitrag von bloodhawk » 22 Jun 2004 19:00

naja...das ding in deiner variante macht nur einen kleinen fehler...

es setzt den tag.zauber_1 auf 00

egal ob da 080 oder sonstwas hinzugefügt werden soll...sowohl bei gedrückter als auch bei nich gedrückter checkbox setzt er's nachm apply auf 00...

die anzeige is aber richtig...d.h. wenn ich den tag von hand gesetzt habe, dann is die checkbox auch checked...

Code: Alles auswählen

[DIALOG d_graumagier]
50,50

page 0
resizepic 0 0 3500 600 400
text 40 10 694 1
text 505 10 2598 2
text 20 30 92 3
button 490 15 2104 2103 1 0 1

page 1
text 40 50 2598 4
text 40 70 2598 5
text 170 70 2598 6
text 40 90 2598 7
text 170 90 2598 8
text 40 110 2598 9
text 170 110 2598 10
text 40 130 2598 11
text 170 130 2598 12
text 40 150 2598 13
text 170 150 2598 14
text 40 170 2598 15
text 170 170 2598 16
text 40 190 2598 17
text 170 190 2598 18
text 40 210 2598 19
text 170 210 2598 20
text 170 250 2598 21
button 25 75 2104 2103 1 0 5
button 25 95 2104 2103 1 0 6
button 25 115 2104 2103 1 0 7
button 25 135 2104 2103 1 0 8
button 25 155 2104 2103 1 0 9
button 25 175 2104 2103 1 0 10
button 25 195 2104 2103 1 0 11
//button 25 215 2104 2103 1 0 12
checkbox 25 215 2104 2103 <QVAL (<SRC.TAG.zauber_1>&080) ? 1 : 0> 1
button 490 385 2104 2103 1 0 1000

[DIALOG d_graumagier TEXT]
<VAR.LEERZEILE>
Magiermenue
Schliessen
Graumagier
Zirkel 1
Clumsy
01
Create Food
02
Feeblemind
04
Heal
08
Magic Arrow
010
Night Sight
020
Reactive Armor
040
Weaken
080
<SRC.TAG.zauber_1>

[DIALOG d_graumagier BUTTON]
ONBUTTON=1
close
ONBUTTON=2
ONBUTTON=3
ONBUTTON=4
ONBUTTON=5
ONBUTTON=6
ONBUTTON=7
ONBUTTON=8
ONBUTTON=9
ONBUTTON=10
ONBUTTON=11
//ONBUTTON=12

ON=1000
IF (0<ARGCHK[1]>) // Checkbox 0 gesetzt?
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>&080 // Hinzufügen
SRC.SYSMESSAGE 080 wurde zum SRC.TAG.zauber_1 hinzugefuegt. <SRC.TAG.zauber_1>
ELSE
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>&~080 // Entfernen
SRC.SYSMESSAGE 080 wurde aus SRC.TAG.zauber_1 entfernt. <SRC.TAG.zauber_1>
ENDIF
DIALOG d_graumagier

RETURN 0

Apocalypse

#13 Beitrag von Apocalypse » 22 Jun 2004 19:32

Ahja, mein Fehler:

Code: Alles auswählen

ON=1000
IF (0<ARGCHK[1]>) // Checkbox 0 gesetzt? 
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>|080 // Hinzufügen 
SRC.SYSMESSAGE 080 wurde zum SRC.TAG.zauber_1 hinzugefuegt. <SRC.TAG.zauber_1> 
ELSE 
SRC.TAG.zauber_1=<SRC.TAG.zauber_1>&~080 // Entfernen 
SRC.SYSMESSAGE 080 wurde aus SRC.TAG.zauber_1 entfernt. <SRC.TAG.zauber_1> 
ENDIF 
DIALOG d_graumagier

bloodhawk

#14 Beitrag von bloodhawk » 23 Jun 2004 03:11

jo funzt perfekt :D

danke dir ;)

Ethandir

#15 Beitrag von Ethandir » 16 Aug 2007 02:24

Hat sich erledigt :)

Antworten