Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Old requests

Archive messages
Post Reply
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Заявка на новые возможности, либо на исправление старых

Post by shinma »

один фиг ты полез уже с таргетами функции делать,это посложнее будет чем, если ты добавишь стандартное окно да/нет. ну да/нет еще можно заменить винапишным окном. а вот например чтобы в игре над угодными мне таргетами рисовались стрелочки или этой же стрелочкой рисовался маршрут к трупу. Это уже не забабахать через винапи...хотя и так можно , но блин есть же стрелка в уо клиенте чоб ею не попользоваться. тем более когда -то было что когда умираешь прям клиент рисовал стрелочкой дорогу к трупу. Добавь стрелочку плиииз. к трупу я не буду рисовать дорожки т.к. это надо иметь еще один скрипт постоянно за этим следящий(проще сразу в стелс встроить и галочку на вкл этой функции прикрутить)...хотя и до этого если припрет дойду. А вот метки вешать или дорогу указывать себе к чему нить другому это было бы здорово.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

метки легко. потом. когда-нить.
а гампы не буду добавлять принципиально.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
admir
Novice
Novice
Posts: 97
Joined: 28.10.2008 20:44

Re: Заявка на новые возможности, либо на исправление старых

Post by admir »

гмгм.
откуда клиент берет координаты трупа? Навняка он запоминает место смерти, так вчем пробелма тоже самое сделать скриптом, и далее ГУИ отрисовать окошко в котором грубо говоря боттонами нарисоваьт типа
ооо
о о
ооо
и нужное напрвление утопить боттон
Какую именно - высчитать разницей координат.
elgreen
Posts: 5
Joined: 05.03.2013 17:27

Re: Заявка на новые возможности, либо на исправление старых

Post by elgreen »

Как сохранять-загружать конфиг из закладки Hotkeys? при перезаходе все пропадает.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

в 4й версии - никак
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
elgreen
Posts: 5
Joined: 05.03.2013 17:27

Re: Заявка на новые возможности, либо на исправление старых

Post by elgreen »

Vizit0r wrote:в 4й версии - никак
Ок придется пилотом вбивать.

Еще момент: есть рабочий lasttarget но он сбивается, после каста в землю стенок, то есть не срабатывает такое:

Code: Select all

  canceltarget; WaitTargetObject(lasttarget);
  UseObject(FindItem);
Приходится наворачивать клубок:

Code: Select all

   List := TStringList.Create; 
   if FindType(lastt,Ground) > 0 then begin 
    GetFindedList(List); 
    for i := 0 to List.Count-1 do
    begin 
     if GetName(StrToInt('$'+List.Strings[i]))=lastn then begin
      CancelTarget; UseType(tt,cc); WaitTargetObject(StrToInt('$'+List.Strings[i]));
     end;
    end;
    List.Free;
   end;
Еще момент 2: не нашел как послать клиенту таргет который кидается в тайл что бы задать XY. Из той же темы, а можно узнать XY тайла под курсором ничего не кликая?

Еще момент 3: стандартный TargetNext
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

2 и 3 моменты уже работают в 5м стелсе.
по поводу 1 - lasttarget в 5й версии не сбивается, если тайл (или обьект) = 0. X Y Z сбиваются в любом случае.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
elgreen
Posts: 5
Joined: 05.03.2013 17:27

Re: Заявка на новые возможности, либо на исправление старых

Post by elgreen »

Vizit0r wrote:2 и 3 моменты уже работают в 5м стелсе.
по поводу 1 - lasttarget в 5й версии не сбивается, если тайл (или обьект) = 0. X Y Z сбиваются в любом случае.
Когда можно будет попробовать 5ю версию?

Замечен баг в Hotkeys: при бинде на колесо мышки вверх, использование колеса вниз многократно повторяет бинд от колеса вверх, при том что на колесо вниз ничего не забито.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

в асе - в любое время.
времени доделать совершенно нет, иначе бы давно в релиз пошла уже.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Valve
Posts: 1
Joined: 29.06.2013 16:42

Re: Заявка на новые возможности, либо на исправление старых

Post by Valve »

Авто-одевалка не одевает тотем (SetDress DressSavedSet). Было б хорошо если стелс куда-то запоминал в чем одет чар, так что б после перезагрузки или краша стелса можно было чара одеть функцией DressSavedSet; Фукция DressSavedSet снимала конфликтные вещи и одевала вещь из сохраненного списка. ну или на крайний случай параметр типа UnequipConflictItem если True, снимает, если False - нет.

