Page 8 of 10

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 4:10 am
by devilrance
Hey, since patch 4.0.0 arrived i have had some strange issues with my bot.
The bot runs fine with the miller's ranch script, but after a period of time, (30mins-2hours) the bot suddenly closes all running clients (4 atm).
The error message it gives me is: "micromacro/scripts/rom/functions.lua:546: bad argument #1 to `memoryReadUInt´ <<null>>"

And line 546 in functions.lua:
546 local macro_address = memoryReadUInt(getProc(), addresses.staticbase_macro);
547
548 local scriptDef;
549
550 if( settings.options.LANGUAGE == "spanish" ) then
551 scriptDef = "/redactar";
552 else
553 scriptDef = "/script";
554 end
-------------------------------------------------------------------------------------------------------------
I hope you have a solution for this. The bot could run over 80 hours with no problems in patch 3.0.0+

I uploaded my functions.lua, and im using rev 631.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 7:23 am
by rock5
I think you may have it back to front. The clients closed so you got an error. If the bot actually closed the client on purpose then it wouldn't have errored but instead have printed some message saying why it did.

I have had clients suddenly close without warning or error. Luckely it happens rarely. I don't know why it does it. It can happen even when not running a bot.

If it happened to 4 clients at once then likely it is not because of the client or bot but something that can affect all 4 at once. Maybe system instability or internet connection.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 7:43 am
by pman
is it possible to add a profile option to set a timeout for this ondeath waitforloadingscreen function? because ondeath there is no problem with a timeout. there are 2 possibilities, you die and have a loading screen, or you die and there is no loading screen, so a limit with 30-60seconds should do it for both cases.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 7:58 am
by pman
found another bug, if there is an invisible mob, the bot says target found, but it cannot attack. so you will end up in an infinite loop, unless you have luck and the your char gets close enough to see this mob (for a scout a real problem because of range attack). output is something like this:

while(1){
do not go to waypoint x
found anothertarget
}

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 8:19 am
by lisa
pman wrote:is it possible to add a profile option to set a timeout for this ondeath waitforloadingscreen function? because ondeath there is no problem with a timeout. there are 2 possibilities, you die and have a loading screen, or you die and there is no loading screen, so a limit with 30-60seconds should do it for both cases.
in your ondeath code just put a second value int he waitforloadingscreen(10) so it will wait a maximum of 10 seconds. As rock mentioned the user can put in a maximum time if they wish.
pman wrote:found another bug, if there is an invisible mob, the bot says target found, but it cannot attack. so you will end up in an infinite loop, unless you have luck and the your char gets close enough to see this mob (for a scout a real problem because of range attack). output is something like this:

while(1){
do not go to waypoint x
found anothertarget
}
Add the mob to your friends list, bot won't try to attack it but if the mob attacks you bot will kill it.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 8:28 am
by rock5
pman wrote:is it possible to add a profile option to set a timeout for this ondeath waitforloadingscreen function? because ondeath there is no problem with a timeout. there are 2 possibilities, you die and have a loading screen, or you die and there is no loading screen, so a limit with 30-60seconds should do it for both cases.
lisa wrote:in your ondeath code just put a second value int he waitforloadingscreen(10) so it will wait a maximum of 10 seconds. As rock mentioned the user can put in a maximum time if they wish.
I think he's talking about the "waitForLoadingScreen" that happens after the bots regular resurrect routine. It's a good point, and easy to add too. Seeing as it's going to wait "WAIT_TIME_AFTER_RES" anyway, we could just make it 30 seconds. And it's safe too because there's another check if the player is alive later in the function so it will "pauseOnDeath" if it failed to revive.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 11:29 am
by romzj
so maybe a generous person would be so kind and give a new client which works into patch 4.0.1? i would be appreciate

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 11:50 am
by rock5
romzj wrote:so maybe a generous person would be so kind and give a new client which works into patch 4.0.1? i would be appreciate
Just update with svn and you will have the same version as everyone else.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 12:28 pm
by romzj
probably i am too stupid to do that, so be so kind and give maybe this one "file" to download...

