Object Factory
Datum: 22/11/2014 23:42:58
Staženo: 348x
Popis:
Autor Leny-m
// podpurny skript pro ziskavani grafik, barev a jmen itemu
// vystup do Phoenix/objects_print.txt v podobe Name Graphic Color
// skript ukoncite klavesou ESC pri vyberu
// ,scan
Příkazy:
- ,scan
Kód:
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Phoenix;
using Phoenix.WorldData;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Reflection;
using System.Security.Permissions;
// made by Leny-m
namespace Phoenix.Scripts
{
public class ObjectFactory
{
List<ObjectFactoryItem> items = new List<ObjectFactoryItem>();
[Command]
public void Scan()
{
if(File.Exists(getPath("objects")))
{
loadObjects("objects");
}
Scan(World.Ground);
UOItem container = new UOItem(UIManager.TargetObject());
while(container.Serial != 0xFFFFFFFF)
{
Scan(container);
container = new UOItem(UIManager.TargetObject());
UO.Print(container.Serial);
}
saveObjects("objects");
printObjects("objects_print.txt");
UO.Print("Done");
}
private void Scan(ItemsCollection col)
{
foreach(UOItem item in col)
{
if(item.Graphic == 0x0E76 || item.Graphic == 0x0E75 || item.Graphic == 0x0E80
|| item.Graphic == 0x0E79 || item.Graphic == 0x09B0) // pytlik, batoh, drevena krabice, strong box, pouch
{
item.Use();
Scan(item);
}
if(!AlreadyAdded(item))
{
UO.ClickObject(item.Serial);
UO.Wait(500);
items.Add(new ObjectFactoryItem(item.Graphic, item.Color, item.Name));
}
}
}
private void Scan(UOItem container)
{
ItemsCollection col = container.AllItems;
container.Use();
UO.Wait(1000);
Scan(col);
}
private void printObjects(string fileName)
{
string path = getPath(fileName);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(path))
{
file.WriteLine("Name Graphic Color");
foreach (ObjectFactoryItem item in items)
{
file.WriteLine(item.n + " " + item.g + " " + item.c);
}
}
}
private void saveObjects(string fileName)
{
string path = getPath(fileName);
using (BinaryWriter writer = new BinaryWriter(File.Open(path, FileMode.Create, FileAccess.Write)))
foreach (ObjectFactoryItem item in items)
{
writer.Write(item.g);
writer.Write(item.c);
writer.Write(item.n);
}
}
private void loadObjects(string fileName)
{
string path = getPath(fileName);
items = new List<ObjectFactoryItem>();
using (BinaryReader reader = new BinaryReader(new System.IO.FileStream(path, FileMode.Open, FileAccess.Read),Encoding.ASCII))
{
while (reader.PeekChar() != -1)
{
items.Add(new ObjectFactoryItem(reader.ReadUInt16(),reader.ReadUInt16(),(string)reader.ReadString()));
}
}
}
private string getPath(string fileName)
{
string path = "";
string currentDir = Environment.CurrentDirectory;
DirectoryInfo parent = System.IO.Directory.GetParent(currentDir);
path = parent+"Phoenix"+fileName;
UO.Print("File path:");
UO.Print(path);
return path;
}
private bool AlreadyAdded(UOItem item)
{
foreach(ObjectFactoryItem ite in items)
{
if(ite.g == item.Graphic && ite.c == item.Color)
{
return true;
}
}
return false;
}
}
class ObjectFactoryItem
{
public Graphic g;
public ushort c;
public string n;
public ObjectFactoryItem(Graphic g, ushort c, string n)
{
this.g = g;
this.c = c;
this.n = n;
}
}
}


Discover exciting ปั่นสล็อต gameplay features and bonus opportunities, while learning techniques that help you play smarter and more slotแท้ effectively.