Neues von der Objekt-Balance (Tilly, 18. Jul 2001, 12:34:23):
Nach anstrengender und mehrfacher Diskussion haben wir
von der Objekt-Balance uns in der Nachfolge von Boing
endlich entschieden.

Boing scheidet aus dem Team aus, sein Platz wird ab
sofort von Darkwing uebernommen.

Ich danke Boing fuer seine Arbeit beim Aufbau der
Balance und seinen Einsatz im Team seit dieser Zeit.
Gleichzeitig wuensche ich Darkwing viel Spass und eine
dicke Haut bei uns. Sicher werden mir die meisten da-
bei zustimmen, dass er wirklich viel Wissen und Er-
fahrung rund um das MorgenGrauen mitbringt.

Nach langer und gruendlicher Neudiskussion haben wir
uns auch dazu entschlossen, den anderen Posten erstmal
vakant zu lassen. Wir werden zu einem spaeteren Zeit-
punkt eine erneute Ausschreibung machen.

Dank allen Spielern, die sich beworben hatten. Eure Be-
reitschaft, einen so verantwortungsvollen Posten ueber-
nehmen zu wollen, wissen wir sehr zu schaetzen. Das es
Spieler wie Euch gibt, die ihre Freizeit in solche Ar-
beit zu stecken bereit sind, die dann sogar Aerger und
persoenliche Anfeidungen ergibt, ist eher die Ausnahme.


 - Tilly, i.A. der Balance -

p.s.: Die Tatsache, dass Darkwing nicht zur Gaenze den
      'Kriterien' entspricht, die in dem Ausschreibungs-
      Artikel genannt wurden, ist uns durchaus bewusst.
      Diese Kriterien waren nicht verbindlich, 1/3 der
      Bewerbungen fielen nicht darunter.

-----------------------------------------------------------------------------



Anpassung Elementarschwert/-schild (Anatol,  1. Aug 2001, 00:36:36):
Hallo ihr alle,
wie Morgoth bereits hat anklingen lassen, mussten weitere 
Objekte erneut auf den Pruefstand der Objekt-Balance und 
zwecks TUeV-Verlaengerung technische Modifikationen ueber 
sich ergehen lassen.

Elementarschwert (in allen bekannten Ausfuehrungen) und
-schild sind nur noch in 'elementaren' Schadenstypen (4+1)
zu haben - also kein peitschendes/explosives/heiliges/... 
Elementarschwert mehr. Zusaetzlich litt auch der (bisher
maximale) Ruestungsschutz des Elementarschilds, nicht 
allerdings die magische Art des Schutzes (Resistenzen).

Da es, wie die Erfahrung zeigte, nicht immer klar ist, 
wieso 'wir von der Balance' uns so oft in die Nesseln 
setzen, moechte ich die Beweggruende (die uebrigens im 
Prinzip die selben sind wie jene das beruehmtberuechtigte
Schwertmeisterschwert betreffend) erlaeutern:
Ein Allround-Objekt, egal ob Waffe oder Ruestung, ist hier
in unserer Welt nicht wuenschenswert, denn es nimmt zuviel
Spielraum fuer Vielfalt fuer sich in Anspruch. Erwaehntes 
Elementarschild beispielsweise deckte alle moeglichen
Schadenstypen (auch noch mit maximalem Schutz) ab; ein 
neues Gebiet haette dem Mud in dieser Hinsicht mit einem 
Schild, das beispielsweise gegen Saeure schuetzt, nichts 
neues an Vielfalt haette geben koennen. Der gesamte 
Bereich 'Schild + max. Ruestungsschutz + max. Resistenz
vom Typ <frei waehlbar>' wurde von einem einzigen Objekt 
abgedeckt -- das empfindliche Verhaeltnis "noetige 
Mudkenntnis" zu "erreichbare Vielfalt" geraet durch solche
Multifunktions-Objekte schwer ins Trudeln. So schwer, dass
selbst eine vergleichsweise schwere Erreichbarkeit die
Notwendigkeit einer Aenderung nicht beseitigen wuerde.

