Neulich... (Humni,  1. Nov 2013, 02:10:05):
"Bei Saphina, wie siehst Du denn aus?"

Das Maedchen war quasi nackt. Ein paar Fetzen bedeckten ihren Koeper nur
unzureichend. Was aber mindestens genauso erschreckend war, war das Blut, das
ueberall an ihrem Koerper zu sehen war. 

"Ich... Ich glaube, das ist nicht mein Blut." stotterte das Maedchen. "Ich
sehe keine Wunden... da, nein, das sieht nur so aus." Sie wischte einen
Streifen Blut weg, der gerade noch wie eine Wunde ausgesehen hatte.

"Komm rein." Die alte Frau nahm das Maedchen bei der Hand. "Setz Dich ans
Feuer."

"Danke, Oma Gerinde." Das Maedchen setzte sich an den Kamin und beobachtete
ihr Grossmutter, die geschaeftig herumwerkelte.

"So, Heles. Nun erzaehl." sagte die Grossmutter, nachdem sie ihr frische
Sachen gebracht und ihre Enkelin in eine dicke, warme Decke gehuellt hatte.

"Es kommt mir alles jetzt wie ein boeser Traum vor. Ich habe ihn in der
Abenteurer-Kneipe getroffen." erklaerte Heles. "Er war eigentlich ganz nett."

"Abenteurer-Kneipe?" Ihre Grossmutter seufzte.

"Ja, ich weiss, Du, und damals auch Mutter, ihr hattet gesagt..."

"... dass dort uebelstes Gesocks herumlief." Die Grossmutter nickte. "Gesocks.
Schweine. Das war schon immer so."

"Wo hast Du eigentlich damals Opa Germ kennengelernt?"

"Das war etwas anderes." Die Grossmutter laechelte verschmitzt. "Nun gut. Du
warst in Frank's Abenteurer-Kneipe. Und?"

"Er war eigentlich ganz nett. Ein Gra'Takal, ein Feldkaempfer. Das sagte er
immer. Er war es gerade erst geworden, er feierte mit seinem Zug. Er gab mir
ein paar Bier aus. Als er gerade austreten war, nahm einer der Saeufer an der
Theke, Momtro hiess er, mich beiseite und sagte, der sei nicht gut fuer mich."
Sie schluchzte. "Der letzte Saeufer an der Theke wusste es. Nur ich war zu
daemlich. Und ich hab nicht hingehoert."

"Momtro weiss vieles, was nur die Weisen wissen." erklaerte Gerindes.

"Du kennst Momtro?"

"Oh ja. Frueher zogen wir zusammen durch die Schreckensspitze... aber das ist
eine ganze Weile her. Mach Dir also nichts daraus. Und schau dahinter, was die
Leute wirklich sind. Momtro sitzt seit mittlerweile einem Jahrzehnt an dieser
Theke. Meinst Du nicht, da lernt er etwas ueber die Leute?"

"Ja, doch, das stimmt."

"Er ist also nicht der letzte Saeufer. Er ist jemand, der an der Theke sitzt
und saeuft."

"Aber Du selbst hast gesagt, dass da nur Gesocks..."

"Aber doch nicht an der Theke! An den Tischen! Und wo warst Du?"

"Ja, Du hast ja Recht."

"Also, gut, erzaehle weiter."

"Er war echt suess. Erstmal. Er gab mir noch ein Bier aus, und noch eins.

Seine Freunde gingen irgendwann nacheinander nach Hause, und er sagte, er
haette da noch eine Kutsche stehen.

Dann zog er mich mit, auf den Kutschbock. Das fand ich aufregend. Und dann
fuhr er los, die Hafenstrasse entlang, den Kriegerweg hoch. Dann hielt er in
der Naehe von Owens Laden an.

'Was machen wir hier? Ich wohne dort hinten, noerdlich, auf dem Weg nach
Harmony' erklaerte ich. 

'Was man halt so tut.' sagte er, beugte sich vor und kuesste mich.