really i would be appreciate.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 12:42 pm
by romzj
rock5 wrote:
romzj wrote:so maybe a generous person would be so kind and give a new client which works into patch 4.0.1? i would be appreciate
Just update with svn and you will have the same version as everyone else.
dude, if you could, please give it to me, i am too stupid to do it alone

be so kind and give this file which was fixed.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 12:55 pm
by rock5
romzj wrote:dude, if you could, please give it to me, i am too stupid to do it alone

be so kind and give this file which was fixed.
Ok, I wont argue with you. If you say you're stupid, I believe you.

The instructions on how to keep your bot up to date are here.
http://www.solarstrike.net/phpBB3/viewt ... f=21&t=163

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 1:23 pm
by botje
whahahah xd

that made my day Rock :p

Botje

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 2:25 pm
by C3PO
rock5 wrote:
nokirk wrote:has anybody already found the new addresses of

Code: Select all

craftingCountPtr
and

Code: Select all

craftingCount_offset
? They are used in craftitem userfunction and don't work atm.
I've updated the address in the userfunction.
http://www.solarstrike.net/phpBB3/viewt ... 272#p20272

You can download it or just change the address to 0xA1E730.

is this still the correct value? it's not working ...

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 3:41 pm
by toxicytears
lisa wrote:yup, addresses.lua shouldnt have any < in it.
now it says scripts\rom/bot/lua:12 ...86)/Runes Of Magic/Interface/AddOns/micromacro/scripts/rom/addresses.lua:3: unexpected symbol near '='

Code: Select all