Ich hoffe, dass damit wenigstens halbwegs klar ist, warum
wir hier etwas getan haben. Uns ist - natuerlich - schon
bewusst, dass schon wieder die Menschen-Trves eine sehr
bittere Pille zu schlucken haben (und, um ein wenig 
vorzugreifen, wir haben noch eine weitere fuer sie :-(), 
aber vielleicht macht gerade diese Bitterkeit deutlich, 
dass Handlungsbedarf bestand. 

Da die betroffenen Objekte derzeit offenbar ueberhaupt
nicht mehr erhaeltlich zu sein scheinen, sei abschliessend
noch gesagt, dass ein Magier durchaus berechtigt ist, in 
seinem Verantwortungsbereich einzelne Objekte in eigener
Regie aus dem Spiel zu nehmen. Vielleicht weil er sie fuer
nicht spieltauglich haelt oder z.B. um sie ohne Zeitdruck 
neuen Bedingungen anpassen zu koennen oder ...

i.A. der Balance,
Anatol

-----------------------------------------------------------------------------



Pharmazie der Runenschwerter (Anatol,  4. Aug 2001, 01:05:18):
Ungeachtet der Packungsbeilage wie angekuendigt die zweite
nicht wirklich suesse Pille, die wieder besonders den
menschlichen Trves etwas auf den Magen schlagen kann: Es
geht, wie Padreic in "balance" und "d.unterwelt" schon
angedeutet hat, in der Tat um die Runenschwerter - was
jene wackeren Recken, die unlaengst vergebens um Einlass in
Zzerenzzen ersuchten, vielleicht schon geahnt haben. Anbei
ein grober Ueberblick.

Zuerst die gute Nachricht: Es wird sie weiter geben und
trotz der mudweiten Verbannung des hohen homogenen nicht-
physikalischen Schadenanteils (dazu last ihr ja schon, so
von wegen Todesritterschwert, Golemarm und so...) wird es
sie weiterhin in gewohnter Form und in sehr aehnlicher
Staerke geben. Diese neue Art der Magie kann allerdings
nur von Leuten beherrscht werden, die sich ensprechend mit
ihr beschaeftigt haben.
Die weniger schoene Aenderung koennt ihr euch ja inzwischen
denken: Wie auch beim Elementarschwert wurden in puncto
Schadenstyp-Vielfalt Abstriche gemacht: Drei bestimmte Typen
sind ueberhaupt nicht mehr moeglich, fuer zwei andere muss
man etwas mehr Einsatz zeigen.

Auch hier eine Anmerkung, die das eine oder andere immer
wieder auftretende Missverstaendnis bereinigen koennte:
Das Gremium fuer Objekt-Balance ist nicht fuer Dinge, die
lediglich eine bestimmte Gilde betreffen, verantwortlich.
Wenn es also fuer eine potentielle Elementaristengilde von
groesster Wichtigkeit ist, ueber Elementarschwerter zu
verfuegen, deren Schadenstypen nicht mehr verfuegbar sind,
koennen im Rahmen der Gildenbalance fuer die Elementaristen
Ausnahmen gemacht werden. Ebenso koennte beispielsweise der
die Gilde der Dunkelelfen betreuende Magier mit der
Gildenbalance vereinbaren, dass Dunkelelfen auch jene
Runenschwerter nutzen koennen, die aus Sicht der Balance
nicht fuer den Rest des Muds zugelassen werden sollen. Die
kommenden Dunkelelfen/Elementaristen werden also nicht um
ihre Existenz bangen muessen, denn fuer sie koennen, so es
die Gildenbalance gutheisst, Wege geebnet werden.

i.A. der Balance,
Anatol

-----------------------------------------------------------------------------



Neues von der Balance, Teil I (Tilly, 18. Nov 2001, 15:41:00):
Moin moin auch.

Manchmal gibt es Dinge, die man lieber nicht verkuenden 
wuerde. Doch sie nicht zu verkuenden und sich vor den 
Tatsachen zu verschliessen, hilft auch nicht weiter.

Matis und Anatol scheiden auf eigenen Wunsch aus der 
Objekt-Balance aus.

Damit gehen die beiden Mitglieder unseres Teams, die bis-
her am laengsten dabei waren. Mit ihnen geht auch ein un-
geheures Wissen und eine Erfahrung um das MG und die
Balance.

Ich danke beiden fuer ihre Aufopferung, ihre Geduld und
die grosse Muehe, die sie bei dieser verantwortungsvollen
Aufgabe auf sich nahmen, um die Arbeit der Balance zu be-
reichern.

Beiden wuensche ich viel Spass beim unbeschwerten Spiel
hier im MorgenGrauen. 

Danke Euch!

 - Tilly, i.A. der Balance - 

-----------------------------------------------------------------------------



Neues von der Balance, Teil II (Tilly, 21. Nov 2001, 14:17:07):
Moin moin!

Wie Ihr aus meinem letzten Artikel unschwer entnehmen
konntet, sind der Objekt-Balance zwei Mitglieder ab-
handen gekommen.

Diese (grosse) Luecke muss gefuellt werden.

Deswegen diskutieren wir schon ein Weilchen um den 
moeglichen Nachwuchs herum. Und da wir ein weitest-
gehend offenes Gremium sind, moechten wir Euch na-
tuerlich daran beteiligen.

Wenn also DIR ein/e Spieler/in einfaellt, der/die wegen 
seines/ihres Wissens und Erfahrung in der Balance gut 
aufgehoben waere, und von dem/der DU denkst, er/sie 
wuerde diese Aufgabe gewissenhaft und unparteiisch 
erledigen koennen, so lass uns das doch einfach wissen. 

Am einfachsten geht dies per 'mail balance'.

Soo, das wars mit Teil II. Teil III kommt dann noch ...

 - Tilly, i.A. der Balance - 


-----------------------------------------------------------------------------



Neues von der Balance, Teil III (Tilly,  6. Dez 2001, 20:56:34):
Moin moin!

Dieser Tag ist fuer mich und die anderen
Mitglieder der Balance ein besonders guter.

Gilt es doch, die beiden Neubesetzungen
innerhalb unserer Reihe der Oeffentlichkeit
mitzuteilen.

Nachdem viele Vorschlaege bei uns einge-
gangen sind, haben wir uns auf Asuka und
Elendil geeinigt.

Ich wuensche beiden viel Erfolg, Ausdauer
und auch Spass in und bei der Objekt-Balance.

Dank an jene, die uns Vorschlaege gaben oder
sich selber vorgeschlagen haben. :-)

 - Tilly, i.A. der Balance -


-----------------------------------------------------------------------------



Neues von der Balance, Teil IV (Tilly, 19. Dez 2001, 13:27:47):
Moin moin,

und schon wieder gibt es Neues von der Objekt-Balance.

Nachtwind wird seine knapp bemessene Zeit in Zukunft
ganz und gar der Gilden-Balance zukommen lassen und
steht uns damit leider nicht mehr zur Verfuegung.

