Refull -> scritpt
Datum: 22/11/2014 23:49:41
Staženo: 384x
Popis:
Autor neznámej
Příkazy:
- ,exec tttest
- ,exec reful
Kód:
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix;
using Phoenix.WorldData;
namespace Phoenix.Scripts
{
public class Refuling
{
[Executable]
public void tttest()
{
UOItem test = new UOItem(0x4003223F);
UO.MoveItem(test, 1, World.Player.Backpack);
}
[Executable]
public void Reful()
{
UO.PrintObject(World.Player.Serial, "Zamer container s potiony");
UOItem potionsContainer = World.GetItem(UIManager.TargetObject());;
UO.PrintObject(World.Player.Serial, "Zamer container s reagenty");
UOItem reagentsContainer = World.GetItem(UIManager.TargetObject());
UO.PrintObject(World.Player.Serial, "Zamer container se svitky");
UOItem scrollsContainer = World.GetItem(UIManager.TargetObject());
UO.PrintObject(World.Player.Serial, "Zamer container s ostatnimy vecmi");
UOItem othersContainer = World.GetItem(UIManager.TargetObject());
reagents(reagentsContainer);
potions(potionsContainer);
scrolls(scrollsContainer);
UO.PrintObject(World.Player.Serial, "Refulled !");
}
public void reagents(UOItem container)
{
UOItem reagent;
int count = 8;
string chyby = "";
ushort[] itemToPickGraphic = new ushort[15];
itemToPickGraphic[0] = 0x0F8D; //spider silk
itemToPickGraphic[1] = 0x0F7B; //Blood Moss
itemToPickGraphic[2] = 0x0F84; //garlic
itemToPickGraphic[3] = 0x0F7A; //blackpearls
itemToPickGraphic[4] = 0x0F8C; //sulforous ash
itemToPickGraphic[5] = 0x0F85; //;Ginseng
itemToPickGraphic[6] = 0x0F86; //;mandrake root
itemToPickGraphic[7] = 0x0F88; //;Nightshade
itemToPickGraphic[8] = 0x0F7C; //;BloodSpawn
itemToPickGraphic[9] = 0x0F7F; //;Brimstone
itemToPickGraphic[10] = 0x0F7D; //;Blood Vial
itemToPickGraphic[11] = 0x0F83; //;Execution's Cap
itemToPickGraphic[12] = 0x0F79; //;Blackmoor
itemToPickGraphic[13] = 0x0F89; //;Obsidian
itemToPickGraphic[14] = 0x0F7E; //;Bone
if (!container.Opened)
{
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial))
{
container.Use();
if (!ew.Wait(60000))
{
UO.PrintWarning("Item open timeout");
return;
}
}
}
if (Config.Profile.ProfileName == "Necromancer")
{
count = 15;
}
for (int i = 0; i < 15; i++)
{
while ((World.Player.Backpack.AllItems.Count(itemToPickGraphic[i], 0x0000)) > 0)
{
reagent = World.Player.Backpack.AllItems.FindType(itemToPickGraphic[i], 0x0000);
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(reagent))
{
reagent.Move(reagent.Amount, container.Serial);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get reagents from backpack.");
return;
}
}
}
}
for (int i = 0; i < count; i++)
{
if ((container.AllItems.Count(itemToPickGraphic[i], 0x0000)) > 0)
{
reagent = container.AllItems.FindType(itemToPickGraphic[i], 0x0000);
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(reagent))
{
reagent.Move(200, World.Player.Backpack);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get reagents from source bag.");
return;
}
}
}
else
{
chyby += itemToPickGraphic[i] + ", ";
}
}
UO.PrintWarning(chyby);
}
public void scrolls(UOItem container)
{
UOItem scroll;
string chyby = "";
ushort[] svitkyID = new ushort[3];
svitkyID[0] = 0x1F5F ; //KVF
svitkyID[1] = 0x1F50 ; //IJS
svitkyID[2] = 0x1F42 ; //Porty
ushort[] svitkyPocet = new ushort[3];
svitkyPocet[0] = 15 ;//KVF
svitkyPocet[1] = 7 ;//IJS
svitkyPocet[2] = 3 ;//Porty
if (!container.Opened)
{
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial))
{
container.Use();
if (!ew.Wait(60000))
{
UO.PrintWarning("Item open timeout");
return;
}
}
}
for (int i = 0; i < 3; i++)
{
while ((World.Player.Backpack.AllItems.Count(svitkyID[i], 0x0000)) > 0)
{
scroll = World.Player.Backpack.AllItems.FindType(svitkyID[i], 0x0000);
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(scroll))
{
scroll.Move(scroll.Amount, container.Serial);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get scrolls from backpack.");
return;
}
}
}
}
for (int i = 0; i < 3; i++)
{
if ((container.AllItems.Count(svitkyID[i], 0x0000)) > 0)
{
scroll = container.AllItems.FindType(svitkyID[i], 0x0000);
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(scroll))
{
scroll.Move(svitkyPocet[i], World.Player.Backpack);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get scrolls from source bag.");
return;
}
}
}
else
{
chyby += svitkyID[i] + ", ";
}
}
UO.PrintWarning(chyby);
}
public void potions(UOItem container)
{
UOItem kad;
int potionsNalevam;
ushort kadX;
ushort kadY;
string chyby = "";
UOItem lahvicky;
ushort[] kadBarva = new ushort[5];
kadBarva[0] = 0x0003 ;//TMR
kadBarva[1] = 0x08A7 ;//GH
kadBarva[2] = 0x0481 ;//GS
kadBarva[3] = 0x0842 ;//GC
kadBarva[4] = 0x014D ;//TR
ushort[] potionID = new ushort[5];
potionID[0] = 0x0F09 ;//TMR
potionID[1] = 0x0F0C ;//GH
potionID[2] = 0x0F09 ;//GS
potionID[3] = 0x0F07 ;//GC
potionID[4] = 0x0F0B ;//TR
ushort[] potionColor = new ushort[5];
potionColor[0] = 0x0003 ;//TMR
potionColor[1] = 0x0000 ;//GH
potionColor[2] = 0x0000 ;//GS
potionColor[3] = 0x0000 ;//GC
potionColor[4] = 0x0000 ;//TR
ushort[] potionPocet = new ushort[5];
potionPocet[0] = 25 ;//TMR
potionPocet[1] = 5 ;//GH
potionPocet[2] = 6 ;//GS
potionPocet[3] = 3 ;//GC
potionPocet[4] = 6 ;//TR
if (!container.Opened)
{
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(container.Serial))
{
container.Use();
if (!ew.Wait(60000))
{
UO.PrintWarning("Item open timeout");
return;
}
}
}
lahvicky = container.AllItems.FindType(0x0F0E, 0x0000);
for (int i = 0; i < 5; i++)
{
if ((container.AllItems.Count(0x1843, kadBarva[i])) > 0)
{
kad = container.AllItems.FindType(0x1843, kadBarva[i]);
kadX = kad.X;
kadY = kad.Y;
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(kad))
{
kad.Move(1, World.Player.Backpack);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get tube from source bag.");
return;
}
}
while (World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i]) < potionPocet[i])
{
potionsNalevam = World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i]);
UO.WaitTargetObject(lahvicky.Serial);
UO.UseObject(kad.Serial);
while (potionsNalevam == World.Player.Backpack.AllItems.Count(potionID[i], potionColor[i]))
{
}
}
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(kad))
{
kad.Move(1, container, kadX, kadY);
if (!ew.Wait(5000))
{
ScriptErrorException.Throw("Unable to get tube to source bag.");
return;
}
}
}
else
{
chyby += kadBarva[i] + ", ";
}
}
}
}
}

