Zum Inhalt springen
Oldtime

Bots zu CTF / TDM Serverseitig hinzufügen

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo,

ich habe bei DCF El Alamein Day 3 Bots bei TDM und CTF hinzugefügt. Das ganze serverseitig nach dieser Anleitung:

http://battlefieldmodding.com/ssm/phpBB3/v...0ea93d617689231

Das ganze hat soweit auch geklappt. Die Bots sind da der Server läuft stabil, die Bots laufen und schießen. Allerdings sind sie dumm wie nen Stück Toastbrot und sie benutzen keine Fahrzeuge oder stationären Waffen. Und was noch schlimmer ist, sie schießen ausschließlich auf Fußsoldaten! Sobald man in einem Fahrzeug sitzt ignorieren sie einen. Man kann sie dann auch umfahren, sie versuchen nicht mal auszuweichen.

Hier meine Änderungen die ich gemacht habe, damit die Bots überhaupt kommen. Ich poste jetzt einfach mal den CTF Teil, der TDM unterscheidet sich bei den Änderungen nicht davon.

ctf.con

run Ctf/SoldierSpawns

run Ctf/ObjectSpawnTemplates

run Ctf/ControlPointTemplates

if v_arg1 == host

rem ----- Host

run ai v_arg1

run Ctf/ObjectSpawns

run Ctf/ControlPoints

rem *** CREATE FLAG BASES ***

object.create UKbase

Object.absolutePosition 1694.08/60/804.904

Object.rotation 0/0/0

object.create GEbase

Object.absolutePosition 451.573/40.2/1271.61

Object.rotation 0/0/0

rem ----------------------------------------------------------------------------

else

rem ----- Join

rem ----------------------------------------------------------------------------

rem *** CREATE FLAG BASES ***

object.create FlagPole

Object.absolutePosition 1694.08/60/804.904

Object.rotation 0/0/0

object.create FlagPole

Object.absolutePosition 451.573/40.2/1271.61

Object.rotation 0/0/0

rem ----------------------------------------------------------------------------

endIf

console.useRelativePaths 0

rem you need these two no matter what

include objects/items/basekit/ai/objects.con

include objects/soldiers/common/AI/Objects.con

Rem Alle Fahrzeuge und Waffen zur Sicherheit in die Liste aufgenommen

REM DC und DCF Waffen

include objects/HandWeapons/AK47/AI/Weapons.con

rem include objects/HandWeapons/AK47_nogp30/AI/Weapons.con Waffe nicht benutzbar

include objects/HandWeapons/AK47GP30/AI/Weapons.con

include objects/HandWeapons/AKS-74U/AI/Weapons.con

include objects/HandWeapons/Barbedwire_deploy/AI/Weapons.con

include objects/HandWeapons/Binoculars/AI/Weapons.con

include objects/HandWeapons/Browninghipo/AI/Weapons.con

include objects/HandWeapons/C4/AI/Weapons.con

include objects/HandWeapons/Car-15/AI/Weapons.con

include objects/HandWeapons/GrenadeAllies/AI/Weapons.con

include objects/HandWeapons/IEDPack/AI/Weapons.con

include objects/HandWeapons/Landmine/AI/Weapons.con

include objects/HandWeapons/M16/AI/Weapons.con

include objects/HandWeapons/M16a2/AI/Weapons.con

include objects/HandWeapons/M203/AI/Weapons.con

include objects/HandWeapons/M249/AI/Weapons.con

include objects/HandWeapons/m25/AI/Weapons.con

include objects/HandWeapons/M4/AI/Weapons.con

include objects/HandWeapons/M82/AI/Weapons.con

include objects/HandWeapons/M9_beretta/AI/Weapons.con

include objects/HandWeapons/MedPack/AI/Weapons.con

include objects/HandWeapons/Mk23/AI/Weapons.con

include objects/HandWeapons/Mortar/AI/Weapons.con

include objects/HandWeapons/mortar_deploy/AI/Weapons.con

include objects/HandWeapons/Mortar_weap/AI/Weapons.con

include objects/HandWeapons/MP5/AI/Weapons.con

include objects/HandWeapons/MP5SD/AI/Weapons.con