Sein ungeheures Wissen, nicht nur rund um die Gilden-
Interna, wird uns sehr fehlen.

Der freigewordenen Posten wird erstmal vakant bleiben.

Bis zur naechsten Verkuendung,

          - Tilly, i.A. der Objekt-Balance -

-----------------------------------------------------------------------------



Wurzels Bruchstueck (Tilly,  4. Aug 2002, 13:10:33):
Moin moin,

einige werden das Bruchstueck eines Spinnenpanzers von Wurzel
kennen und/oder sogar bei sich tragen.

Nun, die Funktionalitaet dieses Bruchstueckes wurde von der
Objekt-Balance eingeschraenkt. Eigentlich haette es Wurzel
machen sollen, aber deren Abwesenheit scheint momentan kein
Ende zu finden.

Dieses Objekt erledigt eine Aufgabe, die die meisten von Euch
an einen Client delegieren. Dies diese Arbeit von einem Objekt
wahrgenommen wird, koennen und werden wir nicht zulassen.

Und bevor hier jetzt eine Diskussion ala 'Wenn dieses Objekt,
wieso nicht dann auch jenes oder welches?' ausbricht, moechte
ich mich schon jetzt herzlichst fuer die Hinweise bedanken :-)

 - Tilly, i.A. der Objektbalance -

p.s.: Natuerlich spricht nichts dagegen, wenn Wurzel dem Objekt
      einen anderen Nutzen zuweist.

-----------------------------------------------------------------------------



Verstaerkung fuer die Objekt-Balance gesucht (Tilly, 19. Sep 2002, 13:27:03):
Moin moin.

Die Objekt-Balance sucht SpielerInnen, die es sich zutrauen,
ihre Reihen zu verstaerken und tatkraeftig im Team mitzuwirken.

Es gibt keine Anforderungen an die Gilde, den Level oder der-
gleichen. Solltest Du Dich bewerben wollen, so ist Lust, Spass
und Zeit das einzige, was Du nebst einer eigenen Meinung und
mangelnder Scheu vor einer Konfrontation mitbringen muesstest.
Wenn Du also denkst, das Du Dich im MorgenGrauen recht gut
auskennst, und die Faehigkeit besitzt, unvoreingenommen Objekte
zu beurteilen und diese im Team zu diskutieren, so zoegere
nicht und bewirb Dich jetzt per 'mail balance'.

Dergleichen gilt auch, wenn Du jemanden fuer besonders faehig
haeltst und denkst 'er/sie waere in der Balance gut aufgehoben'.
Dann schlag uns diesen Spieler / diese Spielerin einfach vor.

Bitte nur per 'mail balance' und moeglichst innerhalb der
naechsten zwei Wochen antworten. Also bis zum 03.10. diesen
Jahres.

Gruss,
              - Tilly, i.A. der Objekt-Balance -

-----------------------------------------------------------------------------



Neues von der Objekt-Balance (Tilly, 10. Okt 2002, 16:24:48):
Moin moin.

Viel Neues gibt es zu verkuenden.

Vor wenigen Wochen bat ich in dieser Rubrik um Bewerbungen
und Vorschlaege fuer vakante Posten in der Objekt-Balance.

Die Reaktionen auf diesen Artikel hat das Team wirklich
ueberrascht. Mit so vielen Mails und tm's haben wir nicht
gerechnet. Ich danke allen, die sich beworben haben fuer
ihre Bereitschaft, die schwierige Aufgabe in der Balance
wahrzunehmen und die grosse Verantwortung zu uebernehmen,
die damit einher geht.

Wir haben lange beraten, diskutiert, ueberlegt und per-
soenliche Gespraeche mit den Bewerbern gefuehrt.

Als Ergebnis heisse ich Croft, Foobar und Pitfall in der
Balance willkommen. Ich wuensche ihnen viel Durchhalte-
vermoegen und Spass bei ihrer neuen Aufgabe.

Nun mag der ein oder andere von Euch verdutzt bemerken:

          'Oeh, gleich 3 Neue? Wie denn das?'

Und damit komme ich zum zweiten Teil der Bekanntmachung.

Elendil scheidet auf eigenen Wunsch aus dem Balance-Team
aus. Leider hat sein RL ihn dermassen beschaeftigt, das er
nicht die Zeit fuer die Balance gefunden hat, die er
dafuer gern aufgebracht haette. Das ist schade, kann aber
jedem von uns passieren.

Ebenso hat sich Puk dazu entschlossen, seinen Posten in
der Balance zur Verfuegung zu stellen. Er war ueber zwei
Jahre bei uns. Das ist eine lange Zeit, sein Engagement
und der unermuedliche Einsatz fuer Belange der Balance
werden uns sicher fehlen.

Ich bedanke mich bei beiden fuer ihre Bereitschaft und
die geleistete Arbeit und wuensche ihnen noch viel Spass
hier im MorgenGrauen.

Der dritte Posten, der von uns heute neu besetzt wird, ist
der von Nachtwind. Dieser Posten ist schon etwas laenger
vakant, und ich freue mich, dass das Team nun endlich
wieder komplett und vollstaendig ist.


Nun: herzlich Willkommen den Neuen!


               - Tilly, i.A. der Balance -

-----------------------------------------------------------------------------



Neues Balance-Team-Mitglied (Zook, 22. Jan 2003, 12:37:42):
Hallo,

wir freuen uns, Euch mitzuteilen, dass unser Balance-Team Verstaerkung
bekommen hat. Humni ist ab sofort Mitglieder der Balance. Dir Humni wuensche
ich viel Spass bei der Aufgabe und der Balance nun ganz viel Gilden-Balance-
Knowhow.

