is there a way to set the range or something so i'm not looting corpses on the other side of a zone? i'm sure it's probably posted somewhere but i can't seem to find it lol..thanks
whats the loot.ini ment to be called and were to put it i cant seem to get it to work
Sub Main
| ***START CONFIGURATION***
| The "CampRadius" variable sets the max distance corpses will be looted in your camp (Number)
/declare CampRadius int outer 200
| The "ReturnHome" variable determines if you will return home after looting (TRUE/FALSE)
/declare ReturnHome bool outer TRUE
| The "IgnoreLoS" variable determines if Line of Sight will be ignored when locating a corpse to loot (TRUE/FALSE)
/declare IgnoreLoS bool outer FALSE
| ***END CONFIGURATION***
/declare ReturnX float outer ${Me.X}
/declare ReturnY float outer ${Me.Y}
/declare ReturnH float outer ${Me.Heading.DegreesCCW}
/declare TempID int outer 0
/squelch /alert clear 7
/call PluginCheck MQ2AdvLoot
/if (${Macro.Return.Equal[FAILED]}) {
/echo MQ2AdvLoot is required to run this macro, now ending.
/endmacro
}
/squelch /target clear
/echo Loot macro has been loaded.
:MainLoop
/if (${SpawnCount[npccorpse radius 15 noalert 7]} > 0) {
/varset TempID ${Spawn[npccorpse radius 15 noalert 7].ID}
} else {
/if (${SpawnCount[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7]} > 0) {
/varset TempID ${Spawn[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7].ID}
}
}
/if (${TempID} != 0) {
/if (${IgnoreLoS} && !${Spawn[${TempID}].LineOfSight}) {
/squelch /alert add 7 id ${TempID}
/varset TempID 0
} else {
/if (${Spawn[${TempID}].Distance} > 15) /call MoveToSpawn ${TempID}
/if (${Macro.Return.NotEqual[FAILED]}) /call LootCorpse ${TempID}
/if (${Spawn[${TempID}]}) /squelch /alert add 7 id ${TempID}
/squelch /target clear
/varset TempID 0
/if (${ReturnHome} && ${SpawnCount[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7]} == 0) /call ReturnHome
}
}
/goto :MainLoop
/return
Sub PluginCheck(string PluginName)
/if (!${Plugin[${PluginName}].Name.Length}) {
/echo ${PluginName} was not found, attempting to load it.
/squelch /plugin ${PluginName}
/if (!${Plugin[${PluginName}].Name.Length}) {
/echo ${PluginName} could not be loaded.
/return FAILED
}
}
/return
Sub MoveToSpawn(int MoveToSpawnID)
/declare StuckTimer timer local 5s
/declare DistanceBefore float local ${Spawn[${MoveToSpawnID}].Distance}
/declare DistanceCurrent float local
:MoveTo
/varset DistanceCurrent ${Spawn[${MoveToSpawnID}].Distance}
/if (!${StuckTimer}) {
/keypress back
/return FAILED
}
/if (!${Me.Stunned} && !${Debuff.Rooted} || ${DistanceCurrent} < (${Math.Calc[${DistanceBefore} + 3]}) ) /varset StuckTimer 5s
/if (${Spawn[${MoveToSpawnID}].ID} && ${Spawn[${MoveToSpawnID}].Distance} > 15) {
/squelch /face fast nolook id ${MoveToSpawnID}
/keypress forward hold
/goto :MoveTo
}
/keypress back
/return
Sub LootCorpse(int LootCorpseID)
/call Target ${LootCorpseID}
/if (${Macro.Return.Equal[FAILED]}) /return FAILED
/squelch /advloot
/delay 5s ${Window[LootWnd].Open}
:Looting
/delay 1
/if (${AdvLoot.Active}) /goto :Looting
/delay 5
/if (${Window[LootWnd].Open}) /nomodkey /notify LootWnd DoneButton leftmouseup
/return
Sub Target(int TargetID)
/squelch /target clear
/squelch /target id ${TargetID}
/delay 5s ${Target.ID}
/if (!${Target.ID} || (${Target.ID} != ${TargetID})) /return FAILED
/return
Sub ReturnHome
:ReturnHome
/if (${Math.Distance[${ReturnY}, ${ReturnX}]} > 10) {
/squelch /face fast loc ${ReturnY},${ReturnX} nolook
/keypress forward hold
/goto :ReturnHome
}
/squelch /face fast heading ${ReturnH} nolook
/keypress back
/return
Sub Main
| ***START CONFIGURATION***
| The "CampRadius" variable sets the max distance corpses will be looted in your camp (Number)
/declare CampRadius int outer 2000
| The "ReturnHome" variable determines if you will return home after looting (TRUE/FALSE)
/declare ReturnHome bool outer TRUE
| The "IgnoreLoS" variable determines if Line of Sight will be ignored when locating a corpse to loot (TRUE/FALSE)
/declare IgnoreLoS bool outer FALSE
| ***END CONFIGURATION***
/declare ReturnX float outer ${Me.X}
/declare ReturnY float outer ${Me.Y}
/declare ReturnZ float outer ${Me.Z}
/declare ReturnH float outer ${Me.Heading.DegreesCCW}
/declare TempID int outer 0
/squelch /alert clear 7
/call PluginCheck MQ2AdvLoot
/if (${Macro.Return.Equal[FAILED]}) {
/echo MQ2AdvLoot is required to run this macro, now ending.
/endmacro
}
/squelch /target clear
/echo Loot macro has been loaded.
:MainLoop
/if (${SpawnCount[npccorpse radius 15 noalert 7]} > 0) {
/varset TempID ${Spawn[npccorpse radius 15 noalert 7].ID}
} else {
/if (${SpawnCount[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7]} > 0) {
/varset TempID ${Spawn[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7].ID}
}
}
/if (${TempID} != 0) {
/if (${IgnoreLoS} && !${Spawn[${TempID}].LineOfSight}) {
/squelch /alert add 7 id ${TempID}
/varset TempID 0
} else {
/if (${Spawn[${TempID}].Distance} > 15) /call WarpToSpawn ${TempID}
/if (${Macro.Return.NotEqual[FAILED]}) /call LootCorpse ${TempID}
/if (${Spawn[${TempID}].ID}) /squelch /alert add 7 id ${TempID}
/squelch /target clear
/varset TempID 0
/if (${ReturnHome} && ${SpawnCount[npccorpse radius ${CampRadius} loc ${ReturnX} ${ReturnY} noalert 7]} == 0) /call ReturnHome
}
}
/goto :MainLoop
/return
Sub PluginCheck(string PluginName)
/if (!${Plugin[${PluginName}].Name.Length}) {
/echo ${PluginName} was not found, attempting to load it.
/squelch /plugin ${PluginName}
/if (!${Plugin[${PluginName}].Name.Length}) {
/echo ${PluginName} could not be loaded.
/return FAILED
}
}
/return
Sub WarpToSpawn(int WarpToSpawnID)
/declare DistanceBefore float local ${Spawn[${WarpToSpawnID}].Distance}
/declare DistanceCurrent float local
:WarpTo
/varset DistanceCurrent ${Spawn[${WarpToSpawnID}].Distance}
/if (${Spawn[${WarpToSpawnID}].ID} && ${Spawn[${WarpToSpawnID}].Distance} > 15) {
/squelch /face fast nolook id ${WarpToSpawnID}
/warp loc ${Spawn[${WarpToSpawnID}].Y} ${Spawn[${WarpToSpawnID}].X} ${Spawn[${WarpToSpawnID}].Z}
/goto :WarpTo
}
/keypress back
/return
Sub LootCorpse(int LootCorpseID)
/call Target ${LootCorpseID}
/if (${Macro.Return.Equal[FAILED]}) /return FAILED
/squelch /advloot
/delay 2s ${Window[LootWnd].Open}
:Looting
/delay 1
/if (${AdvLoot.Active}) /goto :Looting
/delay 2
/if (${Window[LootWnd].Open}) /nomodkey /notify LootWnd DoneButton leftmouseup
/return
Sub Target(int TargetID)
/squelch /target clear
/squelch /target id ${TargetID}
/delay 5s ${Target.ID}
/if (!${Target.ID} || (${Target.ID} != ${TargetID})) /return FAILED
/return
Sub ReturnHome
:ReturnHome
/if (${Math.Distance[${ReturnY}, ${ReturnX}]} > 10) {
/squelch /face fast loc ${ReturnY},${ReturnX} nolook
/warp loc ${ReturnY} ${ReturnX} ${ReturnZ}
/goto :ReturnHome
}
/squelch /face fast heading ${ReturnH} nolook
/keypress back
/return
Sub WarpToSpawn(int WarpToSpawnID)
/declare DistanceBefore float local ${Spawn[${WarpToSpawnID}].Distance}
/declare DistanceCurrent float local
:WarpTo
/varset DistanceCurrent ${Spawn[${WarpToSpawnID}].Distance}
/if (${Spawn[${WarpToSpawnID}].ID} && ${Spawn[${WarpToSpawnID}].Distance} > 15[COLOR=Yellow] && ${Spawn[${WarpToSpawnID}].Distance} < 150 && !${Navigation.Active}[/COLOR]) {
[COLOR=Yellow] /nav loc ${Spawn[${WarpToSpawnID}].X} ${Spawn[${WarpToSpawnID}].Y} ${Spawn[${WarpToSpawnID}].Z}[/COLOR]
/goto :WarpTo
}
/keypress back
/return
The dll in the first post has the ability to do that, if you set an item to be kept, it will be kept regardless of any other setting.