Trackovani Treasure Map

Skripty týkající se tohoto externího programu

Moderátor: Caleb

Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07.09.2006 19:19:46
Kontaktovat uživatele:

Trackovani Treasure Map

Příspěvek od Wizzy »

Download vsech skriptu mnou uvedenych: http://dl.dropbox.com/u/7651700/fena/wizzy.cs
Objects.dll: http://dl.dropbox.com/u/7651700/fena/Objects.dll


Po otevreni mapy to vyhodi sipku k mistu kde je
,track
- vypinani sipky k mape

V hlavicce souboru:

Kód: Vybrat vše

using Phoenix.Communication;
Skript:

Kód: Vybrat vše

        private const float MapSizeMultiplier = 3f;
        private const ushort MapZoom = 720;

        [Command]
        public void Track()
        {
            Track(false, 0, 0);
        }
        [Command]
        public void Track(ushort x, ushort y)
        {
            Track(true, x, y);
        }
        private void Track(bool enable, ushort x, ushort y)
        {
            PacketWriter writer = new PacketWriter(0xba);
            writer.Write(enable ? (byte)0x1 : (byte)0x0);
            writer.Write(x);
            writer.Write(y);

            Core.SendToClient(writer.GetBytes());
        }

        [ServerMessageHandler(0x90)]
        public CallbackResult OnMapInfo(byte[] data, CallbackResult prevResult)
        {
            PacketReader reader = new PacketReader(data);
            reader.Skip(1); // opcode
            uint serial = reader.ReadUInt32();
            ushort gump = reader.ReadUInt16();
            ushort ux = reader.ReadUInt16();
            ushort uy = reader.ReadUInt16();
            ushort lx = reader.ReadUInt16();
            ushort ly = reader.ReadUInt16();
            ushort width = reader.ReadUInt16();
            ushort height = reader.ReadUInt16();

            ushort x = (ushort)(ux + 180 * (lx - ux > 361 ? -1 : 1));
            ushort y = (ushort)(uy + 180 * (ly - uy > 361 ? -1 : 1));

            UO.PrintInformation("Map is located at {0},{1}", x, y);
            Track(x, y);

            PacketWriter writer = new PacketWriter(0x90);
            writer.Write(serial);
            writer.Write(gump);
            writer.Write((ushort)(x - MapZoom));
            writer.Write((ushort)(y - MapZoom));
            writer.Write((ushort)(x + MapZoom));
            writer.Write((ushort)(y + MapZoom));
            writer.Write((ushort)(width * MapSizeMultiplier));
            writer.Write((ushort)(height * MapSizeMultiplier));
            Core.SendToClient(writer.GetBytes());

            return CallbackResult.Sent;
        }

        [ServerMessageHandler(0x56)]
        public CallbackResult OnPinInfo(byte[] data, CallbackResult prevResult)
        {
            if (data[5] > 4)
                return prevResult;

            ushort x = ByteConverter.BigEndian.ToUInt16(data, 7);
            ushort y = ByteConverter.BigEndian.ToUInt16(data, 9);

            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(x * MapSizeMultiplier)), 0, data, 7, 2);
            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(y * MapSizeMultiplier)), 0, data, 9, 2);

            return prevResult;
        }

        [ClientMessageHandler(0x56)]
        public CallbackResult OnPinAction(byte[] data, CallbackResult prevResult)
        {
            if (data[5] > 4)
                return prevResult;

            ushort x = ByteConverter.BigEndian.ToUInt16(data, 7);
            ushort y = ByteConverter.BigEndian.ToUInt16(data, 9);

            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(x / MapSizeMultiplier)), 0, data, 7, 2);
            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(y / MapSizeMultiplier)), 0, data, 9, 2);

            return prevResult;
        }
Naposledy upravil(a) Wizzy dne 20.08.2010 15:15:07, celkem upraveno 7 x.
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mole Two »

Stealing intellectual property! Shame on you!
Evil League of Evil
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Re: Trackovani Treasure Map

Příspěvek od Carda »

Jestli sem to dobře pochopil, todle počítá průměr? Ono to na půlku mapek moc nefunguje, stejně jak yoko.
Např "Mapa zakresluje pozici 2873,59,0.", ale ty x1 y1 x2 y2 to posílá 2692 239 | 3053 4096 -> y to vypočítá nějakejch 2167.
Se svym nulovym matematickym skillem sem nad tim chvílu laboroval a vymyslel sem něco co nejspíš funguje na normální i divný ne-t2a mapky, na t2a nevim, nemám jak ozkoušet.

