Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7 
	Old requests
Re: Заявка на новые возможности, либо на исправление старых
один фиг ты полез уже с таргетами функции делать,это посложнее будет чем, если ты добавишь стандартное окно да/нет. ну да/нет еще можно заменить винапишным окном. а вот например чтобы в игре над угодными мне таргетами рисовались стрелочки или этой же стрелочкой рисовался маршрут к трупу. Это уже не забабахать через винапи...хотя и так можно , но блин есть же стрелка в уо клиенте чоб ею не попользоваться. тем более когда -то было что когда умираешь прям клиент рисовал стрелочкой дорогу к трупу. Добавь стрелочку плиииз. к трупу я не буду рисовать дорожки т.к. это надо иметь еще один скрипт постоянно за этим следящий(проще сразу в стелс встроить  и галочку на вкл этой функции прикрутить)...хотя и до этого если припрет дойду. А вот метки вешать или дорогу указывать себе к чему нить другому это было бы здорово.
			
			
									
									--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
						--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Заявка на новые возможности, либо на исправление старых
метки легко. потом. когда-нить.
а гампы не буду добавлять принципиально.
			
			
									
									а гампы не буду добавлять принципиально.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
гмгм.
откуда клиент берет координаты трупа? Навняка он запоминает место смерти, так вчем пробелма тоже самое сделать скриптом, и далее ГУИ отрисовать окошко в котором грубо говоря боттонами нарисоваьт типа
ооо
о о
ооо
и нужное напрвление утопить боттон
Какую именно - высчитать разницей координат.
			
			
									
									
						откуда клиент берет координаты трупа? Навняка он запоминает место смерти, так вчем пробелма тоже самое сделать скриптом, и далее ГУИ отрисовать окошко в котором грубо говоря боттонами нарисоваьт типа
ооо
о о
ооо
и нужное напрвление утопить боттон
Какую именно - высчитать разницей координат.
Re: Заявка на новые возможности, либо на исправление старых
Как сохранять-загружать конфиг из закладки Hotkeys? при перезаходе все пропадает.
			
			
									
									
						Re: Заявка на новые возможности, либо на исправление старых
в 4й версии - никак
			
			
									
									"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
Ок придется пилотом вбивать.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;Еще момент 3: стандартный TargetNext
Re: Заявка на новые возможности, либо на исправление старых
2 и 3 моменты уже работают в 5м стелсе.
по поводу 1 - lasttarget в 5й версии не сбивается, если тайл (или обьект) = 0. X Y Z сбиваются в любом случае.
			
			
									
									по поводу 1 - lasttarget в 5й версии не сбивается, если тайл (или обьект) = 0. X Y Z сбиваются в любом случае.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
Когда можно будет попробовать 5ю версию?Vizit0r wrote:2 и 3 моменты уже работают в 5м стелсе.
по поводу 1 - lasttarget в 5й версии не сбивается, если тайл (или обьект) = 0. X Y Z сбиваются в любом случае.
Замечен баг в Hotkeys: при бинде на колесо мышки вверх, использование колеса вниз многократно повторяет бинд от колеса вверх, при том что на колесо вниз ничего не забито.
Re: Заявка на новые возможности, либо на исправление старых
в асе - в любое время.
времени доделать совершенно нет, иначе бы давно в релиз пошла уже.
			
			
									
									времени доделать совершенно нет, иначе бы давно в релиз пошла уже.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
Авто-одевалка не одевает тотем (SetDress DressSavedSet). Было б хорошо если стелс куда-то запоминал в чем одет чар, так что б после перезагрузки или краша стелса можно было чара одеть функцией DressSavedSet; Фукция DressSavedSet снимала конфликтные вещи и одевала вещь из сохраненного списка. ну или на крайний случай параметр типа UnequipConflictItem если True, снимает, если False - нет. 
Так же стелс грузит полностью ядро процессора, когда оооочень много трупов или предметов вокруг, например когда убит чемп. Ну и уже не терпиться поюзать 5ую версию стелса =)
			
			
									
									
						Так же стелс грузит полностью ядро процессора, когда оооочень много трупов или предметов вокруг, например когда убит чемп. Ну и уже не терпиться поюзать 5ую версию стелса =)
Re: Заявка на новые возможности, либо на исправление старых
не. сохранять стелс никуда сет не будет. там своей процедуры по перебору всех слоев и сохранению их в пару десятков строк.
ну а с кофликтными вещами - это вообще фантастика.
а 6й стелс - тест открыт, велком в асю.
			
			
									
									ну а с кофликтными вещами - это вообще фантастика.
а 6й стелс - тест открыт, велком в асю.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
Не определяются координаты персонажа на корабле.
В последних версиях RunUO, в частности, были изменены корабли: при движении корабля посылается пакет F6, а для персонажей и предметов пакет F7. В следствии этого в Stealth Client'е перестали определятся координаты персонажа находящегося на корабле, да и самого корабля тоже.
Описание пакетов взяты у Wyatt'а (http://ruosi.org/packetguide/index.xml):
Кусок кода BaseBoat.cs RunUO:
Не судите строго, если вам известно об описанной проблеме, и мои исследования были не верны, так как я не программист.
Использую Stealth Client версии 4.3.6. Очень жду новой версии.
			
			
									
									
						В последних версиях 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.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. Очень жду новой версии.
Re: Заявка на новые возможности, либо на исправление старых
F7 и F3 работает с момента выхода HS. F6 мне не очень нравится, поэтому я им не занимался. Может когда совсем нечего будет делать - введу, посмотрим. Да и тестить негде особо.
P.S. Release Candidate через пару часов выложу в открытый доступ, как допишу описание всех изменений.
			
			
									
									P.S. Release Candidate через пару часов выложу в открытый доступ, как допишу описание всех изменений.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
баги заели, будет сегодня ночью 
			
			
									
									"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
						Re: Заявка на новые возможности, либо на исправление старых
буду обламывать как могу выход релиза постами о багах))))))))))))
			
			
									
									--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
						--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.