include objects/HandWeapons/PKM/AI/Weapons.con

include objects/HandWeapons/PKM_Deploy/AI/Weapons.con

include objects/HandWeapons/PSS/AI/Weapons.con

include objects/HandWeapons/Remington/AI/Weapons.con

include objects/HandWeapons/RepairPack/AI/Weapons.con

include objects/HandWeapons/RPG/AI/Weapons.con

include objects/HandWeapons/RPG7/AI/Weapons.con

include objects/HandWeapons/SA-7/AI/Weapons.con

include objects/HandWeapons/Saiga12k/AI/Weapons.con

include objects/HandWeapons/SandBag/AI/Weapons.con

include objects/HandWeapons/Sandbag_deploy/AI/Weapons.con

include objects/HandWeapons/Skorpion/AI/Weapons.con

include objects/HandWeapons/SMAW/AI/Weapons.con

include objects/HandWeapons/SmokeGrenade/AI/Weapons.con

include objects/HandWeapons/SniperBush_deploy/AI/Weapons.con

include objects/HandWeapons/Stinger/AI/Weapons.con

include objects/HandWeapons/StingerMissile/AI/Weapons.con

include objects/HandWeapons/Tabuk/AI/Weapons.con

include objects/HandWeapons/VSS/AI/Weapons.con

Rem gemeinsame Dateien

include objects/HandWeapons/Common/AI/weapons.con

Rem BF1942 Waffen

include objects/HandWeapons/Bar1918/AI/Weapons.con

include objects/HandWeapons/Bazooka/AI/Weapons.con

include objects/HandWeapons/Colt/AI/Weapons.con

include objects/HandWeapons/Detonator/AI/Weapons.con

include objects/HandWeapons/DP/AI/Weapons.con

include objects/HandWeapons/GrenadeAxis/AI/Weapons.con

include objects/HandWeapons/JohnsonLMG/AI/Weapons.con

include objects/HandWeapons/K98/AI/Weapons.con

include objects/HandWeapons/KnifeAllies/AI/Weapons.con

include objects/HandWeapons/KnifeAxis/AI/Weapons.con

include objects/HandWeapons/M1Garand/AI/Weapons.con

include objects/HandWeapons/Mp18/AI/Weapons.con

include objects/HandWeapons/Mp40/AI/Weapons.con

include objects/HandWeapons/No4/AI/Weapons.con

include objects/HandWeapons/Panzershreck/AI/Weapons.con

include objects/HandWeapons/riflebulletclip_m1/AI/Weapons.con

include objects/HandWeapons/Sg44/AI/Weapons.con

include objects/HandWeapons/Thompson/AI/Weapons.con

include objects/HandWeapons/Type5/AI/Weapons.con

include objects/HandWeapons/Type99/AI/Weapons.con

include objects/HandWeapons/WalterP38/AI/Weapons.con

Rem DC und DCF Fahrzeuge

include Objects/Vehicles/air/A10/AI/Weapons.con

include Objects/Vehicles/air/A10_B/AI/Weapons.con

include Objects/Vehicles/air/A10_C/AI/Weapons.con

include Objects/Vehicles/air/AC-130/AI/Weapons.con

include Objects/Vehicles/air/AH64/AI/Weapons.con

include Objects/Vehicles/air/AV8/AI/Weapons.con

include Objects/Vehicles/air/Bomb_GBU27/AI/Weapons.con

include Objects/Vehicles/air/F-117A/AI/Weapons.con

include Objects/Vehicles/air/F-14A/AI/Weapons.con

include Objects/Vehicles/air/F-14B/AI/Weapons.con

include Objects/Vehicles/air/F-15C/AI/Weapons.con

include Objects/Vehicles/air/F16/AI/Weapons.con

include Objects/Vehicles/air/H-53/AI/Weapons.con

include Objects/Vehicles/air/H-6/AI/Weapons.con

include Objects/Vehicles/air/Mi24D/AI/Weapons.con

include Objects/Vehicles/air/Mi-8/AI/Weapons.con

include Objects/Vehicles/air/Mi-8T/AI/Weapons.con

include Objects/Vehicles/air/Mig29/AI/Weapons.con