Gruss, Zook.

-----------------------------------------------------------------------------



Artillerie-Objekte (Zook,  5. Jul 2003, 22:43:35):
Nach einem langen Diskussionsprozess haben wir von der Objekt-Balance
neue Regeln fuer Artillerie-Objekte festgelegt. 

Artillerie sind Objekte, die zusaetzlich zu den vorhandenen Gildenfaehig-
keiten durch ein vom Spieler initiiertes Kommando direkt Schaden an einem oder
mehreren Gegnern verursachen.

Die fuer Spieler wichtigen Anforderungen werden in Zukunft sein:

 - Artillerie muss Konzentrationspunkte verbrauchen.
 - Artillerie darf nicht (bzw. nur begrenzt) gehoertet werden koennen.
 - Artillerie darf bei Paralyse nicht angewendet werden koennen.
 - Artillerie verbraucht eine oder mehrere Aktionen im Kampf.

Diese Regelungen treten in 30 Tagen in Kraft. Bis dahin werden von uns die
Magier der uns bekannten Artillerie angemailt und es wird um Anpassung oder
Neubeantragung gebeten. Danach sollte (eine gewisse Bearbeitungsfrist
draufgeschlagen) keine Artillerie mehr im Spiel sein, die diese Anforderungen
nicht erfuellt. Falls doch, so bitten wir Euch um Mitteilung, damit wir
auch diese Objekte noch ausbalancieren koennen.

Gruss, Zook.

-----------------------------------------------------------------------------



Neue Balance-Mitglied gesucht (Nonne, 22. Jan 2004, 11:27:46):
~#! on=Nonne ot=1074762274 og=bekanntmachungen
Hallo Leute,

leider wird Darkwing das Balanceteam verlassen. Ich moechte ihm an dieser
Stelle fuer seine Arbeit danken. Wir werden seine Mudkenntnis vermissen, auch
seine Erfahrung durch die langjaehrige Arbeit in der Balance wird schwer zu
ersetzen sein.

Nun suchen wir ein neues Mitglied, welches ueber folgende Eigenschaften
verfuegen sollte:

- starke Nerven
- gesunden Menschenverstand
- Zeit
- Ein dickes Fell gegenueber Kritik aus der Magier- und Spielerschaft
- gutes allgemeines Spielverstaendnis
- Teamfaehigkeit
- sehr gute Kenntnis des Muds

Ernstgemeinte Vorschlaege und Bewerbungen bitte per Mail an balance.

Nonne, i.A. des Balance-Teams
~?


-----------------------------------------------------------------------------



Re: Neue Balance-Mitglied gesucht (Nonne, 22. Jan 2004, 11:27:48):
~#! on=Nonne ot=1074766986 og=bekanntmachungen
~#! rn=Nonne rt=1074762274 rg=bekanntmachungen
~#! tid=1074762274
Nachtrag: Bewerbungen bitte per Mail bis Samstag den 07.02.04 an uns richten

Nonne.

-----------------------------------------------------------------------------



Balance-Nachfolge (Nonne, 22. Feb 2004, 11:19:14):
Die Wuerfel sind gefallen. Entgegen urspruenglicher Planung werden gleich
zwei neue Mitglieder dem Balance-Team beitreten, da Asuka sich entschlossen
hat, sein Mandat aus Zeitmangel niederzulegen. Ich moechte Asuka an dieser
Stelle fuer die Arbeit und Zeit danken, die er in die Balance und damit zu
gunsten des gesamten MorgenGrauen investiert hat.

Als Nachfolger werden Brotnael und Tylak das Balanceteam ergaenzen. Ich
wuensche viel Erfolg, Spass und ein dickes Fell bei der neuen Aufgabe.

i.A. der Balance
Nonne

-----------------------------------------------------------------------------



Ruecktritt (Miril, 19. Jul 2005, 00:30:17):
Hallo!

Leider muss ich verkuenden, dass Foobar auf eigenen Wunsch aus dem Balance-
Team ausscheidet. Auch wenn ich ihn als Balance-EM nicht mehr aktiv erleben
durfte, sprech ich sicherlich fuer das Team, wenn ich sage, dass er eine
grosse Luecke hinterlassen wird.

Ich danke Dir, Foobar, fuer die Muehe und Geduld, die bei dieser Aufgabe
sicherlich noetig war und hoffe, dass Du weiterhin Spass am Spielen im
MorgenGrauen haben wirst.

Vielen Dank

Miril, im Namen des Balanceteams

-----------------------------------------------------------------------------



Verstaerkung gesucht! (Miril, 19. Jul 2005, 10:22:08):
Huhu!

Durch den Ruecktritt von Foobar ist im Balanceteam eine Luecke entstanden,
die wir zu schliessen gedenken. Wir suchen einen Spieler, der bereit ist,
diese Luecke zu fuellen und tatkraeftig im Team mitzuarbeiten.

Es gibt keine Anforderungen an Gilde oder Level, aber es ist schon wichtig,
dass Du Dich im MorgenGrauen gut auskennst. Noch wichtiger ist jedoch, dass
Du bereit bist, einen Teil Deiner Spielzeit fuer die Balancearbeit 
einzusetzen, Lust und Spass daran hast, neue Objekte auf Herz und Nieren 
zu pruefen und Deine Meinung ohne Scheu vor Konfrontationen zu vertreten. 
Ist dies der Fall, so zoegere nicht, Dich zu bewerben.