Das war erst schoen, dann wurde er fordernd. Unaufgefordert griff er an meine
Beine.

'Komm schon' sagte er. Seine Haende lagen auf meinen Knien. Eben hatte ich bei
dem Gedanken, mit einem jungen, feschen Unteroffizier etwas derartiges zu
machen, noch gelaechelt. Ich hatte mir vorgestellt, wie er mich ganz sanft in
die Arme schloss. Das hier war anders. Ich wollte das nicht! Wirklich nicht!
Ich schaute ihn an. Ich hatte fuerchterliche Angst. Er sollte aufhoeren! 
Als naechstes griff er nach meiner Brust. Sein fieses Lachen klingt mit immer
noch in den Ohren! 'Suesse Nippel!' hat er gesagt. 'Geile Nippel, Du
Schlampe.' Er hat wohl gedacht, ich mag das!"

"Nein, das hat er nicht. Er hat sich nicht dafuer interessiert, was Du
denkst."

"Meinst Du?"

"Ja. Aber das erklaert nicht Deine Kleider." Gerinde nahm ihre Enkelin in die
Arme. "Erzaehl weiter."

"Wie ich schon sagte, Grossmutter, ich wollte das nicht. Nie. Das sagte ich.
Dann schrie ich. Dann schlug ich nach ihm. Er fing meine Haende mit seinen
auf, lachte, nahm meide Haende in eine Hand und begann mit der anderen Hand,
mich auszuziehen. Ich schrie. Schrie. Wie ich noch nie geschrien habe. Und er
lachte. Und dann, auf einmal, lachte er nicht mehr."

Heles sah ihre Grossmutter mit grossen Augen an. "Er lachte nicht mehr. Er
schaute mich auf einmal entsetzt an. Und dann weiss ich nichts mehr."

"Du weisst nichts mehr? Was war da?"

"Blut. Oma, da war Blut. Alles war voller Blut. Ich schlug zu. Mit meinen...
Fingern. Aber das waren keine Finger. Das waren Klauen."

Gerinde nickte. Heles schien das gar nicht zu bemerken, sie starrte
ausdruckslos vor sich hin und starrte ins Kaminfeuer.

"Ich schrie. Aber das war kein Schrei. Das war ein Knurren, ein tiefes, uebles
Knurren. Dann weiss ich noch, wie ich seinen Hals aufriss. Und wie sein Kopf
zur Seite fiel. Dann weiss ich nichts mehr."

Gerinde nickte immer noch.

"Ich schaute mich irgendwann auf einmal um. Da oben war immer noch der
Vollmond, und hinter mir war die Kutsche. Das Pferd war weggelaufen - genau
weiss ich das nicht mehr, aber ich glaube, es hat sich losgerissen, oder ich
habe die Baender zerfetzt - und drumrum war lauter Blut. Ich bin gar nicht
mehr zurueckgegangen."

Gerinde nickte bedaechtig weiter.

Heles schien nichts wahrzunehmen. "Ich habe ihn getoetet. Einfach so. Es war
einfach. Und ... ich bin nichtmal boese drum, dass er tot ist."

Sie atmete tief durch.

"Aber... aber was passiert mit mir? Bin ich krank?"

Gerinde schuettelte den Kopf.

"Ich wollte das nicht! Aber andererseits... ich meine, sonst haette er..."

Heles starrte ihre Grossmutter ploetzlich an. "Du sagst nichts?"

Gerinde schuettelte wieder den Kopf. "Nein. Ich habe das immer schon
vermutet."

"Wie? Was?" Heles schaute sie entsetzt an.

Ein tiefer Seufzer entfuhr der alten Dame. "Was weisst Du von Germ?" fragte
sie. "Opa Germ."

"Ich habe ihn als Kind ein paarmal gesehen. Danach hiess es immer, er sei
weg."

Gerinde nickte. "Ja, er war weg. Aber er hat mich noch einige Male besucht."

"Wie - was? Ich dachte, er sei tot?"