Так же стелс грузит полностью ядро процессора, когда оооочень много трупов или предметов вокруг, например когда убит чемп. Ну и уже не терпиться поюзать 5ую версию стелса =)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

не. сохранять стелс никуда сет не будет. там своей процедуры по перебору всех слоев и сохранению их в пару десятков строк.
ну а с кофликтными вещами - это вообще фантастика.

а 6й стелс - тест открыт, велком в асю.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Gauhar
Novice
Novice
Posts: 87
Joined: 08.07.2008 17:40

Re: Заявка на новые возможности, либо на исправление старых

Post by Gauhar »

Не определяются координаты персонажа на корабле.

В последних версиях RunUO, в частности, были изменены корабли: при движении корабля посылается пакет F6, а для персонажей и предметов пакет F7. В следствии этого в Stealth Client'е перестали определятся координаты персонажа находящегося на корабле, да и самого корабля тоже.

Описание пакетов взяты у Wyatt'а (http://ruosi.org/packetguide/index.xml):

Code: Select all

F3 - New World Object Packet
New World Object Packet.
26 bytes
from server
byte	ID (F3)
word	0x01
byte	Data Type (0x00 = use TileData, 0x01 = use BodyData, 0x02 = use MultiData)
dword	Serial
word	Object ID
byte	Object ID Offset
word	Amount
word	Amount
word	X
word	Y
sbyte	Z
byte	Light Level (TileData.Quality or 0 for Mobiles)
word	Hue
byte	Flag (0x20 = Show Properties; 0x80 = Hidden)
word	Access (for items only, 0x01 = Player Item, 0x00 = World Item)
First appearance in UO:SA clients, replaces 0x1A packet.

F6 - Boat Moving Packet
Boat Moving Packet.
from server
byte	ID (F6)
word	Packet Size
dword	Boat Serial
byte	Boat Speed (0x01 = one tile, 0x02 = rowboat, 0x03 = slow, 0x04 = fast)
byte	Moving Direction
byte	Facing Direction
word	Boat X
word	Boat Y
word	Boat Z
word	Boat Objects Count
loop	Boat Objects
dword	Boat Object Serial
word	Boat Object X
word	Boat Object Y
word	Boat Object Z
endloop	Boat Objects
Was added in UO:HS clients. Moving Direction = Facing Direction + Command Direction.

F7 - Packet Container Packet
Packet Container Packet.
from server
byte	ID (F7)
word	Packet Size
word	Inner Packets Count
loop	Inner Packets
byte[*]	Inner Packet structure
endloop	Inner Packets
Was added in UO:HS clients. Currently uses for multis, contains F3 packets.
Кусок кода BaseBoat.cs RunUO:

Code: Select all

#region High Seas

public override bool AllowsRelativeDrop
{
	get { return true; }
}

/*
 * OSI sends the 0xF7 packet instead, holding 0xF3 packets
 * for every entity on the boat. Though, the regular 0xF3
 * packets are still being sent as well as entities come
 * into sight. Do we really need it?
 */
/*
protected override Packet GetWorldPacketFor( NetState state )
{
	if ( NewBoatMovement && state.HighSeas )
		return new DisplayBoatHS( state.Mobile, this );
	else
		return base.GetWorldPacketFor( state );
}
*/

public sealed class MoveBoatHS : Packet
{
	public MoveBoatHS( Mobile beholder, BaseBoat boat, Direction d, int speed, List<IEntity> ents, int xOffset, int yOffset )
		: base( 0xF6 )
	{
		EnsureCapacity( 3 + 15 + ents.Count * 10 );

		m_Stream.Write( (int) boat.Serial );
		m_Stream.Write( (byte) speed );
		m_Stream.Write( (byte) d );
		m_Stream.Write( (byte) boat.Facing );
		m_Stream.Write( (short) ( boat.X + xOffset ) );
		m_Stream.Write( (short) ( boat.Y + yOffset ) );
		m_Stream.Write( (short) boat.Z );
		m_Stream.Write( (short) 0 ); // count placeholder

		int count = 0;

		foreach ( IEntity ent in ents )
		{
			if ( !beholder.CanSee( ent ) )
				continue;

			m_Stream.Write( (int) ent.Serial );
			m_Stream.Write( (short) ( ent.X + xOffset ) );
			m_Stream.Write( (short) ( ent.Y + yOffset ) );
			m_Stream.Write( (short) ent.Z );
			++count;
		}

		m_Stream.Seek( 16, System.IO.SeekOrigin.Begin );
		m_Stream.Write( (short) count );
	}
}