include Objects/Vehicles/air/Mirage/AI/Weapons.con

include Objects/Vehicles/air/ParaAmmoCrate/AI/Weapons.con

include Objects/Vehicles/air/Rocket_AA10/AI/Weapons.con

include Objects/Vehicles/air/Rocket_Aim7/AI/Weapons.con

include Objects/Vehicles/air/Rocket_Aim9/AI/Weapons.con

include Objects/Vehicles/air/Rocket_AMRAAM/AI/Weapons.con

include Objects/Vehicles/air/Rocket_Hellfire/AI/Weapons.con

include Objects/Vehicles/air/Rocket_Hydra/AI/Weapons.con

include Objects/Vehicles/air/Rocket_MagicII/AI/Weapons.con

include Objects/Vehicles/air/Rocket_Maverick/AI/Weapons.con

include Objects/Vehicles/air/SA-342/AI/Weapons.con

include Objects/Vehicles/air/SU-25/AI/Weapons.con

include Objects/Vehicles/air/UH-60/AI/Weapons.con

include Objects/Vehicles/air/UH-60L/AI/Weapons.con

include Objects/Vehicles/air/UH-60Q/AI/Weapons.con

include Objects/Vehicles/air/Aim-54/AI/Weapons.con

include Objects/Vehicles/air/AS-7_Bomb/AI/Weapons.con

include Objects/Vehicles/air/Bomb_CBU87/AI/Weapons.con

include Objects/Vehicles/air/Bomb_mk82/AI/Weapons.con

include Objects/Vehicles/air/Bomb_mk83/AI/Weapons.con

rem include Objects/Vehicles/air/H6/AI/Weapons.con Keine Dateien im Ordner

include Objects/Vehicles/air/Lau-3/AI/Weapons.con

include Objects/Vehicles/air/Rocket_AT2/AI/Weapons.con

include Objects/Vehicles/air/Snakeye_Bomb/AI/Weapons.con

include Objects/Vehicles/air/Common/AI/Weapons.con

include Objects/Vehicles/Common//AI/Weapons.con

include Objects/Vehicles/Land/BM21/AI/Weapons.con

include Objects/Vehicles/Land/BM21_Rocket/AI/Weapons.con

include Objects/Vehicles/Land/BMP1/AI/Weapons.con

include Objects/Vehicles/Land/BMP2/AI/Weapons.con

include Objects/Vehicles/Land/BRDM2/AI/Weapons.con

include Objects/Vehicles/Land/BRDM2-Gaskin/AI/Weapons.con

include Objects/Vehicles/Land/BRDM2-spandrel/AI/Weapons.con

include Objects/Vehicles/Land/Deployed_PKM/AI/Weapons.con

include Objects/Vehicles/Land/DesertPatrolVehicle/AI/Weapons.con

include Objects/Vehicles/Land/EE-9/AI/Weapons.con

include Objects/Vehicles/Land/Flak_38/AI/Weapons.con

include Objects/Vehicles/Land/Forklift/AI/Weapons.con

include Objects/Vehicles/Land/Fueldrum/AI/Weapons.con

include Objects/Vehicles/Land/Howitzer_155/AI/Weapons.con

include Objects/Vehicles/Land/Howitzer_155_Batt/AI/Weapons.con

include Objects/Vehicles/Land/Humvee/AI/Weapons.con

include Objects/Vehicles/Land/Humvee_minigun/AI/Weapons.con

include Objects/Vehicles/Land/Humvee_MK19/AI/Weapons.con

include Objects/Vehicles/Land/Humvee_TOW/AI/Weapons.con

include Objects/Vehicles/Land/IED/AI/Weapons.con

include Objects/Vehicles/Land/Lada/AI/Weapons.con

include Objects/Vehicles/Land/M-109/AI/Weapons.con

include Objects/Vehicles/Land/M163/AI/Weapons.con

include Objects/Vehicles/Land/M-1974/AI/Weapons.con

include Objects/Vehicles/Land/M1A1/AI/Weapons.con

include Objects/Vehicles/Land/M2A3/AI/Weapons.con

include Objects/Vehicles/Land/M6Linebacker/AI/Weapons.con