Kód: Vybrat vše

.....
            if (X2 - X1 > 361)
                X = (ushort)(X1 - 180);
            else
                X = (ushort)(X1 + 180);

            if (Y2 - Y1 > 361)
                Y = (ushort)(Y1 - 180);
            else
                Y = (ushort)(Y1 + 180);
.....
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mole Two »

/fixed

Kód: Vybrat vše

using System;
using Phoenix.Communication;

namespace Phoenix.Scripts
{
    public class Tracker
    {
        private const float MapSizeMultiplier = 3f;
        private const ushort MapZoom = 720;

        [Command]
        public void Track()
        {
            Track(false, 0, 0);
        }
        [Command]
        public void Track(ushort x, ushort y)
        {
            Track(true, x, y);
        }
        private void Track(bool enable, ushort x, ushort y)
        {
            PacketWriter writer = new PacketWriter(0xba);
            writer.Write(enable ? (byte)0x1 : (byte)0x0);
            writer.Write(x);
            writer.Write(y);

            Core.SendToClient(writer.GetBytes());
        }

        [ServerMessageHandler(0x90)]
        public CallbackResult OnMapInfo(byte[] data, CallbackResult prevResult)
        {
            PacketReader reader = new PacketReader(data);
            reader.Skip(1); // opcode
            uint serial = reader.ReadUInt32();
            ushort gump = reader.ReadUInt16();
            ushort ux = reader.ReadUInt16();
            ushort uy = reader.ReadUInt16();
            ushort lx = reader.ReadUInt16();
            ushort ly = reader.ReadUInt16();
            ushort width = reader.ReadUInt16();
            ushort height = reader.ReadUInt16();

            ushort x = (ushort)(ux + 180 * (lx - ux > 361 ? -1 : 1));
            ushort y = (ushort)(uy + 180 * (ly - uy > 361 ? -1 : 1));

            UO.PrintInformation("Map is located at {0},{1}", x, y);
            Track(x, y);

            PacketWriter writer = new PacketWriter(0x90);
            writer.Write(serial);
            writer.Write(gump);
            writer.Write((ushort)(x - MapZoom));
            writer.Write((ushort)(y - MapZoom));
            writer.Write((ushort)(x + MapZoom));
            writer.Write((ushort)(y + MapZoom));
            writer.Write((ushort)(width * MapSizeMultiplier));
            writer.Write((ushort)(height * MapSizeMultiplier));
            Core.SendToClient(writer.GetBytes());

            return CallbackResult.Sent;
        }

        [ServerMessageHandler(0x56)]
        public CallbackResult OnPinInfo(byte[] data, CallbackResult prevResult)
        {
            if (data[5] > 4)
                return prevResult;

            ushort x = ByteConverter.BigEndian.ToUInt16(data, 7);
            ushort y = ByteConverter.BigEndian.ToUInt16(data, 9);

            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(x * MapSizeMultiplier)), 0, data, 7, 2);
            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(y * MapSizeMultiplier)), 0, data, 9, 2);

            return prevResult;
        }

        [ClientMessageHandler(0x56)]
        public CallbackResult OnPinAction(byte[] data, CallbackResult prevResult)
        {
            if (data[5] > 4)
                return prevResult;

            ushort x = ByteConverter.BigEndian.ToUInt16(data, 7);
            ushort y = ByteConverter.BigEndian.ToUInt16(data, 9);

            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(x / MapSizeMultiplier)), 0, data, 7, 2);
            Array.Copy(ByteConverter.BigEndian.GetBytes((ushort)(y / MapSizeMultiplier)), 0, data, 9, 2);

            return prevResult;
        }
    }
}
Naposledy upravil(a) Mole Two dne 20.08.2010 14:49:38, celkem upraveno 4 x.
Evil League of Evil
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07.09.2006 19:19:46
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Wizzy »

updated v prvnim postu
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Mianek
Book Snake
Book Snake
Příspěvky: 135
Registrován: 08.09.2006 22:31:39
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mianek »

Mole Two píše:/fixed