Gerinde schuettelte den Kopf. "Ist er nicht. Er lebt. Und er lebt da, wo Du
auch bald leben solltest."

Heles starrte ihre Grossmutter an.

"Kind, Du bist nicht wie die anderen. Du bist jemand anders. Du hast ein
Geburtsrecht. Du hast das Recht, ein Wolf zu sein."

"Ein Wolf?"

"Ein Wolf. Oder eine Mischung aus Mensch und Wolf. Ein Werwolf."

"Was?"

"Opa Germ ist auch so. Er nennt sich nun Germknurrer, und die Werwolfinsel ist
seine Heimat." Ein leiser Seufzer entfuhr der alten Frau. "Er sagt, dass er
die meiste Zeit als Wolf herumlaeuft."

"Und darum hat er Dich verlassen?"

"Es waere zu gefaehrlich. Er befuerchtete, dass er sich nicht immer unter
Kontrolle haben wuerde."

"Aber wieso ich?"

"War es heute nacht nicht richtig?"

Heles schluckte. "Der Junge ist..."

"Tot. Ich weiss. Er war ein Schwein. Er dachte, er koennte machen, was er
will. Er dachte, er koennte auf den Kodex, auf den er geschworen hat, spucken
und sich an einer jungen, wehrlosen Frau vergreifen. Er nahm nichts ernst:
Sein Leben, seinen Kodex, seine Aufgabe. So jemanden braucht die Welt nicht."

"Woher weisst Du, dass es richtig war? Vielleicht war es nur ein Fehler..."

"Verteidige das Schwein nicht." Eine Art Feuer war in der Stimme der Frau.
"Ich bin kein Werwolf, Heles. Aber wer sich mit Dir anlegt, soll sein
Schicksal teilen."

"Ich habe es nicht unter Kontrolle! Und man darf doch nicht Richter und Henker
sein..."

"Nein, Du hast es nicht unter Kontrolle. Und Du bist kein Richter. Dir wurde
Unrecht getan, Dir selbst, und Du hast Zeit und Gelegenheit, es zu raechen.
Das ist nicht immer gerecht im Sinne des Gesetzes, aber richtig. Und die
Kontrolle hast Du nicht. Du musst nun gehen, um dies zu lernen. Es gibt
andere, die Dich lehren koennen."

Gerinde seufzte. Nach Germ wuerde sie nun auch ihre Enkelin verlieren. Das war
allerdings unumgaenglich.

"Als Dein Opa noch juenger war, hoerten wir oefter Woelfe im Wald. Ab und an
ging er raus und sagte mir, er wuerde nachschauen, was sie dort treiben. Sie
liefen nicht davon, sie schienen sich zu freuen, ihn zu sehen. Ich wusste es
damals nicht genau, er erzaehlte es damals nicht, aber ich hatte nie Angst.
Die Woelfe waren da, und sie sorgten dafuer, dass uns niemand zu nahe kam.

Aber sie sind schon lange nicht mehr da, und Du musst nun auch verschwinden.

Die Stadtwache und die Wachposten des Struv werden suchen. Die Offiziere
werden eine Antwort suchen. Die Leute in der Abenteurer-Kneipe werden Euch
gesehen haben. Wenn Du hier bleibst, werden sie Fragen stellen."

"Was mache ich dann?" Angst, aber auch ein wenig Trotz stand in den Augen der
jungen Frau.

Gerinde stand auf und ging zum Schreibtisch. Dort nahm sie eine kleine
Schatulle aus der Schublade und holte einen Beutel heraus.

"Fuer Dich." sagte sie und uebergab ihn Heles. "Passage auf der Orkgaleere.
Ich weiss, dass die Orks stinken und grausam behandelt werden, aber es ist der
beste Weg nach Orkhausen, da Du noch zu jung fuer die magischen Portale bist."

Heles nickte.

Danach solltest Du schauen
wie Du weiterkommst. Ich glaube
eine Barke vom Weltende wird Dich weiterbringen. Die Missionare dort versuchen
seit geraumer Zeit
auf der Werwolfinsel Fuss zu fassen. Ich fuerchte
es wird ihnen nicht gelingen."

