Function zum Erzeugen eines .wsc Files

Moderator: Mods - Sphere

Antworten
Nachricht
Autor
Daskaras
Moderator (Sphere)
Beiträge: 857
Registriert: 13 Jan 2004 14:43

Function zum Erzeugen eines .wsc Files

#1 Beitrag von Daskaras » 02 Dez 2005 20:35

damit so manches schneller in Sachen statik geht, hab ich dieses kleine tool für meine gms geschrieben.
es ermöglicht dem gm ein wsc file zu schreiben, was man später mit multool bearbeiten kann um aus den items einen statik zu machen.
mittels gump kann man man zwei koordinaten eingeben.
mit diesen koordin. wird der mittelpunkt ausgerechnet.
man wird dahinversetzt und das script erzeugt einen worldsave und exportiert auch gleichzeitig das file, dass den namen des gms und die nr. des files trägt. man kann die koordinaten wieder löschen oder auf die zweite seite gehen. dort kann man dann alles importieren.
gleichzeitig werden alle items in diesem koordinatenbereich gelöscht

viel spass mit dem kleinen tool. ich finde es sehr nützlich
achja, wer keinen aos clienten hat kann den befehl checkertrans im gump nicht benutzen. einfach auskommentieren dann.

Code: Alles auswählen

[FUNCTION sta]
dialog d_statiken
 
[DIALOG d_statiken]
30,30

page 0  
resizepic 0 0 2620 350 245 // Background
gumppictiled 5 5 340 225 2604

gumppictiled 5 5 340 25 2624 
gumppictiled 5 35 340 145 2624

gumppictiled 5 185 340 45 2624
checkertrans 5 5 340 387
dtext 40 50 052 Erste Koordinate <eval <tag0.statik_koordinate_1_x>>,<eval <tag0.statik_koordinate_1_y>>
button 15 54 0837 0838 1 0 1

dtext 40 90 052 Zweite Koordinate <eval <tag0.statik_koordinate_2_x>>,<eval <tag0.statik_koordinate_2_y>>
button 15 94 0837 0838 1 0 2

f_statiken_mittelpunkt
dtext 40 120 052 Mittelpunkt <eval <var0.statiken_mittelpunkt_x>>,<eval <var0.statiken_mittelpunkt_y>>

dtext 40 190 052 Koordinaten loeschen
button 15 194 0837 0838 1 0 3

page 1
dtext 260 130 052 Seite Weiter
dtext 20 7 0c1 Statikmenue von Mendonis. File Nr. <eval <tag0.statik_anzahl>> vorhanden.


dtext 40 220 052 Statik File mit Namen <name><eval <tag0.statik_anzahl>>statik.wsc erzeugen
button 15 224 0837 0838 1 0 4

[DIALOG d_statiken BUTTON]
ON=1
	tag0.statik_koordinate_1_x=<p.x>
	tag0.statik_koordinate_1_y=<p.y>
	sysmessage @0,0 Ok, erste Koordinate wurde gespeichert <eval <tag0.statik_koordinate_1_x>>,<eval <tag0.statik_koordinate_1_y>>
	sysmessage @0,0 Gehe nun zur Zweiten
	
ON=2
	tag0.statik_koordinate_2_x=<p.x>
  	tag0.statik_koordinate_2_y=<p.y>
  	sysmessage @0,0 OK, zweite Koordinate gespeichert <eval <tag0.statik_koordinate_2_x>>,<eval <tag0.statik_koordinate_2_y>>!
  	sysmessage @0,0 Geb den Befehl nocheinmal ein um alles zu beenden

ON=3
	tag0.statik_koordinate_1_x=
	tag0.statik_koordinate_1_y=
	tag0.statik_koordinate_2_x=
  	tag0.statik_koordinate_2_y=
  	dialog d_statiken

