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

Полезность: определение что на каком слое у чара надето

Only working scripts
Post Reply
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Полезность: определение что на каком слое у чара надето

Post by Edred »

Часто для скриптов надо определить, какая шмотка на какой слой на чаре надевается (я, по крайней мере, этого никак не могу запомнить, да и не хочу чепухой голову забивать).

Поэтому я написал вот такой маленький скриптик, очень помогает...

Оденьте на себя все что хочется, запустите:

Code: Select all

program testlayer;

var
i:word;

function checkl(lay:Byte) : string;
	begin
		i := GetType(ObjAtLayer(lay));
		result := '$' + inttohex(i,4);
		if result = '$0000' then result := 'none';
	end;

begin
	AddToSystemJournal('RhandLayer: ' + checkl(RhandLayer));
	AddToSystemJournal('LhandLayer: ' + checkl(LhandLayer));
	AddToSystemJournal('ShoesLayer: ' + checkl(ShoesLayer));
	AddToSystemJournal('PantsLayer: ' + checkl(PantsLayer));
	AddToSystemJournal('ShirtLayer: ' + checkl(ShirtLayer));
	AddToSystemJournal('HatLayer: ' + checkl(HatLayer));
	AddToSystemJournal('GlovesLayer: ' + checkl(GlovesLayer));
	AddToSystemJournal('RingLayer: ' + checkl(RingLayer));
	AddToSystemJournal('NeckLayer: ' + checkl(NeckLayer));
	AddToSystemJournal('WaistLayer: ' + checkl(WaistLayer));
	AddToSystemJournal('TorsoLayer: ' + checkl(TorsoLayer));
	AddToSystemJournal('BraceLayer: ' + checkl(BraceLayer));
	AddToSystemJournal('TorsoHLayer: ' + checkl(TorsoHLayer));
	AddToSystemJournal('EarLayer: ' + checkl(EarLayer));
	AddToSystemJournal('ArmsLayer: ' + checkl(ArmsLayer));
	AddToSystemJournal('CloakLayer: ' + checkl(CloakLayer));
	AddToSystemJournal('RobeLayer: ' + checkl(RobeLayer));
	AddToSystemJournal('EggsLayer: ' + checkl(EggsLayer));
	AddToSystemJournal('LegsLayer: ' + checkl(LegsLayer));
end.
На выходе в системном журнале будет вот такой список:

Code: Select all

RhandLayer: $13E3
LhandLayer: $1B76
ShoesLayer: none
PantsLayer: $1411
ShirtLayer: none
HatLayer: $1412
GlovesLayer: $1414
RingLayer: none
NeckLayer: $1413
WaistLayer: none
TorsoLayer: $1415
BraceLayer: none
TorsoHLayer: none
EarLayer: none
ArmsLayer: $1410
CloakLayer: none
RobeLayer: none
EggsLayer: none
LegsLayer: none
Ну и как его использовать - я думаю, вы уже понимаете... 8)
DerMeister
Novice
Novice
Posts: 54
Joined: 19.11.2006 17:35

Post by DerMeister »

А еще будет полезным знать "численные" значени лееров.
Поэтому прошу вашему вниманию:

Code: Select all

program testlayers;
begin
	AddToSystemJournal('RhandLayer ' + IntToStr(RhandLayer));
	AddToSystemJournal('LhandLayer ' + IntToStr(LhandLayer));
	AddToSystemJournal('ShoesLayer ' + IntToStr(ShoesLayer));
	AddToSystemJournal('PantsLayer ' + IntToStr(PantsLayer));
	AddToSystemJournal('ShirtLayer ' + IntToStr(ShirtLayer));
	AddToSystemJournal('HatLayer ' + IntToStr(HatLayer));
	AddToSystemJournal('GlovesLayer ' + IntToStr(GlovesLayer));
	AddToSystemJournal('RingLayer ' + IntToStr(RingLayer));
	AddToSystemJournal('NeckLayer ' + IntToStr(NeckLayer));
	AddToSystemJournal('WaistLayer ' + IntToStr(WaistLayer));
	AddToSystemJournal('TorsoLayer ' + IntToStr(TorsoLayer));
	AddToSystemJournal('BraceLayer ' + IntToStr(BraceLayer));
	AddToSystemJournal('TorsoHLayer ' + IntToStr(TorsoHLayer));
	AddToSystemJournal('EarLayer ' + IntToStr(EarLayer));
	AddToSystemJournal('ArmsLayer ' + IntToStr(ArmsLayer));
	AddToSystemJournal('CloakLayer ' + IntToStr(CloakLayer));
	AddToSystemJournal('RobeLayer ' + IntToStr(RobeLayer));
	AddToSystemJournal('EggsLayer ' + IntToStr(EggsLayer));
	AddToSystemJournal('LegsLayer ' + IntToStr(LegsLayer));
end.
А вот результат:

Code: Select all

21:47:28 [DerMeister]: RhandLayer 1
21:47:28 [DerMeister]: LhandLayer 2
21:47:28 [DerMeister]: ShoesLayer 3
21:47:28 [DerMeister]: PantsLayer 4
21:47:28 [DerMeister]: ShirtLayer 5
21:47:28 [DerMeister]: HatLayer 6
21:47:28 [DerMeister]: GlovesLayer 7
21:47:28 [DerMeister]: RingLayer 8
21:47:28 [DerMeister]: NeckLayer 10
21:47:28 [DerMeister]: WaistLayer 12
21:47:28 [DerMeister]: TorsoLayer 13
21:47:28 [DerMeister]: BraceLayer 14
21:47:28 [DerMeister]: TorsoHLayer 17
21:47:28 [DerMeister]: EarLayer 18
21:47:28 [DerMeister]: ArmsLayer 19
21:47:28 [DerMeister]: CloakLayer 20
21:47:28 [DerMeister]: RobeLayer 22
21:47:28 [DerMeister]: EggsLayer 23
21:47:28 [DerMeister]: LegsLayer 24
PS: Если вы заметили, то некоторые цыфры пропущены... я хз почему (быть может список лееров не полный [мне в лом проверять])
Edred
Moderator
Moderator
Posts: 559
Joined: 28.03.2006 21:29

Post by Edred »

Конечно пропущены. На фига мне в скрипте нужны banklayer или там товарные бекпаки у вендора? Полный список есть здесь:

http://stealth.od.ua/forum/viewtopic.php?t=475
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Layers:

0x01 - One handed weapon
0x02 - Two handed weapon, shield, or misc.
0x03 - Shoes
0x04 - Pants
0x05 - Shirt
0x06 - Helm/Hat
0x07 - Gloves
0x08 - Ring
0x09 - Unused
0x0A - Neck
0x0B - Hair
0x0C - Waist (half apron)
0x0D - Torso (inner) (chest armor)
0x0E - Bracelet
0x0F - Unused (backpack, but backpacks go to 0x15)
0x10 - Facial Hair
0x11 - Torso (middle) (sircoat, tunic, full apron, sash)
0x12 - Earrings
0x13 - Arms
0x14 - Back (cloak)
0x15 - Backpack
0x16 - Torso (outer) (robe)
0x17 - Legs (outer) (skirt/kilt)
0x18 - Legs (inner) (leg armor)
0x19 - Mount (horse, ostard, etc)
0x1A - NPC Buy Restock container
0x1B - NPC Buy no restock container
0x1C - NPC Sell container
0x1D - PC Bank Box
Post Reply