Heles nickte immer noch.

"Suche Deinen Opa, Heles. Es itt Dein Recht, auf der Insel von den Werwoelfen
ausgebildet zu werden. Du bist etwas besonderes. Und Du wirst lernen, es zu
kontrollieren."

"Bin ich... jemand einsames? Gibt es noch mehr von meiner Sorte?"

"Das, mein Kind, weiss ich nicht." Eine Falte bildete sich auf der Stirn der
Grossmutter, und sie sah ihre Enkelin mit durchdringenden Augen an. "Ihr seid
vielleicht nicht viele. Oder auch doch. Man weiss nicht, wie viele ihr seid.
Aber ihr werdet Euch finden. Auf der Insel, dort, wo der Mond immer scheint.
Dort ist Eure Heimat."

Mit einem tiefen Seufzer starrte die alte Frau ihre Enkelin an. "Besuch mich
mal, wenn Du Zeit findest, ja? Und gruesse Deinen Opa von mir."

Die Stimme der jungen Frau war leise, fast nur ein Fluestern. Ein dicker Kloss
schien in ihrem Hals zu sitzen. 

"Das werde ich, Grossmutter."


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



Re: Neulich... (Humni,  1. Nov 2013, 02:19:04):
~#! rn=Humni rt=1383268205 rg=gilden.werwoelfe
~#! tid=1383268205
Man koennte sagen, ich haetter jetzt 13 Jahre gebaut.

Das stimmt aber nicht.

Aber die ersten Anfaenge sind 13 Jahre alt. Und nun kann jeder sie miterleben.

Ich moechte mich bei allen bedanken, die mir unterwegs beigestanden haben. Ich
nenne nur ein paar Namen: Lacri, Varlarion, Rangorn. Und noch mehr ;-) auch
wenn die schon lange nicht mehr hier sind.

Viel Spass. Und: Die Gilde ist nicht halb so weit, wie sie sein sollte. Vieles
funktioniert noch nicht ganz so, wie es soll. Meldet Euch.

Humni

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



Re: Re: Neulich... (Humni,  1. Nov 2013, 02:21:05):
~#! rn=Humni rt=1383268744 rg=gilden.werwoelfe
~#! tid=1383268205
Bevor jemand auf falsche Gedanken kommt; Chagall und Eleberet hatt ich
vergessen.

Herzlichen Dank auch an diese beiden.

Humni

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



Re: Neulich... (Ark,  1. Nov 2013, 20:28:47):
~#! rn=Humni rt=1383268205 rg=gilden.werwoelfe
~#! tid=1383268205
Gute Story, Man. :)


              *** ARK * the * Magnificent ***


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



Gildenquests (Humni,  3. Nov 2013, 21:23:41):
Huhu,

ich habe einige schoene Anregungen fuer weitere Gildenquests bekommen und auch
aufgenommen. Ja, in der Tat, darum muss der ein oder andere von den Woelfen
leider noch eine oder zwei mehr machen, andererseits hat man so mehr Auswahl.
Und ich glaube, dass die Gilde davon insgesamt profitiert.

Und das kann auch weiterhin noch ein paarmal passieren ;-)

Wenn also jemand einen Bug o.ae. findet, sagt Bescheid. Auch, wenn etwas nicht
gezaehlt wird. Ach ja, wenn jemand eine Miniquest schon geloest hat und nun
nochmal machen soll: Sagt Bescheid. Ich werde sicher noch entsprechende Dinge
dafuer bauen.

Humni

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



Re: Gildenquests (Saray,  3. Nov 2013, 22:01:58):
~#! rn=Humni rt=1383510221 rg=gilden.werwoelfe
~#! tid=1383510221
Gildenquests sind was Tolles! Das macht eine Gilde noch zusaetzlich schoener /
spannender, wie auch immer.
immer schoen weitermachen damit :-)

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



