Ada Kladivo
Datum: 22/11/2014 23:39:48
Staženo: 454x
Popis:
Autor neznámej
Příkazy:
- ,exec adamantium "string ingot"
- ,exec dust "string dust"
Kód:
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix;
using Phoenix.WorldData;
using Phoenix.Communication;
namespace Scripts.DarkParadise
{
public class AdaKladivko
{
UOItem adaKladivko;
private const ushort kladivkoGraphic = 0x1438;
private const ushort kladivkoColor = 0x044C;
private const ushort ingotGraphic = 0x1BEF;
private const ushort bloodIngotColor = 0x04C2;
private const ushort blackIngotColor = 0x0455;
private const ushort mythIngotColor = 0x052D;
[Executable("adamantium")]
public void Premena(string ingot)
{
switch (ingot)
{
case "blood":
PremenaDustu(bloodIngotColor, ingot);
break;
case "black":
PremenaDustu(blackIngotColor, ingot);
break;
case "myth":
PremenaDustu(mythIngotColor, ingot);
break;
default:
UO.PrintWarning("Zadal si uplne naprd parameter");
break;
}
}
private void PremenaDustu(ushort ingotColor, string ingotName)
{
//kontrola ci vobec mam pri sebe kladivko. najprv v batohu a potom v ruke
adaKladivko = World.Player.Backpack.AllItems.FindType(kladivkoGraphic, kladivkoColor);
if (!adaKladivko.Exist)
{
adaKladivko = World.Player.Layers[Layer.LeftHand]; //pri obojruckach sa bere v uvahu lava ruka, pri jednoruckach je v pravej zbran a v lavej stit
if (adaKladivko.Graphic != kladivkoGraphic || adaKladivko.Color != kladivkoColor)
{
UO.PrintWarning("Kde doprdele si nechal Adamantiove kladivo?");
return;
}
}
vyhod:
//kontrola ci vobec mam u seba potrebne ingoty
UOItem ingoty = World.Player.Backpack.AllItems.FindType(ingotGraphic, ingotColor);
if (!ingoty.Exist)
{
UO.PrintWarning("Bez ingotov to nepojde, nie som Copperfield!");
return;
}
//hodim ingot pod seba a pouzijem na to kladivko
UO.MoveItem(ingoty, 1, World.Player.X, World.Player.Y, World.Player.Z);
UO.Wait(500);
UOItem ingotNaZemi = FindIngot(ingotGraphic, ingotColor);
if (!ingotNaZemi.Exist)
{
UO.PrintWarning("Ingot sa mi zahadne stratil, skusim vyhodit dalsi");
goto vyhod;
}
UO.DeleteJournal();
UO.WaitTargetObject(ingotNaZemi.Serial);
adaKladivko.Use();
UO.Wait(100);
UO.PrintInformation("{0} ingot premeneny!", ingotName.ToUpper());
}
private static UOItem FindIngot(ushort graphic, ushort color)
{
UOItem output = new UOItem(Serial.Invalid);
foreach (UOItem ch in World.Ground)
if (ch.Graphic == graphic & ch.Color == color)
if (ch.Distance < 4 && ch.Distance < output.Distance)
output = ch;
return output;
}
}
public class LootDust
{
private const ushort dustGraphic = 0x103D;
private const ushort bloodDustColor = 0x0280;
private const ushort blackDustColor = 0x0455;
private const ushort mythDustColor = 0x052D;
private const ushort lootPytlikGraphic = 0x0E76;
private const ushort lootPytlikColor = 0x049A;
public const ushort bag = 0x0E76;
public const ushort corpse = 0x2006;
[Executable("dust")]
public void Loot(string dust)
{
switch (dust)
{
case "blood":
LootDustem(bloodDustColor, dust);
break;
case "black":
LootDustem(blackDustColor, dust);
break;
case "myth":
LootDustem(mythDustColor, dust);
break;
default:
UO.PrintWarning("Zadal si uplne naprd parameter");
break;
}
}
private void LootDustem(ushort dustColor, string dustName)
{
//kontrola ci vobec mam pri sebe premeneny dust, ktory chcem pouzit
UOItem dust = World.Player.Backpack.AllItems.FindType(dustGraphic, dustColor);
if (!dust.Exist)
{
UO.PrintWarning("Na mamon potrebujes dust predsa!!");
return;
}
/*
* Najdem otvorenu mrtvolu na pouzitie
* POZOR!! ak je otvorenych viac tiel bere v uvahu vzdy to posledne, ktore najde
*/
UOItem openedCorpse = FindOpenedCorpse();
if (openedCorpse.Serial == Serial.Invalid)
{
UO.PrintWarning("Ziadna otvorena mrtvolka v dosahu nie je!");
return;
}
//vyhladam si loot pytlik a pouzijem na neho dust
UOItem lootPytlik = new UOItem(Serial.Invalid);
foreach (UOItem item in openedCorpse.Items)
{
if (item.Graphic == lootPytlikGraphic && item.Color == lootPytlikColor)
{
lootPytlik = item;
//return;
}
}
if (lootPytlik.Serial != Serial.Invalid)
{
UO.DeleteJournal();
UO.WaitTargetObject(lootPytlik.Serial);
dust.Use();
UO.Wait(100);
UO.PrintInformation("{0} dust bol pouzity na pytlik {1}!", dustName.ToUpper(), lootPytlik.Serial);
}
//nakoniec pytlicek lootnem
LootniPytlik(lootPytlik);
}
private static void LootniPytlik(UOItem pytlik)
{
bool ground = pytlik.Container == 0;
int pause = ground ? 250 : 2000;
using (ItemUpdateEventWaiter ew = new ItemUpdateEventWaiter(pytlik))
{
Journal.Clear();
if (pytlik.Grab() && ew.Wait(3000))
{
UO.Wait(pause);
if (!ground)
{
Journal.WaitForText(true, 2000, "akce skoncila");
}
}
}
UO.Wait(50);
}
private static UOItem FindOpenedCorpse()
{
UOItem output = new UOItem(Serial.Invalid);
foreach (UOItem ch in World.Ground)
if (ch.Graphic == corpse & ch.Opened)
{
Notoriety notoriety = CorpsesNotoriety.Get(ch, 5000);
switch (notoriety)
{
case Notoriety.Unknown:
UO.PrintWarning("Unknown notoriety of {0}. Corpse skipped.", ch);
break;
case Notoriety.Neutral:
if (ch.Distance < 4 && ch.Distance < output.Distance)
output = ch;
break;
default:
break;
}
}
return output;
}
}
}


Discover สล็อตpg secure casinos offering fast deposits and พีจีสล๊อต withdrawals.