Seite 1 von 4

Waffen, Werkzeug und Tränke einlagern

Verfasst: Fr 19. Okt 2012, 16:53
von Chris1231
Update 4.11.2015
update findet ihr am ende

so könnt ihr alles einlagern, bis auf, holzkiepe, große holzkiepe, besondere waffen und questgegenstände
da einige paar probleme haben, hab ich mich mal bissel kundig gemacht. anscheint haben die verschiedenen versionen von wiggles ein paar abweichende skripts.

Dazu wurden folgende Dateien geändert:
\Wiggles\Data\Scripts\classes\work\lager.tcl

falls das nicht da stehen sollte oder mit // am anfang bitte ändern.
ganz am anfang von dem skript muss folgendes stehen

Code: Alles auswählen


def_class _Nahrung_einlagern 						service material 1 {} {}
def_class _Kisten_einlagern 						service material 1 {} {}
def_class _Pilze_einlagern 							service material 1 {} {}
def_class _Rohmineralien_einlagern 					service material 1 {} {}
def_class _Mineralien_einlagern 					        service material 1 {} {}
def_class _Waffen_Werkzeug_und_Traenke_einlagern  	service material 1 {} {}
als erstes entfernt man die //
vom original

Code: Alles auswählen

//		if {[get_prod_slot_cnt this _Waffen_Werkzeug_und_Traenke_einlagern] != 0} {
//				set store_misc 1
//		}  else {
				set store_misc 0
//		}
Zu

Code: Alles auswählen

		if {[get_prod_slot_cnt this _Waffen_Werkzeug_und_Traenke_einlagern] != 0} {
				set store_misc 1
		}  else {
				set store_misc 0
		}

etwas weiter unten in der datei. muss man set_prod_slot_cnt this_Waffen_Werkzeug_und_Traenke_einlagern 0 einfügen
vom original

Code: Alles auswählen

                set_prod_slot_cnt this _Kisten_einlagern 		0
		set_prod_slot_cnt this _Nahrung_einlagern		0
		set_prod_slot_cnt this _Pilze_einlagern	 		0
		set_prod_slot_cnt this _Mineralien_einlagern 	0
		set_prod_slot_cnt this _Rohmineralien_einlagern 0
zu

Code: Alles auswählen

 
                set_prod_slot_cnt this _Kisten_einlagern 		0
		set_prod_slot_cnt this _Nahrung_einlagern		0
		set_prod_slot_cnt this _Pilze_einlagern	 		0
		set_prod_slot_cnt this _Mineralien_einlagern 	0
		set_prod_slot_cnt this _Rohmineralien_einlagern 0
                set_prod_slot_cnt this _Waffen_Werkzeug_und_Traenke_einlagern 0
nun weiter, natürlich müssen die wiggles wissen was sie einlagern sollen.
so sieht das original aus

Code: Alles auswählen

// liefert Klassennamen zum Einlagern

		proc get_classes_to_store {} {
			global store_food store_boxes store_mushrooms store_rawminerals store_minerals store_misc

			set classes [list]
			if {$store_food} {
				lappend classes Grillpilz Grillhamster Pilzbrot Raupensuppe Raupenschleimkuchen Gourmetsuppe Hamstershake Bier
			}
			if {$store_mushrooms} {
				lappend classes Pilzstamm Pilzhut
			}
			if {$store_rawminerals} {
				lappend classes Eisenerz Golderz Kristallerz
			}
			if {$store_minerals} {
				lappend classes Eisen Gold Kristall Stein Kohle
			}

			if {$store_misc} {
				lappend classes Steinschleuder Schwert Kleiner_Heiltrank Heiltrank Grosser_Heiltrank
			}

			return $classes
		}
und das fügt ihr hier ein.

Code: Alles auswählen

		// liefert Klassennamen zum Einlagern

		proc get_classes_to_store {} {
			global store_food store_boxes store_mushrooms store_rawminerals store_minerals store_misc

			set classes [list]
			if {$store_food} {
				lappend classes Grillpilz Grillhamster Pilzbrot Raupensuppe Raupenschleimkuchen Gourmetsuppe Hamstershake
			}
			if {$store_mushrooms} {
				lappend classes Pilzstamm Pilzhut Bier
			}
			if {$store_rawminerals} {
				lappend classes Eisenerz Golderz Kristallerz
			}
			if {$store_minerals} {
				lappend classes Eisen Gold Kristall Stein Kohle
			}

			if {$store_misc} {
				lappend classes Steinschleuder Schwert Kleiner_Heiltrank Heiltrank Grosser_Heiltrank Keule Reithamster Schild Streitaxt Kettensaege Schwert PfeilUndBogen Metallschild Presslufthammer Hoverboard Buechse Lichtschwert Kristallschild Kristallstrahl Pilzschnaps Liebestrank Unverwundbarkeitstrank Unsichtbarkeitstrank Jungbrunnentrank Fruchtbarkeitstrank Wiederbelebung
			}

			return $classes
		}
in der datei \Wiggles\Data\Scripts\misc\techtreetunes.tcl
im original, im oberen drittel der datei