To whom it may concern... (Humni,  4. Nov 2013, 22:57:16):

Huhu,

da es offenbar Probleme gibt, wenn man die Quest "Pruefung der Sicherheit"
schon gespielt hat, bevor man Werwoelf wurde, reicht es nun, wenn man einen
gewissen Verkaeufer nach dem Auftraggeber fragt.

Humni

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



Re: To whom it may concern... (Ark,  4. Nov 2013, 22:59:44):
~#! rn=Humni rt=1383602236 rg=gilden.werwoelfe
~#! tid=1383602236
Was ist die Quest "Pruefung der Sicherheit"? Eintrittsquest in die
Pruefergilde? Sicherheitsbeamtengilde?


              *** ARK * the * Magnificent ***


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



Re: Re: To whom it may concern... (Humni,  4. Nov 2013, 23:00:45):
~#! rn=Ark rt=1383602384 rg=gilden.werwoelfe
~#! tid=1383602236
Missbrauch der Spieler zur Uberpruefung des Wachpersonals in einem gewissen
Hort. Ist aber auch zweitrangig, ich fresse eh alle auf.

Humni

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



Gildenquests... (Humni, 17. Nov 2013, 11:57:40):
Die Bedingungen fuer die Gildenquests haben sich durch einen Fehler
meinerseits, der einen Level vergass, zu Euren Gunsten veraendert.

Mit Anschluss der naechsten Gildenquests kann sich das wieder aendern ;-)

Humni

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



Neue Lehrer... (Humni, 17. Nov 2013, 14:57:34):
Geht nun ein wenig weiter fuer die, die sich vor dem Boesen schuetzen wollen.

Spieler, die glauben, berechtigt zu sein, die Info zu bekommen, und sie bisher
nicht erhalten haben (ich gebe zu, dass da nicht so einfach direkt wieder
dranzukommen ist) duerfen mich per tm oder mail fragen. Sie erhalten aber
nicht mehr Informationen,als der NPC gerade liefert, harhar.

Humni

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



Idee zum Geschichtenerzaehlen (Kirrofix, 28. Nov 2013, 12:59:28):
Liebe Mitfellinge, hochverehrter Meister Schuppenfell,
Das Geschichtenerzaehlen muss sich ja nicht nur auf den Sage-Befehl
beschraenken. Ich persoenlich benutze auch sehr gerne Emotes. Allerdings
wuerde ich gerne noch einen Schritt weiter gehen, und hatte deshalb die Idee,
fuer den Geschichtenerzaehler voruebergehend die Echo-Faehigkeit kostenlos
freizuschalten. Da sowieso immer einige Zuhoerer dabei sind, waere Missbrauch
ziemlich dumm, da es genug Zeugen gibt. Aber es haette den riesigen Vorteil,
dass man die Geschichte noch atmosphaerischer gestalten koennte. Ausserdem
nervt mich, dass jede Zeile immer mit Kirrofix anfangen muss. :)
Was haltet ihr davon? Ist das zu anmassend, oder darf das?
Gruene Gruesse

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



Re: Idee zum Geschichtenerzaehlen (Humni, 28. Nov 2013, 18:02:48):
~#! rn=Kirrofix rt=1385639968 rg=gilden.werwoelfe
~#! tid=1385639968
Ich finde die Idee eigentlich sehr schoen. Ich mache das aber nicht mehr
heute, da mein Tag recht lang war, und setz das auf die jetzt schon nicht sehr
kurze Liste meiner Todos ;-)

Ich hoffe, ich kann da am Wochenende einiges von abarbeiten.

Humni

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



Neue Lehrer... (Humni, 31. Dez 2013, 12:10:50):
Es gibt zwei neue Lehrer. Mondheuler weiss mehr. Angst und Tragen sind die
Stichwoerter.

Viel Spass.

Humni

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



Lebenskraftr (Humni, 19. Feb 2014, 21:02:22):
Huhu ihr,

