Redbook-Tibia
Bienvenido RedBook-Tibia aqui encontraras un Poco de todo relacionado con open tibia server 100% hispanos
Mejores posteadores
aremst
 
ricker
 
andrea
 
Bizkit
 
Xanadu123
 
MummyCR
 

Palabras claves

Visits
Flag Counter
Donar


Como Hacer Un Script 100% Afk XenoBot

Ver el tema anterior Ver el tema siguiente Ir abajo

Como Hacer Un Script 100% Afk XenoBot

Mensaje por ricker el Sáb Jul 26, 2014 4:52 am

Me di cuenta de que alguien había hecho un tutorial de texto sobre cómo crear un script AFK 100%. Decidí dar un paso más allá con un video tutorial. Hay una serie de elementos para hacer un guión, y esto casi cubre los conceptos básicos (asegurándose de que usted deposita, reabastecimiento, y cazar correctamente de acuerdo con la configuración de la escritura). 





En este video usted debe aprender a: 
Configuración de un "selector automático" para donde para empezar a ejecutar la secuencia de comandos 
Elija si debe usar un nodo o de pie waypoint, y cómo hacer frente a los PNJ en PVP 
Añadir waypoints sensatez para evitar problemas - Esto requiere un ojo kean, y yo no demuestro increíblemente bien 
Modificar un script lua para adaptarse a las necesidades de los engendros que estés secuencias de comandos para 
Modificar un XBST en un editor de texto para editar objetos de recompensa y ver puntos de interés 
En conjunto, generan un guión completamente AFK con algunos controles de estabilidad 
Encaja con puertas, depósitos, mochilas, y el suelo que cambian los puntos de entrada de la freza 
Configure las variables específicas de desove 
Generar y utilizar listas de botín utilizando un generador de lista de loot 
Utilice la Walker.ConditionalGoto sin romperlo 
Utilice Self.UseItemFromGround manipular azulejos a 1 rango cuadrado de tu personaje 


El enlace a un generador de lista botín está aquí: http://neobot-scripts.com/xenobot_lootlist_creator.php. Esto generará una lista botín formato XML, por lo que no tiene que hacer lo que hice (que era ir por la lista de depósitos y poner los artículos en el archivo XBST), puede simplemente copiar el XML y reemplace el código XML existente en su XBST con esto. 

El enlace con el generador de listas de depósito está aquí: http://neobot-scripts.com/SelfDepositItems_creator.php. Esto es lo que he usado para generar una lista de los objetos de recompensa. 

Créditos a @ biaggio12 para inspirarme (no en el mal sentido) para hacer este video. Créditos también a Darkstar para mantener el bot, Royaliti por ser un amigo increíble y poner con mis decisiones aleatorias para ejecutar una gran variedad de proyectos a la vez (y completar muy pocos de ellos, por cierto), y para todo el mundo yo juego en Olympa por ser un gran equipo. @ Rydan por su increíble trabajo con la lista botín basado en PHP y lista generadores de depósito, gracias enormes, estas dos herramientas sálvame hora de abusar TibiaWiki y listas de ID de artículo. 