nekde tam bude chyba :( puvodni script wizzyho mi ukazuje spravne mapu z valoru na valoru... toto vase "upravene" mi ukazuje mapu z valoru na ostrov smerem N "Temple Island"
Legie (navzdy!!)
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07.09.2006 19:19:46
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Wizzy »

Mianek píše: nekde tam bude chyba :( puvodni script wizzyho mi ukazuje spravne mapu z valoru na valoru... toto vase "upravene" mi ukazuje mapu z valoru na ostrov smerem N "Temple Island"
a jaky souradnice pise MB a jaky skript ?
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Re: Trackovani Treasure Map

Příspěvek od Carda »

Mole Two píše:...
Chce to i pro x, navíc třeba "6084,2327,25" vyhazuje 5904 2147 | 6144 2507

Edit: Aha koukám to ještě ladíš :p
if (uy < ly)
uněco je vždycky menší jak lněco ne? :-)
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mole Two »

Chce to i pro x, navíc třeba "6084,2327,25" vyhazuje 5904 2147 | 6144 2507
coz je t2a (nebo tak neco proste ta mapa navic) = win ?

ux = upper x
uy = upper y

lx = lower x
ly = lower y

upper by melo bejt vzdycky mensi jak lower (takze jo mam to blbe :p)

a jinak jo je to dosrany, pouzivejte mb skrblici, az budu mit dost velkej sample ruznejch map tak to poresim
Evil League of Evil
Carda
Elder Letter
Elder Letter
Příspěvky: 211
Registrován: 07.09.2006 19:12:48

Re: Trackovani Treasure Map

Příspěvek od Carda »

Edit: del aby v tom nebyl bordel
Naposledy upravil(a) Carda dne 20.08.2010 17:19:53, celkem upraveno 2 x.
http://dl.dropbox.com/u/36197238/Phoenix/Phoenix.Scripts.DP.7z
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mole Two »

Upraveno podle cardy, pridano zvetseni mapy

todo: fixnout zobrazeni mist co sou u kraju mapy
Evil League of Evil
Uživatelský avatar
Pheme
Lord Ancestral Grafoman
Lord Ancestral Grafoman
Příspěvky: 1316
Registrován: 22.01.2007 21:47:15

Re: Trackovani Treasure Map

Příspěvek od Pheme »

Tak, kdyz uz zde jsou programatori krysa a carda, tak bych vas pozadal o umisteni sem na foru vasich phoenix scriptu (samozrejme jen tech obycejnych)
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07.09.2006 19:19:46
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Wizzy »

Pheme píše:Tak, kdyz uz zde jsou programatori krysa a carda, tak bych vas pozadal o umisteni sem na foru vasich phoenix scriptu (samozrejme jen tech obycejnych)
jsem dost na pochybach ze ti je nekdo posle :p
max tak to co najdes v http://www.amonthia.com/mikee/scripts_dp.zip
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Mianek
Book Snake
Book Snake
Příspěvky: 135
Registrován: 08.09.2006 22:31:39
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mianek »

Wizzy píše: a jaky souradnice pise MB a jaky skript ?
uz nemuzu slouzit, nez jsem sel do prace vratil jsem to na puvodni skript co ukazoval dobre :(

Mole Two píše: ...... az budu mit dost velkej sample ruznejch map tak to poresim
pokud chces muzu ti venovat dost map z T2A, nebo normal sveta + dodat MB aby jsi mohl protestovat par map pres skript a porovnat s udaji z MB
Legie (navzdy!!)
Uživatelský avatar
Mole Two
Book Snake
Book Snake
Příspěvky: 113
Registrován: 07.09.2006 18:25:16
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mole Two »

nynejsi verze funguje na vsech (2 - wizzy je skrblik) mapach co se mi dostaly pod ruku.. teoreticky by to uz fungovat melo na i t2a
Evil League of Evil
Uživatelský avatar
Pheme
Lord Ancestral Grafoman
Lord Ancestral Grafoman
Příspěvky: 1316
Registrován: 22.01.2007 21:47:15

Re: Trackovani Treasure Map

Příspěvek od Pheme »

Wizzy píše:
Pheme píše:Tak, kdyz uz zde jsou programatori krysa a carda, tak bych vas pozadal o umisteni sem na foru vasich phoenix scriptu (samozrejme jen tech obycejnych)
jsem dost na pochybach ze ti je nekdo posle :p
max tak to co najdes v http://www.amonthia.com/mikee/scripts_dp.zip
No tam je moznost pridavat scripty http://www.amonthia.com/wiki/index.php/ ... ix_Scripty
bohuzel tam pisici programatori nemaji cas, nemaji cas a nemaji cas
Uživatelský avatar
Mikee
Elder Letter
Elder Letter
Příspěvky: 228
Registrován: 08.09.2006 11:06:51
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Mikee »

bohuzel pridavat scripty tam muze naprosto kdokoliv, staci se zaregistrovat na wiki (coz zas tak neboli), jenze o to zjevne nikdo nestoji (radsi se to dava sem). Mno mne je to celkem fuk, vas problem.
Do toho baliku scriptu muzu pridat vicemene cokoliv, jen by to melo 100% fungovat. Staci napsat a ja to posoudim :)
Uživatelský avatar
Smoce
Paper Elemental
Paper Elemental
Příspěvky: 349
Registrován: 12.02.2009 21:53:26
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Smoce »

Mikee píše:bohuzel pridavat scripty tam muze naprosto kdokoliv, staci se zaregistrovat na wiki (coz zas tak neboli), jenze o to zjevne nikdo nestoji (radsi se to dava sem). Mno mne je to celkem fuk, vas problem.
Do toho baliku scriptu muzu pridat vicemene cokoliv, jen by to melo 100% fungovat. Staci napsat a ja to posoudim :)

