summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DiscoBot.sln17
-rw-r--r--DiscoBot/App.config34
-rw-r--r--DiscoBot/AppControll.cs197
-rw-r--r--DiscoBot/Char.cs120
-rw-r--r--DiscoBot/Commands.cs64
-rw-r--r--DiscoBot/DiscoBot.csproj117
-rw-r--r--DiscoBot/MyBot.cs113
-rw-r--r--DiscoBot/Program.cs63
-rw-r--r--DiscoBot/Properties/AssemblyInfo.cs2
-rw-r--r--DiscoBot/Properties/Settings.Designer.cs38
-rw-r--r--DiscoBot/Properties/Settings.settings9
-rw-r--r--DiscoBot/ServerControl.cs59
-rw-r--r--DiscoBot/packages.config64
-rw-r--r--Felis.xml380
14 files changed, 796 insertions, 481 deletions
diff --git a/DiscoBot.sln b/DiscoBot.sln
index af2bf82..7049ed0 100644
--- a/DiscoBot.sln
+++ b/DiscoBot.sln
@@ -1,9 +1,14 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26228.9
+VisualStudioVersion = 15.0.26430.16
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscoBot", "DiscoBot\DiscoBot.csproj", "{1273D5D1-9F46-492F-9DFE-0098CD00405C}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A6857735-6707-4A33-A7F8-3A06E354D7F3}"
+ ProjectSection(SolutionItems) = preProject
+ Felis.xml = Felis.xml
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscoBot", "DiscoBot\DiscoBot.csproj", "{1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +16,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1273D5D1-9F46-492F-9DFE-0098CD00405C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1273D5D1-9F46-492F-9DFE-0098CD00405C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1273D5D1-9F46-492F-9DFE-0098CD00405C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1273D5D1-9F46-492F-9DFE-0098CD00405C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/DiscoBot/App.config b/DiscoBot/App.config
index fb543e1..f107529 100644
--- a/DiscoBot/App.config
+++ b/DiscoBot/App.config
@@ -1,18 +1,22 @@
-<?xml version="1.0" encoding="utf-8" ?>
+<?xml version="1.0" encoding="utf-8"?>
<configuration>
- <configSections>
- <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
- <section name="DiscoBot.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
- </sectionGroup>
- </configSections>
<startup>
- <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
- <userSettings>
- <DiscoBot.Properties.Settings>
- <setting name="ServerPaht" serializeAs="String">
- <value>C:\Users\Dennis\Downloads\FTBBeyondServer</value>
- </setting>
- </DiscoBot.Properties.Settings>
- </userSettings>
-</configuration> \ No newline at end of file
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Interactive.Async" publicKeyToken="94bc3704cddfc263" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
diff --git a/DiscoBot/AppControll.cs b/DiscoBot/AppControll.cs
deleted file mode 100644
index c32f3a2..0000000
--- a/DiscoBot/AppControll.cs
+++ /dev/null
@@ -1,197 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace DiscoBot
-{
- public class ConsoleAppManager
- {
- private readonly string appName;
- private readonly Process process = new Process();
- private readonly object theLock = new object();
- private SynchronizationContext context;
- private string pendingWriteData;
-
- public ConsoleAppManager(string appName)
- {
- this.appName = appName;
-
- this.process.StartInfo.FileName = this.appName;
- this.process.StartInfo.RedirectStandardError = true;
- this.process.StartInfo.StandardErrorEncoding = Encoding.UTF8;
-
- this.process.StartInfo.RedirectStandardInput = true;
- this.process.StartInfo.RedirectStandardOutput = true;
- this.process.EnableRaisingEvents = true;
- this.process.StartInfo.CreateNoWindow = true;
-
- this.process.StartInfo.UseShellExecute = false;
-
- this.process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
-
- this.process.Exited += this.ProcessOnExited;
- }
-
- public event EventHandler<string> ErrorTextReceived;
- public event EventHandler ProcessExited;
- public event EventHandler<string> StandartTextReceived;
-
- public int ExitCode
- {
- get { return this.process.ExitCode; }
- }
-
- public bool Running
- {
- get; private set;
- }
-
- public void ExecuteAsync(params string[] args)
- {
- if (this.Running)
- {
- throw new InvalidOperationException(
- "Process is still Running. Please wait for the process to complete.");
- }
-
- string arguments = string.Join(" ", args);
-
- this.process.StartInfo.Arguments = arguments;
-
- this.context = SynchronizationContext.Current;
-
- this.process.Start();
- this.Running = true;
-
- new Task(this.ReadOutputAsync).Start();
- new Task(this.WriteInputTask).Start();
- new Task(this.ReadOutputErrorAsync).Start();
- }
-
- public void Write(string data)
- {
- if (data == null)
- {
- return;
- }
-
- lock (this.theLock)
- {
- this.pendingWriteData = data;
- }
- }
-
- public void WriteLine(string data)
- {
- this.Write(data + Environment.NewLine);
- }
-
- protected virtual void OnErrorTextReceived(string e)
- {
- EventHandler<string> handler = this.ErrorTextReceived;
-
- if (handler != null)
- {
- if (this.context != null)
- {
- this.context.Post(delegate { handler(this, e); }, null);
- }
- else
- {
- handler(this, e);
- }
- }
- }
-
- protected virtual void OnProcessExited()
- {
- EventHandler handler = this.ProcessExited;
- if (handler != null)
- {
- handler(this, EventArgs.Empty);
- }
- }
-
- protected virtual void OnStandartTextReceived(string e)
- {
- EventHandler<string> handler = this.StandartTextReceived;
-
- if (handler != null)
- {
- if (this.context != null)
- {
- this.context.Post(delegate { handler(this, e); }, null);
- }
- else
- {
- handler(this, e);
- }
- }
- }
-
- private void ProcessOnExited(object sender, EventArgs eventArgs)
- {
- this.OnProcessExited();
- }
-
- private async void ReadOutputAsync()
- {
- var standart = new StringBuilder();
- char[] buff = new char[1024];
- int length;
-
- while (this.process.HasExited == false)
- {
- standart.Clear();
-
- length = await this.process.StandardOutput.ReadAsync(buff, 0, buff.Length);
- char[] temp = new char[1024];
- Array.Copy(buff, temp, length);
- standart.Append(temp);
- this.OnStandartTextReceived(standart.ToString());
- Thread.Sleep(1);
- }
-
- this.Running = false;
- }
-
- private async void ReadOutputErrorAsync()
- {
- var sb = new StringBuilder();
-
- do
- {
- sb.Clear();
- var buff = new char[1024];
- int length = await this.process.StandardError.ReadAsync(buff, 0, buff.Length);
- char[] temp = new char[1024];
- Array.Copy(buff, temp, length);
- sb.Append(temp);
- this.OnErrorTextReceived(sb.ToString());
- Thread.Sleep(1);
- }
- while (this.process.HasExited == false);
- }
-
- private async void WriteInputTask()
- {
- while (this.process.HasExited == false)
- {
- Thread.Sleep(1);
-
- if (this.pendingWriteData != null)
- {
- await this.process.StandardInput.WriteLineAsync(this.pendingWriteData);
- await this.process.StandardInput.FlushAsync();
-
- lock (this.theLock)
- {
- this.pendingWriteData = null;
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/DiscoBot/Char.cs b/DiscoBot/Char.cs
new file mode 100644
index 0000000..28ed7b9
--- /dev/null
+++ b/DiscoBot/Char.cs
@@ -0,0 +1,120 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml;
+
+namespace DiscoBot
+{
+ public class Char
+ {
+
+ string name;
+ public Dictionary<string, int> eigenschaften = new Dictionary<string, int>();
+ public List<Talent> talente = new List<Talent>();
+ public List<Kampf> kampftalente = new List<Kampf>();
+
+ public Dictionary<string, string> Proptable = new Dictionary<string, string>();
+
+
+ public Char(String path = "Felis.xml")
+ {
+
+ Load(path);
+ }
+
+ private void Load(string path)
+ {
+ XmlTextReader reader = new XmlTextReader(path);
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ switch (reader.Name)
+ {
+ case "held":
+ name = reader.GetAttribute("name");
+ break;
+ case "eigenschaft":
+ eigenschaften.Add(reader.GetAttribute("name"), Convert.ToInt32(reader.GetAttribute("value")) + Convert.ToInt32(reader.GetAttribute("mod")));
+ break;
+ case "talentliste":
+ reader.Read();
+ while (reader.Name.Equals("talent"))
+ {
+ talente.Add(new Talent(reader.GetAttribute("name"), reader.GetAttribute("probe").Remove(0, 2).Trim(')'), Convert.ToInt32(reader.GetAttribute("value"))));
+ reader.Read();
+ }
+ break;
+ case "kampfwerte":
+ string atname = reader.GetAttribute("name");
+ reader.Read();
+ int at = Convert.ToInt32(reader.GetAttribute("value"));
+ reader.Read();
+ int pa = Convert.ToInt32(reader.GetAttribute("value"));
+ kampftalente.Add(new Kampf(atname, at, pa));
+ break;
+ }
+
+
+
+ }
+ Proptable.Add("MU", "Mut");
+ Proptable.Add("KL", "Klugheit");
+ Proptable.Add("IN", "Intuition");
+ Proptable.Add("CH", "Charisma");
+ Proptable.Add("FF", "Fingerfertigkeit");
+ Proptable.Add("GE", "Gewandtheit");
+ Proptable.Add("KO", "Konstitution");
+ Proptable.Add("KK", "Körperkraft");
+
+ }
+ public string TestTalent(string talent)
+ {
+ var output = new StringBuilder();
+ var ttalent = talente.Find(v => v.name.Equals(talent));
+ var props =ttalent.Test();
+ int tap = ttalent.value;
+ for (int i = 0; i <= 2; i++)
+ {
+ int temp = dice.Rolld20();
+ int eigenschaft = eigenschaften[Proptable[props[i]]];
+ if (eigenschaft < temp)
+ tap -= temp - eigenschaft ;
+ output.Append(temp+" ");
+ }
+ output.Append("tap: "+ tap);
+ return output.ToString();
+ }
+
+ }
+ public class Talent
+ {
+ public string name, probe;
+ public int value;
+ public Talent(string name, string probe, int value) { this.name = name; this.probe = probe; this.value = value; }
+ public string[] Test()
+ {
+ var temp = probe.Split('/');
+ foreach (string s in temp)
+ s.Replace("/", "");
+ return temp;
+ }
+
+ }
+ public class Kampf
+ {
+ string name;
+ private int at, pa;
+ public Kampf(string name, int at, int pa) { this.name = name; this.at = at; this.pa = pa; }
+ void Test() { }
+ }
+ public static class dice
+ {
+ static System.Random rnd = new System.Random();
+ public static int Rolld20()
+ {
+ return rnd.Next(1,21) ;
+ }
+ }
+}
diff --git a/DiscoBot/Commands.cs b/DiscoBot/Commands.cs
new file mode 100644
index 0000000..6984761
--- /dev/null
+++ b/DiscoBot/Commands.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Discord;
+using Discord.Commands;
+using Discord.WebSocket;
+
+
+namespace DiscoBot
+{
+ class Commands
+ {
+ }
+ public class Info : ModuleBase
+ {
+ // ~say hello -> hello
+ [Command("say"), Summary("Echos a message.")]
+ public async Task Say([Remainder, Summary("The text to echo")] string echo)
+ {
+
+
+ // ReplyAsync is a method on ModuleBase
+ await ReplyAsync(echo);
+
+ }
+ }
+
+ public class Abfrage : ModuleBase
+ {
+ Char test = new Char();
+ // ~say hello -> hello
+ [Command("t"), Summary("tests a talent.")]
+ public async Task Say([Remainder, Summary("The text to echo")] string talent)
+ {
+ // ReplyAsync is a method on ModuleBase
+
+ await ReplyAsync("```xl\n" + test.TestTalent(talent) + "\n```");
+
+ }
+ }
+
+ [Group("sample")]
+ public class Sample : ModuleBase
+ {
+ // ~sample square 20 -> 400
+ [Command("square"), Summary("Squares a number.")]
+ public async Task Square([Summary("The number to square.")] int num)
+ {
+ // We can also access the channel from the Command Context.
+ await Context.Channel.SendMessageAsync($"{num}^2 = {Math.Pow(num, 2)}");
+ }
+
+ [Command("userinfo"), Summary("Returns info about the current user, or the user parameter, if one passed.")]
+ [Alias("user", "whois")]
+ public async Task UserInfo([Summary("The (optional) user to get info for")] IUser user = null)
+ {
+ var userInfo = user ?? Context.Client.CurrentUser;
+ await ReplyAsync($"{userInfo.Username}#{userInfo.Discriminator}");
+ }
+ }
+
+}
diff --git a/DiscoBot/DiscoBot.csproj b/DiscoBot/DiscoBot.csproj
index b2ff7bd..9920f40 100644
--- a/DiscoBot/DiscoBot.csproj
+++ b/DiscoBot/DiscoBot.csproj
@@ -4,13 +4,14 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{1273D5D1-9F46-492F-9DFE-0098CD00405C}</ProjectGuid>
+ <ProjectGuid>{1186AF1C-BC46-4B3D-BEE0-CE478B8AEAC7}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>DiscoBot</RootNamespace>
<AssemblyName>DiscoBot</AssemblyName>
- <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
+ <TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -32,57 +33,111 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Discord.Net, Version=0.9.6.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\packages\Discord.Net.0.9.6\lib\net45\Discord.Net.dll</HintPath>
+ <Reference Include="Discord.Net.Commands, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.Commands.1.0.1\lib\netstandard1.1\Discord.Net.Commands.dll</HintPath>
</Reference>
- <Reference Include="Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
- <HintPath>..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
+ <Reference Include="Discord.Net.Core, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.Core.1.0.1\lib\net45\Discord.Net.Core.dll</HintPath>
</Reference>
- <Reference Include="Nito.AsyncEx, Version=3.0.1.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\packages\Nito.AsyncEx.3.0.1\lib\net45\Nito.AsyncEx.dll</HintPath>
+ <Reference Include="Discord.Net.Rest, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.Rest.1.0.1\lib\net45\Discord.Net.Rest.dll</HintPath>
</Reference>
- <Reference Include="Nito.AsyncEx.Concurrent, Version=3.0.1.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\packages\Nito.AsyncEx.3.0.1\lib\net45\Nito.AsyncEx.Concurrent.dll</HintPath>
+ <Reference Include="Discord.Net.Rpc, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.Rpc.1.0.1\lib\net45\Discord.Net.Rpc.dll</HintPath>
</Reference>
- <Reference Include="Nito.AsyncEx.Enlightenment, Version=3.0.1.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\packages\Nito.AsyncEx.3.0.1\lib\net45\Nito.AsyncEx.Enlightenment.dll</HintPath>
+ <Reference Include="Discord.Net.Webhook, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.Webhook.1.0.1\lib\netstandard1.1\Discord.Net.Webhook.dll</HintPath>
</Reference>
- <Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
- <HintPath>..\packages\RestSharp.105.2.3\lib\net452\RestSharp.dll</HintPath>
+ <Reference Include="Discord.Net.WebSocket, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\packages\Discord.Net.WebSocket.1.0.1\lib\net45\Discord.Net.WebSocket.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.DependencyInjection, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
+ <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.1.1.1\lib\netstandard1.1\Microsoft.Extensions.DependencyInjection.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
+ <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.1.1.1\lib\netstandard1.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+ <HintPath>..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
+ <Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System.ComponentModel.Composition" />
+ <Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
+ </Reference>
<Reference Include="System.Core" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Windows.Forms" />
+ <Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Interactive.Async, Version=3.0.3000.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Interactive.Async.3.1.1\lib\net46\System.Interactive.Async.dll</HintPath>
+ </Reference>
+ <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
+ </Reference>
+ <Reference Include="System.IO.Compression.FileSystem" />
+ <Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
+ </Reference>
+ <Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
+ </Reference>
+ <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Numerics" />
+ <Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
+ </Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
- <Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
- <Reference Include="WebSocket4Net, Version=0.14.1.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a, processorArchitecture=MSIL">
- <HintPath>..\packages\WebSocket4Net.0.14.1\lib\net45\WebSocket4Net.dll</HintPath>
+ <Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
- <Compile Include="MyBot.cs" />
+ <Compile Include="Char.cs" />
+ <Compile Include="Commands.cs" />
<Compile Include="Program.cs" />
- <Compile Include="AppControll.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Properties\Settings.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTimeSharedInput>True</DesignTimeSharedInput>
- <DependentUpon>Settings.settings</DependentUpon>
- </Compile>
- <Compile Include="ServerControl.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
- <None Include="Properties\Settings.settings">
- <Generator>SettingsSingleFileGenerator</Generator>
- <LastGenOutput>Settings.Designer.cs</LastGenOutput>
- </None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/DiscoBot/MyBot.cs b/DiscoBot/MyBot.cs
deleted file mode 100644
index f9bd427..0000000
--- a/DiscoBot/MyBot.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-using Discord;
-using Discord.Commands;
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Drawing;
-using System.Windows;
-
-namespace DiscoBot
-{
- class MyBot
- {
- DiscordClient discord;
- CommandService commands;
- private String token;
- ServerControl FTB = new ServerControl();
-
- public MyBot(string token = "Mjk0NTU0MDU4Nzg4NzAwMTYx.C7XGwQ.VwCAM10lDmwUe01NhBvDKNbd17I")
- {
- this.token = token;
-
- discord = new DiscordClient(x =>
- {
- x.LogLevel = LogSeverity.Info;
- x.LogHandler = Log;
- });
-
- discord.UsingCommands(x =>
- {
- x.PrefixChar = '!';
- x.AllowMentionPrefix = true;
- });
-
- commands = discord.GetService<CommandService>();
- //Mandelbrot();
- //Server();
- DSA();
-
- discord.ExecuteAndWait(async () =>
- {
- await discord.Connect(token, TokenType.Bot);
- });
- }
-
- private void Mandelbrot()
- {
- commands.CreateCommand("mandelbrot")
- .Do(async (e) =>
- {
- //await e.Channel.SendMessage("!hallo");
-
- await e.Channel.SendFile(@"C:\temp\temp.png");
-
-
- });
- }
- private void Server()
- {
-
- commands.CreateCommand("start")
- .Do(async (e) =>
- {
- await e.Channel.SendMessage("Server wird gestartet");
-
- FTB.Start();
-
- });
- commands.CreateCommand("stop")
- .Do(async (e) =>
- {
- await e.Channel.SendMessage("Server wird gestoppt");
-
- //FTB.Stop();
- });
- commands.CreateCommand("/")
- .Parameter("command",ParameterType.Required)
- .Parameter("value",ParameterType.Multiple)
- .Do(async (e) =>
- {
- await e.Channel.SendMessage("Command wird ausgeführt");
-
- FTB.Command(e.GetArg("command")+" "+e.GetArg("value"));
- });
-
- commands.CreateCommand("restart")
- .Do(async (e) =>
- {
- await e.Channel.SendMessage("Server wird neu gestartet");
-
- FTB.Stop();
- });
-
- }
- private void DSA()
- {
- commands.CreateCommand("wer ist Schuld?")
- .Do(async (e) =>
- {
- await e.Channel.SendMessage(e.Channel.Users.ToArray()[new Random().Next(0,4)].ToString());
-
- FTB.Stop();
- });
- }
-
- private void Log(object sender, LogMessageEventArgs e)
- {
- Console.WriteLine(e.Message);
- }
- }
-}
diff --git a/DiscoBot/Program.cs b/DiscoBot/Program.cs
index aa7b7ab..962e416 100644
--- a/DiscoBot/Program.cs
+++ b/DiscoBot/Program.cs
@@ -3,20 +3,69 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Reflection;
+using Discord;
+using Discord.WebSocket;
+using Discord.Commands;
+using Microsoft.Extensions.DependencyInjection;
+
namespace DiscoBot
{
- class Program
+ public class Program
{
- static void Main(string[] args)
+ private CommandService commands;
+ private DiscordSocketClient client;
+ private IServiceProvider services;
+
+ public Char a = new Char();
+
+
+ static void Main(string[] args) => new Program().Start().GetAwaiter().GetResult();
+
+ public async Task Start()
{
- //new Form1();
- new System.Threading.Thread(Launch).Start();
- //MyBot Bot2 = new MyBot("MjU1NDM1MDUyMTg2MzM3Mjkw.Cydmeg.AV2aEAwrM9UHqOUnmmUXaC5TBm4");
+ client = new DiscordSocketClient();
+ commands = new CommandService();
+
+ string token = "Mjk0NTU0MDU4Nzg4NzAwMTYx.C7XGwQ.VwCAM10lDmwUe01NhBvDKNbd17I";
+
+ services = new ServiceCollection()
+ .BuildServiceProvider();
+
+ await InstallCommands();
+
+ await client.LoginAsync(TokenType.Bot, token);
+ await client.StartAsync();
+
+ await Task.Delay(-1);
}
- public static void Launch()
+
+ public async Task InstallCommands()
{
- new MyBot();
+ // Hook the MessageReceived Event into our Command Handler
+ client.MessageReceived += HandleCommand;
+ // Discover all of the commands in this assembly and load them.
+ await commands.AddModulesAsync(Assembly.GetEntryAssembly());
+ }
+
+ public async Task HandleCommand(SocketMessage messageParam)
+ {
+ // Don't process the command if it was a System Message
+ var message = messageParam as SocketUserMessage;
+ if (message == null) return;
+ // Create a number to track where the prefix ends and the command begins
+ int argPos = 0;
+ // Determine if the message is a command, based on if it starts with '!' or a mention prefix
+ if (!(message.HasCharPrefix('!', ref argPos) || message.HasMentionPrefix(client.CurrentUser, ref argPos))) return;
+ // Create a Command Context
+ var context = new CommandContext(client, message);
+ // Execute the command. (result does not indicate a return value,
+ // rather an object stating if the command executed successfully)
+ var result = await commands.ExecuteAsync(context, argPos, services);
+ if (!result.IsSuccess)
+ await context.Channel.SendMessageAsync(result.ErrorReason);
}
}
+
}
diff --git a/DiscoBot/Properties/AssemblyInfo.cs b/DiscoBot/Properties/AssemblyInfo.cs
index 700b7d6..1ff6b8f 100644
--- a/DiscoBot/Properties/AssemblyInfo.cs
+++ b/DiscoBot/Properties/AssemblyInfo.cs
@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
-[assembly: Guid("1273d5d1-9f46-492f-9dfe-0098cd00405c")]
+[assembly: Guid("1186af1c-bc46-4b3d-bee0-ce478b8aeac7")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
//
diff --git a/DiscoBot/Properties/Settings.Designer.cs b/DiscoBot/Properties/Settings.Designer.cs
deleted file mode 100644
index 3bfda66..0000000
--- a/DiscoBot/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// Dieser Code wurde von einem Tool generiert.
-// Laufzeitversion:4.0.30319.42000
-//
-// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
-// der Code erneut generiert wird.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace DiscoBot.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.1.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
-
- [global::System.Configuration.UserScopedSettingAttribute()]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("C:\\Users\\Dennis\\Downloads\\FTBBeyondServer")]
- public string ServerPaht {
- get {
- return ((string)(this["ServerPaht"]));
- }
- set {
- this["ServerPaht"] = value;
- }
- }
- }
-}
diff --git a/DiscoBot/Properties/Settings.settings b/DiscoBot/Properties/Settings.settings
deleted file mode 100644
index d7563a4..0000000
--- a/DiscoBot/Properties/Settings.settings
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="DiscoBot.Properties" GeneratedClassName="Settings">
- <Profiles />
- <Settings>
- <Setting Name="ServerPaht" Type="System.String" Scope="User">
- <Value Profile="(Default)">C:\Users\Dennis\Downloads\FTBBeyondServer</Value>
- </Setting>
- </Settings>
-</SettingsFile> \ No newline at end of file
diff --git a/DiscoBot/ServerControl.cs b/DiscoBot/ServerControl.cs
deleted file mode 100644
index 58da9fb..0000000
--- a/DiscoBot/ServerControl.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Diagnostics;
-using System.IO;
-
-namespace DiscoBot
-{
- class ServerControl
- {
- Process FTBProcess = new Process();
- ConsoleAppManager manager;
-
- public ServerControl()
- {
- manager = new ConsoleAppManager(DiscoBot.Properties.Settings.Default.ServerPaht + @"\ServerStart.bat");
-
- FTBProcess.StartInfo.FileName = /*@"C:\Program Files\Java\jdk1.8.0_101\jre\bin\java.exe";//*/DiscoBot.Properties.Settings.Default.ServerPaht + @"\ServerStart.bat";
- //FTBProcess.StartInfo.Arguments = @"-server -Xms512M -Xmx6G -XX:PermSize=256M -XX:+UseParNewGC -XX:+CMSIncrementalPacing -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -jar C:\Users\Dennis\Downloads\FTBBeyondServer\minecraft_server.1.10.2.jar nogui";
- FTBProcess.StartInfo.WorkingDirectory = /*@"C:\Program Files\Java\jdk1.8.0_101\jre\bin";*/Properties.Settings.Default.ServerPaht;
-
-
-
- }
-
-
- private void Refresh()
- {
- while(true)
- Console.WriteLine(FTBProcess.StandardOutput.ReadToEnd());
- }
-
- public void Start()
- {
- FTBProcess.Start();
- new System.Threading.Thread(Refresh).Start();
-
- }
-
-
- public void Command(string c)
- {
- FTBProcess.StandardInput.WriteLine(c);
- }
-
- public void Stop()
- {
- Process[] myProcesses;
- myProcesses = Process.GetProcessesByName("java");
- foreach (Process p in myProcesses)
- p.Kill();
-
-
- }
-
- }
-}
diff --git a/DiscoBot/packages.config b/DiscoBot/packages.config
index 02a056d..cf276c0 100644
--- a/DiscoBot/packages.config
+++ b/DiscoBot/packages.config
@@ -1,8 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
- <package id="Discord.Net" version="0.9.6" targetFramework="net452" />
- <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net452" />
- <package id="Nito.AsyncEx" version="3.0.1" targetFramework="net452" />
- <package id="RestSharp" version="105.2.3" targetFramework="net452" />
- <package id="WebSocket4Net" version="0.14.1" targetFramework="net452" />
+ <package id="Discord.Net" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.Commands" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.Core" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.Rest" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.Rpc" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.Webhook" version="1.0.1" targetFramework="net461" />
+ <package id="Discord.Net.WebSocket" version="1.0.1" targetFramework="net461" />
+ <package id="Microsoft.Extensions.DependencyInjection" version="1.1.1" targetFramework="net461" />
+ <package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="1.1.1" targetFramework="net461" />
+ <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net461" />
+ <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
+ <package id="NETStandard.Library" version="1.6.1" targetFramework="net461" />
+ <package id="Newtonsoft.Json" version="10.0.2" targetFramework="net461" />
+ <package id="System.AppContext" version="4.3.0" targetFramework="net461" />
+ <package id="System.Collections" version="4.3.0" targetFramework="net461" />
+ <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
+ <package id="System.Collections.Immutable" version="1.3.1" targetFramework="net461" />
+ <package id="System.ComponentModel" version="4.3.0" targetFramework="net461" />
+ <package id="System.Console" version="4.3.0" targetFramework="net461" />
+ <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
+ <package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net461" />
+ <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
+ <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net461" />
+ <package id="System.Globalization" version="4.3.0" targetFramework="net461" />
+ <package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
+ <package id="System.Interactive.Async" version="3.1.1" targetFramework="net461" />
+ <package id="System.IO" version="4.3.0" targetFramework="net461" />
+ <package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
+ <package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
+ <package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
+ <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
+ <package id="System.Linq" version="4.3.0" targetFramework="net461" />
+ <package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
+ <package id="System.Net.Http" version="4.3.0" targetFramework="net461" />
+ <package id="System.Net.Primitives" version="4.3.0" targetFramework="net461" />
+ <package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
+ <package id="System.ObjectModel" version="4.3.0" targetFramework="net461" />
+ <package id="System.Reflection" version="4.3.0" targetFramework="net461" />
+ <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
+ <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net461" />
+ <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime.Handles" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
+ <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
+ <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />
+ <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
+ <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
+ <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" />
+ <package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
+ <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
+ <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net461" />
+ <package id="System.Threading" version="4.3.0" targetFramework="net461" />
+ <package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
+ <package id="System.Threading.Timer" version="4.3.0" targetFramework="net461" />
+ <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" />
+ <package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
</packages> \ No newline at end of file
diff --git a/Felis.xml b/Felis.xml
new file mode 100644
index 0000000..62cf8f5
--- /dev/null
+++ b/Felis.xml
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml-stylesheet type="text/xsl" href="helden.xsl"?>
+<helden Version="5.5.2">
+ <held key="1492884856303" name="Felis Exodus Schattenwald" stand="1502228127190">
+ <mods/>
+ <basis>
+ <geschlecht name="männlich"/>
+ <settings name="DSA4.1"/>
+ <rasse name="helden.model.rasse.Mittellaender" string="Mittelländer">
+ <groesse gewicht="60" value="160"/>
+ <aussehen alter="24" augenfarbe="braun" aussehentext0="" aussehentext1="" aussehentext2="" aussehentext3="" familietext0="" familietext1="" familietext2="" familietext3="" familietext4="" familietext5="" gbjahr="1003" gbmonat="4" gbtag="9" gprest="0" gpstart="100" haarfarbe="braun" kalender="Bosparans Fall" stand="" titel=""/>
+ </rasse>
+ <kultur name="helden.model.kultur.Garetien" string="Mittelländische Städte"/>
+ <ausbildungen>
+ <ausbildung art="Hauptprofession" name="helden.model.profession.Grenzjaeger" string="Grenzjäger" tarnidentitaet="">
+ <variante name="Grenzjäger"/>
+ </ausbildung>
+ <ausbildung art="BGB" name="helden.model.profession.Grosswildjaeger" string="Großwildjäger: Kopfgeldjäger">
+ <variante name="Kopfgeldjäger"/>
+ </ausbildung>
+ </ausbildungen>
+ <verify value="1"/>
+ <notiz notiz0="Notizen" notiz1="" notiz10="" notiz11="" notiz2="" notiz3="" notiz4="" notiz5="" notiz6="" notiz7="" notiz8="" notiz9=""/>
+ <portraet value=""/>
+ <abenteuerpunkte value="2246"/>
+ <freieabenteuerpunkte value="439"/>
+ </basis>
+ <eigenschaften>
+ <eigenschaft mod="0" name="Mut" startwert="12" value="12"/>
+ <eigenschaft mod="0" name="Klugheit" startwert="12" value="12"/>
+ <eigenschaft mod="0" name="Intuition" startwert="13" value="13"/>
+ <eigenschaft mod="0" name="Charisma" startwert="12" value="12"/>
+ <eigenschaft mod="0" name="Fingerfertigkeit" startwert="12" value="12"/>
+ <eigenschaft mod="0" name="Gewandtheit" startwert="13" value="13"/>
+ <eigenschaft mod="0" name="Konstitution" startwert="12" value="12"/>
+ <eigenschaft mod="0" name="Körperkraft" startwert="14" value="14"/>
+ <eigenschaft mod="0" name="Sozialstatus" startwert="5" value="5"/>
+ <eigenschaft mod="10" name="Lebensenergie" value="1"/>
+ <eigenschaft mod="12" name="Ausdauer" value="0"/>
+ <eigenschaft grossemeditation="0" mod="-1" mrmod="-4" name="Astralenergie" value="2"/>
+ <eigenschaft karmalqueste="0" mod="0" name="Karmaenergie" value="0"/>
+ <eigenschaft mod="-4" name="Magieresistenz" value="0"/>
+ <eigenschaft mod="0" name="ini" value="10"/>
+ <eigenschaft mod="0" name="at" value="8"/>
+ <eigenschaft mod="0" name="pa" value="8"/>
+ <eigenschaft mod="0" name="fk" value="8"/>
+ </eigenschaften>
+ <vt>
+ <vorteil name="Altersresistenz"/>
+ <vorteil name="Astralmacht" value="5"/>
+ <vorteil name="Breitgefächerte Bildung"/>
+ <vorteil name="Schutzgeist"/>
+ <vorteil name="Viertelzauberer"/>
+ <vorteil name="Feind" value="8"/>
+ <vorteil name="Gesucht" value="2"/>
+ <vorteil name="Kleinwüchsig"/>
+ <vorteil name="Neugier" value="7"/>
+ <vorteil name="Rachsucht" value="5"/>
+ <vorteil name="Unbewusster Viertelzauberer"/>
+ <vorteil name="Unfähigkeit für [Talentgruppe]" value="Wissen"/>
+ <vorteil name="Ungebildet" value="5"/>
+ <vorteil name="Verpflichtungen"/>
+ </vt>
+ <sf>
+ <sonderfertigkeit name="Kulturkunde">
+ <kultur name="Mittelreich"/>
+ </sonderfertigkeit>
+ <sonderfertigkeit name="Ortskenntnis">
+ <auswahl name="Stadtteil/Kleinstadt"/>
+ <auswahl name="Wahl1"/>
+ <auswahl name="Wahl2"/>
+ </sonderfertigkeit>
+ <sonderfertigkeit name="Scharfschütze">
+ <talent name="Bogen"/>
+ </sonderfertigkeit>
+ <sonderfertigkeit name="Schnellladen">
+ <talent name="Bogen"/>
+ </sonderfertigkeit>
+ <sonderfertigkeit name="Waldkundig"/>
+ <verbilligtesonderfertigkeit name="Rüstungsgewöhnung I">
+ <auswahl auswahl="Lederweste"/>
+ </verbilligtesonderfertigkeit>
+ <verbilligtesonderfertigkeit name="Talentspezialisierung" talent="Schleuder">
+ <auswahl auswahl="Wurfnetz"/>
+ </verbilligtesonderfertigkeit>
+ </sf>
+ <ereignisse>
+ <ereignis obj="max GP für Helden: 100" text="EINSTELLUNG" time="1492884894704" version="HS 5.5.2"/>
+ <ereignis obj="max Eigenschafts-GP für Helden: 100" text="EINSTELLUNG" time="1492884894704" version="HS 5.5.2"/>
+ <ereignis obj="max Eigenschafts-Wert für Helden: 14" text="EINSTELLUNG" time="1492884894704" version="HS 5.5.2"/>
+ <ereignis obj="Kein Standard. Max GP für Helden: 100" text="Meistergenehmigung notwendig" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis obj="Es wurden verbilligte SF gewählt. Die Auswahl unterliegt der Meistergenehimgung." text="Meistergenehmigung notwendig" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis obj="Die folgenden Vor- bzw. Nachteile unterliegen der Meistergenehmigung: Unfähigkeit für [Talentgruppe] " text="Meistergenehmigung notwendig" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="0 GP" obj="Rasse: Mittelländer" text="RKP" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="0 GP" obj="Kultur: Mittelländische Städte" text="RKP" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="12 GP" obj="Profession: Grenzjäger" text="RKP" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="20 GP" obj="Breitgefächerte Bildung: Großwildjäger: Kopfgeldjäger" text="RKP" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="12" kommentar="12 GP" obj="Mut: 12" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="12" kommentar="12 GP" obj="Klugheit: 12" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="13" kommentar="13 GP" obj="Intuition: 13" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="12" kommentar="12 GP" obj="Charisma: 12" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="12" kommentar="12 GP" obj="Fingerfertigkeit: 12" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="13" kommentar="13 GP" obj="Gewandtheit: 13" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="12" kommentar="12 GP" obj="Konstitution: 12" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="14" kommentar="14 GP" obj="Körperkraft: 14" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="0 GP" obj="Sozialstatus: 5" text="EIGENSCHAFTEN" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="28 AP" obj="Bogen: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="34 AP" obj="Bogen: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="7" kommentar="41 BGB" obj="Bogen: 7" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="8" kommentar="48 BGB" obj="Bogen: 8" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="9" kommentar="55 BGB" obj="Bogen: 9" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="10" kommentar="65 BGB" obj="Bogen: 10" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Dolche: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Dolche: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 BGB" obj="Ringen: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Ringen: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Ringen: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="28 BGB" obj="Schwerter: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="34 BGB" obj="Schwerter: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Speere: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Speere: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="4 AP" obj="Akrobatik: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="3 AP" obj="Akrobatik: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="7 AP" obj="Akrobatik: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 AP" obj="Akrobatik: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 AP" obj="Akrobatik: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 AP" obj="Akrobatik: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="4 AP" obj="Fliegen: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 AP" obj="Klettern: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 AP" obj="Klettern: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Klettern: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 BGB" obj="Körperbeherrschung: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Körperbeherrschung: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 BGB" obj="Reiten: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Reiten: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Reiten: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 AP" obj="Schleichen: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="27 BGB" obj="Schleichen: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="7" kommentar="33 BGB" obj="Schleichen: 7" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="8" kommentar="39 BGB" obj="Schleichen: 8" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="12 AP" obj="Selbstbeherrschung: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Selbstbeherrschung: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Selbstbeherrschung: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="17 BGB" obj="Sich verstecken: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="22 BGB" obj="Sich verstecken: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="27 BGB" obj="Sinnenschärfe: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="7" kommentar="33 BGB" obj="Sinnenschärfe: 7" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="8" kommentar="39 BGB" obj="Sinnenschärfe: 8" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="9" kommentar="45 BGB" obj="Sinnenschärfe: 9" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 BGB" obj="Gassenwissen: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 BGB" obj="Gassenwissen: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 BGB" obj="Gassenwissen: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 BGB" obj="Menschenkenntnis: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="11 BGB" obj="Menschenkenntnis: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="14 BGB" obj="Menschenkenntnis: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="2 AP" obj="Sich verkleiden: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="2 AP" obj="Sich verkleiden: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 AP" obj="Sich verkleiden: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 BGB" obj="Überreden: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="11 BGB" obj="Überreden: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 BGB" obj="Fesseln/Entfesseln: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 BGB" obj="Fesseln/Entfesseln: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="11 BGB" obj="Fesseln/Entfesseln: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="3 BGB" obj="Schätzen: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="6 BGB" obj="Tierkunde: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="1 BGB" obj="Sprachen kennen Bosparano: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="1 BGB" obj="Sprachen kennen Bosparano: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="1 AP" obj="Sprachen kennen Ologhaijan: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="1 BGB" obj="Sprachen kennen Ologhaijan: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="1 AP" obj="Lesen/Schreiben Zhayad: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="2 AP" obj="Bogenbau: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="2 AP" obj="Bogenbau: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 AP" obj="Bogenbau: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 AP" obj="Bogenbau: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 AP" obj="Bogenbau: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="11 AP" obj="Bogenbau: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="14 AP" obj="Bogenbau: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="7" kommentar="17 AP" obj="Bogenbau: 7" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 AP" obj="Hauswirtschaft: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 BGB" obj="Heilkunde: Gift: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 BGB" obj="Heilkunde: Gift: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 AP" obj="Heilkunde: Wunden: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 AP" obj="Heilkunde: Wunden: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="5" kommentar="11 BGB" obj="Heilkunde: Wunden: 5" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="6" kommentar="14 BGB" obj="Heilkunde: Wunden: 6" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="7" kommentar="17 BGB" obj="Heilkunde: Wunden: 7" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 AP" obj="Holzbearbeitung: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="4" kommentar="8 BGB" obj="Holzbearbeitung: 4" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 AP" obj="Kochen: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="3" kommentar="6 BGB" obj="Kochen: 3" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="2 AP" obj="Schlösser knacken: 0" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="1" kommentar="2 AP" obj="Schlösser knacken: 1" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="2" kommentar="4 BGB" obj="Schneidern: 2" text="TALENT" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="150 vSF (Waldkundig)" obj="Scharfschütze (Bogen)" text="vSF" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="3 GP" obj="Altersresistenz" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="5 GP" obj="Astralmacht: 5" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="0 GP" obj="Breitgefächerte Bildung" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-4 GP" obj="Feind: 8" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-10 GP" obj="Gesucht: 2" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-5 GP" obj="Kleinwüchsig" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-7 GP" obj="Neugier: 7" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-5 GP" obj="Rachsucht: 5" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="3 GP" obj="Schutzgeist" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-2 GP" obj="Unbewusster Viertelzauberer" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-10 GP" obj="Unfähigkeit für [Talentgruppe]: Wissen" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="-5 GP" obj="Ungebildet: 5" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="0 GP" obj="Verpflichtungen" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Alt="0" Neu="0" kommentar="5 GP" obj="Viertelzauberer" text="VORTEILE" time="1492884894705" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="256" Alt="1300" Neu="1556" text="Abenteuerpunkte" time="1492885290302" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-55" Alt="10" Info="SE, Gegenseitiges Lehren" Neu="11" obj="Bogen" text="Talent steigern" time="1492886150294" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-38" Alt="9" Info="SE, Gegenseitiges Lehren" Neu="10" obj="Sinnenschärfe" text="Talent steigern" time="1492886164416" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-10" Alt="7" Info="SE, Gegenseitiges Lehren" Neu="8" obj="Heilkunde: Wunden" text="Talent steigern" time="1492886236033" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-10" Alt="7" Info="SE, Gegenseitiges Lehren" Neu="8" obj="Bogenbau" text="Talent steigern" time="1492886265527" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-5" Info="SE" Neu="0" obj="Schauspielerei" text="Talent aktivieren" time="1492886317617" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-2" Alt="0" Info="Gegenseitiges Lehren" Neu="1" obj="Schauspielerei" text="Talent steigern" time="1492886335440" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-34" Alt="8" Info="SE, Gegenseitiges Lehren" Neu="9" obj="Schleichen" text="Talent steigern" time="1492886378062" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-65" Alt="11" Info="SE, Gegenseitiges Lehren" Neu="12" obj="Bogen" text="Talent steigern" time="1492886497927" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-6" Alt="0" Info="SE" Neu="1" obj="Astralenergie" text="Eigenschaft steigern" time="1492886727974" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-8" Alt="0" Info="SE" Neu="1" obj="Lebensenergie" text="Eigenschaft steigern" time="1492886739888" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-14" Alt="1" Info="SE" Neu="2" obj="Astralenergie" text="Eigenschaft steigern" time="1492886740505" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="240" Alt="1556" Neu="1796" text="Abenteuerpunkte" time="1493159025834" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-75" obj="Scharfschütze (Bogen)" text="Sonderfertigkeit hinzugefügt" time="1493159102339" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-25" Alt="6;2;4" Info="SE, Lehrmeister" Neu="7;2;4" obj="Schwerter" text="Nahkampftalent steigern" time="1493159124713" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-14" Alt="5" Info="SE, Lehrmeister" Neu="6" obj="Akrobatik" text="Talent steigern" time="1493159137593" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-28" Alt="10" Info="SE, Lehrmeister" Neu="11" obj="Sinnenschärfe" text="Talent steigern" time="1493159150870" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-4" Alt="1" Info="Gegenseitiges Lehren" Neu="2" obj="Schauspielerei" text="Talent steigern" time="1493159176473" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-14" Alt="5" Info="SE, Lehrmeister" Neu="6" obj="Sich verstecken" text="Talent steigern" time="1493159192820" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="125" Alt="1796" Neu="1921" text="Abenteuerpunkte" time="1494969094184" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="185" Alt="1921" Neu="2106" text="Abenteuerpunkte" time="1497992334716" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="-100" obj="Schnellladen (Bogen)" text="Sonderfertigkeit hinzugefügt" time="1499800024764" version="HS 5.5.2"/>
+ <ereignis Abenteuerpunkte="140" Alt="2106" Neu="2246" text="Abenteuerpunkte" time="1502227215306" version="HS 5.5.2"/>
+ </ereignisse>
+ <talentliste>
+ <talent lernmethode="Gegenseitiges Lehren" name="Bogen" probe=" (GE/FF/KK)" value="12"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Dolche" probe=" (GE/GE/KK)" value="5"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Hiebwaffen" probe=" (GE/GE/KK)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Infanteriewaffen" probe=" (GE/GE/KK)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Raufen" probe=" (GE/GE/KK)" value="4"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Ringen" probe=" (GE/GE/KK)" value="5"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Säbel" probe=" (GE/GE/KK)" value="0"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Schwerter" probe=" (GE/GE/KK)" value="7"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Speere" probe=" (GE/GE/KK)" value="5"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Wurfmesser" probe=" (GE/FF/KK)" value="0"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Akrobatik" probe=" (MU/GE/KK)" value="6"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Athletik" probe=" (GE/KO/KK)" value="4"/>
+ <talent be="BE" lernmethode="Gegenseitiges Lehren" name="Fliegen" probe=" (MU/IN/GE)" value="0"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Klettern" probe=" (MU/GE/KK)" value="5"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Körperbeherrschung" probe=" (MU/IN/GE)" value="4"/>
+ <talent be="BE-2" lernmethode="Gegenseitiges Lehren" name="Reiten" probe=" (CH/GE/KK)" value="5"/>
+ <talent be="BE" lernmethode="Gegenseitiges Lehren" name="Schleichen" probe=" (MU/IN/GE)" value="9"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Schwimmen" probe=" (GE/KO/KK)" value="2"/>
+ <talent be="" lernmethode="Gegenseitiges Lehren" name="Selbstbeherrschung" probe=" (MU/KO/KK)" value="5"/>
+ <talent be="BE-2" lernmethode="Gegenseitiges Lehren" name="Sich verstecken" probe=" (MU/IN/GE)" value="6"/>
+ <talent be="BE-3" lernmethode="Gegenseitiges Lehren" name="Singen" probe=" (IN/CH/CH)" value="0"/>
+ <talent be="0-&gt;BE" lernmethode="Gegenseitiges Lehren" name="Sinnenschärfe" probe=" (KL/IN/IN)" value="11"/>
+ <talent be="BEx2" lernmethode="Gegenseitiges Lehren" name="Tanzen" probe=" (CH/GE/GE)" value="0"/>
+ <talent be="" lernmethode="Gegenseitiges Lehren" name="Zechen" probe=" (IN/KO/KK)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Etikette" probe=" (KL/IN/CH)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Gassenwissen" probe=" (KL/IN/CH)" value="4"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Menschenkenntnis" probe=" (KL/IN/CH)" value="6"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Schauspielerei" probe=" (MU/KL/CH)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Sich verkleiden" probe=" (MU/CH/GE)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Überreden" probe=" (MU/IN/CH)" value="5"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Fährtensuchen" probe=" (KL/IN/KO)" value="4"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Fallen stellen" probe=" (KL/FF/KK)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Fesseln/Entfesseln" probe=" (FF/GE/KK)" value="5"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Fischen/Angeln" probe=" (IN/FF/KK)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Orientierung" probe=" (KL/IN/IN)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Wettervorhersage" probe=" (KL/IN/IN)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Wildnisleben" probe=" (IN/GE/KO)" value="4"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Geografie" probe=" (KL/KL/IN)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Götter und Kulte" probe=" (KL/KL/IN)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Heraldik" probe=" (KL/KL/FF)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Kriegskunst" probe=" (MU/KL/CH)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Pflanzenkunde" probe=" (KL/IN/FF)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Rechnen" probe=" (KL/KL/IN)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Rechtskunde" probe=" (KL/KL/IN)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Sagen und Legenden" probe=" (KL/IN/CH)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Schätzen" probe=" (KL/IN/IN)" value="0"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Tierkunde" probe=" (MU/KL/IN)" value="2"/>
+ <talent k="21" lernmethode="Gegenseitiges Lehren" name="Sprachen kennen Bosparano" probe=" (KL/IN/CH)" value="1"/>
+ <talent k="18" lernmethode="Gegenseitiges Lehren" name="Sprachen kennen Garethi" probe=" (KL/IN/CH)" value="10"/>
+ <talent k="15" lernmethode="Gegenseitiges Lehren" name="Sprachen kennen Ologhaijan" probe=" (KL/IN/CH)" value="1"/>
+ <talent k="21" lernmethode="Gegenseitiges Lehren" name="Sprachen kennen Rogolan" probe=" (KL/IN/CH)" value="3"/>
+ <talent k="15" lernmethode="Gegenseitiges Lehren" name="Sprachen kennen Zhayad" probe=" (KL/IN/CH)" value="3"/>
+ <talent k="10" lernmethode="Gegenseitiges Lehren" name="Lesen/Schreiben Kusliker Zeichen" probe=" (KL/KL/FF)" value="2"/>
+ <talent k="18" lernmethode="Gegenseitiges Lehren" name="Lesen/Schreiben Zhayad" probe=" (KL/KL/FF)" value="0"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Bogenbau" probe=" (KL/IN/FF)" value="8"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Fahrzeug lenken" probe=" (IN/CH/FF)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Hauswirtschaft" probe=" (IN/CH/FF)" value="2"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Heilkunde: Gift" probe=" (MU/KL/IN)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Heilkunde: Krankheiten" probe=" (MU/KL/CH)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Heilkunde: Wunden" probe=" (KL/CH/FF)" value="8"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Holzbearbeitung" probe=" (KL/FF/KK)" value="4"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Kochen" probe=" (KL/IN/FF)" value="3"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Lederarbeiten" probe=" (KL/FF/FF)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Malen/Zeichnen" probe=" (KL/IN/FF)" value="0"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Schlösser knacken" probe=" (IN/FF/FF)" value="1"/>
+ <talent lernmethode="Gegenseitiges Lehren" name="Schneidern" probe=" (KL/FF/FF)" value="2"/>
+ </talentliste>
+ <zauberliste/>
+ <kampf>
+ <kampfwerte name="Dolche">
+ <attacke value="12"/>
+ <parade value="9"/>
+ </kampfwerte>
+ <kampfwerte name="Hiebwaffen">
+ <attacke value="10"/>
+ <parade value="8"/>
+ </kampfwerte>
+ <kampfwerte name="Infanteriewaffen">
+ <attacke value="9"/>
+ <parade value="8"/>
+ </kampfwerte>
+ <kampfwerte name="Raufen">
+ <attacke value="11"/>
+ <parade value="9"/>
+ </kampfwerte>
+ <kampfwerte name="Ringen">
+ <attacke value="11"/>
+ <parade value="10"/>
+ </kampfwerte>
+ <kampfwerte name="Säbel">
+ <attacke value="8"/>
+ <parade value="8"/>
+ </kampfwerte>
+ <kampfwerte name="Schwerter">
+ <attacke value="11"/>
+ <parade value="12"/>
+ </kampfwerte>
+ <kampfwerte name="Speere">
+ <attacke value="12"/>
+ <parade value="9"/>
+ </kampfwerte>
+ </kampf>
+ <gegenstände/>
+ <BoniWaffenlos/>
+ <kommentare/>
+ <ausrüstungen>
+ <heldenausruestung name="jagtwaffe" nummer="0" set="0"/>
+ </ausrüstungen>
+ <verbindungen/>
+ <extention/>
+ <geldboerse/>
+ <plugindata/>
+ </held>
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
+ <Reference URI="">
+ <Transforms>
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>pA70izIxomtGcRb/16T9inwwXw8=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>VJwVRJxgJH4HZS+IjrA6Xwv5BHNXoEDLNFGY0OJX0t1jR6laSNhNsw==</SignatureValue>
+ <KeyInfo>
+ <KeyValue>
+ <DSAKeyValue>
+ <P>
+ /KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9
+ xD7nN1kuFw==
+ </P>
+ <Q>li7dzDacuo67Jg7mtqEm2TRuOMU=</Q>
+ <G>
+ Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx/XPaF5Bpsy4pNWMOHCBiNU0Nogps
+ QW5QvnlMpA==
+ </G>
+ <Y>
+ uVrvWkzIbUdL7E80AiD0PJDX3Ck0beY5StXp1wDAA1/ePpemd6rTBNd8YoCzOovNrX016YMcTSiO
+ iExM4RWtJA==
+ </Y>
+ </DSAKeyValue>
+ </KeyValue>
+ </KeyInfo>
+ </Signature>
+</helden> \ No newline at end of file