-- Auto-generated by update.lua
addresses{

   actionBarPtr = 0xA0C144,
   actionKeyId_offset = 0x10,
   actionKeyType_offset = 0xC,
   amountOffset = 0x10,
   boundStatusOffset = 0x40,
   camPtr_offset = 0x46C,
   camXUVec_offset = 0x128,
   camX_offset = 0x104,
   camYUVec_offset = 0x12C,
   camY_offset = 0x108,
   camZUVec_offset = 0x130,
   camZ_offset = 0x10C,
   castingBarPtr = 0xA0C230,
   castingBar_offset = 0xC,
   charAlive_offset = 0x224,
   charBattle_offset = 0x732,
   charExp_address = 0x9B83D0,
   charMaxExpTable_address = 0xA04B58,
   charPtrMounted_offset = 0x7C,
   charPtr_offset = 0x598,
   coolDownOffset = 0xE8,
   durabilityOffset = 0x18,
   effectDuration_offset = 0x9C,
   effectIsMainFlag_offset = 0x90,
   effectType_offset = 0x94,
   eggPetAptitude_offset = 0x54,
   eggPetBaseAddress = 0x9D0EB0,
   eggPetCrafting_offset = 0x34,
   eggPetDex_offset = 0x68,
   eggPetEggId_offset = 0x20,
   eggPetExp_offset = 0x40,
   eggPetHerbalism_offset = 0xD8,
   eggPetInt_offset = 0x6C,
   eggPetLevel_offset = 0x2C,
   eggPetLoyalty_offset = 0x4C,
   eggPetMaxExpTablePtr = 0xA04DE4,
   eggPetMaxTP_offset = 0x48,
   eggPetMining_offset = 0xD0,
   eggPetNourishment_offset = 0x50,
   eggPetPetId_offset = 0x28,
   eggPetProducts_offset = 0x16C,
   eggPetSkills_offset = 0x7C,
   eggPetSta_offset = 0x64,
   eggPetStr_offset = 0x60,
   eggPetSummoned_offset = 0x38,
   eggPetTP_offset = 0x44,
   eggPetToolId_offset = 0xE4,
   eggPetTraining_offset = 0x58,
   eggPetWis_offset = 0x70,
   eggPetWoodworking_offset = 0xD4,
   hotkeysKey_offset = 0x54,
   hotkeysPtr = 0xA0D830,
   hotkeys_offset = 0x28,
   idCardNPCOffset = 0x364,
   idOffset = 0xC,
   idRecipeItemOffset = 0xF0,
   inUseOffset = 0x1C,
   inventoryBagIds = 0x9CD8CC,
   itemCountOffset = 0x10,
   itemInfoOffset = 0x10,
   loadingScreenPtr = 0xA0D940,
   loadingScreen_offset = 0xC,
   macroBody_offset = 0x118,
   macroIcon_offset = 0x14,
   macroId_offset = 0x10,
   macroName_offset = 0x18,
   macroSize = 0x508,
   maxDurabilityOffset = 0x15,
   maxStackOffset = 0x1C,
   moneyPtr = 0x9C9C3C,
   mousePtr_offset = 0x744,
   nameOffset = 0xC,
   pawnAttackable_offset = 0x384,
   pawnBuffsEnd_offset = 0x26C,
   pawnBuffsStart_offset = 0x268,
   pawnCasting_offset = 0x25C,
   pawnClass1_offset = 0x2FC,
   pawnClass2_offset = 0x304,
   pawnDirXUVec_offset = 0x34,
   pawnDirYUVec_offset = 0x3C,
   pawnEffectId_offset = 0x4,
   pawnEffectLevel_offset = 0x28,
   pawnEffectTimeLeft_offset = 0x14,
   pawnHP_offset = 0x2C8,
   pawnHarvesting_offset = 0x160,
   pawnId_offset = 0x14,
   pawnLevel2_offset = 0x308,
   pawnLevel_offset = 0x300,
   pawnLootable_offset = 0x388,
   pawnMP2_offset = 0x2DC,
   pawnMP_offset = 0x2D4,
   pawnMaxHP_offset = 0x2D0,
   pawnMaxMP2_offset = 0x2E0,
   pawnMaxMP_offset = 0x2D8,
   pawnMount_offset = 0xC4,
   pawnName_offset = 0x290,
   pawnPetPtr_offset = 0x280,
   pawnRace_offset = 0x310,
   pawnTargetPtr_offset = 0x274,
   pawnType_offset = 0x18,
   pawnX_offset = 0x28,
   pawnY_offset = 0x2C,
   pawnZ_offset = 0x30,
   ping_offset = 0x7A8,
   qualityBaseOffset = 0x40,
   qualityTierOffset = 0x16,
   realItemIdOffset = 0x98,
   rentBagBase = 0x9CE474,
   requiredLevelOffset = 0x58,
   skillAoEFlag_offset = 0xA4,
   skillAttackFlag_offset = 0xB4,
   skillBuffFlag_offset = 0xEC,
   skillCastTime_offset = 0xF4,
   skillClass_offset = 0x304,
   skillCooldown_offset = 0xE8,
   skillEffectStart_offset = 0x188,
   skillMaxLevel_offset = 0xF4,
   skillPassiveFlag_offset = 0x94,
   skillPercentMana_offset = 0xCC,
   skillPowerTypeUsed_offset = 0xC0,
   skillPower_offset = 0xC4,
   skillRangeAoE_offset = 0xA0,
   skillRange_offset = 0x9C,
   skillRequiredEffectFlag_offset = 0xD0,
   skillRequiredEffect_offset = 0xD4,
   skillRequiredEffectsStart_offset = 0x190,
   skillSelfBuffFlag_offset = 0xE0,
   skillTargetType_offset = 0x98,
   skillTypeFlag1_offset = 0xF0,
   skillTypeFlag2_offset = 0x2FE,
   skillTypeFlag3_offset = 0x2FF,
   skillTypeFlag4_offset = 0x314,
   skillTypeFlag5_offset = 0x315,
   skillTypeFlag6_offset = 0xBA,
   skillTypeFlag7_offset = 0x300,
   skillTypeFlag8_offset = 0xE4,
   skillTypeFlag9_offset = 0x274,
   skillsBase = 0x9C7EC8,
   staticEquipBase = 0x9B9C8C,
   staticInventory = 0x9C6C68,
   staticTablePtr = 0xA0F020,
   staticTableSize = 0xA0F01C,
   staticbase_char = 0x9B8364,
   staticbase_macro = 0xA0D974,
   staticpattern_char = 0x63C254,
   staticpattern_macro = 0x74B7E5,
   tableDataStartPtrOffset = 0x1C,
   tableStartPtrOffset = 0x124,
   tablesBase = 0x9DAB24,
   tablesBaseOffset = 0x28,
   typeOffset = 0x78,
   valueOffset = 0x34,
   chatEntryOpen_offset = 0x1C,
   chat_offset1 = 0x0,
   chat_offset2 = 0x10,
   chat_offset3 = 0x3D8,
   chatbase_address = 0xA943AC,
}
	actionBarPtr = 0xA1BAFC,
	actionKeyId_offset = 0x10,
	actionKeyType_offset = 0xC,
	boundStatusOffset = 0x40,
	camPtr_offset = 0x46C,
	camXUVec_offset = 0x128,
	camX_offset = 0x104,
	camYUVec_offset = 0x12C,
	camY_offset = 0x108,
	camZUVec_offset = 0x130,
	camZ_offset = 0x10C,
	castingBarPtr = 0xA1BBE8,
	castingBar_offset = 0xC,
	charAlive_offset = 0x224,
	charBattle_offset = 0x732,
	charExp_address = 0x9C7868,
	charMaxExpTable_address = 0xA142F8,
	charPtrMounted_offset = 0x7C,
	charPtr_offset = 0x598,
	coolDownOffset = 0xE8,
	durabilityOffset = 0x18,
	editBoxHasFocus_address = 0xA18FC4,
	effectDuration_offset = 0x9C,
	effectIsMainFlag_offset = 0x90,
	effectType_offset = 0x94,
	eggPetAptitude_offset = 0x54,
	eggPetBaseAddress = 0x9E0480,
	eggPetCrafting_offset = 0x34,
	eggPetDex_offset = 0x68,
	eggPetEggId_offset = 0x20,
	eggPetExp_offset = 0x40,
	eggPetHerbalism_offset = 0xD8,
	eggPetInt_offset = 0x6C,
	eggPetLevel_offset = 0x2C,
	eggPetLoyalty_offset = 0x4C,
	eggPetMaxExpTablePtr = 0xA14584,
	eggPetMaxTP_offset = 0x48,
	eggPetMining_offset = 0xD0,
	eggPetNourishment_offset = 0x50,
	eggPetPetId_offset = 0x28,
	eggPetProducts_offset = 0x16C,
	eggPetSkills_offset = 0x7C,
	eggPetSta_offset = 0x64,
	eggPetStr_offset = 0x60,
	eggPetSummoned_offset = 0x38,
	eggPetTP_offset = 0x44,
	eggPetToolId_offset = 0xE4,
	eggPetTraining_offset = 0x58,
	eggPetWis_offset = 0x70,
	eggPetWoodworking_offset = 0xD4,
	hotkeysKey_offset = 0x54,
	hotkeysPtr = 0xA1D1E8,
	hotkeys_offset = 0x28,
	idCardNPCOffset = 0x364,
	idOffset = 0xC,
	idRecipeItemOffset = 0xF0,
	inUseOffset = 0x1C,
	inventoryBagIds = 0x9DCE9C,
	itemCountOffset = 0x10,
	itemInfoOffset = 0x10,
	loadingScreenPtr = 0xA1D2F8,
	loadingScreen_offset = 0xC,
	macroBody_offset = 0x118,
	macroIcon_offset = 0x14,
	macroId_offset = 0x10,
	macroName_offset = 0x18,
	macroSize = 0x508,
	maxDurabilityOffset = 0x15,
	maxStackOffset = 0x1C,
	moneyPtr = 0x9D918C,
	mousePtr_offset = 0x744,
	nameOffset = 0xC,
	partyIconList_base = 0xA1D3B8,
	partyIconList_offset = 0xC,
	partyMemberList_address = 0x9E8F90,
	partyMemberList_offset = 0x134,
	pawnAttackable_offset = 0x384,
	pawnBuffId_offset = 0x20,
	pawnBuffLevel_offset = 0x44,
	pawnBuffTimeLeft_offset = 0x30,
	pawnBuffsEnd_offset = 0x26C,
	pawnBuffsStart_offset = 0x268,
	pawnCasting_offset = 0x25C,
	pawnClass1_offset = 0x2FC,
	pawnClass2_offset = 0x304,
	pawnDirXUVec_offset = 0x34,
	pawnDirYUVec_offset = 0x38,
	pawnDirZUVec_offset = 0x3C,
	pawnGUID_offset = 0x20,
	pawnHP_offset = 0x2C8,
	pawnHarvesting_offset = 0x160,
	pawnId_offset = 0x14,
	pawnLevel2_offset = 0x308,
	pawnLevel_offset = 0x300,
	pawnLootable_offset = 0x388,
	pawnMP2_offset = 0x2DC,
	pawnMP_offset = 0x2D4,
	pawnMaxHP_offset = 0x2D0,
	pawnMaxMP2_offset = 0x2E0,
	pawnMaxMP_offset = 0x2D8,
	pawnMount_offset = 0xC4,
	pawnName_offset = 0x290,
	pawnPetPtr_offset = 0x280,
	pawnRace_offset = 0x310,
	pawnTargetPtr_offset = 0x274,
	pawnType_offset = 0x18,
	pawnX_offset = 0x28,
	pawnY_offset = 0x2C,
	pawnZ_offset = 0x30,
	ping_offset = 0x7A8,
	qualityBaseOffset = 0x40,
	qualityTierOffset = 0x16,
	realItemIdOffset = 0x98,
	rentBagBase = 0x9DDA44,
	requiredLevelOffset = 0x58,
	skillAoEFlag_offset = 0xA4,
	skillAsLevel_offset = 0x18,
	skillAttackFlag_offset = 0xB4,
	skillBuffFlag_offset = 0xEC,
	skillCastTime_offset = 0xF4,
	skillClass_offset = 0x304,
	skillCooldown_offset = 0xE8,
	skillEffectStart_offset = 0x188,
	skillLevel_offset = 0xC,
	skillMaxLevel_offset = 0xF4,
	skillPassiveFlag_offset = 0x94,
	skillPercentMana_offset = 0xCC,
	skillPowerTypeUsed_offset = 0xC0,
	skillPower_offset = 0xC4,
	skillRangeAoE_offset = 0xA0,
	skillRange_offset = 0x9C,
	skillRequiredEffectFlag_offset = 0xD0,
	skillRequiredEffect_offset = 0xD4,
	skillRequiredEffectsStart_offset = 0x190,
	skillSelfBuffFlag_offset = 0xE0,
	skillTPToLevel_offset = 0x8,
	skillTargetType_offset = 0x98,
	skillTypeFlag1_offset = 0xF0,
	skillTypeFlag2_offset = 0x2FE,
	skillTypeFlag3_offset = 0x2FF,
	skillTypeFlag4_offset = 0x314,
	skillTypeFlag5_offset = 0x315,
	skillTypeFlag6_offset = 0xBA,
	skillTypeFlag7_offset = 0x300,
	skillTypeFlag8_offset = 0xE4,
	skillTypeFlag9_offset = 0x274,
	skillsTableBase = 0xA1E6E0,
	skillsTableTabEndAddress_offset = 0x8,
	skillsTableTabStartAddress_offset = 0x4,
	staticEquipBase = 0x9C916C,
	staticInventory = 0x9D61B8,
	staticTablePtr = 0xA1E9D8,
	staticTableSize = 0xA1E9DC,
	staticbase_char = 0x9C77FC,
	staticbase_macro = 0xA1D32C,
	staticpattern_char = 0x5E32F7,
	staticpattern_macro = 0x7576E5,
	tableDataStartPtrOffset = 0x1C,
	tableStartPtrOffset = 0x124,
	tablesBase = 0x9EA21C,
	tablesBaseOffset = 0x28,
	typeOffset = 0x78,
	valueOffset = 0x34,
}