Wenn ihr jemanden kennt, dem ihr diese Qualitaeten zuschreibt, schlagt ihn
uns einfach vor.

Bitte schreibt Eure Bewerbungen/Vorschlaege formlos an mail balance.
Einsendeschluss ist der 12.8.2005 (und unter allen Teilnehmern wird ein 
toller Plueschelch verlost ;).

Miril im Namen der Objekt-Balance


-----------------------------------------------------------------------------



Aenderung im Balanceteam (Miril,  1. Sep 2005, 20:41:21):
Huhu!

Vor einigen Wochen hatten wir ein kleines Preisausschreiben gemacht, bei dem
es um den Hauptgewinn des tollen Plueschelchs ging. Der Sieger steht nun
nach langem Ruehren der Lostrommel fest ;).

Nein, nun noch mal im Ernst: 
Das Balanceteam freut sich, in seinen Reihen als neues Mitglied Huraxprax
begruessen zu duerfen, der in Zukunft mithelfen wird, neue Objekte zu
begutachten und alte Objekte abzuwerten (und manchmal sogar aufzuwerten). 
Es hatten sich einige Spieler beworben und waren bereit, diese wichtige
und auch zeitaufwaendige Aufgabe zu uebernehmen, denen ich auf diesem Wege
auch noch einmal fuer ihre Bereitschaft danken moechte. Das Team hat nach
gruendlicher Ueberlegung entschieden, dass Huraxprax diesen Posten bekommen
soll. 

Ich wuensche Dir, Huraxprax viel Spass aber auch viel Durchhaltevermoegen,
Kritikfaehigkeit und Diskussionbereitschaft fuer Deine neue Aufgabe.

Miril, im Namen der Objektbalance

-----------------------------------------------------------------------------



Und schon wieder hat jemand das grosse Los gezogen (Miril, 29. Nov 2005, 23:06:36):
Huhu!

Schon wieder stehen Veraenderungen im Balanceteam an. Brotnael ist auf 
eigenen Wunsch aus dem Balanceteam ausgeschieden. Deine Arbeit hat das
Team sehr bereichert und wir alle bedauern, dass Du nicht mehr die Zeit
fuer diesen Job findest. Jedenfalls danke ich Dir an dieser Stelle noch
einmal fuer die geleistete Arbeit.

Die Luecke, die Brotnael im Team hinterlaesst, haben wir jedoch bereits
wieder geschlossen. Vor einiger Zeit hatten sich eine Reihe von guten
Kandidaten beworben, die wir leider nicht alle beruecksichtigen konnten. Da
sie alle nach wie vor Interesse an der Balancearbeit haben, hat das Team
beschlossen, aus den Kandidaten vom letzen Mal denjenigen auszuwaehlen, der
Brotis Platz einnehmen soll.
Die Tombola wurde geruehrt, Stimmen hingeworfen und der Gewinner des 
Plueschelchs wurde ermittelt ;). 
Ich freue mich, verkuenden zu duerfen, dass Madness nun das Balanceteam
verstaerken wird. Ich hoffe auf eine gute Zusammenarbeit im Team und 
wuensche Dir viel Spass und ein dickes Fell bei Deiner neuen Aufgabe, 
Madness.

Miril, im Namen der Objektbalance.

-----------------------------------------------------------------------------



Ein trauriges Muuuuuuuuuuh! (Miril, 16. Jan 2006, 00:16:30):
Huhu!

Bedauernswerterweise hat nun auch Pitfall beschlossen, seinen Posten bei
der Objektbalance aufzugeben. Auch Dir, Pitfall, moechte ich an dieser
Stelle im Namen des B-Teams noch mal fuer Deine geleistete Arbeit danken.
Deine Kritikfaehigkeit und Spieluebersicht wird uns sicher in Zukunft
fehlen, vom Muuuuhhh ganz zu schweigen ;).

Pitfalls Weggang fuehrt nun dazu, dass ich die alte Tombole wieder zu
neuem Leben erwecken muss. Doch bevor sie geruehrt werden kann, brauchen
wir Zettel mit Namen, die wir hinein werfen koennen ;).

Daher moechte ich alle Interessierten ermutigen, sich fuer einen Posten
in der Objektbalance zu bewerben. Solltet ihr jemanden kennen, den ihr
fuer geeignet haltet, so schlagt ihn uns bitte vor. Auch diejenigen, die
sich bereits frueher beworben haben, moechte ich hiermit ermutigen, dies
nochmals zu tun, wenn sie noch Zeit und Lust haben.

Miril, im Namen der Objektbalance

-----------------------------------------------------------------------------



Re: Ein trauriges Muuuuuuuuuuh! (Miril, 16. Jan 2006, 00:22:54):
~#! rn=Miril rt=1137366990 rg=balance.bekanntmachungen
~#! tid=1137366990
Nachtrag:

Die Bewerbungsfrist laeuft bis zum 6.2.2006. 

Miril

-----------------------------------------------------------------------------



Neues Mitglied im Balanceteam (Miril, 16. Feb 2006, 23:24:01):
Ich freue mich, euch mitteilen zu koennen, dass das Balanceteam nun wieder
xyz
vollstaendig ist. Vector gehoert ab heute mit zum Team und wird mit seiner
langjaehrigen Spielerfahrung und Kenntnis des MG sicher viel zur Arbeit im
Team beitragen koennen. Ich hoffe auf gute Zusammenarbeit und wuensche Dir
viel Spass bei Deiner neuen Aufgabe, Vector!

Miril, im Namen der Objektbalance.