dank Thog und Rhoakka bin ich drauf aufmerksam gemacht worden, dass die
Shalabar derzeit die besten Lebenskraftkuenstler sind. Das war natuerlich ein
Bug, wie man das schon bei Dencha lernt, sind das die Oherun. Und ab sofort
ist dem auch so. Danke fuer den Hinweis!

Gruesse
Humni

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



Fellgriff (Humni, 22. Mai 2014, 19:41:37):
... wirkt seit heute nur noch mit der Sekundaerwirkung, wenn man nicht gerade
Stammform oder Wolf ist.

(War eh nicht so effektiv, aber ich denke, es ist ... aeh.. realistischer,
wenn man ... naja, ihr wisst, was ich meine).

Bugs und sonstige Meldungen bitte an mich. Gerne per Mail, da ich zur Zeit
viel Idle.

Humni

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



Geschichten... (Humni, 15. Jun 2014, 18:22:19):
Hallo ihr,

sollte es dazu kommen, dass jemand keine Geschichte erzaehlen kann, weil
angeblich jemand erzaehlt, der aber gar nicht mehr da ist, oder jemand
versehentlich "ende" eingegeben hat, so kann nun jeder die Geschichte mit
"beenden" beenden. Danach wird natuerlich nicht abgestimmt.

Das ist nur eine ZWischenloesung, auf Dauer sollte so etwas wie "ende ist ein
Problem" gar nicht mehr vorkommen, aber fuer die Zukunft geht zumindest das.

Hoffe, da klappt alles, wenn es Probleme gibt, meldet Euch bitte.

Humni

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



Formwechsel (Humni, 18. Jan 2015, 18:55:23):
Huhu,

nach mehreren Beschwerden von Spielern gibt es nun nicht mehr die Meldung,
dass man sich "in einen Menschen" sondern "in seine urspruengliche Form"
zurueckverwandelt.

Ihr solltet also evtl. auch Eure Skripte anpassen, falls die das triggern. 

Humni

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



Reissen (Humni, 27. Mar 2015, 13:15:08):
Liebe Werwoelfe,

es gab in einem Fall ein Problem mit "reissen", sprich, das machte keinen
Schaden. Das Problem ist, dass sich das Problem bei dem betreffenden Spieler
geloest hat, und ich das somit nicht nachvollziehen kann.

Sollte jemand sonst dieses Problem haben, meldet Euch bitte.

Danke sehr!
Humni

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



Re: Reissen (Humni, 14. Apr 2015, 09:44:06):
~#! rn=Humni rt=1427458508 rg=gilden.werwoelfe
~#! tid=1427458508
Das Problem sollte nun geloest sein. Juchhu! Danke an Stanila fuer das
aktuelle Melden!

Humni

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



Wolfsform (Humni, 23. Apr 2015, 08:35:22):
Huhu,

in der Wolfsform sollte man nun nichts mehr koennen, was Waffen zuecken und Co
angeht.

Ja, die braucht man spaeter nicht, darum werden das nicht viele merken, aber
wenn es Probleme gibt: Sagt einfach Bescheid.

Humni

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



Lebenskraft (Humni, 26. Mai 2015, 19:28:10):
Hallo ihr,

es gab vereinzelt Beschwerden, dass Lebenskraft nicht heilen wuerde. Ich kann
das nicht nachvollziehen und beim Testen funktioniert es. Wenn es das Problem
noch geben sollte, bitte per Mail an mich.

Gruesse
Humni

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



Umwertungen... (Humni, 13. Jul 2015, 23:13:35):
Hallo ihr,

einige Spieler haben mich darauf aufmerksam gemacht, dass bestimmte Dinge
nicht zu 100% balanciert sind. 100% Balance geht nicht, das ist klar, aber ich
habe mir die Gilde nochmal genauer vorgenommen. Und ... Einige Spieler haben
Recht.

Ich erklaere einmal ein paar Dinge kurz und buendig:

* Das quasi jeder Biss heilt, war so gar nicht gedacht. Das Verhaeltnis war
umgekehrt zum Gedachten. Das sollte nun geaendert sein.
* Die Lebenskraft ist ... wie soll ich sagen ... ein wenig schwaecher
geworden, wenn man sie sehr exzessiv nutzt.
* Einige Angriffe haben auch ein wenig gelitten. Ja, ich hab mal ein wenig
mehr gerechnet, und da mussten ein paar Zahlen ein wenig nach unten korrigiert
werden.

Versteht mich nicht falsch: Die Zahlen sind immer noch nicht schlecht,
behaupte ich, aber ich denke, man wird ein wenig merken. Insbesondere die
Lebenskraft-Aenderung sollte man bemerken, da war auch noch ein Fehler drin,
der so nicht beabsichtigt war (es gab viel zu viele KPs).

Ich werde die Tage noch ueber zwei Dinge nachbrueten, die mir auch nicht
wirklch passen: Das sind die Waffenskills und insbesondere der Handskill.
Erstere sind vielleicht sogar ein wenig zu schwach, vor allem im Vergleich zum
zweiten, aber das schaue ich nochmal gesondert nach.

Melde mich nach Vollzug wieder.

Humni

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



Aufgaben fuer Werwoelfe... (Humni, 16. Okt 2015, 14:32:33):
Das Bemerken einer merkwuerdigen Meldung, die keiner Aufgabe entsprach,
fuehrte dazu, dass es nun eine Aufgabe zur Meldung auch in der Uebersicht und
auch ...

Ach was solls. Einfacher gesagt: "Die Spinnenplage" ist nun auch eine
Gildenquest. Ja, ihr braucht jetzt zum Aufstieg evtl. auch mehr Punkte.
Harhar. Das Leben ist hart. Und ich fies und gemein.

Humni

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



Re: Aufgaben fuer Werwoelfe... (Ark, 16. Okt 2015, 19:55:38):
~#! rn=Humni rt=1444998753 rg=gilden.werwoelfe
~#! tid=1444998753
Sehr gut, denn ich waere nie so fies gewesen, das muss mal gesagt werden :)


              *** ARK * the * Magnificent ***


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



Spinnenplage (Humni,  5. Dez 2015, 23:29:49):
Hallo ihr,

wer von Euch schon Spinnen gejagt hat, die Quest aber nicht in der Gilde
anerkannt wird, kann einfach Mondheuler nach der Spinnenplange befragen. Bugs
bitte an mich. Danke!

Humni


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



Wolfsform (Humni, 23. Feb 2016, 20:37:18):
Hallo ihr,

offenbar kann man in Wolfsform nicht mit "toete" angreifen. Mit "biss" geht
das aber. Dann schlaegt man aber nicht zurueck.

Ich weiss, woran das liegt - das ist einfach so vorgesehen. Ihr habt keine
Haende frei und keine Waffe in der Hand. Ich meine mich erinnern zu koennen,
dass das mal ging. Ich kann nur gerade nicht nachvollziehen, seit wann das
nicht mehr geht.

Also: Logisch ist das. Ihr koennt per "biss" angreifen. Dennoch ist das exterm
unschoen.

Ich denke gerade ueber eine Loesung nach. Bis dahin geht dieser Workaround.
Und die Wolfsform nutzt ja kaum jemand.

Dennoch ist das extrem unschoen, das ist schon richtig, und ich denke ueber
eine Loesung nach. Zumindest "toete" sollte durchaus gehen. Dass man sich mit
den Pfoten nicht so toll wehren kann, ist natuerlich auch klar.

Es ist uebrigens moeglich, dass ich selbst irgendwann mal einen Bug gefixt
habe und das seitdem nicht mehr geht. Da die groesseren Woelfe alle die
anderen Formen verwenden, hat das vermutlich niemand gemerkt. Wie auch immer,
ich melde mich, wenn ich eine gute Idee habe.

Humni

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



Kampf mit den Krallen (Humni, 10. Mar 2016, 20:52:09):
Hallo ihr,

wie mir zugetragen wurde, sagte Mondheuler nichts darueber aus, wie gut ihr
mit blossen Haenden kaempfen koennt.

