You are not logged in.
Pages: 1
Описание:
Скрипт предназначен для создания любых транспортных средств прямо во время игры.
При нажатой правой кнопке мыши введите ИД номер модели транспортного средства на верхнем ряду клавиатуры, после чего отпустите кнопку мыши - транспортное средство данной модели сразу появится перед игроком.
ИД номера можно узнать из файла GTA_San_Andreas\data\vehicles.ide. Например, для создания катера на воздушной подушке Vortex (ИД 539), надо набрать 539.
Создаваемый транспорт не может быть вагоном поезда.
Во время миссии скрипт будет отключён.
Особенности:
+ Можно спаунить транспорт с любыми ИД (0 - 19010)
+ Вводимое число будет отображаться на экране.
+ В случае ошибочного ввода можно удалять символы кнопкой Backspace
+ Предохраняющие проверки предотвратят вылет игры при вводе некорректного ИД
Исходник:
{$CLEO} // 0 - 48 , 9 -57
var
0@: array 5 of Integer // digits 0 1 2 3 4
17@: Integer // index
6@: Integer // current_digit
7@: Integer // SUM
8@: Integer // KEY_HOLD
15@: Integer // KEY
end
const
DIGIT = 0@
i = 17@
CURRENT_DIGIT = 6@
SUM = 7@
KEY_HOLD = 8@
KEY = 15@
end
CURRENT_DIGIT = 1
while true
wait 0
if or
not player.Defined($PLAYER_CHAR)
$ONMISSION <> 0
then
CURRENT_DIGIT = 1
SUM = 0
KEY_HOLD = False
for i = 0 to 4
0006: DIGIT[i] = 0
end
continue
end
if
8AB0: not key_pressed 2
then
if and
SUM > 0
SUM < 19010
then
if
07DE: model SUM exists // versionB
then
0AA7: call_function 0x4C5AA0 num_params 1 pop 1 SUM 9@ // isModelCar
0AA7: call_function 0x4C5B60 num_params 1 pop 1 SUM 10@ // isModelBike
0AA7: call_function 0x4C5C20 num_params 1 pop 1 SUM 11@ // isModelBmx
0AA7: call_function 0x4C5BF0 num_params 1 pop 1 SUM 12@ // isModelQuad
0AA7: call_function 0x4C5C50 num_params 1 pop 1 SUM 13@ // isModelTrailer
0AA7: call_function 0x4C5BC0 num_params 1 pop 1 SUM 14@ // isModelMTruck
if or
081E: model SUM boat
081F: model SUM plane
0820: model SUM heli
9@ == True
then
0ADD: spawn_car_with_model SUM at_player_location
else
if or
10@ == 8766721 // True
11@ == 8766721 // True
12@ == 8766721 // True
13@ == 8766721 // True
14@ == True
then
0ADD: spawn_car_with_model SUM at_player_location
end
end
end
end
CURRENT_DIGIT = 1
SUM = 0
KEY_HOLD = False
for i = 0 to 4
0006: DIGIT[i] = 0
end
continue
end // key pressed 2
if
KEY_HOLD == False
then
if
0AB0: key_pressed 8
then
KEY_HOLD = True
if
CURRENT_DIGIT > 1
then
CURRENT_DIGIT /= 10
008F: 16@ = integer CURRENT_DIGIT to_float
0AEF: 16@ = log 16@ base 10.0 //all floats
SUM = 0
0092: 16@ = float 16@ to_integer
16@ -= 1
for i = 0 to 16@
0016: DIGIT[i] /= 10
005A: SUM += DIGIT[i] // (int)
end
end
else
if
SUM >= 19010
then
continue
end
KEY = 48
for i = 0 to 9
if
0AB0: key_pressed KEY
then
008F: 16@ = integer CURRENT_DIGIT to_float
0AEF: 16@ = log 16@ base 10.0 //all floats
SUM = 0
0092: 16@ = float 16@ to_integer
0085: DIGIT[16@] = i // int
for i = 0 to 16@
if
001D: 16@ > i // (int)
then
0012: DIGIT[i] *= 10
end
005A: SUM += DIGIT[i] // (int)
end
CURRENT_DIGIT *= 10
KEY_HOLD = True
break
end
KEY += 1
end
end
else // KEY_HOLD == True
if and
8AB0: not key_pressed 48
8AB0: not key_pressed 49
8AB0: not key_pressed 50
8AB0: not key_pressed 51
8AB0: not key_pressed 52
then
if and
8AB0: not key_pressed 53
8AB0: not key_pressed 54
8AB0: not key_pressed 55
8AB0: not key_pressed 56
8AB0: not key_pressed 57
8AB0: not key_pressed 8
then
KEY_HOLD = False
end
end
end // KEY_HOLD == False
if
CURRENT_DIGIT > 1
then
03F0: enable_text_draw 1
045A: draw_text_1number 320.0 240.0 GXT 'NUMBER' number SUM
end
endОпкод логарифма даже пригодился 
Архив с готовым скриптом (cs) приложен к сообщению
Last edited by Den_spb (09-10-2010 22:41)
Offline
А можно ли реализовать следующую возможность: запоминать любимую машину под определенным номером и вызывать ее комбинацией клавиш (например, alt+<1..9>)? Предлагаемые способы определения любимой машины:
1. Подходим близко к понравившейся модели машины, нажимаем что-то, на экране появляется номер модели и название, жмем ctrl+alt+<1..9> и модель запоминается под заданным номером.
2. Если я правильно помню, в статистике есть пункт с любимым авто. Можно использовать его.
Занесенные в "любимые номера" модели сохраняются во внешний файл и читаются оттуда.
p.s. Стиль оформления скрипта очень нравится, сам так же пишу код.
Offline
следующую возможность
Идея неплохая, если будет следующая версия, то реализую. В статистике подобного пункта не нашёл, так что тут подойдёт только первый метод.
p.s. Стиль оформления скрипта очень нравится, сам так же пишу код.
Мне тоже такой стиль нравится - так удобнее писать, чем метками.
Offline
А что плохого в низком уровне при создании скриптов не сталкивался с нехваткой возможностей низкого уровня. Глюков он же не вызывает?, а для меня так довольно удобно.
Offline
Offline
Pages: 1