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

ID последнего трупа

тут можно задать вопрос по скриптингу
MaskedPerson
Neophyte
Neophyte
Posts: 31
Joined: 14.03.2015 12:39

Re: ID последнего трупа

Post by MaskedPerson »

Неужели нету ни lastcorpse ни hide в стелсе? Двое суток мозги ломал, переделал скрипт, но там ignorereset используется при поиске ближайшего моба. Без него поиск не работает. Поэтому трупы в игнор добавить не получается и автолут пропускает 50-80% фарма, когда трупов становится много. Так не хочется обратно на инжект....

Code: Select all

[quote="VeL"][quote="Vizit0r"]
Как вариант, можно повесить на эвент появление строки "Body" в журнале, таким образом получать ID трупа[/quote]
А у Вас не найдется примера реализации данного "костыля" ? :mrgreen:
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: ID последнего трупа

Post by Vizit0r »

MaskedPerson wrote:Неужели нету ни lastcorpse ни hide в стелсе?
hide на что? в Стелсе нет графики.
а lastcorpse было реализовано в какой-то из тестовых версий, потом убрано - потому что некоторые типы трупов на многих серверах отличаются, мне это отслеживать ну как-то вообще неинтересно.
По факту lastcorpse это был lastobject, который проверялся на тип из списка, если соответствовал - значит оно.

Так что сделать то же самое в скрипте со своим списком типов трупов - это аж строк 6-7 будет.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
VeL
Novice
Novice
Posts: 54
Joined: 03.12.2010 18:15

Re: ID последнего трупа

Post by VeL »

а lastcorpse было реализовано в какой-то из тестовых версий, потом убрано - потому что некоторые типы трупов на многих серверах отличаются, мне это отслеживать ну как-то вообще неинтересно.
Ну не знаю, лично я видел только 2 типа трупов: $2006 - труп; $0ECA - разрезанный труп;
Если где то существуют другие типы трупов, можно сделать процедуру SetCorpses(Corpses: array of Word), которая будет устанавливать эти типы:
SetCorpses([$2006, $0ECA]) - устанавливаем типы трупов для поиска;
LastCorpse - получаем ИД последнего трупа;

Даже не так. Труп не может появиться уже разрезанным. Поэтому для всех типов мобов появляется один тип трупа, по сути это контейнер с типом $2006
По факту lastcorpse это был lastobject, который проверялся на тип из списка, если соответствовал - значит оно.
Какая связь между lastcorpse и lastobject? Описания lastobject не нашел, поэтому предположу, что lastobject это последний использованный объект и туда попадает ИД атакованного моба, но ИД моба и ИД его трупа не одинаковы.
Так что сделать то же самое в скрипте со своим списком типов трупов - это аж строк 6-7 будет.
Нужен ИД последнего трупа, просто поиском по типу будет найден первый попавшийся, а для того что бы получить именно последний труп и приходится устраивать пляски с бубном.
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: ID последнего трупа

Post by drabadan »

VeL wrote:
а lastcorpse было реализовано в какой-то из тестовых версий, потом убрано - потому что некоторые типы трупов на многих серверах отличаются, мне это отслеживать ну как-то вообще неинтересно.
Ну не знаю, лично я видел только 2 типа трупов: $2006 - труп; $0ECA - разрезанный труп;
Если где то существуют другие типы трупов, можно сделать процедуру SetCorpses(Corpses: array of Word), которая будет устанавливать эти типы:
SetCorpses([$2006, $0ECA]) - устанавливаем типы трупов для поиска;
LastCorpse - получаем ИД последнего трупа;

Даже не так. Труп не может появиться уже разрезанным. Поэтому для всех типов мобов появляется один тип трупа, по сути это контейнер с типом $2006
По факту lastcorpse это был lastobject, который проверялся на тип из списка, если соответствовал - значит оно.
Какая связь между lastcorpse и lastobject? Описания lastobject не нашел, поэтому предположу, что lastobject это последний использованный объект и туда попадает ИД атакованного моба, но ИД моба и ИД его трупа не одинаковы.
Так что сделать то же самое в скрипте со своим списком типов трупов - это аж строк 6-7 будет.
Нужен ИД последнего трупа, просто поиском по типу будет найден первый попавшийся, а для того что бы получить именно последний труп и приходится устраивать пляски с бубном.
что девелоперу скрипта пляски устраивать, что девелоперу стелса. Только вот, стелсовский будет думать на 1% по другому и будет больше вопросов чем ответов для скриптера. Напиши свою реализацию под свой шард. С ивентом на журнал, может прийти текст не корпс а ТЕЛО УБИТОГО ВРАГА УПАЛО НА ПОЛ ВОЗЛЕ ТАНКА! Попробуй распарси этот бред.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: ID последнего трупа

Post by Vizit0r »

VeL wrote:
а lastcorpse было реализовано в какой-то из тестовых версий, потом убрано - потому что некоторые типы трупов на многих серверах отличаются, мне это отслеживать ну как-то вообще неинтересно.
Ну не знаю, лично я видел только 2 типа трупов: $2006 - труп; $0ECA - разрезанный труп;
а я знаю. их на самом деле куда больше, особенно на последних версиях. А ты судишь с позиции одного отдельно взятого шарда.
VeL wrote: Если где то существуют другие типы трупов, можно сделать процедуру SetCorpses(Corpses: array of Word), которая будет устанавливать эти типы:
SetCorpses([$2006, $0ECA]) - устанавливаем типы трупов для поиска;
LastCorpse - получаем ИД последнего трупа;
угу. Я ж говорю, давай добавлять еще кучу всякого, вместо вписывания пары строк в скрипте.
VeL wrote: Даже не так. Труп не может появиться уже разрезанным. Поэтому для всех типов мобов появляется один тип трупа, по сути это контейнер с типом $2006
На твоем шарде - да.
А в целом - если мне не изменяет мой склероз, у эльфов и горгулий другие типы трупов. У кого-то там еще - тоже другой.

VeL wrote:
По факту lastcorpse это был lastobject, который проверялся на тип из списка, если соответствовал - значит оно.
Какая связь между lastcorpse и lastobject? Описания lastobject не нашел, поэтому предположу, что lastobject это последний использованный объект и туда попадает ИД атакованного моба, но ИД моба и ИД его трупа не одинаковы.
угу, это я запутался сам.
ивент на evItemInfo ставишь, и в нем проверяешь пришедший айтем на тип (GetType), если нужный - вуаля.
VeL wrote:
Так что сделать то же самое в скрипте со своим списком типов трупов - это аж строк 6-7 будет.
Нужен ИД последнего трупа, просто поиском по типу будет найден первый попавшийся, а для того что бы получить именно последний труп и приходится устраивать пляски с бубном.
см. выше
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Post Reply