ON=4
 IF !(<eval <tag0.statik_koordinate_1_x>>) || !(<eval <tag0.statik_koordinate_1_y>>)
 	sysmessage @0,0 Fehler! Eins der zwei Koordinaten fehlen!
 	dialog d_statiken
  ELSE
    	var0.koordinate_x=<eval <tag0.statik_koordinate_1_x>> 
  	var0.koordinate_x -= <eval <tag0.statik_koordinate_2_x>>
   	var0.koordinate_y=<eval <tag0.statik_koordinate_1_y>> 
  	var0.koordinate_y -= <eval <tag0.statik_koordinate_2_y>>
  	
   IF (<eval <var0.koordinate_x>> < 0)
   	var0.koordinate_x *= -1 
   ENDIF
   	var0.koordinate_x = <eval <var0.koordinate_x>/2>
   	
   IF (<eval <var0.koordinate_y>> < 0)
   	var0.koordinate_y *= -1 
   ENDIF
  	var0.koordinate_y = <eval <var0.koordinate_y>/2>
  	p=<eval <tag0.statik_koordinate_1_x>+<var0.koordinate_x>>,<eval <tag0.statik_koordinate_2_y>+<var0.koordinate_y>>
  	update
    IF (<eval <var0.koordinate_x>> > <eval <var0.koordinate_y>>)
//    	serv.save
//    	f_statiken_nuke
    	serv.export <name><eval <tag0.statik_anzahl>>statik.wsc 1 <eval <var0.koordinate_x>> 0
     ELSE
     	serv.save
//     	f_statiken_nuke
//     	serv.export <name><eval <tag0.statik_anzahl>>statik.wsc 1 <eval <var0.koordinate_y>> 0
    ENDIF
    
    IF !(<eval <tag0.statik_anzahl>>)
    	tag0.statik_anzahl=0
    ENDIF
    	sysmessage Das File <name><eval <tag0.statik_anzahl>>statik.wsc wurde erstellt. Nun kann es gestatikt werden!
  	tag0.statik_koordinate_1_x=
	tag0.statik_koordinate_1_y=
	tag0.statik_koordinate_2_x=
	tag0.statik_koordinate_2_y=
	tag0.statik_anzahl += 1
	serv.log GM <name> hat ein Statik File exportiert. Name ist <name><eval <tag0.statik_anzahl>>statik.wsc
 ENDIF

  	

Daskaras
Moderator (Sphere)
Beiträge: 857
Registriert: 13 Jan 2004 14:43

#2 Beitrag von Daskaras » 02 Dez 2005 22:08

hab das ganze nochmal abgespeckt, weil es einen kleinen bug gab.
worldsave und nuken wurde rauskommentiert
sobald ich eine bessere lösung gefundenhabe, poste ich es :)

lRs

#3 Beitrag von lRs » 02 Jan 2007 17:48

Danke !

Daskaras
Moderator (Sphere)
Beiträge: 857
Registriert: 13 Jan 2004 14:43

#4 Beitrag von Daskaras » 02 Jan 2007 21:53

achja, lediglich ein update von der schreibweise (ganz vergessen).
nutzung mit der neuesten sphereversion, da sonst einige befehle nicht gehen.
die kommentierten zeilen kann man mit einbauen, um gleich de items zu löschen. machte aber ab und zu zicken. müßte das nochmal genau testen, aber kam bis jetzt nicht dazu

Code: Alles auswählen

	
[FUNCTION sta]
dialog d_statiken
 
[DIALOG d_statiken]
30,30

page 0  
resizepic 0 0 2620 350 245 // Background
gumppictiled 5 5 340 225 2604

gumppictiled 5 5 340 25 2624 
gumppictiled 5 35 340 145 2624

gumppictiled 5 185 340 45 2624
checkertrans 5 5 340 387
dtext 40 50 052 Erste Koordinate <dctag0>, <dctag0>
button 15 54 0837 0838 1 0 1

dtext 40 90 052 Zweite Koordinate <dctag0>,<dctag0>
button 15 94 0837 0838 1 0 2

f_statiken_mittelpunkt
dtext 40 120 052 Mittelpunkt <dvar0>,<dvar0>

