- Версия SA-MP
-
- 0.3.7 (R1)
- 0.3.7-R2
- Любая
- Другая
// This file was decompiled using SASCM.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$CLEO .cs}
thread 'teleport'
:TELEPORT_19
wait 0
if
:TELEPORT_27
wait 0
if
key_down 187
jf @TELEPORT_19
for 0@ = 0 to 175
0AB1: @GetRadarBlipInfo 1 BlipID 0@ _Return: ColorID 2@ RGB 2@ 3@ 4@ XYZ 5@ 6@ 7@ IconID 8@
if and
2@ == 2
8@ == 0
then
Actor.PutAt($PLAYER_ACTOR, 5@, 6@, 7@)
wait 100
jump @TELEPORT_27
end
end
:GetRadarBlipInfo
{
0AB1: @GetRadarBlipInfo 1 BlipID 0@ _Return: ColorID 2@ RGB 2@ 3@ 4@ XYZ 5@ 6@ 7@ IconID 8@
}
0A90: 1@ = 0@ * 0x28 // int
000A: 1@ += 0xBA86F0
0A8E: 31@ = 1@ + 0 // DWORD dwColourID
0A8D: 2@ = read_memory 31@ size 4 virtual_protect 0
// Get blip color RGB from color id
0A90: 30@ = 2@ * 4 // int
000A: 30@ += 0xBAB22C
0A8D: 3@ = read_memory 30@ size 1 virtual_protect 0 // R
000A: 30@ += 1
0A8D: 4@ = read_memory 30@ size 1 virtual_protect 0 // G
000A: 30@ += 1
0A8D: 5@ = read_memory 30@ size 1 virtual_protect 0 // B
// End of RGB
0A8E: 31@ = 1@ + 8 // PosX (float)
0A8D: 6@ = read_memory 31@ size 4 virtual_protect 0
0A8E: 31@ = 1@ + 12 // PosY (float)
0A8D: 7@ = read_memory 31@ size 4 virtual_protect 0
0A8E: 31@ = 1@ + 16 // PosZ (float)
0A8D: 8@ = read_memory 31@ size 4 virtual_protect 0
0A8E: 31@ = 1@ + 36 // BYTE byteIconID
0A8D: 9@ = read_memory 31@ size 1 virtual_protect 0
0AB2: ret 8 2 @ 3 @ 4 @ 5 @ 6 @ 7 @ 8 @ 9 @
ts функция заключается в обнаружении значка радара в виде синего квадрата/треугольника (ID 0), и когда вы нажимаете '=', он телепортируется .... До включения переменной ColorID телепорт работал только в начале или не работал вообще. В итоге он телепортировался случайным образом в одну или несколько позиций значков радара ... Чтобы попытаться решить проблему, я добавил строку "2 @ == 2", чтобы попытаться указать, что это квадратный значок радара + цвет ID 2 (синий), но теперь, когда я нажимаю клавишу активации, чат заваливается сообщениями с предупреждениями ... Не могли бы вы взглянуть и посмотреть, есть ли способ избежать ошибок?