public sealed class DisplayBoatHS : Packet
{
	public DisplayBoatHS( Mobile beholder, BaseBoat boat )
		: base( 0xF7 )
	{
		List<IEntity> ents = boat.GetMovingEntities();

		SafeAdd( boat.TillerMan, ents );
		SafeAdd( boat.Hold, ents );
		SafeAdd( boat.PPlank, ents );
		SafeAdd( boat.SPlank, ents );

		ents.Add( boat );

		EnsureCapacity( 3 + 2 + ents.Count * 26 );

		m_Stream.Write( (short) 0 ); // count placeholder

		int count = 0;

		foreach ( IEntity ent in ents )
		{
			if ( !beholder.CanSee( ent ) )
				continue;

			// Embedded WorldItemHS packets
			m_Stream.Write( (byte) 0xF3 );
			m_Stream.Write( (short) 0x1 );

			if ( ent is BaseMulti )
			{
				BaseMulti bm = (BaseMulti)ent;

				m_Stream.Write( (byte) 0x02 );
				m_Stream.Write( (int) bm.Serial );
				// TODO: Mask no longer needed, merge with Item case?
				m_Stream.Write( (ushort) ( bm.ItemID & 0x3FFF ) );
				m_Stream.Write( (byte) 0 );

				m_Stream.Write( (short) bm.Amount );
				m_Stream.Write( (short) bm.Amount );

				m_Stream.Write( (short) ( bm.X & 0x7FFF ) );
				m_Stream.Write( (short) ( bm.Y & 0x3FFF ) );
				m_Stream.Write( (sbyte) bm.Z );

				m_Stream.Write( (byte) bm.Light );
				m_Stream.Write( (short) bm.Hue );
				m_Stream.Write( (byte) bm.GetPacketFlags() );
			}
			else if ( ent is Mobile )
			{
				Mobile m = (Mobile)ent;

				m_Stream.Write( (byte) 0x01 );
				m_Stream.Write( (int) m.Serial );
				m_Stream.Write( (short) m.Body );
				m_Stream.Write( (byte) 0 );

				m_Stream.Write( (short) 1 );
				m_Stream.Write( (short) 1 );

				m_Stream.Write( (short) ( m.X & 0x7FFF ) );
				m_Stream.Write( (short) ( m.Y & 0x3FFF ) );
				m_Stream.Write( (sbyte) m.Z );

				m_Stream.Write( (byte) m.Direction );
				m_Stream.Write( (short) m.Hue );
				m_Stream.Write( (byte) m.GetPacketFlags() );
			}
			else if ( ent is Item )
			{
				Item item = (Item)ent;

				m_Stream.Write( (byte) 0x00 );
				m_Stream.Write( (int) item.Serial );
				m_Stream.Write( (ushort) ( item.ItemID & 0xFFFF ) );
				m_Stream.Write( (byte) 0 );

				m_Stream.Write( (short) item.Amount );
				m_Stream.Write( (short) item.Amount );

				m_Stream.Write( (short) ( item.X & 0x7FFF ) );
				m_Stream.Write( (short) ( item.Y & 0x3FFF ) );
				m_Stream.Write( (sbyte) item.Z );

				m_Stream.Write( (byte) item.Light );
				m_Stream.Write( (short) item.Hue );
				m_Stream.Write( (byte) item.GetPacketFlags() );
			}
			m_Stream.Write( (short) 0x00 );
			++count;
		}
		m_Stream.Seek( 3, System.IO.SeekOrigin.Begin );
		m_Stream.Write( (short) count );
	}
}

#endregion
Не судите строго, если вам известно об описанной проблеме, и мои исследования были не верны, так как я не программист.
Использую Stealth Client версии 4.3.6. Очень жду новой версии.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

F7 и F3 работает с момента выхода HS. F6 мне не очень нравится, поэтому я им не занимался. Может когда совсем нечего будет делать - введу, посмотрим. Да и тестить негде особо.

P.S. Release Candidate через пару часов выложу в открытый доступ, как допишу описание всех изменений.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: Заявка на новые возможности, либо на исправление старых

Post by Vizit0r »

баги заели, будет сегодня ночью :)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
shinma
Expert
Expert
Posts: 505
Joined: 28.04.2011 12:05

Re: Заявка на новые возможности, либо на исправление старых

Post by shinma »

буду обламывать как могу выход релиза постами о багах))))))))))))
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Post Reply