include Objects/Vehicles/Land/MLRS/AI/Weapons.con

include Objects/Vehicles/Land/MLRSRocket/AI/Weapons.con

include Objects/Vehicles/Land/Mortar/AI/Weapons.con

include Objects/Vehicles/Land/Pantsyr/AI/Weapons.con

include Objects/Vehicles/Land/Patriot/AI/Weapons.con

include Objects/Vehicles/Land/PatriotGuidedRocket/AI/Weapons.con

include Objects/Vehicles/Land/Pickup/AI/Weapons.con

include Objects/Vehicles/Land/SA-3/AI/Weapons.con

include Objects/Vehicles/Land/SA-3GuidedRocket/AI/Weapons.con

include Objects/Vehicles/Land/SA-3Rocket/AI/Weapons.con

include Objects/Vehicles/Land/Sabot/AI/Weapons.con

include Objects/Vehicles/Land/SCUD-B/AI/Weapons.con

include Objects/Vehicles/Land/Shilka/AI/Weapons.con

include Objects/Vehicles/Land/STRYKER/AI/Weapons.con

include Objects/Vehicles/Land/T72/AI/Weapons.con

include Objects/Vehicles/Land/Ural/AI/Weapons.con

include Objects/Vehicles/Land/Ural_fueldrum/AI/Weapons.con

include Objects/Vehicles/Land/Ural_recoilless/AI/Weapons.con

include Objects/Vehicles/Land/Ural_zpu/AI/Weapons.con

include Objects/Vehicles/Land/UralTanker/AI/Weapons.con

include Objects/Vehicles/Land/AA_Base/AI/Weapons.con

include Objects/Vehicles/Land/SCUD-BRocket/AI/Weapons.con

include Objects/Vehicles/Land/common/AI/Weapons.con

include Objects/Vehicles/sea/Enterprise/AI/Weapons.con

include Objects/Vehicles/sea/fletcher/AI/Weapons.con

include Objects/Vehicles/sea/Guided_Tomahawk/AI/Weapons.con

include Objects/Vehicles/sea/LCAC/AI/Weapons.con

include Objects/Vehicles/sea/Lcvp/AI/Weapons.con

include Objects/Vehicles/sea/OSA-2/AI/Weapons.con

include Objects/Vehicles/sea/Gato/AI/Weapons.con

include Objects/Vehicles/sea/Nimitz/AI/Weapons.con

include Objects/Vehicles/sea/Shokaku/AI/Weapons.con

include Objects/Vehicles/sea/Silkworm/AI/Weapons.con

include Objects/Vehicles/sea/Tomahawk/AI/Weapons.con

Rem BF1942 Fahrzeuge

include Objects/Vehicles/Air/AichiVal/AI/Weapons.con

include Objects/Vehicles/Air/AichiVal-T/AI/Weapons.con

include Objects/Vehicles/Air/B17/AI/Weapons.con

include Objects/Vehicles/Air/bf109/AI/Weapons.con

include Objects/Vehicles/Air/Corsair/AI/Weapons.con

include Objects/Vehicles/Air/Ilyushin/AI/Weapons.con

include Objects/Vehicles/Air/Mustang/AI/Weapons.con

include Objects/Vehicles/Air/SBD/AI/Weapons.con

include Objects/Vehicles/Air/SBD-T/AI/Weapons.con

include Objects/Vehicles/Air/Spitfire/AI/Weapons.con

include Objects/Vehicles/Air/Stuka/AI/Weapons.con

include Objects/Vehicles/Air/Yak9/AI/Weapons.con

include Objects/Vehicles/Air/Zero/AI/Weapons.con

include Objects/Vehicles/Air/Common/AI/Weapons.con

include Objects/Vehicles/Land/AA_Allies/AI/Weapons.con

include Objects/Vehicles/Land/BlackMedal/AI/Weapons.con

include Objects/Vehicles/Land/Chi-ha/AI/Weapons.con

include Objects/Vehicles/Land/Defgun/AI/Weapons.con

include Objects/Vehicles/Land/Flak_38/AI/Weapons.con

include Objects/Vehicles/Land/Hanomag/AI/Weapons.con