That would be what I have

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 6:22 pm
by nokirk
Not actually 4.0.1 related but a small suggestion to improve skills.lua:

For rogues it doesn't make much sense to cast 'Low Blow' unless the target has the debuff from 'Shadowstab' and it doesn't make sense to cast 'Wound Attack' unless it has both debuffs. So, for 'Low Blow' that would be

Code: Select all

<skill name="ROGUE_LOW_BLOW" id="490323" energy="30" range="50" type="damage" target="enemy" reqbuffname="620313" reqbufftarget="target"/>
and for 'Wound Attack'

Code: Select all

<skill name="ROGUE_WOUND_ATTACK" id="490313" energy="35" range="50" cooldown="6" type="damage" target="enemy" reqbuffname="620314" reqbufftarget="target" />
.
Tried it with

Code: Select all

reqbuffname="620313,620314"
which would be even nicer for 'Wound Attack' but that doesn't seem to work. This way it's also ok, because target only gets the second debuff in case it aleady has the first one, so 'Wound Attack' is only triggered if target has both. Maybe this could be included, it works as far as I tested it. TY

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 8:58 pm
by lisa
toxicytears wrote: That would be what I have
Looks like you copy pasted and did it twice, you repeat most of the addresses again. From the looks you are just trying to adding in a chat address and a few offsets.
Half way down you have this

