Massmove (Yoko)
Datum: 22/11/2014 23:59:31
Staženo: 686x
Popis:
Massmove stejný jak v yoku .....
Příkazy:
- ,massmove
- ,massmove "int pause"
- ,massmove "int pause" " ushort color"
- ,massmove "int pause" " int pocet" " ushort color"
- ,massmove "int pause" " bool stejnabarva"
- ,massmove "int pause" " int pocet" " bool stejnabarva"
Kód:
using System;
using System.Collections.Generic;
using System.Text;
using System.Timers;
using Phoenix;
using Phoenix.WorldData;
using Phoenix.Communication;
namespace Phoenix.Scripts
{
public class Massmove
{
int x;
UOItem presunovanaVec;
UOItem zdroj;
ushort Color;
int Pause;
int MaxPocet;
int typ;
bool massmoveRunning = false;
public CallbackResult DropItem(byte[] data, CallbackResult prevResult)
{
PacketReader reader = new PacketReader(data);
byte id = reader.ReadByte();
presunovanaVec = World.GetItem(reader.ReadUInt32());
zdroj = World.GetItem(presunovanaVec.Container);
x = 0;
presunovanaVec.Changed += new ObjectChangedEventHandler(presunovanaVec_Changed);
return CallbackResult.Normal;
}
void presunovanaVec_Changed(object sender, ObjectChangedEventArgs e)
{
if ((presunovanaVec.Container == 0x00000000) && (x == 1))
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
presunovanaVec.Changed -= presunovanaVec_Changed;
}
x++;
if (presunovanaVec.Container != 0x00000000)
{
Core.UnregisterClientMessageCallback(0x07, DropItem);
presouvani(typ);
}
}
[Command("massmove")]
public void informace()
{
UO.PrintInformation(",massmove pause");
UO.PrintInformation(",massmove pause barva");
UO.PrintInformation(",massmove pause maxPocet barva");
UO.PrintInformation(",massmove pause stejnaBarva");
UO.PrintInformation(",massmove pause maxPocet stejnaBarva");
UO.PrintInformation("stejnaBarva = true/false, je jedno co pouzijete");
}
[Command("massmove")]
public void presun(int pause)
{
if (massmoveRunning == true)
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
UO.Print("Massmove vypnut");
return;
}
UO.Print("Pohni s itemem.");
Core.RegisterClientMessageCallback(0x07, new MessageCallback(DropItem));
massmoveRunning = true;
typ = 1;
Pause = pause;
}
[Command("massmove")]
public void presun(int pause, ushort color)
{
if (massmoveRunning == true)
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
UO.Print("Massmove vypnut");
return;
}
UO.Print("Pohni s itemem.");
Core.RegisterClientMessageCallback(0x07, new MessageCallback(DropItem));
massmoveRunning = true;
typ = 2;
Pause = pause;
Color = color;
}
[Command("massmove")]
public void presun(int pause, int pocet, ushort color)
{
if (massmoveRunning == true)
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
UO.Print("Massmove vypnut");
return;
}
UO.Print("Pohni s itemem.");
Core.RegisterClientMessageCallback(0x07, new MessageCallback(DropItem));
massmoveRunning = true;
typ = 3;
Pause = pause;
Color = color;
MaxPocet = pocet;
}
[Command("massmove")]
public void presun(int pause, bool stejnaBarva)
{
if (massmoveRunning == true)
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
UO.Print("Massmove vypnut");
return;
}
UO.Print("Pohni s itemem.");
Core.RegisterClientMessageCallback(0x07, new MessageCallback(DropItem));
massmoveRunning = true;
typ = 4;
Pause = pause;
}
[Command("massmove")]
public void presun(int pause, int pocet, bool stejnaBarva)
{
if (massmoveRunning == true)
{
massmoveRunning = false;
Core.UnregisterClientMessageCallback(0x07, DropItem);
UO.Print("Massmove vypnut");
return;
}
UO.Print("Pohni s itemem.");
Core.RegisterClientMessageCallback(0x07, new MessageCallback(DropItem));
massmoveRunning = true;
typ = 5;
Pause = pause;
MaxPocet = pocet;
}
public void presouvani(int id)
{
int pocitadlo;
presunovanaVec.Changed -= presunovanaVec_Changed;
switch (id)
{
case 1:
{
pocitadlo = zdroj.Items.Count(presunovanaVec.Graphic);
foreach (UOItem item in zdroj.Items)
{
if (item.Graphic == presunovanaVec.Graphic)
{
UO.Print("Zbyva " + pocitadlo + " itemu");
UO.MoveItem(item, item.Amount, presunovanaVec.Container, presunovanaVec.X, presunovanaVec.Y);
pocitadlo--;
UO.Wait(Pause);
}
}
break;
}
case 2:
{
pocitadlo = zdroj.Items.Count(presunovanaVec.Graphic, Color);
foreach (UOItem item in zdroj.Items)
{
if (item.Graphic == presunovanaVec.Graphic && item.Color == Color)
{
UO.Print("Zbyva " + pocitadlo + " itemu");
UO.MoveItem(item, item.Amount, presunovanaVec.Container, presunovanaVec.X, presunovanaVec.Y);
pocitadlo--;
UO.Wait(Pause);
}
}
break;
}
case 3:
{
pocitadlo = zdroj.Items.Count(presunovanaVec.Graphic, Color);
if (pocitadlo > MaxPocet)
{
pocitadlo = MaxPocet;
}
foreach (UOItem item in zdroj.Items)
{
if (item.Graphic == presunovanaVec.Graphic && item.Color == Color && MaxPocet > 0)
{
UO.Print("Zbyva " + pocitadlo + " itemu");
UO.MoveItem(item, item.Amount, presunovanaVec.Container, presunovanaVec.X, presunovanaVec.Y);
pocitadlo--;
MaxPocet--;
UO.Wait(Pause);
}
}
break;
}
case 4:
{
pocitadlo = zdroj.Items.Count(presunovanaVec.Graphic, presunovanaVec.Color);
foreach (UOItem item in zdroj.Items)
{
if (item.Graphic == presunovanaVec.Graphic && item.Color == presunovanaVec.Color)
{
UO.Print("Zbyva " + pocitadlo + " itemu");
UO.MoveItem(item, item.Amount, presunovanaVec.Container, presunovanaVec.X, presunovanaVec.Y);
pocitadlo--;
UO.Wait(Pause);
}
}
break;
}
case 5:
{
pocitadlo = zdroj.Items.Count(presunovanaVec.Graphic, presunovanaVec.Color);
if (pocitadlo > MaxPocet)
{
pocitadlo = MaxPocet;
}
foreach (UOItem item in zdroj.Items)
{
if (item.Graphic == presunovanaVec.Graphic && item.Color == presunovanaVec.Color && MaxPocet > 0)
{
UO.Print("Zbyva " + pocitadlo + " itemu");
UO.MoveItem(item, item.Amount, presunovanaVec.Container, presunovanaVec.X, presunovanaVec.Y);
pocitadlo--;
MaxPocet--;
UO.Wait(Pause);
}
}
break;
}
}
UO.Print("Dokonceno");
massmoveRunning = false;
}
}
}