Das hat sich nun geklaert. Ich habe ihm das beigebracht. Er scheint es
verstanden zu haben. Sollte er dabei herumzicken, sagt bitte bescheid.

Humni

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



Notstrom als neuer GM Werwoelfe (Humni,  1. Apr 2016, 13:00:57):
Hallo ihr,

ich habe, wie ihr sicher gemerkt habt, in der letzten Zeit ein wenig
nachgelassen, was die Gildenweiterentwicklug betrifft. Darum habe ich einen
Mitstreiter gefunden, der bereit ist, dieser Aufgabe ein wenig mehr Leben
einzuhauchen. Er hat definitiv mehr Zeit dafuer als ich. Ich werde fuers erste
noch dabei bleiben, bis er die Aufgabe ganz uebernommen hat.

Und jetzt bitte einmal alle in Galbrag wechseln und IHN FEIERN! Notstrom,
neuer Gildenmagier der Werwoelfe.

Viel Spass bei deiner neuen Aufgabe!
Humni

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



Heulen (Humni, 12. Jun 2016, 20:09:56):
Hallo ihr,

erstens: Werwoelfe haben eine neue Hilfeseite. Sie heisst "Heulen". Sie gab es
vorher noch nicht.

Dort ist ein Kommando beschrieben, das ihr noch nicht kennt. Ihr koennt Euren
Woelfen befehlen, zu sagen, wie sie sich fuehlen.

Dieses Kommando kennt ihr aber nicht darum nicht, da es keine Hilfeseite gab.
Ihr kennt das Kommando nicht, weil es das schlichtweg noch nicht gab.

Nutzt es oder nutzt es nicht. Wie auch immer.

Fehler und Probleme gerne an mich.

Humni

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



Gildenquests, zum naechsten (Humni, 19. Aug 2016, 23:17:04):
Hallo ihr,

es gibt neue Gildenquests. Jawohl. Die sollten Euch aber nicht fertigmachen,
im Gegenteil. Und ihr habt ja mal wieder mehr Moeglichkeiten.

Vielleicht gibts die Tage noch 1 oder 2 davon, mal schauen, ob ihr das dann
auch noch lustig findet ... Harhar...

Humni

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



Kampf als Wolf (Humni, 14. Jan 2017, 11:16:48):
Hallo,

es gab das Problem, dass Woelfe nicht in den Kampf kamen, und nur mit "biss"
angreifen und Schaden machen konnten.

Ich habe einen Workaround gebastelt. Der ist eventuell nicht schoen. Aber bei
ersten Tests hat er funktioniert.

Wenn es Schwierigkeiten gibt, meldet euch bitte!

Humni

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



Geschichtenerzaehlen (Humni, 14. Jan 2017, 23:05:26):
Huhu,

sowas, gleich zwei Artikel von mir am selben Tag ;-) und noch in derselben
Rubrik.

Also, Geschichten bei Storkeltimmer, die unterbrochen wurden, kann man nun
auch anhoeren, ohne so lange warten zu muessen, wie das "in echt" gedauert
hat. ;-)

Das ist insbesondere dann der Fall, wenn beim Erzaehlen etwas schiefgelaufen
ist oder die Geschichte beim ersten Mal abgelehnt wurde.

Humni

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



Fellgriff (Humni, 29. Dez 2017, 13:00:08):
Hallo ihr,

Fellgriff hat ein Problem und darf so nicht weiter genutzt werden. Ich werde
versuchen, eine Alternativloesung zu entwickeln. So lange funktioniert er
leider nicht mehr.

Humni

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



Re: Fellgriff (Humni, 29. Dez 2017, 18:13:54):
~#! rn=Humni rt=1514548808 rg=gilden.werwoelfe
~#! tid=1514548808
So, Fellgriff sollte es dann wieder tun. Ich hoffe, in etwa so wie frueher.
Wenn etwas irritiert, meldet Euch bitte.

Danke schoen!

Humni

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