Code: Select all

  chatbase_address = 0xA943AC,
}
   actionBarPtr = 0xA1BAFC,
just delete everything after the }

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 11:14 pm
by rock5
C3PO wrote:
rock5 wrote:You can download it or just change the address to 0xA1E730.

is this still the correct value? it's not working ...
Yes it is correct.

Re: Official new patch topic 4.0.1

Posted: Fri Jul 29, 2011 11:30 pm
by rock5
nokirk wrote:Not actually 4.0.1 related but a small suggestion to improve skills.lua:

For rogues it doesn't make much sense to cast 'Low Blow' unless the target has the debuff from 'Shadowstab' and it doesn't make sense to cast 'Wound Attack' unless it has both debuffs. So, for 'Low Blow' that would be

Code: Select all

<skill name="ROGUE_LOW_BLOW" id="490323" energy="30" range="50" type="damage" target="enemy" reqbuffname="620313" reqbufftarget="target"/>
and for 'Wound Attack'

Code: Select all

<skill name="ROGUE_WOUND_ATTACK" id="490313" energy="35" range="50" cooldown="6" type="damage" target="enemy" reqbuffname="620314" reqbufftarget="target" />
.
Tried it with

Code: Select all

reqbuffname="620313,620314"
which would be even nicer for 'Wound Attack' but that doesn't seem to work. This way it's also ok, because target only gets the second debuff in case it aleady has the first one, so 'Wound Attack' is only triggered if target has both. Maybe this could be included, it works as far as I tested it. TY
There's a couple of problems with this.