-----------------------------------------------------------------------------



Legenden (Miril,  7. Apr 2006, 14:11:03):
ranken sich um viele Waffen, die die ueblen Geschoepfe des MorgenGrauen mit
sich tragen. Eine davon, dem Tempel des Ulzu'Bakhtarrh entstammend, war den
Huetern des Gleichgewichts schon seit langem ein Dorn im Auge. Schon kleinste
Helden liefen mit diesem Mordinstrument drohend auf der Hochebene herum, um
harmlose kleine Hasen und Ameisen abzuschlachten und wussten nicht einmal,
woher sie diese Waffe hatten. 
Heute ist nun der Tag gekommen, an dem sich die Hueter der Waffen 
bemaechtigten, diese in den tiefen Schmieden des silbernen Turms neu
schmiedeten und dafuer sorgten, dass legendaere Waffen auch nur in die 
Haenden von wahren Helden gelangen koennen. Der weise Spruch:
Feuer, Flamme, Schnitt und Stich sind fuer kleine Spieler nich, wird
nun endlich wahr.

Miril

-----------------------------------------------------------------------------



Re: Legenden (Miril,  7. Apr 2006, 14:20:15):
~#! rn=Miril rt=1144411863 rg=balance.bekanntmachungen
~#! tid=1144411863
Bei der Gelegenheit moechte ich gleich noch hinzufuegen, dass die zuengelnden
Flammen nun etwas seltener erscheinen, als es bislang der Fall war.

Und da ich mal wieder eine Klammer vergessen hab sind leider einige kostbare
Stuecke aus euren Truhen/Inventar etc. verschwunden, die ihr aber bei mir
im Turm abholen koennt.

Miril

-----------------------------------------------------------------------------



Schmiede (Miril,  9. Apr 2006, 14:37:40):
Den Schmieden in den Tiefen des silbernen Turms ist nun auch ein gewisses
gluehendes Messer in die Haende gefallen und sie haben es leider ein
bisschen verdengelt. Dabei hat es geringfuegig an Schaerfe verloren und
glueht auch haeufiger mal etwas schwaecher. Aber das merkt ihr sicher 
selbst. Die gute Nachricht: Diesmal sind alle alten Messer ganz geblieben
und nur neue sind davon betroffen ;).

Miril

-----------------------------------------------------------------------------



Blutsaugerschwert (Miril,  9. Apr 2006, 17:59:58):
Das Blutsaugerschwert hat eine kleine Aenderung erfahren. Als Questbelohnung
sollte es immer noch annaehernd so gut sein, wie es vorher war. Spaeter
geholte Blutsaugerschwerter haben diese Besonderheit jedoch nicht mehr,
sind aber immer noch gute Waffen. Man kann es dem Schwert auch ansehen,
aber das merkt ihr schon selbst.

Miril

-----------------------------------------------------------------------------



Neubewertung alter Objekte (Miril, 10. Apr 2006, 10:41:19):
Wie ihr sicher zur Kenntnis genommen habt, wurden einige alte Objekte neu
bewertet und zum Teil auch abgewertet. Dies hat mehrere Gruende, die wir 
hier kurz erlaeutern moechten.

Seit langem schon gibt es Grenzwerte, die die Objektbalance festgelegt hat
und die bindend fuer die Entscheidung ueber die Genehmigung eines Objekts
sind. Wenn Objekte diese Grenzwerte erreichen oder ueberschreiten, dann sollte
dies nur geschehen, wenn es mit ganz erheblichen Nachteilen einhergeht. Ein
Nachteil kann z.B. sein, dass es sich um Uniqueobjekte handelt, dass sie nur
eine begrenzte Haltbarkeit haben oder vieles andere. Neue Objekte, die in den
letzten Jahren angeschlossen wurden, halten sich an diese Regelungen. Selbiges
gilt auch fuer Dinge, die in Zukunft angeschlossen werden. 

Die Regelungen sind nicht voellig starr, auch solche Kriterien wie 
Erreichbarkeit des Objekts werden von uns bis zu einem gewissen Grad in
Betracht gezogen, aber sie sind vorhanden und wie wir meinen auch sinnvoll,
um die Ruestungsspirale ein wenig unter Kontrolle zu halten bzw. zu verlang-
samen.

Das Problem stellen nun aber eine ganze Reihe von alten Objekten dar, die 
noch vor Bestehen des Balanceteams angeschlossen wurden. Sie halten sich nicht
an diese Grenzen, gehen teilweise weit darueber hinaus. 

Bestandsschutz fuer diese Objekte sollte es nicht geben, denn dies ist vor
allem auch denjenigen gegenueber unfair, die heute noch aktiv Gebiete und
neue Objekte schreiben, aber so etwas nicht mehr genehmigt bekaemen. Neue
Objekte waeren dann schwaecher und somit oftmals auch fuer die Spieler 
uninteressanter als die alte, schnell mal eben geholte Ausruestung. Dies
fuehrt dann dazu, dass eine Reihe neuer Gebiet zwar einmal angeschaut, aber
dann recht selten betreten wird, denn vergleichbare/bessere Items kann man
woanders leichter holen. Diese Entwicklung waere jedoch fatal, da sie gerade
diejenigen Magier demotiviert, die heute noch aktiv sind.

Wir moechten Euch daher auch mit darum bitten, uns solche Objekte zu nennen, 
falls sie Euch auffallen. Viele sind bekannt und werden bereits diskutiert,
aber es waere schoen, wenn wir dabei auf Eure Mithilfe zaehlen koennten.