SIce je to věc názorů, ale já jsu alergický na Wikipedii, ano najdu tam pěkný věci. Ale admin + manipulace ... díky raděj ne....
Proto dávám všechny scriptíky na www.phoenix.smoce.net. Ano, starý známí PHPBB s grafikou malou :-)
Uživatelský avatar
Wizzy
Evil League Of Evil
Příspěvky: 1437
Registrován: 07.09.2006 19:19:46
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Wizzy »

ot thread necromancer s linkem co uz je jinde?

namatkove btw kdyz uz to vsude cpes:

jak se na dp hlidaji hlidaci
popr, tohle navadeni k bugovani ci tenhle readme

za tyhle veci (coz urcite nejsou vsechny, cely jsem to neprojizdel), vzhledem k tomu ze tam jsou officialne postly od tebe, bys celkem snadno mohl dostat nejakej trest ;)
ICQ:242676139 | IRC: #dp

... Vision vs Speech test ...
Uživatelský avatar
Smoce
Paper Elemental
Paper Elemental
Příspěvky: 349
Registrován: 12.02.2009 21:53:26
Kontaktovat uživatele:

Re: Trackovani Treasure Map

Příspěvek od Smoce »

Wizzy píše:ot thread necromancer s linkem co uz je jinde?

namatkove btw kdyz uz to vsude cpes:

jak se na dp hlidaji hlidaci
popr, tohle navadeni k bugovani ci tenhle readme

za tyhle veci (coz urcite nejsou vsechny, cely jsem to neprojizdel), vzhledem k tomu ze tam jsou officialne postly od tebe, bys celkem snadno mohl dostat nejakej trest ;)
Nezapoměl jsi přečíst takovej post Důležité! ???

Sám jsem tam psal http://phoenix.smoce.net/viewtopic.php?f=32&t=39&p=39

Výpis:
Všechny scripty nejsou odemě.

Některé jsem dostal, některé jsem napsal.

Byl bych rád kdybyste sem přidáváli i vaše.

Všechny scripty tu běží na 100% jelikož jsem je používál.

Co použijete je na vás, a jen na vás.


A vůbec nejde o to jestli sem to tam dal já. Ale nikde na DP ani tady na forku jsem neviděl scripty, který by umožnili hraní ostré hraní do dungu.

Ano ti co umí napsat v C# tak si udělaj cokoliv, ale ty závisláci co umí jen hrát si nenapíši ani script na kouzlení summu.

V sekce Yoko sem dal balík co jsem stáhl s odkazu co bylo na Dark Paradise nástěnce ! takže ....

Jinak Bugy na phoenix? Pokud vím tak tam je jeden (a ten by prej měl být, ošetřen na DP bylo mi zděleno *Ice jak píšeš*), ostatní sem tam nedával. Z důvodu toho aby to nepoužívali a z důvodu toho, že bugy nepodporuju. A proto bugy mam zvlašť schované (někde).

Mimochodem si scripty nepřivlastňují, ale nejsou tam napsané popisy od koho to je nebo, kde protože jsem to někdy dostal popř. stáhl a už nevím od kud ...

A pokud se někomu nelíbí, že tam dávám makra a scripty pro Phoenu pro usnadnění hraní, tak sorry, ale nemůsí se tam nikdo dívat a ať si ješitně hraje na Clientovi.

Já mám dost svoje práce a UO hraju jen na odreagování a to loguju stejně jenom na Dungy. tak pokud se ti něco nelíbi tak hold jsem pro teba hajzlik no.....
Odpovědět