El archivo lua se parece a esto (copiarlo en el bloc de notas, guardar como, cambiar el "Tipo de documento" para "todos los archivos", y guardarlo como algo así como "MyScript.lua" -.. Asegúrese de que se termina con lua y no txt o el bot no lo reconocerá.

Código:
----- REFILL SETTINGS ------[size=12][/size]
local LeaveMana = 100 --- How many mana potions until you leave the hunt?[size=12][/size]
local BuyMana = 300 --- How many mana potions you begin the hunt with?[size=12][/size]
[size=12][/size]
local LeaveHealth = 5 --- How many health potions until you leave the hunt?[size=12][/size]
local BuyHealth = 10 --- How many health potions you begin the hunt with?[size=12][/size]
[size=12][/size]
local AmmoName = "Royal Spear"   --- What ammunition are you using?[size=12][/size]
local LeaveAmmo = 10 --- How much ammunition until you leave hunt?[size=12][/size]
local BuyAmmo = 45 --- How much ammunition do you begin the hunt with?[size=12][/size]
local AmmoCost = 15 --- What is the cost of your selected ammunition?[size=12][/size]
[size=12][/size]
local LeaveCap = 100 --- Leaves spawn when character reaches this cap.[size=12][/size]
local HideEquipment = true --- Do you want to minimize your equipment?[size=12][/size]
local LogoutStamina = false --- Do you want to logout at 16 hours? (Inside the depot)[size=12][/size]
[size=12][/size]
-- Item ID's, if you don't want to use SHP and SMP, change these:[size=12][/size]
[size=12][/size]
local ManaName = "Strong Mana Potion" [size=12][/size]
local ManaCost = 80[size=12][/size]
local HealthName = "Strong Health Potion" [size=12][/size]
local HealthCost = 100[size=12][/size]
[size=12][/size]
-- Backpack Configuration:[size=12][/size]
[size=12][/size]
local LootBP = "Fur Backpack"[size=12][/size]
local GoldBP = "Jewelled Backpack"[size=12][/size]
[size=12][/size]
-- Spawn Options[size=12][/size]
[size=12][/size]
local HuntMiddle = false[size=12][/size]
[size=12][/size]
-- Here I'm gonna get the item ids, leave this as it is.[size=12][/size]
[size=12][/size]
local ManaID = Item.GetID(ManaName)[size=12][/size]
local HealthID = Item.GetID(HealthName)[size=12][/size]
local AmmoID = Item.GetID(AmmoName)[size=12][/size]
[size=12][/size]
-- These are the flask IDs, not worth changing since it will sell all flasks regardless of type.[size=12][/size]
local FlaskID = 283[size=12][/size]
local FlaskIDA = 284[size=12][/size]
local FlaskIDB = 285[size=12][/size]
[size=12][/size]
-- local GoldBP = 5801 --- Item ID of your gold backpack.[size=12][/size]
[size=12][/size]
registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")[size=12][/size]
[size=12][/size]
function onWalkerSelectLabel(labelName)[size=12][/size]
if (labelName == "Checker") then[size=12][/size]
-- Check Supplies, Hunt or Leave[size=12][/size]
Walker.ConditionalGoto((Self.ItemCount(ManaID) <= LeaveMana) or (Self.Cap() < LeaveCap) or (Self.ItemCount(HealthID) <= LeaveHealth) or (Self.ItemCount(AmmoID) <= LeaveAmmo), "Leave", "BeginHunt")[size=12][/size]
[size=12][/size]
elseif (labelName == "Start") then[size=12][/size]
Walker.ConditionalGoto((Self.Position().z == 11), "BeginHunt", "ReachDepot")[size=12][/size]
[size=12][/size]
elseif (labelName == "DepositGold") then[size=12][/size]
-- Deposit Gold, check balance.[size=12][/size]
Walker.Stop()[size=12][/size]
Self.SayToNpc({"hi", "deposit all", "yes"}, 100)[size=12][/size]
[size=12][/size]
local withdrawManas = math.max(BuyMana - Self.ItemCount(ManaID), 0)*ManaCost[size=12][/size]
local withdrawHealths = math.max(BuyHealth - Self.ItemCount(HealthID), 0)*HealthCost[size=12][/size]
local withdrawAmmo = math.max(BuyAmmo - Self.ItemCount(AmmoID), 0)*AmmoCost[size=12][/size]
local total = math.abs(withdrawManas + withdrawHealths + withdrawAmmo)[size=12][/size]
[size=12][/size]
if total >= 1 then[size=12][/size]
Self.SayToNpc({"withdraw " .. total, "yes", "balance"}, 100)[size=12][/size]
end[size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "DepositItems") then[size=12][/size]
-- Deposit Items[size=12][/size]
Walker.Stop()[size=12][/size]
Self.ReachDepot(5)[size=12][/size]
Self.DepositItems({5882, 1}, {3028, 1}, {3029, 1}, {5948, 1}, {11457, 1}, {5920, 1}, {5877, 1}, {3061, 1})[size=12][/size]
Self.DepositItems({3386, 0}, {3392, 0}, {7402, 0}, {7399, 0}, {3428, 0}, {3416, 0}, {3280, 0}, {3071, 0}, {7430, 0}, {3322, 0})[size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "BuyManas") then[size=12][/size]
-- Buy Mana Potions[size=12][/size]
Walker.Stop()[size=12][/size]
if (Self.ItemCount(ManaID) < BuyMana) or (Self.ItemCount(HealthID) < BuyHealth) then[size=12][/size]
print("Buying manas or healths")[size=12][/size]
Self.SayToNpc({"hi", "flasks"}, 100)[size=12][/size]
while (Self.ItemCount(FlaskID) >= 1) or (Self.ItemCount(FlaskIDA) >= 1) or (Self.ItemCount(FlaskIDB) >= 1) do[size=12][/size]
Self.SayToNpc("yes", 100)[size=12][/size]
end[size=12][/size]
wait(2000)[size=12][/size]
Self.SayToNpc("trade", 100)[size=12][/size]
wait(2000)[size=12][/size]
while (Self.ItemCount(ManaID) < BuyMana) do[size=12][/size]
Self.ShopBuyItemsUpTo(ManaID, BuyMana)[size=12][/size]
wait(500,800)[size=12][/size]
end[size=12][/size]
if (Self.ItemCount(HealthID) < BuyHealth) then[size=12][/size]
Self.ShopBuyItemsUpTo(HealthID, BuyHealth)[size=12][/size]
wait(500)[size=12][/size]
end[size=12][/size]
wait(200, 500)[size=12][/size]
end[size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "CheckGoneUp") then[size=12][/size]
-- Check we're on floor 3[size=12][/size]
Walker.ConditionalGoto((Self.Position().z == 7), "OpenSouth", "Leave")[size=12][/size]
[size=12][/size]
elseif (labelName == "CheckGoneDown") then[size=12][/size]
-- Check we're on floor 7[size=12][/size]
Walker.ConditionalGoto((Self.Position().z == 11), "AmDown", "EnterResp")[size=12][/size]
[size=12][/size]
elseif (labelName == "BuySpears") then[size=12][/size]
--------------------------------- TODO -------------------------[size=12][/size]
Walker.Stop()[size=12][/size]
Self.SayToNpc({"hi", "trade"}, 100)[size=12][/size]
-- Buy spears, make sure Self.ItemCount returns items in hands.[size=12][/size]
while (Self.ItemCount(AmmoID) < BuyAmmo) do[size=12][/size]
Self.ShopBuyItemsUpTo(AmmoID, BuyAmmo)[size=12][/size]
wait(500,800)[size=12][/size]
end[size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "ResetBps") then[size=12][/size]
-- Reset Backpacks[size=12][/size]
Walker.Stop()[size=12][/size]
Self.CloseContainers()[size=12][/size]
Self.OpenMainBackpack(true):OpenChildren({LootBP, true}, {GoldBP, true})[size=12][/size]
Container.GetFirst():Minimize()[size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "OpenNorth") then[size=12][/size]
Walker.Stop()[size=12][/size]
Self.UseItemFromGround(Self.Position().x, Self.Position().y - 1, Self.Position().z) [size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "OpenSouth") then[size=12][/size]
Walker.Stop()[size=12][/size]
Self.UseItemFromGround(Self.Position().x, Self.Position().y + 1, Self.Position().z) [size=12][/size]
Walker.Start()[size=12][/size]
[size=12][/size]
elseif (labelName == "MiddleSpawn") then[size=12][/size]
Walker.Stop()[size=12][/size]
Walker.ConditionalGoto(HuntMiddle, "MiddleGo", "MiddleDone")[size=12][/size]
Walker.Start()[size=12][/size]
end[size=12][/size]
end[size=12][/size]
[size=12][/size]
Self.ReachDepot = function (tries)[size=12][/size]
local tries = tries or 3[size=12][/size]
Walker.Stop()[size=12][/size]
local DepotIDs = {3497, 3498, 3499, 3500}[size=12][/size]
local DepotPos = {}[size=12][/size]
for i = 1, #DepotIDs do[size=12][/size]
local dps = Map.GetUseItems(DepotIDs[i])[size=12][/size]
for j = 1, #dps do[size=12][/size]
table.insert(DepotPos, dps[j])[size=12][/size]
end[size=12][/size]
end[size=12][/size]
local function gotoDepot()[size=12][/size]
local pos = Self.Position()[size=12][/size]
print("Depots found: " .. tostring(#DepotPos))[size=12][/size]
for i = 1, #DepotPos do[size=12][/size]
location = DepotPos[i][size=12][/size]
Self.UseItemFromGround(location.x, location.y, location.z)[size=12][/size]
wait(1000, 2000)[size=12][/size]
if Self.DistanceFromPosition(pos.x, pos.y, pos.z) >= 1 then[size=12][/size]
wait(5000, 6000)[size=12][/size]
if Self.DistanceFromPosition(location.x, location.y, location.z) == 1 then[size=12][/size]
Walker.Start()[size=12][/size]
return true[size=12][/size]
end[size=12][/size]
else[size=12][/size]
print("Something is blocking the path. Trying next depot.")[size=12][/size]
end[size=12][/size]
end[size=12][/size]
return false[size=12][/size]
end[size=12][/size]
[size=12][/size]
repeat[size=12][/size]
reachedDP = gotoDepot()[size=12][/size]
if reachedDP then[size=12][/size]
return true[size=12][/size]
end[size=12][/size]
tries = tries - 1[size=12][/size]
sleep(100)[size=12][/size]
print("Attempt to reach depot was unsuccessfull. " .. tries .. " tries left.")[size=12][/size]
until tries <= 0[size=12][/size]
[size=12][/size]
return false[size=12][/size]
end[size=12][/size]
[size=12][/size]
Map.GetUseItems = function (id)[size=12][/size]
if type(id) == "string" then[size=12][/size]
id = Item.GetID(id)[size=12][/size]
end[size=12][/size]
local pos = Self.Position()[size=12][/size]
local store = {}[size=12][/size]
for x = -7, 7 do[size=12][/size]
for y = -5, 5 do[size=12][/size]
if Map.GetTopUseItem(pos.x + x, pos.y + y, pos.z).id == id then[size=12][/size]
itemPos = {x = pos.x + x, y = pos.y + y, z = pos.z}[size=12][/size]
table.insert(store, itemPos)[size=12][/size]
end[size=12][/size]
end[size=12][/size]
end[size=12][/size]
return store[size=12][/size]
end
avatar
ricker
Aportador
Aportador

Mensajes : 18
Puntos : 364
Reputación : 306
Fecha de inscripción : 13/07/2014
Edad : 27
Localización : Monterrey

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.