Miril, im Namen des Balanceteams

-----------------------------------------------------------------------------



Nachruf (Miril, 14. Apr 2006, 13:39:53):
Die Legenden berichten von einem eisigen Schwert, dessen Wille nur eins ist,
naemliche TOETEN. Aeonen lang schmiedete die linke und die rechte Hand des
Todes daran herum, bis es endlich von ihm fuer gut befunden wurde und wuerdig
war, dem grausamsten Kaempfer aller Zeiten, der die Ebene unsicher macht,
als Waffe zu dienen. Niemals hatte die linke und rechte Hand jedoch daran
gedacht, welche Macht diese Waffe in den Haenden von wahren Helden haben
wuerde. Etwas vorsichtig war er jedoch, denn er schmiedete lediglich zehn
Exemplare dieser Waffe.
Die Hueter des Gleichgewichts beobachteten das Schwert schon seit langem. 
Lange Jahre schauten sie zu, wie die Helden dieser Welt damit umherzogen 
und finstere Monstern damit schwer verwundeten oder ihnen gar den Todesstoss 
versetzten. Frueher, als noch mehr Helden diese Welt bevoelkerten, verschwand
die Waffe sehr schnell wieder, um dem finsteren Kaempfer zu dienen. Mit Sorge 
beobachteten die Hueter, dass sich dies inzwischen geaendert hat. Zehn 
Exemplare sind mehr, als die Welt heute noch verkraften kann. Dies mag in 
Zukunft wieder anders werden, wenn abtruennige Helden aus anderen Welten 
zurueckkehren. 
Die Hueter gaben die Waffe den Schmieden in den Tiefen des silbernen Turms,
wo sie eingeschmolzen und nach bestem Wissen und Gewissen neu geschmiedet
wurde, um sie auf die heutige Zeit anzupassen. Etwas geringer ist ihre Macht
dabei geworden, doch vermag auch jetzt noch jeder wuerdige Held, den finsteren
Gesellen den letzten Schlag zu versetzen.
So geht die Legende weiter, das eisige Schwert ist zu neuem Leben erwacht.

Nachruf eines unbekannten Schmiedes aus den Tiefen des silbernen Turms

-----------------------------------------------------------------------------



Aenderung im Balanceteam (Miril, 15. Apr 2006, 15:15:22):
Huhu!

Heute gibts hier mal keine Hiobbotschaft ;).

Wir freuen uns, McDee als neues Mitglied im Balanceteam begruessen zu
duerfen, der an Tylaks Stelle nun im Team mitarbeiten wird. Ich wuensche
Dir viel Spass, Durchhaltevermoegen und ein dickes Fell, McDee.

Tylak moechten wir an dieser Stelle noch einmal fuer sein Mitarbeit im
Balanceteam danken.

Miril, im Namen der Objektbalance.

-----------------------------------------------------------------------------



Nachwuchs gesucht! (Miril,  3. Feb 2007, 13:48:45):
Seid gegruesst, ihr Heldinnen und Helden!

Gar manches maechtige Artefakt, das Ihr bei Euch tragt, wurde zuvor von
den Huetern des Gleichgewichts begutachtet und auf Tauglichkeit geprueft.

Wenn ihr Interesse habt bei dieser Arbeit mitzuwirken oder jemanden kennt,
dem ihr es zutraut, so lasst es uns wissen, denn wir suchen engagierte,
motivierte neue Mitarbeiter im Balanceteam.

Lasst uns eure Bewerbung oder Vorschlaege bitte per 'mail balance' zukommen.

Miril, im Namen des Objektbalanceteams.

-----------------------------------------------------------------------------



Frischer Wind im Balanceteam (Miril, 31. Jul 2007, 19:20:29):
Huhu,

nein, ihr braucht keine Angst haben, Narya gibt es noch. Auch das Adahemd und
die Wurfsterne blieben bislang unbehelligt.

Ich wollte Euch auf diesem Wege mitteilen, dass sich die Zusammensetzung des
Objektbalanceteams geaendert hat. Madness scheidet auf eigenen Wunsch aus dem
Balanceteam aus. Dafuer konnten wir Moonshine fuer diese Aufgabe gewinnen. 

Madness, Dir danke ich fuer die geleistete Arbeit im Balanceteam. Schade, dass
das RL Dir keine Zeit mehr laesst, hier aktiv mitzuarbeiten. 

Dir Moonshine wuensche ich ein dickes Fell, Ausdauer, Durchhaltevermoegen und
Nerven wie Drahtseile, damit Du die vor Dir liegenden Aufgaben gut bewaeltigen
kannst (Nein, ganz so schlimm ist das alles gar nicht und Spass haben wir auch
immer mal wieder ;).

Miril, im Auftrag der Objektbalance

-----------------------------------------------------------------------------



Re: Frischer Wind im Balanceteam (Miril, 31. Jul 2007, 19:22:49):
~#! rn=Miril rt=1185902429 rg=balance.bekanntmachungen
~#! tid=1185902429
Ich muss hier wohl was korrigieren: Ich wuensche Dir eine dicke Zwergenkruste,
Moonshine ;).


Miril

-----------------------------------------------------------------------------



Und noch mehr frischer Wind (Miril, 19. Aug 2007, 21:47:28):
Huhu,

und wieder darf ich verkuenden, dass sich die Zusammensetzung des Balanceteams
veraendert hat. Vector scheidet aus dem Team aus, Zarku konnten wir als seinen
Nachfolger gewinnen. 

