Stránka 1 z 2

Trackovani Treasure Map

Napsal: 20.08.2010 00:11:01
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;
        }

Re: Trackovani Treasure Map

Napsal: 20.08.2010 00:19:21
od Mole Two
Stealing intellectual property! Shame on you!

Re: Trackovani Treasure Map

Napsal: 20.08.2010 11:59:18
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);
.....

Re: Trackovani Treasure Map

Napsal: 20.08.2010 12:37:00
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;
        }
    }
}

Re: Trackovani Treasure Map

Napsal: 20.08.2010 12:41:48
od Wizzy
updated v prvnim postu

Re: Trackovani Treasure Map

Napsal: 20.08.2010 12:58:36
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"

Re: Trackovani Treasure Map

Napsal: 20.08.2010 13:13:09
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 ?

Re: Trackovani Treasure Map

Napsal: 20.08.2010 13:16:55
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? :-)

Re: Trackovani Treasure Map

Napsal: 20.08.2010 13:25:51
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

Re: Trackovani Treasure Map

Napsal: 20.08.2010 13:31:58
od Carda
Edit: del aby v tom nebyl bordel

Re: Trackovani Treasure Map

Napsal: 20.08.2010 14:50:40
od Mole Two
Upraveno podle cardy, pridano zvetseni mapy

todo: fixnout zobrazeni mist co sou u kraju mapy

Re: Trackovani Treasure Map

Napsal: 20.08.2010 18:38:36
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)

Re: Trackovani Treasure Map

Napsal: 20.08.2010 21:13:52
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

Re: Trackovani Treasure Map

Napsal: 21.08.2010 00:26:08
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

Re: Trackovani Treasure Map

Napsal: 21.08.2010 00:36:34
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

Re: Trackovani Treasure Map

Napsal: 21.08.2010 20:49:34
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

Re: Trackovani Treasure Map

Napsal: 22.08.2010 22:12:28
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 :)

Re: Trackovani Treasure Map

Napsal: 14.11.2010 00:34:55
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 :-)

Re: Trackovani Treasure Map

Napsal: 14.11.2010 08:14:55
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 ;)

Re: Trackovani Treasure Map

Napsal: 14.11.2010 09:50:42
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.....