include Objects/Vehicles/Land/Ho-Ha/AI/Weapons.con

include Objects/Vehicles/Land/Katyusha/AI/Weapons.con

include Objects/Vehicles/Land/KatyushaRocket/AI/Weapons.con

include Objects/Vehicles/Land/KettenKrad/AI/Weapons.con

include Objects/Vehicles/Land/Kubelwagen/AI/Weapons.con

include Objects/Vehicles/Land/Lynx/AI/Weapons.con

include Objects/Vehicles/Land/M10/AI/Weapons.con

include Objects/Vehicles/Land/m3a1/AI/Weapons.con

include Objects/Vehicles/Land/PanzerIV/AI/Weapons.con

include Objects/Vehicles/Land/Priest/AI/Weapons.con

include Objects/Vehicles/Land/Sexton/AI/Weapons.con

include Objects/Vehicles/Land/Sherman/AI/Weapons.con

include Objects/Vehicles/Land/T34/AI/Weapons.con

include Objects/Vehicles/Land/T34-85/AI/Weapons.con

include Objects/Vehicles/Land/Tiger/AI/Weapons.con

include Objects/Vehicles/Land/Wespe/AI/Weapons.con

include Objects/Vehicles/Land/Willy/AI/Weapons.con

include Objects/Vehicles/Sea/AA_Enterprise/AI/Weapons.con

include Objects/Vehicles/Sea/Carrier_AA_Base/AI/Weapons.con

include Objects/Vehicles/Sea/Daihatsu/AI/Weapons.con

include Objects/Vehicles/Sea/Elco80/AI/Weapons.con

include Objects/Vehicles/Sea/Elco80Raft/AI/Weapons.con

include Objects/Vehicles/Sea/Enterprise/AI/Weapons.con

include Objects/Vehicles/Sea/fletcher/AI/Weapons.con

include Objects/Vehicles/Sea/Gato/AI/Weapons.con

include Objects/Vehicles/Sea/Hatsuzuki/AI/Weapons.con

include Objects/Vehicles/Sea/PrinceOW/AI/Weapons.con

include Objects/Vehicles/Sea/Sub7C/AI/Weapons.con

include Objects/Vehicles/Sea/Type38/AI/Weapons.con

include Objects/Vehicles/Sea/Type38Raft/AI/Weapons.con

include Objects/Vehicles/Sea/Yamato/AI/Weapons.con

include Objects/Vehicles/Sea/Common/AI/Weapons.con

console.useRelativePaths 1

Diese ganzen include objects/ Einträge sind laut Anleitung wichtig, damit die Bots wissen, was sie mit den Waffen und Fahrzeugen anfangen können. Sollte ein Bot eine Waffe haben, bei der der Eintrag fehlt, sollte der Server abstürzen. Daher hab ich einfach alle Waffen und Fahrzeuge von BF1942, DC und DCF eingefügt. Schon damit bei späteren Änderungen keine Probleme auftreten. Nur leider machen die Bots kein Gebrauch von den Fahrzeugen.

AI.con

Rem Bots für CTF und TDM

run AI/AIdefault.con v_arg1

run AI/AIbehaviours.con v_arg1

rem ************** LEVEL SPECIFIC AI SETTINGS ***************************

aiSettings.setWorldMapSize 2048 2048

aiSettings.viewDistance 300

aiSettings.setInformationGridDimension 32

rem ********************** START THE AI *********************************

rem *** Init AI using current settings ****

ai.init 2

rem *** init Botmanager ***

AIBotManager.setLodLevelTicks 6 6 6

AIBotManager.setLodLevelPriority 3 3 3

AIBotManager.setPlannedDecisionMakingThreshold 0.5 0.5 0.5

AIBotManager.setUnplannedDecisionMakingThreshold 0.3 0.4 0.4

AIBotManager.setDecisionMakingInterleave 2 2

AIBotManager.setSensingQuotient 1 1

AIBotManager.setSystemQuotient 40 40 20

rem *** Strategic map dimension, MUST BE DONE BEFORE CREATING SAI! ***

ai.saiMapXDimension 64

ai.saiMapYDimension 64

rem *** Create Strategic AI ***