Ich danke Dir, Vector, fuer die geleistete Arbeit im Balanceteam. Zarku, Dir
wuensche ich ein dickes Fell (hihi, diesmal richtig) und viel Motivation und
Ausdauer fuer deinen neuen Job.

Miril, im Namen der Objektbalance

-----------------------------------------------------------------------------



Artillerie (Miril,  5. Apr 2008, 15:08:07):

Hallo!

Hinsichtlich der Artillerie wird es einige Veraenderungen geben. Einige
Artillerieobjekte, wie z.B. die Wurfsterne entsprachen schon laenger nicht
mehr den Balancevorgaben. Dank Zesstra ist nun moeglich, diesen Missstand zu
beseitigen. Ich weise alle Magier, die Artillerie gebaut haben, bauen wollen
oder fuer die Pflege solcher Objekte verantwortlich sind auf die Aenderung der
entsprechenden Manpage hin.

Fuer euch Spieler bedeutet dies, dass Wurfsterne, Pfeile von Robins Bogen und
aehnliche Objekte in Zukunft keine unendliche Haltbarkeit mehr haben werden,
sondern langsam vor sich hin gammeln oder rosten.

Miril

-----------------------------------------------------------------------------



Nachwuchs (Miril, 13. Jan 2010, 23:53:30):
Huhu,

wir freuen uns, euch mitteilen zu koennen, dass das Balanceteam einen jungen,
aufstrebenden Nachwuchsbalancler fuer das Team gewinnen konnte. Xutelius wird
ab sofort im Team mitarbeiten und Zarku abloesen. Wir wuenschen Dir, Xutelius,
gute Nerven, viel Spass und hoffen auf eine gute Zusammenarbeit. 

Zarku danken wir an dieser Stellen fuer seine Mitarbeit im Team.

Miril, im Auftrag des Balanceteams.

-----------------------------------------------------------------------------



Tassram ist jetzt ein Balancemitglied! (Humni, 15. Jan 2011, 16:40:30):
Hallo,

da sich Moonshine in letzter Zeit nicht mehr oft hat blicken lassen, haben wir
einen Ersatz gefunden: Tassram!

Ich moechte an dieser Stelle Moonshine fuer die langjaehrige Arbeit danken und
beglueckwuensche Tassram zu dieser verantwortungsvollen Aufgabe.

Humni

-----------------------------------------------------------------------------



Bonbons und Leckereien (Humni, 12. Feb 2013, 21:52:11):
Hallo ihr,

wie einigen von Euch auffallen wird, werden gewisse hexische Bonbons ein
wenig... reduziert sein.

Sprich: Ihr kriegt eins weniger. Ansonsten bleibt aber alles beim Alten.

Warum? Wer einfach nur einen Grund braucht, und schimpfen will: Weil ich es
kann. Und boese bin. Harhar.

Wer nun aber wirklich an dem Hintergrund interessiert ist, mag zuhoeren: Die
Drops sind von Anfang an verdammt grenzwertig gewesen. Verglichen mit dem, was
es damals im Mud gab, waren sie schlichtweg zu gut. Sie haben das Kampf- und
Tankverhalten einigermassen geaendert.

Nun waere es aber, da im Mud mittlerweile die Drops "state of the art" sind,
eine massive Abwertung, die Drops einfach wegzunehmen. Andererseits sind sie
sehr simpel zu erreichen (da wird fast jeder ein Skript hin haben, und selbst
wenn nicht, sind es mit dem Portal nur ein paar Raeume zu laufen), ohne
jegliche Anforderungen.

Also habe ich ein wenig gewartet, bis einige mobile Tankstellen mehr
angeschlossen sind. Also Objekte, die Spieler mitnehmen koennen und die sie
heilen.

Das ist nun der Fall. Die neuen Stellen moegen nicht ganz so simpel zu
erreichen sein, evtl. wird man sogar ein wenig metzeln muessen.

Aber ich denke doch, insgesamt steht ihr besser da. Ja, man muss sich nun
umschauen.

Machtgeilheit und Willkuer,
Humni

-----------------------------------------------------------------------------



Neue Mitglieder (Humni,  4. Mai 2013, 21:00:15):
Hallo ihr,

Lurchi und Huraxprax haben das Balanceteam auf eigenen Wunsch verlassen. Ich
moechte mich hiermit - auch im Namen meiner Vorgaenger - bei beiden fuer
jahrelange konstruktive, in Diskussionen mit Mitmagiern nicht immer einfache,
aber sehr noetige Arbeit bedanken.

Als Nachfolger haben wir auch schon zwei erfahrene Spieler gewinnen koennen:
Soynada und Talanis werden das Team ab sofort verstaerken.

Auf gute Zusammenarbeit!

Mit der notwendigen Machtgeilheit und Willkuer,

Humni

-----------------------------------------------------------------------------



Neues Balancemitglied: Rhoakka (Humni, 20. Aug 2016, 11:06:47):
Liebe Mitmudder,

es freut mich sehr, euch zu verkuenden, dass wir mit Rhoakka ein neues
Balancemitglied gefunden haben! Rhoakka wird McDee und Talanis abloesen, die
beide in letzter Zeit ja nicht mehr aktiv sind.

Ich moechte die Gelegenheit nutzen, und McDee und Talanis fuer die Arbeit in
der Balance und die sachkundigen Diskussionen danken.

Gleichzeitig wuensche ich Rhoakka viel Durchhaltevermoegen, Erfolg und auch
Spass bei der neuen Aufgabe!

Humni, i.A. des Balanceteams

-----------------------------------------------------------------------------



