EDIT: přidano oznámení o ukonční přenosu.
opraveno doplnění regu do požadovaného množství.
EDIT: přidan Wyrm's Hearts do přesunu necro regu
Spuštění:
,mrc x true/false - x je množství regů které chcete mít v cílovem kontejneru pokud, true/false - true pokud v cilovem kontejneru již jsou nějaké regy tak množství, které je nad x bude vráceno do zdrojového kontejneru, false ponecha regy v cílovem kontejneru jen tam přidá množství x.
,mrc x - to samé jako předchozí ale nastaven permanentně na hodnotu true (da se změnit ve scriptu uplně dole).
,mrc - stejně jako předchozí případ ale nastaven na 0 a true (da se změnit ve scriptu uplně dole).
(,mrc - mage regy, ,nrc - necro regy)
Příklad využití:
1. jdu dung v bance mam bagl s hromadou regu, do dungu si chcu vzít ale jen 500 od každého zadam ,mrc 500 - zaměřím batoh v bance a jako cíl baglik v backbaku tím mi script přenese z banky do baglu co mam u sebe přesně 500 regu jestli sem měl v cilovem batůžku nějaké regy a bylo jich víc jak 500 tak ty script vratí do zdroje, pokud už tam nějaké regy sou a není jich 500 script přenese jen tolik aby doplnil jejich množství. Pokud ve zdroji není dostatek nějakého regu script přenese max množství a vypíše kolik regu je třeba dokoupit.
2. po dungu mam v baglu co mam u sebe hromadu regu a potřebuju je uklidit, ,mrc - zaměřím zdroj tentokrat to bude baglik v bance a cíl bude můj backpack (jak sem psal víš tak příkaz ,mrc je nastaven na 0,true tím padem v cílovém kontejneru zůstane 0 regu a všechny budou vráceny do zdroje.
3. mam u sebe nějaké regy a chcu je jen doplnit řekněme 50 od každého - ,mrc 50 false - tím zajistím že mi script přebytečné regy nevrátí do zdroje.
Mage regy:
Kód: Vybrat vše
/////////////////////////////////////////////////////////////////////////
//
// Autor: Koryn
// Name: Presun Mage Regu pro dung vsech stejne mnozstvi.
// Popis: ,mrc x - x je kolik regu se ma prenest do ciloveho kontejneru
// a zaroven kolik jech tam ma zustat pokud je v cílovem baglu víc než x regu
// tak to co je nad bude vraceno do zdrojoveho kontejneru.vraceni regu true
// ,mrc - je standartne nastaven na 0, a vraceni regu na true
// ,mrc x true/false - muzete si vybrat jestli se regy kterych je nad x v cilovem
// kontejneru maji vracet do zdroje
// Date: 18.5.2012
// Phoenix ver. : 0.7.x
//
/////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix;
using Phoenix.WorldData;
using System.Linq;
using Phoenix.Communication;
using Phoenix.Runtime;
using Phoenix.Runtime.Reflection;
namespace Phoenix.Koryn
{
public class MageRegCountedHelper
{
// public bool vracet;
[Command("MRC")]
public void MRC(ushort kolik, bool m_vracet)
{
UO.Print(0x0435, "Zahajen presun regu na dung.");
UO.Print(SpeechFont.Bold, 0x0b94, "Zvol zdrojovy box !!!");
UOItem zdroj = new UOItem(UIManager.TargetObject());
if (!zdroj.Exist)
ScriptErrorException.Throw("Invalid item.");
if (!zdroj.Opened)
{
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(zdroj))
{
zdroj.Use();
if (!ew.Wait(2000))
UO.PrintWarning("Nemuzu otevrit kontejner.");
}
}
UO.Wait(200);
UO.Print(SpeechFont.Bold, 0x0b94, "Zvol kam presunot !!!");
UOItem cil = new UOItem(UIManager.TargetObject());
if (!cil.Exist)
ScriptErrorException.Throw("Invalid item.");
if (!cil.Opened)
{
using (ItemOpenedEventWaiter eww = new ItemOpenedEventWaiter(cil))
{
cil.Use();
if (!eww.Wait(2000))
UO.PrintWarning("Nemuzu otevrit kontejner.");
}
}
//-------------------BM------BP-----GC------GS-------MR------NS------SA------SS----
ushort[] regs = { 0x0F7B, 0x0F7A, 0x0F84, 0x0F85, 0x0F86, 0x0F88, 0x0F8C, 0x0F8D};
string[] names = { "BM", "BP", "GC", "GS", "MR", "NS", "SA", "SS" };
for (int k = 0; k < regs.Length; k++)
{
UOItem BM = zdroj.AllItems.FindType(regs[k]);
UOItem CBM = cil.AllItems.FindType(regs[k]);
int BMC = cil.AllItems.Count(regs[k]);
int BMZ = zdroj.AllItems.Count(regs[k]);
if (BMC != kolik)
{
if (BMC >= kolik && m_vracet)
{
int vyhoditBM = BMC - kolik;
ushort uvyhoditBM = (ushort)vyhoditBM;
UO.MoveItem(CBM, uvyhoditBM, zdroj);
UO.Wait(300);
UO.Print(0x00B3, "Vraceno {0} "+ names[k]+" zpet !", vyhoditBM);
}
else if (BMZ > kolik)
{
int o_kolik = kolik - BMC;
ushort uo_kolik = (ushort)o_kolik;
UO.MoveItem(BM, uo_kolik, cil);
UO.Wait(300);
}
else
{
if (BMZ != 0)
{
UO.Print("Neni potrebne mnostvi " + names[k] + " ve zdroji prenasim {0} !", BM.Amount);
UO.MoveItem(BM, BM.Amount, cil);
int dokoupitBM = kolik - (int)BM.Amount;
UO.Print(0x0b94, "Je treba dokoupit {0} " + names[k] + " !", dokoupitBM);
UO.Wait(300);
}
else
{
int dokBM = kolik - BMC;
UO.Print(0x0b94, "Je treba dokoupit {0} " + names[k] + " !", dokBM);
UO.Wait(300);
}
}
}
else
{
UO.Print(0x00B3,names[k] +" neprenasim je ho presne !");
}
}
UO.Print(SpeechFont.Bold, 0x0b94, "! Presun dokoncen !");
//-------------------------------------------------------------------------------------
}
[Command("MRC")]
public void MRC()
{
MRC(0,true);
}
[Command("MRC")]
public void MRC(ushort m_kolik)
{
MRC(m_kolik, true);
}
}
}
Kód: Vybrat vše
/////////////////////////////////////////////////////////////////////////
//
// Autor: Koryn
// Name: Presun Necro Regu pro dung vsech stejne mnozstvi.
// Popis: ,nrc x - x je kolik regu se ma prenest do ciloveho kontejneru
// a zaroven kolik jech tam ma zustat pokud je v cílovem baglu víc než x regu
// tak to co je nad bude vraceno do zdrojoveho kontejneru.vraceni regu true
// ,mrc - je standartne nastaven na 0, a vraceni regu na true
// ,mrc x true/false - muzete si vybrat jestli se regy kterych je nad x v cilovem
// kontejneru maji vracet do zdroje
// Date: 18.5.2012
// Phoenix ver. : 0.7.x
//
/////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using Phoenix;
using Phoenix.WorldData;
using System.Linq;
using Phoenix.Communication;
using Phoenix.Runtime;
using Phoenix.Runtime.Reflection;
namespace Phoenix.Koryn
{
public class NecroRegCountedHelper
{
[Command("NRC")]
public void NRC(ushort kolik, bool m_vracet)
{
UO.Print(0x0435, "Zahajen presun regu na dung.");
UO.Print(SpeechFont.Bold, 0x0b94, "Zvol zdrojovy box !!!");
UOItem zdroj = new UOItem(UIManager.TargetObject());
if (!zdroj.Exist)
ScriptErrorException.Throw("Invalid item.");
if (!zdroj.Opened)
{
using (ItemOpenedEventWaiter ew = new ItemOpenedEventWaiter(zdroj))
{
zdroj.Use();
if (!ew.Wait(2000))
UO.PrintWarning("Nemuzu otevrit kontejner.");
}
}
UO.Wait(200);
UO.Print(SpeechFont.Bold, 0x0b94, "Zvol kam presunot !!!");
UOItem cil = new UOItem(UIManager.TargetObject());
if (!cil.Exist)
ScriptErrorException.Throw("Invalid item.");
if (!cil.Opened)
{
using (ItemOpenedEventWaiter eww = new ItemOpenedEventWaiter(cil))
{
cil.Use();
if (!eww.Wait(2000))
UO.PrintWarning("Nemuzu otevrit kontejner.");
}
}
ushort[] regs = { 0x0F7D, 0x0F7E, 0x0F83, 0x0F81, 0x0F78, 0x0F87, 0x0F7C, 0x0F7F, 0x0F89, 0x0F79, 0x0F8B, 0x0F8F, 0x0F80, 0x0F8E,0x0F91 };
string[] names = { "Vial of blood", "Bone", "Executioners Cap", "Fertile Dirt", "Batwing", "Eye of newt", "Bloodspawn", "Brimstone", "Obsidian", "Blackmoor", "Pumice", "Volcanic Ash", "Deamon Bone", "Serpent Scale", "Wyrm's Hearts" };
for (int k = 0; k < regs.Length; k++)
{
UOItem BM = zdroj.AllItems.FindType(regs[k]);
UOItem CBM = cil.AllItems.FindType(regs[k]);
int BMC = cil.AllItems.Count(regs[k]);
int BMZ = zdroj.AllItems.Count(regs[k]);
if (BMC != kolik)
{
if (BMC >= kolik && m_vracet)
{
int vyhoditBM = BMC - kolik;
ushort uvyhoditBM = (ushort)vyhoditBM;
UO.MoveItem(CBM, uvyhoditBM, zdroj);
UO.Wait(300);
UO.Print(0x00B3, "Vraceno {0} "+ names[k]+" zpet !", vyhoditBM);
}
else if (BMZ > kolik)
{
int o_kolik = kolik - BMC;
ushort uo_kolik = (ushort)o_kolik;
UO.MoveItem(BM, uo_kolik, cil);
UO.Wait(300);
}
else
{
if (BMZ != 0)
{
UO.Print("Neni potrebne mnostvi " + names[k] + " ve zdroji prenasim {0} !", BM.Amount);
UO.MoveItem(BM, BM.Amount, cil);
int dokoupitBM = kolik - (int)BM.Amount;
UO.Print(0x0b94, "Je treba dokoupit {0} " + names[k] + " !", dokoupitBM);
UO.Wait(300);
}
else
{
int dokBM = kolik - BMC;
UO.Print(0x0b94, "Je treba dokoupit {0} " + names[k] + " !", dokBM);
UO.Wait(300);
}
}
}
else
{
UO.Print(0x00B3,names[k] +" neprenasim je ho presne !");
}
}
UO.Print(SpeechFont.Bold, 0x0b94, "! Presun dokoncen !");
//-------------------------------------------------------------------------------------
}
[Command("NRC")]
public void NRC()
{
NRC(0,true);
}
[Command("NRC")]
public void NRC(ushort m_kolik)
{
NRC(m_kolik, true);
}
}
}