ai.createSAI

rem *** Enabled or disabled as default ***

ai.saiEnable 1

game.showAIstats 0

rem *** Bot statistic ***

ai.botStatisticUpdateSpeed 3

run AIPathFinding.con

rem *** Create strategically important areas ***

run ai/StrategicAreas

rem *** Set strategies for each side ***

run ai/conditions.con

run ai/prerequisites.con

run ai/Strategies.con

ai.addSAIStrategy 1 broad

ai.addSAIStrategy 1 flank

ai.addSAIStrategy 1 breakOut

ai.addSAIStrategy 1 cleanUp

ai.addSAIStrategy 2 broad

ai.addSAIStrategy 2 flank

ai.addSAIStrategy 2 breakOut

ai.addSAIStrategy 2 cleanUp

Damit läuft das ganze, nur halt mit ziemlich beschränkten Bots.

Füge ich noch wie in der Anleitung die

Strategies.con

radio.con

prerequisites.con

conditions.con

in den AI Ordner meiner patch Datei zu, dann stürzt der Server ab. Obwohl dort ja eigentlich diese Dateien vorhanden sind. Wenn ich sie mit den original BF Dateien aus der BF 1942 Game.rfa überschreibe stürzt der Server ab, wenn ich die El Alamein Dateien nehme und die gleichen Dateien damit überschreibe stürzt er ebenfalls ab.

Klar sind die blöd weil die 4 oben genannten Dateien fehlen, aber mit dennen geht halt gar nichts.

Gibt es eine einfache Möglichkeit die Bots dort zu vernünftig zu nutzen? Ich brauch keine Superbots, die müssen auch die Flagge nicht klauen, aber sie sollten aggressiv sein und auf jeden Gegner schiessen egal wo der drin steckt. Ideal wäre natürlich, wenn die auch die Fahrzeuge benutzen würde.

Bearbeitet von Oldtime
Geschrieben (bearbeitet)

moin oldtime

1.

du hast zwar die ai für die waffen der fahrzeuge aktiviert

include Objects/Vehicles/Land/T72/AI/Weapons.con

aber die fahrzeuge selber nicht

include Objects/Vehicles/Land/T72/AI/Objects.con

2.

die datein

Strategies.con

radio.con

prerequisites.con

conditions.con

nicht in den "ai" ordner sonst überschreibst du die original datein

sondern als ai ordner also

mapname/ai/ai/Strategies.con

mapname/ai/ai/radio.con

mapname/ai/ai/prerequisites.con

mapname/ai/ai/conditions.con

und

mapname/ai/AIdefault.con

mapname/ai/AIbehaviours.con

oder viel einfacher füge

include bf1942/game/AIdefault.con v_arg1

include bf1942/game/AIbehaviours.con v_arg1

deiner ctf.con zu gleich nach "console.useRelativePaths 0" und lösch die zeilen

run AI/AIdefault.con v_arg1

run AI/AIbehaviours.con v_arg1

wieder aus der "ai.con"

dann stürzt es nicht mehr ab und alle dateien werden geladen

pazi

Bearbeitet von pazi
Geschrieben

:awesome:

ich hab zur Zeit wenig Zeit das zu testen, da ich an einem Programm arbeite um neue Maps automatisch an die Spieler zu verteilen, aber sobald ich damit fertig bin werde ich das mal testen.

Vielen Dank.

Geschrieben (bearbeitet)

das programm wäre ja mal ne feine sache :)

aber wenn es nicht hin haut kanst du auf die weise per ssm maps ohne coop nachträglich mit botsupport nachrüsten (pathmaps, ai.con, aipatfinding.con ... ect vorausgesetzt)

Bearbeitet von pazi
Geschrieben

Das mit dem SSM ist eine sehr nette Sache, ich hab auch schon einige Maps serverseitig geändert.

Aber man ist einfach zu eingeschränkt. Vor allem nervt, dass man keine statischen Objekte ändern kann und das man auf viele Kleinigkeiten achten muss da sonst die Map gar nicht mehr geht.

Daher mein update Programm. Ist auch schon lauffähig, müsste nur noch von einigen Leuten getestet werden.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.