Quote:
Originally Posted by kissmyace91
Guten Morgen,
folgendes Problem derzeit:
Ich kann mit dem "Ausbo-Bot" nicht ausbauen.
Hier meine Settings:
#Delete this file to reset the bot.
#Fri Sep 22 15:36:46 CEST 2017
worldCode=de147
doTrade=false
delaySkipMiddle=false
lastWorld=de14X
farmMode=assist
delaySmallMin=400
farmInterval=20
sleepHours=1
lastWorldDataUpdate=XXX
delaySmallMax=1200
delayMiddleMin=0
doFarm=true
ignoreAttackWarnings=true
telChatId=XXXX
delayMiddleMax=1
maxBuildQueue=4
licenseCode=
passCrypt=ENC(XXX)
farmReattack=30
doBuild=true
doTrain=false
host=www.die-staemme.de
doQuest=false
doTele=true
attackPlayers=false
telSendPeriodicUpdates=true
maxPoints=2000
telUpdateMinutes=60
useProxy=false
telOwner=XXX
farmRadius=21
telKey=XXX
user=XXX
Ist eine neue Welt, will daher nur Minen etwas pushen, Inhalt der build.xml:
<!-- start of comment
In these build templates you can tell DSX how your village should look like.
You have NO direct control of which building will be upgraded next. Instead,
DSX will choose the next upgrade based on an algorithm, preferring production.
These are max levels, which means DSX will build until these levels are reached.
If you don't set a max level for a building here, the tribal wars limit will be used.
end of comment -->
<build>
<template>
<max-levels>
<stone>16</stone>
<iron>17</iron>
</max-levels>
</template>
</build>
Sobald ich mit dobuild=true starte fällt der Bot direkt auf die Nase.
Es kommt zu Java Exceptions usw.
Hab mal die hserror.logs angesehen und siehe da, angeblich zu wenig virtueller Speicher?! Kann das wirklich sein? Der Bot läuft auf einem vHost mit 1GB RAM derzeit laufen 2 Bots die nur farmen, da build nie geklappt hat bislang.
Hier der erste Teil des Error Logs
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 89456640 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=32015, tid=0x00007f69ee526700
#
# JRE version: (8.0_131-b11) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
Bin gerne gewillt für den guten Support was zu donaten.
Danke allen!
Edit: Gerade mit meinem Macbook probiert, ging auch nicht, am Speicher kann es also nicht liegen - behaupte ich!?
|
Welche DSX Version benutzt du? Normalerweise braucht eine Instanz 100-150MB.
Im Java Log oben crasht die JVM weil sie ~85MB RAM nicht richtig reservieren kann. Das hat aber nichts mit dem Bot zu tun - der Fehler kommt von der Laufzeitumgebung und scheinbar ist nicht genug RAM verfügbar im OS.
Ich sehe auf den ersten Blick keine Syntax Fehler im Build Template - weswegen der XML Parser z.B. ein Memory Leak bekommen könnte == Die JVM zum crashen bringen würde. Weil aber die 85MB keine ungewöhnlich hohe Zahl ist, gehe ich hier nicht von einem Memory Leak aus.
Dein Build Template generell funktioniert aber nicht so wie du willst, selbst wenn die JVM nicht abstürzt. Siehe
[Only registered and activated users can see links. Click Here To Register...]
Im Prinzip hast du keine sequenzielle Liste, sondern gibst den gewünschten End-Zustand im Build Template an. Du hast KEINE direkte Kontrolle darüber, welches Gebäude als nächstes verbessert wird. Das wählt der Algo selbst aus. Der Bot baut dann, bis diese Levels erreicht sind. Daher auch 'max-levels'.
'stone,iron' im Template niedrig setzen verfehlt also dein Ziel, die Minen zu pushen. Genauso werden alle möglichen Gebäude gebaut, also nicht nur diese, die auch im Template aufgeführt sind. Wenn der Bot ein Gebäude nicht bauen soll, müsstest du max level = 0 setzen. Generell rate ich aber davon ab, zu viele Einträge im Build Template zu machen. Brauchst du erst wenn das Dorf auf die 10k Punkte zu geht und du den Bot daran hindern willst, main oder market unnötig hoch zu ziehen. Deshalb sind das auch die einzigen Einträge im standard Template.
Ich würde die Bau-Funktion mal auf deinem Desktop Rechner testen, wo auf jeden Fall genug Speicher verfügbar ist. Auf die JVM hat der Bot wenig Einfluss. Sollte der Bot dort trotzdem abstürzen, kannst du mir ja mal den Error Log schicken.
Alle Logs, die kein Timestamp und Log-Level (z.B. '00:33:16 ERROR') haben, kommen von Java und nicht direkt vom Bot.
Auf Linux kannst du mit 'top' sehen, wie viele Ressourcen tatsächlich verfügbar sind.