Loot systém
Datum: 22/11/2014 23:47:50
Staženo: 1226x
~BOT~ id: 286736282
Příkazy:
- ,exec [blockmultipleexecutions ""loot""
- ,exec loot
Kód:
using System;
using System.Collections.Generic;
using Phoenix;
using Phoenix.WorldData;
namespace Scripts.DarkParadise
{
public class Loot
{
public const ushort SpidersSilk = 0x0F8D;
public const ushort Bag = 0x0E76;
public const ushort Corpse = 0x2006;
[Executable]
[BlockMultipleExecutions("loot")]
public void CutAll()
{
UOItem lHand = World.Player.Layers[Layer.LeftHand];
UOItem rHand = World.Player.Layers[Layer.RightHand];
UOItem cutter = World.Player.Backpack.AllItems.FindType(0x10E4,0x0B80);
if (!cutter.Exist) {
ScriptErrorException.Throw("Cannot find anything to cut with.");
return;
}
foreach (UOItem item in World.Ground) {
if (item.Graphic == Corpse) {
Notoriety notoriety = CorpsesNotoriety.Get(item, 5000);
item.WaitTarget();
cutter.Use();
UO.Wait(1000); // TODO
/*
switch (notoriety) {
case Notoriety.Unknown:
UO.PrintWarning("Unknown notoriety of {0}. Corpse skipped.", item);
break;
case Notoriety.Criminal:
case Notoriety.Murderer:
case Notoriety.Neutral:
item.WaitTarget();
cutter.Use();
UO.Wait(1000); // TODO
break;
default:
break;
}
*/
}
}
lHand.Equip();
rHand.Equip();
}
private struct ItemType
{
public ItemType(Graphic graphic, UOColor color)
{
Graphic = graphic;
Color = color;
}
public Graphic Graphic;
public UOColor Color;
}
private List<ItemType> lootTypes;
public Loot()
{
lootTypes = new List<ItemType>();
/*
AddType(0x0F8D, UOColor.Invariant); // SS
AddType(0x0EED, UOColor.Invariant); // Gold Coins
AddType(0x0F7B, UOColor.Invariant); // BM
AddType(0x0F7A, UOColor.Invariant); // BP
AddType(0x0F84, UOColor.Invariant); // GA
AddType(0x0F85, UOColor.Invariant); // GI
AddType(0x0F86, UOColor.Invariant); // MR
AddType(0x0F88, UOColor.Invariant); // NS
AddType(0x0F8C, UOColor.Invariant); // SA
AddType(0x0F79, UOColor.Invariant); // Blackmoor
AddType(0x1bd1, UOColor.Invariant); // Peri
AddType(0x0F78, UOColor.Invariant); // Batwings
AddType(0x0F87, UOColor.Invariant); // Eyes of Newt
AddType(0x14EB, UOColor.Invariant); // Treassure Map
* */
AddType(0x0E80, UOColor.Invariant); // Poklad
AddType(0x0F3F, UOColor.Invariant); // Arrow
AddType(0x1BFB, UOColor.Invariant); // Bolt
AddType(0x0E76, UOColor.Invariant); // Pytlik
AddType(0x097A, UOColor.Invariant); // Alligator Hide
AddType(0x097B, UOColor.Invariant); // Snake skin
AddType(0x097C, UOColor.Invariant); // nevim, treba dalsi trofej
AddType(0x097D, UOColor.Invariant); // nevim, treba dalsi trofej
AddType(0x097E, 0x0037); // a Wolf Pelt
AddType(0x1bd1, UOColor.Invariant); // Peri
/*
AddType(0x0E34, UOColor.Invariant); // Blank Scroll
AddType(0x0F20, UOColor.Invariant); // Tourmaline
AddType(0x0F8E, UOColor.Invariant); // Serpent Scales
AddType(0x0F79, UOColor.Invariant); // Blackmoor
AddType(0x0F91, UOColor.Invariant); // Wyrms Heart
AddType(0x0F83, UOColor.Invariant); // Executioner's Cap
AddType(0x108A, UOColor.Invariant); // Ring
AddType(0x1086, UOColor.Invariant); // Bracelet
AddType(0x1088, UOColor.Invariant); // Neclase
AddType(0x1848, UOColor.Invariant); // Elixir
AddType(0x0F7E, UOColor.Invariant); //
AddType(0x139A, UOColor.Invariant); // Statue
AddType(0x0F82, UOColor.Invariant); //
AddType(0x0F7D, UOColor.Invariant); //
AddType(0x0E9C, UOColor.Invariant); // Drums
AddType(0x0EB2, UOColor.Invariant); // Harp
AddType(0x0EB2, UOColor.Invariant); // Lute
AddType(0x14ED, UOColor.Invariant); // Deed 1
AddType(0x14EE, UOColor.Invariant); // Deed 2
AddType(0x0F7F, UOColor.Invariant); //
AddType(0x0F7C, UOColor.Invariant); //
AddType(0x0F79, UOColor.Invariant); //
AddType(0x0F89, UOColor.Invariant); //
AddType(0x0F81, UOColor.Invariant); //
AddType(0x0FF4, UOColor.Invariant); // knihy
AddType(0x136C, UOColor.Invariant); // HoDF, Myst. Stone
// AddType(0x1F13, UOColor.Invariant); // skillpointy
AddType(0x0F8F, UOColor.Invariant); //
AddType(0x0F8B, UOColor.Invariant); //
AddType(0x1406, 0x031E); // a Stunning Warmace
AddType(0x0D16, 0x00A3); // a Mystical Mushroom
AddType(0x0DBD, 0x0B9F); // a Mystical Leaf
AddType(0x1A9D, 0x0481); // a Mystical Stick
AddType(0x0F5A, 0x0044); // a Mystic Crystal
AddType(0x0E73, 0x0B9F); // a Mystical Ball
AddType(0x0E26, 0x049D); // a Spirit of the Rain
AddType(0x0F91, 0x014D); // Heart of Rainbow Dragon
AddType(0x1420, 0x0152); // Cobwebby string
AddType(0x097E, 0x0037); // a Wolf Pelt
AddType(0x0CB0, 0x0899); // a Mystical Plant
AddType(0x0DC3, 0x005B); // a Mystical Flower
AddType(0x1F03, 0x0771); // Mage's robe
AddType(0x1F03, 0x0455); // Death's robe, pozor, bere to i obyc roby
AddType(0x13B9, 0x0480); // Ice Viking Sword
AddType(0x09D0, 0x09B4); // God's Apple
AddType(0x13FC, 0x0237); // Elven Heavy Crossbow
AddType(0x379F, 0x0055); // Elfi tetiva
AddType(0x108B, 0x0BB5); // a Mystical Beeds
AddType(0x0DC3, 0x005B); // a Mystical Flower
* */
}
public void AddType(Graphic graphic, UOColor color)
{
lootTypes.Add(new ItemType(graphic, color));
}
[Executable("loot")]
[BlockMultipleExecutions("loot")]
public void Run()
{
if (!Aliases.RecevingContainer.IsValid) {
ScriptErrorException.Throw("RecevingContainer not set.");
}
ScriptErrorException.ExceptionEnabled = false;
World.FindDistance = 6;
UO.PrintInformation("Loot started");
CutAll();
UIManager.Reset();
LootCollection(World.Ground, true);
UO.PrintInformation("Loot finished");
}
private bool CheckCorpse(UOItem item)
{
// male female imp garga
//ushort[] forbiddenCorpses = new ushort[] { 0x0190, 0x0191, 0x0027, 0x0004 };
// return Array.IndexOf<ushort>(forbiddenCorpses, item.Amount) < 0;
Notoriety n = CorpsesNotoriety.Get(item, 2000);
return n != Notoriety.Innocent && n != Notoriety.Guild && n != Notoriety.Unknown;
}
private void LootCollection(ItemsCollection collection, bool ignoreSingleSS)
{
foreach (UOItem item in collection) {
/*
if (item.Graphic == Bag) {
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(item)) {
if (!item.Opened) {
item.Use();
if (ew.Wait(2000))
UO.Wait(500);
}
}
UO.EmptyContainer(1000, item);
}
else */
if (item.Graphic == Corpse) {
if (CheckCorpse(item)) {
if (!item.Opened) {
item.Use();
UO.Wait(1000);
}
LootCollection(item.Items, false);
}
}
else if (ignoreSingleSS && item.Graphic == SpidersSilk && item.Color == 0 && item.Amount < 2) {
continue;
}
else if (lootTypes.Contains(new ItemType(item.Graphic, item.Color))) {
bool ground = item.Container == 0;
int pause = ground ? 250 : 2000;
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(item)) {
Journal.Clear();
if (item.Grab() && ew.Wait(3000)) {
UO.Wait(pause);
if (!ground) {
Journal.WaitForText(true, 2000, "akce skoncila");
}
}
}
UO.Wait(50);
}
}
}
}
}


Online slots are immensely popular casino games due to their convenience of playing over the internet. They come with various styles and intriguing features such as jackpot prizes, bonuses, high rewards, game selection diversity, and beautiful graphics. However, playing online slots may have financial risks, so it's advisable to play cautiously and responsibly. tgabet