dtext 40 190 052 Koordinaten loeschen
button 15 194 0837 0838 1 0 3

page 1
button 310 155 4005 4006 0 2 0
dtext 260 130 052 Seite Weiter
dtext 20 7 0c1 Statikmenue von Mendonis. File Nr. <dctag0> vorhanden.


dtext 40 220 052 Statik File mit Namen <name><dctag0>statik.wsc erzeugen
button 15 224 0837 0838 1 0 4

[DIALOG d_statiken BUTTON]
ON=1
	ctag0.statik_koordinate_1_x=<p>
	ctag0.statik_koordinate_1_y=<p>
	smsg Ok, erste Koordinate wurde gespeichert <dctag0>,<dctag0>
	smsg Gehe nun zur Zweiten
	
ON=2
	ctag0.statik_koordinate_2_x=<p>
  	ctag0.statik_koordinate_2_y=<p>
  	smsg OK, zweite Koordinate gespeichert <dctag0>,<dctag0>!
  	smsg Geb den Befehl nocheinmal ein um alles zu beenden

ON=3
	ctag0.statik_koordinate_1_x=
	ctag0.statik_koordinate_1_y=
	ctag0.statik_koordinate_2_x=
  	ctag0.statik_koordinate_2_y=
  	dialog d_statiken

ON=4
 IF !(<dctag0>) || !(<dctag0>)
 	smsg Fehler! Eins der zwei Koordinaten fehlen!
 	dialog d_statiken
  ELSE
    	var0.koordinate_x=<dctag0> 
  	var0.koordinate_x -= <dctag0>
   	var0.koordinate_y=<dctag0>
  	var0.koordinate_y -= <dctag0>
  	
   IF (<dvar0> < 0)
   	var0.koordinate_x *= -1 
   ENDIF
   	var0.koordinate_x = <dvar0>/2
   	
   IF (<dvar0> < 0)
   	var0.koordinate_y *= -1 
   ENDIF
  	var0.koordinate_y = <dvar0>/2
  	p=<eval <ctag0>+<var0>>,<eval <ctag0>+<var0>>
  	update
    IF (<dvar0> > <dvar0>)
//    	serv.save
//    	f_statiken_nuke
    	serv.export <name><dctag0>statik.wsc 1 <dvar0> 0
     ELSE
//     	serv.save
//     	f_statiken_nuke
     	serv.export <name><dctag0>statik.wsc 1 <dvar0> 0
    ENDIF
    
    IF !(<dctag0>)
    	ctag0.statik_anzahl=0
    ENDIF
    	smsg Das File <name><dctag0>statik.wsc wurde erstellt. Nun kann es gestatikt werden!
  	ctag0.statik_koordinate_1_x=
	ctag0.statik_koordinate_1_y=
	ctag0.statik_koordinate_2_x=
	ctag0.statik_koordinate_2_y=
	ctag0.statik_anzahl += 1
	serv.log GM <name> hat ein Statik File exportiert. Name ist <name><eval <ctag0>-1>statik.wsc
 ENDIF
 

[FUNCTION f_statiken_nuke]
	foritems <dvar0>
	remove
	endfor
  	
[FUNCTION f_statiken_mittelpunkt]
	var0.koordinate_x=<dctag0> 
  	var0.koordinate_x -= <dctag0>
   	var0.koordinate_y=<dctag0>
  	var0.koordinate_y -= <dctag0>
  	
   IF (<dvar0> < 0)
   	var0.koordinate_x *= -1 
   ENDIF
   	var0.koordinate_x = <dvar0>/2
   	
   IF (<dvar0> < 0)
   	var0.koordinate_y *= -1 
   ENDIF
  	var0.koordinate_y = <dvar0>/2
  	var0.statiken_mittelpunkt_x=<eval <ctag0>+<var0>>
  	var0.statiken_mittelpunkt_y=<eval <ctag0>+<var0>>
  	var0.statiken_mittelpunkt=<eval <ctag0>+<var0>>,<eval <ctag0>+<var0>>

Antworten