The skills can be cast without those debuffs so what happens if someone wants to not use Shadowstab? The other skills wont work.

I currently do use similar settings in my profile. What I see though, is it casts Shadowstab twice before using Low Blow because of the delay detecting the debuff. If I want them to cast one after the other I have to not check for debuffs.

That's why I didn't include them. People can still add the options in their profile if they want to.

Re: Official new patch topic 4.0.1

Posted: Sat Jul 30, 2011 2:45 am
by SpiralV
lisa wrote:
SpiralV wrote:I wrote a romscript-version not very long ago
and yes there are 2 globals ^^
edit: name is local
Ahh I had been wondering why you weren't getting issues with the bot functions with same name lol
I've already mentioned the code is also well suited for some pawns?^^

Re: Official new patch topic 4.0.1

Posted: Sat Jul 30, 2011 3:57 am
by C3PO
rock5 wrote:
C3PO wrote:
rock5 wrote:You can download it or just change the address to 0xA1E730.

is this still the correct value? it's not working ...
Yes it is correct.

ok it's working if you use only one bot. After a second bot it isn't working anymore. has someone a solution?

AND there is a problem in the userfunction, see output

Code: Select all

Crafting 35 Zinksand
100% [******************************]
Crafting 11 Flammenstaubsand
100% [******************************]
Crafting 1 Flammenstaubsand
Crafting 89 Zinn-Sand
100% [******************************]
Crafting 1 Zinn-Sand
Crafting 11 Zyanidsand
100% [******************************]
Crafting 1 Zyanidsand
Crafting 78 Eisen-Sand
100% [******************************]
Crafting 1 Eisen-Sand