Code: Alles auswählen

               "Lager" {
		set tttmaterial_Lager				{Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzhut}
		set tttinvent_Lager					{{exp_Holz 0.179} {exp_Transport 0.109}}
		set tttgain_Lager					{{exp_Holz 0.3}}
		set tttinfluence_Lager				{{exp_Holz 0.3}}
		set tttitems_Lager					{_Kisten_einlagern _Nahrung_einlagern _Pilze_einlagern _Rohmineralien_einlagern _Mineralien_einlagern}
		set tttpreinv_Lager					{_Kisten_einlagern _Nahrung_einlagern _Pilze_einlagern _Rohmineralien_einlagern _Mineralien_einlagern}
		set tttfow_x						30
		set tttfow_y						30
und so ändert ihr das

Code: Alles auswählen

	"Lager" {
		set tttmaterial_Lager				{Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzstamm Pilzhut}
		set tttinvent_Lager					{{exp_Holz 0.179} {exp_Transport 0.109}}
		set tttgain_Lager					{{exp_Holz 0.3}}
		set tttinfluence_Lager				{{exp_Holz 0.3}}
		set tttitems_Lager					{_Kisten_einlagern _Nahrung_einlagern _Pilze_einlagern _Rohmineralien_einlagern _Mineralien_einlagern _Waffen_Werkzeug_und_Traenke_einlagern}
		set tttpreinv_Lager					{_Kisten_einlagern _Nahrung_einlagern _Pilze_einlagern _Rohmineralien_einlagern _Mineralien_einlagern _Waffen_Werkzeug_und_Traenke_einlagern}
		set tttfow_x						30
		set tttfow_y						30

Update 4.11.2015 Update 4.11.2015 Update 4.11.2015
lang habe ich versprochen, nun kommt das Update.
das Update besteht aus einer Sammlung des folgenden threads.

Problem: es kann der Fehler auftreten, dass nicht noch den neuen Items gesucht wird.

Zed2000 hat folgendes geändert:

Dazu wurden folgende Dateien geändert:
\Wiggles\Data\Scripts\classes\work\lager.tcl

bei ungefähr Zeile 110

Im Original

Code: Alles auswählen

set classes "Grillpilz Grillhamster Pilzbrot Raupensuppe Raupenschleimkuchen Gourmetsuppe Hamstershake Bier Pilzstamm Pilzhut Eisenerz Golderz Kristallerz Eisen Gold Kristall Stein Kohle"
geändert

Code: Alles auswählen

 set classes [get_classes_to_store]
Problem: Einige Waffen sind nicht sind nicht Lagerfähig.

Zed2000 hat folgendes geändert:

Dazu wurde folgende Datei geändert:
\Wiggles\Data\Scripts\init\animinit.tcl

Im Original

Code: Alles auswählen

proc SetWeaponClasses {objclasslist} {
   foreach objclass $objclasslist {
      set classname [lindex $objclass 0]
      set animlist [lindex $objclass 1]
      def_class $classname metal tool 0 {} "
         call scripts/misc/animclassinit.tcl
         set classanimlist \{$animlist\}
         set animname \[lindex \$classanimlist 0\]
         class_defaultanim \${animname}.standard
         class_physic 1
         class_viewinfog 1
         method is_weapon {} {}
         method destroy {} { del this }
         obj_init \"
            set_selectable    this 1
            set_hoverable    this 1
         \"
      "
   }
 }
fügt einfach set_storable this 1ein

geändert

Code: Alles auswählen

proc SetWeaponClasses {objclasslist} {
   foreach objclass $objclasslist {
      set classname [lindex $objclass 0]
      set animlist [lindex $objclass 1]
      def_class $classname metal tool 0 {} "
         call scripts/misc/animclassinit.tcl
         set classanimlist \{$animlist\}
         set animname \[lindex \$classanimlist 0\]
         class_defaultanim \${animname}.standard
         class_physic 1
         class_viewinfog 1
         method is_weapon {} {}
         method destroy {} { del this }
         obj_init \"
            set_selectable    this 1
            set_hoverable    this 1
            set_storable  this 1
         \"
      "
   }
}
diese Änderung bewirkt das nun Waffen die Lagerfähigkeit erhält.

Problem: Items die an der decke kleben oder einfach nicht erkannt werden

Dieser Skript ist ein Versuch von Zed2000, wir wissen nicht ob es geht.

Dazu wurde folgende Datei geändert:
\Wiggles\Data\Scripts\classes\zwerg\z_work_prod.tcl

im Original

Code: Alles auswählen

tasklist_add this "state_disable this; walk_action \"-target \{[get_pos $next_item]\} \" {state_enable this}"
geändert zu

Code: Alles auswählen

tasklist_add this "state_disable this; walk_action \"-target \{[get_posbottom $next_item]\} \" {state_enable this}"
Problem: es musste neues spiel gestartet werden, damit die Items gelagert werden.

Dazu wurden folgende Dateien geändert:
\Wiggles\Data\Scripts\classes\work\lager.tcl

Zed2000 hat die funktion handle_event evt_timer_search umgändert.

Code: Alles auswählen

    handle_event evt_timer_search {
      global items_list old_items_list storable_items_list store_range
//       log "lager.tcl: Event evt_timer_search"

      
      set classes [get_classes_to_store]
      if {[llength $classes] > 0} {
         set items [obj_query this "-flagneg {instore} -type tool -class \{$classes\} -owner \{[get_owner this] -1\} -alloc -1"]
         foreach item $items {
            if {[get_storable $item] == 0} {
               set_storable $item 1
            }
         }
      }
      
      validate_store_content
Hinweis: validate_store_content ist die erste Zeile die man nicht mehr ändert.


viel spaß damit und besten dank Zed2000
mfg
Christian

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Do 18. Apr 2013, 21:33
von kosch
Funzt bei mir nicht. Hab die Slot-Vergrößerung raus genommen, geht trozdem nicht.
... Und da hab ich mir die Frage gestellt, wie soll das bei Gegenstänen funktionieren, die mit sich rum getragen werden und bei Bedarf benuzt werden? Woher kann/soll der Wiggli wissen welche Waffe er einlagern soll und welche Tragen? Ausserdem sind das Gegenstände, die ein Wiggle nicht selbständig aufnimmt.

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Mi 1. Mai 2013, 11:52
von Chris1231
Der lager script sagt dem wiggle welche waffe oder gegenstand er aufnehmen soll um zu lagern. Waffen und gegenstrände die der wiggle bei sich hat zählen nicht zum einlagern.
Der script sucht in einer reichweite vom lager(standart 200) nach objekten die seit dem letzten tick nicht bewegt wurden.

Es ist also egal ob der wiggle gegenstände und waffen bei sich hat, diese werden vom lager als nicht erkannt.
der script sagt nach der änderung was der wiggle aufnehmen soll

if {$store_misc} {
lappend classes Steinschleuder Schwert und so weiter

sicher hast du ein befehl vergessen oder einfach nur eine klammer gesetzt oder nicht gesetzt.
hab mir den ganzen script angeschaut und nix gefunden.

es ist darauf zu achten, dass die objekte richtig geschrieben sind, alle klammern und sonderzeichen gesetzt sind.
und das auch die techtree.tcl geändert wurde.

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Mi 1. Mai 2013, 20:13
von kosch
Danke für die Antwort. Dann muß ich nochmal genau gucken.

Und jetzt hab ich das auch mit den Sachen Tragen verstanden, das Lager macht das einlagern, und nicht der Wiggl, oder so.
:)

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Mi 1. Mai 2013, 20:26
von Chris1231
genau,
helfe gern, wenn ich kann :)

solltest du dennoch probleme haben, schick mir einfach mal die lager.tcl und die techtree.tcl per pn ich schau da schnell durch

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Fr 4. Jul 2014, 14:03
von herford2008
Ist hier überhaupt noch jemand Aktiv ? Spiele seit einer Woche wieder Wiggles aber das mit den Waffeneinlagern Klappt bei mir nicht. Die Funktion ist vorhanden aber kein Wiggle übernimmt die Aufgabe zum Waffeneinlagern. Habe vor Jahren mal selbst rumgebastelt und es hinbekommen aber ich weiss heute leider nicht mehr wie ich das gemacht habe :/

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Mo 7. Jul 2014, 18:18
von kojo125
Ja hier ist hin und wieder jemand aktiv . Zu deinen Problem frag am besten chris1231 , der kennt sich da bestens aus .

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Mi 9. Jul 2014, 02:31
von herford2008
Ok, habs nun selbst hinbekommen. Die Itemliste bei "Liefert Klassennamen zum Einlagern" einfach weiter oben bei "andere Itemsuche" nochmal eingefügt und jetzt Lagern sie Fleißig Waffen und Tränke ein :) Vielleicht habe ich das in der Beschreibung auch übersehen^^

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Sa 26. Jul 2014, 17:06
von Japanhonk
Hallo Zusammen,
ich heisse Manfred, komme aus Ostwestfalen und programmiere auch selber Adventure Games
im Bereich Star Trek, bin 38 Jahre und bin auf dieses nette Forum gestoßen...

Habe mich hier gerade angemeldet, weil ich an meinem alten Wiggles Spiel doch recht hänge und es
wieder hervorgekramt habe.

Waffen, Werkzueug und Tränke einzulagern wäre klasse.

Ich habe das Skript modifiziert, ein neues Lager gebaut und es erscheint auch das Symbol zum Einlagern.
Aber :

Es muss erst erfunden werden. Also macht sich ein Wiggle auf den Weg und setzt die Denkkappe auf - dann setzt er sie wieder ab, dann wieder auf - endlos.

Woran liegts ?

Gruss

Manni

Re: Waffen, Werkzeug und Tränke einlagern

Verfasst: Sa 13. Sep 2014, 16:20
von JohannesM
Hi,

ich hatte mal da was ähnliches zusammen gebastelt und bin der Meinung das es funktioniert hat.
Kannst ja mal ein diff über die Änderungen drüber haun, und schaun was noch fehlt.

Viele Grüße
Johannes